Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GFN-FF reparameterization for lanthanides and extension to actinides #1103

Merged
merged 5 commits into from
Sep 18, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 17 additions & 0 deletions .param_gfnff.xtb
Original file line number Diff line number Diff line change
Expand Up @@ -84,3 +84,20 @@
84 1.236314 0.076708 0.019269 2.067331 0.192274 0.557520 0.322666 0.415042 0.307481 0.144762 0.767979
85 1.310129 0.000273 0.074803 2.228923 0.127706 0.563373 0.333641 1.259822 0.316447 0.231884 0.536799
86 1.157380 -0.068929 0.016657 1.874218 0.086756 0.484713 0.434163 0.400000 0.400000 0.400000 0.500000
87 0.789115 0.485375 -0.024950 0.977079 0.150000 0.574626 0.302575 0.032198 0.000000 0.090741 0.000000
88 0.798704 0.416264 -0.033006 0.770260 0.150000 0.560506 0.163290 0.036663 0.000000 0.076783 0.000000
89 1.053384 -0.009993 0.065498 0.717658 0.370682 0.682723 0.187645 0.281449 0.078710 0.310896 0.122336
90 1.056040 -0.010075 0.058290 0.732120 0.368511 0.684824 0.190821 0.280526 0.079266 0.309131 0.131176
91 1.058772 -0.010138 0.052304 0.743405 0.366339 0.686925 0.193998 0.279603 0.079822 0.307367 0.140015
92 1.061580 -0.010179 0.047540 0.751515 0.364168 0.689026 0.197174 0.278680 0.080379 0.305602 0.148855
93 1.064463 -0.010201 0.043999 0.756447 0.361996 0.691127 0.200351 0.277757 0.080935 0.303838 0.157695
94 1.067422 -0.010201 0.041680 0.758203 0.359825 0.693228 0.203527 0.276834 0.081491 0.302073 0.166534
95 1.070456 -0.010182 0.040584 0.756783 0.357654 0.695329 0.206703 0.275911 0.082047 0.300309 0.175374
96 1.073566 -0.010141 0.040710 0.752186 0.355482 0.697430 0.209880 0.274988 0.082603 0.298544 0.184214
97 1.076751 -0.010080 0.042058 0.744413 0.353311 0.699531 0.213056 0.274065 0.083159 0.296779 0.193053
98 1.080012 -0.009999 0.044628 0.733463 0.351139 0.701631 0.216233 0.273142 0.083716 0.295015 0.201893
99 1.083349 -0.009897 0.048421 0.719337 0.348968 0.703732 0.219409 0.272219 0.084272 0.293250 0.210733
100 1.086761 -0.009775 0.053436 0.702034 0.346797 0.705833 0.222585 0.271296 0.084828 0.291486 0.219572
101 1.090249 -0.009632 0.059674 0.681554 0.344625 0.707934 0.225762 0.270373 0.085384 0.289721 0.228412
102 1.093812 -0.009468 0.067134 0.657898 0.342454 0.710035 0.228938 0.269450 0.085940 0.287957 0.237252
103 1.097451 -0.009284 0.075816 0.631066 0.340282 0.712136 0.232115 0.268528 0.086496 0.286192 0.246091
141 changes: 78 additions & 63 deletions src/approxrab.f90
Original file line number Diff line number Diff line change
Expand Up @@ -22,71 +22,86 @@ module xtb_approxrab
public :: pbc_approx_rab, approx_rab, approx_bonds

