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

Result of Hessian computation for a pair of rigid bodies. More...

#include <cartesian_hessian.h>

Public Member Functions

Mat pack_full_hessian () const
 Pack the Hessian into a 12x12 matrix (6 DOF per molecule) Order: [pos_A, rot_A, pos_B, rot_B].
 
Mat6 pack_position_hessian () const
 Pack only the position-position Hessian (6x6) Order: [pos_A, pos_B].
 

Public Attributes

double energy = 0.0
 
Vec3 force_A = Vec3::Zero()
 
Vec3 force_B = Vec3::Zero()
 
Vec3 grad_angle_axis_A = Vec3::Zero()
 
Vec3 grad_angle_axis_B = Vec3::Zero()
 
Mat3 H_posA_posA = Mat3::Zero()
 
Mat3 H_posA_posB = Mat3::Zero()
 
Mat3 H_posB_posB = Mat3::Zero()
 
Mat3 H_posA_rotA = Mat3::Zero()
 
Mat3 H_posA_rotB = Mat3::Zero()
 
Mat3 H_posB_rotA = Mat3::Zero()
 
Mat3 H_posB_rotB = Mat3::Zero()
 
Mat3 H_rotA_rotA = Mat3::Zero()
 
Mat3 H_rotA_rotB = Mat3::Zero()
 
Mat3 H_rotB_rotB = Mat3::Zero()
 

Detailed Description

Result of Hessian computation for a pair of rigid bodies.

The Hessian is organized in blocks:

  • Position-Position: 3x3 for each (molecule_i, molecule_j)
  • Position-Rotation: 3x3 for each (position_i, rotation_j)
  • Rotation-Position: 3x3 for each (rotation_i, position_j)
  • Rotation-Rotation: 3x3 for each (rotation_i, rotation_j)

Member Function Documentation

◆ pack_full_hessian()

Mat occ::mults::PairHessianResult::pack_full_hessian ( ) const

Pack the Hessian into a 12x12 matrix (6 DOF per molecule) Order: [pos_A, rot_A, pos_B, rot_B].

◆ pack_position_hessian()

Mat6 occ::mults::PairHessianResult::pack_position_hessian ( ) const

Pack only the position-position Hessian (6x6) Order: [pos_A, pos_B].

Member Data Documentation

◆ energy

double occ::mults::PairHessianResult::energy = 0.0

◆ force_A

Vec3 occ::mults::PairHessianResult::force_A = Vec3::Zero()

◆ force_B

Vec3 occ::mults::PairHessianResult::force_B = Vec3::Zero()

◆ grad_angle_axis_A

Vec3 occ::mults::PairHessianResult::grad_angle_axis_A = Vec3::Zero()

◆ grad_angle_axis_B

Vec3 occ::mults::PairHessianResult::grad_angle_axis_B = Vec3::Zero()

◆ H_posA_posA

Mat3 occ::mults::PairHessianResult::H_posA_posA = Mat3::Zero()

◆ H_posA_posB

Mat3 occ::mults::PairHessianResult::H_posA_posB = Mat3::Zero()

◆ H_posA_rotA

Mat3 occ::mults::PairHessianResult::H_posA_rotA = Mat3::Zero()

◆ H_posA_rotB

Mat3 occ::mults::PairHessianResult::H_posA_rotB = Mat3::Zero()

◆ H_posB_posB

Mat3 occ::mults::PairHessianResult::H_posB_posB = Mat3::Zero()

◆ H_posB_rotA

Mat3 occ::mults::PairHessianResult::H_posB_rotA = Mat3::Zero()

◆ H_posB_rotB

Mat3 occ::mults::PairHessianResult::H_posB_rotB = Mat3::Zero()

◆ H_rotA_rotA

Mat3 occ::mults::PairHessianResult::H_rotA_rotA = Mat3::Zero()

◆ H_rotA_rotB

Mat3 occ::mults::PairHessianResult::H_rotA_rotB = Mat3::Zero()

◆ H_rotB_rotB

Mat3 occ::mults::PairHessianResult::H_rotB_rotB = Mat3::Zero()

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