41#include "./base/base_uses.f90"
46 LOGICAL,
PRIVATE,
PARAMETER :: debug_this_module = .true.
47 CHARACTER(len=*),
PARAMETER,
PRIVATE :: moduleN =
'input_cp2k_atom'
66 cpassert(.NOT.
ASSOCIATED(section))
68 description=
"Section handling input for atomic calculations.", &
69 n_keywords=1, n_subsections=1, repeats=.false.)
70 NULLIFY (keyword, subsection)
73 description=
"Specify the atomic number", &
79 description=
"Specify the element to be calculated", &
80 usage=
"ELEMENT char", n_var=1, type_of_var=
char_t, &
86 description=
"Type of run that you want to perform "// &
87 "[ENERGY,BASIS_OPTIMIZATION,PSEUDOPOTENTIAL_OPTIMIZATION,,...] ", &
88 usage=
"RUN_TYPE (NONE|ENERGY|BASIS_OPTIMIZATION|PSEUDOPOTENTIAL_OPTIMIZATION)", &
90 enum_c_vals=
s2a(
"NONE",
"ENERGY",
"BASIS_OPTIMIZATION",
"PSEUDOPOTENTIAL_OPTIMIZATION"), &
92 enum_desc=
s2a(
"Perform no run", &
93 "Perform energy optimization", &
94 "Perform basis optimization", &
95 "Perform pseudopotential optimization"))
99 CALL keyword_create(keyword, __location__, name=
"COULOMB_INTEGRALS", &
100 description=
"Method to calculate Coulomb integrals", &
101 usage=
"COULOMB_INTEGRALS (ANALYTIC|SEMI_ANALYTIC|NUMERIC)", &
103 enum_c_vals=[
"ANALYTIC ", &
107 enum_desc=
s2a(
"Use analytical method", &
108 "Use semi-analytical method", &
109 "Use numerical method"))
113 CALL keyword_create(keyword, __location__, name=
"EXCHANGE_INTEGRALS", &
114 description=
"Method to calculate Exchange integrals", &
115 usage=
"EXCHANGE_INTEGRALS (ANALYTIC|SEMI_ANALYTIC|NUMERIC)", &
117 enum_c_vals=[
"ANALYTIC ", &
121 enum_desc=
s2a(
"Use analytical method. Not available for longrange Hartree-Fock", &
122 "Use semi-analytical method", &
123 "Use numerical method"))
128 description=
"Specifies the core electrons for a pseudopotential", &
129 usage=
"CORE 1s2 ... or CORE [Ne] or CORE none for 0 electron cores", repeats=.false., &
130 n_var=-1, type_of_var=
char_t)
134 CALL keyword_create(keyword, __location__, name=
"ELECTRON_CONFIGURATION", &
135 description=
"Specifies the electron configuration. "// &
136 "Optional the multiplicity (m) and a core state [XX] can be declared", &
137 usage=
"ELECTRON_CONFIGURATION (1) [Ne] 3s2 ... ", repeats=.true., &
138 n_var=-1, type_of_var=
char_t)
142 CALL keyword_create(keyword, __location__, name=
"MAX_ANGULAR_MOMENTUM", &
143 description=
"Specifies the largest angular momentum calculated [0-3]", &
144 usage=
"MAX_ANGULAR_MOMENTUM 3", repeats=.false., &
149 CALL keyword_create(keyword, __location__, name=
"CALCULATE_STATES", &
150 description=
"Specifies the number of states calculated per l value", &
151 usage=
"CALCULATE_STATES 5 5 5 3 ", repeats=.false., &
152 default_i_val=0, n_var=-1, type_of_var=
integer_t)
156 CALL keyword_create(keyword, __location__, name=
"USE_GAUSS_HERMITE", &
157 description=
"Whether a Gauss-Hermite grid is to be used for the numerical integration of "// &
158 "longrange exchange integrals", &
159 usage=
"USE_GAUSS_HERMITE TRUE", repeats=.false., &
160 default_l_val=.false.)
164 CALL keyword_create(keyword, __location__, name=
"GRID_POINTS_GH", &
165 description=
"Number of grid points for Gauss-Hermite grid", &
166 usage=
"GRID_POINTS_GH 100", repeats=.false., &
171 CALL create_atom_reference_section(subsection)
175 CALL create_atom_print_section(subsection)
179 CALL create_atom_aebasis_section(subsection)
183 CALL create_atom_ppbasis_section(subsection)
187 CALL create_atom_method_section(subsection)
191 CALL create_optimization_section(subsection)
195 CALL create_potential_section(subsection)
199 CALL create_powell_section(subsection)
210 SUBROUTINE create_atom_reference_section(section)
216 cpassert(.NOT.
ASSOCIATED(section))
218 description=
"Section to specify a reference method for PP optimization.", &
219 n_keywords=1, n_subsections=1, repeats=.false.)
224 description=
"METHOD to be used as reference: [AE|PP] ", &
226 type_of_var=
char_t, default_c_val=
"AE", n_var=-1)
231 description=
"Specifies the core electrons for a pseudopotential", &
232 usage=
"CORE 1s2 ... or CORE [Ne] or CORE none for 0 electron cores", repeats=.false., &
233 n_var=-1, type_of_var=
char_t)
238 CALL create_potential_section(subsection)
242 END SUBROUTINE create_atom_reference_section
249 SUBROUTINE create_atom_print_section(section)
255 cpassert(.NOT.
ASSOCIATED(section))
257 description=
"Section of possible print options specific of the ATOM code.", &
258 n_keywords=0, n_subsections=1, repeats=.false.)
260 NULLIFY (print_key, keyword)
264 description=
"Controls the printing of the banner of the ATOM program", &
271 description=
"Controls the printing of method information", &
278 description=
"Controls the printing of the basis sets", &
285 description=
"Controls the printing of the potentials", &
292 print_key, __location__,
"FIT_DENSITY", &
293 description=
"Fit the total electronic density to a linear combination of Gaussian functions", &
296 description=
"Number of Gaussian type functions for density fit", &
297 usage=
"NUM_GTO integer ", type_of_var=
integer_t, &
306 description=
"Fit an approximation to the non-additive"// &
307 " kinetic energy potential used in KG", &
310 description=
"Number of Gaussian terms for the fit", &
311 usage=
"NUM_GAUSSIAN integer ", type_of_var=
integer_t, &
316 description=
"Number of terms in the polynomial expansion", &
317 usage=
"NUM_POLYNOM integer ", type_of_var=
integer_t, &
326 description=
"Calculate a response basis set contraction scheme", &
329 description=
"Variation of charge used in finite difference calculation", &
330 usage=
"DELTA_CHARGE real ", type_of_var=
real_t, &
331 default_r_val=0.05_dp)
335 description=
"Number of wavefunction derivatives to calculate", &
336 usage=
"DERIVATIVES integer ", type_of_var=
integer_t, &
345 description=
"Calculate a response basis set based on a set of geometrical exponents", &
349 description=
"Variation of charge used in finite difference calculation", &
350 usage=
"DELTA_CHARGE real ", type_of_var=
real_t, &
351 default_r_val=0.05_dp)
356 description=
"Number of wavefunction derivatives to calculate", &
357 usage=
"DERIVATIVES integer ", type_of_var=
integer_t, &
363 description=
"Algorithm to construct the atomic radial grids", &
364 usage=
"QUADRATURE (GC_SIMPLE|GC_TRANSFORMED|GC_LOG)", &
365 enum_c_vals=
s2a(
"GC_SIMPLE",
"GC_TRANSFORMED",
"GC_LOG"), &
367 enum_desc=
s2a(
"Gauss-Chebyshev quadrature", &
368 "Transformed Gauss-Chebyshev quadrature", &
369 "Logarithmic transformed Gauss-Chebyshev quadrature"), &
375 description=
"Number of radial grid points", &
376 usage=
"GRID_POINTS integer", &
382 description=
"Number of Gaussian type functions for s, p, d, ... "// &
383 "for the main body of the basis", &
384 usage=
"NUM_GTO_CORE 6 ", n_var=1, type_of_var=
integer_t, &
388 CALL keyword_create(keyword, __location__, name=
"NUM_GTO_EXTENDED", &
389 description=
"Number of Gaussian type functions for s, p, d, ... "// &
390 "for the extension set", &
391 usage=
"NUM_GTO_EXTENDED 4 ", n_var=1, type_of_var=
integer_t, &
395 CALL keyword_create(keyword, __location__, name=
"NUM_GTO_POLARIZATION", &
396 description=
"Number of Gaussian type functions for the polarization set", &
397 usage=
"NUM_GTO_POLARIZATION 4 ", n_var=1, type_of_var=
integer_t, &
401 CALL keyword_create(keyword, __location__, name=
"EXTENSION_BASIS", &
402 description=
"Number of basis functions for s, p, d, ... "// &
403 "for the extension set", &
404 usage=
"EXTENSION_BASIS 4 3 2 1 ", n_var=-1, type_of_var=
integer_t, &
408 CALL keyword_create(keyword, __location__, name=
"GEOMETRICAL_FACTOR", &
409 description=
"Geometrical basis: factor C in a*C^k (initial value for optimization)", &
410 usage=
"GEOMETRICAL_FACTOR real", &
411 default_r_val=2.3_dp)
414 CALL keyword_create(keyword, __location__, name=
"GEO_START_VALUE", &
415 description=
"Geometrical basis: starting value a in a*C^k (initial value for optimization)", &
416 usage=
"GEO_START_VALUE real", &
417 default_r_val=0.06_dp)
421 description=
"Onset value of barrier confinement potential [Bohr]", &
422 usage=
"CONFINEMENT real", &
423 default_r_val=8.00_dp)
427 description=
"Specifies the body of the basis set name ", &
428 usage=
"NAME_BODY <char>", &
429 type_of_var=
char_t, default_c_val=
"GRB", n_var=-1)
438 description=
"Controls the printing of SCF information", &
445 description=
"Controls the printing of the optimized orbitals information", &
448 description=
"Output orbitals in Xmgrace format to files.", &
449 usage=
"XMGRACE <logical>", &
451 default_l_val=.false., &
452 lone_keyword_l_val=.true.)
460 description=
"Calculates some basis set analysis data", &
462 CALL keyword_create(keyword, __location__, name=
"OVERLAP_CONDITION_NUMBER", &
463 description=
"Condition number of the basis set overlap matrix calculated for a cubic crystal", &
464 usage=
"OVERLAP_CONDITION_NUMBER <logical>", type_of_var=
logical_t, default_l_val=.false.)
468 description=
"Calculate a completeness estimate for the basis set.", &
469 usage=
"COMPLETENESS <logical>", type_of_var=
logical_t, default_l_val=.false.)
477 description=
"Controls the printing of FIT PSEUDO task", &
484 description=
"Controls the printing of FIT BASIS task", &
491 description=
"Write GTH pseudopotential in UPF format", &
498 description=
"Creates a representation of the pseudopotential in separable "// &
499 "form using Gaussian functions.", &
506 description=
"Analysis of ADMM approximation to exact exchange", &
510 CALL section_create(subsection, __location__, name=
"ADMM_BASIS", &
511 description=
"Section of basis set information for ADMM calculations.", &
512 n_keywords=0, n_subsections=0, repeats=.false.)
513 CALL atom_basis_section(subsection)
519 END SUBROUTINE create_atom_print_section
526 SUBROUTINE create_atom_aebasis_section(section)
529 cpassert(.NOT.
ASSOCIATED(section))
531 description=
"Section of basis set information for all-electron calculations.", &
532 n_keywords=0, n_subsections=0, repeats=.false.)
534 CALL atom_basis_section(section)
536 END SUBROUTINE create_atom_aebasis_section
543 SUBROUTINE create_atom_ppbasis_section(section)
546 cpassert(.NOT.
ASSOCIATED(section))
548 description=
"Section of basis set information for pseudopotential calculations.", &
549 n_keywords=0, n_subsections=0, repeats=.false.)
551 CALL atom_basis_section(section)
553 END SUBROUTINE create_atom_ppbasis_section
560 SUBROUTINE atom_basis_section(section)
566 cpassert(
ASSOCIATED(section))
570 description=
"Basis set type", &
571 usage=
"BASIS_TYPE (GAUSSIAN|GEOMETRICAL_GTO|CONTRACTED_GTO|SLATER|NUMERICAL)", &
573 enum_c_vals=[
"GAUSSIAN ", &
574 "GEOMETRICAL_GTO ", &
579 enum_desc=
s2a(
"Gaussian type orbitals", &
580 "Geometrical Gaussian type orbitals", &
581 "Contracted Gaussian type orbitals", &
582 "Slater-type orbitals", &
583 "Numerical basis type"))
588 description=
"Number of Gaussian type functions for s, p, d, ...", &
589 usage=
"NUM_GTO 5 5 5 ", n_var=-1, type_of_var=
integer_t, &
595 description=
"Number of Slater type functions for s, p, d, ...", &
596 usage=
"NUM_SLATER 5 5 5 ", n_var=-1, type_of_var=
integer_t, &
602 description=
"Starting index for Geometrical Basis sets", &
603 usage=
"START_INDEX 0 2 5 4 ", n_var=-1, type_of_var=
integer_t, &
609 description=
"Exponents for s functions", &
610 usage=
"S_EXPONENTS 1.0 2.0 ... ", n_var=-1, type_of_var=
real_t)
614 description=
"Exponents for p functions", &
615 usage=
"P_EXPONENTS 1.0 2.0 ... ", n_var=-1, type_of_var=
real_t)
619 description=
"Exponents for d functions", &
620 usage=
"D_EXPONENTS 1.0 2.0 ... ", n_var=-1, type_of_var=
real_t)
624 description=
"Exponents for f functions", &
625 usage=
"F_EXPONENTS 1.0 2.0 ... ", n_var=-1, type_of_var=
real_t)
629 CALL keyword_create(keyword, __location__, name=
"S_QUANTUM_NUMBERS", &
630 description=
"Main quantum numbers for s functions", &
631 usage=
"S_QUANTUM_NUMBERS 1 2 ... ", n_var=-1, type_of_var=
integer_t)
634 CALL keyword_create(keyword, __location__, name=
"P_QUANTUM_NUMBERS", &
635 description=
"Main quantum numbers for p functions", &
636 usage=
"P_QUANTUM_NUMBERS 2 3 ... ", n_var=-1, type_of_var=
integer_t)
639 CALL keyword_create(keyword, __location__, name=
"D_QUANTUM_NUMBERS", &
640 description=
"Main quantum numbers for d functions", &
641 usage=
"D_QUANTUM_NUMBERS 3 4 ... ", n_var=-1, type_of_var=
integer_t)
644 CALL keyword_create(keyword, __location__, name=
"F_QUANTUM_NUMBERS", &
645 description=
"Main quantum numbers for f functions", &
646 usage=
"F_QUANTUM_NUMBERS 4 5 ... ", n_var=-1, type_of_var=
integer_t)
650 CALL keyword_create(keyword, __location__, name=
"GEOMETRICAL_FACTOR", &
651 description=
"Geometrical basis: factor C in a*C^k", &
652 usage=
"GEOMETRICAL_FACTOR real", &
653 default_r_val=2.6_dp)
657 CALL keyword_create(keyword, __location__, name=
"GEO_START_VALUE", &
658 description=
"Geometrical basis: starting value a in a*C^k", &
659 usage=
"GEO_START_VALUE real", &
660 default_r_val=0.016_dp)
664 CALL keyword_create(keyword, __location__, name=
"BASIS_SET_FILE_NAME", &
665 description=
"Name of the basis set file, may include a path", &
666 usage=
"BASIS_SET_FILE_NAME <FILENAME>", &
667 default_lc_val=
"BASIS_SET")
672 variants=
s2a(
"ORBITAL_BASIS_SET",
"ORB_BASIS"), &
673 description=
"The contracted Gaussian basis set", &
674 usage=
"BASIS_SET DZVP", default_c_val=
" ", &
680 description=
"Algorithm to construct the atomic radial grids", &
681 usage=
"QUADRATURE (GC_SIMPLE|GC_TRANSFORMED|GC_LOG)", &
682 enum_c_vals=
s2a(
"GC_SIMPLE",
"GC_TRANSFORMED",
"GC_LOG"), &
684 enum_desc=
s2a(
"Gauss-Chebyshev quadrature", &
685 "Transformed Gauss-Chebyshev quadrature", &
686 "Logarithmic transformed Gauss-Chebyshev quadrature"), &
692 description=
"Number of radial grid points", &
693 usage=
"GRID_POINTS integer", &
698 CALL keyword_create(keyword, __location__, name=
"EPS_EIGENVALUE", &
699 description=
"Cutoff of overlap matrix eigenvalues included into basis", &
700 usage=
"EPS_EIGENVALUE real", &
701 default_r_val=1.e-12_dp)
706 CALL create_basis_section(subsection)
710 END SUBROUTINE atom_basis_section
717 SUBROUTINE create_atom_method_section(section)
723 NULLIFY (subsection, keyword)
724 cpassert(.NOT.
ASSOCIATED(section))
726 description=
"Section of information on method to use.", &
727 n_keywords=0, n_subsections=2, repeats=.true.)
730 description=
"Type of electronic structure method to be used", &
731 usage=
"METHOD_TYPE (KOHN-SHAM|RKS|UKS|HARTREE-FOCK|RHF|UHF|ROHF)", &
733 enum_c_vals=[
"KOHN-SHAM ", &
742 enum_desc=
s2a(
"Kohn-Sham electronic structure method", &
743 "Restricted Kohn-Sham electronic structure method", &
744 "Unrestricted Kohn-Sham electronic structure method", &
745 "Hartree-Fock electronic structure method", &
746 "Restricted Hartree-Fock electronic structure method", &
747 "Unrestricted Hartree-Fock electronic structure method", &
748 "Restricted open-shell Hartree-Fock electronic structure method"))
753 description=
"Type of scalar relativistic method to be used", &
754 usage=
"RELATIVISTIC (OFF|ZORA(MP)|scZORA(MP)|DKH(0)|DKH(1)|DKH(2)|DKH(3))", &
756 enum_c_vals=[
"OFF ", &
765 enum_desc=
s2a(
"Use no scalar relativistic method", &
766 "Use ZORA method with atomic model potential", &
767 "Use scaled ZORA method with atomic model potential", &
768 "Use Douglas-Kroll-Hess Hamiltonian of order 0", &
769 "Use Douglas-Kroll-Hess Hamiltonian of order 1", &
770 "Use Douglas-Kroll-Hess Hamiltonian of order 2", &
771 "Use Douglas-Kroll-Hess Hamiltonian of order 3"))
780 CALL create_zmp_section(subsection)
784 CALL create_external_vxc(subsection)
788 END SUBROUTINE create_atom_method_section
796 SUBROUTINE create_zmp_section(section)
802 NULLIFY (subsection, keyword)
803 cpassert(.NOT.
ASSOCIATED(section))
805 description=
"Section used to specify ZMP Potentials.", &
806 n_keywords=3, n_subsections=0, repeats=.false.)
809 description=
"Specifies the filename containing the target density ", &
810 usage=
"FILE_DENSITY <FILENAME>", &
811 type_of_var=
char_t, default_c_val=
"RHO_O.dat", n_var=-1)
816 description=
"Tolerance in the equivalence of read-grid in ZMP method", &
817 usage=
"GRID_TOL <REAL>", default_r_val=1.e-12_dp)
822 description=
"Parameter used for the constraint in ZMP method", &
823 usage=
"LAMBDA <REAL>", default_r_val=10.0_dp)
828 description=
"read external density from density matrix", &
829 usage=
"DM <LOGICAL>", type_of_var=
logical_t, default_l_val=.false.)
833 CALL create_zmp_restart_section(subsection)
837 END SUBROUTINE create_zmp_section
845 SUBROUTINE create_zmp_restart_section(section)
851 cpassert(.NOT.
ASSOCIATED(section))
853 description=
"Section used to specify the restart option in the ZMP "// &
854 "procedure, and the file that must be read.", &
855 n_keywords=1, n_subsections=0, repeats=.false.)
858 description=
"Specifies the filename containing the restart file density ", &
859 usage=
"FILE_RESTART <FILENAME>", &
860 type_of_var=
char_t, default_c_val=
"RESTART.wfn", n_var=-1)
864 END SUBROUTINE create_zmp_restart_section
872 SUBROUTINE create_external_vxc(section)
878 cpassert(.NOT.
ASSOCIATED(section))
880 description=
"Section used to specify exernal VXC Potentials.", &
881 n_keywords=1, n_subsections=0, repeats=.false.)
884 description=
"Specifies the filename containing the external vxc ", &
885 usage=
"FILE_VXC <FILENAME>", &
886 type_of_var=
char_t, default_c_val=
"VXC.dat", n_var=-1)
891 description=
"Tolerance in the equivalence of read-grid in ZMP method", &
892 usage=
"GRID_TOL <REAL>", default_r_val=1.e-12_dp)
896 END SUBROUTINE create_external_vxc
903 SUBROUTINE create_optimization_section(section)
909 cpassert(.NOT.
ASSOCIATED(section))
911 description=
"Section of information on optimization thresholds and algorithms.", &
912 n_keywords=0, n_subsections=1, repeats=.false.)
915 description=
"Maximum number of iterations for optimization", &
916 usage=
"MAX_ITER 50", default_i_val=200)
921 description=
"Convergence criterion for SCF", &
922 usage=
"EPS_SCF 1.e-10", default_r_val=1.e-6_dp)
927 description=
"Damping parameter for extrapolation method", &
928 usage=
"DAMPING 0.4", default_r_val=0.4_dp)
933 description=
"Starting DIIS method at convergence to EPS_DIIS", &
934 usage=
"EPS_DIIS 0.01", default_r_val=10000._dp)
939 description=
"Maximum number of DIIS vectors", &
940 usage=
"N_DIIS 6", default_i_val=5)
944 END SUBROUTINE create_optimization_section
951 SUBROUTINE create_potential_section(section)
958 cpassert(.NOT.
ASSOCIATED(section))
960 description=
"Section of information on potential.", &
961 n_keywords=0, n_subsections=1, repeats=.false.)
963 CALL keyword_create(keyword, __location__, name=
"CONFINEMENT_TYPE", &
964 description=
"Define functional form of confinement potential.", &
965 usage=
"CONFINEMENT_TYPE (NONE|POLYNOM|BARRIER)", &
967 enum_c_vals=[
"NONE ", &
971 enum_desc=
s2a(
"Do not use confinement potential", &
972 "Use polynomial confinement potential: a*(R/b)^c", &
973 "Use a smooth barrier potential: a*F[R-c)/b]"))
978 description=
"Definition of parameters for confinement potential (a,b,c)", &
979 usage=
"CONFINEMENT prefactor range exponent (POLYNOM) "// &
980 "CONFINEMENT prefactor range r_onset (BARRIER)", &
981 default_r_vals=[0._dp, 0._dp, 0._dp], &
982 repeats=.false., n_var=-1)
987 description=
"Pseudopotential type", &
988 usage=
"PSEUDO_TYPE (NONE|GTH|UPF|ECP)", &
990 enum_c_vals=[
"NONE ", &
996 enum_desc=
s2a(
"Do not use pseudopotentials", &
997 "Use Goedecker-Teter-Hutter pseudopotentials", &
998 "Use UPF norm-conserving pseudopotentials", &
999 "Use SGP norm-conserving pseudopotentials", &
1000 "Use ECP semi-local pseudopotentials"))
1004 CALL keyword_create(keyword, __location__, name=
"POTENTIAL_FILE_NAME", &
1005 description=
"Name of the pseudo potential file, may include a path", &
1006 usage=
"POTENTIAL_FILE_NAME <FILENAME>", &
1007 default_lc_val=
"POTENTIAL")
1011 CALL keyword_create(keyword, __location__, name=
"POTENTIAL_NAME", &
1012 variants=[
"POT_NAME"], &
1013 description=
"The name of the pseudopotential for the defined kind.", &
1014 usage=
"POTENTIAL_NAME <PSEUDO-POTENTIAL-NAME>", default_c_val=
" ", n_var=1)
1018 NULLIFY (subsection)
1019 CALL create_gthpotential_section(subsection)
1023 NULLIFY (subsection)
1024 CALL create_ecp_section(subsection)
1028 END SUBROUTINE create_potential_section
1035 SUBROUTINE create_gthpotential_section(section)
1040 CALL section_create(section, __location__, name=
"GTH_POTENTIAL", &
1041 description=
"Section used to specify Potentials.", &
1042 n_keywords=1, n_subsections=0, repeats=.false.)
1044 CALL keyword_create(keyword, __location__, name=
"_DEFAULT_KEYWORD_", &
1045 description=
"CP2K Pseudo Potential Standard Format (GTH, ALL or KG)", &
1046 repeats=.true., type_of_var=
lchar_t)
1049 END SUBROUTINE create_gthpotential_section
1056 SUBROUTINE create_ecp_section(section)
1062 description=
"Section used to specify ECP's.", &
1063 n_keywords=1, n_subsections=0, repeats=.false.)
1065 CALL keyword_create(keyword, __location__, name=
"_DEFAULT_KEYWORD_", &
1066 description=
"Effective Core Potentials definition", &
1067 repeats=.true., type_of_var=
lchar_t)
1070 END SUBROUTINE create_ecp_section
1077 SUBROUTINE create_basis_section(section)
1083 description=
"Section used to specify a general basis set for QM calculations.", &
1084 n_keywords=1, n_subsections=0, repeats=.false.)
1086 CALL keyword_create(keyword, __location__, name=
"_DEFAULT_KEYWORD_", &
1087 description=
"CP2K Basis Set Standard Format", repeats=.true., &
1091 END SUBROUTINE create_basis_section
1098 SUBROUTINE create_powell_section(section)
1104 description=
"Section defines basic parameters for Powell optimization", &
1105 n_keywords=4, n_subsections=0, repeats=.false.)
1109 description=
"Final accuracy requested in optimization (RHOEND)", &
1110 usage=
"ACCURACY 0.00001", &
1111 default_r_val=1.e-6_dp)
1116 description=
"Initial step size for search algorithm (RHOBEG)", &
1117 usage=
"STEP_SIZE 0.005", &
1118 default_r_val=0.005_dp)
1123 description=
"Maximum number of function evaluations", &
1124 usage=
"MAX_FUN 1000", &
1130 description=
"Maximum number of re-initialization of Powell method", &
1131 usage=
"MAX_INIT 5", &
1136 CALL keyword_create(keyword, __location__, name=
"STEP_SIZE_SCALING", &
1137 description=
"Scaling of Step Size on re-initialization of Powell method", &
1138 usage=
"STEP_SIZE_SCALING 0.80", &
1139 default_r_val=0.75_dp)
1143 CALL keyword_create(keyword, __location__, name=
"WEIGHT_POT_VIRTUAL", &
1144 description=
"Weight for virtual states in pseudopotential optimization", &
1145 usage=
"WEIGHT_POT_VIRTUAL 1.0", &
1146 default_r_val=1._dp)
1150 CALL keyword_create(keyword, __location__, name=
"WEIGHT_POT_SEMICORE", &
1151 description=
"Weight for semi core states in pseudopotential optimization", &
1152 usage=
"WEIGHT_POT_SEMICORE 1.0", &
1153 default_r_val=1._dp)
1157 CALL keyword_create(keyword, __location__, name=
"WEIGHT_POT_VALENCE", &
1158 description=
"Weight for valence states in pseudopotential optimization", &
1159 usage=
"WEIGHT_POT_VALENCE 1.0", &
1160 default_r_val=1.0_dp)
1164 CALL keyword_create(keyword, __location__, name=
"WEIGHT_POT_NODE", &
1165 description=
"Weight for node mismatch in pseudopotential optimization", &
1166 usage=
"WEIGHT_POT_NODE 1.0", &
1167 default_r_val=1.0_dp)
1171 CALL keyword_create(keyword, __location__, name=
"WEIGHT_DELTA_ENERGY", &
1172 description=
"Weight for energy differences in pseudopotential optimization", &
1173 usage=
"WEIGHT_DELTA_ENERGY 1.0", &
1174 default_r_val=1._dp)
1178 CALL keyword_create(keyword, __location__, name=
"WEIGHT_ELECTRON_CONFIGURATION", &
1179 description=
"Weight for different electronic states in optimization", &
1180 usage=
"WEIGHT_ELECTRON_CONFIGURATION 1.0 0.1 ...", &
1181 n_var=-1, type_of_var=
real_t, default_r_val=1.0_dp)
1185 CALL keyword_create(keyword, __location__, name=
"WEIGHT_METHOD", &
1186 description=
"Weight for different methods in optimization", &
1187 usage=
"WEIGHT_METHOD 1.0 0.1 ...", &
1188 n_var=-1, type_of_var=
real_t, default_r_val=1.0_dp)
1192 CALL keyword_create(keyword, __location__, name=
"TARGET_POT_VIRTUAL", &
1193 description=
"Target accuracy for virtual state eigenvalues in pseudopotential optimization", &
1194 usage=
"TARGET_POT_VIRTUAL 0.0001", &
1195 default_r_val=1.0e-3_dp, unit_str=
"hartree")
1199 CALL keyword_create(keyword, __location__, name=
"TARGET_POT_VALENCE", &
1200 description=
"Target accuracy for valence state eigenvalues in pseudopotential optimization", &
1201 usage=
"TARGET_POT_VALENCE 0.0001", &
1202 default_r_val=1.0e-5_dp, unit_str=
"hartree")
1206 CALL keyword_create(keyword, __location__, name=
"TARGET_POT_SEMICORE", &
1207 description=
"Target accuracy for semicore state eigenvalues in pseudopotential optimization", &
1208 usage=
"TARGET_POT_SEMICORE 0.01", &
1209 default_r_val=1.0e-3_dp, unit_str=
"hartree")
1213 CALL keyword_create(keyword, __location__, name=
"TARGET_DELTA_ENERGY", &
1214 description=
"Target accuracy for energy differences in pseudopotential optimization", &
1215 usage=
"TARGET_DELTA_ENERGY 0.01", &
1216 default_r_val=1.0e-4_dp, unit_str=
"hartree")
1220 CALL keyword_create(keyword, __location__, name=
"TARGET_PSIR0", &
1221 description=
"Minimum value for the wavefunctions at r=0 (only occupied states)"// &
1222 " Value=0 means keeping wfn(r=0)=0", &
1223 usage=
"TARGET_PSIR0 0.50", &
1224 default_r_val=0._dp)
1228 CALL keyword_create(keyword, __location__, name=
"WEIGHT_PSIR0", &
1229 description=
"Weight for the wavefunctions at r=0 (only occupied states)", &
1230 usage=
"WEIGHT_PSIR0 0.01", &
1231 default_r_val=0._dp)
1235 CALL keyword_create(keyword, __location__, name=
"RCOV_MULTIPLICATION", &
1236 description=
"Multiply Rcov integration limit for charge conservation", &
1237 usage=
"RCOV_MULTIPLICATION 1.10", &
1238 default_r_val=1._dp)
1242 CALL keyword_create(keyword, __location__, name=
"SEMICORE_LEVEL", &
1243 description=
"Energy at which to consider a full shell as semicore", &
1244 usage=
"SEMICORE_LEVEL 1.0", &
1245 default_r_val=1._dp, unit_str=
"hartree")
1250 description=
"Don't optimize NLCC parameters.", &
1251 usage=
"NOOPT_NLCC T", &
1253 default_l_val=.false.)
1258 description=
"Optimize NLCC parameters by fitting core charge density.", &
1259 usage=
"PREOPT_NLCC T", &
1261 default_l_val=.false.)
1265 END SUBROUTINE create_powell_section
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 medium_print_level
integer, parameter, public high_print_level
integer, parameter, public silent_print_level
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
Defines the basic variable types.
integer, parameter, public dp
Utilities for string manipulations.