(git:374b731)
Loading...
Searching...
No Matches
velocity_verlet_control.F
Go to the documentation of this file.
1!--------------------------------------------------------------------------------------------------!
2! CP2K: A general program to perform molecular dynamics simulations !
3! Copyright 2000-2024 CP2K developers group <https://cp2k.org> !
4! !
5! SPDX-License-Identifier: GPL-2.0-or-later !
6!--------------------------------------------------------------------------------------------------!
7
8! **************************************************************************************************
9!> \brief Provides an interface to the velocity-verlet based integrator
10!> routines for all ensembles
11!> \author CJM (11-SEPT-2002)
12! **************************************************************************************************
14
17 USE input_constants, ONLY: &
21 USE integrator, ONLY: &
26 USE simpar_types, ONLY: simpar_type
27#include "../base/base_uses.f90"
28
29 IMPLICIT NONE
30
31 PRIVATE
32 CHARACTER(len=*), PARAMETER, PRIVATE :: moduleN = 'velocity_verlet_control'
33 PUBLIC :: velocity_verlet
34
35CONTAINS
36
37! **************************************************************************************************
38!> \brief ...
39!> \param md_env ...
40!> \param globenv ...
41!> \par History
42!> none
43!> \author CJM
44! **************************************************************************************************
45 SUBROUTINE velocity_verlet(md_env, globenv)
46
47 TYPE(md_environment_type), POINTER :: md_env
48 TYPE(global_environment_type), POINTER :: globenv
49
50 CHARACTER(LEN=*), PARAMETER :: routinen = 'velocity_verlet'
51
52 INTEGER :: handle
53 TYPE(force_env_type), POINTER :: force_env
54 TYPE(simpar_type), POINTER :: simpar
55
56 CALL timeset(routinen, handle)
57
58 ! Get force environment
59 CALL get_md_env(md_env, force_env=force_env, simpar=simpar)
60
61 ! RESPA implemented only for NVE
62 IF (simpar%do_respa .AND. nve_ensemble .NE. simpar%ensemble) THEN
63 cpabort("RESPA integrator not implemented for this ensemble")
64 END IF
65
66 ! Choice of the ensemble
67 SELECT CASE (simpar%ensemble)
68 CASE DEFAULT
69 cpabort("Integrator not implemented")
70 CASE (nve_ensemble)
71 IF (simpar%do_respa) THEN
72 CALL nve_respa(md_env)
73 ELSE
74 CALL nve(md_env, globenv)
75 END IF
76 CASE (nvt_ensemble)
77 CALL nvt(md_env, globenv)
79 CALL nvt_adiabatic(md_env, globenv)
80 CASE (isokin_ensemble)
81 CALL isokin(md_env)
83 CALL npt_i(md_env, globenv)
84 CASE (npt_f_ensemble)
85 CALL npt_f(md_env, globenv)
87 CALL nph_uniaxial(md_env)
89 CALL nph_uniaxial_damped(md_env)
90 CASE (reftraj_ensemble)
91 CALL reftraj(md_env)
93 CALL langevin(md_env)
94 CASE (npe_f_ensemble)
95 CALL npt_f(md_env, globenv)
96 END SELECT
97
98 CALL timestop(handle)
99
100 END SUBROUTINE velocity_verlet
101
Interface for the force calculations.
Define type storing the global information of a run. Keep the amount of stored data small....
collects all constants needed in input so that they can be used without circular dependencies
integer, parameter, public nvt_adiabatic_ensemble
integer, parameter, public nph_uniaxial_ensemble
integer, parameter, public npt_i_ensemble
integer, parameter, public isokin_ensemble
integer, parameter, public nph_uniaxial_damped_ensemble
integer, parameter, public npe_f_ensemble
integer, parameter, public langevin_ensemble
integer, parameter, public npe_i_ensemble
integer, parameter, public npt_ia_ensemble
integer, parameter, public nve_ensemble
integer, parameter, public npt_f_ensemble
integer, parameter, public reftraj_ensemble
integer, parameter, public nvt_ensemble
Provides integrator routines (velocity verlet) for all the ensemble types.
Definition integrator.F:26
subroutine, public nvt(md_env, globenv)
nvt integrator for particle positions & momenta
Definition integrator.F:927
subroutine, public isokin(md_env)
simplest version of the isokinetic gaussian thermostat
Definition integrator.F:603
subroutine, public reftraj(md_env)
uses coordinates in a file and generates frame after frame of these
subroutine, public nph_uniaxial(md_env)
nph_uniaxial integrator (non-Hamiltonian version) for particle positions & momenta undergoing uniaxia...
subroutine, public nph_uniaxial_damped(md_env)
nph_uniaxial integrator (non-Hamiltonian version) for particle positions & momenta undergoing uniaxia...
subroutine, public langevin(md_env)
Langevin integrator for particle positions & momenta (Brownian dynamics)
Definition integrator.F:135
subroutine, public npt_f(md_env, globenv)
Velocity Verlet integrator for the NPT ensemble with fully flexible cell.
subroutine, public nve_respa(md_env)
RESPA integrator for nve ensemble for particle positions & momenta.
subroutine, public nvt_adiabatic(md_env, globenv)
nvt adiabatic integrator for particle positions & momenta
Definition integrator.F:719
subroutine, public nve(md_env, globenv)
nve integrator for particle positions & momenta
Definition integrator.F:391
subroutine, public npt_i(md_env, globenv)
npt_i integrator for particle positions & momenta isotropic box changes
subroutine, public get_md_env(md_env, itimes, constant, used_time, cell, simpar, npt, force_env, para_env, reftraj, t, init, first_time, fe_env, thermostats, barostat, thermostat_coeff, thermostat_part, thermostat_shell, thermostat_baro, thermostat_fast, thermostat_slow, md_ener, averages, thermal_regions, ehrenfest_md)
get components of MD environment type
Type for storing MD parameters.
Provides an interface to the velocity-verlet based integrator routines for all ensembles.
subroutine, public velocity_verlet(md_env, globenv)
...
wrapper to abstract the force evaluation of the various methods
contains the initially parsed file and the initial parallel environment
Simulation parameter type for molecular dynamics.