The Input File

General

The concept of the input file is based on the definition of so-called “commands”. A command in the input file can have one of the two following forms and is always case-insensitive:

  1. key = value;

  2. key = [value1, value2, …];

Note

The semicolon add the end of both command definitions is necessary, while the number of whitespace can be arbitrary at any position of the command as long as key and value are not split in parts.

Command definition 1) represents a single value command, whereas definition 2) can be considered as a list of input values to which will always be represented with [].

Command Usage

Due to the use of ; one line of the input file can contain multiple commands and blank lines will be ignored.

Comments

Every character following a # will be ignored. The # as a comment flag can be used also in all setup files - with some exceptions when contiguous input blocks are necessary.

Types of Input Values

In the following sections the types of the input values will be denoted via {}, where {[]} represents a list of types:

Type

Description

{int}

integer

{uint+}

positive integers

{uint}

positive integers including 0

{double}

floating point numbers

{string}

-

{file}

-

{path}

-

{pathFile}

equal to {path/file}

{bool}

true/false

{selection}

selection

Note

The {selection} type is used to select a specific atom or group of atoms. If the PQ software package was build including python3.12 dependencies, the user can apply the selection grammar defined in the PQAnalysis package. However, if PQ was compiled without these dependencies it is possible to index via the atomic indices starting from 0. If more than one atom index should be selected, the user can give a list of indices like {0, 1, 2}. If a range of atom indices should be selected the user can use the following syntax {0-5, 10-15} or {0..5, 10-15} or {0..5, 10..15}, where all would be equivalent to {0, 1, 2, 3, 4, 5, 10, 11, 12, 13, 14, 15}.

Input Keys

Note

Some of the following keys are necessary in the input file and are therefore marked with a *. If there exists a default value for the possible options related to a key, they will be marked with -> after the command.

General Keys

Jobtype

Key

jobtype* = {string}

With the jobtype keyword the user can choose out of different engines to perform (not only) MD simulations.

Possible options are:

  1. mm-md - represents a full molecular mechanics molecular dynamics simulation either performed via the Guff formalism or the Amber force field

  2. qm-md - represents a full quantum mechanics molecular dynamics simulation. For more information see the QM Keys keywords section.

  3. qm-rpmd - represents a full quantum mechanics ring polymer molecular dynamics simulation. For more information see the MACE_MODEL_SIZE keywords section

  4. qmmm-md - represents a hybrid quantum mechanics - molecular mechanics molecular dynamics simulation. (Not implemented yet)

  5. mm-opt - represents a geometry optimization calculation using molecular mechanics.

Timestep

Key

timestep* = {double} fs

With the timestep keyword the time step in fs of one molecular dynamics loop can be set.

NStep

Key

nstep* = {uint+}

The ǹstep keyword sets the total amount of MD steps to be performed within the next simulation run.

FLOATING_POINT_TYPE

Key

floating_point_type = {string} -> “double”

With the floating_point_type keyword the user can choose the precision of the floating point numbers used in the QM calculations if enabled by the external QM program/model.

Possible options are:

  1. double (default) - double precision floating point numbers are used

  2. float - single precision floating point numbers are used

Integrator

Key

integrator = {string} -> “v-verlet”

With the integrator keyword the user can choose the integrator type which should be applied.

Possible options are:

  1. v-verlet (default) - represents the Velocity-Verlet integrator

Virial

Key

virial = {string} -> “molecular”

With the virial keyword the user can control if an intramolecular virial correction should be applied on the basis of molecular units definitions form the moldescriptor file.

Possible options are:

  1. molecular (default) - to the resulting virial from the force contributions an intramolecular correction will be applied.

  2. atomic - no intramolecular correction to the resulting virial will be applied

Start_File

Key

start_file* = {file}

The start_file keyword sets the name of the start file for an MD simulation of any kind.

RPMD_Start_File

Key

rpmd_start_file = {file}

The rpmd_start_file keyword is used to continue a ring polymer MD simulation containing positions, velocities and forces of all atoms of each bead of the ring polymer.

General Output Keys

Note

The PQ application has a special naming convention for output files. For every job type a certain set of output files is written per default. If no output file names are given all prefixes of the output files will be named default.<ext>. If at least one of the output file keys was given in the input file - the program will determine the most common prefix (i.e. string before the first . character) and set it with the respective extension for all unspecified output files.

