Function DP_DeepSpinModelDeviCompute3

Function DP_DeepSpinModelDeviCompute3#

Function Documentation#

void DP_DeepSpinModelDeviCompute3(DP_DeepSpinModelDevi *dp, const int nframes, const int natoms, const double *coord, const double *spin, const int *atype, const double *cell, const double *fparam, const double *aparam, const double *charge_spin, double *energy, double *force, double *force_mag, double *virial, double *atomic_energy, double *atomic_virial)#

Evaluate the energy, force, magnetic force and virial by using a DP spin model deviation. (double version, with charge_spin).

Version

3

Since

API version 29

Warning

The output arrays should be allocated before calling this function. Pass NULL if not required.

Parameters:
  • dp – [in] The DP model deviation to use.

  • nframes – [in] The number of frames. Only support 1 for now.

  • natoms – [in] The number of atoms.

  • coord – [in] The coordinates of atoms. The array should be of size natoms x 3.

  • spin – [in] The spins of atoms, [0, 0, 0] if no spin. The array should be of size nframes x natoms x 3.

  • atype – [in] The atom types. The array should contain natoms ints.

  • cell – [in] The cell of the region. The array should be of size 9. Pass NULL if pbc is not used.

  • fparam – [in] The frame parameters. The array can be of size nframes x dim_fparam.

  • aparam – [in] The atom parameters. The array can be of size nframes x natoms x dim_aparam.

  • charge_spin – [in] The per-frame charge/spin input. The array can be of size nframes x dim_chg_spin. Pass NULL to use the model’s stored default_chg_spin.

  • energy – [out] Output energies of all models. The array should be of size nmodels.

  • force – [out] Output forces of all models. The array should be of size nmodels x natoms x 3.

  • force_mag – [out] Output magnetic forces of all models. The array should be of size nmodels x natoms x 3.

  • virial – [out] Output virials of all models. The array should be of size nmodels x 9.

  • atomic_energy – [out] Output atomic energies of all models. The array should be of size nmodels x natoms.

  • atomic_virial – [out] Output atomic virials of all models. The array should be of size nmodels x natoms x 9.