|
occ
|
A rigid molecule with multipole sites and atom geometry. More...
#include <rigid_molecule.h>
Classes | |
| struct | Atom |
| An atom in the molecule (for geometry and short-range interactions). More... | |
| struct | Site |
| A multipole expansion site in the body frame. More... | |
Public Member Functions | |
| Mat3 | rotation_matrix () const |
| Full O(3) rotation matrix (det = parity). | |
| Mat3 | proper_rotation_matrix () const |
| Proper SO(3) rotation matrix (det = +1). | |
Static Public Member Functions | |
| static void | set_from_rotation (RigidMolecule &mol, const Vec3 &pos, const Mat3 &R) |
| Create from a full O(3) rotation matrix (extracts parity + angle-axis). | |
Public Attributes | |
| std::vector< Site > | sites |
| multipole sites (may include non-atom sites) | |
| std::vector< Atom > | atoms |
| real atoms (for Buckingham, neighbor detection) | |
| Vec3 | com = Vec3::Zero() |
| Cartesian COM position (Angstrom) | |
| Vec3 | angle_axis = Vec3::Zero() |
| proper rotation part (radians, angle-axis) | |
| int | parity = 1 |
| +1 proper, -1 improper | |
A rigid molecule with multipole sites and atom geometry.
This is the single source of truth for a molecule's body-frame data and its placement in the crystal. Sites (multipole expansion points) and atoms (for short-range interactions) are separate lists because DMA can place multipoles on non-atom points (bond midpoints, lone pairs).
| Mat3 occ::mults::RigidMolecule::proper_rotation_matrix | ( | ) | const |
Proper SO(3) rotation matrix (det = +1).
| Mat3 occ::mults::RigidMolecule::rotation_matrix | ( | ) | const |
Full O(3) rotation matrix (det = parity).
|
static |
Create from a full O(3) rotation matrix (extracts parity + angle-axis).
| Vec3 occ::mults::RigidMolecule::angle_axis = Vec3::Zero() |
proper rotation part (radians, angle-axis)
| std::vector<Atom> occ::mults::RigidMolecule::atoms |
real atoms (for Buckingham, neighbor detection)
| Vec3 occ::mults::RigidMolecule::com = Vec3::Zero() |
Cartesian COM position (Angstrom)
| int occ::mults::RigidMolecule::parity = 1 |
+1 proper, -1 improper
| std::vector<Site> occ::mults::RigidMolecule::sites |
multipole sites (may include non-atom sites)