atomate2.turbomole.flows.core module#
Definition of core Turbomole flow makers.
- class atomate2.turbomole.flows.core.JobexFlowMaker(name: str = 'Jobex Flow Maker', define_maker: ~atomate2.turbomole.jobs.core.DefineMaker = <factory>, max_cycles: int | None = None, jobex_maker: ~atomate2.turbomole.jobs.core.JobexMaker = <factory>, scf_maker: ~atomate2.turbomole.jobs.core.DscfMaker | ~atomate2.turbomole.jobs.core.RidftMaker | ~atomate2.turbomole.jobs.core.RiperMaker = <factory>, pre_scf_flow_maker: ~atomate2.turbomole.flows.core.ScfFlowMaker = <factory>, pre_scf: bool = True, post_scf: bool = False)[source]#
Bases:
Maker
Maker for a define + jobex flow.
- Parameters:
define_maker – Maker for define.
jobex_maker – Maker for jobex job.
scf_maker – Maker for scf job.
- Options:
- max_cycles: max number of Jobex (geometry relaxation) cycles. If not provided,
the value from the jobex_maker is used (by default: 1000). If both jobex_maker and max_cycles are provided, max_cycles takes precedence.
- pre_scf:
- if True:
The flow will be: ScfFlow + JobexJob
- else:
The flow will be: DefineJob + JobexJob
- post_scf:
- if True:
The flow will end with a ScfJob. Since Jobex = [dscf, grad, statpt], the final energy will not be exactly the same. With this option on, a final scf is performed so that the energy in control is rewritten consistently.
- else:
The final energy in control is the one from the N-1 step, while the one in Jobex output (geometry step N) is slightly different.
- define_maker: DefineMaker#
- jobex_maker: JobexMaker#
- make(system, charge=None, unpaired_electrons=None, prev_output=None)[source]#
Make a define + jobex + final scf flow.
- Parameters:
system – either a pymatgen Molecule or Structure or a turbomoleio MoleculeSystem or PeriodicSystem.
charge – charge of the system.
unpaired_electrons – number of unpaired electrons.
prev_output – a previous output to start from.
- Returns:
Flow –
a define job
a jobex job (with or without –riper option for periodic systems)
a final scf job (dscf or ridft) to make the output energy consistent
- Return type:
jobflow Flow performing sequentially:
- pre_scf_flow_maker: ScfFlowMaker#
- scf_maker: DscfMaker | RidftMaker | RiperMaker#
- class atomate2.turbomole.flows.core.ScfFlowMaker(name: str = 'Scf Flow Maker', define_maker: ~atomate2.turbomole.jobs.core.DefineMaker = <factory>, scf_maker: ~atomate2.turbomole.jobs.core.DscfMaker | ~atomate2.turbomole.jobs.core.RidftMaker | ~atomate2.turbomole.jobs.core.RiperMaker = <factory>)[source]#
Bases:
Maker
Maker for a define + scf flow.
- Parameters:
define_maker – Maker for define.
scf_maker – Maker for dscf/ridft/riper job.
- define_maker: DefineMaker#
- make(system, charge=None, unpaired_electrons=None, prev_output=None)[source]#
Make a define+scf flow.
- Parameters:
system – either a pymatgen Molecule or Structure or a turbomoleio MoleculeSystem or PeriodicSystem.
charge – charge of the system.
unpaired_electrons – number of unpaired electrons.
prev_output – a previous output to start from.
- Returns:
Flow
- Return type:
jobflow Flow performing define and scf sequentially.
- scf_maker: DscfMaker | RidftMaker | RiperMaker#
- atomate2.turbomole.flows.core.check_periodicity_consistence(scf_maker: DscfMaker | RidftMaker | RiperMaker = None, system: Molecule | MoleculeSystem | Structure | PeriodicSystem = None)[source]#
Check the system periodicity and the consistency of the maker.
If system is Molecule or MoleculeSystem, self.scf_maker can only be Dscf or Ridft, else if system is a Structure or a PeriodicSystem, self.scf_maker must be Riper.
- Parameters:
scf_maker – maker object from atomate2-turbomole
system – pymatgen Molecule/Structure object or turbomoleio MoleculeSystem/PeriodicSystem object.
- Returns:
None