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_print_section(subsection)
175 CALL create_atom_aebasis_section(subsection)
179 CALL create_atom_ppbasis_section(subsection)
183 CALL create_atom_method_section(subsection)
187 CALL create_optimization_section(subsection)
191 CALL create_potential_section(subsection)
195 CALL create_powell_section(subsection)
206 SUBROUTINE create_atom_print_section(section)
212 cpassert(.NOT.
ASSOCIATED(section))
214 description=
"Section of possible print options specific of the ATOM code.", &
215 n_keywords=0, n_subsections=1, repeats=.false.)
217 NULLIFY (print_key, keyword)
221 description=
"Controls the printing of the banner of the ATOM program", &
228 description=
"Controls the printing of method information", &
235 description=
"Controls the printing of the basis sets", &
242 description=
"Controls the printing of the potentials", &
249 print_key, __location__,
"FIT_DENSITY", &
250 description=
"Fit the total electronic density to a linear combination of Gaussian functions", &
253 description=
"Number of Gaussian type functions for density fit", &
254 usage=
"NUM_GTO integer ", type_of_var=
integer_t, &
263 description=
"Fit an approximation to the non-additive"// &
264 " kinetic energy potential used in KG", &
267 description=
"Number of Gaussian terms for the fit", &
268 usage=
"NUM_GAUSSIAN integer ", type_of_var=
integer_t, &
273 description=
"Number of terms in the polynomial expansion", &
274 usage=
"NUM_POLYNOM integer ", type_of_var=
integer_t, &
283 description=
"Calculate a response basis set contraction scheme", &
286 description=
"Variation of charge used in finite difference calculation", &
287 usage=
"DELTA_CHARGE real ", type_of_var=
real_t, &
288 default_r_val=0.05_dp)
292 description=
"Number of wavefunction derivatives to calculate", &
293 usage=
"DERIVATIVES integer ", type_of_var=
integer_t, &
302 description=
"Calculate a response basis set based on a set of geometrical exponents", &
306 description=
"Variation of charge used in finite difference calculation", &
307 usage=
"DELTA_CHARGE real ", type_of_var=
real_t, &
308 default_r_val=0.05_dp)
313 description=
"Number of wavefunction derivatives to calculate", &
314 usage=
"DERIVATIVES integer ", type_of_var=
integer_t, &
320 description=
"Algorithm to construct the atomic radial grids", &
321 usage=
"QUADRATURE (GC_SIMPLE|GC_TRANSFORMED|GC_LOG)", &
322 enum_c_vals=
s2a(
"GC_SIMPLE",
"GC_TRANSFORMED",
"GC_LOG"), &
324 enum_desc=
s2a(
"Gauss-Chebyshev quadrature", &
325 "Transformed Gauss-Chebyshev quadrature", &
326 "Logarithmic transformed Gauss-Chebyshev quadrature"), &
332 description=
"Number of radial grid points", &
333 usage=
"GRID_POINTS integer", &
339 description=
"Number of Gaussian type functions for s, p, d, ... "// &
340 "for the main body of the basis", &
341 usage=
"NUM_GTO_CORE 6 ", n_var=1, type_of_var=
integer_t, &
345 CALL keyword_create(keyword, __location__, name=
"NUM_GTO_EXTENDED", &
346 description=
"Number of Gaussian type functions for s, p, d, ... "// &
347 "for the extension set", &
348 usage=
"NUM_GTO_EXTENDED 4 ", n_var=1, type_of_var=
integer_t, &
352 CALL keyword_create(keyword, __location__, name=
"NUM_GTO_POLARIZATION", &
353 description=
"Number of Gaussian type functions for the polarization set", &
354 usage=
"NUM_GTO_POLARIZATION 4 ", n_var=1, type_of_var=
integer_t, &
358 CALL keyword_create(keyword, __location__, name=
"EXTENSION_BASIS", &
359 description=
"Number of basis functions for s, p, d, ... "// &
360 "for the extension set", &
361 usage=
"EXTENSION_BASIS 4 3 2 1 ", n_var=-1, type_of_var=
integer_t, &
365 CALL keyword_create(keyword, __location__, name=
"GEOMETRICAL_FACTOR", &
366 description=
"Geometrical basis: factor C in a*C^k (initial value for optimization)", &
367 usage=
"GEOMETRICAL_FACTOR real", &
368 default_r_val=2.3_dp)
371 CALL keyword_create(keyword, __location__, name=
"GEO_START_VALUE", &
372 description=
"Geometrical basis: starting value a in a*C^k (initial value for optimization)", &
373 usage=
"GEO_START_VALUE real", &
374 default_r_val=0.06_dp)
378 description=
"Onset value of barrier confinement potential [Bohr]", &
379 usage=
"CONFINEMENT real", &
380 default_r_val=8.00_dp)
384 description=
"Specifies the body of the basis set name ", &
385 usage=
"NAME_BODY <char>", &
386 type_of_var=
char_t, default_c_val=
"GRB", n_var=-1)
395 description=
"Controls the printing of SCF information", &
402 description=
"Controls the printing of the optimized orbitals information", &
405 description=
"Output Orbitals in Xmgrace Format to Files.", &
406 usage=
"XMGRACE <logical>", type_of_var=
logical_t, default_l_val=.false.)
414 description=
"Calculates some basis set analysis data", &
416 CALL keyword_create(keyword, __location__, name=
"OVERLAP_CONDITION_NUMBER", &
417 description=
"Condition number of the basis set overlap matrix calculated for a cubic crystal", &
418 usage=
"OVERLAP_CONDITION_NUMBER <logical>", type_of_var=
logical_t, default_l_val=.false.)
422 description=
"Calculate a completeness estimate for the basis set.", &
423 usage=
"COMPLETENESS <logical>", type_of_var=
logical_t, default_l_val=.false.)
431 description=
"Controls the printing of FIT PSEUDO task", &
438 description=
"Controls the printing of FIT BASIS task", &
445 description=
"Write GTH pseudopotential in UPF format", &
452 description=
"Creates a representation of the pseudopotential in separable "// &
453 "form using Gaussian functions.", &
460 description=
"Analysis of ADMM approximation to exact exchange", &
464 CALL section_create(subsection, __location__, name=
"ADMM_BASIS", &
465 description=
"Section of basis set information for ADMM calculations.", &
466 n_keywords=0, n_subsections=0, repeats=.false.)
467 CALL atom_basis_section(subsection)
473 END SUBROUTINE create_atom_print_section
480 SUBROUTINE create_atom_aebasis_section(section)
483 cpassert(.NOT.
ASSOCIATED(section))
485 description=
"Section of basis set information for all-electron calculations.", &
486 n_keywords=0, n_subsections=0, repeats=.false.)
488 CALL atom_basis_section(section)
490 END SUBROUTINE create_atom_aebasis_section
497 SUBROUTINE create_atom_ppbasis_section(section)
500 cpassert(.NOT.
ASSOCIATED(section))
502 description=
"Section of basis set information for pseudopotential calculations.", &
503 n_keywords=0, n_subsections=0, repeats=.false.)
505 CALL atom_basis_section(section)
507 END SUBROUTINE create_atom_ppbasis_section
514 SUBROUTINE atom_basis_section(section)
520 cpassert(
ASSOCIATED(section))
524 description=
"Basis set type", &
525 usage=
"BASIS_TYPE (GAUSSIAN|GEOMETRICAL_GTO|CONTRACTED_GTO|SLATER|NUMERICAL)", &
527 enum_c_vals=(/
"GAUSSIAN ", &
528 "GEOMETRICAL_GTO ", &
533 enum_desc=
s2a(
"Gaussian type orbitals", &
534 "Geometrical Gaussian type orbitals", &
535 "Contracted Gaussian type orbitals", &
536 "Slater-type orbitals", &
537 "Numerical basis type"))
542 description=
"Number of Gaussian type functions for s, p, d, ...", &
543 usage=
"NUM_GTO 5 5 5 ", n_var=-1, type_of_var=
integer_t, &
549 description=
"Number of Slater type functions for s, p, d, ...", &
550 usage=
"NUM_SLATER 5 5 5 ", n_var=-1, type_of_var=
integer_t, &
556 description=
"Starting index for Geometrical Basis sets", &
557 usage=
"START_INDEX 0 2 5 4 ", n_var=-1, type_of_var=
integer_t, &
563 description=
"Exponents for s functions", &
564 usage=
"S_EXPONENTS 1.0 2.0 ... ", n_var=-1, type_of_var=
real_t)
568 description=
"Exponents for p functions", &
569 usage=
"P_EXPONENTS 1.0 2.0 ... ", n_var=-1, type_of_var=
real_t)
573 description=
"Exponents for d functions", &
574 usage=
"D_EXPONENTS 1.0 2.0 ... ", n_var=-1, type_of_var=
real_t)
578 description=
"Exponents for f functions", &
579 usage=
"F_EXPONENTS 1.0 2.0 ... ", n_var=-1, type_of_var=
real_t)
583 CALL keyword_create(keyword, __location__, name=
"S_QUANTUM_NUMBERS", &
584 description=
"Main quantum numbers for s functions", &
585 usage=
"S_QUANTUM_NUMBERS 1 2 ... ", n_var=-1, type_of_var=
integer_t)
588 CALL keyword_create(keyword, __location__, name=
"P_QUANTUM_NUMBERS", &
589 description=
"Main quantum numbers for p functions", &
590 usage=
"P_QUANTUM_NUMBERS 2 3 ... ", n_var=-1, type_of_var=
integer_t)
593 CALL keyword_create(keyword, __location__, name=
"D_QUANTUM_NUMBERS", &
594 description=
"Main quantum numbers for d functions", &
595 usage=
"D_QUANTUM_NUMBERS 3 4 ... ", n_var=-1, type_of_var=
integer_t)
598 CALL keyword_create(keyword, __location__, name=
"F_QUANTUM_NUMBERS", &
599 description=
"Main quantum numbers for f functions", &
600 usage=
"F_QUANTUM_NUMBERS 4 5 ... ", n_var=-1, type_of_var=
integer_t)
604 CALL keyword_create(keyword, __location__, name=
"GEOMETRICAL_FACTOR", &
605 description=
"Geometrical basis: factor C in a*C^k", &
606 usage=
"GEOMETRICAL_FACTOR real", &
607 default_r_val=2.6_dp)
611 CALL keyword_create(keyword, __location__, name=
"GEO_START_VALUE", &
612 description=
"Geometrical basis: starting value a in a*C^k", &
613 usage=
"GEO_START_VALUE real", &
614 default_r_val=0.016_dp)
618 CALL keyword_create(keyword, __location__, name=
"BASIS_SET_FILE_NAME", &
619 description=
"Name of the basis set file, may include a path", &
620 usage=
"BASIS_SET_FILE_NAME <FILENAME>", &
621 default_lc_val=
"BASIS_SET")
626 variants=
s2a(
"ORBITAL_BASIS_SET",
"ORB_BASIS"), &
627 description=
"The contracted Gaussian basis set", &
628 usage=
"BASIS_SET DZVP", default_c_val=
" ", &
634 description=
"Algorithm to construct the atomic radial grids", &
635 usage=
"QUADRATURE (GC_SIMPLE|GC_TRANSFORMED|GC_LOG)", &
636 enum_c_vals=
s2a(
"GC_SIMPLE",
"GC_TRANSFORMED",
"GC_LOG"), &
638 enum_desc=
s2a(
"Gauss-Chebyshev quadrature", &
639 "Transformed Gauss-Chebyshev quadrature", &
640 "Logarithmic transformed Gauss-Chebyshev quadrature"), &
646 description=
"Number of radial grid points", &
647 usage=
"GRID_POINTS integer", &
652 CALL keyword_create(keyword, __location__, name=
"EPS_EIGENVALUE", &
653 description=
"Cutoff of overlap matrix eigenvalues included into basis", &
654 usage=
"EPS_EIGENVALUE real", &
655 default_r_val=1.e-12_dp)
660 CALL create_basis_section(subsection)
664 END SUBROUTINE atom_basis_section
671 SUBROUTINE create_atom_method_section(section)
677 NULLIFY (subsection, keyword)
678 cpassert(.NOT.
ASSOCIATED(section))
680 description=
"Section of information on method to use.", &
681 n_keywords=0, n_subsections=2, repeats=.true.)
684 description=
"Type of electronic structure method to be used", &
685 usage=
"METHOD_TYPE (KOHN-SHAM|RKS|UKS|HARTREE-FOCK|RHF|UHF|ROHF)", &
687 enum_c_vals=(/
"KOHN-SHAM ", &
696 enum_desc=
s2a(
"Kohn-Sham electronic structure method", &
697 "Restricted Kohn-Sham electronic structure method", &
698 "Unrestricted Kohn-Sham electronic structure method", &
699 "Hartree-Fock electronic structure method", &
700 "Restricted Hartree-Fock electronic structure method", &
701 "Unrestricted Hartree-Fock electronic structure method", &
702 "Restricted open-shell Hartree-Fock electronic structure method"))
707 description=
"Type of scalar relativistic method to be used", &
708 usage=
"RELATIVISTIC (OFF|ZORA(MP)|scZORA(MP)|DKH(0)|DKH(1)|DKH(2)|DKH(3))", &
710 enum_c_vals=(/
"OFF ", &
719 enum_desc=
s2a(
"Use no scalar relativistic method", &
720 "Use ZORA method with atomic model potential", &
721 "Use scaled ZORA method with atomic model potential", &
722 "Use Douglas-Kroll-Hess Hamiltonian of order 0", &
723 "Use Douglas-Kroll-Hess Hamiltonian of order 1", &
724 "Use Douglas-Kroll-Hess Hamiltonian of order 2", &
725 "Use Douglas-Kroll-Hess Hamiltonian of order 3"))
734 CALL create_zmp_section(subsection)
738 CALL create_external_vxc(subsection)
742 END SUBROUTINE create_atom_method_section
750 SUBROUTINE create_zmp_section(section)
756 NULLIFY (subsection, keyword)
757 cpassert(.NOT.
ASSOCIATED(section))
759 description=
"Section used to specify ZMP Potentials.", &
760 n_keywords=3, n_subsections=0, repeats=.false.)
763 description=
"Specifies the filename containing the target density ", &
764 usage=
"FILE_DENSITY <FILENAME>", &
765 type_of_var=
char_t, default_c_val=
"RHO_O.dat", n_var=-1)
770 description=
"Tolerance in the equivalence of read-grid in ZMP method", &
771 usage=
"GRID_TOL <REAL>", default_r_val=1.e-12_dp)
776 description=
"Parameter used for the constraint in ZMP method", &
777 usage=
"LAMBDA <REAL>", default_r_val=10.0_dp)
782 description=
"read external density from density matrix", &
783 usage=
"DM <LOGICAL>", type_of_var=
logical_t, default_l_val=.false.)
787 CALL create_zmp_restart_section(subsection)
791 END SUBROUTINE create_zmp_section
799 SUBROUTINE create_zmp_restart_section(section)
805 cpassert(.NOT.
ASSOCIATED(section))
807 description=
"Section used to specify the restart option in the ZMP "// &
808 "procedure, and the file that must be read.", &
809 n_keywords=1, n_subsections=0, repeats=.false.)
812 description=
"Specifies the filename containing the restart file density ", &
813 usage=
"FILE_RESTART <FILENAME>", &
814 type_of_var=
char_t, default_c_val=
"RESTART.wfn", n_var=-1)
818 END SUBROUTINE create_zmp_restart_section
826 SUBROUTINE create_external_vxc(section)
832 cpassert(.NOT.
ASSOCIATED(section))
834 description=
"Section used to specify exernal VXC Potentials.", &
835 n_keywords=1, n_subsections=0, repeats=.false.)
838 description=
"Specifies the filename containing the external vxc ", &
839 usage=
"FILE_VXC <FILENAME>", &
840 type_of_var=
char_t, default_c_val=
"VXC.dat", n_var=-1)
845 description=
"Tolerance in the equivalence of read-grid in ZMP method", &
846 usage=
"GRID_TOL <REAL>", default_r_val=1.e-12_dp)
850 END SUBROUTINE create_external_vxc
857 SUBROUTINE create_optimization_section(section)
863 cpassert(.NOT.
ASSOCIATED(section))
865 description=
"Section of information on optimization thresholds and algorithms.", &
866 n_keywords=0, n_subsections=1, repeats=.false.)
869 description=
"Maximum number of iterations for optimization", &
870 usage=
"MAX_ITER 50", default_i_val=200)
875 description=
"Convergence criterion for SCF", &
876 usage=
"EPS_SCF 1.e-10", default_r_val=1.e-6_dp)
881 description=
"Damping parameter for extrapolation method", &
882 usage=
"DAMPING 0.4", default_r_val=0.4_dp)
887 description=
"Starting DIIS method at convergence to EPS_DIIS", &
888 usage=
"EPS_DIIS 0.01", default_r_val=10000._dp)
893 description=
"Maximum number of DIIS vectors", &
894 usage=
"N_DIIS 6", default_i_val=5)
898 END SUBROUTINE create_optimization_section
905 SUBROUTINE create_potential_section(section)
912 cpassert(.NOT.
ASSOCIATED(section))
914 description=
"Section of information on potential.", &
915 n_keywords=0, n_subsections=1, repeats=.false.)
917 CALL keyword_create(keyword, __location__, name=
"CONFINEMENT_TYPE", &
918 description=
"Define functional form of confinement potential.", &
919 usage=
"CONFINEMENT_TYPE (NONE|POLYNOM|BARRIER)", &
921 enum_c_vals=(/
"NONE ", &
925 enum_desc=
s2a(
"Do not use confinement potential", &
926 "Use polynomial confinement potential: a*(R/b)^c", &
927 "Use a smooth barrier potential: a*F[R-c)/b]"))
932 description=
"Definition of parameters for confinement potential (a,b,c)", &
933 usage=
"CONFINEMENT prefactor range exponent (POLYNOM) "// &
934 "CONFINEMENT prefactor range r_onset (BARRIER)", &
935 default_r_vals=(/0._dp, 0._dp, 0._dp/), &
936 repeats=.false., n_var=-1)
941 description=
"Pseudopotential type", &
942 usage=
"PSEUDO_TYPE (NONE|GTH|UPF|ECP)", &
944 enum_c_vals=(/
"NONE ", &
950 enum_desc=
s2a(
"Do not use pseudopotentials", &
951 "Use Goedecker-Teter-Hutter pseudopotentials", &
952 "Use UPF norm-conserving pseudopotentials", &
953 "Use SGP norm-conserving pseudopotentials", &
954 "Use ECP semi-local pseudopotentials"))
958 CALL keyword_create(keyword, __location__, name=
"POTENTIAL_FILE_NAME", &
959 description=
"Name of the pseudo potential file, may include a path", &
960 usage=
"POTENTIAL_FILE_NAME <FILENAME>", &
961 default_lc_val=
"POTENTIAL")
965 CALL keyword_create(keyword, __location__, name=
"POTENTIAL_NAME", &
966 variants=(/
"POT_NAME"/), &
967 description=
"The name of the pseudopotential for the defined kind.", &
968 usage=
"POTENTIAL_NAME <PSEUDO-POTENTIAL-NAME>", default_c_val=
" ", n_var=1)
973 CALL create_gthpotential_section(subsection)
978 CALL create_ecp_section(subsection)
982 END SUBROUTINE create_potential_section
989 SUBROUTINE create_gthpotential_section(section)
994 CALL section_create(section, __location__, name=
"GTH_POTENTIAL", &
995 description=
"Section used to specify Potentials.", &
996 n_keywords=1, n_subsections=0, repeats=.false.)
998 CALL keyword_create(keyword, __location__, name=
"_DEFAULT_KEYWORD_", &
999 description=
"CP2K Pseudo Potential Standard Format (GTH, ALL or KG)", &
1000 repeats=.true., type_of_var=
lchar_t)
1003 END SUBROUTINE create_gthpotential_section
1010 SUBROUTINE create_ecp_section(section)
1016 description=
"Section used to specify ECP's.", &
1017 n_keywords=1, n_subsections=0, repeats=.false.)
1019 CALL keyword_create(keyword, __location__, name=
"_DEFAULT_KEYWORD_", &
1020 description=
"Effective Core Potentials definition", &
1021 repeats=.true., type_of_var=
lchar_t)
1024 END SUBROUTINE create_ecp_section
1031 SUBROUTINE create_basis_section(section)
1037 description=
"Section used to specify a general basis set for QM calculations.", &
1038 n_keywords=1, n_subsections=0, repeats=.false.)
1040 CALL keyword_create(keyword, __location__, name=
"_DEFAULT_KEYWORD_", &
1041 description=
"CP2K Basis Set Standard Format", repeats=.true., &
1045 END SUBROUTINE create_basis_section
1052 SUBROUTINE create_powell_section(section)
1058 description=
"Section defines basic parameters for Powell optimization", &
1059 n_keywords=4, n_subsections=0, repeats=.false.)
1063 description=
"Final accuracy requested in optimization (RHOEND)", &
1064 usage=
"ACCURACY 0.00001", &
1065 default_r_val=1.e-6_dp)
1070 description=
"Initial step size for search algorithm (RHOBEG)", &
1071 usage=
"STEP_SIZE 0.005", &
1072 default_r_val=0.005_dp)
1077 description=
"Maximum number of function evaluations", &
1078 usage=
"MAX_FUN 1000", &
1084 description=
"Maximum number of re-initialization of Powell method", &
1085 usage=
"MAX_INIT 5", &
1090 CALL keyword_create(keyword, __location__, name=
"STEP_SIZE_SCALING", &
1091 description=
"Scaling of Step Size on re-initialization of Powell method", &
1092 usage=
"STEP_SIZE_SCALING 0.80", &
1093 default_r_val=0.75_dp)
1097 CALL keyword_create(keyword, __location__, name=
"WEIGHT_POT_VIRTUAL", &
1098 description=
"Weight for virtual states in pseudopotential optimization", &
1099 usage=
"WEIGHT_POT_VIRTUAL 1.0", &
1100 default_r_val=1._dp)
1104 CALL keyword_create(keyword, __location__, name=
"WEIGHT_POT_SEMICORE", &
1105 description=
"Weight for semi core states in pseudopotential optimization", &
1106 usage=
"WEIGHT_POT_SEMICORE 1.0", &
1107 default_r_val=1._dp)
1111 CALL keyword_create(keyword, __location__, name=
"WEIGHT_POT_VALENCE", &
1112 description=
"Weight for valence states in pseudopotential optimization", &
1113 usage=
"WEIGHT_POT_VALENCE 1.0", &
1114 default_r_val=1.0_dp)
1118 CALL keyword_create(keyword, __location__, name=
"WEIGHT_POT_NODE", &
1119 description=
"Weight for node mismatch in pseudopotential optimization", &
1120 usage=
"WEIGHT_POT_NODE 1.0", &
1121 default_r_val=1.0_dp)
1125 CALL keyword_create(keyword, __location__, name=
"WEIGHT_DELTA_ENERGY", &
1126 description=
"Weight for energy differences in pseudopotential optimization", &
1127 usage=
"WEIGHT_DELTA_ENERGY 1.0", &
1128 default_r_val=1._dp)
1132 CALL keyword_create(keyword, __location__, name=
"WEIGHT_ELECTRON_CONFIGURATION", &
1133 description=
"Weight for different electronic states in optimization", &
1134 usage=
"WEIGHT_ELECTRON_CONFIGURATION 1.0 0.1 ...", &
1135 n_var=-1, type_of_var=
real_t, default_r_val=1.0_dp)
1139 CALL keyword_create(keyword, __location__, name=
"WEIGHT_METHOD", &
1140 description=
"Weight for different methods in optimization", &
1141 usage=
"WEIGHT_METHOD 1.0 0.1 ...", &
1142 n_var=-1, type_of_var=
real_t, default_r_val=1.0_dp)
1146 CALL keyword_create(keyword, __location__, name=
"TARGET_POT_VIRTUAL", &
1147 description=
"Target accuracy for virtual state eigenvalues in pseudopotential optimization", &
1148 usage=
"TARGET_POT_VIRTUAL 0.0001", &
1149 default_r_val=1.0e-3_dp, unit_str=
"hartree")
1153 CALL keyword_create(keyword, __location__, name=
"TARGET_POT_VALENCE", &
1154 description=
"Target accuracy for valence state eigenvalues in pseudopotential optimization", &
1155 usage=
"TARGET_POT_VALENCE 0.0001", &
1156 default_r_val=1.0e-5_dp, unit_str=
"hartree")
1160 CALL keyword_create(keyword, __location__, name=
"TARGET_POT_SEMICORE", &
1161 description=
"Target accuracy for semicore state eigenvalues in pseudopotential optimization", &
1162 usage=
"TARGET_POT_SEMICORE 0.01", &
1163 default_r_val=1.0e-3_dp, unit_str=
"hartree")
1167 CALL keyword_create(keyword, __location__, name=
"TARGET_DELTA_ENERGY", &
1168 description=
"Target accuracy for energy differences in pseudopotential optimization", &
1169 usage=
"TARGET_DELTA_ENERGY 0.01", &
1170 default_r_val=1.0e-4_dp, unit_str=
"hartree")
1174 CALL keyword_create(keyword, __location__, name=
"TARGET_PSIR0", &
1175 description=
"Minimum value for the wavefunctions at r=0 (only occupied states)"// &
1176 " Value=0 means keeping wfn(r=0)=0", &
1177 usage=
"TARGET_PSIR0 0.50", &
1178 default_r_val=0._dp)
1182 CALL keyword_create(keyword, __location__, name=
"WEIGHT_PSIR0", &
1183 description=
"Weight for the wavefunctions at r=0 (only occupied states)", &
1184 usage=
"WEIGHT_PSIR0 0.01", &
1185 default_r_val=0._dp)
1189 CALL keyword_create(keyword, __location__, name=
"RCOV_MULTIPLICATION", &
1190 description=
"Multiply Rcov integration limit for charge conservation", &
1191 usage=
"RCOV_MULTIPLICATION 1.10", &
1192 default_r_val=1._dp)
1196 CALL keyword_create(keyword, __location__, name=
"SEMICORE_LEVEL", &
1197 description=
"Energy at which to consider a full shell as semicore", &
1198 usage=
"SEMICORE_LEVEL 1.0", &
1199 default_r_val=1._dp, unit_str=
"hartree")
1204 description=
"Don't optimize NLCC parameters.", &
1205 usage=
"NOOPT_NLCC T", &
1207 default_l_val=.false.)
1212 description=
"Optimize NLCC parameters by fitting core charge density.", &
1213 usage=
"PREOPT_NLCC T", &
1215 default_l_val=.false.)
1219 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.