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: Any

    the directory hippynn saved the experiment to

  • energy_key: Any

    the graph node holding the energy (default 'energies')

  • gradient_key: Any

    the graph node holding its gradient (default 'Grad'; None to use autograd)

  • dipole_key: Any

    the 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): 

Feedback

Examples

Templates

Documentation