Loading...
Searching...
No Matches
BALL::ShiftedLVMMMinimizer Class Reference
Molecular Modeling » Molecular Mechanics » Energy Minimizer

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

Inheritance diagram for BALL::ShiftedLVMMMinimizer:

## Classes

struct | Option
struct | Default

## 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 ShiftedLVMMMinimizer & | operator= (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)
Public Member Functions inherited from BALL::EnergyMinimizer
| EnergyMinimizer ()
| EnergyMinimizer (ForceField &force_field)
| EnergyMinimizer (ForceField &force_field, const Options &options)
| EnergyMinimizer (const EnergyMinimizer &energy_minimizer)
virtual | ~EnergyMinimizer ()
const EnergyMinimizer & | operator= (const EnergyMinimizer &energy_minimizer)
bool | operator== (const EnergyMinimizer &energy_minimizer)
bool | isValid () const
bool | setup (ForceField &force_field)
bool | setup (ForceField &force_field, SnapShotManager *ssm)
bool | setup (ForceField &force_field, SnapShotManager *ssm, const Options &options)
bool | setup (ForceField &force_field, const Options &options)
virtual bool | isConverged () const
virtual double | updateEnergy ()
virtual void | updateForces ()
void | storeGradientEnergy ()
virtual void | printEnergy () const
virtual void | takeSnapShot () const
virtual void | finishIteration ()
Size | getNumberOfIterations () const
Gradient & | getDirection ()
Gradient & | getGradient ()
Gradient & | getInitialGradient ()
double | getEnergy () const
double & | getEnergy ()
double | getInitialEnergy () const
double & | getInitialEnergy ()
void | setNumberOfIterations (Size number_of_iterations)
Size | getMaxNumberOfIterations () const
void | setMaxNumberOfIterations (Size number_of_iterations)
void | setMaxSameEnergy (Size number)
Size | getMaxSameEnergy () const
void | setEnergyOutputFrequency (Size energy_output_frequency)
Size | getEnergyOutputFrequency () const
void | setEnergyDifferenceBound (float energy_difference_bound)
float | getEnergyDifferenceBound () const
void | setMaxGradient (float max_gradient)
float | getMaxGradient () const
void | setMaximumDisplacement (float maximum_displacement)
float | getMaximumDisplacement () const
void | setSnapShotFrequency (Size snapshot_frequency)
Size | getSnapShotFrequency () const
ForceField * | getForceField ()
Size | getForceUpdateCounter () const
Size | getEnergyUpdateCounter () const
void | enableEnergyAbortCondition (bool state)
bool | energyAbortConditionEnabled () const
| Query if the MDSimulation aborts if the Energy is greater than abort_energy_.
void | setEnergyToAbort (float value)
float | getEnergyToAbort () const
bool | wasAborted () const

## 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< Vector3 > | shift_s_
vector< Vector3 > | grad_diff_
vector< float > | updt_u_
vector< float > | updt_v_
vector< Vector3 > | shifted_direction_
vector< Vector3 > | hess_factor_
vector< Vector3 > | initial_atoms_
Protected Attributes inherited from BALL::EnergyMinimizer
Gradient | initial_grad_
Gradient | current_grad_
double | initial_energy_
double | current_energy_
Gradient | old_grad_
double | old_energy_
Gradient | direction_
bool | valid_
SnapShotManager * | snapshot_
ForceField * | force_field_
Size | number_of_iterations_
Size | maximal_number_of_iterations_
Size | energy_output_frequency_
Size | snapshot_frequency_
double | energy_difference_bound_
double | max_gradient_
Size | max_same_energy_
Size | same_energy_counter_
float | maximum_displacement_
Size | force_update_counter_
Size | energy_update_counter_
float | cutlo_
double | step_
bool | abort_by_energy_enabled_
float | abort_energy_
bool | aborted_

## Additional Inherited Members

Public Attributes inherited from BALL::EnergyMinimizer
Options | options

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

Definition at line 36 of file shiftedLVMM.h.

## Member Enumeration Documentation

## CorrectionParameter

enum BALL::ShiftedLVMMMinimizer::CorrectionParameter

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.

Definition at line 106 of file shiftedLVMM.h.

## UpdateMethod

enum BALL::ShiftedLVMMMinimizer::UpdateMethod

The different variationally derived methods implemented.

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

Definition at line 93 of file shiftedLVMM.h.

## Constructor & Destructor Documentation

## ShiftedLVMMMinimizer() [1/6]

BALL::ShiftedLVMMMinimizer::ShiftedLVMMMinimizer | ( |  | ) |

Default constructor.

## ShiftedLVMMMinimizer() [2/6]

BALL::ShiftedLVMMMinimizer::ShiftedLVMMMinimizer | ( | ForceField & | force_field | ) |

Constructor expecting a valid force field

## ShiftedLVMMMinimizer() [3/6]

BALL::ShiftedLVMMMinimizer::ShiftedLVMMMinimizer | ( | ForceField & | force_field,
|  | SnapShotManager * | ssm )

Constructor expecting a valid force field and a snapshot manager

## ShiftedLVMMMinimizer() [4/6]

BALL::ShiftedLVMMMinimizer::ShiftedLVMMMinimizer | ( | ForceField & | force_field,
|  | SnapShotManager * | ssm,
|  | const Options & | options )

Constructor expecting a valid force field, a snapshot manager and options

## ShiftedLVMMMinimizer() [5/6]

BALL::ShiftedLVMMMinimizer::ShiftedLVMMMinimizer | ( | ForceField & | force_field,
|  | const Options & | options )

Constructor expecting a valid force field and options

## ShiftedLVMMMinimizer() [6/6]

BALL::ShiftedLVMMMinimizer::ShiftedLVMMMinimizer | ( | const ShiftedLVMMMinimizer & | rhs | ) |

Copy constructor

## ~ShiftedLVMMMinimizer()

virtual BALL::ShiftedLVMMMinimizer::~ShiftedLVMMMinimizer | ( |  | ) |

virtual

Destructor.

## Member Function Documentation

## findStep()

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 if the line search found an acceptable solution, otherwise -1.

See also
  EnergyMinimizer::findStep

Reimplemented from BALL::EnergyMinimizer.

## getCorrectionParameter()

CorrectionParameter BALL::ShiftedLVMMMinimizer::getCorrectionParameter | ( |  | ) | const

Return the correction parameter

## getMaxNumOfColumns()

Size BALL::ShiftedLVMMMinimizer::getMaxNumOfColumns | ( |  | ) | const

Return the maximum number of columns of the factor of the shifted inverse hessian approximation.

## getUpdateMethod()

UpdateMethod BALL::ShiftedLVMMMinimizer::getUpdateMethod | ( |  | ) | const

Return the update method

## minimize()

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.

## operator=()

const ShiftedLVMMMinimizer & BALL::ShiftedLVMMMinimizer::operator= | ( | const ShiftedLVMMMinimizer & | rhs | ) |

Assignment operator

## setCorrectionParameter()

void BALL::ShiftedLVMMMinimizer::setCorrectionParameter | ( | CorrectionParameter | corr | ) |

Set explicitly the correction parameter

## setMaxNumOfColumns()

void BALL::ShiftedLVMMMinimizer::setMaxNumOfColumns | ( | Size | num | ) |

Set explicitly the maximum number of columns of the factor of the shifted inverse hessian approximation.

## setUpdateMethod()

void BALL::ShiftedLVMMMinimizer::setUpdateMethod | ( | UpdateMethod | updt | ) |

Set explicitly the update method

## specificSetup()

virtual bool BALL::ShiftedLVMMMinimizer::specificSetup | ( |  | ) |

virtual

Specific setup

Reimplemented from BALL::EnergyMinimizer.

## updateDirection()

virtual void BALL::ShiftedLVMMMinimizer::updateDirection | ( |  | ) |

virtual

Update the shifted inverse hessian approximation. Afterwards, compute the search direction.

Reimplemented from BALL::EnergyMinimizer.

## Member Data Documentation

## corr_par_

Size BALL::ShiftedLVMMMinimizer::corr_par_

protected

Correction parameter

Definition at line 269 of file shiftedLVMM.h.

## curr_number_of_cols_

Size BALL::ShiftedLVMMMinimizer::curr_number_of_cols_

protected

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

Definition at line 261 of file shiftedLVMM.h.

## first_iter_

bool BALL::ShiftedLVMMMinimizer::first_iter_

protected

Is this an initial first iteration?

Definition at line 247 of file shiftedLVMM.h.

## grad_diff_

vector<Vector3> BALL::ShiftedLVMMMinimizer::grad_diff_

protected

Current gradient difference.

Definition at line 281 of file shiftedLVMM.h.

## hess_factor_

vector<Vector3> BALL::ShiftedLVMMMinimizer::hess_factor_

protected

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

Definition at line 298 of file shiftedLVMM.h.

## initial_atoms_

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

Definition at line 303 of file shiftedLVMM.h.

## line_search_

LineSearch BALL::ShiftedLVMMMinimizer::line_search_

protected

The line search

Definition at line 243 of file shiftedLVMM.h.

## max_number_of_cols_

Size BALL::ShiftedLVMMMinimizer::max_number_of_cols_

protected

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

Definition at line 256 of file shiftedLVMM.h.

## number_of_atoms_

Size BALL::ShiftedLVMMMinimizer::number_of_atoms_

protected

Number of movable atoms.

Definition at line 251 of file shiftedLVMM.h.

## prev_shift_val_

double BALL::ShiftedLVMMMinimizer::prev_shift_val_

protected

Shift value of the previous iteration.

Definition at line 273 of file shiftedLVMM.h.

## shift_s_

vector<Vector3> BALL::ShiftedLVMMMinimizer::shift_s_

protected

Shifted previous step.

Definition at line 277 of file shiftedLVMM.h.

## shifted_direction_

vector<Vector3> BALL::ShiftedLVMMMinimizer::shifted_direction_

protected

Direction of the shifted step, i. e. .

Definition at line 293 of file shiftedLVMM.h.

## updt_method_

Size BALL::ShiftedLVMMMinimizer::updt_method_

protected

Update method

Definition at line 265 of file shiftedLVMM.h.

## updt_u_

vector<float> BALL::ShiftedLVMMMinimizer::updt_u_

protected

Needed vector for the update.

Definition at line 285 of file shiftedLVMM.h.

## updt_v_

vector<float> BALL::ShiftedLVMMMinimizer::updt_v_

protected

Needed vector for the update.

Definition at line 289 of file shiftedLVMM.h.