# # pph3 with amber-like Ph groups # check of gradients by finite difference # z_create zmatrix=z { zmatrix x x 1 1.0 p 1 rhp 2 90.0 c 3 pc1 1 cpr 2 tcr1 c 4 cc 3 ccp1 1 ttw1 c 5 cc 4 a120 3 tfl1 c 6 cc 5 a120 4 t0 c 7 cc 6 a120 5 t0 c 8 cc 7 a120 6 t0 h 5 ch 4 a120 3 t0 h 6 ch 5 a120 4 t180 h 7 ch 6 a120 5 t180 h 8 ch 7 a120 6 t180 h 9 ch 8 a120 7 t180 c 3 pc2 1 cpr 2 tcr2 c 15 cc 3 ccp2 1 ttw2 c 16 cc 15 a120 3 tfl2 c 17 cc 16 a120 15 t0 c 18 cc 17 a120 16 t0 c 19 cc 18 a120 17 t0 h 16 ch 15 a120 3 t0 h 17 ch 16 a120 15 t180 h 18 ch 17 a120 16 t180 h 19 ch 18 a120 17 t180 h 20 ch 19 a120 18 t180 c 3 pc3 1 cpr 2 tcr3 c 26 cc 3 ccp3 1 ttw3 c 27 cc 26 a120 3 tfl3 c 28 cc 27 a120 26 t0 c 29 cc 28 a120 27 t0 c 30 cc 29 a120 28 t0 h 27 ch 26 a120 3 t0 h 28 ch 27 a120 26 t180 h 29 ch 28 a120 27 t180 h 30 ch 29 a120 28 t180 h 31 ch 30 a120 29 t180 variables ttw1 135.0 ttw2 135.0 ttw3 135.0 cpr 120.0 tcr1 50.0 tcr2 170.0 tcr3 -80.0 pc1 3.468153 pc2 3.488024 pc3 3.471978 ccp1 120.152760 ccp2 123.554531 ccp3 122.667971 tfl1 180.506127 tfl2 186.478771 tfl3 -183.059865 ch 2.001174 cc 2.596695 constants rhp 4.451659 a120 120.0 t0 0.0 t180 180.0 end } # read_input ff { query ci "ipso c" supergroup c target c atom p connect 1 2 endquery declare hdum bond p c 1000 1.6 bond c c 1000 1.3 bond c h 1000 1.0 angle c c c 100 120 angle c c h 100 120 angle c c p 100 120 angle c p c 100 120 vdw h h 2500 1000000 vdw c c 2500 1000000 vdw h c 2500 1000000 htor c c c c 100 0.0 i-j-k-l htor p c c c 100 180.0 i-j-k-l htor hdum c c c 100 180.0 i-j-k-l charge p 0.3 charge ci -0.1 charge h 0.15 charge c -0.15 } # ztoc zmatrix=z coords=c # mm.init mm_defs=ff coords=c #exit # set res [ no_gradcheck function=copt : { theory= dl_poly : {mm_defs=ff debug_memory=yes debug_times=no } coords=c } del=0.001 ] # catch {memory active memory.txt } times # -------- Check result ---------- set count 0 foreach value $res { if { abs ($value) > 1.0e-4 } {incr count } } if { $count != 0 } { chemerr "Failed ... $count gradients wrong" } else { return "OK" }