26#include "./base/base_uses.f90"
31 CHARACTER(len=*),
PARAMETER,
PRIVATE :: moduleN =
'input_cp2k_projection_rtp'
48 cpassert(.NOT.
ASSOCIATED(section))
50 description=
"Projects the Time Dependent (TD) MO "// &
51 "coefficients to reference ones. You can define "// &
52 "several sections like this to project the TD-MOs "// &
53 "on different reference MOs. Note that each section "// &
54 "projects from one spin of the TD MOs (TD_MO_INDEX) to "// &
55 "one spin of the reference MOs (REF_MO_INDEX).", &
56 n_keywords=7, n_subsections=1, &
59 NULLIFY (keyword, subsection)
61 description=
"In the case of Ehrenfest dynamics, the atomic basis set is evolving with time. "// &
62 "The reference MO can either be understood as a spatial-dependent wave-function which is "// &
63 "time-independent or to be 'attached' with respect to the nuclei position, and "// &
64 "thus evolve in space as the nuclei move. For the first case, set this variable to TRUE. "// &
65 "Note that in this case, you shall have enough atomic orbital across the whole space to "// &
66 "describe this MO as the nuclei will move and may leave the space where the MO is defined. "// &
67 "For the second case, set to FALSE (default). Note that in this case, if the nuclei undergo "// &
68 "dramatic changes (dissociation for instance) then this definition may make no longer sense.", &
69 usage=
"PROPAGATE_REF .TRUE.", &
70 default_l_val=.false., lone_keyword_l_val=.true., &
75 CALL keyword_create(keyword, __location__, name=
"REFERENCE_TYPE", &
76 description=
"Type of the reference MO file provided in REF_MO_FILE_NAME.", &
77 enum_c_vals=
s2a(
"SCF",
"XAS_TDP"), &
78 usage=
"REFERENCE_TYPE SCF", &
80 enum_desc=
s2a(
"The reference MO is from an SCF calculation.", &
81 "The reference MO is from an XAS_TDP analysis."), &
86 CALL keyword_create(keyword, __location__, name=
"REF_MO_FILE_NAME", &
87 description=
"Name of the wavefunction file to read the reference MO from. "// &
88 "For instance, a restart wfn file from SCF calculation or an excited state from XAS_TDP calculation. "// &
89 "If no file is specified, the default is to use DFT%WFN_RESTART_FILE_NAME. "// &
90 "Currently, a RTP restart file (.rtpwfn) cannot be used as reference. "// &
91 "Currently, this file SHALL have the same number of spin as the propagated one "// &
92 "(eventhough you use only the first spin from this reference).", &
93 usage=
"REF_MO_FILE_NAME <FILENAME>", &
94 default_lc_val=
"DEFAULT")
99 description=
"Indexes of the reference MO read from the .wfn reference file (see REF_MO_FILE_NAME). "// &
100 "Use this keyword if REFERENCE_TYPE=SCF. "// &
101 "Set to -1 to project on all the MO available. "// &
102 "One file will be generated per index defined.", &
103 usage=
"REF_MO_INDEX 1 2", &
104 default_i_vals=(/1/), &
105 n_var=-1, type_of_var=
integer_t, repeats=.false.)
110 description=
"Spin of the reference MOs to consider. "// &
111 "1 for ALPHA and 2 for BETA spin respectively. "// &
112 "If the reference MO is spin independent this key is not used.", &
113 usage=
"REF_MO_SPIN 1", &
115 n_var=1, type_of_var=
integer_t, repeats=.false.)
121 description=
"If the reference MOs include more empty states that are not propagated, "// &
122 "using this keyword it is possible to read them as well and thus compute the corresponding projection. ", &
123 usage=
"REF_ADD_LUMO 10", &
125 n_var=1, type_of_var=
integer_t, repeats=.false.)
130 CALL keyword_create(keyword, __location__, name=
"SUM_ON_ALL_REF", &
131 description=
"Set to .TRUE. in order to sum all the projections done "// &
132 "over the required MO_REF_INDEX for each TD MOs. "// &
133 "Only one file will be generated containing the results for every MO_TD_INDEX.", &
134 usage=
"SUM_ON_ALL_REF .TRUE.", &
135 default_l_val=.false., lone_keyword_l_val=.true., &
141 description=
"Indexes of the time dependent MOs to project on the reference MOs. "// &
142 "Set to -1 to project on all the TD MOs.", &
143 usage=
"TD_MO_INDEX 1 2", &
144 default_i_vals=(/1/), &
145 n_var=-1, type_of_var=
integer_t, repeats=.false.)
150 description=
"Spin of the TD MOs to consider. 1 for ALPHA spin, 2 for BETA spin. "// &
151 "If the TD calculation is spin independent this key is not used.", &
152 usage=
"TD_MO_SPIN 1", &
158 CALL keyword_create(keyword, __location__, name=
"SUM_ON_ALL_TD", &
159 description=
"Set to .TRUE. in order to sum the projection done over all on TD MOs on the required MO_REF_INDEX. "// &
160 "One file per MO_REF_INDEX will be generated. "// &
161 "Combining SUM_ON_ALL_TD and SUM_ON_ALL_REF lead to one file one projection: "// &
162 "the population of all the defined TD_MO_INDEX over the reference MO_REF_INDEX per time step required.", &
163 usage=
"SUM_ON_ALL_TD .TRUE.", &
164 default_l_val=.false., lone_keyword_l_val=.true., &
171 description=
"How to print the MO projection", &
172 common_iter_levels=999999999, &
routines to handle the output, The idea is to remove the decision of wheter to output and what to out...
subroutine, public cp_print_key_section_create(print_key_section, location, name, description, print_level, each_iter_names, each_iter_values, add_last, filename, common_iter_levels, citations, unit_str)
creates a print_key section
Utilities for string manipulations.