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

Result from crystal energy evaluation with Hessian. More...

#include <crystal_energy.h>

Inheritance diagram for occ::mults::CrystalEnergyResultWithHessian:
[legend]
Collaboration diagram for occ::mults::CrystalEnergyResultWithHessian:
[legend]

Public Member Functions

Mat pack_hessian (bool fix_first_translation, bool fix_first_rotation) const
 Pack Hessian with only the optimizable DOF (excluding fixed molecule translations/rotations)
 
- Public Member Functions inherited from occ::mults::CrystalEnergyResult
Vec pack_gradient () const
 Pack into single gradient vector (6 components per molecule).
 

Public Attributes

Mat hessian
 Full Hessian matrix (6N x 6N for N molecules) Layout: [x1, y1, z1, θx1, θy1, θz1, x2, ...].
 
bool exact_for_model = false
 True only when the Hessian matches the full current energy model.
 
bool includes_ewald_terms = false
 True when Ewald second-derivative terms are included.
 
Mat6 strain_hessian = Mat6::Zero()
 Clamped affine cell-strain Hessian d^2E/dE_i dE_j (Voigt, kJ/mol per unit cell).
 
Mat strain_state_hessian
 Strain-state coupling d^2E/dE_i dq_j (6 x 6N, kJ/mol).
 
- Public Attributes inherited from occ::mults::CrystalEnergyResult
double total_energy = 0.0
 Total energy (kJ/mol)
 
double electrostatic_energy = 0.0
 Electrostatic component.
 
double repulsion_dispersion = 0.0
 Short-range component.
 
std::vector< Vec3forces
 Force on each molecule (kJ/mol/Ang)
 
std::vector< Vec3torques
 Lab-frame rotational gradient dE/dψ on each molecule.
 
Vec6 strain_gradient = Vec6::Zero()
 Affine cell-strain gradient dE/dE_i (Voigt E1..E6, kJ/mol per unit cell).
 
std::vector< double > molecule_energies
 Per-molecule energies for analysis.
 

Detailed Description

Result from crystal energy evaluation with Hessian.

Member Function Documentation

◆ pack_hessian()

Mat occ::mults::CrystalEnergyResultWithHessian::pack_hessian ( bool  fix_first_translation,
bool  fix_first_rotation 
) const

Pack Hessian with only the optimizable DOF (excluding fixed molecule translations/rotations)

Member Data Documentation

◆ exact_for_model

bool occ::mults::CrystalEnergyResultWithHessian::exact_for_model = false

True only when the Hessian matches the full current energy model.

◆ hessian

Mat occ::mults::CrystalEnergyResultWithHessian::hessian

Full Hessian matrix (6N x 6N for N molecules) Layout: [x1, y1, z1, θx1, θy1, θz1, x2, ...].

◆ includes_ewald_terms

bool occ::mults::CrystalEnergyResultWithHessian::includes_ewald_terms = false

True when Ewald second-derivative terms are included.

◆ strain_hessian

Mat6 occ::mults::CrystalEnergyResultWithHessian::strain_hessian = Mat6::Zero()

Clamped affine cell-strain Hessian d^2E/dE_i dE_j (Voigt, kJ/mol per unit cell).

◆ strain_state_hessian

Mat occ::mults::CrystalEnergyResultWithHessian::strain_state_hessian

Strain-state coupling d^2E/dE_i dq_j (6 x 6N, kJ/mol).

q layout matches hessian: [x1,y1,z1,θx1,θy1,θz1,...].


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