occ
Loading...
Searching...
No Matches
occ::opt::BernyOptimizer Struct Reference

Berny geometry optimizer implementing the Berny algorithm. More...

#include <berny_optimizer.h>

Public Member Functions

 BernyOptimizer (const core::Molecule &mol, const ConvergenceCriteria &criteria=ConvergenceCriteria{})
 Construct a new Berny Optimizer.
 
bool step ()
 Perform one optimization step.
 
core::Molecule get_next_geometry () const
 Get the next geometry to evaluate.
 
void update (double energy, const Mat3N &gradient)
 Update optimizer with energy and gradient from calculation.
 
bool is_converged () const
 Check if optimization has converged.
 
double current_energy () const
 Get current energy.
 
int current_step () const
 Get current optimization step number.
 
double current_trust_radius () const
 Get current trust radius.
 

Detailed Description

Berny geometry optimizer implementing the Berny algorithm.

This class provides a rational function optimization (RFO) method for molecular geometry optimization using internal coordinates, closely following the Berny reference implementation.

Constructor & Destructor Documentation

◆ BernyOptimizer()

occ::opt::BernyOptimizer::BernyOptimizer ( const core::Molecule mol,
const ConvergenceCriteria criteria = ConvergenceCriteria{} 
)

Construct a new Berny Optimizer.

Parameters
molInitial molecular geometry
criteriaConvergence criteria (uses default values if not specified)

Member Function Documentation

◆ current_energy()

double occ::opt::BernyOptimizer::current_energy ( ) const
inline

Get current energy.

Returns
Most recent energy value

◆ current_step()

int occ::opt::BernyOptimizer::current_step ( ) const
inline

Get current optimization step number.

Returns
Step number (0-indexed)

◆ current_trust_radius()

double occ::opt::BernyOptimizer::current_trust_radius ( ) const
inline

Get current trust radius.

Returns
Current trust radius value

◆ get_next_geometry()

core::Molecule occ::opt::BernyOptimizer::get_next_geometry ( ) const

Get the next geometry to evaluate.

Returns
Molecule with updated coordinates for energy/gradient calculation

◆ is_converged()

bool occ::opt::BernyOptimizer::is_converged ( ) const
inline

Check if optimization has converged.

Returns
true if convergence criteria are satisfied

◆ step()

bool occ::opt::BernyOptimizer::step ( )

Perform one optimization step.

Returns
true if optimization has converged

◆ update()

void occ::opt::BernyOptimizer::update ( double  energy,
const Mat3N gradient 
)

Update optimizer with energy and gradient from calculation.

Parameters
energyTotal energy at current geometry
gradientCartesian gradient matrix (3 x N_atoms)

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