! parameter blocks
real(wp),private, dimension(86) :: cnfak
real(wp),private, dimension(86) :: r0
real(wp),private, dimension(86) :: en
real(wp),private, dimension(103) :: cnfak
real(wp),private, dimension(103) :: r0
real(wp),private, dimension(103) :: en
real(wp),private, dimension(4,2):: p
! START PARAMETER--------------------------------------------------
data en /&
2.30085633_wp, 2.78445145_wp, 1.52956084_wp, 1.51714704_wp, 2.20568300_wp,&
2.49640820_wp, 2.81007174_wp, 4.51078438_wp, 4.67476223_wp, 3.29383610_wp,&
2.84505365_wp, 2.20047950_wp, 2.31739628_wp, 2.03636974_wp, 1.97558064_wp,&
2.13446570_wp, 2.91638164_wp, 1.54098156_wp, 2.91656301_wp, 2.26312147_wp,&
2.25621439_wp, 1.32628677_wp, 2.27050569_wp, 1.86790977_wp, 2.44759456_wp,&
2.49480042_wp, 2.91545568_wp, 3.25897750_wp, 2.68723778_wp, 1.86132251_wp,&
2.01200832_wp, 1.97030722_wp, 1.95495427_wp, 2.68920990_wp, 2.84503857_wp,&
2.61591858_wp, 2.64188286_wp, 2.28442252_wp, 1.33011187_wp, 1.19809388_wp,&
1.89181390_wp, 2.40186898_wp, 1.89282464_wp, 3.09963488_wp, 2.50677823_wp,&
2.61196704_wp, 2.09943450_wp, 2.66930105_wp, 1.78349472_wp, 2.09634533_wp,&
2.00028974_wp, 1.99869908_wp, 2.59072029_wp, 2.54497829_wp, 2.52387890_wp,&
2.30204667_wp, 1.60119300_wp, 2.00000000_wp, 2.00000000_wp, 2.00000000_wp,&
2.00000000_wp, 2.00000000_wp, 2.00000000_wp, 2.00000000_wp, 2.00000000_wp,&
2.00000000_wp, 2.00000000_wp, 2.00000000_wp, 2.00000000_wp, 2.00000000_wp,&
2.00000000_wp, 2.30089349_wp, 1.75039077_wp, 1.51785130_wp, 2.62972945_wp,&
2.75372921_wp, 2.62540906_wp, 2.55860939_wp, 3.32492356_wp, 2.65140898_wp,&
1.52014458_wp, 2.54984804_wp, 1.72021963_wp, 2.69303422_wp, 1.81031095_wp,&
2.34224386_wp&
/
data r0 /&
0.55682207_wp, 0.80966997_wp, 2.49092101_wp, 1.91705642_wp, 1.35974851_wp,&
0.98310699_wp, 0.98423007_wp, 0.76716063_wp, 1.06139799_wp, 1.17736822_wp,&
2.85570926_wp, 2.56149012_wp, 2.31673425_wp, 2.03181740_wp, 1.82568535_wp,&
1.73685958_wp, 1.97498207_wp, 2.00136196_wp, 3.58772537_wp, 2.68096221_wp,&
2.23355957_wp, 2.33135502_wp, 2.15870365_wp, 2.10522128_wp, 2.16376162_wp,&
2.10804037_wp, 1.96460045_wp, 2.00476257_wp, 2.22628712_wp, 2.43846700_wp,&
2.39408483_wp, 2.24245792_wp, 2.05751204_wp, 2.15427677_wp, 2.27191920_wp,&
2.19722638_wp, 3.80910350_wp, 3.26020971_wp, 2.99716916_wp, 2.71707818_wp,&
2.34950167_wp, 2.11644818_wp, 2.47180659_wp, 2.32198800_wp, 2.32809515_wp,&
2.15244869_wp, 2.55958313_wp, 2.59141300_wp, 2.62030465_wp, 2.39935278_wp,&
2.56912355_wp, 2.54374096_wp, 2.56914830_wp, 2.53680807_wp, 4.24537037_wp,&
3.66542289_wp, 3.19903011_wp, 2.80000000_wp, 2.80000000_wp, 2.80000000_wp,&
2.80000000_wp, 2.80000000_wp, 2.80000000_wp, 2.80000000_wp, 2.80000000_wp,&
2.80000000_wp, 2.80000000_wp, 2.80000000_wp, 2.80000000_wp, 2.80000000_wp,&
2.80000000_wp, 2.34880037_wp, 2.37597108_wp, 2.49067697_wp, 2.14100577_wp,&
2.33473532_wp, 2.19498900_wp, 2.12678348_wp, 2.34895048_wp, 2.33422774_wp,&
2.86560827_wp, 2.62488837_wp, 2.88376127_wp, 2.75174124_wp, 2.83054552_wp,&
2.63264944_wp&
/
data cnfak /&
0.17957827_wp, 0.25584045_wp,-0.02485871_wp, 0.00374217_wp, 0.05646607_wp,&
0.10514203_wp, 0.09753494_wp, 0.30470380_wp, 0.23261783_wp, 0.36752208_wp,&
0.00131819_wp,-0.00368122_wp,-0.01364510_wp, 0.04265789_wp, 0.07583916_wp,&
0.08973207_wp,-0.00589677_wp, 0.13689929_wp,-0.01861307_wp, 0.11061699_wp,&
0.10201137_wp, 0.05426229_wp, 0.06014681_wp, 0.05667719_wp, 0.02992924_wp,&
0.03764312_wp, 0.06140790_wp, 0.08563465_wp, 0.03707679_wp, 0.03053526_wp,&
-0.00843454_wp, 0.01887497_wp, 0.06876354_wp, 0.01370795_wp,-0.01129196_wp,&
0.07226529_wp, 0.01005367_wp, 0.01541506_wp, 0.05301365_wp, 0.07066571_wp,&
0.07637611_wp, 0.07873977_wp, 0.02997732_wp, 0.04745400_wp, 0.04582912_wp,&
0.10557321_wp, 0.02167468_wp, 0.05463616_wp, 0.05370913_wp, 0.05985441_wp,&
0.02793994_wp, 0.02922983_wp, 0.02220438_wp, 0.03340460_wp,-0.04110969_wp,&
-0.01987240_wp, 0.07260201_wp, 0.07700000_wp, 0.07700000_wp, 0.07700000_wp,&
0.07700000_wp, 0.07700000_wp, 0.07700000_wp, 0.07700000_wp, 0.07700000_wp,&
0.07700000_wp, 0.07700000_wp, 0.07700000_wp, 0.07700000_wp, 0.07700000_wp,&
0.07700000_wp, 0.08379100_wp, 0.07314553_wp, 0.05318438_wp, 0.06799334_wp,&
0.04671159_wp, 0.06758819_wp, 0.09488437_wp, 0.07556405_wp, 0.13384502_wp,&
0.03203572_wp, 0.04235009_wp, 0.03153769_wp,-0.00152488_wp, 0.02714675_wp,&
0.04800662_wp&
/
data en /&
2.30085633, 2.78445145, 1.52956084, 1.51714704, 2.20568300,&
2.49640820, 2.81007174, 4.51078438, 4.67476223, 3.29383610,&
2.84505365, 2.20047950, 2.31739628, 2.03636974, 1.97558064,&
2.13446570, 2.91638164, 1.54098156, 2.91656301, 2.26312147,&
2.25621439, 1.32628677, 2.27050569, 1.86790977, 2.44759456,&
2.49480042, 2.91545568, 3.25897750, 2.68723778, 1.86132251,&
2.01200832, 1.97030722, 1.95495427, 2.68920990, 2.84503857,&
2.61591858, 2.64188286, 2.28442252, 1.33011187, 1.19809388,&
1.89181390, 2.40186898, 1.89282464, 3.09963488, 2.50677823,&
2.61196704, 2.09943450, 2.66930105, 1.78349472, 2.09634533,&
2.00028974, 1.99869908, 2.59072029, 2.54497829, 2.52387890,&
2.30204667, 1.60119300, 2.00000000, 2.00000000, 2.00000000,& ! 60
2.00000000, 2.00000000, 2.00000000, 2.00000000, 2.00000000,&
2.00000000, 2.00000000, 2.00000000, 2.00000000, 2.00000000,& ! 70
2.00000000, 2.30089349, 1.75039077, 1.51785130, 2.62972945,&
2.75372921, 2.62540906, 2.55860939, 3.32492356, 2.65140898,& ! 80
1.52014458, 2.54984804, 1.72021963, 2.69303422, 1.81031095,&
2.34224386,&
2.52387890,&
2.30204667, 1.60119300, 2.00000000, 2.00000000, 2.00000000,& ! 92
2.00000000, 2.00000000, 2.00000000, 2.00000000, 2.00000000,&
2.00000000, 2.00000000, 2.00000000, 2.00000000, 2.00000000,& ! 102
2.00000000&
/
data r0 /&
0.55682207, 0.80966997, 2.49092101, 1.91705642, 1.35974851,&
0.98310699, 0.98423007, 0.76716063, 1.06139799, 1.17736822,& ! 10
2.85570926, 2.56149012, 2.31673425, 2.03181740, 1.82568535,&
1.73685958, 1.97498207, 2.00136196, 3.58772537, 2.68096221,& ! 20
2.23355957, 2.33135502, 2.15870365, 2.10522128, 2.16376162,&
2.10804037, 1.96460045, 2.00476257, 2.22628712, 2.43846700,& ! 30
2.39408483, 2.24245792, 2.05751204, 2.15427677, 2.27191920,&
2.19722638, 3.80910350, 3.26020971, 2.99716916, 2.71707818,& ! 40
2.34950167, 2.11644818, 2.47180659, 2.32198800, 2.32809515,&
2.15244869, 2.55958313, 2.59141300, 2.62030465, 2.39935278,& ! 50
2.56912355, 2.54374096, 2.56914830, 2.53680807, 4.24537037,&
3.66542289, 3.22480000, 3.21280000, 3.10550000, 3.10200000,& ! 60
3.10840000, 3.14030000, 3.06390000, 3.10730000, 3.10000000,&
3.11910000, 3.10760000, 3.13740000, 3.09740000, 2.92860000,&
3.05880000, 2.34880037, 2.37597108, 2.49067697, 2.14100577,&
2.33473532, 2.19498900, 2.12678348, 2.34895048, 2.33422774,&
2.86560827, 2.62488837, 2.88376127, 2.75174124, 2.83054552,&
2.63264944,&
4.24537037,&
3.66542289, 4.20000000, 4.20000000, 4.20000000, 4.20000000,& ! 92
4.20000000, 4.20000000, 4.20000000, 4.20000000, 4.20000000,&
4.20000000, 4.20000000, 4.20000000, 4.20000000, 4.20000000,& ! 102
4.20000000&
/
data cnfak /&
0.17957827, 0.25584045,-0.02485871, 0.00374217, 0.05646607,&
0.10514203, 0.09753494, 0.30470380, 0.23261783, 0.36752208,&
0.00131819,-0.00368122,-0.01364510, 0.04265789, 0.07583916,&
0.08973207,-0.00589677, 0.13689929,-0.01861307, 0.11061699,&
0.10201137, 0.05426229, 0.06014681, 0.05667719, 0.02992924,&
0.03764312, 0.06140790, 0.08563465, 0.03707679, 0.03053526,&
-0.00843454, 0.01887497, 0.06876354, 0.01370795,-0.01129196,&
0.07226529, 0.01005367, 0.01541506, 0.05301365, 0.07066571,&
0.07637611, 0.07873977, 0.02997732, 0.04745400, 0.04582912,&
0.10557321, 0.02167468, 0.05463616, 0.05370913, 0.05985441,& ! 60
0.02793994, 0.02922983, 0.02220438, 0.03340460,-0.04110969,&
-0.01987240, 0.07260201, 0.07700000, 0.07700000, 0.07700000,& ! 70
0.07700000, 0.07700000, 0.07700000, 0.07700000, 0.07700000,&
0.07700000, 0.07700000, 0.07700000, 0.07700000, 0.07700000,& ! 80
0.07700000, 0.08379100, 0.07314553, 0.05318438, 0.06799334,&
0.04671159, 0.06758819, 0.09488437, 0.07556405, 0.13384502,& ! 90
0.03203572, 0.04235009, 0.03153769,-0.00152488, 0.02714675,&
0.04800662,&
0.04582912,&
0.10557321, 0.02167468, 0.05463616, 0.05370913, 0.05985441,& ! 92
0.02793994, 0.02922983, 0.02220438, 0.03340460,-0.04110969,&
-0.01987240, 0.07260201, 0.07700000, 0.07700000, 0.07700000,& ! 102
0.07700000&
/
! END PARAMETER-----------------------------------------------------

