41 #include "./base/base_uses.f90"
46 LOGICAL,
PRIVATE,
PARAMETER :: debug_this_module = .true.
47 CHARACTER(len=*),
PARAMETER,
PRIVATE :: moduleN =
'input_cp2k_atom'
61 TYPE(section_type),
POINTER :: section
63 TYPE(keyword_type),
POINTER :: keyword
64 TYPE(section_type),
POINTER :: subsection
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)
207 TYPE(section_type),
POINTER :: section
209 TYPE(keyword_type),
POINTER :: keyword
210 TYPE(section_type),
POINTER :: print_key, subsection
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 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 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 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", &
409 description=
"Calculates some basis set analysis data", &
411 CALL keyword_create(keyword, __location__, name=
"OVERLAP_CONDITION_NUMBER", &
412 description=
"Condition number of the basis set overlap matrix calculated for a cubic crystal", &
413 usage=
"OVERLAP_CONDITION_NUMBER <logical>", type_of_var=
logical_t, default_l_val=.false.)
417 description=
"Calculate a completeness estimate for the basis set.", &
418 usage=
"COMPLETENESS <logical>", type_of_var=
logical_t, default_l_val=.false.)
426 description=
"Controls the printing of FIT PSEUDO task", &
433 description=
"Controls the printing of FIT BASIS task", &
440 description=
"Write GTH pseudopotential in UPF format", &
447 description=
"Creates a representation of the pseudopotential in separable "// &
448 "form using Gaussian functions.", &
455 description=
"Analysis of ADMM approximation to exact exchange", &
459 CALL section_create(subsection, __location__, name=
"ADMM_BASIS", &
460 description=
"Section of basis set information for ADMM calculations.", &
461 n_keywords=0, n_subsections=0, repeats=.false.)
462 CALL atom_basis_section(subsection)
468 END SUBROUTINE create_atom_print_section
475 SUBROUTINE create_atom_aebasis_section(section)
476 TYPE(section_type),
POINTER :: section
478 cpassert(.NOT.
ASSOCIATED(section))
480 description=
"Section of basis set information for all-electron calculations.", &
481 n_keywords=0, n_subsections=0, repeats=.false.)
483 CALL atom_basis_section(section)
485 END SUBROUTINE create_atom_aebasis_section
492 SUBROUTINE create_atom_ppbasis_section(section)
493 TYPE(section_type),
POINTER :: section
495 cpassert(.NOT.
ASSOCIATED(section))
497 description=
"Section of basis set information for pseudopotential calculations.", &
498 n_keywords=0, n_subsections=0, repeats=.false.)
500 CALL atom_basis_section(section)
502 END SUBROUTINE create_atom_ppbasis_section
509 SUBROUTINE atom_basis_section(section)
510 TYPE(section_type),
POINTER :: section
512 TYPE(keyword_type),
POINTER :: keyword
513 TYPE(section_type),
POINTER :: subsection
515 cpassert(
ASSOCIATED(section))
519 description=
"Basis set type", &
520 usage=
"BASIS_TYPE (GAUSSIAN|GEOMETRICAL_GTO|CONTRACTED_GTO|SLATER|NUMERICAL)", &
522 enum_c_vals=(/
"GAUSSIAN ", &
523 "GEOMETRICAL_GTO ", &
528 enum_desc=s2a(
"Gaussian type orbitals", &
529 "Geometrical Gaussian type orbitals", &
530 "Contracted Gaussian type orbitals", &
531 "Slater-type orbitals", &
532 "Numerical basis type"))
537 description=
"Number of Gaussian type functions for s, p, d, ...", &
538 usage=
"NUM_GTO 5 5 5 ", n_var=-1, type_of_var=
integer_t, &
544 description=
"Number of Slater type functions for s, p, d, ...", &
545 usage=
"NUM_SLATER 5 5 5 ", n_var=-1, type_of_var=
integer_t, &
551 description=
"Starting index for Geometrical Basis sets", &
552 usage=
"START_INDEX 0 2 5 4 ", n_var=-1, type_of_var=
integer_t, &
558 description=
"Exponents for s functions", &
559 usage=
"S_EXPONENTS 1.0 2.0 ... ", n_var=-1, type_of_var=
real_t)
563 description=
"Exponents for p functions", &
564 usage=
"P_EXPONENTS 1.0 2.0 ... ", n_var=-1, type_of_var=
real_t)
568 description=
"Exponents for d functions", &
569 usage=
"D_EXPONENTS 1.0 2.0 ... ", n_var=-1, type_of_var=
real_t)
573 description=
"Exponents for f functions", &
574 usage=
"F_EXPONENTS 1.0 2.0 ... ", n_var=-1, type_of_var=
real_t)
578 CALL keyword_create(keyword, __location__, name=
"S_QUANTUM_NUMBERS", &
579 description=
"Main quantum numbers for s functions", &
580 usage=
"S_QUANTUM_NUMBERS 1 2 ... ", n_var=-1, type_of_var=
integer_t)
583 CALL keyword_create(keyword, __location__, name=
"P_QUANTUM_NUMBERS", &
584 description=
"Main quantum numbers for p functions", &
585 usage=
"P_QUANTUM_NUMBERS 2 3 ... ", n_var=-1, type_of_var=
integer_t)
588 CALL keyword_create(keyword, __location__, name=
"D_QUANTUM_NUMBERS", &
589 description=
"Main quantum numbers for d functions", &
590 usage=
"D_QUANTUM_NUMBERS 3 4 ... ", n_var=-1, type_of_var=
integer_t)
593 CALL keyword_create(keyword, __location__, name=
"F_QUANTUM_NUMBERS", &
594 description=
"Main quantum numbers for f functions", &
595 usage=
"F_QUANTUM_NUMBERS 4 5 ... ", n_var=-1, type_of_var=
integer_t)
599 CALL keyword_create(keyword, __location__, name=
"GEOMETRICAL_FACTOR", &
600 description=
"Geometrical basis: factor C in a*C^k", &
601 usage=
"GEOMETRICAL_FACTOR real", &
602 default_r_val=2.6_dp)
606 CALL keyword_create(keyword, __location__, name=
"GEO_START_VALUE", &
607 description=
"Geometrical basis: starting value a in a*C^k", &
608 usage=
"GEO_START_VALUE real", &
609 default_r_val=0.016_dp)
613 CALL keyword_create(keyword, __location__, name=
"BASIS_SET_FILE_NAME", &
614 description=
"Name of the basis set file, may include a path", &
615 usage=
"BASIS_SET_FILE_NAME <FILENAME>", &
616 default_lc_val=
"BASIS_SET")
621 variants=s2a(
"ORBITAL_BASIS_SET",
"ORB_BASIS"), &
622 description=
"The contracted Gaussian basis set", &
623 usage=
"BASIS_SET DZVP", default_c_val=
" ", &
629 description=
"Algorithm to construct the atomic radial grids", &
630 usage=
"QUADRATURE (GC_SIMPLE|GC_TRANSFORMED|GC_LOG)", &
631 enum_c_vals=s2a(
"GC_SIMPLE",
"GC_TRANSFORMED",
"GC_LOG"), &
633 enum_desc=s2a(
"Gauss-Chebyshev quadrature", &
634 "Transformed Gauss-Chebyshev quadrature", &
635 "Logarithmic transformed Gauss-Chebyshev quadrature"), &
641 description=
"Number of radial grid points", &
642 usage=
"GRID_POINTS integer", &
647 CALL keyword_create(keyword, __location__, name=
"EPS_EIGENVALUE", &
648 description=
"Cutoff of overlap matrix eigenvalues included into basis", &
649 usage=
"EPS_EIGENVALUE real", &
650 default_r_val=1.e-12_dp)
655 CALL create_basis_section(subsection)
659 END SUBROUTINE atom_basis_section
666 SUBROUTINE create_atom_method_section(section)
667 TYPE(section_type),
POINTER :: section
669 TYPE(keyword_type),
POINTER :: keyword
670 TYPE(section_type),
POINTER :: subsection
672 NULLIFY (subsection, keyword)
673 cpassert(.NOT.
ASSOCIATED(section))
675 description=
"Section of information on method to use.", &
676 n_keywords=0, n_subsections=2, repeats=.true.)
679 description=
"Type of electronic structure method to be used", &
680 usage=
"METHOD_TYPE (KOHN-SHAM|RKS|UKS|HARTREE-FOCK|RHF|UHF|ROHF)", &
682 enum_c_vals=(/
"KOHN-SHAM ", &
691 enum_desc=s2a(
"Kohn-Sham electronic structure method", &
692 "Restricted Kohn-Sham electronic structure method", &
693 "Unrestricted Kohn-Sham electronic structure method", &
694 "Hartree-Fock electronic structure method", &
695 "Restricted Hartree-Fock electronic structure method", &
696 "Unrestricted Hartree-Fock electronic structure method", &
697 "Restricted open-shell Hartree-Fock electronic structure method"))
702 description=
"Type of scalar relativistic method to be used", &
703 usage=
"RELATIVISTIC (OFF|ZORA(MP)|scZORA(MP)|DKH(0)|DKH(1)|DKH(2)|DKH(3))", &
705 enum_c_vals=(/
"OFF ", &
714 enum_desc=s2a(
"Use no scalar relativistic method", &
715 "Use ZORA method with atomic model potential", &
716 "Use scaled ZORA method with atomic model potential", &
717 "Use Douglas-Kroll-Hess Hamiltonian of order 0", &
718 "Use Douglas-Kroll-Hess Hamiltonian of order 1", &
719 "Use Douglas-Kroll-Hess Hamiltonian of order 2", &
720 "Use Douglas-Kroll-Hess Hamiltonian of order 3"))
729 CALL create_zmp_section(subsection)
733 CALL create_external_vxc(subsection)
737 END SUBROUTINE create_atom_method_section
745 SUBROUTINE create_zmp_section(section)
746 TYPE(section_type),
POINTER :: section
748 TYPE(keyword_type),
POINTER :: keyword
749 TYPE(section_type),
POINTER :: subsection
751 NULLIFY (subsection, keyword)
752 cpassert(.NOT.
ASSOCIATED(section))
754 description=
"Section used to specify ZMP Potentials.", &
755 n_keywords=3, n_subsections=0, repeats=.false.)
758 description=
"Specifies the filename containing the target density ", &
759 usage=
"FILE_DENSITY <FILENAME>", &
760 type_of_var=
char_t, default_c_val=
"RHO_O.dat", n_var=-1)
765 description=
"Tolerance in the equivalence of read-grid in ZMP method", &
766 usage=
"GRID_TOL <REAL>", default_r_val=1.e-12_dp)
771 description=
"Parameter used for the constraint in ZMP method", &
772 usage=
"LAMBDA <REAL>", default_r_val=10.0_dp)
777 description=
"read external density from density matrix", &
778 usage=
"DM <LOGICAL>", type_of_var=
logical_t, default_l_val=.false.)
782 CALL create_zmp_restart_section(subsection)
786 END SUBROUTINE create_zmp_section
794 SUBROUTINE create_zmp_restart_section(section)
795 TYPE(section_type),
POINTER :: section
797 TYPE(keyword_type),
POINTER :: keyword
800 cpassert(.NOT.
ASSOCIATED(section))
802 description=
"Section used to specify the restart option in the ZMP "// &
803 "procedure, and the file that must be read.", &
804 n_keywords=1, n_subsections=0, repeats=.false.)
807 description=
"Specifies the filename containing the restart file density ", &
808 usage=
"FILE_RESTART <FILENAME>", &
809 type_of_var=
char_t, default_c_val=
"RESTART.wfn", n_var=-1)
813 END SUBROUTINE create_zmp_restart_section
821 SUBROUTINE create_external_vxc(section)
822 TYPE(section_type),
POINTER :: section
824 TYPE(keyword_type),
POINTER :: keyword
827 cpassert(.NOT.
ASSOCIATED(section))
829 description=
"Section used to specify exernal VXC Potentials.", &
830 n_keywords=1, n_subsections=0, repeats=.false.)
833 description=
"Specifies the filename containing the external vxc ", &
834 usage=
"FILE_VXC <FILENAME>", &
835 type_of_var=
char_t, default_c_val=
"VXC.dat", n_var=-1)
840 description=
"Tolerance in the equivalence of read-grid in ZMP method", &
841 usage=
"GRID_TOL <REAL>", default_r_val=1.e-12_dp)
845 END SUBROUTINE create_external_vxc
852 SUBROUTINE create_optimization_section(section)
853 TYPE(section_type),
POINTER :: section
855 TYPE(keyword_type),
POINTER :: keyword
858 cpassert(.NOT.
ASSOCIATED(section))
860 description=
"Section of information on optimization thresholds and algorithms.", &
861 n_keywords=0, n_subsections=1, repeats=.false.)
864 description=
"Maximum number of iterations for optimization", &
865 usage=
"MAX_ITER 50", default_i_val=200)
870 description=
"Convergence criterion for SCF", &
871 usage=
"EPS_SCF 1.e-10", default_r_val=1.e-6_dp)
876 description=
"Damping parameter for extrapolation method", &
877 usage=
"DAMPING 0.4", default_r_val=0.4_dp)
882 description=
"Starting DIIS method at convergence to EPS_DIIS", &
883 usage=
"EPS_DIIS 0.01", default_r_val=10000._dp)
888 description=
"Maximum number of DIIS vectors", &
889 usage=
"N_DIIS 6", default_i_val=5)
893 END SUBROUTINE create_optimization_section
900 SUBROUTINE create_potential_section(section)
901 TYPE(section_type),
POINTER :: section
903 TYPE(keyword_type),
POINTER :: keyword
904 TYPE(section_type),
POINTER :: subsection
907 cpassert(.NOT.
ASSOCIATED(section))
909 description=
"Section of information on potential.", &
910 n_keywords=0, n_subsections=1, repeats=.false.)
912 CALL keyword_create(keyword, __location__, name=
"CONFINEMENT_TYPE", &
913 description=
"Define functional form of confinement potential.", &
914 usage=
"CONFINEMENT_TYPE (NONE|POLYNOM|BARRIER)", &
916 enum_c_vals=(/
"NONE ", &
920 enum_desc=s2a(
"Do not use confinement potential", &
921 "Use polynomial confinement potential: a*(R/b)^c", &
922 "Use a smooth barrier potential: a*F[R-c)/b]"))
927 description=
"Definition of parameters for confinement potential (a,b,c)", &
928 usage=
"CONFINEMENT prefactor range exponent (POLYNOM) "// &
929 "CONFINEMENT prefactor range r_onset (BARRIER)", &
930 default_r_vals=(/0._dp, 0._dp, 0._dp/), &
931 repeats=.false., n_var=-1)
936 description=
"Pseudopotential type", &
937 usage=
"PSEUDO_TYPE (NONE|GTH|UPF|ECP)", &
939 enum_c_vals=(/
"NONE ", &
945 enum_desc=s2a(
"Do not use pseudopotentials", &
946 "Use Goedecker-Teter-Hutter pseudopotentials", &
947 "Use UPF norm-conserving pseudopotentials", &
948 "Use SGP norm-conserving pseudopotentials", &
949 "Use ECP semi-local pseudopotentials"))
953 CALL keyword_create(keyword, __location__, name=
"POTENTIAL_FILE_NAME", &
954 description=
"Name of the pseudo potential file, may include a path", &
955 usage=
"POTENTIAL_FILE_NAME <FILENAME>", &
956 default_lc_val=
"POTENTIAL")
960 CALL keyword_create(keyword, __location__, name=
"POTENTIAL_NAME", &
961 variants=(/
"POT_NAME"/), &
962 description=
"The name of the pseudopotential for the defined kind.", &
963 usage=
"POTENTIAL_NAME <PSEUDO-POTENTIAL-NAME>", default_c_val=
" ", n_var=1)
968 CALL create_gthpotential_section(subsection)
973 CALL create_ecp_section(subsection)
977 END SUBROUTINE create_potential_section
984 SUBROUTINE create_gthpotential_section(section)
985 TYPE(section_type),
POINTER :: section
987 TYPE(keyword_type),
POINTER :: keyword
989 CALL section_create(section, __location__, name=
"GTH_POTENTIAL", &
990 description=
"Section used to specify Potentials.", &
991 n_keywords=1, n_subsections=0, repeats=.false.)
993 CALL keyword_create(keyword, __location__, name=
"_DEFAULT_KEYWORD_", &
994 description=
"CP2K Pseudo Potential Standard Format (GTH, ALL or KG)", &
995 repeats=.true., type_of_var=
lchar_t)
998 END SUBROUTINE create_gthpotential_section
1005 SUBROUTINE create_ecp_section(section)
1006 TYPE(section_type),
POINTER :: section
1008 TYPE(keyword_type),
POINTER :: keyword
1011 description=
"Section used to specify ECP's.", &
1012 n_keywords=1, n_subsections=0, repeats=.false.)
1014 CALL keyword_create(keyword, __location__, name=
"_DEFAULT_KEYWORD_", &
1015 description=
"Effective Core Potentials definition", &
1016 repeats=.true., type_of_var=
lchar_t)
1019 END SUBROUTINE create_ecp_section
1026 SUBROUTINE create_basis_section(section)
1027 TYPE(section_type),
POINTER :: section
1029 TYPE(keyword_type),
POINTER :: keyword
1032 description=
"Section used to specify a general basis set for QM calculations.", &
1033 n_keywords=1, n_subsections=0, repeats=.false.)
1035 CALL keyword_create(keyword, __location__, name=
"_DEFAULT_KEYWORD_", &
1036 description=
"CP2K Basis Set Standard Format", repeats=.true., &
1040 END SUBROUTINE create_basis_section
1047 SUBROUTINE create_powell_section(section)
1048 TYPE(section_type),
POINTER :: section
1050 TYPE(keyword_type),
POINTER :: keyword
1053 description=
"Section defines basic parameters for Powell optimization", &
1054 n_keywords=4, n_subsections=0, repeats=.false.)
1058 description=
"Final accuracy requested in optimization (RHOEND)", &
1059 usage=
"ACCURACY 0.00001", &
1060 default_r_val=1.e-6_dp)
1065 description=
"Initial step size for search algorithm (RHOBEG)", &
1066 usage=
"STEP_SIZE 0.005", &
1067 default_r_val=0.005_dp)
1072 description=
"Maximum number of function evaluations", &
1073 usage=
"MAX_FUN 1000", &
1079 description=
"Maximum number of re-initialization of Powell method", &
1080 usage=
"MAX_INIT 5", &
1085 CALL keyword_create(keyword, __location__, name=
"STEP_SIZE_SCALING", &
1086 description=
"Scaling of Step Size on re-initialization of Powell method", &
1087 usage=
"STEP_SIZE_SCALING 0.80", &
1088 default_r_val=0.75_dp)
1092 CALL keyword_create(keyword, __location__, name=
"WEIGHT_POT_VIRTUAL", &
1093 description=
"Weight for virtual states in pseudopotential optimization", &
1094 usage=
"WEIGHT_POT_VIRTUAL 1.0", &
1095 default_r_val=1._dp)
1099 CALL keyword_create(keyword, __location__, name=
"WEIGHT_POT_SEMICORE", &
1100 description=
"Weight for semi core states in pseudopotential optimization", &
1101 usage=
"WEIGHT_POT_SEMICORE 1.0", &
1102 default_r_val=1._dp)
1106 CALL keyword_create(keyword, __location__, name=
"WEIGHT_POT_VALENCE", &
1107 description=
"Weight for valence states in pseudopotential optimization", &
1108 usage=
"WEIGHT_POT_VALENCE 1.0", &
1109 default_r_val=1.0_dp)
1113 CALL keyword_create(keyword, __location__, name=
"WEIGHT_POT_NODE", &
1114 description=
"Weight for node mismatch in pseudopotential optimization", &
1115 usage=
"WEIGHT_POT_NODE 1.0", &
1116 default_r_val=1.0_dp)
1120 CALL keyword_create(keyword, __location__, name=
"WEIGHT_DELTA_ENERGY", &
1121 description=
"Weight for energy differences in pseudopotential optimization", &
1122 usage=
"WEIGHT_DELTA_ENERGY 1.0", &
1123 default_r_val=1._dp)
1127 CALL keyword_create(keyword, __location__, name=
"WEIGHT_ELECTRON_CONFIGURATION", &
1128 description=
"Weight for different electronic states in optimization", &
1129 usage=
"WEIGHT_ELECTRON_CONFIGURATION 1.0 0.1 ...", &
1130 n_var=-1, type_of_var=
real_t, default_r_val=1.0_dp)
1134 CALL keyword_create(keyword, __location__, name=
"WEIGHT_METHOD", &
1135 description=
"Weight for different methods in optimization", &
1136 usage=
"WEIGHT_METHOD 1.0 0.1 ...", &
1137 n_var=-1, type_of_var=
real_t, default_r_val=1.0_dp)
1141 CALL keyword_create(keyword, __location__, name=
"TARGET_POT_VIRTUAL", &
1142 description=
"Target accuracy for virtual state eigenvalues in pseudopotential optimization", &
1143 usage=
"TARGET_POT_VIRTUAL 0.0001", &
1144 default_r_val=1.0e-3_dp, unit_str=
"hartree")
1148 CALL keyword_create(keyword, __location__, name=
"TARGET_POT_VALENCE", &
1149 description=
"Target accuracy for valence state eigenvalues in pseudopotential optimization", &
1150 usage=
"TARGET_POT_VALENCE 0.0001", &
1151 default_r_val=1.0e-5_dp, unit_str=
"hartree")
1155 CALL keyword_create(keyword, __location__, name=
"TARGET_POT_SEMICORE", &
1156 description=
"Target accuracy for semicore state eigenvalues in pseudopotential optimization", &
1157 usage=
"TARGET_POT_SEMICORE 0.01", &
1158 default_r_val=1.0e-3_dp, unit_str=
"hartree")
1162 CALL keyword_create(keyword, __location__, name=
"TARGET_DELTA_ENERGY", &
1163 description=
"Target accuracy for energy differences in pseudopotential optimization", &
1164 usage=
"TARGET_DELTA_ENERGY 0.01", &
1165 default_r_val=1.0e-4_dp, unit_str=
"hartree")
1169 CALL keyword_create(keyword, __location__, name=
"TARGET_PSIR0", &
1170 description=
"Minimum value for the wavefunctions at r=0 (only occupied states)"// &
1171 " Value=0 means keeping wfn(r=0)=0", &
1172 usage=
"TARGET_PSIR0 0.50", &
1173 default_r_val=0._dp)
1177 CALL keyword_create(keyword, __location__, name=
"WEIGHT_PSIR0", &
1178 description=
"Weight for the wavefunctions at r=0 (only occupied states)", &
1179 usage=
"WEIGHT_PSIR0 0.01", &
1180 default_r_val=0._dp)
1184 CALL keyword_create(keyword, __location__, name=
"RCOV_MULTIPLICATION", &
1185 description=
"Multiply Rcov integration limit for charge conservation", &
1186 usage=
"RCOV_MULTIPLICATION 1.10", &
1187 default_r_val=1._dp)
1191 CALL keyword_create(keyword, __location__, name=
"SEMICORE_LEVEL", &
1192 description=
"Energy at which to consider a full shell as semicore", &
1193 usage=
"SEMICORE_LEVEL 1.0", &
1194 default_r_val=1._dp, unit_str=
"hartree")
1199 description=
"Don't optimize NLCC parameters.", &
1200 usage=
"NOOPT_NLCC T", &
1202 default_l_val=.false.)
1207 description=
"Optimize NLCC parameters by fitting core charge density.", &
1208 usage=
"PREOPT_NLCC T", &
1210 default_l_val=.false.)
1214 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.