This feature enables easier post-processing of data and also easier deletion of all output files as PQ does not overwrite any existing output files and will throw an error.

Output_Freq

Key

output_freq = {uint} -> 1

The output_freq keyword sets the frequency (i.e. every n-th step) of how often the application should write into the output files. For a complete dry run without any output files it is also possible to set it to 0.

default value = 1

File_Prefix

Key

file_prefix = {string}

The file_prefix keyword allows the user to set a common prefix name for all generated output files. The resulting names of the output files should be self-explanatory according to their unique file extension.

Output_File

output_file = {file} -> “default.out”

The output_file keyword sets the name for the log file, in which all important information about the performed calculation can be found.

default value = “default.out”

MD Output File Keys

All of the following output files presented in the MD Output Files section are wriiten during calculations using MD related jobtypes.

Info_File

Key

info_file = {file} -> “default.info”

The info_file keyword sets the name for the info file, in which the most important physical properties of the last written step can be found.

default value = “default.info”

Energy_File

Key

energy_file = {file} -> “default.en”

The energy_file keyword sets the name for the energy file, in which the (almost) all important physical properties of the full simulation can be found.

default value = “default.en”

Instant_Energy_File

Key

instant_energy_file = {file} -> “default.instant_en”

The instant_energy_file keyword sets the name for the instant energy file, in which the energy of the system at each step can be found.

default value = “default.instant_en”

Rst_File

Key

rst_file = {file} -> “default.rst”

The rst_file keyword sets the name for the restart file, which contains all necessary information to restart (i.e. continue) the calculation from its timestamp.

default value = “default.rst”

Traj_File

Key

traj_file = {file} -> “default.xyz”

The traj_file keyword sets the name for the trajectory file of the atomic positions.

default value = “default.xyz”

Vel_File

Key

vel_file = {file} -> “default.vel”

The vel_file keyword sets the name for the trajectory file of the atomic velocities.

default value = “default.vel”

Force_File

Key

force_file = {file} -> “default.force”

The force_file keyword sets the name for the trajectory file of the atomic forces.

default value = “default.force”

Charge_File

Key

charge_file = {file} -> “default.chrg”

The charge_file keyword sets the name for the trajectory file of the atomic partial charges.

default value = “default.chrg”

Momentum_File

Key

momentum_file = {file} -> “default.mom”

The momentum_file keyword sets the name for output file containing the total linear momentum of the system, the individual box momenta in each direction as well as the corresponding angular momenta.

default value = “default.mom”

Virial_File

Key

virial_file = {file} -> “default.vir”

The virial_file keyword sets the name for the output file containing the virial tensor of the system.

default value = “default.vir”

Stress_File

Key

stress_file = {file} -> “default.stress”

The stress_file keyword sets the name for the output file containing the stress tensor of the system.

default value = “default.stress”

Box_File

Key

box_file = {file} -> “default.box”

The box_file keyword sets the name for the output file containing the lattice parameters a, b, c, \(\alpha\), \(\beta\), \(\gamma\).

default value = “default.box”

RPMD Output File Keys

All of the following output files presented in the RPMD Output Files section are wriiten during calculations using ring polymer MD related jobtypes. These files represents the trajectories of all individual beads.

RPMD_Restart_File

Key

rpmd_restart_file = {file} -> “default.rpmd.rst”

The rpmd_restart_file keyword sets the name for the ring polymer restart file, which contains all necessary information to restart (i.e. continue) the calculation from its timestamp.

default value = “default.rpmd.rst”

RPMD_Traj_File

Key

rpmd_traj_file = {file} -> “default.rpmd.xyz”

The rpmd_traj_file keyword sets the name for the file containing positions of all atoms of each bead of the ring polymer trajectory.

default value = “default.rpmd.xyz”

RPMD_Vel_File

Key

rpmd_vel_file = {file} -> “default.rpmd.vel”

The rpmd_vel_file keyword sets the name for the file containing velocities of all atoms of each bead of the ring polymer trajectory.

default value = “default.rpmd.vel”

RPMD_Force_File

Key

rpmd_force_file = {file} -> “default.rpmd.force”

The rpmd_force_file keyword sets the name for the file containing forces of all atoms of each bead of the ring polymer trajectory.

default value = “default.rpmd.force”

RPMD_Charge_File

Key

rpmd_charge_file = {file} -> “default.rpmd.chrg”

