occ
|
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. | |
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.
occ::opt::BernyOptimizer::BernyOptimizer | ( | const core::Molecule & | mol, |
const ConvergenceCriteria & | criteria = ConvergenceCriteria{} |
||
) |
Construct a new Berny Optimizer.
mol | Initial molecular geometry |
criteria | Convergence criteria (uses default values if not specified) |
|
inline |
Get current energy.
|
inline |
Get current optimization step number.
|
inline |
Get current trust radius.
core::Molecule occ::opt::BernyOptimizer::get_next_geometry | ( | ) | const |
Get the next geometry to evaluate.
|
inline |
Check if optimization has converged.
bool occ::opt::BernyOptimizer::step | ( | ) |
Perform one optimization step.
void occ::opt::BernyOptimizer::update | ( | double | energy, |
const Mat3N & | gradient | ||
) |
Update optimizer with energy and gradient from calculation.
energy | Total energy at current geometry |
gradient | Cartesian gradient matrix (3 x N_atoms) |