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  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< Sitesites
 multipole sites (may include non-atom sites)
 
std::vector< Atomatoms
 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()

static 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: