#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.
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.