! global EN polynomial parameter (NOTE: x 10^3)
Expand Down
2 changes: 1 addition & 1 deletion src/geoopt_driver.f90
Original file line number Diff line number Diff line change
Expand Up @@ -162,7 +162,7 @@ subroutine geometry_optimization &
! create new Limited-memory BFGS optimizer
call new_lbfgs_optimizer(lbfgs_opt, env, opt_input, filter)
! run optimization
call relax_pbc(lbfgs_opt, env, mol, wfn, calc, filter, printlevel)
call relax_pbc(lbfgs_opt, env, mol, wfn, calc, filter, printlevel, fail)
case(p_engine_inertial)
call fire & ! FIRE !
&(env,ilog,mol,wfn,calc, &
Expand Down
1 change: 1 addition & 0 deletions src/gfnff/gdisp0.f90
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,7 @@ subroutine weight_references_d4(dispm, nat, atoms, wf, cn, gwvec, gwdcn)
norm = norm + gw
dnorm = dnorm + 2*wf*(dispm%cn(iref, ati) - cn(iat)) * gw
end do
if (norm.eq.0.0_wp) cycle
marcelmbn marked this conversation as resolved.
Show resolved Hide resolved
norm = 1.0_wp / norm
do iref = 1, dispm%nref(ati)
expw = weight_cn(wf, cn(iat), dispm%cn(iref, ati))
Expand Down
Loading