qmmd.qmcalc.genScripts ====================== .. py:module:: qmmd.qmcalc.genScripts Attributes ---------- .. autoapisummary:: qmmd.qmcalc.genScripts.inpDirPath Functions --------- .. autoapisummary:: qmmd.qmcalc.genScripts.writeGaussInpFile qmmd.qmcalc.genScripts.writeHPCJobScript qmmd.qmcalc.genScripts.genAllScripts Module Contents --------------- .. py:function:: writeGaussInpFile(name: str, inpDirPath: str, keywordLine: Optional[str] = None, mem: Union[int, str] = 4000, ncpus: Union[int, str] = 8, combination: str = ' m062x/6-311+g(d,p)', scrf: str = ' scrf=(cpcm,solvent=water)', freq: str = ' freq', grid: str = ' opt=calcfc int(grid=ultrafine)', charge: int = 0, spin: int = 1, verbose: bool = False) -> None Generate a Gaussian input file based on specified inputs. :param name: Name of the jobscript, also used for input and output file of the software to run. :type name: str :param inpDirPath: Directory path to store the jobscript. :type inpDirPath: str :param keywordLine: The line of keywords specification for Gaussian job. :type keywordLine: str, optional :param mem: Amount of memory to request for the Gaussian job. :type mem: Union[int,str] :param ncpus: Number of CPUs to request for the job. :type ncpus: Union[int,str] :param combination: Keyword for DFT method and basis set specification in Gaussian. :type combination: str :param scrf: Keyword for solvent specification in Gaussian. :type scrf: str :param freq: Keyword for force constant and resulting vibrational frequencies computation in Gaussian. :type freq: str :param grid: Keyword for grid specification in Gaussian. :type grid: str :param charge: Charge of the molecule (pay special attention if you have a transition state). :type charge: int :param spin: Spin of the molecule. :type spin: int :param verbose: Whether to display details of the process. :type verbose: bool .. py:function:: writeHPCJobScript(name: str, inpDirPath: str = '.', scheduler: str = 'pbs', cluster: str = 'gadi', ncpus: Union[int, str] = 8, walltime: str = '24:00:00', vmem: Union[int, str] = 8000, jobfs: Union[int, str] = 9000, project: str = 'p39', software: str = 'g16', version: str = 'c01', verbose: bool = False) -> None Generate a HPC jobscript based on specified inputs. :param name: Name of the jobscript, also used for input and output file of the software to run. :type name: str :param inpDirPath: Directory path to store the jobscript. :type inpDirPath: str :param scheduler: Scheduler to submit the job to. :type scheduler: str :param cluster: Cluster to run the job on. :type cluster: {'gadi', 'uq-rcc'} :param ncpus: Number of CPUs to request for the job. :type ncpus: Union[int,str] :param walltime: Wall time to request for the job. :type walltime: str :param vmem: Amount of memory to request for the HPC job. :type vmem: Union[int,str] :param jobfs: Amount of Jobfs memory to request for the job. :type jobfs: Union[int,str] :param project: Project ID on NCI Gadi, only used if 'cluster' = 'gadi'. :type project: str :param software: Gaussian software name to use for the job. :type software: str :param version: Version of the Gaussian software. :type version: str :param verbose: Whether to display details of the process. :type verbose: bool .. rubric:: Notes - If your HPC system does not use PBS jobscript modifications will be needed for the function (open an issue on GitHub!). - Feel free to change the default values according to your most commonly used settings. .. py:function:: genAllScripts(inpDirPath: str, keywordLine: Optional[str] = None, method: str = 'm062x', basisSet: str = '6-311+g(d,p)', solvent: str = 'water', solventModel: str = 'cpcm', mem: Union[int, str] = 4000, ncpus: Union[int, str] = 8, calcType: str = 'GOVF', charge: int = 0, spin: int = 1, scheduler: str = 'pbs', cluster: str = 'gadi', walltime: str = '24:00:00', vmem: Union[int, str] = 8000, jobfs: Union[int, str] = 9000, project: str = 'p39', software: str = 'g16', version: str = 'c01', verbose: bool = False) -> None Generate Gaussian input job files and submission files for molecules under all directories under a specified directory ('inpDirPath'). :param inpDirPath: Directory path to the input directories. :type inpDirPath: str :param keywordLine: The line of keywords specification for Gaussian job, the other input arguments will be used to compose the line if it is not provided. :type keywordLine: str, optional :param method: Keyword for DFT method specification in Gaussian. :type method: str :param basisSet: Keyword for basis set specification in Gaussian. :type basisSet: str :param solvent: Keyword for solvent specification in Gaussian. :type solvent: str :param solventModel: Keyword for SCRF method specification in Gaussian. :type solventModel: str :param mem: Amount of memory to request for the Gaussian job. :type mem: Union[int,str] :param ncpus: Number of CPUs to request for the job. :type ncpus: Union[int,str] :param calcType: Type of calculation (e.g. 'GOVF' for normal geometry optimisation; 'TSGOVF' for transition state geometry optimisation, 'SPEiS' for single point energy calculation, refer to 'keywordDict' for other options). :type calcType: str :param charge: Charge of the molecule (pay special attention if you have a transition state). :type charge: int :param spin: Spin of the molecule. :type spin: int :param scheduler: Scheduler to submit the job to. :type scheduler: str :param cluster: Cluster to run the job on. :type cluster: {'gadi', 'uq-rcc'} :param walltime: Wall time to request for the job. :type walltime: str :param vmem: Amount of memory to request for the HPC job. :type vmem: Union[int,str] :param jobfs: Amount of Jobfs memory to request for the job. :type jobfs: Union[int,str] :param software: Gaussian software name to use for the job. :type software: str :param version: Version of the software. :type version: str :param verbose: Whether to display details of the process. :type verbose: bool .. rubric:: Notes - Users should organise their directories such that a directory is created for each molecule to be calculated, and all of these directories should be placed under the specified directory that this function takes in ('inpDirPath') .. py:data:: inpDirPath :value: '/mnt/c/Users/ASUS/Documents/qmmd/src/qmmd/data/exampleXYZs'