The rpmd_charge_file keyword sets the name for the file containing partial charges of all atoms of each bead of the ring polymer trajectory.

default value = “default.rpmd.chrg”

RPMD_Energy_File

Key

rpmd_energy_file = {file} -> “default.rpmd.en”

The rpmd_energy_file keyword sets the name for the file containing relevant energy data for each ring polymer bead of the simulation.

default value = “default.rpmd.en”

Input (Setup) File Keys

In order to setup certain calculations additional input files have to be used. The names of these files have to be specified in the input file. For further information about these input files can be found in the Setup Files section.

Moldesctiptor_File

Key

moldescriptor_file = {file} -> “moldescriptor.dat”

default value = “moldescriptor.dat”

Guff_File

Key

guff_file = {file} -> “guff.dat”

default value = “guff.dat”

Topology_File

Key

topology_file = {file}

Parameter_File

Key

parameter_file = {file}

MSHake_File

Key

mshake_file = {file}

Intra-NonBonded_File

Key

intra-nonbonded_file = {file}

Simulation Box Keys

Density

Key

density = {double} kgL⁻¹

With the density keyword the box dimension of the system can be inferred from the total mass of the simulation box.

Note

This keyword implies that the simulation box has cubic shape. Furthermore, the density keyword will be ignored if in the start file of a simulation any box information is given.

RCoulomb

Key

rcoulomb = {double} \(\mathrm{\mathring{A}}\) -> 12.5 \(\mathrm{\mathring{A}}\)

With the rcoulomb keyword the radial cut-off in \(\mathrm{\mathring{A}}\) of Coulomb interactions for MM-MD type simulations can be set. If pure QM-MD type simulations are applied this keyword will be ignored and the value will be set to 0 \(\mathrm{\mathring{A}}\).

default value = 12.5 \(\mathrm{\mathring{A}}\) (for MM-MD type simulations)

Init_Velocities

Key

init_velocities = {bool} -> false

To initialize the velocities of the system according to the target temperature with a Boltzmann distribution the user has to set the init_velocities to true.

Possible options are:

  1. false (default) - velocities are taken from start file

  2. true - velocities are initialized according to a Boltzmann distribution at the target temperature.

Temperature Coupling Keys

Temperature

Key

temp = {double} K

With the temp keyword the target temperature in K of the system can be set.

Note

This keyword is not restricted to the use of any temperature coupling method, as it is used e.g. also for the initialization of Boltzmann distributed velocities or the reset of the system temperature.

Start_Temperature

Key

start_temp = {double} K

With the start_temp keyword the initial temperature in K of the system can be set. If a value is given the PQ application will perform a temperature ramping from the start_temp to the temp value.

End_Temperature

Key

end_temp = {double} K

The end_temp keyword is a synonym for the temp keyword and can be used to set the target temperature of the system. It cannot be used in combination with the temp keyword.

Temperature_Ramp_Steps

Key

temp_ramp_steps = {uint+}

With the temp_ramp_steps keyword the user can specify the number of steps for the temperature ramping from the start_temp to the temp value. If no starting temperature is given the keyword will be ignored. If a starting temperature is given and this keyword is omitted the temperature ramping will be performed over the full simulation time.

default value = full simulation time

Temperature_Ramp_Frequency

Key

temp_ramp_frequency = {uint+} -> 1

With the temp_ramp_frequency keyword the user can specify the frequency of the temperature ramping from the start_temp to the temp value. If no starting temperature is given the keyword will be ignored. If a starting temperature is given and this keyword is omitted the temperature ramping will be performed, so that each step the temperature is increased by the same value.

default value = 1 step

Thermostat

Key

thermostat = {string} -> “none”

With the thermostat keyword the temperature coupling method can be chosen.

Possible options are:

  1. none (default) - no thermostat is set, hence {N/µ}{p/V}E settings are applied.

  2. berendsen - the Berendsen weak coupling thermostat

  3. velocity_rescaling - the stochastic velocity rescaling thermostat

  4. langevin - temperature coupling via stochastic Langevin dynamics

  5. nh-chain - temperature coupling via Nose Hoover extended Lagrangian

T_Relaxation

This keyword is used in combination with the Berendsen and velocity rescaling thermostat.

Key

t_relaxation = {double} ps -> 0.1 ps

