54 static constexpr int num = 3;
125 phi = 2. * std::numbers::pi -
phi;
192inline std::optional<double>
Vector implementation and trait types for boost qvm interoperability.
cudaStream_t stream[1]
CUDA streams for parallel computing on CPU and GPU.
bool calc_dihedral_angle(Utils::Vector3d const &a, Utils::Vector3d const &b, Utils::Vector3d const &c, Utils::Vector3d &aXb, double &l_aXb, Utils::Vector3d &bXc, double &l_bXc, double &cosphi, double &phi)
Calculates the dihedral angle between particle quadruple p1, p2, p3 and p4.
constexpr auto dihe_tiny_length_value
Tiny length cutoff.
constexpr auto dihe_tiny_sin_value
Tiny angle cutoff for sinus calculations.
__device__ void vector_product(float const *a, float const *b, float *out)
Parameters for four-body angular potential (dihedral-angle potentials).
std::optional< double > energy(Utils::Vector3d const &v12, Utils::Vector3d const &v23, Utils::Vector3d const &v34) const
Compute the four-body dihedral interaction energy.
std::optional< std::tuple< Utils::Vector3d, Utils::Vector3d, Utils::Vector3d, Utils::Vector3d > > forces(Utils::Vector3d const &v12, Utils::Vector3d const &v23, Utils::Vector3d const &v34) const
Compute the four-body dihedral interaction force.
DihedralBond(int mult, double bend, double phase)