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. Units of the values are given after the {}.

General Keys

Jobtype

Key

jobtype* = {string}

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

Possible options are:

  1. mm-md - Represents a full molecular mechanics molecular dynamics simulation performed via the GUFF formalism and/or the Amber force field. Respective input file keys are found in the MM Keys section.

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

  3. qm-rpmd - Represents a full quantum mechanics ring polymer molecular dynamics simulation. For more information see the ringPolymerMDKeys 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 is set.

NStep

Key

nstep* = {uint+}

The nstep keyword sets the total number of MD steps to be performed within this 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 based on the definition of molecular units in the Moldescriptor setup file.

Possible options are:

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

  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 Restart File 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 for all unspecified output files.

This feature enables easier post-processing of data and deletion of output files as PQ does not overwrite any existing output files.

Output Frequency

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 the output frequency can be set 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.

Log File

Key

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

The output_file keyword sets the name for the Log File, in which important information about the performed calculation can be found.

default value = “default.log”

MD Output File Keys

All of the following output files are written during calculations using MD related jobtypes.

Box File

Key

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

The box_file keyword sets the name for the Box File, which stores information about the simulation box throughout the simulation.

default value = “default.box”

Charge File

Key

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

The charge_file keyword sets the name for the Charge File, which stores the atomic partial charges throughout the MD simulation.

default value = “default.chrg”

Energy File

Key

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

The energy_file keyword sets the name for the Energy File, in which the most important physical properties of the full simulation can be found.

default value = “default.en”

Force File

Key

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

The force_file keyword sets the name for the Force File, which stores the atomic forces throughout the MD simulation.

default value = “default.force”

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”

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 most important physical properties of the full simulation can be found.

default value = “default.instant_en”

Momentum File

Key

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

The momentum_file keyword sets the name for the Momentum File, which stores information about the total linear and total angular momentum throughout the MD simulation.

default value = “default.mom”

Restart 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 current timestamp.

default value = “default.rst”

Stress File

Key

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

The stress_file keyword sets the name for the Stress File, which stores information about the stress tensor throughout the MD simulation.

default value = “default.stress”

Timings File

Key

timings_file = {file} -> “default.timings”

The timings_file keyword sets the name for the Timing File, which tracks the time PQ takes for executing individual parts of the simulation.

default value = “default.timings”

Trajectory File

Key

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

The traj_file keyword sets the name for the Trajectory File, which stores the atomic positions throughout the MD simulation.

default value = “default.xyz”

Velocity File

Key

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

The vel_file keyword sets the name for the Velocity File, which stores the atomic velocities throughout the MD simulation.

default value = “default.vel”

Virial File

Key

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

The virial_file keyword sets the name for the Virial File, which stores information about the virial tensor throughout the MD simulation.

default value = “default.vir”

RPMD Output File Keys

All of the following output files are written during calculations using ring polymer MD jobtype. The files represent the trajectories of all individual beads.

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”

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 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 current timestamp.

default value = “default.rpmd.rst”

RPMD Trajectory 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 Velocity 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”

Setup File Keys

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

Moldesctiptor File

Key

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

GUFF File

Key

guff_file = {file} -> “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 a cubic shape. Furthermore, the density keyword will be ignored if in the Restart File contains any box information.

Radial Coulomb Cutoff

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)

Initial 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.

Starting 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. Based on the rescaling of velocities according to the scaling factor \(\zeta\), equation (1). Ideal for crude temperature adjustments. Not able to reproduce the correct canonical ensemble.

    (1)\[\zeta = \sqrt{1 + \frac{\Delta t}{\tau} \left( \frac{T_0}{T} - 1 \right)}\]
  3. velocity_rescaling - the stochastic velocity rescaling thermostat also known as Bussi-Donadio-Parrinello thermostat. Based on the rescaling of velocities according to the scaling factor \(\zeta\), equation (2). Enforces a canonical kinetic energy distribution.

    (2)\[\zeta = \sqrt{1 + \frac{\Delta t}{\tau} \left( \frac{T_0}{T} - 1 +2 \sqrt{\frac{T_0}{T} \frac{\Delta t}{\tau} \frac{1}{df}} dW \right)}\]
  4. langevin - temperature coupling via stochastic Langevin dynamics. Based on modifying the force of each individual particle \(F_{\text i}\) via a friction force \(\gamma \cdot p_{\text i}\) and a random force \(\xi\), equation (3). The friction coefficient \(\gamma\) can be set with the Friction keyword. Enforces a canonical kinetic energy distribution. However, the Langevin thermostat is unable to conserve the total momentum of the system, which may lead to critical erros in the resulting dynamical data.

    (3)\[m_{\text i} \dot{v}_{\text i} = F_{\text i} - \gamma \cdot p_{\text i} + \xi\]
  5. nh-chain - temperature coupling via Nose Hoover extended Lagrangian. Based on modifying the forces after each time step. The length of the Nose Hoover chain and the coupling frequency can be set with the NH-Chain Length and the Coupling Frequency keywords, respectively. Enforces a canonical kinetic energy distribution.

Temperature Relaxation Time

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, see equations (1) and (2).

default value = 0.1 ps

Friction

Key

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

With the friction keyword the friction coefficient \(\gamma\) in ps⁻¹ of the Langevin thermostat, equation (3), 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 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

Pressure 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 systems a reset of the angular momentum can result in severe 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 systems a reset of the angular momentum can result in severe 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 the SHAKE/RATTLE algorithm for bond constraints can be activated.

Possible options are:

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

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

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

  4. mshake - M-SHAKE for bond constraints defined in a special 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 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 Iteration

Key

shake-iter = {uint+} -> 20

With the shake-iter keyword the user can specify the maximum number of iterations 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 Iteration

Key

rattle-iter = {uint+} -> 20

With the rattle-iter keyword the user can specify the maximum number of iterations until the convergence of the velocities of the shaked bonds 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 distance constraints for the simulation. The distance constraints are defined via the Topology File.

MM Keys

NonCoulomb

Key

noncoulomb = {string} -> “guff”

With the noncoulomb keyword the user can specify which kind of GUFF formalism should be used for parsing the GUFF File.

Note

This keyword is only considered if an MM-MD type simulation is requested and the Force Field is turned off.

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

Force Field

Key

forcefield = {string} -> “off”

With the forcefield keyword the user can switch from the GUFF formalism to a 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 Coulombic 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 Parameter

Key

wolf_param = {double} -> 0.25

default value = 0.25

QM Keys

QM Program

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 - DFTB+

  2. pyscf - PySCF

  3. turbomole - Turbomole

  4. mace - MACE-MP same as using mace_mp

  5. mace_off - MACE-OFF23

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 - small MACE model

  2. medium (default) - 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 atoms are 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 atoms are selected.

QM Charges

Key

qm_charges = {string} -> “off”

With the qm_charges keyword the user can specify the charge model for the QM atoms.

Possible options are:

  1. off (default) - charges of the QM atoms are taken from the MM model

  2. on - 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.

QM/MM 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.

QM/MM 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 one of the optimizer Jobtypes has to be chosen.

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.

default value = 1e-6