1 if { [ catch {exec which mndo } ] } then {
2 set msg "Unsupported test: Requires full MNDO (not core version)"
3 puts stdout $msg
4 return $msg
5 }
7 global sys_name_id
8 set sys_name_id gly
9 set extfold data_bp
11 set top ${extfold}/top_all.rtf
12 set prm ${extfold}/par_all.prm
14 source ${extfold}/save_${sys_name_id}.chm
15 set rad [ pb_types2vdwradii atom_types= $types ]
17 set qm_theory mndo
18 set qm_ham am1
19 set qm_ch 0
20 set qm_mult 1
22 source ${extfold}/qmatoms
23 source ${extfold}/outer_mm
24 source ${extfold}/inner_mm
26 exec cp ${extfold}/M_rf .
28 ############################################################################
30 eandg coords= ${sys_name_id}.c \
31 energy= gsbp1.ener \
32 gradient= gsbp1.grad \
33 theory=hybrid : [ list \
34 coupling= shift \
35 cutoff= 200 \
36 groups = $groups \
37 atom_charges= $charges \
38 qm_region= $qmatoms \
39 gsbp= yes : [ list \
40 restart= yes \
41 inner_region= $inner_mm_numbers \
42 outer_region= $outer_mm_numbers \
43 centre= [ list 1.28123467786000e+00 -2.09759659649645e-01 3.62827519393981e+00 ] \
44 inner_radius= [ expr 9.0 / 0.5292 ] \
45 vdw_radii= $rad \
46 grid_size= 5.0 \
47 inner_grid_size= 2.0 \
48 nr_multipoles= 10 \
49 cir_factor= 2.5 \
50 bc= dhli \
51 spline_order= 3 \
52 eps_mol= 1.0 \
53 eps_solv= 80.0 ] \
54 qm_theory= $qm_theory : [ list \
55 hamiltonian= $qm_ham \
56 accuracy= high \
57 charge= $qm_ch \
58 scftype=rhf \
59 maxcyc=900 \
60 mult= $qm_mult \
61 ] \
62 mm_theory= dl_poly : [ list \
63 list_option=none \
64 use_pairlist=no \
65 scale14 = { 1.0 1.0 } \
66 atom_types= $types \
67 use_charmm_psf=yes \
68 charmm_psf_file= ${extfold}/${sys_name_id}.psf \
69 charmm_parameter_file= $prm \
70 charmm_mass_file= $top ] ]
72 set final_energy [ get_matrix_element matrix=gsbp1.ener indices= {0 0 } ]
74 # e(mndo99)
75 set e_ref -2.66850732791086e-01
77 # Test energy result
78 if { abs( $final_energy - $e_ref) > 1.0e-7 } {
79 chemerr "Failed .. E= $final_energy, should be $e_ref"
80 }
82 # Test gradiennt result
83 subtract_matrix left= gsbp1.grad right= ${extfold}/gsbp1.g.ref result= diff
84 set max [ get_absmax_matrix_value matrix= diff ]
85 if { $max > 1.0e-7 } {
86 chemerr "Failed .. Maximum absolute deviation of gradient components is $max, should be < 1.0e-7."
87 } else {
88 return OK
89 }
91 exec rm M_rf
93 times
94 exit

