1! This file is part of xtb. 2! 3! Copyright (C) 2019-2020 Sebastian Ehlert 4! 5! xtb is free software: you can redistribute it and/or modify it under 6! the terms of the GNU Lesser General Public License as published by 7! the Free Software Foundation, either version 3 of the License, or 8! (at your option) any later version. 9! 10! xtb is distributed in the hope that it will be useful, 11! but WITHOUT ANY WARRANTY; without even the implied warranty of 12! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13! GNU Lesser General Public License for more details. 14! 15! You should have received a copy of the GNU Lesser General Public License 16! along with xtb. If not, see <https://www.gnu.org/licenses/>. 17 18!> Data for the generation of a force field topology 19module xtb_gfnff_generator 20 use xtb_mctc_accuracy, only : wp, sp 21 implicit none 22 private 23 24 public :: TGFFGenerator 25 26 27 !> Generator for the force field topology 28 type TGFFGenerator 29 30 !> when is an angle close to linear ? (GEODEP) 31 ! for metals values closer to 170 (than to 160) are better 32 real(wp) linthr 33 34 !> skip torsion and bending if potential is small 35 real(wp) fcthr 36 37 !> R threshold in Angstroem for cov distance estimated used in apprx EEQ 38 real(sp) tdist_thr 39 40 !> important bond determination threshold, large values yield more 1.23 41 real(wp) rthr 42 43 !> decrease if a metal is present, larger values yield smaller CN 44 real(wp) rthr2 45 46 !> change of R0 for topo with charge qa 47 ! larger values yield smaller CN for metals in particular 48 real(wp) rqshrink 49 50 !> H charge (qa) threshold for H in HB list 18 51 real(wp) hqabthr 52 53 !> AB charge (qa) threshold for AB in HB list 54 ! - avoids HBs with positive atoms, 55 ! - larger val. better for S30L but worse in PubChem RMSD checks 56 real(wp) qabthr 57 58 !> Parameter 59 real(wp) srb1 60 real(wp) srb2 61 real(wp) srb3 62 63 !> change of non-bonded rep. with q(topo) 64 real(wp) qrepscal 65 66 !> change of non-bonded rep. with CN 67 real(wp) nrepscal 68 69 !> HH repulsion 70 real(wp) hhfac 71 real(wp) hh13rep 72 real(wp) hh14rep 73 real(wp) bstren(9) 74 75 !> bend FC change with polarity 76 real(wp) qfacBEN 77 78 !> torsion FC change with polarity 79 real(wp) qfacTOR 80 81 !> tors FC 3-ring 82 real(wp) fr3 83 84 !> tors FC 4-ring 85 real(wp) fr4 86 87 !> tors FC 5-ring 88 real(wp) fr5 89 90 !> tors FC 6-ring 91 real(wp) fr6 92 93 !> bonds 94 real(wp) torsf(8) 95 96 !> small bend corr. 97 real(wp) fbs1 98 99 !> bonded ATM scal 100 real(wp) batmscal 101 102 !> Shifts 103 real(wp) mchishift 104 105 !> gen shift 106 real(wp) rabshift 107 108 !> XH 109 real(wp) rabshifth 110 111 !> hypervalent 112 real(wp) hyper_shift 113 114 !> heavy 115 real(wp) hshift3 116 real(wp) hshift4 117 real(wp) hshift5 118 119 !> group 1+2 metals 120 real(wp) metal1_shift 121 122 !> TM 123 real(wp) metal2_shift 124 125 !> main group metals 126 real(wp) metal3_shift 127 128 !> eta bonded 129 real(wp) eta_shift 130 131 !> Charge Param 132 real(wp) qfacbm(0:4) 133 134 !> bond charge dependent 135 real(wp) qfacbm0 136 137 !> topo dist scaling 138 real(wp) rfgoed1 139 140 !> Hückel Param 141 ! decrease Hueckel off-diag for triple bonds because they are less well conjugated 1.4 142 real(wp) htriple 143 144 !> increase pot depth depending on P 145 real(wp) hueckelp2 146 147 !> diagonal element change with qa 148 real(wp) hueckelp3 149 150 !> diagonal element relative to C 151 real(wp) hdiag(17) 152 153 !> Huckel off-diag constants 154 real(wp) hoffdiag(17) 155 156 !> iteration mixing 157 real(wp) hiter 158 159 !> diagonal qa dep. 160 real(wp) hueckelp 161 162 !> ref P value R shift 163 real(wp) bzref 164 165 !> ref P value k stretch 166 real(wp) bzref2 167 168 !> 2el diag shift 169 real(wp) pilpf 170 171 !> the Hückel iterations can diverge so take only a few steps 172 real(wp) maxhiter 173 174 !> D3 Param 175 real(wp) d3a1 176 177 !> D3 178 real(wp) d3a2 179 180 !> mixing of sp^n with sp^n-1 181 real(wp) split0 182 183 !> mixing of sp^n with sp^n-1 184 real(wp) split1 185 186 !> str ring size dep. 187 real(wp) fringbo 188 189 !> three coord. heavy eq. angle 190 real(wp) aheavy3 191 192 !> four coord. heavy eq. angle 193 real(wp) aheavy4 194 real(wp) bsmat(0:3,0:3) 195 196 !> max CN cut-off 197 real(wp) :: cnmax 198 199 end type TGFFGenerator 200 201 202contains 203 204 205end module xtb_gfnff_generator 206