HIPNNBackend
A hippynn model loaded from a training directory, with energies (energy_key, gradients
from gradient_key, higher derivatives by autograd) and dipoles (dipole_key).
distance_units: str
property_units: dict
analytic_derivative_orders: dict
property_shapes: dict
energy_key: str
gradient_key: str
dipole_key: str
dipole_gradient_key: str
__init__(self, atoms, model_dir, energy_key=<McUtils.Devutils.core.DefaultType instance>, gradient_key=<McUtils.Devutils.core.DefaultType instance>, dipole_key=<McUtils.Devutils.core.DefaultType instance>, charge=None, multiplicity=None, device=None, quiet=True):
model_dir:Anythe directory
hippynnsaved the experiment toenergy_key:Anythe graph node holding the energy (default
'energies')gradient_key:Anythe graph node holding its gradient (default
'Grad';Noneto use autograd)dipole_key:Anythe graph node holding the dipole (default
'dipole')
@classmethod
handle_specialization(cls, tag):
@classmethod
setup_model(cls, model_dir, *, device=None, **opts):
print_model_properties(self):
enable_charge_equilibration_outputs(self):
Rebuild the predictor so it also exposes the charge-equilibration (ChEQ) Coulomb energy
and its inputs, for fluctuating-charge responses.
@staticmethod
autodiff(expr, coord_list, pad_dim, create_graph=False, retain_graph=False):
process_derivatives(self, expr, coords, order):
process_results(self, base_shape, coords, outputs, order, property_key=None, gradient_key=None, property_shape=(), output_shape=None, **etc):
prep_eval(self, coords, order, property_key=<McUtils.Devutils.core.DefaultType instance>, gradient_key=<McUtils.Devutils.core.DefaultType instance>, **opts):
Run the predictor on coords ((..., natoms, 3), Angstrom), adding property_key and
gradient_key to its outputs if needed.
:returns:_(base_shape, torch_coords, outputs)
evaluate_energy(self, coords, order, **opts):
evaluate_dipole(self, coords, order, **opts):
evaluate_field_response(self, coords, coord_order=0, field_order=2, charge=None, multiplicity=None, **opts):
evaluate_properties(self, coords, orders, charge, multiplicity, **opts):