17 #include "./base/base_uses.f90"
23 CHARACTER(len=*),
PARAMETER,
PRIVATE :: moduleN =
'qs_energy_types'
26 REAL(KIND=
dp) :: core = 0.0_dp, &
27 core_overlap = 0.0_dp, &
28 core_overlap0 = 0.0_dp, &
31 dispersion = 0.0_dp, &
35 exc_aux_fit = 0.0_dp, &
37 exc1_aux_fit = 0.0_dp, &
39 hartree_1c = 0.0_dp, &
42 image_charge = 0.0_dp, &
50 efield_core = 0.0_dp, &
51 s2_restraint = 0.0_dp, &
53 sccs_hartree = 0.0_dp, &
62 nonscf_correction = 0.0_dp, &
67 singles_corr = 0.0_dp, &
69 excited_state = 0.0_dp, &
74 surf_dipole = 0.0_dp, &
75 embed_corr = 0.0_dp, &
76 xtb_xb_inter = 0.0_dp, &
78 REAL(KIND=
dp),
DIMENSION(:),
POINTER :: ddapc_restraint
79 END TYPE qs_energy_type
83 PUBLIC :: qs_energy_type
102 TYPE(qs_energy_type),
POINTER ::
qs_energy
104 CHARACTER(len=*),
PARAMETER :: routinen =
'allocate_qs_energy'
108 CALL timeset(routinen, handle)
115 CALL timestop(handle)
127 TYPE(qs_energy_type),
POINTER ::
qs_energy
130 IF (
ASSOCIATED(
qs_energy%ddapc_restraint))
THEN
135 CALL cp_abort(__location__, &
136 "The qs_energy pointer is not associated "// &
137 "and cannot be deallocated")
151 TYPE(qs_energy_type),
POINTER ::
qs_energy
196 IF (.NOT.
ASSOCIATED(
qs_energy%ddapc_restraint))
THEN
201 CALL cp_abort(__location__, &
202 "The qs_energy pointer is not associated "// &
203 "and cannot be initialised")
Add the DFT+U contribution to the Hamiltonian matrix.
Defines the basic variable types.
integer, parameter, public dp
Routines to calculate MP2 energy.
compute mulliken charges we (currently) define them as c_i = 1/2 [ (PS)_{ii} + (SP)_{ii} ]
subroutine, public init_qs_energy(qs_energy)
Initialise a Quickstep energy data structure.
subroutine, public deallocate_qs_energy(qs_energy)
Deallocate a Quickstep energy data structure.
subroutine, public allocate_qs_energy(qs_energy)
Allocate and/or initialise a Quickstep energy data structure.
Perform a QUICKSTEP wavefunction optimization (single point)