sgdml.intf package¶
sgdml.intf.ase_calc module¶
-
class
sgdml.intf.ase_calc.
SGDMLCalculator
(model_path, E_to_eV=0.04336410390059322, F_to_eV_Ang=0.04336410390059322, use_torch=False, *args, **kwargs)[source]¶ Bases:
ase.calculators.calculator.Calculator
-
calculate
(atoms=None, *args, **kwargs)[source]¶ Do the calculation.
- properties: list of str
List of what needs to be calculated. Can be any combination of ‘energy’, ‘forces’, ‘stress’, ‘dipole’, ‘charges’, ‘magmom’ and ‘magmoms’.
- system_changes: list of str
List of what has changed since last calculation. Can be any combination of these six: ‘positions’, ‘numbers’, ‘cell’, ‘pbc’, ‘initial_charges’ and ‘initial_magmoms’.
Subclasses need to implement this, but can ignore properties and system_changes if they want. Calculated properties should be inserted into results dictionary like shown in this dummy example:
self.results = {'energy': 0.0, 'forces': np.zeros((len(atoms), 3)), 'stress': np.zeros(6), 'dipole': np.zeros(3), 'charges': np.zeros(len(atoms)), 'magmom': 0.0, 'magmoms': np.zeros(len(atoms))}
The subclass implementation should first call this implementation to set the atoms attribute and create any missing directories.
-
implemented_properties
: List[str] = ['energy', 'forces']¶
-