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

Generated by: LCOV version 1.15