occ
Loading...
Searching...
No Matches
occ::mults::RigidMolecule Struct Reference

A rigid molecule with multipole sites and atom geometry. More...

#include <rigid_molecule.h>

Classes

struct  Site
 A multipole expansion site in the body frame. More...
struct  Atom
 An atom in the molecule (for geometry and short-range interactions). 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

Detailed Description

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).

Member Function Documentation

◆ proper_rotation_matrix()

Mat3 occ::mults::RigidMolecule::proper_rotation_matrix ( ) const

Proper SO(3) rotation matrix (det = +1).

◆ rotation_matrix()

Mat3 occ::mults::RigidMolecule::rotation_matrix ( ) const

Full O(3) rotation matrix (det = parity).

◆ set_from_rotation()

void occ::mults::RigidMolecule::set_from_rotation ( RigidMolecule & mol,
const Vec3 & pos,
const Mat3 & R )
static

Create from a full O(3) rotation matrix (extracts parity + angle-axis).

Member Data Documentation

◆ angle_axis

Vec3 occ::mults::RigidMolecule::angle_axis = Vec3::Zero()

proper rotation part (radians, angle-axis)

◆ atoms

std::vector<Atom> occ::mults::RigidMolecule::atoms

real atoms (for Buckingham, neighbor detection)

◆ com

Vec3 occ::mults::RigidMolecule::com = Vec3::Zero()

Cartesian COM position (Angstrom).

◆ parity

int occ::mults::RigidMolecule::parity = 1

+1 proper, -1 improper

◆ sites

std::vector<Site> occ::mults::RigidMolecule::sites

multipole sites (may include non-atom sites)


The documentation for this struct was generated from the following file: