BALL::ShiftedLVMMMinimizer Class Reference
[Energy Minimizer]

#include <BALL/MOLMEC/MINIMIZATION/shiftedLVMM.h>

Inheritance diagram for BALL::ShiftedLVMMMinimizer:
BALL::EnergyMinimizer

List of all members.


Classes

struct  Default
struct  Option

Public Types

Enums
enum  UpdateMethod { RANK_1 = 1, RANK_2 = 2 }
enum  CorrectionParameter {
  UNIT_VALUE = 1, BALANCING_VALUE = 2, SQUARE_ROOT = 3, GEOMETRIC_MEAN = 4,
  RATIO_OF_SHIFT_PARAMS = 5
}

Public Member Functions

Constructors and Destructors
 ShiftedLVMMMinimizer ()
 ShiftedLVMMMinimizer (ForceField &force_field)
 ShiftedLVMMMinimizer (ForceField &force_field, SnapShotManager *ssm)
 ShiftedLVMMMinimizer (ForceField &force_field, SnapShotManager *ssm, const Options &options)
 ShiftedLVMMMinimizer (ForceField &force_field, const Options &options)
 ShiftedLVMMMinimizer (const ShiftedLVMMMinimizer &rhs)
virtual ~ShiftedLVMMMinimizer ()
Assignments
const ShiftedLVMMMinimizeroperator= (const ShiftedLVMMMinimizer &rhs)
Setup methods. They do all necessary preparations.
virtual bool specificSetup ()
Accessors
void setUpdateMethod (UpdateMethod updt)
UpdateMethod getUpdateMethod () const
void setCorrectionParameter (CorrectionParameter corr)
CorrectionParameter getCorrectionParameter () const
void setMaxNumOfColumns (Size num)
Size getMaxNumOfColumns () const
virtual double findStep ()
virtual void updateDirection ()
virtual bool minimize (Size iterations=0, bool resume=false)

Protected Attributes

Protected Attributes
LineSearch line_search_
bool first_iter_
Size number_of_atoms_
Size max_number_of_cols_
Size curr_number_of_cols_
Size updt_method_
Size corr_par_
double prev_shift_val_
vector< Vector3shift_s_
vector< Vector3grad_diff_
vector< floatupdt_u_
vector< floatupdt_v_
vector< Vector3shifted_direction_
vector< Vector3hess_factor_
vector< Vector3initial_atoms_

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.


Constructor & Destructor Documentation

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.


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.

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.

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

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.


Member Data Documentation

Correction parameter

Current number of columns of the factor of the shifted inverse hessian approximation.

Is this an initial first iteration?

Current gradient difference.

Factor of the shifted inverse hessian approximation in column order, $U_k$ in [3].

Positions of the movable atoms when we start an iteration. This is used to reduce slightly rounding errors

Maximum number of columns of the factor of the shifted inverse hessian approximation.

Number of movable atoms.

Shift value of the previous iteration.

Shifted previous step.

Direction of the shifted step, i. e. $-U_k \cdot U_k^T \cdot g_k$.

Needed vector for the update.

Needed vector for the update.