26 #include "./base/base_uses.f90"
32 CHARACTER(len=*),
PARAMETER,
PRIVATE :: moduleN =
'qs_mom_types'
52 TYPE(section_type),
POINTER :: section
54 TYPE(keyword_type),
POINTER :: keyword
56 cpassert(.NOT.
ASSOCIATED(section))
60 description=
"Define type and parameters for the maximum overlap method (MOM) "// &
61 "to determine orbital occupancies. "// &
62 "The MOM procedures activated by this section are only active for diagonalization "// &
63 "methods, i.e. not with minimization methods based on OT. "// &
64 "Incompatible with core-level excitation spectra (XAS).", &
65 n_keywords=8, n_subsections=0, repeats=.false., &
71 name=
"_SECTION_PARAMETERS_", &
72 description=
"Controls the activation of the MOM procedure", &
74 default_l_val=.false., &
75 lone_keyword_l_val=.true.)
80 description=
"Revision of the maximum overlap method to be used", &
82 enum_c_vals=s2a(
"MOM",
"IMOM"), &
84 "Originally proposed MOM protocol which uses molecular orbitals"// &
85 " from the previous SCF cycle as reference", &
86 "Initial-MOM which uses molecular orbitals of the initial guess as reference"), &
93 description=
"SCF iteration cycle to start the MOM procedure. "// &
94 "Could be used for ground state calculations only "// &
95 "in order to stabilise oscillating SCF iterations", &
100 usage=
"START_ITER 2")
105 name=
"DEOCC_ALPHA", &
106 description=
"Alpha orbitals to be deoccupied", &
111 usage=
"DEOCC_ALPHA 10 11 ...")
117 description=
"Beta orbitals to be deoccupied", &
122 usage=
"DEOCC_BETA 10 11 ...")
128 description=
"Alpha orbitals to be occupied", &
133 usage=
"OCC_ALPHA 12 15 ...")
139 description=
"Beta orbitals to be occupied", &
144 usage=
"OCC_BETA 12 15 ...")
149 description=
"Projection formula to be used", &
150 usage=
"PROJ_FORMULA norm", default_i_val=
momproj_norm, &
151 enum_c_vals=s2a(
"NORM",
"SUM"), &
153 "The one which ignores the phase of molecular orbitals: proj_j = \sqrt(\sum_i overlap(i, j)^2)", &
154 "The one proposed in the original paper: proj_j = |\sum_i overlap(i, j)|"), &
collects all references to literature in CP2K as new algorithms / method are included from literature...
integer, save, public barca2018
integer, save, public gilbert2008
manage control variables for the maximum overlap method
subroutine, public create_mom_section(section)
Create CP2K input section for variable occupancy using the Maximum Overlap Method....
Utilities for string manipulations.