occ
Loading...
Searching...
No Matches
occ::core::MolecularAxisCalculator Class Reference

Molecular axis calculator class. More...

#include <molecular_axis.h>

Public Member Functions

 MolecularAxisCalculator (const occ::qm::Wavefunction &wfn)
 Construct a molecular axis calculator.
 
MolecularAxisResult calculate_neighcrys_axes (const std::vector< int > &axis_atoms) const
 Calculate molecular axes using neighcrys method.
 
MolecularAxisResult calculate_pca_axes () const
 Calculate molecular axes using PCA method.
 
MolecularAxisResult calculate_moi_axes () const
 Calculate molecular axes using moment of inertia method.
 
MolecularAxisResult calculate_axes (AxisMethod method, const std::vector< int > &axis_atoms={}) const
 Calculate molecular axes using specified method.
 
Vec3 center_of_mass () const
 Get center of mass of the molecule.
 
std::vector< std::string > generate_neighcrys_labels () const
 Generate neighcrys-compatible atom labels.
 
int calculate_bond_separation (int atom_i, int atom_j) const
 Calculate bond path separation between two atoms.
 
NeighcrysAxisInfo generate_neighcrys_info (const std::vector< int > &axis_atoms) const
 Generate neighcrys axis information.
 

Static Public Member Functions

static void apply_molecular_transformation (occ::qm::Wavefunction &wfn, const MolecularAxisResult &result)
 Apply molecular transformation to wavefunction.
 
static void write_neighcrys_axis_file (const std::string &filename, const NeighcrysAxisInfo &axis_info)
 Write neighcrys-compatible axis file.
 
static void write_oriented_xyz (const std::string &filename, const occ::qm::Wavefunction &wfn, const std::string &title="Oriented molecule from OCC")
 Write oriented molecule in XYZ format.
 
static std::string axis_method_to_string (AxisMethod method)
 Convert AxisMethod enum to string.
 
static AxisMethod string_to_axis_method (const std::string &method_str)
 Convert string to AxisMethod enum.
 

Detailed Description

Molecular axis calculator class.

Constructor & Destructor Documentation

◆ MolecularAxisCalculator()

occ::core::MolecularAxisCalculator::MolecularAxisCalculator ( const occ::qm::Wavefunction wfn)
explicit

Construct a molecular axis calculator.

Parameters
wfnThe wavefunction to analyze

Member Function Documentation

◆ apply_molecular_transformation()

static void occ::core::MolecularAxisCalculator::apply_molecular_transformation ( occ::qm::Wavefunction wfn,
const MolecularAxisResult result 
)
static

Apply molecular transformation to wavefunction.

Parameters
wfnWavefunction to transform (modified in place)
resultAxis calculation result containing transformation

◆ axis_method_to_string()

static std::string occ::core::MolecularAxisCalculator::axis_method_to_string ( AxisMethod  method)
static

Convert AxisMethod enum to string.

Parameters
methodThe axis method
Returns
String representation

◆ calculate_axes()

MolecularAxisResult occ::core::MolecularAxisCalculator::calculate_axes ( AxisMethod  method,
const std::vector< int > &  axis_atoms = {} 
) const

Calculate molecular axes using specified method.

Parameters
methodThe axis calculation method to use
axis_atomsAtom indices for neighcrys method (ignored for other methods)
Returns
MolecularAxisResult containing axes and metadata

◆ calculate_bond_separation()

int occ::core::MolecularAxisCalculator::calculate_bond_separation ( int  atom_i,
int  atom_j 
) const

Calculate bond path separation between two atoms.

Parameters
atom_iFirst atom index
atom_jSecond atom index
Returns
Estimated bond path separation

◆ calculate_moi_axes()

MolecularAxisResult occ::core::MolecularAxisCalculator::calculate_moi_axes ( ) const

Calculate molecular axes using moment of inertia method.

Returns
MolecularAxisResult containing axes and metadata

◆ calculate_neighcrys_axes()

MolecularAxisResult occ::core::MolecularAxisCalculator::calculate_neighcrys_axes ( const std::vector< int > &  axis_atoms) const

Calculate molecular axes using neighcrys method.

Parameters
axis_atomsVector of 3 atom indices (0-based) defining the axis system
Returns
MolecularAxisResult containing axes and metadata

◆ calculate_pca_axes()

MolecularAxisResult occ::core::MolecularAxisCalculator::calculate_pca_axes ( ) const

Calculate molecular axes using PCA method.

Returns
MolecularAxisResult containing axes and metadata

◆ center_of_mass()

Vec3 occ::core::MolecularAxisCalculator::center_of_mass ( ) const

Get center of mass of the molecule.

Returns
Center of mass position vector

◆ generate_neighcrys_info()

NeighcrysAxisInfo occ::core::MolecularAxisCalculator::generate_neighcrys_info ( const std::vector< int > &  axis_atoms) const

Generate neighcrys axis information.

Parameters
axis_atomsAtoms defining the axis system
Returns
NeighcrysAxisInfo structure

◆ generate_neighcrys_labels()

std::vector< std::string > occ::core::MolecularAxisCalculator::generate_neighcrys_labels ( ) const

Generate neighcrys-compatible atom labels.

Returns
Vector of neighcrys-style atom labels

◆ string_to_axis_method()

static AxisMethod occ::core::MolecularAxisCalculator::string_to_axis_method ( const std::string &  method_str)
static

Convert string to AxisMethod enum.

Parameters
method_strString representation
Returns
AxisMethod enum value

◆ write_neighcrys_axis_file()

static void occ::core::MolecularAxisCalculator::write_neighcrys_axis_file ( const std::string &  filename,
const NeighcrysAxisInfo axis_info 
)
static

Write neighcrys-compatible axis file.

Parameters
filenameOutput filename
axis_infoNeighcrys axis information

◆ write_oriented_xyz()

static void occ::core::MolecularAxisCalculator::write_oriented_xyz ( const std::string &  filename,
const occ::qm::Wavefunction wfn,
const std::string &  title = "Oriented molecule from OCC" 
)
static

Write oriented molecule in XYZ format.

Parameters
filenameOutput filename
wfnWavefunction (should be oriented)
titleOptional title for XYZ file

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