Dynamics_Leapfrog_Verlet contains a procedure for performing a molecular dynamics simulation with a leapfrog Verlet algorithm.
The basic ideas of molecular dynamics simulations are described in chapters 8 and 10 of the book A Practical Introduction to the Simulation of Molecular Systems. This module is a new one that implements the Berendsen pressure and temperature control algorithm that is fully described in chapter 10. The arguments to the subroutine is this module have the same meaning and function as those of the same name to the subroutine DYNAMICS described there.
Module | Variables |
---|---|
CONSTANTS | PV_TO_KJ_MOLE |
DEFINITIONS | DP |
IO_UNITS | OUTPUT |
STATUS | ERROR |
ATOMS | ATMCRD, ATMFIX, NATOMS, NATOMSQM, NFIXED, NFREE |
CONSTRAINT | QTETHER |
DYNAMICS_UTILITIES | Most of the public items in the module. |
POTENTIAL_ENERGY | VIRIAL |
SYMMETRY | BOXL, QBOX |
VELOCITY | ATMVEL, EKE, TEMPERATURE, VELOCITY_TEMPERATURE |
None.
There is a single public subroutine in this module.
Subroutine | Purpose |
---|---|
LEAPFROG_VERLET_DYNAMICS | Perform a molecular dynamics simulation using a leapfrog Verlet algorithm. |
Argument | Type | Intent | Optional | Purpose |
---|---|---|---|---|
TARGET_TEMPERATURE | Real | In | Yes | The target temperature for the simulation. |
TEMPERATURE_COUPLING | Real | In | Yes | The coupling constant to the thermostat. |
TARGET_PRESSURE | Real | In | Yes | The target pressure for the simulation. |
PRESSURE_COUPLING | Real | In | Yes | The coupling constant to the barostat. |
Error | Meaning |
---|---|
No velocities exist. | No velocities have been assigned. |
Pressure control must be done with periodic boundary conditions. | The system is not periodic. |
Invalid pressure coupling or target variables. | The value of one of the arguments PRESSURE_COUPLING and TARGET_PRESSURE is invalid. |
Pressure control not allowed with fixed, quantum or tethered atoms. | Pressure control does not currently work if there are fixed, quantum or tethered atoms. |
Invalid temperature coupling or target variables. | The value of one of the arguments TEMPERATURE_COUPLING and TARGET_TEMPERATURE is invalid. |
Stable.