#include <BALL/MOLMEC/MINIMIZATION/shiftedLVMM.h>
Shifted limited-memory variable metric methods minimizer. A minimizer for geometry optimization based upon the shifted limited-memory variable metric methods proposed in
[1] Vlcek J., Luksan L.. New variable metric methods for unconstrained minimization covering the large-scale case. Report V-876, Prague, ICS AS CR, 2002.
[2] Vlcek J., Luksan L.. Additional properties of shifted variable metric methods. Report V-899, Prague, ICS AS CR, 2004.
[3] Vlcek J., Luksan L.. Shifted limited-memory variable metric methods for large-scale unconstrained optimization. Journal of Computational and Applied Mathematics 186 (2), pp. 365-390.
| BALL::ShiftedLVMMMinimizer::ShiftedLVMMMinimizer | ( | ) |
Default constructor.
| BALL::ShiftedLVMMMinimizer::ShiftedLVMMMinimizer | ( | ForceField & | force_field | ) |
Constructor expecting a valid force field
| BALL::ShiftedLVMMMinimizer::ShiftedLVMMMinimizer | ( | ForceField & | force_field, | |
| SnapShotManager * | ssm | |||
| ) |
Constructor expecting a valid force field and a snapshot manager
| BALL::ShiftedLVMMMinimizer::ShiftedLVMMMinimizer | ( | ForceField & | force_field, | |
| SnapShotManager * | ssm, | |||
| const Options & | options | |||
| ) |
Constructor expecting a valid force field, a snapshot manager and options
| BALL::ShiftedLVMMMinimizer::ShiftedLVMMMinimizer | ( | ForceField & | force_field, | |
| const Options & | options | |||
| ) |
Constructor expecting a valid force field and options
| BALL::ShiftedLVMMMinimizer::ShiftedLVMMMinimizer | ( | const ShiftedLVMMMinimizer & | rhs | ) |
Copy constructor
| virtual BALL::ShiftedLVMMMinimizer::~ShiftedLVMMMinimizer | ( | ) | [virtual] |
Destructor.
| virtual double BALL::ShiftedLVMMMinimizer::findStep | ( | ) | [virtual] |
Calculate the next step. First, this method updates the model. Second, it performs a line search along the calculated direction afterwards.
if the line search found an acceptable solution, otherwise -1. Reimplemented from BALL::EnergyMinimizer.
| CorrectionParameter BALL::ShiftedLVMMMinimizer::getCorrectionParameter | ( | ) | const |
Return the correction parameter
| Size BALL::ShiftedLVMMMinimizer::getMaxNumOfColumns | ( | ) | const |
Return the maximum number of columns of the factor of the shifted inverse hessian approximation.
| UpdateMethod BALL::ShiftedLVMMMinimizer::getUpdateMethod | ( | ) | const |
Return the update method
| virtual bool BALL::ShiftedLVMMMinimizer::minimize | ( | Size | iterations = 0, |
|
| bool | resume = false | |||
| ) | [virtual] |
Minimize the energy of the system. This method executes at most iterations minimization steps. If the number of iterations is not given, the number specified in the options is taken.
| iterations | the maximum number of iterations | |
| resume | true to resume a previous run |
Reimplemented from BALL::EnergyMinimizer.
| const ShiftedLVMMMinimizer& BALL::ShiftedLVMMMinimizer::operator= | ( | const ShiftedLVMMMinimizer & | rhs | ) |
Assignment operator
| void BALL::ShiftedLVMMMinimizer::setCorrectionParameter | ( | CorrectionParameter | corr | ) |
Set explicitly the correction parameter
| void BALL::ShiftedLVMMMinimizer::setMaxNumOfColumns | ( | Size | num | ) |
Set explicitly the maximum number of columns of the factor of the shifted inverse hessian approximation.
| void BALL::ShiftedLVMMMinimizer::setUpdateMethod | ( | UpdateMethod | updt | ) |
Set explicitly the update method
| virtual bool BALL::ShiftedLVMMMinimizer::specificSetup | ( | ) | [virtual] |
Specific setup
Reimplemented from BALL::EnergyMinimizer.
| virtual void BALL::ShiftedLVMMMinimizer::updateDirection | ( | ) | [virtual] |
Update the shifted inverse hessian approximation. Afterwards, compute the search direction.
Reimplemented from BALL::EnergyMinimizer.
Size BALL::ShiftedLVMMMinimizer::corr_par_ [protected] |
Correction parameter
Size BALL::ShiftedLVMMMinimizer::curr_number_of_cols_ [protected] |
Current number of columns of the factor of the shifted inverse hessian approximation.
bool BALL::ShiftedLVMMMinimizer::first_iter_ [protected] |
Is this an initial first iteration?
vector<Vector3> BALL::ShiftedLVMMMinimizer::grad_diff_ [protected] |
Current gradient difference.
vector<Vector3> BALL::ShiftedLVMMMinimizer::hess_factor_ [protected] |
Factor of the shifted inverse hessian approximation in column order,
in [3].
vector<Vector3> BALL::ShiftedLVMMMinimizer::initial_atoms_ [protected] |
Positions of the movable atoms when we start an iteration. This is used to reduce slightly rounding errors
LineSearch BALL::ShiftedLVMMMinimizer::line_search_ [protected] |
The line search
Size BALL::ShiftedLVMMMinimizer::max_number_of_cols_ [protected] |
Maximum number of columns of the factor of the shifted inverse hessian approximation.
Size BALL::ShiftedLVMMMinimizer::number_of_atoms_ [protected] |
Number of movable atoms.
double BALL::ShiftedLVMMMinimizer::prev_shift_val_ [protected] |
Shift value of the previous iteration.
vector<Vector3> BALL::ShiftedLVMMMinimizer::shift_s_ [protected] |
Shifted previous step.
vector<Vector3> BALL::ShiftedLVMMMinimizer::shifted_direction_ [protected] |
Direction of the shifted step, i. e.
.
Size BALL::ShiftedLVMMMinimizer::updt_method_ [protected] |
Update method
vector<float> BALL::ShiftedLVMMMinimizer::updt_u_ [protected] |
Needed vector for the update.
vector<float> BALL::ShiftedLVMMMinimizer::updt_v_ [protected] |
Needed vector for the update.