occ
|
Classes | |
class | AngleCoordinate |
struct | BernyOptimizer |
Berny geometry optimizer implementing the Berny algorithm. More... | |
class | BondCoordinate |
struct | ConvergenceCriteria |
struct | ConvergenceInfo |
class | DihedralCoordinate |
class | InternalCoordinates |
struct | OptimizationState |
struct | OptPoint |
struct | SpeciesData |
Functions | |
Mat3N | transform_step_to_cartesian (const Vec &internal_step, const InternalCoordinates &coords, const Mat3N &positions, const Mat &B_inv) |
std::pair< Vec, Mat3N > | update_geometry (const Vec ¤t_q, const Vec &internal_step, const InternalCoordinates &coords, const Mat3N &positions, const Mat &B_inv) |
std::pair< double, double > | fit_cubic (double y0, double y1, double g0, double g1) |
Perform cubic polynomial fitting for linear search. | |
std::pair< double, double > | fit_quartic (double y0, double y1, double g0, double g1) |
Perform quartic polynomial fitting for linear search. | |
std::pair< double, double > | linear_search (double E0, double E1, double g0, double g1) |
Perform linear search between two points using polynomial interpolation. | |
ConvergenceInfo | check_convergence (const Vec &gradient, const Vec &step, double energy_change, const ConvergenceCriteria &criteria) |
ConvergenceInfo | check_convergence (const Vec &gradient, const Vec &step, const ConvergenceCriteria &criteria) |
Mat | pseudoinverse (Eigen::Ref< const Mat > A) |
float | get_covalent_radius (int atomic_number) |
float | get_vdw_radius (int atomic_number) |
Variables | |
constexpr size_t | SPECIES_COUNT = sizeof(SPECIES_DATA) / sizeof(SpeciesData) |
|
inline |
|
inline |
std::pair< double, double > occ::opt::fit_cubic | ( | double | y0, |
double | y1, | ||
double | g0, | ||
double | g1 | ||
) |
Perform cubic polynomial fitting for linear search.
Fits a cubic polynomial through two points with known function values and derivatives, then finds the minimum of the polynomial.
y0 | Function value at x=0 |
y1 | Function value at x=1 |
g0 | Derivative at x=0 |
g1 | Derivative at x=1 |
std::pair< double, double > occ::opt::fit_quartic | ( | double | y0, |
double | y1, | ||
double | g0, | ||
double | g1 | ||
) |
Perform quartic polynomial fitting for linear search.
Fits a quartic polynomial through two points with known function values and derivatives, then finds the minimum of the polynomial.
y0 | Function value at x=0 |
y1 | Function value at x=1 |
g0 | Derivative at x=0 |
g1 | Derivative at x=1 |
|
inline |
|
inline |
std::pair< double, double > occ::opt::linear_search | ( | double | E0, |
double | E1, | ||
double | g0, | ||
double | g1 | ||
) |
Perform linear search between two points using polynomial interpolation.
This implements a linear search algorithm, which attempts quartic interpolation first, falls back to cubic if quartic fails, and finally uses simple selection if both polynomial fits fail.
E0 | Energy at current point |
E1 | Energy at best point |
g0 | Directional derivative at current point |
g1 | Directional derivative at best point |
Mat3N occ::opt::transform_step_to_cartesian | ( | const Vec & | internal_step, |
const InternalCoordinates & | coords, | ||
const Mat3N & | positions, | ||
const Mat & | B_inv | ||
) |
std::pair< Vec, Mat3N > occ::opt::update_geometry | ( | const Vec & | current_q, |
const Vec & | internal_step, | ||
const InternalCoordinates & | coords, | ||
const Mat3N & | positions, | ||
const Mat & | B_inv | ||
) |
|
constexpr |