Hi, All,
I am trying to generate DMol3 forces in a script, but have problems that I hope the community can help with. This is not straight-forward since there's no 'gradient' task, so I set up a geometry optimization and tell it to do 1 iteration. Then i run Dmol3 and look for any errors like this:
\$dmol3->ChangeSettings([ Quality => "Medium",
PopulationAnalysis => "Yes",
UseSymmetry => "No",
EnergyConvergence => "1.0",
ForceConvergence => "1.0",
DisplacementConvergence => "1.0",
Iterations => "1",
]);
eval {\$output = \$dmol3->GeometryOptimization->Run(\$tempdoc);};
if (\$@) {
# Something bad has happened,
# Report error and move on to the next one
print \$@;
# do something here to process \$output...
} else {
#DMol3 completed ok.
# iterate over all atoms and grab the forces
...
}
DMol3 stops with an error that geometry optimization did not converge (as expected). On Windows, this does not generate an error. The script processes through the non-error branch. On Linux - where i really want to run - this generates an error. It goes into the error handling part of the script, but i cannot process any outputs. if I try to processes the object \$output I get an error that this is a null object. If I try explicitly to open the outmol file I get an error about a null file. That's particularly puzzling since i can look on the server and see the outmol file.
Do you have suggestions about how to compute gradients with a script or how to process outmol files after an error on linuix?
thanks,
george