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#
classmethod dscf(define_parameters=None, **kwargs)[source]#

Create Scf flow using dscf.

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:

max_cycles: int | None = None#
name: str = 'Jobex Flow Maker'#
post_scf: bool = False#
pre_scf: bool = True#
pre_scf_flow_maker: ScfFlowMaker#
classmethod ridft(define_parameters=None, **kwargs)[source]#

Create Scf flow using ridft.

classmethod riper(define_parameters=None, **kwargs)[source]#

Create Scf flow using riper.

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#
classmethod dscf(define_parameters=None, **kwargs)[source]#

Create Scf flow using dscf.

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.

name: str = 'Scf Flow Maker'#
classmethod ridft(define_parameters=None, **kwargs)[source]#

Create Scf flow using ridft.

classmethod riper(define_parameters=None, **kwargs)[source]#

Create Scf flow using riper.

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