jparkhill / TensorMol

Tensorflow + Molecules = TensorMol
http://blogs.nd.edu/parkhillgroup
GNU General Public License v3.0
271 stars 75 forks source link

Energy unit #31

Closed LiuTag closed 6 years ago

LiuTag commented 6 years ago

Why energy I obtain by Gaussian09 is very different from your NN's output etotal which is approximately equal to your result by Qchem?(use the same method and basis set wB97X-D/6-311g**)

jordangarside commented 6 years ago

I believe the heats of formation for the atoms are subtracted off and then the resulting energy is predicted.

TensorMol by default doesn't add those heats of formation back.

If you want to compare to another program, look at energy differences between geometries.

jeherr commented 6 years ago

Typically the output of TensorMol is the enthalpy of atomization. As @jordangarside said, the default is to subtract of heat of formation, but if the Mol object does not have this property (most often it doesn't with our datasets), then we calculate the enthalpy of atomization which is then the learning target for the neural network. See here for the function used to calculate the atomization energy in TensorMol.

You can compare relative energies since usually we only care about how much higher or lower in energy something is, but if you want absolute energies, in TensorMol/PhysicalData.py there is a python dictionary with keys and values corresponding to the atomic number and the potential energy of the bare atom. You simply add the value in the dictionary for every atom in your molecule and you should get back the absolute energy.