atomate.qchem.workflows.base package¶
Submodules¶
atomate.qchem.workflows.base.double_FF_opt module¶
-
atomate.qchem.workflows.base.double_FF_opt.
get_wf_double_FF_opt
(molecule, pcm_dielectric, max_cores='>>max_cores<<', qchem_input_params=None, name='douple_FF_opt', qchem_cmd='>>qchem_cmd<<', db_file='>>db_file<<', **kwargs)¶ - Firework 1 : write QChem input for an FF optimization,
- run FF_opt QCJob, parse directory and insert into db, pass relaxed molecule to fw_spec and on to fw2,
- Firework 2 : write QChem input for an optimization in the
- presence of a PCM, using the molecule passed from fw1,
run FF_opt QCJob, parse directory and insert into db
- Args:
molecule (Molecule): input molecule to be optimized and run. pcm_dielectric (float): The PCM dielectric constant. max_cores (int): Maximum number of cores to parallelize over.
Defaults to 32.- qchem_input_params (dict): Specify kwargs for instantiating the input set parameters.
- Basic uses would be to modify the default inputs of the set, such as dft_rung, basis_set, pcm_dielectric, scf_algorithm, or max_scf_cycles. See pymatgen/io/qchem/sets.py for default values of all input parameters. For instance, if a user wanted to use a more advanced DFT functional, include a pcm with a dielectric of 30, and use a larger basis, the user would set qchem_input_params = {“dft_rung”: 5, “pcm_dielectric”: 30, “basis_set”: “6-311++g**”}. However, more advanced customization of the input is also possible through the overwrite_inputs key which allows the user to directly modify the rem, pcm, smd, and solvent dictionaries that QChemDictSet passes to inputs.py to print an actual input file. For instance, if a user wanted to set the sym_ignore flag in the rem section of the input file to true, then they would set qchem_input_params = {“overwrite_inputs”: “rem”: {“sym_ignore”: “true”}}. Of course, overwrite_inputs could be used in conjuction with more typical modifications, as seen in the test_double_FF_opt workflow test.
qchem_cmd (str): Command to run QChem. db_file (str): path to file containing the database credentials. kwargs (keyword arguments): additional kwargs to be passed to Workflow
- Returns:
- Workflow
atomate.qchem.workflows.base.fragmentation module¶
-
atomate.qchem.workflows.base.fragmentation.
get_fragmentation_wf
(molecule, depth=1, open_rings=True, additional_charges=None, do_triplets=True, pcm_dielectric=None, do_optimization=True, max_cores='>>max_cores<<', qchem_input_params=None, name='FF then fragment', qchem_cmd='>>qchem_cmd<<', db_file='>>db_file<<', check_db=True, **kwargs)¶ - Args:
molecule (Molecule): input molecule to be fragmented. depth (int): The number of levels of iterative fragmentation to perform,
where each evel will include fragments obtained by breaking one bond of a fragment one level up. If set to 0, instead all possible fragments are generated using an alternative, non-iterative scheme. Defaults to 1.- open_rings (bool): Whether or not to open any rings encountered during fragmentation.
- Defaults to True. If true, any bond that fails to yield disconnected graphs when broken is instead removed and the entire structure is optimized with OpenBabel in order to obtain a good initial guess for an opened geometry that can then be put back into QChem to be optimized without the ring just reforming.
- additional_charges (list): List of additional charges besides the defaults described in the
- firetask. For example, if a principle molecule with a +2 charge is provided, by default all fragments will be calculated with +1 and +2 charges. If the user includes additional_charges=[0] then all fragments will be calculated with 0, +1, and +2 charges. Additional charge values of 1 or 2 would not cause any new charges to be calculated as they are already done. Defaults to [].
- do_triplets (bool): Whether to simulate triplets as well as singlets for molecules with
- an even number of electrons. Defaults to True.
pcm_dielectric (float): The PCM dielectric constant. do_optimization (bool): Whether or not to optimize the given molecule
before fragmentation. Defaults to True.- max_cores (int): Maximum number of cores to parallelize over.
- Value obtained from the environment by default.
- qchem_input_params (dict): Specify kwargs for instantiating the input set parameters.
- Basic uses would be to modify the default inputs of the set, such as dft_rung, basis_set, pcm_dielectric, scf_algorithm, or max_scf_cycles. See pymatgen/io/qchem/sets.py for default values of all input parameters. For instance, if a user wanted to use a more advanced DFT functional, include a pcm with a dielectric of 30, and use a larger basis, the user would set qchem_input_params = {“dft_rung”: 5, “pcm_dielectric”: 30, “basis_set”: “6-311++g**”}. However, more advanced customization of the input is also possible through the overwrite_inputs key which allows the user to directly modify the rem, pcm, smd, and solvent dictionaries that QChemDictSet passes to inputs.py to print an actual input file. For instance, if a user wanted to set the sym_ignore flag in the rem section of the input file to true, then they would set qchem_input_params = {“overwrite_inputs”: “rem”: {“sym_ignore”: “true”}}. Of course, overwrite_inputs could be used in conjuction with more typical modifications, as seen in the test_double_FF_opt workflow test.
qchem_cmd (str): Command to run QChem. Supports env_chk. db_file (str): path to file containing the database credentials. check_db (bool): Whether or not to check the database for equivalent
structures before adding new fragment fireworks. Defaults to True.kwargs (keyword arguments): additional kwargs to be passed to Workflow
- Returns:
Workflow with the following fireworks:
- Firework 1 : write QChem input for an FF optimization,
- run FF_opt QCJob, parse directory and insert into db, pass relaxed molecule to fw_spec and on to fw2,
- Firework 2 : find all unique fragments of the optimized molecule
- and add a frequency flattening optimize FW to the workflow for each one
Note that Firework 1 is only present if do_optimization=True.
atomate.qchem.workflows.base.torsion_potential module¶
-
atomate.qchem.workflows.base.torsion_potential.
get_wf_torsion_potential
(molecule, atom_indexes, angles, rem, name='torsion_potential', qchem_cmd='>>qchem_cmd<<', multimode='>>multimode<<', max_cores='>>max_cores<<', db_file=None, **kwargs)¶ Returns a workflow to the torsion potential for a molecule.
- Firework 1 : write QChem input for an optimization,
- run Qchem, parse output and insert into db, pass relaxed molecule to fw_spec and on to fw2,
- Firework 2 : rotate molecule torsion to a particular angle,
- write QChem input for an optimization, run Qchem, parse output and insert into db
last Firework : add analysis code at some point
- Args:
molecule (Molecule): Input molecule (needs to be a pymatgen molecule object) atom_indexes (list of ints): list of atom indexes in the torsion angle to be rotated (i.e. [6, 8, 9, 10]) angles (list of floats): list of all the torsion angles to run rem (list of two rem dictionaries): a list with two rem dictionaries, one for the first optimization and one for the second constrained optimization name (str): Name for the workflow. qchem_cmd (str): Command to run QChem. Defaults to qchem. multimode (str): Parallelization scheme, either openmp or mpi. input_file (str): Name of the QChem input file. Defaults to mol.qin. output_file (str): Name of the QChem output file. Defaults to mol.qout. max_cores (int): Maximum number of cores to parallelize over. Defaults to 32. qchem_input_params (dict): Specify kwargs for instantiating the input set parameters.
For example, if you want to change the DFT_rung, you should provide: {“DFT_rung”: …}. Defaults to None.db_file (str): Path to file specifying db credentials to place output parsing. **kwargs: Other kwargs that are passed to Firework.__init__.
Returns: Workflow