#include <shiftedLVMM.h>
Classes |
|
struct | Option |
Symbolic names for option keys.
More... |
|
Public Types |
|
Enums
|
|
enum | UpdateMethod { RANK_1 = 1, RANK_2 = 2 } |
The different variationally derived
methods implemented.
More... |
|
enum |
CorrectionParameter { UNIT_VALUE = 1, BALANCING_VALUE = 2, SQUARE_ROOT = 3, GEOMETRIC_MEAN = 4, RATIO_OF_SHIFT_PARAMS = 5 } |
The different correction parameters
implemented.
More... |
|
Public Member Functions |
|
Constructors and Destructors
|
|
ShiftedLVMMMinimizer () | |
Default constructor. |
|
ShiftedLVMMMinimizer (ForceField &force_field) | |
Constructor expecting a valid force
field. |
|
ShiftedLVMMMinimizer (ForceField &force_field, SnapShotManager *ssm) | |
Constructor expecting a valid force
field and a snapshot manager. |
|
ShiftedLVMMMinimizer (ForceField &force_field, SnapShotManager *ssm, const Options &options) | |
Constructor expecting a valid force
field, a snapshot manager and options. |
|
ShiftedLVMMMinimizer (ForceField &force_field, const Options &options) | |
Constructor expecting a valid force
field and options. |
|
ShiftedLVMMMinimizer (const ShiftedLVMMMinimizer &rhs) | |
Copy constructor. |
|
virtual | ~ShiftedLVMMMinimizer () |
Destructor. |
|
Assignments
|
|
const ShiftedLVMMMinimizer & | operator= (const ShiftedLVMMMinimizer &rhs) |
Assignment operator. |
|
Setup methods. They do all necessary preparations.
|
|
virtual bool | specificSetup () |
Specific setup. |
|
Accessors
|
|
void | setUpdateMethod (UpdateMethod updt) |
Set explicitly the update
method. |
|
UpdateMethod | getUpdateMethod () const |
Return the update method. |
|
void | setCorrectionParameter (CorrectionParameter corr) |
Set explicitly the correction
parameter. |
|
CorrectionParameter | getCorrectionParameter () const |
Return the correction
parameter. |
|
void | setMaxNumOfColumns (Size num) |
Set explicitly the maximum number of
columns of the factor of the shifted inverse hessian
approximation. |
|
Size | getMaxNumOfColumns () const |
Return the maximum number of columns
of the factor of the shifted inverse hessian
approximation. |
|
virtual double | findStep () |
Calculate the next step. |
|
virtual void | updateDirection () |
Update the shifted inverse hessian
approximation. |
|
virtual bool | minimize (Size iterations=0, bool resume=false) |
Minimize the energy of the system.
|
|
Protected Attributes |
|
Protected Attributes
|
|
LineSearch | line_search_ |
The line search. |
|
bool | first_iter_ |
Is this an initial first
iteration? |
|
Size | number_of_atoms_ |
Number of movable atoms. |
|
Size | max_number_of_cols_ |
Maximum number of columns of the
factor of the shifted inverse hessian
approximation. |
|
Size | curr_number_of_cols_ |
Current number of columns of the
factor of the shifted inverse hessian
approximation. |
|
Size | updt_method_ |
Update method. |
|
Size | corr_par_ |
Correction parameter. |
|
double | prev_shift_val_ |
Shift value of the previous
iteration. |
|
vector< Vector3 > | shift_s_ |
Shifted previous step. |
|
vector< Vector3 > | grad_diff_ |
Current gradient
difference. |
|
vector< float > | updt_u_ |
Needed vector for the
update. |
|
vector< float > | updt_v_ |
Needed vector for the
update. |
|
vector< Vector3 > | shifted_direction_ |
Direction of the shifted step, i. e.
. |
|
vector< Vector3 > | hess_factor_ |
Factor of the shifted inverse
hessian approximation in column order, in
[3]. |
|
vector< Vector3 > | initial_atoms_ |
Positions of the movable atoms when
we start an iteration. |
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.
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.
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.
virtual void BALL::ShiftedLVMMMinimizer::updateDirection | ( | ) | [virtual] |
Update the shifted inverse hessian approximation.
Afterwards, compute the search direction.
Reimplemented from BALL::EnergyMinimizer.
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