With the t_relaxation keyword the relaxation time in ps (i.e. \(\tau\)) of the Berendsen or stochastic velocity rescaling thermostat is set.

default value = 0.1 ps

Friction

Key

friction = {double} ps⁻¹ -> 0.1 ps⁻¹

With the friction keyword the friction in ps⁻¹ applied in combination with the Langevin thermostat can be set.

default value = 0.1 ps⁻¹

NH-Chain_Length

Key

nh-chain_length = {uint+} -> 3

With the nh-chain_length keyword the length of the chain for temperature control via an extended Nose-Hoover Lagrangian can be set.

default value = 3

Coupling_Frequency

Key

coupling_frequency = {double} cm⁻¹ -> 1000 cm⁻¹

With the coupling_frequency keyword the coupling frequency of the Nose-Hoover chain in cm⁻¹ can be set.

default value = 1000 cm⁻¹

Pressure Coupling Keys

Pressure

Key

pressure = {double} bar

With the pressure keyword the target pressure in bar of the system can be set.

Note

This keyword is only used if a manostat for controlling the pressure is explicitly defined.

Manostat

Key

manostat = {string} -> “none”

With the manostat keyword the type of the pressure coupling can be chosen.

Possible options are:

  1. none (default) - no pressure coupling is applied (i.e. constant volume)

  2. berendsen - Berendsen weak coupling manostat

  3. stochastic_rescaling - stochastic cell rescaling manostat

P_Relaxation

This keyword is used in combination with the Berendsen and stochastic cell rescaling manostat.

Key

p_relaxation = {double} ps -> 0.1 ps

With the p_relaxation keyword the relaxation time in ps (i.e. \(\tau\)) of the Berendsen or stochastic cell rescaling manostat is set.

default value = 0.1 ps

Compressibility

This keyword is used in combination with the Berendsen and stochastic cell rescaling manostat.

Key

compressibility = {double} bar⁻¹ -> 4.591e-5 bar⁻¹

With the compressibility keyword the user can specify the compressibility of the target system in bar⁻¹ for the Berendsen and stochastic cell rescaling manostat.

default value = 4.591e-5 bar⁻¹ (compressibility of water)

Isotropy

Key

isotropy = {string} -> “isotropic”

With the isotropy keyword the isotropy of the pressure coupling for all manostat types is controlled.

Possible options are:

  1. isotropic (default) - all axes are scaled with the same scaling factor

  2. xy - semi-isotropic settings, with axes x and y coupled isotropic

  3. xz - semi-isotropic settings, with axes x and z coupled isotropic

  4. yz - semi-isotropic settings, with axes y and z coupled isotropic

  5. anisotropic - all axes are coupled in an anisotropic way

  6. full_anisotropic - all axes are coupled in an anisotropic way and the box angles are also scaled

Reset Kinetics Keys

NScale

Key

nscale = {uint} -> 0

With the nscale keyword the user can specify the first n steps in which the temperature is reset via a hard scaling approach to the target temperature.

Note

Resetting the temperature to the target temperature does imply also a subsequent reset of the total box momentum. Furthermore, resetting to the target temperature does not necessarily require a constant temperature ensemble setting.

default value = 0 (i.e. never)

FScale

Key

fscale = {uint} -> nstep + 1

With the fscale keyword the user can specify the frequency f at which the temperature is reset via a hard scaling approach to the target temperature.

Note

Resetting the temperature to the target temperature does imply also a subsequent reset of the total box momentum. Furthermore, resetting to the target temperature does not necessarily require a constant temperature ensemble setting.

default value = nstep + 1 (i.e. never)

special case = 0 -> nstep + 1

NReset

Key

nreset = {uint} -> 0

With the nreset keyword the user can specify the first n steps in which the total box momentum is reset.

default value = 0 (i.e. never)

FReset

Key

freset = {uint} -> nstep + 1

With the freset keyword the user can specify the frequency f at which the total box momentum is reset.

default value = nstep + 1 (i.e. never)

special case = 0 -> nstep + 1

NReset_Angular

Key

nreset_angular = {uint} -> 0

With the nreset_angular keyword the user can specify the first n steps in which the total angular box momentum is reset.

Danger

This setting should be used very carefully, since in periodic system a reset of the angular momentum can result in some very unphysical behavior.

default value = 0 (i.e. never)

FReset_Angular

Key

freset_angular = {uint} -> nstep + 1

