|
| static TorqueResult | compute_torque (const occ::dma::Mult &mult1, const Vec3 &pos1, const Vec3 &euler1, const occ::dma::Mult &mult2, const Vec3 &pos2, const Vec3 &euler2, int which_molecule=1) |
| | Compute forces and torques on a molecule from multipole interaction.
|
| |
| static TorqueResult | compute_torque_analytical (const occ::dma::Mult &mult1_body, const Vec3 &pos1, const Vec3 &euler1, const occ::dma::Mult &mult2_body, const Vec3 &pos2, const Vec3 &euler2, int which_molecule=1) |
| | Compute forces and torques using analytical derivatives.
|
| |
| static TorqueResult | compute_torque_finite_diff (const occ::dma::Mult &mult1_body, const Vec3 &pos1, const Vec3 &euler1, const occ::dma::Mult &mult2_body, const Vec3 &pos2, const Vec3 &euler2, int which_molecule=1, double delta=1e-6) |
| | Compute torque using finite differences (for validation)
|
| |
| static Vec3 | euler_to_body_torque (const Vec3 &torque_euler, const Vec3 &euler) |
| | Convert Euler angle derivatives to body-frame torque.
|
| |
| static Vec3 | euler_to_space_torque (const Vec3 &torque_euler, const Vec3 &euler) |
| | Convert Euler angle derivatives to space-frame torque.
|
| |
Calculate forces and torques on rigid bodies from multipole interactions.
This class provides methods to compute forces and torques acting on molecules due to multipole-multipole interactions. It supports both finite-difference and analytical approaches (when available).
| static Vec3 occ::mults::TorqueCalculation::euler_to_body_torque |
( |
const Vec3 & |
torque_euler, |
|
|
const Vec3 & |
euler |
|
) |
| |
|
static |
Convert Euler angle derivatives to body-frame torque.
Given torques with respect to Euler angles (dE/dalpha, dE/dbeta, dE/dgamma), convert to torque in the body-fixed frame using the Euler Jacobian transpose.
Relationship: tau_body = J^T * tau_euler
- Parameters
-
| torque_euler | Torque w.r.t. Euler angles |
| euler | Euler angles [alpha, beta, gamma] |
- Returns
- Torque in body-fixed frame