(git:374b731)
Loading...
Searching...
No Matches
qmmmx_types.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 Basic container type for QM/MM with force mixing.
10!> \author Ole Schuett
11! **************************************************************************************************
14 USE kinds, ONLY: dp
15 USE qmmm_types, ONLY: qmmm_env_get,&
18#include "./base/base_uses.f90"
19
20 IMPLICIT NONE
21 PRIVATE
22
23 CHARACTER(len=*), PARAMETER, PRIVATE :: moduleN = 'qmmmx_types'
24
26
28 TYPE(qmmm_env_type), POINTER :: core => null()
29 TYPE(qmmm_env_type), POINTER :: ext => null()
30 END TYPE qmmmx_env_type
31
32CONTAINS
33
34! **************************************************************************************************
35!> \brief ...
36!> \param qmmmx_env ...
37!> \param subsys ...
38!> \param potential_energy ...
39!> \param kinetic_energy ...
40! **************************************************************************************************
41 SUBROUTINE qmmmx_env_get(qmmmx_env, subsys, potential_energy, kinetic_energy)
42 TYPE(qmmmx_env_type), INTENT(IN) :: qmmmx_env
43 TYPE(cp_subsys_type), OPTIONAL, POINTER :: subsys
44 REAL(kind=dp), INTENT(OUT), OPTIONAL :: potential_energy, kinetic_energy
45
46 ! get the underlying energies from primary subsys. This is the only subsys
47 ! for conventional QM/MM, and force-mixing knows to put relevant energy there.
48 CALL qmmm_env_get(qmmmx_env%ext, &
49 kinetic_energy=kinetic_energy, &
50 potential_energy=potential_energy, &
51 subsys=subsys)
52
53 END SUBROUTINE qmmmx_env_get
54
55! **************************************************************************************************
56!> \brief releases the given qmmmx_env (see doc/ReferenceCounting.html)
57!> \param qmmmx_env the object to release
58!> \author Ole Schuett
59! **************************************************************************************************
60 SUBROUTINE qmmmx_env_release(qmmmx_env)
61 TYPE(qmmmx_env_type), INTENT(INOUT) :: qmmmx_env
62
63 CALL qmmm_env_release(qmmmx_env%core)
64 DEALLOCATE (qmmmx_env%core)
65 CALL qmmm_env_release(qmmmx_env%ext)
66 DEALLOCATE (qmmmx_env%ext)
67
68 END SUBROUTINE qmmmx_env_release
69
70END MODULE qmmmx_types
types that represent a subsys, i.e. a part of the system
Defines the basic variable types.
Definition kinds.F:23
integer, parameter, public dp
Definition kinds.F:34
Basic container type for QM/MM.
Definition qmmm_types.F:12
subroutine, public qmmm_env_release(qmmm_env)
releases the given qmmm_env (see doc/ReferenceCounting.html)
Definition qmmm_types.F:81
subroutine, public qmmm_env_get(qmmm_env, subsys, potential_energy, kinetic_energy)
...
Definition qmmm_types.F:50
Basic container type for QM/MM with force mixing.
Definition qmmmx_types.F:12
subroutine, public qmmmx_env_release(qmmmx_env)
releases the given qmmmx_env (see doc/ReferenceCounting.html)
Definition qmmmx_types.F:61
subroutine, public qmmmx_env_get(qmmmx_env, subsys, potential_energy, kinetic_energy)
...
Definition qmmmx_types.F:42
represents a system: atoms, molecules, their pos,vel,...