With the freset_angular keyword the user can specify the frequency f at which the total angular box momentum is reset.

Danger

This setting should be used very carefully, since in periodic system a reset of the angular momentum can result in some very unphysical behavior.

default value = nstep + 1 (i.e. never)

special case = 0 -> nstep + 1

Constraints Keys

Shake

Key

shake = {string} -> “off”

With the shake keyword it is possible to activate the SHAKE/RATTLE algorithm for bond constraints.

Possible options are:

  1. off (default) - no shake will be applied

  2. on - SHAKE for bond constraints defined in the The Topology File will be applied.

  3. shake - SHAKE for bond constraints defined in the The Topology File will be applied.

  4. mshake - M-SHAKE for bond constraints defined in a special The M-SHAKE File will be applied. As the M-SHAKE algorithm is designed for the treatment of rigid body molecular units the general shake algorithm will be activated automatically along with the M-SHAKE algorithm. The shake bonds can be defined as usual in the The Topology File and if no SHAKE bonds are defined only the M-SHAKE algorithm will be applied (without any overhead)

Shake-Tolerance

Key

shake-tolerance = {double} -> 1e-8

With the shake-tolerance keyword the user can specify the tolerance, with which the bond-length of the shaked bonds should converge.

default value = 1e-8

Shake-Iter

Key

shake-iter = {uint+} -> 20

With the shake-iter keyword the user can specify the maximum number of iteration until the convergence of the bond-lengths should be reached within the shake algorithm.

default value = 20

Rattle-Tolerance

Key

rattle-tolerance = {double} s⁻¹kg⁻¹ -> 1e4 s⁻¹kg⁻¹

With the rattle-tolerance keyword the user can specify the tolerance in s⁻¹kg⁻¹, with which the velocities of the shaked bonds should converge.

default value = 20 s⁻¹kg⁻¹

Rattle-Iter

Key

rattle-iter = {uint+} -> 20

With the rattle-iter keyword the user can specify the maximum number of iteration until the convergence of the velocities of the shaked bond-lengths should be reached within the rattle algorithm.

default value = 20

Distance-Constraints

Key

distance-constraints = {string} -> “off”

With the distance-constraints keyword it is possible to activate the distance constraints for the simulation. The distance constraints are defined in the The Topology File.

MM Keys

NonCoulomb

Key

noncoulomb = {string} -> “guff”

