LCOV - code coverage report
Current view: top level - src - input_cp2k_tb.F (source / functions) Hit Total Coverage
Test: CP2K Regtests (git:4c33f95) Lines: 208 208 100.0 %
Date: 2025-01-30 06:53:08 Functions: 5 5 100.0 %

          Line data    Source code
       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 dft section of the input
      10             : !> \par History
      11             : !>      10.2005 moved out of input_cp2k [fawzi]
      12             : !> \author fawzi
      13             : ! **************************************************************************************************
      14             : MODULE input_cp2k_tb
      15             :    USE bibliography,                    ONLY: Elstner1998,&
      16             :                                               Grimme2017,&
      17             :                                               Hu2007,&
      18             :                                               Porezag1995,&
      19             :                                               Seifert1996,&
      20             :                                               Zhechkov2005
      21             :    USE eeq_input,                       ONLY: create_eeq_control_section
      22             :    USE input_constants,                 ONLY: dispersion_d2,&
      23             :                                               dispersion_d3,&
      24             :                                               dispersion_d3bj,&
      25             :                                               dispersion_uff,&
      26             :                                               slater
      27             :    USE input_cp2k_mm,                   ONLY: create_GENPOT_section
      28             :    USE input_keyword_types,             ONLY: keyword_create,&
      29             :                                               keyword_release,&
      30             :                                               keyword_type
      31             :    USE input_section_types,             ONLY: section_add_keyword,&
      32             :                                               section_add_subsection,&
      33             :                                               section_create,&
      34             :                                               section_release,&
      35             :                                               section_type
      36             :    USE input_val_types,                 ONLY: char_t
      37             :    USE kinds,                           ONLY: dp
      38             :    USE string_utilities,                ONLY: s2a
      39             : #include "./base/base_uses.f90"
      40             : 
      41             :    IMPLICIT NONE
      42             :    PRIVATE
      43             : 
      44             :    CHARACTER(len=*), PARAMETER, PRIVATE :: moduleN = 'input_cp2k_tb'
      45             : 
      46             :    PUBLIC :: create_dftb_control_section, create_xtb_control_section
      47             : 
      48             : CONTAINS
      49             : 
      50             : ! **************************************************************************************************
      51             : !> \brief ...
      52             : !> \param section ...
      53             : ! **************************************************************************************************
      54        9220 :    SUBROUTINE create_dftb_control_section(section)
      55             :       TYPE(section_type), POINTER                        :: section
      56             : 
      57             :       TYPE(keyword_type), POINTER                        :: keyword
      58             :       TYPE(section_type), POINTER                        :: subsection
      59             : 
      60        9220 :       CPASSERT(.NOT. ASSOCIATED(section))
      61             :       CALL section_create(section, __LOCATION__, name="DFTB", &
      62             :                           description="Parameters needed to set up the DFTB methods", &
      63             :                           n_keywords=1, n_subsections=1, repeats=.FALSE., &
      64       46100 :                           citations=(/Porezag1995, Seifert1996, Elstner1998, Zhechkov2005/))
      65             : 
      66        9220 :       NULLIFY (subsection)
      67        9220 :       CALL create_dftb_parameter_section(subsection)
      68        9220 :       CALL section_add_subsection(section, subsection)
      69        9220 :       CALL section_release(subsection)
      70             : 
      71        9220 :       NULLIFY (keyword)
      72             :       CALL keyword_create(keyword, __LOCATION__, name="self_consistent", &
      73             :                           description="Use self-consistent method", &
      74             :                           citations=(/Elstner1998/), &
      75       18440 :                           usage="SELF_CONSISTENT", default_l_val=.TRUE.)
      76        9220 :       CALL section_add_keyword(section, keyword)
      77        9220 :       CALL keyword_release(keyword)
      78             : 
      79             :       CALL keyword_create(keyword, __LOCATION__, name="orthogonal_basis", &
      80             :                           description="Assume orthogonal basis set", &
      81        9220 :                           usage="ORTHOGONAL_BASIS", default_l_val=.FALSE.)
      82        9220 :       CALL section_add_keyword(section, keyword)
      83        9220 :       CALL keyword_release(keyword)
      84             : 
      85             :       CALL keyword_create(keyword, __LOCATION__, name="do_ewald", &
      86             :                           description="Use Ewald type method instead of direct sum for Coulomb interaction", &
      87        9220 :                           usage="DO_EWALD", default_l_val=.FALSE., lone_keyword_l_val=.TRUE.)
      88        9220 :       CALL section_add_keyword(section, keyword)
      89        9220 :       CALL keyword_release(keyword)
      90             : 
      91             :       CALL keyword_create(keyword, __LOCATION__, name="dispersion", &
      92             :                           description="Use dispersion correction", &
      93             :                           citations=(/Zhechkov2005/), lone_keyword_l_val=.TRUE., &
      94       18440 :                           usage="DISPERSION", default_l_val=.FALSE.)
      95        9220 :       CALL section_add_keyword(section, keyword)
      96        9220 :       CALL keyword_release(keyword)
      97             : 
      98             :       CALL keyword_create(keyword, __LOCATION__, name="DIAGONAL_DFTB3", &
      99             :                           description="Use a diagonal version of the 3rd order energy correction (DFTB3) ", &
     100             :                           lone_keyword_l_val=.TRUE., &
     101        9220 :                           usage="DIAGONAL_DFTB3", default_l_val=.FALSE.)
     102        9220 :       CALL section_add_keyword(section, keyword)
     103        9220 :       CALL keyword_release(keyword)
     104             : 
     105             :       CALL keyword_create(keyword, __LOCATION__, name="HB_SR_GAMMA", &
     106             :                           description="Uses a modified version for the GAMMA within the SCC-DFTB scheme, "// &
     107             :                           "specifically tuned for hydrogen bonds.", &
     108             :                           citations=(/Hu2007/), lone_keyword_l_val=.TRUE., &
     109       18440 :                           usage="HB_SR_GAMMA", default_l_val=.FALSE.)
     110        9220 :       CALL section_add_keyword(section, keyword)
     111        9220 :       CALL keyword_release(keyword)
     112             : 
     113             :       CALL keyword_create(keyword, __LOCATION__, name="eps_disp", &
     114             :                           description="Define accuracy of dispersion interaction", &
     115        9220 :                           usage="EPS_DISP", default_r_val=0.0001_dp)
     116        9220 :       CALL section_add_keyword(section, keyword)
     117        9220 :       CALL keyword_release(keyword)
     118             : 
     119        9220 :    END SUBROUTINE create_dftb_control_section
     120             : 
     121             : ! **************************************************************************************************
     122             : !> \brief ...
     123             : !> \param section ...
     124             : ! **************************************************************************************************
     125        9220 :    SUBROUTINE create_xtb_control_section(section)
     126             :       TYPE(section_type), POINTER                        :: section
     127             : 
     128             :       TYPE(keyword_type), POINTER                        :: keyword
     129             :       TYPE(section_type), POINTER                        :: subsection
     130             : 
     131        9220 :       CPASSERT(.NOT. ASSOCIATED(section))
     132             :       CALL section_create(section, __LOCATION__, name="xTB", &
     133             :                           description="Parameters needed to set up the xTB methods", &
     134             :                           n_keywords=1, n_subsections=1, repeats=.FALSE., &
     135       18440 :                           citations=(/GRIMME2017/))
     136             : 
     137        9220 :       NULLIFY (subsection)
     138        9220 :       CALL create_xtb_parameter_section(subsection)
     139        9220 :       CALL section_add_subsection(section, subsection)
     140        9220 :       CALL section_release(subsection)
     141             : 
     142        9220 :       CALL create_xtb_nonbonded_section(subsection)
     143        9220 :       CALL section_add_subsection(section, subsection)
     144        9220 :       CALL section_release(subsection)
     145             : 
     146        9220 :       CALL create_eeq_control_section(subsection)
     147        9220 :       CALL section_add_subsection(section, subsection)
     148        9220 :       CALL section_release(subsection)
     149             : 
     150        9220 :       NULLIFY (keyword)
     151             :       CALL keyword_create(keyword, __LOCATION__, name="GFN_TYPE", &
     152             :                           description="Which GFN xTB method should be used.", &
     153        9220 :                           usage="GFN_TYPE 1", default_i_val=1)
     154        9220 :       CALL section_add_keyword(section, keyword)
     155        9220 :       CALL keyword_release(keyword)
     156             : 
     157             :       CALL keyword_create(keyword, __LOCATION__, name="DO_EWALD", &
     158             :                           description="Use Ewald type method instead of direct sum for Coulomb interaction", &
     159        9220 :                           usage="DO_EWALD", default_l_val=.FALSE., lone_keyword_l_val=.TRUE.)
     160        9220 :       CALL section_add_keyword(section, keyword)
     161        9220 :       CALL keyword_release(keyword)
     162             : 
     163             :       CALL keyword_create(keyword, __LOCATION__, name="STO_NG", &
     164             :                           description="Provides the order of the Slater orbital expansion in GTOs.", &
     165        9220 :                           usage="STO_NG 3", default_i_val=6)
     166        9220 :       CALL section_add_keyword(section, keyword)
     167        9220 :       CALL keyword_release(keyword)
     168             : 
     169             :       CALL keyword_create(keyword, __LOCATION__, name="HYDROGEN_STO_NG", &
     170             :                           description="Number of GTOs for Hydrogen basis expansion.", &
     171        9220 :                           usage="HYDROGEN_STO_NG 3", default_i_val=4)
     172        9220 :       CALL section_add_keyword(section, keyword)
     173        9220 :       CALL keyword_release(keyword)
     174             : 
     175             :       CALL keyword_create(keyword, __LOCATION__, name="USE_HALOGEN_CORRECTION", &
     176             :                           description="Use XB interaction term", &
     177        9220 :                           usage="USE_HALOGEN_CORRECTION T", default_l_val=.TRUE., lone_keyword_l_val=.TRUE.)
     178        9220 :       CALL section_add_keyword(section, keyword)
     179        9220 :       CALL keyword_release(keyword)
     180             : 
     181             :       CALL keyword_create(keyword, __LOCATION__, name="DO_NONBONDED", &
     182             :                           description="Controls the computation of real-space "// &
     183             :                           "(short-range) nonbonded interactions as correction to xTB.", &
     184        9220 :                           usage="DO_NONBONDED T", default_l_val=.FALSE., lone_keyword_l_val=.TRUE.)
     185        9220 :       CALL section_add_keyword(section, keyword)
     186        9220 :       CALL keyword_release(keyword)
     187             : 
     188             :       CALL keyword_create(keyword, __LOCATION__, name="VDW_POTENTIAL", &
     189             :                           description="vdW potential to be used: NONE, DFTD3, DFTD4. "// &
     190             :                           "Defaults: DFTD3(gfn1), DFTD4(gfn0, gfn2).", &
     191        9220 :                           usage="VDW_POTENTIAL type", default_c_val="")
     192        9220 :       CALL section_add_keyword(section, keyword)
     193        9220 :       CALL keyword_release(keyword)
     194             : 
     195             :       CALL keyword_create(keyword, __LOCATION__, name="COULOMB_INTERACTION", &
     196             :                           description="Use Coulomb interaction terms (electrostatics + TB3); for debug only", &
     197        9220 :                           usage="COULOMB_INTERACTION T", default_l_val=.TRUE., lone_keyword_l_val=.TRUE.)
     198        9220 :       CALL section_add_keyword(section, keyword)
     199        9220 :       CALL keyword_release(keyword)
     200             : 
     201             :       CALL keyword_create(keyword, __LOCATION__, name="COULOMB_LR", &
     202             :                           description="Use Coulomb LR (1/r) interaction terms; for debug only", &
     203        9220 :                           usage="COULOMB_LR T", default_l_val=.TRUE., lone_keyword_l_val=.TRUE.)
     204        9220 :       CALL section_add_keyword(section, keyword)
     205        9220 :       CALL keyword_release(keyword)
     206             : 
     207             :       CALL keyword_create(keyword, __LOCATION__, name="TB3_INTERACTION", &
     208             :                           description="Use TB3 interaction terms; for debug only", &
     209        9220 :                           usage="TB3_INTERACTION T", default_l_val=.TRUE., lone_keyword_l_val=.TRUE.)
     210        9220 :       CALL section_add_keyword(section, keyword)
     211        9220 :       CALL keyword_release(keyword)
     212             : 
     213             :       CALL keyword_create(keyword, __LOCATION__, name="CHECK_ATOMIC_CHARGES", &
     214             :                           description="Stop calculation if atomic charges are outside chemical range.", &
     215        9220 :                           usage="CHECK_ATOMIC_CHARGES T", default_l_val=.TRUE., lone_keyword_l_val=.TRUE.)
     216        9220 :       CALL section_add_keyword(section, keyword)
     217        9220 :       CALL keyword_release(keyword)
     218             : 
     219             :       CALL keyword_create(keyword, __LOCATION__, name="VARIATIONAL_DIPOLE", &
     220             :                           description="gfn0-xTB use dipole definition from energy derivative.", &
     221        9220 :                           usage="VARIATIONAL_DIPOLE T", default_l_val=.FALSE., lone_keyword_l_val=.TRUE.)
     222        9220 :       CALL section_add_keyword(section, keyword)
     223        9220 :       CALL keyword_release(keyword)
     224             : 
     225             :       CALL keyword_create(keyword, __LOCATION__, name="EPS_PAIRPOTENTIAL", &
     226             :                           description="Accuracy for the repulsive pair potential.", &
     227        9220 :                           usage="EPS_PAIRPOTENTIAL 1.0E-8", default_r_val=1.0e-10_dp)
     228        9220 :       CALL section_add_keyword(section, keyword)
     229        9220 :       CALL keyword_release(keyword)
     230             : 
     231             :       CALL keyword_create(keyword, __LOCATION__, name="EN_SHIFT_TYPE", &
     232             :                           description="Shift function for electronegativity in EEQ method. "// &
     233             :                           "[Select/Molecule/Crystal] Default Select from periodicity.", &
     234             :                           usage="EN_SHIFT_TYPE [Select/Molecule/Crystal]", &
     235        9220 :                           n_var=1, type_of_var=char_t, default_c_val="Molecule")
     236        9220 :       CALL section_add_keyword(section, keyword)
     237        9220 :       CALL keyword_release(keyword)
     238             : 
     239        9220 :    END SUBROUTINE create_xtb_control_section
     240             : 
     241             : ! **************************************************************************************************
     242             : !> \brief ...
     243             : !> \param section ...
     244             : ! **************************************************************************************************
     245        9220 :    SUBROUTINE create_dftb_parameter_section(section)
     246             : 
     247             :       TYPE(section_type), POINTER                        :: section
     248             : 
     249             :       TYPE(keyword_type), POINTER                        :: keyword
     250             : 
     251        9220 :       CPASSERT(.NOT. ASSOCIATED(section))
     252             : 
     253             :       CALL section_create(section, __LOCATION__, name="PARAMETER", &
     254             :                           description="Information on where to find DFTB parameters", &
     255        9220 :                           n_keywords=1, n_subsections=0, repeats=.FALSE.)
     256             : 
     257        9220 :       NULLIFY (keyword)
     258             :       CALL keyword_create(keyword, __LOCATION__, name="SK_FILE", &
     259             :                           description="Define parameter file for atom pair", &
     260             :                           usage="SK_FILE a1 a2 filename", &
     261        9220 :                           n_var=3, type_of_var=char_t, repeats=.TRUE.)
     262        9220 :       CALL section_add_keyword(section, keyword)
     263        9220 :       CALL keyword_release(keyword)
     264             : 
     265             :       CALL keyword_create(keyword, __LOCATION__, name="PARAM_FILE_PATH", &
     266             :                           description="Specify the directory with the DFTB parameter files. "// &
     267             :                           "Used in combination with the filenames specified in the file "// &
     268             :                           "given in PARAM_FILE_NAME.", usage="PARAM_FILE_PATH pathname", &
     269        9220 :                           n_var=1, type_of_var=char_t, default_c_val="./")
     270        9220 :       CALL section_add_keyword(section, keyword)
     271        9220 :       CALL keyword_release(keyword)
     272             : 
     273             :       CALL keyword_create(keyword, __LOCATION__, name="PARAM_FILE_NAME", &
     274             :                           description="Specify file that contains the names of "// &
     275             :                           "Slater-Koster tables: A plain text file, each line has the "// &
     276             :                           'format "ATOM1 ATOM2 filename.spl".', &
     277             :                           usage="PARAM_FILE_NAME filename", &
     278        9220 :                           n_var=1, type_of_var=char_t, default_c_val="")
     279        9220 :       CALL section_add_keyword(section, keyword)
     280        9220 :       CALL keyword_release(keyword)
     281             : 
     282             :       CALL keyword_create(keyword, __LOCATION__, name="DISPERSION_TYPE", &
     283             :                           description="Use dispersion correction of the specified type."// &
     284             :                           " Dispersion correction has to be switched on in the DFTB section.", &
     285             :                           usage="DISPERSION_TYPE (UFF|D3|D3(BJ)|D2)", &
     286             :                           enum_c_vals=s2a("UFF", "D3", "D3(BJ)", "D2"), &
     287             :                           enum_i_vals=(/dispersion_uff, dispersion_d3, dispersion_d3bj, dispersion_d2/), &
     288             :                           enum_desc=s2a("Uses the UFF force field for a pair potential dispersion correction.", &
     289             :                                         "Uses the Grimme D3 method (simplified) for a pair potential dispersion correction.", &
     290             :                                         "Uses the Grimme D3 method (simplified) with Becke-Johnson attenuation.", &
     291             :                                         "Uses the Grimme D2 method for pair potential dispersion correction."), &
     292        9220 :                           default_i_val=dispersion_uff)
     293        9220 :       CALL section_add_keyword(section, keyword)
     294        9220 :       CALL keyword_release(keyword)
     295             : 
     296             :       CALL keyword_create(keyword, __LOCATION__, name="UFF_FORCE_FIELD", &
     297             :                           description="Name of file with UFF parameters that will be used "// &
     298             :                           "for the dispersion correction. Needs to be specified when "// &
     299             :                           "DISPERSION==.TRUE., otherwise cp2k crashes with a Segmentation "// &
     300             :                           "Fault.", usage="UFF_FORCE_FIELD filename", &
     301        9220 :                           n_var=1, type_of_var=char_t, default_c_val="")
     302        9220 :       CALL section_add_keyword(section, keyword)
     303        9220 :       CALL keyword_release(keyword)
     304             : 
     305             :       CALL keyword_create(keyword, __LOCATION__, name="DISPERSION_PARAMETER_FILE", &
     306             :                           description="Specify file that contains the atomic dispersion "// &
     307             :                           "parameters for the D3 method", &
     308             :                           usage="DISPERSION_PARAMETER_FILE filename", &
     309        9220 :                           n_var=1, type_of_var=char_t, default_c_val="")
     310        9220 :       CALL section_add_keyword(section, keyword)
     311        9220 :       CALL keyword_release(keyword)
     312             : 
     313             :       CALL keyword_create(keyword, __LOCATION__, name="DISPERSION_RADIUS", &
     314             :                           description="Define radius of dispersion interaction", &
     315        9220 :                           usage="DISPERSION_RADIUS", default_r_val=15._dp)
     316        9220 :       CALL section_add_keyword(section, keyword)
     317        9220 :       CALL keyword_release(keyword)
     318             : 
     319             :       CALL keyword_create(keyword, __LOCATION__, name="COORDINATION_CUTOFF", &
     320             :                           description="Define cutoff for coordination number calculation", &
     321        9220 :                           usage="COORDINATION_CUTOFF", default_r_val=1.e-6_dp)
     322        9220 :       CALL section_add_keyword(section, keyword)
     323        9220 :       CALL keyword_release(keyword)
     324             : 
     325             :       CALL keyword_create(keyword, __LOCATION__, name="D3_SCALING", &
     326             :                           description="Scaling parameters (s6,sr6,s8) for the D3 dispersion method,", &
     327        9220 :                           usage="D3_SCALING 1.0 1.0 1.0", n_var=3, default_r_vals=(/0.0_dp, 0.0_dp, 0.0_dp/))
     328        9220 :       CALL section_add_keyword(section, keyword)
     329        9220 :       CALL keyword_release(keyword)
     330             : 
     331             :       CALL keyword_create(keyword, __LOCATION__, name="D3BJ_SCALING", &
     332             :                           description="Scaling parameters (s6,a1,s8,a2) for the D3(BJ) dispersion method,", &
     333             :                           usage="D3BJ_SCALING 1.0 1.0 1.0 1.0", n_var=4, &
     334        9220 :                           default_r_vals=(/0.0_dp, 0.0_dp, 0.0_dp, 0.0_dp/))
     335        9220 :       CALL section_add_keyword(section, keyword)
     336        9220 :       CALL keyword_release(keyword)
     337             : 
     338             :       CALL keyword_create(keyword, __LOCATION__, name="D2_SCALING", &
     339             :                           description="Scaling parameter for the D2 dispersion method,", &
     340        9220 :                           usage="D2_SCALING 1.0", default_r_val=1.0_dp)
     341        9220 :       CALL section_add_keyword(section, keyword)
     342        9220 :       CALL keyword_release(keyword)
     343             : 
     344             :       CALL keyword_create(keyword, __LOCATION__, name="D2_EXP_PRE", &
     345             :                           description="Exp prefactor for damping for the D2 dispersion method,", &
     346        9220 :                           usage="EXP_PRE 2.0", default_r_val=2.0_dp)
     347        9220 :       CALL section_add_keyword(section, keyword)
     348        9220 :       CALL keyword_release(keyword)
     349             : 
     350             :       CALL keyword_create(keyword, __LOCATION__, name="HB_SR_PARAM", &
     351             :                           description="Uses a modified version for the GAMMA within the SCC-DFTB scheme, "// &
     352             :                           "specifically tuned for hydrogen bonds. Specify the exponent used in the exponential.", &
     353        9220 :                           usage="HB_SR_PARAM {real}", default_r_val=4.0_dp)
     354        9220 :       CALL section_add_keyword(section, keyword)
     355        9220 :       CALL keyword_release(keyword)
     356             : 
     357        9220 :    END SUBROUTINE create_dftb_parameter_section
     358             : 
     359             : ! **************************************************************************************************
     360             : !> \brief ...
     361             : !> \param section ...
     362             : ! **************************************************************************************************
     363        9220 :    SUBROUTINE create_xtb_parameter_section(section)
     364             : 
     365             :       TYPE(section_type), POINTER                        :: section
     366             : 
     367             :       TYPE(keyword_type), POINTER                        :: keyword
     368             : 
     369        9220 :       CPASSERT(.NOT. ASSOCIATED(section))
     370             : 
     371             :       CALL section_create(section, __LOCATION__, name="PARAMETER", &
     372             :                           description="Information on and where to find xTB parameters", &
     373        9220 :                           n_keywords=1, n_subsections=0, repeats=.FALSE.)
     374             : 
     375        9220 :       NULLIFY (keyword)
     376             :       CALL keyword_create(keyword, __LOCATION__, name="PARAM_FILE_PATH", &
     377             :                           description="Specify the directory with the xTB parameter file. ", &
     378             :                           usage="PARAM_FILE_PATH pathname", &
     379        9220 :                           n_var=1, type_of_var=char_t, default_c_val="")
     380        9220 :       CALL section_add_keyword(section, keyword)
     381        9220 :       CALL keyword_release(keyword)
     382             : 
     383             :       CALL keyword_create(keyword, __LOCATION__, name="PARAM_FILE_NAME", &
     384             :                           description="Specify file that contains all xTB default parameters. ", &
     385             :                           usage="PARAM_FILE_NAME filename", &
     386        9220 :                           n_var=1, type_of_var=char_t, default_c_val="xTB_parameters")
     387        9220 :       CALL section_add_keyword(section, keyword)
     388        9220 :       CALL keyword_release(keyword)
     389             : 
     390             :       CALL keyword_create(keyword, __LOCATION__, name="DISPERSION_PARAMETER_FILE", &
     391             :                           description="Specify file that contains the atomic dispersion "// &
     392             :                           "parameters for the D3 method", &
     393             :                           usage="DISPERSION_PARAMETER_FILE filename", &
     394        9220 :                           n_var=1, type_of_var=char_t, default_c_val="dftd3.dat")
     395        9220 :       CALL section_add_keyword(section, keyword)
     396        9220 :       CALL keyword_release(keyword)
     397             : 
     398             :       CALL keyword_create(keyword, __LOCATION__, name="DISPERSION_RADIUS", &
     399             :                           description="Define radius of dispersion interaction", &
     400        9220 :                           usage="DISPERSION_RADIUS", default_r_val=15._dp)
     401        9220 :       CALL section_add_keyword(section, keyword)
     402        9220 :       CALL keyword_release(keyword)
     403             : 
     404             :       CALL keyword_create(keyword, __LOCATION__, name="COORDINATION_CUTOFF", &
     405             :                           description="Define cutoff for coordination number calculation", &
     406        9220 :                           usage="COORDINATION_CUTOFF", default_r_val=1.e-6_dp)
     407        9220 :       CALL section_add_keyword(section, keyword)
     408        9220 :       CALL keyword_release(keyword)
     409             : 
     410             :       CALL keyword_create(keyword, __LOCATION__, name="D3BJ_SCALING", &
     411             :                           description="Scaling parameters (s6,s8) for the D3 dispersion method.", &
     412        9220 :                           usage="D3BJ_SCALING 1.0 2.4", n_var=2, default_r_vals=(/1.0_dp, 2.4_dp/))
     413        9220 :       CALL section_add_keyword(section, keyword)
     414        9220 :       CALL keyword_release(keyword)
     415             : 
     416             :       CALL keyword_create(keyword, __LOCATION__, name="D3BJ_PARAM", &
     417             :                           description="Becke-Johnson parameters (a1, a2 for the D3 dispersion method.", &
     418        9220 :                           usage="D3BJ_PARAM 0.63 5.0", n_var=2, default_r_vals=(/0.63_dp, 5.0_dp/))
     419        9220 :       CALL section_add_keyword(section, keyword)
     420        9220 :       CALL keyword_release(keyword)
     421             : 
     422             :       CALL keyword_create(keyword, __LOCATION__, name="HUCKEL_CONSTANTS", &
     423             :                           description="Huckel parameters (s, p, d, sp, 2sH).", &
     424             :                           usage="HUCKEL_CONSTANTS 1.85 2.25 2.00 2.08 2.85", n_var=5, &
     425        9220 :                           default_r_vals=(/1.85_dp, 2.25_dp, 2.00_dp, 2.08_dp, 2.85_dp/))
     426        9220 :       CALL section_add_keyword(section, keyword)
     427        9220 :       CALL keyword_release(keyword)
     428             : 
     429             :       CALL keyword_create(keyword, __LOCATION__, name="COULOMB_CONSTANTS", &
     430             :                           description="Scaling parameters for Coulomb interactions (electrons, nuclei).", &
     431             :                           usage="COULOMB_CONSTANTS 2.00 1.50", n_var=2, &
     432        9220 :                           default_r_vals=(/2.00_dp, 1.50_dp/))
     433        9220 :       CALL section_add_keyword(section, keyword)
     434        9220 :       CALL keyword_release(keyword)
     435             : 
     436             :       CALL keyword_create(keyword, __LOCATION__, name="CN_CONSTANTS", &
     437             :                           description="Scaling parameters for Coordination number correction term.", &
     438             :                           usage="CN_CONSTANTS 0.006 -0.003 -0.005", n_var=3, &
     439        9220 :                           default_r_vals=(/0.006_dp, -0.003_dp, -0.005_dp/))
     440        9220 :       CALL section_add_keyword(section, keyword)
     441        9220 :       CALL keyword_release(keyword)
     442             : 
     443             :       CALL keyword_create(keyword, __LOCATION__, name="EN_CONSTANTS", &
     444             :                           description="Scaling parameters for electronegativity correction term.", &
     445             :                           usage="EN_CONSTANTS -0.007 0.000 0.000", n_var=3, &
     446        9220 :                           default_r_vals=(/-0.007_dp, 0.000_dp, 0.000_dp/))
     447        9220 :       CALL section_add_keyword(section, keyword)
     448        9220 :       CALL keyword_release(keyword)
     449             : 
     450             :       CALL keyword_create(keyword, __LOCATION__, name="BEN_CONSTANT", &
     451             :                           description="Scaling parameter for electronegativity correction term.", &
     452             :                           usage="BEN_CONSTANT 4.0", n_var=1, &
     453        9220 :                           default_r_val=4.0_dp)
     454        9220 :       CALL section_add_keyword(section, keyword)
     455        9220 :       CALL keyword_release(keyword)
     456             : 
     457             :       CALL keyword_create(keyword, __LOCATION__, name="ENSCALE", &
     458             :                           description="Scaling parameter repulsive energy (dEN in exponential).", &
     459             :                           usage="ENSCALE 0.01", n_var=1, &
     460        9220 :                           default_r_val=0.0_dp)
     461        9220 :       CALL section_add_keyword(section, keyword)
     462        9220 :       CALL keyword_release(keyword)
     463             : 
     464             :       CALL keyword_create(keyword, __LOCATION__, name="HALOGEN_BINDING", &
     465             :                           description="Scaling parameters for electronegativity correction term.", &
     466        9220 :                           usage="HALOGEN_BINDING 1.30 0.44", n_var=2, default_r_vals=(/1.30_dp, 0.44_dp/))
     467        9220 :       CALL section_add_keyword(section, keyword)
     468        9220 :       CALL keyword_release(keyword)
     469             : 
     470             :       CALL keyword_create(keyword, __LOCATION__, name="KAB_PARAM", &
     471             :                           description="Specifies the specific Kab value for types A and B.", &
     472             :                           usage="KAB_PARAM kind1 kind2 value ", repeats=.TRUE., &
     473        9220 :                           n_var=-1, type_of_var=char_t)
     474        9220 :       CALL section_add_keyword(section, keyword)
     475        9220 :       CALL keyword_release(keyword)
     476             : 
     477             :       CALL keyword_create(keyword, __LOCATION__, name="XB_RADIUS", &
     478             :                           description="Specifies the radius [Bohr] of the XB pair interaction in xTB.", &
     479             :                           usage="XB_RADIUS 20.0 ", repeats=.FALSE., &
     480        9220 :                           n_var=1, default_r_val=20.0_dp)
     481        9220 :       CALL section_add_keyword(section, keyword)
     482        9220 :       CALL keyword_release(keyword)
     483             : 
     484             :       CALL keyword_create(keyword, __LOCATION__, name="COULOMB_SR_CUT", &
     485             :                           description="Maximum range of short range part of Coulomb interaction.", &
     486             :                           usage="COULOMB_SR_CUT 20.0 ", repeats=.FALSE., &
     487        9220 :                           n_var=1, default_r_val=20.0_dp)
     488        9220 :       CALL section_add_keyword(section, keyword)
     489        9220 :       CALL keyword_release(keyword)
     490             : 
     491             :       CALL keyword_create(keyword, __LOCATION__, name="COULOMB_SR_EPS", &
     492             :                           description="Cutoff for short range part of Coulomb interaction.", &
     493             :                           usage="COULOMB_SR_EPS 1.E-3 ", repeats=.FALSE., &
     494        9220 :                           n_var=1, default_r_val=1.0E-03_dp)
     495        9220 :       CALL section_add_keyword(section, keyword)
     496        9220 :       CALL keyword_release(keyword)
     497             : 
     498             :       CALL keyword_create(keyword, __LOCATION__, name="SRB_PARAMETER", &
     499             :                           description="SRB parameters (ksrb, esrb, gscal, c1, c2, shift).", &
     500             :                           usage="SRB_PARAMETER -0.0129 3.48 0.51 -1.71 2.11 0.0537", n_var=6, &
     501             :                           default_r_vals=(/-0.0129_dp, 3.4847_dp, 0.5097_dp, &
     502        9220 :                                            -1.70549806_dp, 2.10878369_dp, 0.0537_dp/))
     503        9220 :       CALL section_add_keyword(section, keyword)
     504        9220 :       CALL keyword_release(keyword)
     505             : 
     506        9220 :    END SUBROUTINE create_xtb_parameter_section
     507             : ! **************************************************************************************************
     508             : !> \brief ...
     509             : !> \param section ...
     510             : ! **************************************************************************************************
     511        9220 :    SUBROUTINE create_xtb_nonbonded_section(section)
     512             :       TYPE(section_type), POINTER                        :: section
     513             : 
     514             :       TYPE(keyword_type), POINTER                        :: keyword
     515             :       TYPE(section_type), POINTER                        :: subsection
     516             : 
     517        9220 :       CPASSERT(.NOT. ASSOCIATED(section))
     518             :       CALL section_create(section, __LOCATION__, name="NONBONDED", &
     519             :                           description="This section specifies the input parameters for NON-BONDED interactions.", &
     520        9220 :                           n_keywords=1, n_subsections=0, repeats=.FALSE.)
     521        9220 :       NULLIFY (subsection)
     522             : 
     523        9220 :       CALL create_GENPOT_section(subsection)
     524        9220 :       CALL section_add_subsection(section, subsection)
     525        9220 :       CALL section_release(subsection)
     526             : 
     527        9220 :       NULLIFY (keyword)
     528             :       CALL keyword_create(keyword, __LOCATION__, name="DX", &
     529             :                           description="Parameter used for computing the derivative with the Ridders' method.", &
     530        9220 :                           usage="DX <REAL>", default_r_val=0.1_dp, unit_str="bohr")
     531        9220 :       CALL section_add_keyword(section, keyword)
     532        9220 :       CALL keyword_release(keyword)
     533             : 
     534             :       CALL keyword_create(keyword, __LOCATION__, name="ERROR_LIMIT", &
     535             :                           description="Checks that the error in computing the derivative is not larger than "// &
     536             :                           "the value set; in case error is larger a warning message is printed.", &
     537        9220 :                           usage="ERROR_LIMIT <REAL>", default_r_val=1.0E-12_dp)
     538        9220 :       CALL section_add_keyword(section, keyword)
     539        9220 :       CALL keyword_release(keyword)
     540             : 
     541        9220 :    END SUBROUTINE create_xtb_nonbonded_section
     542             : 
     543             : END MODULE input_cp2k_tb

Generated by: LCOV version 1.15