BALL::ShiftedLVMMMinimizer Class Reference
[Energy Minimizer]

Shifted limited-memory variable metric methods minimizer. More...

#include <shiftedLVMM.h>

Inheritance diagram for BALL::ShiftedLVMMMinimizer:
Inheritance graph
[legend]

List of all members.


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. $-U_k \cdot U_k^T \cdot g_k$.
vector< Vector3 > hess_factor_
Factor of the shifted inverse hessian approximation in column order, $U_k$ in [3].
vector< Vector3 > initial_atoms_
Positions of the movable atoms when we start an iteration.

Detailed Description

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.


Member Enumeration Documentation

The different correction parameters implemented.

Enumerator:
UNIT_VALUE Unit value, i.e.

rho = 1.0.

BALANCING_VALUE Balancing value.
SQUARE_ROOT Square root.
GEOMETRIC_MEAN Geometric mean.
RATIO_OF_SHIFT_PARAMS Ratio of shift parameters.

The different variationally derived methods implemented.

Enumerator:
RANK_1 Rank 1 variationally derived method.
RANK_2 Rank 2 variationally derived method.

Member Function Documentation

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.

Returns:
double $\geq 0$ if the line search found an acceptable solution, otherwise -1.
See also:
EnergyMinimizer::findStep

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.

Parameters:
iterations the maximum number of iterations
resume true to resume a previous run
See also:
EnergyMinimizer::minimize

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.


Member Data Documentation

Positions of the movable atoms when we start an iteration.

This is used to reduce slightly rounding errors


Generated on Thu Aug 6 18:30:37 2009 for BALL by doxygen 1.5.8