Molecular Dynamics Workflow¶
Purpose: Molecular-dynamics workflow with thermostat/barostat/shear settings and ensemble outputs
Relationship map¶
Hold "Alt" / "Option" to enable pan & zoom
classDiagram
class BarostatParameters
class CorrelationFunction
class DiffusionConstant
class EnsembleProperty
class FreeEnergyCalculationParameters
class Lambdas
class MDSettings
class MeanSquaredDisplacement
class MolecularDynamics
class MolecularDynamicsMethod
class MolecularDynamicsResults
class NumericalSettings
class PhysicalProperty
class RadialDistributionFunction
class SerialWorkflow
class SerialWorkflowResults
class ShearParameters
class SimulationWorkflowMethod
class ThermostatParameters
MDSettings <|-- BarostatParameters
PhysicalProperty <|-- CorrelationFunction
EnsembleProperty <|-- DiffusionConstant
PhysicalProperty <|-- EnsembleProperty
MDSettings <|-- FreeEnergyCalculationParameters
NumericalSettings <|-- MDSettings
CorrelationFunction <|-- MeanSquaredDisplacement
SerialWorkflow <|-- MolecularDynamics
SimulationWorkflowMethod <|-- MolecularDynamicsMethod
SerialWorkflowResults <|-- MolecularDynamicsResults
EnsembleProperty <|-- RadialDistributionFunction
MDSettings <|-- ShearParameters
MDSettings <|-- ThermostatParameters
FreeEnergyCalculationParameters *-- Lambdas : lambdas
MolecularDynamics *-- MolecularDynamicsMethod : method
MolecularDynamics *-- MolecularDynamicsResults : results
MolecularDynamicsMethod *-- BarostatParameters : barostat_parameters
MolecularDynamicsMethod *-- FreeEnergyCalculationParameters : free_energy_calculation_parameters
MolecularDynamicsMethod *-- ShearParameters : shear_parameters
MolecularDynamicsMethod *-- ThermostatParameters : thermostat_parameters
MolecularDynamicsResults *-- DiffusionConstant : diffusion_constants
MolecularDynamicsResults *-- MeanSquaredDisplacement : mean_squared_displacements
MolecularDynamicsResults *-- RadialDistributionFunction : radial_distribution_functions
Legend
inheritance (is-a)
composition (has-a)
Quantities by Key Sections¶
SerialWorkflow¶
| Section | Description | MetaInfo |
|---|---|---|
SerialWorkflow |
Base class for workflows where tasks are executed sequentially. | Open in MetaInfo browser |
This section has no direct quantities.
SerialWorkflowResults¶
| Section | Description | MetaInfo |
|---|---|---|
SerialWorkflowResults |
Open in MetaInfo browser |
This section has no direct quantities.
SimulationWorkflowMethod¶
| Section | Description | MetaInfo |
|---|---|---|
SimulationWorkflowMethod |
Open in MetaInfo browser |
This section has no direct quantities.
NumericalSettings¶
| Section | Description | MetaInfo |
|---|---|---|
NumericalSettings |
A base section used to define how a chosen ModelMethod is realized numerically in a simulation. |
Open in MetaInfo browser |
| Quantity | Type | Description |
|---|---|---|
name |
m_str(str) | Name of the numerical settings section. This is typically used for easy identification of the NumericalSettings section within a ModelMethod. Possible values: "KMesh", "FrequencyMesh", "TimeMesh", "SelfConsistency", "BasisSet". |
PhysicalProperty¶
| Section | Description | MetaInfo |
|---|---|---|
PhysicalProperty |
A base section for computational output properties, containing all relevant (meta)data. | Open in MetaInfo browser |
| Quantity | Type | Description |
|---|---|---|
name |
m_str(str) | Name of the physical property. Example: 'ElectronicBandGap'. |
iri |
URL | Internationalized Resource Identifier (IRI) pointing to a definition, typically within a larger, ontological framework. |
type |
m_str(str) | Type categorization of the physical property. Example: an ElectronicBandGap can be 'direct' or 'indirect'. |
contribution_type |
m_str(str) | Type of contribution to the physical property. Hence, only applies to contributions instances. Example: TotalEnergy may have contributions like kinetic, potential, etc. |
label |
m_str(str) | Label for additional classification of the physical property. Example: an ElectronicBandGap can be labeled as 'DFT' or 'GW' depending on the methodology used to calculate it. |
entity_ref |
Reference | Reference to the entity that the physical property refers to.Reference to the entity that the physical property refers to. Examples:- a simulated physical property might refer to the macroscopic system or instead of a specific atom in the unit cell. In the first case, outputs.model_system_ref (see outputs.py) will point to the ModelSystem section,while in the second case, entity_ref will point to AtomsState section (see atoms_state.py). |
is_derived |
m_bool(bool) | Flag indicating whether the physical property is derived from other physical properties.Flag indicating whether the physical property is derived from other physical properties. We makethe distinction between directly parsed and derived physical properties: - Directly parsed: the physical property is directly parsed from the simulation output files. - Derived: the physical property is derived from other physical properties. No extra numerical settings are required to calculate the physical property. |
physical_property_ref |
Reference | Reference to the PhysicalProperty section from which the physical property was derived. If physical_property_ref is populated, the quantity is_derived is set to True via normalization. |
is_converged |
m_bool(bool) | Flag indicating whether the calculation that yields this physical property is converged or not after a SCF or optimization process. This information is obtained from the workflow section. |
MDSettings¶
| Section | Description | MetaInfo |
|---|---|---|
MDSettings |
Abstract class for classifying numerical settings relevant for molecular dynamics runs. | Open in MetaInfo browser |
| Quantity | Type | Description |
|---|---|---|
frame_start |
m_int32(int) | Trajectory frame number where the application of these settings start. |
frame_end |
m_int32(int) | Trajectory frame number where the application of these settings end. |
ThermostatParameters¶
| Section | Description | MetaInfo |
|---|---|---|
ThermostatParameters |
Section containing the parameters pertaining to the thermostat for a molecular dynamics run. | Open in MetaInfo browser |
| Quantity | Type | Description |
|---|---|---|
thermostat_type |
Enum | The name of the thermostat used for temperature control.The name of the thermostat used for temperature control. If skipped or an empty string is used, itmeans no thermostat was applied. Allowed values are: | Thermostat Name | Description | | ---------------------- | ----------------------------------------- | | "" | No thermostat || "andersen" | H.C. Andersen, J. Chem. Phys.72, 2384 (1980) | | "berendsen" | H. J. C. Berendsen, J. P. M. Postma,W. F. van Gunsteren, A. DiNola, and J. R. Haak, J. Chem. Phys. 81, 3684 (1984) | | "brownian" | Brownian Dynamics || "dissipative_particle_dynamics" | R.D. Groot and P.B. WarrenJ. Chem. Phys. 107(11), 4423-4435 (1997) | | "langevin_goga" | N. Goga, A. J. Rzepiela, A. H. de Vries,S. J. Marrink, and H. J. C. Berendsen, [J. Chem. Theory Comput. 8, 3637 (2012)] (https://doi.org/10.1021/ct3000876) | | "langevin_leap_frog" | J.A. Izaguirre, C.R. Sweet, and V.S. PandePac Symp Biocomput. 15, 240-251 (2010) | | "langevin_schneider" | T. Schneider and E. Stoll,Phys. Rev. B 17, 1302 | | "nose_hoover" | S. Nosé, [Mol. Phys. 52, 255 (1984)](https://doi.org/10.1080/00268978400101201); W.G. Hoover, [Phys. Rev. A 31, 1695 (1985) | | "velocity_rescaling" | G. Bussi, D. Donadio, and M. Parrinello,J. Chem. Phys. 126, 014101 (2007) | | "velocity_rescaling_langevin" | G. Bussi and M. Parrinello,Phys. Rev. E 75, 056707 (2007) | | "velocity_rescaling_woodcock" | L. V. Woodcock,Chem. Phys. Lett. 10, 257 (1971) | |
reference_temperature |
m_float64(float64) | The target temperature for the simulation. Typically used when temperature_profile is "constant". |
coupling_constant |
m_float64(float64) | The time constant for temperature coupling. Need to describe what this means for the various thermostat options... |
effective_mass |
m_float64(float64) | The effective or fictitious mass of the temperature resevoir. |
temperature_profile |
Enum | Type of temperature control (i.e., annealing) procedure. Can be "constant" (no annealing), "linear", or "exponential". If linear, "temperature_update_delta" specifies the corresponding update parameter. If exponential, "temperature_update_factor" specifies the corresponding update parameter. |
reference_temperature_start |
m_float64(float64) | The initial target temperature for the simulation. Typically used when temperature_profile is "linear" or "exponential". |
reference_temperature_end |
m_float64(float64) | The final target temperature for the simulation. Typically used when temperature_profile is "linear" or "exponential". |
temperature_update_frequency |
m_int32(int) | Number of simulation steps between changing the target temperature. |
temperature_update_delta |
m_float64(float64) | Amount to be added (subtracted if negative) to the current reference_temperature at a frequency of temperature_update_frequency when temperature_profile is "linear". The reference temperature is then replaced by this new value until the next update. |
temperature_update_factor |
m_float64(float64) | Factor to be multiplied to the current reference_temperature at a frequency of temperature_update_frequency when temperature_profile is exponential. The reference temperature is then replaced by this new value until the next update. |
step_start |
m_int32(int) | Trajectory step where this thermostating starts. |
step_end |
m_int32(int) | Trajectory step number where this thermostating ends. |
BarostatParameters¶
| Section | Description | MetaInfo |
|---|---|---|
BarostatParameters |
Section containing the parameters pertaining to the barostat for a molecular dynamics run. | Open in MetaInfo browser |
| Quantity | Type | Description |
|---|---|---|
barostat_type |
Enum | The name of the barostat used for temperature control.The name of the barostat used for temperature control. If skipped or an empty string is used, itmeans no barostat was applied. Allowed values are: | Barostat Name | Description | | ---------------------- | ----------------------------------------- | | "" | No thermostat || "berendsen" | H. J. C. Berendsen, J. P. M. Postma,W. F. van Gunsteren, A. DiNola, and J. R. Haak, J. Chem. Phys. 81, 3684 (1984) | | "martyna_tuckerman_tobias_klein" | G.J. Martyna, M.E. Tuckerman, D.J. Tobias, and M.L. Klein,Mol. Phys. 87, 1117 (1996); M.E. Tuckerman, J. Alejandre, R. López-Rendón, A.L. Jochim, and G.J. Martyna, J. Phys. A. 59, 5629 (2006)| | "nose_hoover" | S. Nosé, [Mol. Phys. 52, 255 (1984)](https://doi.org/10.1080/00268978400101201); W.G. Hoover, [Phys. Rev. A 31, 1695 (1985) | | "parrinello_rahman" | M. Parrinello and A. Rahman,J. Appl. Phys. 52, 7182 (1981); S. Nosé and M.L. Klein, [Mol. Phys. 50, 1055 (1983) | | "stochastic_cell_rescaling" | M. Bernetti and G. Bussi,J. Chem. Phys. 153, 114107 (2020) | |
coupling_type |
Enum | Describes the symmetry of pressure coupling.Describes the symmetry of pressure coupling. Specifics can be inferred from thecoupling constant| Type | Description | | ---------------------- | ----------------------------------------- | | isotropic | Identical coupling in all directions. || semi_isotropic | Identical coupling in 2 directions. || anisotropic | General case. | |
reference_pressure |
m_float64(float64) (shape: [3, 3]) | The target pressure for the simulation, stored in a 3x3 matrix, indicating the values for individual directions along the diagonal, and coupling between directions on the off-diagonal. Typically used when pressure_profile is "constant". |
coupling_constant |
m_float64(float64) (shape: [3, 3]) | The time constants for pressure coupling, stored in a 3x3 matrix, indicating the values for individual directions along the diagonal, and coupling between directions on the off-diagonal. 0 values along the off-diagonal indicate no-coupling between these directions. |
compressibility |
m_float64(float64) (shape: [3, 3]) | An estimate of the system's compressibility, used for box rescaling, stored in a...An estimate of the system's compressibility, used for box rescaling, stored in a 3x3 matrix indicating the values for individual directionsalong the diagonal, and coupling between directions on the off-diagonal. If None, it may indicate that these values are incorporated into the coupling_constant, or simply that the software used uses a fixed value that is not available in the input/output files. |
pressure_profile |
Enum | Type of pressure control procedure. Can be "constant" (no annealing), "linear", or "exponential". If linear, "pressure_update_delta" specifies the corresponding update parameter. If exponential, "pressure_update_factor" specifies the corresponding update parameter. |
reference_pressure_start |
m_float64(float64) (shape: [3, 3]) | The initial target pressure for the simulation, stored in a 3x3 matrix, indicating the values for individual directions along the diagonal, and coupling between directions on the off-diagonal. Typically used when pressure_profile is "linear" or "exponential". |
reference_pressure_end |
m_float64(float64) (shape: [3, 3]) | The final target pressure for the simulation, stored in a 3x3 matrix, indicating the values for individual directions along the diagonal, and coupling between directions on the off-diagonal. Typically used when pressure_profile is "linear" or "exponential". |
pressure_update_frequency |
m_int32(int) | Number of simulation steps between changing the target pressure. |
pressure_update_delta |
m_float64(float64) | Amount to be added (subtracted if negative) to the current reference_pressure at a frequency of pressure_update_frequency when pressure_profile is "linear". The pressure temperature is then replaced by this new value until the next update. |
pressure_update_factor |
m_float64(float64) | Factor to be multiplied to the current reference_pressure at a frequency of pressure_update_frequency when pressure_profile is exponential. The reference pressure is then replaced by this new value until the next update. |
step_start |
m_int32(int) | Trajectory step where this barostating starts. |
step_end |
m_int32(int) | Trajectory step number where this barostating ends. |
ShearParameters¶
| Section | Description | MetaInfo |
|---|---|---|
ShearParameters |
Section containing the parameters pertaining to the shear flow for a molecular dynamics run. | Open in MetaInfo browser |
| Quantity | Type | Description |
|---|---|---|
shear_type |
Enum | The name of the method used to implement the effect of shear flow within the simulation.The name of the method used to implement the effect of shear flow within the simulation.Allowed values are: | Shear Method | Description | | ---------------------- | ----------------------------------------- | | "" | No thermostat || "lees_edwards" | A.W. Lees and S.F. Edwards,J. Phys. C 5 (1972) 1921| | "trozzi_ciccotti" | A.W. Lees and S.F. Edwards,Phys. Rev. A 29 (1984) 916| | "ashurst_hoover" | W. T. Ashurst and W. G. Hoover,Phys. Rev. A 11 (1975) 658| |
shear_rate |
m_float64(float64) (shape: [3, 3]) | The external stress tensor include normal (diagonal elements; which are zero in ...The external stress tensor include normal (diagonal elements; which are zero in shear simulations)and shear stress' rates (off-diagonal elements). Its elements are: [[σ_x, τ_yx, τ_zx], [τ_xy, σ_y, τ_zy], [τ_xz, τ_yz, σ_z]], where σ and τ are the normal and shear stress' rates. The first and second letters in the index correspond to the normal vector to the shear plane and the direction of shearing, respectively. |
step_start |
m_int32(int) | Trajectory step where this shearing starts. |
step_end |
m_int32(int) | Trajectory step number where this shearing ends. |
FreeEnergyCalculationParameters¶
| Section | Description | MetaInfo |
|---|---|---|
FreeEnergyCalculationParameters |
Parameters for a free energy workflow run. | Open in MetaInfo browser |
| Quantity | Type | Description |
|---|---|---|
calc_type |
Enum | Specifies the type of workflow.Specifies the type of workflow. Allowed values are:| kind | Description | | ---------------------- | ----------------------------------------- | | "alchemical" | A non-physical transformation between 2 well-defined systems,typically achieved by smoothly interpolating between Hamiltonians or force fields. | | "umbrella_sampling" | A sampling of the path between 2 well-defined (sub)states of a system,typically achieved by applying a biasing force to the force field along a specified reaction coordinate. |
current_lambda_index |
m_int32(int) | Index into each Lambdas.lambda_values for the current simulation step/state (only valid if all targets share an aligned λ grid). |
current_lambdas |
m_float64(float64) (shape: ['*']) | Scalar λ per Lambdas entry order. |
n_frames |
m_int32(int32) | Number of time frames in the XVG free-energy output. |
n_states |
m_int32(int32) | Number of lambda states in the XVG free-energy differences. |
times |
m_float64(float64) (shape: ['n_frames']) | Simulation time for each frame in the XVG output. |
energy_derivative |
m_float64(float64) (shape: ['n_frames']) | dH/dλ at the current lambda state for each time frame, as written by GROMACS to the XVG file. |
energy_differences |
m_float64(float64) (shape: ['n_frames', 'n_states']) | ΔH between the current lambda state and each other state for each time frame (n_states columns in the XVG file). |
pv_energy |
m_float64(float64) (shape: ['n_frames']) | PV contribution to the free energy for each time frame. |
Lambdas¶
| Section | Description | MetaInfo |
|---|---|---|
Lambdas |
Parameters for one lambda dimension / interaction type. | Open in MetaInfo browser |
| Quantity | Type | Description |
|---|---|---|
interaction_type |
Enum | The type of lambda interpolationThe type of lambda interpolationAllowed values are: | type | Description | | ---------------------- | ----------------------------------------- | | "output" | Lambdas for the free energy outputs saved.These will also act as a default in case some relevant lambdas are not specified. | | "coulomb" | Lambdas for interpolating electrostatic interactions. || "vdw" | Lambdas for interpolating van der Waals interactions. || "bonded" | Lambdas for interpolating all intramolecular interactions. || "restraint" | Lambdas for interpolating restraints. || "mass" | Lambdas for interpolating masses. || "temperature" | Lambdas for interpolating temperature. | |
lambda_values |
m_float64(float64) (shape: ['*']) | Grid of λ values for this interaction (e.g., [0.0, 0.1, …, 1.0]). |
endpoints_on |
m_bool(bool) (shape: [2]) | Specifies whether the interaction is ‘on’ at the endpoints: [initial@λ=0, final@λ=1]. |
scheme |
Enum | Alchemical scheme for this interaction, if applicable. |
softcore_enabled |
m_bool(bool) | Soft-core on/off for nonbonded. |
softcore_alpha |
m_float64(float64) | Soft-core α parameter. |
softcore_p |
m_int32(int32) | Soft-core power p. |
softcore_sigma |
m_float64(float64) | Soft-core σ (if used). |
EnsembleProperty¶
| Section | Description | MetaInfo |
|---|---|---|
EnsembleProperty |
Abstract base section for static observables calculated from a trajectory (i.e., from an ensemble average). | Open in MetaInfo browser |
| Quantity | Type | Description |
|---|---|---|
n_smooth |
m_int32(int) | Number of bins over which the running average was computed for the observable `values'. |
n_prune |
m_int32(int) | Frequency with which to select frames for calculation of the observable `values'. |
n_variables |
m_int32(int) | Number of variables along which the property is determined. |
variables_name |
m_str(str) (shape: ['n_variables']) | Name/description of the independent variables along which the observable is defined. |
n_bins |
m_int32(int) | Number of bins. |
frame_start |
m_int32(int) | Trajectory frame number where the ensemble averaging starts. |
frame_end |
m_int32(int) | Trajectory frame number where the ensemble averaging ends. |
CorrelationFunction¶
| Section | Description | MetaInfo |
|---|---|---|
CorrelationFunction |
Abstract base section for time correlation functions calculated from a trajectory. | Open in MetaInfo browser |
| Quantity | Type | Description |
|---|---|---|
direction |
Enum | Describes the direction in which the correlation function was calculated. |
n_times |
m_int32(int) | Number of times windows for the calculation of the correlation function. |
times |
m_float64(float64) (shape: ['n_times']) | Time windows used for the calculation of the correlation function. |
RadialDistributionFunction¶
| Section | Description | MetaInfo |
|---|---|---|
RadialDistributionFunction |
Section containing information about the calculation of radial distribution functions (rdfs). | Open in MetaInfo browser |
| Quantity | Type | Description |
|---|---|---|
bins |
m_float64(float64) (shape: ['n_bins']) | Distances along which the rdf was calculated. |
value |
m_float64(float64) (shape: ['n_bins']) | Values of the property. |
DiffusionConstant¶
| Section | Description | MetaInfo |
|---|---|---|
DiffusionConstant |
Section containing information regarding the diffusion constants. | Open in MetaInfo browser |
| Quantity | Type | Description |
|---|---|---|
value |
m_float64(float64) | Values of the diffusion constants. |
MeanSquaredDisplacement¶
| Section | Description | MetaInfo |
|---|---|---|
MeanSquaredDisplacement |
Section containing information about a calculation of any mean squared displacements (msds). | Open in MetaInfo browser |
| Quantity | Type | Description |
|---|---|---|
value |
m_float64(float64) (shape: ['n_times']) | Mean squared displacement values. |
MolecularDynamics¶
| Section | Description | MetaInfo |
|---|---|---|
MolecularDynamics |
Open in MetaInfo browser |
This section has no direct quantities.
MolecularDynamicsMethod¶
| Section | Description | MetaInfo |
|---|---|---|
MolecularDynamicsMethod |
Open in MetaInfo browser |
| Quantity | Type | Description |
|---|---|---|
thermodynamic_ensemble |
Enum | The type of thermodynamic ensemble that was simulated.The type of thermodynamic ensemble that was simulated.Allowed values are: | Thermodynamic Ensemble | Description | | ---------------------- | ----------------------------------------- | | "NVE" | Constant number of particles, volume, and energy || "NVT" | Constant number of particles, volume, and temperature || "NPT" | Constant number of particles, pressure, and temperature || "NPH" | Constant number of particles, pressure, and enthalpy | |
integrator_type |
Enum | Name of the integrator.Name of the integrator.Allowed values are: | Integrator Name | Description | | ---------------------- | ----------------------------------------- | | "langevin_goga" | N. Goga, A. J. Rzepiela, A. H. de Vries,S. J. Marrink, and H. J. C. Berendsen, [J. Chem. Theory Comput. 8, 3637 (2012)] (https://doi.org/10.1021/ct3000876) | | "langevin_schneider" | T. Schneider and E. Stoll,Phys. Rev. B 17, 1302 | | "leap_frog" | R.W. Hockney, S.P. Goel, and J. Eastwood,J. Comp. Phys. 14, 148 (1974) | | "velocity_verlet" | W.C. Swope, H.C. Andersen, P.H. Berens, and K.R. Wilson,J. Chem. Phys. 76, 637 (1982) | | "rRESPA_multitimescale" | M. Tuckerman, B. J. Berne, and G. J. MartynaJ. Chem. Phys. 97, 1990 (1992) | | "langevin_leap_frog" | J.A. Izaguirre, C.R. Sweet, and V.S. PandePac Symp Biocomput. 15, 240-251 (2010) | |
integration_timestep |
m_float64(float64) | The timestep at which the numerical integration is performed. |
n_steps |
m_int32(int) | Number of timesteps performed. |
coordinate_save_frequency |
m_int32(int) | The number of timesteps between saving the coordinates. |
velocity_save_frequency |
m_int32(int) | The number of timesteps between saving the velocities. |
force_save_frequency |
m_int32(int) | The number of timesteps between saving the forces. |
thermodynamics_save_frequency |
m_int32(int) | The number of timesteps between saving the thermodynamic quantities. |
MolecularDynamicsResults¶
| Section | Description | MetaInfo |
|---|---|---|
MolecularDynamicsResults |
Open in MetaInfo browser |
| Quantity | Type | Description |
|---|---|---|
n_steps |
m_int32(int32) | Number of trajectory steps |
trajectory |
Reference (shape: ['n_steps']) | Reference to the system of each step in the trajectory. |