scine_puffin.jobs.turbomole_geometry_optimization¶
Classes
A job optimizing the geometry of a given structure with the Turbomole program, in search of a local minimum on the potential energy surface. |
- class scine_puffin.jobs.turbomole_geometry_optimization.TurbomoleGeometryOptimization[source]¶
A job optimizing the geometry of a given structure with the Turbomole program, in search of a local minimum on the potential energy surface. Optimizing a given structure’s geometry, generating a new minimum energy structure, if successful.
- Order Name
turbomole_geometry_optimization
- Optional Settings
Optional settings are read from the
settings
field, which is part of anyCalculation
stored in a SCINE Database. Possible settings for this job are:- cartesian_constraintsList[int]
A list of atom indices of the atoms which positions will be constrained during the optimization.
- max_scf_iterationsint
The number of allowed SCF cycles until convergence. Default value is 30.
- transform_coordinatesbool
Switch to transform the input coordinates from redundant internal to cartesian coordinates. Setting this value to True and hence performing the calculation in Cartesian coordinates is helpful in rare occasions where the calculation with redundant internal coordinates fails. The optimization will take more time but is more likely to end successfully. The default is False.
- convergence_max_iterationsint
The maximum number of geometry optimization cycles.
- scf_dampingbool
Increases damping during the SCF by modifying the $scfdamp parameter in the control file. The default is False.
- scf_orbitalshiftfloat
Shifts virtual orbital energies upwards. Default value is 0.1.
- convergence_delta_valueint
The convergence criterion for the electronic energy difference between two steps. The default value is 1E-6.
- calculate_loewdin_chargesbool
Calculates the Loewdin partial charges. The default is False.
- self_consistence_criterionfloat
The self consistence criterion corresponding to the maximum energy change between two SCF cycles resulting in convergence. Default value ist 1E-6.
- spin_modestring
Sets the spin mode. If no spin mode is set, Turbomole’s default for the corresponding system is chosen. Options are: restricted, unrestricted.
- Required Packages
SCINE: Database (present by default)
SCINE: Utils (present by default)
The Turbomole program has to be available
- Generated Data
If successful the following data will be generated and added to the database:
- Structures
A new minimum energy structure.
- Properties
The
electronic_energy
associated with the new structure andatomic_charges
for all atoms, if requested.
- archive(archive: str) None ¶
Archives all files existent in the job’s directory into tarball named with the job’s ID. The tarball is then moved to the given destination.
- Parameters:
- archivestr
The path to move the resulting tarball to.
- capture_raw_output() Tuple[str, str] ¶
Tries to capture the raw output of the calculation context and save it in the raw_output field of the configured calculation. This should never throw.
Notes
Requires run configuration
- classmethod check_configuration(instance: T) typing_extensions.TypeGuard[T] ¶
- static check_duplicate_property(structure: db.Structure, properties: db.Collection, property_name: str, model: db.Model) db.ID | bool ¶
Checks for a property that is an exact match for the one queried here. Exact match meaning that key and model both are matches.
- Parameters:
- propertiesdb.Collection (Scine::Database::Collection)
The collection housing all properties.
- property_namestr
The name (key) of the queried property, e.g.
electronic_energy
.- modeldb.Model (Scine::Database::Model)
The model used in the calculation that resulted in this property.
- structuredb.Structure (Scine::Database::Structure)
The structure to be checked in. The structure has to be linked to its collection.
- Returns:
- IDdb.ID (Scine::Database::ID)
Returns
False
if there is no existing property like the one queried or the ID of the first duplicate.
- config: Configuration¶
- configure_run(manager: db.Manager, calculation: db.Calculation, config: Configuration) None ¶
Configures a job for a given Calculation to do tasks in the run function
- Parameters:
- managerdb.Manager (Scine::Database::Manager)
The manager of the database holding all collections
- calculationdb.Calculation (Scine::Database::Calculation)
The calculation to be performed
- configConfiguration
The configuration of the Puffin doing the job
- failed_file() str ¶
Returns the path to the file indicating a failed calculation, None if job has not been prepared
- parse_results() Tuple[Any, float] [source]¶
Parse energy and extract output structure from coord file
- postprocess_calculation_context() bool ¶
Postprocesses a calculation context, pushing all errors and comments.
- Returns:
- True if the job succeeded, False otherwise.
- prepare(job_dir: str, id: db.ID) None ¶
Prepares the actual job. This function has to be implemented by any job that shall be added to Puffins job portfolio.
- Parameters:
- job_dirstr
The path to the directory in which all jobs are executed.
- iddb.ID (Scine::Database::ID)
The calculation that triggered the execution of this job.
- prepare_calculation(structure: db.Structure, calculation_settings: utils.ValueCollection, model: db.Model, job: db.Job) None ¶
- run(manager: db.Manager, calculation: db.Calculation, config: Configuration) bool [source]¶
See Job.run()
- store_property(properties: db.Collection, property_name: str, property_type: str, data: Any, model: db.Model, calculation: db.Calculation, structure: db.Structure, replace: bool = True) db.Property | None ¶
Adds a single property into the database, connecting it with a given structure and calculation (it’s results section) and also
- Parameters:
- propertiesdb.Collection (Scine::Database::Collection)
The collection housing all properties.
- property_namestr
The name (key) of the new property, e.g.
electronic_energy
.- property_typestr
The type of property to be added, e.g.
NumberProperty
.- dataAny (According to ‘property_type’)
The data to be stored in the property, the type of this object is dependent on the type of property requested. A
NumberProperty
will require afloat
, aVectorProperty
will require aList[float]
, etc.- modeldb.Model (Scine::Database::Model)
The model used in the calculation that resulted in this property.
- calculationdb.Calculation (Scine::Database::Calculation)
The calculation that resulted in this property. The calculation has to be linked to its collection.
- structuredb.Structure (Scine::Database::Structure)
The structure for which the property is to be added. The properties field of the structure will receive an additional entry, or have an entry replaced, based on the options given to this function. The structure has to be linked to its collection.
- replacebool
If true, replaces an existing property (identical name and model) with the new one. This option is true by default. If false, doesnothing in the previous case, and returns
None
- Returns:
- propertyDerived of db.Property (Scine::Database::Property)
The property, a derived class of db.Property, linked to the properties’ collection, or
None
if no property was generated due to duplication.
- success_file() str ¶
Returns the path to the file indicating a successful calculation, empty string if job has not been prepared