(git:b77b4be)
Loading...
Searching...
No Matches
input_cp2k_xas.F
Go to the documentation of this file.
1!--------------------------------------------------------------------------------------------------!
2! CP2K: A general program to perform molecular dynamics simulations !
3! Copyright 2000-2025 CP2K developers group <https://cp2k.org> !
4! !
5! SPDX-License-Identifier: GPL-2.0-or-later !
6!--------------------------------------------------------------------------------------------------!
7
8! **************************************************************************************************
9!> \brief function that build the XAS section of the input
10!> \par History
11!> 10.2005 moved out of input_cp2k [fawzi]
12!> 07.2024 moved out of input_cp2k_dft [JGH]
13!> \author fawzi
14! **************************************************************************************************
16 USE bibliography, ONLY: iannuzzi2007,&
23 USE input_constants, ONLY: &
43 USE input_val_types, ONLY: char_t,&
44 integer_t,&
45 lchar_t,&
46 real_t
47 USE kinds, ONLY: dp
48 USE string_utilities, ONLY: s2a
49#include "./base/base_uses.f90"
50
51 IMPLICIT NONE
52 PRIVATE
53
54 CHARACTER(len=*), PARAMETER, PRIVATE :: moduleN = 'input_cp2k_xas'
55
57
58CONTAINS
59
60! **************************************************************************************************
61!> \brief makes the input section for core-level spectroscopy simulations
62!> \param section ...
63!> \par History
64!> 03.2005 created [MI]
65! **************************************************************************************************
66 SUBROUTINE create_xas_section(section)
67 TYPE(section_type), POINTER :: section
68
69 TYPE(keyword_type), POINTER :: keyword
70 TYPE(section_type), POINTER :: print_key, subsection
71
72 cpassert(.NOT. ASSOCIATED(section))
73 CALL section_create(section, __location__, name="xas", &
74 description="Sets the method of choice to calculate core-level excitation spectra. "// &
75 "The occupied states from which we calculate the "// &
76 "excitation should be specified. "// &
77 "Localization of the orbitals may be useful.", &
78 n_keywords=10, n_subsections=1, repeats=.false., &
79 citations=(/iannuzzi2007/))
80
81 NULLIFY (keyword, subsection, print_key)
82
83 CALL keyword_create(keyword, __location__, name="_SECTION_PARAMETERS_", &
84 description="controls the activation of core-level spectroscopy simulations", &
85 usage="&XAS T", &
86 default_l_val=.false., &
87 lone_keyword_l_val=.true.)
88 CALL section_add_keyword(section, keyword)
89 CALL keyword_release(keyword)
90
91 CALL keyword_create(keyword, __location__, name="METHOD", &
92 variants=(/"XAS_METHOD"/), &
93 description="Method to be used to calculate core-level excitation spectra", &
94 usage="METHOD TP_HH", &
95 default_i_val=xas_none, &
96 enum_c_vals=s2a("NONE", "TP_HH", "TP_FH", "TP_VAL", "TP_XHH", "TP_XFH", "DSCF", "TP_FLEX"), &
97 enum_desc=s2a( &
98 "No core electron spectroscopy", "Transition potential half-hole", &
99 "Transition potential full-hole", "Hole in homo for X-ray emission only ", &
100 "Transition potential excited half-hole", &
101 "Transition potential excited full-hole ", &
102 "DSCF calculations to compute the first (core)excited state", &
103 "Transition potential with generalized core occupation and total number of electrons"), &
106 CALL section_add_keyword(section, keyword)
107 CALL keyword_release(keyword)
108
109 CALL keyword_create(keyword, __location__, name="XAS_CORE", &
110 description="Occupation of the core state in XAS calculation by TP_FLEX.", &
111 usage="XAS_CORE 0.5", &
112 default_r_val=0.5_dp)
113 CALL section_add_keyword(section, keyword)
114 CALL keyword_release(keyword)
115
116 CALL keyword_create(keyword, __location__, name="XAS_TOT_EL", &
117 description="Total number of electrons for spin channel alpha, in XAS calculation by TP_FLEX. "// &
118 "If it is a negative value, the number of electrons is set to GS number of electrons "// &
119 "minus the amount subtracted from the core state", &
120 usage="XAS_TOT_EL 10", &
121 default_r_val=-1._dp)
122 CALL section_add_keyword(section, keyword)
123 CALL keyword_release(keyword)
124
125 CALL keyword_create(keyword, __location__, name="XES_CORE", &
126 description="Occupation of the core state in XES calculation by TP_VAL. "// &
127 "The HOMO is emptied by the same amount.", &
128 usage="XES_CORE 0.5", &
129 default_r_val=1._dp)
130 CALL section_add_keyword(section, keyword)
131 CALL keyword_release(keyword)
132
133 CALL keyword_create(keyword, __location__, name="XES_EMPTY_HOMO", &
134 description="Set the occupation of the HOMO in XES calculation by TP_VAL. "// &
135 "The HOMO can be emptied or not, if the core is still full.", &
136 usage="XES_EMPTY_HOMO", &
137 default_l_val=.false., &
138 lone_keyword_l_val=.true.)
139 CALL section_add_keyword(section, keyword)
140 CALL keyword_release(keyword)
141
142 CALL keyword_create(keyword, __location__, name="DIPOLE_FORM", &
143 variants=(/"DIP_FORM"/), &
144 description="Type of integral to get the oscillator strengths "// &
145 "in the diipole approximation", &
146 usage="DIPOLE_FORM string", &
147 default_i_val=xas_dip_vel, &
148 enum_c_vals=s2a("LENGTH", "VELOCITY"), &
149 enum_desc=s2a("Length form &lang; i | e r | j &rang;", &
150 "Velocity form &lang; i | d/dr | j &rang;"), &
151 enum_i_vals=(/xas_dip_len, xas_dip_vel/))
152 CALL section_add_keyword(section, keyword)
153 CALL keyword_release(keyword)
154
155! replace the specialized keyword with standard scf section
156! scf_env is added to xas_env
157
158 NULLIFY (subsection)
159 CALL create_scf_section(subsection)
160 CALL section_add_subsection(section, subsection)
161 CALL section_release(subsection)
162
163 CALL keyword_create(keyword, __location__, name="STATE_TYPE", &
164 variants=(/"TYPE"/), &
165 description="Type of the orbitals that are excited for the xas spectra calculation", &
166 usage="STATE_TYPE 1S", &
167 default_i_val=xas_1s_type, &
168 enum_c_vals=s2a("1S", "2S", "2P", "3S", "3P", "3D", "4S", "4P", "4D", "4F"), &
169 enum_desc=s2a("1s orbitals", "2s orbitals", "2p orbitals", "3s orbitals", "3p orbitals", &
170 "3d orbitals", "4s orbitals", "4p orbitals", "4d orbitals", "4f orbitals"), &
173 CALL section_add_keyword(section, keyword)
174 CALL keyword_release(keyword)
175
176 CALL keyword_create(keyword, __location__, name="STATE_SEARCH", &
177 description="# of states where to look for the one to be excited", &
178 usage="STATE_SEARCH 1", &
179 default_i_val=-1)
180 CALL section_add_keyword(section, keyword)
181 CALL keyword_release(keyword)
182
183 CALL keyword_create(keyword, __location__, name="SPIN_CHANNEL", &
184 description="# Spin channel of the excited orbital", &
185 usage="SPIN_CHANNEL 1", &
186 default_i_val=1)
187 CALL section_add_keyword(section, keyword)
188 CALL keyword_release(keyword)
189
190 CALL keyword_create(keyword, __location__, name="ATOMS_LIST", &
191 variants=(/"AT_LIST"/), &
192 description="Indexes of the atoms to be excited. "// &
193 "This keyword can be repeated several times "// &
194 "(useful if you have to specify many indexes).", &
195 usage="ATOMS_LIST {integer} {integer} .. {integer} ", &
196 n_var=-1, type_of_var=integer_t, repeats=.true.)
197 CALL section_add_keyword(section, keyword)
198 CALL keyword_release(keyword)
199
200 CALL keyword_create(keyword, __location__, name="OVERLAP_THRESHOLD", &
201 description="Threshold for including more than one initial core excited state "// &
202 "per atom. The threshold is taken relative to the maximum overlap.", &
203 usage="OVERLAP_THRESHOLD 8.e-1", default_r_val=1.0_dp)
204 CALL section_add_keyword(section, keyword)
205 CALL keyword_release(keyword)
206
207 CALL keyword_create(keyword, __location__, name="ORBITAL_LIST", &
208 variants=(/"ORBITAL_LIST"/), &
209 description="Indices of the localized orbitals to be excited. "// &
210 "This keyword can be repeated several times "// &
211 "(useful if you have to specify many indexes).", &
212 usage="ORBITAL_LIST {integer} {integer} .. {integer} ", &
213 n_var=-1, type_of_var=integer_t, repeats=.true.)
214 CALL section_add_keyword(section, keyword)
215 CALL keyword_release(keyword)
216
217 CALL keyword_create(keyword, __location__, name="ADDED_MOS", &
218 description="Number of additional MOS added spin up only", &
219 usage="ADDED_MOS {integer}", default_i_val=-1)
220 CALL section_add_keyword(section, keyword)
221 CALL keyword_release(keyword)
222
223 CALL keyword_create(keyword, __location__, name="MAX_ITER_ADDED", &
224 description="maximum number of iteration in calculation of added orbitals", &
225 usage="MAX_ITER_ADDED 100", default_i_val=2999)
226 CALL section_add_keyword(section, keyword)
227 CALL keyword_release(keyword)
228
229 CALL keyword_create(keyword, __location__, name="EPS_ADDED", &
230 description="target accuracy incalculation of the added orbitals", &
231 usage="EPS_ADDED 1.e-6", default_r_val=1.0e-5_dp)
232 CALL section_add_keyword(section, keyword)
233 CALL keyword_release(keyword)
234
235 CALL keyword_create(keyword, __location__, name="NGAUSS", &
236 description="Number of gto's for the expansion of the STO "// &
237 "of the type given by STATE_TYPE", &
238 usage="NGAUSS {integer}", default_i_val=3)
239 CALL section_add_keyword(section, keyword)
240 CALL keyword_release(keyword)
241
242 CALL keyword_create(keyword, __location__, name="RESTART", &
243 description="Restart the excited state if the restart file exists", &
244 usage="RESTART", &
245 default_l_val=.false., lone_keyword_l_val=.true.)
246 CALL section_add_keyword(section, keyword)
247 CALL keyword_release(keyword)
248
249 CALL keyword_create(keyword, __location__, name="WFN_RESTART_FILE_NAME", &
250 variants=(/"RESTART_FILE_NAME"/), &
251 description="Root of the file names where to read the MOS from "// &
252 "which to restart the calculation of the core level excited states", &
253 usage="WFN_RESTART_FILE_NAME <FILENAME>", &
254 type_of_var=lchar_t)
255 CALL section_add_keyword(section, keyword)
256 CALL keyword_release(keyword)
257
258 CALL create_localize_section(subsection)
259 CALL section_add_subsection(section, subsection)
260 CALL section_release(subsection)
261
262 CALL section_create(subsection, __location__, name="PRINT", &
263 description="printing of information during the core-level spectroscopy simulation", &
264 repeats=.false.)
265
266 ! Add printing of wannier infos
267 CALL print_wanniers(subsection)
268
269 CALL cp_print_key_section_create(print_key, __location__, "iteration_info", &
270 description="Controls the printing of basic iteration information during the XAS SCF.", &
271 print_level=low_print_level, filename="__STD_OUT__")
272 CALL keyword_create(keyword, __location__, name="time_cumul", &
273 description="If the printkey is activated switches the printing of timings"// &
274 " to cumulative (over the SCF).", &
275 default_l_val=.false., lone_keyword_l_val=.true.)
276 CALL section_add_keyword(print_key, keyword)
277 CALL keyword_release(keyword)
278 CALL section_add_subsection(subsection, print_key)
279 CALL section_release(print_key)
280
281 CALL cp_print_key_section_create(print_key, __location__, "program_run_info", &
282 description="Controls the printing of basic iteration information in CLS", &
283 print_level=low_print_level, add_last=add_last_numeric, filename="__STD_OUT__")
284 CALL section_add_subsection(subsection, print_key)
285 CALL section_release(print_key)
286
287 CALL cp_print_key_section_create(print_key, __location__, "XES_SPECTRUM", &
288 description="Controls the dumping of the CLS output files containing the emission spectra", &
289 print_level=low_print_level, common_iter_levels=3, filename="")
290 CALL section_add_subsection(subsection, print_key)
291 CALL section_release(print_key)
292
294 print_key, __location__, "XAS_SPECTRUM", &
295 description="Controls the dumping of the CLS output files containing the absorption spectra", &
296 print_level=low_print_level, common_iter_levels=3, filename="")
297 CALL section_add_subsection(subsection, print_key)
298 CALL section_release(print_key)
299
300 CALL create_pdos_section(print_key)
301 CALL section_add_subsection(subsection, print_key)
302 CALL section_release(print_key)
303
304 CALL cp_print_key_section_create(print_key, __location__, "RESTART", &
305 description="Controls the dumping of MO restart file during the SCF. "// &
306 "of a Core-Level-Spectroscopy calculation. For each new excited atom, "// &
307 "one different restart file is dumped. These restart files should be "// &
308 "employed only to restart the same type of CLS calculation, "// &
309 "i.e. with the same core potential.", &
310 print_level=low_print_level, common_iter_levels=3, each_iter_names=s2a("XAS_SCF"), &
311 add_last=add_last_numeric, each_iter_values=(/3/), filename="")
312 CALL section_add_subsection(subsection, print_key)
313 CALL section_release(print_key)
314
315 CALL cp_print_key_section_create(print_key, __location__, "FULL_RESTART", &
316 description="Controls the dumping of a standard MO restart file "// &
317 "where coefficients and occupation numbers are those of the TP scheme, "// &
318 "i.e. with emptied core state.", &
319 print_level=high_print_level, common_iter_levels=3, each_iter_names=s2a("XAS_SCF"), &
320 add_last=add_last_numeric, each_iter_values=(/3/), filename="")
321 CALL section_add_subsection(subsection, print_key)
322 CALL section_release(print_key)
323
324 CALL cp_print_key_section_create(print_key, __location__, "CLS_FUNCTION_CUBES", &
325 description="Controls the printing of the relaxed orbitals ", &
326 print_level=high_print_level, common_iter_levels=3, add_last=add_last_numeric, filename="")
327 CALL keyword_create(keyword, __location__, name="stride", &
328 description="The stride (X,Y,Z) used to write the cube file "// &
329 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
330 " 1 number valid for all components.", &
331 usage="STRIDE 2 2 2", n_var=-1, default_i_vals=(/2, 2, 2/), type_of_var=integer_t)
332 CALL section_add_keyword(print_key, keyword)
333 CALL keyword_release(keyword)
334
335 CALL keyword_create(keyword, __location__, name="CUBES_LU_BOUNDS", &
336 variants=(/"CUBES_LU"/), &
337 description="The lower and upper index of the states to be printed as cube", &
338 usage="CUBES_LU_BOUNDS integer integer", &
339 n_var=2, default_i_vals=(/0, -2/), type_of_var=integer_t)
340 CALL section_add_keyword(print_key, keyword)
341 CALL keyword_release(keyword)
342
343 CALL keyword_create(keyword, __location__, name="CUBES_LIST", &
344 description="Indexes of the states to be printed as cube files "// &
345 "This keyword can be repeated several times "// &
346 "(useful if you have to specify many indexes).", &
347 usage="CUBES_LIST 1 2", &
348 n_var=-1, type_of_var=integer_t, repeats=.true.)
349 CALL section_add_keyword(print_key, keyword)
350 CALL keyword_release(keyword)
351 CALL keyword_create(keyword, __location__, name="APPEND", &
352 description="append the cube files when they already exist", &
353 default_l_val=.false., lone_keyword_l_val=.true.)
354 CALL section_add_keyword(print_key, keyword)
355 CALL keyword_release(keyword)
356
357 CALL section_add_subsection(subsection, print_key)
358 CALL section_release(print_key)
359
360 CALL section_add_subsection(section, subsection)
361 CALL section_release(subsection)
362
363 END SUBROUTINE create_xas_section
364
365! **************************************************************************************************
366!> \brief makes the input section for core-level spectroscopy simulations using
367!> linear response TDDFT
368!> \param section ...
369!> \par History
370!> 11.2017 created [AB]
371! **************************************************************************************************
372 SUBROUTINE create_xas_tdp_section(section)
373 TYPE(section_type), POINTER :: section
374
375 TYPE(keyword_type), POINTER :: keyword
376 TYPE(section_type), POINTER :: print_key, subsection, subsubsection, &
377 subsubsubsection
378
379 NULLIFY (keyword, print_key, subsection, subsubsection, subsubsubsection)
380
381 cpassert(.NOT. ASSOCIATED(section))
382 CALL section_create(section, __location__, name="XAS_TDP", &
383 description="XAS simulations using linear-response TDDFT. Excitation from "// &
384 "specified core orbitals are considered one at a time. In case of high "// &
385 "symmetry structures, donor core orbitals should be localized.", &
386 n_keywords=19, n_subsections=4, repeats=.false.)
387
388 NULLIFY (keyword, subsection, print_key)
389
390 CALL keyword_create(keyword, __location__, name="_SECTION_PARAMETERS_", &
391 description="controls the activation of XAS simulations with linear "// &
392 "response TDDFT.", &
393 usage="&TDP_XAS {logical}", &
394 default_l_val=.false., &
395 lone_keyword_l_val=.true.)
396 CALL section_add_keyword(section, keyword)
397 CALL keyword_release(keyword)
398
399 CALL keyword_create(keyword, __location__, name="CHECK_ONLY", &
400 description="This keyword defines whether the full calculation should "// &
401 "be done or not. If set to .TRUE., only the determination "// &
402 "of donor MOs is conducted. This run option allows for "// &
403 "cheap verification of the input parameters", &
404 usage="CHECK_ONLY {logical}", &
405 default_l_val=.false., &
406 lone_keyword_l_val=.true., &
407 repeats=.false.)
408 CALL section_add_keyword(section, keyword)
409 CALL keyword_release(keyword)
410
411 CALL keyword_create(keyword, __location__, name="RESTART_FROM_FILE", &
412 variants=s2a("RESTART_FILENAME", "RST_FILENAME", "RESTART_FILE", "RST_FILE"), &
413 description="By providing a RESTART file containing the linear-response "// &
414 "orbitals and excitations energies from a previous calculation, "// &
415 "all computations are skipped except for the corresponding "// &
416 "PDOS and/or CUBE file printing as defined in the PRINT "// &
417 "subsection. Basis sets and geometry need to be consistent.", &
418 usage="RESTART_FROM_FILE <FILENAME>", &
419 type_of_var=char_t, n_var=-1)
420 CALL section_add_keyword(section, keyword)
421 CALL keyword_release(keyword)
422
423 CALL keyword_create(keyword, __location__, name="EXCITATIONS", &
424 variants=(/"EXCITATION"/), &
425 description="Specify the type of excitation to consider. In case of a "// &
426 "resctricted closed-shell ground state calculation, "// &
427 "RCS_SINGLET or/and RCS_TRIPLET can be chosen. In case of a "// &
428 "open-shell ground state calculation (either UKS or ROKS), "// &
429 "standard spin conserving excitation (OS_SPIN_CONS) or/and "// &
430 "spin-flip excitation (OS_SPIN_FLIP) can be chosen.", &
431 usage="EXCITATIONS {string}", &
432 repeats=.true., &
433 default_i_val=tddfpt_singlet, &
434 enum_c_vals=s2a("RCS_SINGLET", "RCS_TRIPLET", "OS_SPIN_CONS", "OS_SPIN_FLIP"), &
435 enum_desc=s2a("Singlet excitation on top of restricted closed-shell ground state", &
436 "Triplet excitation on top of restricted closed-shell ground state", &
437 "Spin-conserving excitations on top of open-shell ground state", &
438 "Spin-flip excitation on top of open-shell ground state"), &
440 CALL section_add_keyword(section, keyword)
441 CALL keyword_release(keyword)
442
443 CALL keyword_create(keyword, __location__, name="EPS_PGF_XAS", &
444 variants=s2a("EPS_PGF", "EPS_PGF_XAS_TDP"), &
445 description="The threshold used to determine the spacial extent of all "// &
446 "primitive Gaussian functions used for the construction "// &
447 "of neighbor lists in the XAS_TDP method. "// &
448 "By default, takes the value of QS%EPS_PGF_ORB. Useful if "// &
449 "the former value is tiny due to possible ground state HFX "// &
450 "contributions.", &
451 usage="EPS_PGF_XAS {real}", &
452 type_of_var=real_t)
453 CALL section_add_keyword(section, keyword)
454 CALL keyword_release(keyword)
455
456 CALL keyword_create(keyword, __location__, name="EPS_FILTER", &
457 variants=s2a("EPS_FILTER_MATRIX"), &
458 description="The threshold used for sparse matrix operations", &
459 usage="EPS_FILTER {real}", &
460 type_of_var=real_t, &
461 default_r_val=1.0e-10_dp)
462 CALL section_add_keyword(section, keyword)
463 CALL keyword_release(keyword)
464
465 CALL keyword_create(keyword, __location__, name="DIPOLE_FORM", &
466 variants=(/"DIP_FORM"/), &
467 description="Type of integral to get the oscillator strengths "// &
468 "in the dipole approximation", &
469 usage="DIPOLE_FORM {string}", &
470 default_i_val=xas_dip_vel, &
471 enum_c_vals=s2a("LENGTH", "VELOCITY"), &
472 enum_desc=s2a("Length form &lang; 0 | e r | n &rang;", &
473 "Velocity form &lang; 0 | d/dr | n &rang;"), &
474 enum_i_vals=(/xas_dip_len, xas_dip_vel/))
475 CALL section_add_keyword(section, keyword)
476 CALL keyword_release(keyword)
477
478 CALL keyword_create(keyword, __location__, name="QUADRUPOLE", &
479 variants=s2a("DO_QUADRUPOLE", "DO_QUAD", "QUAD"), &
480 description="Compute the electric quadrupole contribution to the "// &
481 "oscillator strenghts (in the length representation with "// &
482 "the origin set on the relevant excited atom)", &
483 usage="QUADRUPOLE {logical}", &
484 default_l_val=.false., &
485 lone_keyword_l_val=.true.)
486 CALL section_add_keyword(section, keyword)
487 CALL keyword_release(keyword)
488
489 CALL keyword_create(keyword, __location__, name="XYZ_DIPOLE", &
490 variants=s2a("DIPOLE_XYZ"), &
491 description="Whether the detailed contributions of the dipole oscillator "// &
492 "strengths along the X,Y,Z directions should be printed.", &
493 usage="XYZ_DIPOLE {logical}", &
494 default_l_val=.false., &
495 lone_keyword_l_val=.true.)
496 CALL section_add_keyword(section, keyword)
497 CALL keyword_release(keyword)
498
499! the GW2X correction subsection
500 CALL section_create(subsection, __location__, name="GW2X", &
501 description="Specifications for the GW2X calculation of core "// &
502 "ionization potentials. Note that donor states need to be actively "// &
503 "localized using the LOCALIZE keyword in DONOR_STATES. N_SEARCH "// &
504 "should be kept to the minimum, such that only core states are localized.", &
505 citations=(/shigeta2001/), &
506 n_keywords=8, &
507 n_subsections=0, &
508 repeats=.false.)
509
510 CALL keyword_create(keyword, __location__, name="_SECTION_PARAMETERS_", &
511 description="Enables the GW2X correction of the core ionization potentials", &
512 usage="&GW2X {logical}", &
513 default_l_val=.false., &
514 lone_keyword_l_val=.true.)
515 CALL section_add_keyword(subsection, keyword)
516 CALL keyword_release(keyword)
517
518 CALL keyword_create(keyword, __location__, name="XPS_ONLY", &
519 description="If set to .TRUE., only run GW2X calculations for XPS "// &
520 "spectroscopy and ignore all XAS calculations. It is still "// &
521 "required to define the DONOR_STATES and KERNEL%EXACT_EXCHANGE "// &
522 "subsections.", &
523 default_l_val=.false., &
524 lone_keyword_l_val=.true.)
525 CALL section_add_keyword(subsection, keyword)
526 CALL keyword_release(keyword)
527
528 CALL keyword_create(keyword, __location__, name="BATCH_SIZE", &
529 description="MOs batch size for batched tensor contraction. Larger "// &
530 "size is faster, but uses more memory. Default should be safe "// &
531 "in most cases.", &
532 default_i_val=64)
533 CALL section_add_keyword(subsection, keyword)
534 CALL keyword_release(keyword)
535
536 CALL keyword_create(keyword, __location__, name="EPS_GW2X", &
537 description="Convergence threshold for GW2X iterations (in eV)", &
538 default_r_val=1.e-2_dp)
539 CALL section_add_keyword(subsection, keyword)
540 CALL keyword_release(keyword)
541
542 CALL keyword_create(keyword, __location__, name="C_OS", &
543 description="Opposite-spin scling factor. SCS => 6/5, SOS => 1.3", &
544 default_r_val=1.0_dp)
545 CALL section_add_keyword(subsection, keyword)
546 CALL keyword_release(keyword)
547
548 CALL keyword_create(keyword, __location__, name="C_SS", &
549 description="Same-spin scling factor. SCS => 1/3, SOS => 0.0", &
550 default_r_val=1.0_dp)
551 CALL section_add_keyword(subsection, keyword)
552 CALL keyword_release(keyword)
553
554 CALL keyword_create(keyword, __location__, name="MAX_GW2X_ITER", &
555 description="Maximum number of iterations for GW2X", &
556 default_i_val=10)
557 CALL section_add_keyword(subsection, keyword)
558 CALL keyword_release(keyword)
559
560 CALL keyword_create(keyword, __location__, name="PSEUDO_CANONICAL", &
561 variants=(/"PSEUDO_CANO"/), &
562 description="Whether the pseudo-canonical version of GW2X should be used "// &
563 "(versus only using the diagonal of the generalized Fock matrix)", &
564 default_l_val=.true.)
565 CALL section_add_keyword(subsection, keyword)
566 CALL keyword_release(keyword)
567
568 CALL section_add_subsection(section, subsection)
569 CALL section_release(subsection)
570
571! The donor state subsection
572
573 CALL section_create(subsection, __location__, name="DONOR_STATES", &
574 description="Specifications for the donor states from which core "// &
575 "electrons are excited", &
576 n_keywords=6, &
577 n_subsections=0, &
578 repeats=.false.)
579
580 CALL keyword_create(keyword, __location__, name="DEFINE_EXCITED", &
581 description="Whether the atoms to be excited should be defined by "// &
582 "a list of atom indices or by a list of atom kinds.", &
583 usage="DEFINE_EXCITED {string}", &
584 default_i_val=xas_tdp_by_index, &
585 enum_c_vals=s2a("BY_INDEX", "BY_KIND"), &
586 enum_i_vals=(/xas_tdp_by_index, xas_tdp_by_kind/), &
587 enum_desc=s2a("Excited atoms are defined by a list of indices", &
588 "Excited atoms are defined by a list of atomic kinds"))
589 CALL section_add_keyword(subsection, keyword)
590 CALL keyword_release(keyword)
591
592 CALL keyword_create(keyword, __location__, name="ATOM_LIST", &
593 variants=(/"AT_LIST"/), &
594 description="Indices of the atoms to be excited. "// &
595 "Keyword only taken into account if DEFINE_EXCITED = BY_INDEX", &
596 usage="ATOM_LIST {integer} {integer} .. {integer} ", &
597 n_var=-1, type_of_var=integer_t, repeats=.false.)
598 CALL section_add_keyword(subsection, keyword)
599 CALL keyword_release(keyword)
600
601 CALL keyword_create(keyword, __location__, name="KIND_LIST", &
602 description="Kind of atoms to be excited. "// &
603 "All atoms of the specified kinds are considered. "// &
604 "Keyword only taken into account if DEFINE_EXCITED = BY_KIND", &
605 usage="KIND_LIST {string} {string} .. {string} ", &
606 n_var=-1, type_of_var=char_t, repeats=.false.)
607 CALL section_add_keyword(subsection, keyword)
608 CALL keyword_release(keyword)
609
610 CALL keyword_create(keyword, __location__, name="STATE_TYPES", &
611 variants=(/"TYPES"/), &
612 description="Types of orbitals that are excited, for each atom/kind, "// &
613 "in order to do LR-TDDFT driven xas spectra calculation. "// &
614 "This keyword MUST have the same number of entries as the relevant "// &
615 "KIND_LIST or ATOM_LIST. The order of the specified state types must "// &
616 "correspond to the order of the relevant kinds/indices. "// &
617 "This keyword can be repeated, useful when multiple orbital types "// &
618 "should be excited for specific kinds/atoms.", &
619 n_var=-1, default_i_val=xas_not_excited, repeats=.true., &
620 usage="STATE_TYPES {string} {string} .. {string}", &
621 enum_c_vals=s2a("1S", "2S", "2P", "NE"), &
622 enum_desc=s2a("1s orbital", "2s orbital", "2p orbitals", "not excited"), &
624 CALL section_add_keyword(subsection, keyword)
625 CALL keyword_release(keyword)
626
627 CALL keyword_create(keyword, __location__, name="N_SEARCH", &
628 description="Number of MOs (per spin) to search to find specified donor core "// &
629 "orbitals, starting from the lowest in energy and upward. By default, "// &
630 "all HOMOs are searched. If the LOCALIZE keyword is used, "// &
631 "then all searched states are first localized.", &
632 usage="N_SEARCH {integer}", &
633 default_i_val=-1)
634 CALL section_add_keyword(subsection, keyword)
635 CALL keyword_release(keyword)
636
637 CALL keyword_create(keyword, __location__, name="LOCALIZE", &
638 variants=s2a("LOC", "DO_LOC"), &
639 description="Whether the N_SEARCH potential donor states should be "// &
640 "actively localized. Necessary in case of excited atoms "// &
641 "equivalent under symmetry or GW2X correction.", &
642 usage="LOCALIZE {logical}", &
643 default_l_val=.false., &
644 lone_keyword_l_val=.true.)
645 CALL section_add_keyword(subsection, keyword)
646 CALL keyword_release(keyword)
647
648 CALL section_add_subsection(section, subsection)
649 CALL section_release(subsection)
650! End of the donor states subsection
651
652! The OT solver subsection
653 CALL section_create(subsection, __location__, name="OT_SOLVER", &
654 description="Specifications for the iterative OT solver. Note: only "// &
655 "available within the Tamm-Dancoff approximation. Recommanded if excitations "// &
656 "from multiple donor states take place.", &
657 n_keywords=4, &
658 n_subsections=0, &
659 repeats=.false.)
660
661 CALL keyword_create(keyword, __location__, name="_SECTION_PARAMETERS_", &
662 description="Enables the usage of the OT iterator solver", &
663 usage="&OT_SOLVER {logical}", &
664 default_l_val=.false., &
665 lone_keyword_l_val=.true.)
666 CALL section_add_keyword(subsection, keyword)
667 CALL keyword_release(keyword)
668
669 CALL keyword_create(keyword, __location__, name="MAX_ITER", &
670 description="Maximum number of iterations allowed for the OT solver", &
671 usage="MAX_ITER {integer}", &
672 default_i_val=50)
673 CALL section_add_keyword(subsection, keyword)
674 CALL keyword_release(keyword)
675
676 CALL keyword_create(keyword, __location__, name="EPS_ITER", &
677 description="Convergence threshold for the OT solver", &
678 usage="EPS_ITER {double}", &
679 default_r_val=1.0e-4_dp)
680 CALL section_add_keyword(subsection, keyword)
681 CALL keyword_release(keyword)
682
683 CALL keyword_create(keyword, __location__, name="MINIMIZER", &
684 description="Minimizer to be used with the OT solver", &
685 usage="MINIMIZER DIIS", &
686 default_i_val=ot_mini_diis, &
687 enum_c_vals=s2a("CG", "DIIS"), &
688 enum_desc=s2a("Conjugated gradient: safer", &
689 "Direct inversion of the iterative subspace: faster"), &
690 enum_i_vals=(/ot_mini_cg, ot_mini_diis/))
691 CALL section_add_keyword(subsection, keyword)
692 CALL keyword_release(keyword)
693
694 CALL section_add_subsection(section, subsection)
695 CALL section_release(subsection)
696! End of the OT solver subsection
697
698 CALL keyword_create(keyword, __location__, name="SPIN_ORBIT_COUPLING", &
699 variants=(/"SOC"/), &
700 description="Whether spin-orbit coupling should be added. "// &
701 "Note: only applies for spin-restricted calculations with "// &
702 "singlet and triplet excitations OR spin-unrestricted "// &
703 "calculations with both spin-conserving and spin-flip.", &
704 usage="SOC {logical}", &
705 default_l_val=.false., &
706 lone_keyword_l_val=.true.)
707 CALL section_add_keyword(section, keyword)
708 CALL keyword_release(keyword)
709
710 CALL keyword_create(keyword, __location__, name="TAMM_DANCOFF", &
711 variants=(/"TDA"/), &
712 description="Whether the Tamm-Dancoff approximation should be used.", &
713 usage="TAMM_DANCOFF {logical}", &
714 default_l_val=.true., &
715 lone_keyword_l_val=.true.)
716 CALL section_add_keyword(section, keyword)
717 CALL keyword_release(keyword)
718
719 CALL keyword_create(keyword, __location__, name="GRID", &
720 variants=(/"ATOMIC_GRID"/), &
721 description="Specification of the atomic angular and radial grids for "// &
722 "a given atomic kind. This keyword can/should be repeated "// &
723 "for each excited kind. The default grid dimensions are "// &
724 "those set for the GAPW ground state calculation. These "// &
725 "grids are used for the xc-kernel integration. "// &
726 "Usage: GRID < KIND > < LEBEDEV_GRID > < RADIAL_GRID >", &
727 usage="GRID {string} {integer} {integer}", &
728 n_var=3, type_of_var=char_t, repeats=.true.)
729 CALL section_add_keyword(section, keyword)
730 CALL keyword_release(keyword)
731
732 CALL keyword_create(keyword, __location__, name="N_EXCITED", &
733 variants=(/"N_ROOTS"/), &
734 description="The number of excited states to compute per donor "// &
735 "molecular orbital. (e.g. if 2p excitations, "// &
736 "3*N_EXCITED excited states are considered). "// &
737 "If N_EXCITED is set to -1, all excitations are considered", &
738 usage="N_EXCITED {integer}", &
739 default_i_val=-1)
740 CALL section_add_keyword(section, keyword)
741 CALL keyword_release(keyword)
742
743 CALL keyword_create(keyword, __location__, name="ENERGY_RANGE", &
744 variants=s2a("E_RANGE"), &
745 description="The energy range in eV for which excitations are considered. "// &
746 "Only excitated states within the range of: first excitation "// &
747 "energy + ENERGY_RANGE are kept. If ENERGY_RANGE "// &
748 "and N_EXCITED are specified, the former has priority. "// &
749 "Negative values are ignored and N_EXCITED takes over.", &
750 usage="ENERGY_RANGE {real}", &
751 default_r_val=-1.0_dp)
752 CALL section_add_keyword(section, keyword)
753 CALL keyword_release(keyword)
754
755! The KERNEL subsection
756 CALL section_create(subsection, __location__, name="KERNEL", &
757 description="Defines how the kernel is built in terms of functionals.", &
758 n_keywords=1, &
759 n_subsections=1, &
760 repeats=.false.)
761
762 CALL keyword_create(keyword, __location__, name="RI_REGION", &
763 variants=(/"RI_RADIUS"/), &
764 description="The region defined by a sphere of the given radius around "// &
765 "the excited atom defining which RI_XAS basis elements are "// &
766 "considered for the RI projection of the density. Each basis "// &
767 "element which center is in this region is taken. The density "// &
768 "for a given excited atom is expressed as : "// &
769 "sum_ijkl P_ij (ijk) S_kl^-1 xi_l, where P_ij is the density "// &
770 "matrix, i,j span the orbital basis and k,l the RI_XAS basis "// &
771 "in the region. The larger the radius, the more basis "// &
772 "functions to expand the density. However, it is assumed "// &
773 "that it is a small number and the code does not scale well "// &
774 "as the number of RI basis elements gets too large. "// &
775 "Expressed in Angstrom. If the radius is set to 0.0, only "// &
776 "the RI basis elements centered on the excited atom are used.", &
777 usage="RI_REGION {real}", &
778 default_r_val=0.0_dp)
779 CALL section_add_keyword(subsection, keyword)
780 CALL keyword_release(keyword)
781
782! The XC_FUNCTIONAL subsubsection
783 CALL create_xc_fun_section(subsubsection)
784 CALL section_add_subsection(subsection, subsubsection)
785 CALL section_release(subsubsection)
786
787! The EXACT_EXCHANGE subsubsection
788 CALL section_create(subsubsection, __location__, name="EXACT_EXCHANGE", &
789 description="Whether exact-exchange should be added to the kernel and "// &
790 "if so, with which fraction and operator.", &
791 n_keywords=7, &
792 n_subsections=1, &
793 repeats=.false.)
794
795 CALL keyword_create(keyword, __location__, name="_SECTION_PARAMETERS_", &
796 description="Enables the addition of exact exchange to the kernel.", &
797 usage="&EXACT_EXCHANGE {logical}", &
798 default_l_val=.false., &
799 lone_keyword_l_val=.true.)
800 CALL section_add_keyword(subsubsection, keyword)
801 CALL keyword_release(keyword)
802
803 CALL keyword_create(keyword, __location__, name="POTENTIAL_TYPE", &
804 variants=s2a("OP", "OPERATOR", "POTENTIAL"), &
805 description="The type of operator used for exact exchange. The standard "// &
806 "Coulomb operator cannot be used in periodic systems.", &
807 usage="OPERATOR {string}", &
808 repeats=.false., &
809 default_i_val=do_potential_coulomb, &
810 enum_c_vals=s2a("COULOMB", "TRUNCATED", "SHORTRANGE"), &
811 enum_desc=s2a("Standard Coulomb operator: 1/r", &
812 "Truncated Coulomb operator: 1/r if r < R_c, 0 otherwise ", &
813 "Short range: erfc(omega*r)/r"), &
816 CALL section_add_keyword(subsubsection, keyword)
817 CALL keyword_release(keyword)
818
819 CALL keyword_create(keyword, __location__, name="CUTOFF_RADIUS", &
820 variants=s2a("R_C", "RC", "RANGE"), &
821 description="The cutoff radius (in Angstrom) for the truncated Coulomb operator.", &
822 usage="CUTOFF_RADIUS {double}", &
823 default_r_val=0.0_dp, &
824 repeats=.false.)
825 CALL section_add_keyword(subsubsection, keyword)
826 CALL keyword_release(keyword)
827
828 CALL keyword_create(keyword, __location__, name="T_C_G_DATA", &
829 description="Location of the file t_c_g.dat that contains the data for the "// &
830 "evaluation of the truncated gamma function ", &
831 usage="T_C_G_DATA {string}", &
832 default_c_val="t_c_g.dat")
833 CALL section_add_keyword(subsubsection, keyword)
834 CALL keyword_release(keyword)
835
836 CALL keyword_create(keyword, __location__, name="OMEGA", &
837 description="The range parameter for the short range operator (in 1/a0).", &
838 usage="OMEGA {double}", &
839 default_r_val=0.0_dp, &
840 repeats=.false.)
841 CALL section_add_keyword(subsubsection, keyword)
842 CALL keyword_release(keyword)
843
844 CALL keyword_create(keyword, __location__, name="EPS_RANGE", &
845 description="The threshold to determine the effective range of the short range "// &
846 "operator: erfc(omega*eff_range)/eff_range = EPS_RANGE", &
847 usage="EPS_RANGE = {double}", &
848 default_r_val=1.0e-6_dp, &
849 repeats=.false.)
850 CALL section_add_keyword(subsubsection, keyword)
851 CALL keyword_release(keyword)
852
853 CALL keyword_create(keyword, __location__, name="EPS_SCREENING", &
854 variants=s2a("EPS_SCREEN"), &
855 description="A threshold to determine which primitive 3-center integrals "// &
856 "are kept for contraction, as the latter operation can be "// &
857 "expensive (especially for large basis sets ). "// &
858 "If |(ab|c)| < EPS_SCREENNING, it is discarded.", &
859 default_r_val=1.0e-8_dp, &
860 repeats=.false.)
861 CALL section_add_keyword(subsubsection, keyword)
862 CALL keyword_release(keyword)
863
864 CALL keyword_create(keyword, __location__, name="SCALE", &
865 variants=s2a("FRACTION"), &
866 description="Scaling of the exact exchange contribution.", &
867 default_r_val=1.0_dp)
868 CALL section_add_keyword(subsubsection, keyword)
869 CALL keyword_release(keyword)
870
871 !The RI metric subsection
872 CALL section_create(subsubsubsection, __location__, name="RI_METRIC", &
873 description="This subsection allows for the definition of an exchange "// &
874 "RI metric that is different from the main exchange potential. "// &
875 "By default (i.e. if this subsection is ignored), the "// &
876 "exchange kernel is computed in the V approximation: "// &
877 "(ab|ij) = (ab|P) V^-1 (Q|ij), where V = (P|Q). With a RI "// &
878 "metric, we have a 2 step RI involving the metric potential "// &
879 "for the 3-center integrals: "// &
880 "(ab|ij) = (ab!P) (P!Q)^-1 (Q|R) (R!S)^-1 (S!ij), where | "// &
881 "stands for the exchange potential and ! for the metric "// &
882 "potential. This allows for drastic screening of the "// &
883 "3-center integrals by selecting shorter range metric.", &
884 n_keywords=5, &
885 n_subsections=0, &
886 repeats=.false.)
887
888 CALL keyword_create(keyword, __location__, name="_SECTION_PARAMETERS_", &
889 description="Enables the use of a RI metric.", &
890 usage="&EXACT_EXCHANGE {logical}", &
891 default_l_val=.false., &
892 lone_keyword_l_val=.true.)
893 CALL section_add_keyword(subsubsubsection, keyword)
894 CALL keyword_release(keyword)
895
896 CALL keyword_create(keyword, __location__, name="POTENTIAL_TYPE", &
897 variants=s2a("OP", "OPERATOR", "POTENTIAL"), &
898 description="The type of operator used for the metric.", &
899 usage="OPERATOR {string}", &
900 repeats=.false., &
901 default_i_val=do_potential_id, &
902 enum_c_vals=s2a("OVERLAP", "TRUNCATED", "SHORTRANGE"), &
903 enum_desc=s2a("Overlap operator (=identity)", &
904 "Truncated Coulomb operator: 1/r if r < R_c, 0 otherwise ", &
905 "Short range: erfc(omega*r)/r"), &
908 CALL section_add_keyword(subsubsubsection, keyword)
909 CALL keyword_release(keyword)
910
911 CALL keyword_create(keyword, __location__, name="CUTOFF_RADIUS", &
912 variants=s2a("R_C", "RC", "RANGE"), &
913 description="The cutoff radius (in Angstrom) for the truncated Coulomb operator.", &
914 usage="CUTOFF_RADIUS {double}", &
915 default_r_val=0.0_dp, &
916 repeats=.false.)
917 CALL section_add_keyword(subsubsubsection, keyword)
918 CALL keyword_release(keyword)
919
920 CALL keyword_create(keyword, __location__, name="T_C_G_DATA", &
921 description="Location of the file t_c_g.dat that contains the data for the "// &
922 "evaluation of the truncated gamma function ", &
923 usage="T_C_G_DATA {string}", &
924 default_c_val="t_c_g.dat")
925 CALL section_add_keyword(subsubsubsection, keyword)
926 CALL keyword_release(keyword)
927
928 CALL keyword_create(keyword, __location__, name="OMEGA", &
929 description="The range parameter for the short range operator (in 1/a0).", &
930 usage="OMEGA {double}", &
931 default_r_val=0.0_dp, &
932 repeats=.false.)
933 CALL section_add_keyword(subsubsubsection, keyword)
934 CALL keyword_release(keyword)
935
936 CALL section_add_subsection(subsubsection, subsubsubsection)
937 CALL section_release(subsubsubsection)
938
939 CALL section_add_subsection(subsection, subsubsection)
940 CALL section_release(subsubsection)
941
942 CALL section_add_subsection(section, subsection)
943 CALL section_release(subsection)
944! End of Kernel subsection
945
946 CALL section_create(subsection, __location__, "PRINT", "Controls the printing of information during "// &
947 "XAS TDP calculations", repeats=.false.)
948
949 CALL cp_print_key_section_create(print_key, __location__, name="SPECTRUM", &
950 description="Controles the dumping of the XAS TDP spectrum in output files", &
951 print_level=low_print_level, filename="", common_iter_levels=3)
952 CALL section_add_subsection(subsection, print_key)
953 CALL section_release(print_key)
954
955 CALL cp_print_key_section_create(print_key, __location__, name="RESTART_WFN", &
956 description="Controles the dumping of a MO restart file for a given "// &
957 "excited state index. Only for K-edge RKS calculations. "// &
958 "Can be repeated to get multiple *.wfn files at once.", &
959 print_level=debug_print_level, filename="", common_iter_levels=1)
960 CALL keyword_create(keyword, __location__, name="EXCITED_STATE_INDEX", variants=(/"INDEX"/), &
961 description="The index of the excited state that should be dumped", &
962 usage="INDEX {int}", default_i_val=1, repeats=.true.)
963 CALL section_add_keyword(print_key, keyword)
964 CALL keyword_release(keyword)
965
966 CALL section_add_subsection(subsection, print_key)
967 CALL section_release(print_key)
968
969 CALL create_pdos_section(print_key)
970 CALL section_add_subsection(subsection, print_key)
971 CALL section_release(print_key)
972
973 CALL cp_print_key_section_create(print_key, __location__, "CUBES", &
974 description="Controls the printing of the linear-response orbitals "// &
975 "as *.cube files.", &
976 print_level=high_print_level, common_iter_levels=1, &
977 add_last=add_last_numeric, filename="")
978
979 CALL keyword_create(keyword, __location__, name="STRIDE", &
980 description="The stride (X,Y,Z) used to write the cube file "// &
981 "(larger values result in smaller cube files). You can provide 3 numbers (for X,Y,Z) or"// &
982 " 1 number valid for all components.", &
983 usage="STRIDE 2 2 2", n_var=-1, default_i_vals=(/2, 2, 2/), type_of_var=integer_t)
984 CALL section_add_keyword(print_key, keyword)
985 CALL keyword_release(keyword)
986
987 CALL keyword_create(keyword, __location__, name="CUBES_LU_BOUNDS", &
988 variants=(/"CUBES_LU"/), &
989 description="The lower and upper index of the excited states to be printed as cube", &
990 usage="CUBES_LU_BOUNDS integer integer", &
991 n_var=2, default_i_vals=(/1, 0/), type_of_var=integer_t)
992 CALL section_add_keyword(print_key, keyword)
993 CALL keyword_release(keyword)
994
995 CALL keyword_create(keyword, __location__, name="CUBES_LIST", &
996 description="Indexes of the excited states to be printed as cube files "// &
997 "This keyword can be repeated several times "// &
998 "(useful if you have to specify many indexes).", &
999 usage="CUBES_LIST 1 2", &
1000 n_var=-1, type_of_var=integer_t, repeats=.true.)
1001 CALL section_add_keyword(print_key, keyword)
1002 CALL keyword_release(keyword)
1003
1004 CALL keyword_create(keyword, __location__, name="APPEND", &
1005 description="append the cube files when they already exist", &
1006 default_l_val=.false., lone_keyword_l_val=.true.)
1007 CALL section_add_keyword(print_key, keyword)
1008 CALL keyword_release(keyword)
1009
1010 CALL section_add_subsection(subsection, print_key)
1011 CALL section_release(print_key)
1012
1013 CALL cp_print_key_section_create(print_key, __location__, "RESTART", &
1014 description="Controls the dumping of LR-orbitals coefficients "// &
1015 "and corresponding excitation energies such that "// &
1016 "the program can be restarted for PDOS or CUBE "// &
1017 "printing without the heavy computing.", &
1018 print_level=high_print_level, filename="", common_iter_levels=3)
1019 CALL section_add_subsection(subsection, print_key)
1020 CALL section_release(print_key)
1021
1022 CALL section_add_subsection(section, subsection)
1023 CALL section_release(subsection)
1024
1025 END SUBROUTINE create_xas_tdp_section
1026
1027END MODULE input_cp2k_xas
collects all references to literature in CP2K as new algorithms / method are included from literature...
integer, save, public iannuzzi2007
integer, save, public shigeta2001
routines to handle the output, The idea is to remove the decision of wheter to output and what to out...
integer, parameter, public debug_print_level
integer, parameter, public low_print_level
integer, parameter, public high_print_level
integer, parameter, public add_last_numeric
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
collects all constants needed in input so that they can be used without circular dependencies
integer, parameter, public xas_1s_type
integer, parameter, public xas_4p_type
integer, parameter, public xas_3s_type
integer, parameter, public xas_3d_type
integer, parameter, public xas_not_excited
integer, parameter, public xas_dscf
integer, parameter, public tddfpt_singlet
integer, parameter, public xas_none
integer, parameter, public xas_4s_type
integer, parameter, public xas_tp_xhh
integer, parameter, public xas_2p_type
integer, parameter, public ot_mini_cg
integer, parameter, public xas_dip_len
integer, parameter, public xas_dip_vel
integer, parameter, public tddfpt_triplet
integer, parameter, public ot_mini_diis
integer, parameter, public xas_2s_type
integer, parameter, public xas_tp_xfh
integer, parameter, public tddfpt_spin_flip
integer, parameter, public xas_tdp_by_kind
integer, parameter, public xas_3p_type
integer, parameter, public xas_tp_fh
integer, parameter, public xas_tp_flex
integer, parameter, public xas_4f_type
integer, parameter, public do_potential_truncated
integer, parameter, public do_potential_id
integer, parameter, public xas_4d_type
integer, parameter, public xas_tdp_by_index
integer, parameter, public do_potential_coulomb
integer, parameter, public gaussian
integer, parameter, public xas_tp_hh
integer, parameter, public do_potential_short
integer, parameter, public tddfpt_spin_cons
integer, parameter, public xes_tp_val
subroutine, public create_localize_section(section)
parameters fo the localization of wavefunctions
subroutine, public print_wanniers(section)
Controls the printing of the basic info coming from the LOCALIZE section.
function that build the print section of the dft input
subroutine, public create_pdos_section(print_key)
...
function that build the scf section of the input
subroutine, public create_scf_section(section)
creates the structure of the section with the DFT SCF parameters
function that build the XAS section of the input
subroutine, public create_xas_section(section)
makes the input section for core-level spectroscopy simulations
subroutine, public create_xas_tdp_section(section)
makes the input section for core-level spectroscopy simulations using linear response TDDFT
function that build the xc section of the input
subroutine, public create_xc_fun_section(section)
creates the structure of the section needed to select the xc functional
represents keywords in an input
subroutine, public keyword_release(keyword)
releases the given keyword (see doc/ReferenceCounting.html)
subroutine, public keyword_create(keyword, location, name, description, usage, type_of_var, n_var, repeats, variants, default_val, default_l_val, default_r_val, default_lc_val, default_c_val, default_i_val, default_l_vals, default_r_vals, default_c_vals, default_i_vals, lone_keyword_val, lone_keyword_l_val, lone_keyword_r_val, lone_keyword_c_val, lone_keyword_i_val, lone_keyword_l_vals, lone_keyword_r_vals, lone_keyword_c_vals, lone_keyword_i_vals, enum_c_vals, enum_i_vals, enum, enum_strict, enum_desc, unit_str, citations, deprecation_notice, removed)
creates a keyword object
objects that represent the structure of input sections and the data contained in an input section
subroutine, public section_create(section, location, name, description, n_keywords, n_subsections, repeats, citations, deprecation_notice)
creates a list of keywords
subroutine, public section_add_keyword(section, keyword)
adds a keyword to the given section
subroutine, public section_add_subsection(section, subsection)
adds a subsection to the given section
recursive subroutine, public section_release(section)
releases the given keyword list (see doc/ReferenceCounting.html)
a wrapper for basic fortran types.
integer, parameter, public real_t
integer, parameter, public lchar_t
integer, parameter, public char_t
integer, parameter, public integer_t
Defines the basic variable types.
Definition kinds.F:23
integer, parameter, public dp
Definition kinds.F:34
Utilities for string manipulations.
represent a keyword in the input
represent a section of the input file