With the noncoulomb keyword the user can specify which kind of [GUFF formalism](#guffdatFile) should be used for parsing the guff.dat input file. <span style=”color:red”><b>Note</b></span>: This keyword is only considered if an MM-MD type simulation is requested and the force field is not turned on.

Possible options are:

  1. guff (default) - full GUFF formalism

  2. lj - Lennard Jones quick routine

  3. buck - Buckingham quick routine

  4. morse - Morse quick routine

ForceField

Key

forcefield = {string} -> “off”

With the forcefield keyword the user can switch from the GUFF formalism to force field type simulation (For details see Reference Manual).

Possible options are:

  1. off (default) - GUFF formalism is applied

  2. on - full force field definition is applied

  3. bonded - non bonded interaction are described via GUFF formalism and bonded interactions via force field approach

Long Range Correction

Long_Range

Key

long_range = {string} -> “none”

With the long_range correction keyword the user can specify the type of <b>Coulombic<B> long range correction, which should be applied during the Simulation.

Possible options are:

  1. none (default) - no long range correction

  2. wolf - Wolf summation

Wolf_Param

Key

wolf_param = {double} -> 0.25

default value = 0.25

QM Keys

QM_PROG

Key

qm_prog = {string}

With the qm_prog keyword the external QM engine for any kind of QM MD simulation is chosen.

Note

This keyword is required for any kind of QM MD simulation!

Possible options are:

  1. dftbplus

  2. pyscf

  3. turbomole

  4. mace - same as mace_mp

  5. mace_off

QM_SCRIPT

Key

qm_script = {file}

With the qm_script keyword the external executable to run the QM engine and to parse its output is chosen. All possible scripts can be found under https://github.com/MolarVerse/PQ/tree/main/src/QM/scripts. Already the naming of the executables should hopefully be self-explanatory in order to choose the correct input executable name.

QM_SCRIPT_FULL_PATH

Key

qm_script_full_path = {pathFile}

Attention

This keyword can not be used in conjunction with the qm_script keyword! Furthermore, this keyword needs to be used in combination with any singularity or static build of PQ. For further details regarding the compilation/installation please refer to the Installation section.

With the qm_script_full_path keyword the user can specify the full path to the external executable to run the QM engine and to parse its output. All possible scripts can be found under https://github.com/MolarVerse/PQ/tree/main/src/QM/scripts. Already the naming of the executables should hopefully be self-explanatory in order to choose the correct input executable name.

QM_LOOP_TIME_LIMIT

Key

qm_loop_time_limit = {double} s -> -1 s

With the qm_loop_time_limit keyword the user can specify the loop time limit in s of all QM type calculations. If the time limit is reached the calculation will be stopped. Default value is -1 s, which means no time limit is set, and the calculation will continue until it is finished. In general all negative values will be interpreted as no time limit.

DISPERSION_CORRECTION

Key

dispersion = {bool} -> false

With the dispersion keyword the user can activate the dispersion correction for the QM calculations - at the moment only enabled for ASE based QM engines.

MACE_MODEL_SIZE

Key

mace_model_size = {string} -> “medium”

With the mace_model_size keyword the user can specify the size of the MACE model for the QM calculations.

Possible options are:

  1. small (default) - small MACE model

  2. medium - medium MACE model

  3. large - large MACE model

Ring Polymer MD Keys

RPMD_n_replica

Key

rpmd_n_replica = {uint+}

With the rpmd_n_replica keyword the number of beads for a ring polymer MD simulation is controlled.

Note

This keyword is required for any kind of ring polymer MD simulation!

QM/MM Keys

QM_Center

Key

qm_center = {selection} -> 0

With the qm_center keyword the user can specify the center of the QM region. The default selection is the first atom of the system (i.e. 0). For more information about the selection grammar see the selectionType section. The qm_center if more than one atom is selected will be by default the center of mass of the selected atoms.

QM_Only_List

Key

qm_only_list = {selection}

With the qm_only_list keyword the user can specify a list of atoms which should be treated as QM atoms only. This means that these atoms can not leave the QM region during the simulation. For more information see the reference manual. For more information about the selection grammar see the selectionType section. By default no atom is selected.

MM_Only_List

Key

mm_only_list = {selection}

With the mm_only_list keyword the user can specify a list of atoms which should be treated as MM atoms only. This means that these atoms can not enter the QM region during the simulation. For more information see the reference manual. For more information about the selection grammar see the selectionType section. By default no atom is selected.

QM_Charges

Key

qm_charges = {string} -> “off”

With the qm_charges keyword the user can specify the charge model for the QM atoms. If the qm_charges keyword is set to off the charges of the QM atoms are taken from the MM model applied. If the qm_charges keyword is set to on the charges of the QM atoms are taken from the QM calculation.

QM_Core_Radius

Key

qm_core_radius = {double} \(\mathrm{\mathring{A}}\) -> 0.0 \(\mathrm{\mathring{A}}\)

With the qm_core_radius keyword the user can specify the core radius in \(\mathrm{\mathring{A}}\) around the qm_center. The default value is 0.0 \(\mathrm{\mathring{A}}\), which means that the core radius is not set and only explicit QM atoms are used for the QM region.

QMMM_Layer_Radius

Key

qmmm_layer_radius = {double} \(\mathrm{\mathring{A}}\) -> 0.0 \(\mathrm{\mathring{A}\)

With the qmmm_layer_radius keyword the user can specify the layer radius in \(\mathrm{\mathring{A}}\) around the qm_center. The default value is 0.0 \(\mathrm{\mathring{A}}\), which means that no special QM/MM treatment is applied.

QMMM_Smoothing_Radius

Key

qmmm_smoothing_radius = {double} \(\mathrm{\mathring{A}}\) -> 0.0 \(\mathrm{\mathring{A}\)

With the qmmm_smoothing_radius keyword the user can specify the smoothing radius in \(\mathrm{\mathring{A}}\) of the QM atoms. The default value is 0.0 \(\mathrm{\mathring{A}}\), which means that the smoothing radius is not set and no smoothing is applied.

Cell List Keys

Cell-List

Key

cell-list = {string} -> “off”

With the cell-list the user can activate a cell-list approach to calculate the pair-interactions in MM-MD simulations (no effect in pure QM-MD type simulations).

Possible options are:

  1. off (default) - brute force routine

  2. on - cell list approach is applied

Cell-Number

Key

cell-number = {uint+} -> 7

With the cell-number keyword the user can set the number of cells in each direction in which the simulation box will be split up (e.g. cell-number = 7 -> total cells = 7x7x7)

default value = 7

Optimization Keys

In order to perform a geometry optimization on of the optimizer jobtypes has to be chosen. (For more info see the Jobtype section)

Optimizer

Key

optimizer = {string}

This keyword is mandatory for any kind of geometry optimization. The user has to specify the optimizer which should be used for the optimization.

Possible options are:

  1. steepest-descent - steepest descent optimizer

  2. ADAM - ADAM optimizer

Learning-Rate-Strategy

Key

learning-rate-strategy = {string} -> “exponential-decay”

With the learning-rate-strategy keyword the user can specify the learning rate strategy for all kind of optimization jobs.

Possible options are:

  1. exponential-decay (default) - exponential decay of the learning rate

  2. constant - constant learning rate

  3. constant-decay - constant decay of the learning rate

Initial-Learning-Rate

Key

initial-learning-rate = {double} -> 0.0001

With the initial-learning-rate keyword the user can specify the initial learning rate for all kind of optimization jobs.

default value = 0.0001

Learning-Rate-Decay

Key

learning-rate-decay = {double}

With the learning-rate-decay keyword the user can specify the decay speed of the learning rate. Pay attention this key is used at the moment for different kind of decay strategies and therefore the value is dependent on the chosen strategy.

Convergence Keys

Energy-Convergence-Strategy

In general the convergence of the geometry optimization is checked by assuring that the absolute and relative energy difference between two consecutive steps is smaller than a certain threshold. The user can choose between different strategies to change this behavior.

Key

energy-conv-strategy = {string} -> “rigorous”

With the energy-conv-strategy keyword the user can specify the energy convergence strategy for all kind of optimization jobs.

Possible options are:

  1. rigorous (default) - both absolute and relative energy difference have to be smaller than the threshold

  2. loose - only one of the two energy differences has to be smaller than the threshold

  3. relative - only the relative energy difference has to be smaller than the threshold

  4. absolute - only the absolute energy difference has to be smaller than the threshold

Enable/Disable Energy Convergence Check

Key

use-energy-conv = {bool} -> true

With the use-energy-conv keyword the user can enable or disable the energy convergence check for all kind of optimization jobs.

Enable/Disable MAX Force Convergence Check

Key

use-max-force-conv = {bool} -> true

With the use-max-force-conv keyword the user can enable or disable the maximum force convergence check for all kind of optimization jobs.

Enable/Disable RMS Force Convergence Check

Key

use-rms-force-conv = {bool} -> true

With the use-rms-force-conv keyword the user can enable or disable the root mean square force convergence check for all kind of optimization jobs.

Energy Convergence Threshold

Key

energy-conv = {double} -> 1e-6

With the energy-conv keyword the user can specify the energy convergence threshold for all kind of optimization jobs. This keyword will set both the absolute and relative energy convergence threshold.

default value = 1e-6

Relative Energy Convergence Threshold

Key

rel-energy-conv = {double} -> 1e-6

With the rel-energy-conv keyword the user can specify the relative energy convergence threshold for all kind of optimization jobs. This keyword overrides the energy-conv keyword.

default value = 1e-6

Absolute Energy Convergence Threshold

Key

abs-energy-conv = {double} -> 1e-6

With the abs-energy-conv keyword the user can specify the absolute energy convergence threshold for all kind of optimization jobs. This keyword overrides the energy-conv keyword.

default value = 1e-6

Force Convergence Threshold

Key

force-conv = {double} -> 1e-6

With the force-conv keyword the user can specify the force convergence threshold for all kind of optimization jobs. This keyword will set both the maximum and root mean square force convergence threshold.

default value = 1e-6

Maximum Force Convergence Threshold

Key

max-force-conv = {double} -> 1e-6

With the max-force-conv keyword the user can specify the maximum force convergence threshold for all kind of optimization jobs. This keyword overrides the force-conv keyword.

default value = 1e-6

RMS Force Convergence Threshold

Key

rms-force-conv = {double} -> 1e-6

With the rms-force-conv keyword the user can specify the root mean square force convergence threshold for all kind of optimization jobs. This keyword overrides the force-conv keyword.