Minimization in Pele++ control file

The "Minimizer" block in a peleSimulation command configures the final minimization of the relaxation phase. This block also configures the minimization in a minimization command. In a peleSimulation, this phase will be active if either the side chain prediction phase is active, or if the minimizationFrequency PELE parameter says so (see minimizationFrequency). In particular, every time a side chain prediction is performed, a final minimization also happens; besides, every minimizationFrequency steps, a minimization is performed (if it is also a step where the side chain prediction is performed, only one minimization, after the prediction, is executed).

There also exist minimization blocks for the minimizers used in the ANM phase (ANM Block in Pele++ control file) and in the Side Chain Prediction phase (SideChainPrediction Block in Pele++ control file), where they are respectively called "anmMinimizer" and "sideChainMinimizer". Unless noted, all parameters shown below can also be used when configuring those minimizers. The default values shown below correspond to the "Minimizer" block; see the ANM and Side Chain Prediction manual pages for the defaults used in their corresponding minimizers.

In the minimization phase of a PELE simulation, the following will be minimized:

  • if minimizationRegionRadius (minimizationRegionRadius) is not zero, then the perturbed links and the links that are at most minimizationRegionRadius \(\AA{}\) away from them.

  • the top side links, which are those links that worsen their energy the most between the beginning of a PELE step and the end of the perturbation and ANM phase. The number of these links is selected by the PELE parameter numberOfTopSideSelectedLinks (numberOfTopSideSelectedLinks). Also the links that are at most topSideRadius \(\AA{}\) away from the top side links (topSideRadius) will be included.

  • those atoms selected in includeInMinimization (includeInMinimization).

  • removing, from all the atoms previously selected, those atoms in doNotIncludeInMinimization (doNotIncludeInMinimization).

Besides the permanent constraints (Permanent constraints in Pele++ control file), the following constraints are considered during the minimization phase of a PELE simulation:

Algorithm selection

algorithm

Use: It sets the minimization algorithm that will be used.

Possible options:

  • “TruncatedNewton”: Newton’s method minimizes \(Q(x_1,\ldots,x_n) \simeq F(x_1,\ldots,x_n)\), where Q is a quadratic function. Truncated Newton consists of two sub-algorithms, the first one controlling the entire minimization and the second one iteratively minimizing Q.

  • “ConjugatedGradient”: Minimizes the energy using the conjugated-gradient algorithm.

  • “SteepestDescent”: Minimizes the energy using the steepest-descent method.

Default value: “TruncatedNewton”

Parameters

EnergyDifference

Parameter: double energyTol

Use: Used as a convergence criterion in the different minimization algorithms.

Note for developers: Used in ConjugatedGradient::minimize, SteepestDescent::minimize and TruncatedNewton::runMinimizationIterations.

Units: kCal/mol

Range: [0, inf)

Default value: 1.0

Plop info: Not accessible from control file (hardcoded).

MinimumRMS

Parameter: double rmsMin

Use: Used as a convergence criterion in the different minimization algorithms.

Note for developers: Used in ConjugatedGradient::minimize, SteepestDescent::minimize and TruncatedNewton::hasOuterLoopConverged.

Units: \((\text{kCal}/\text{mol}/\AA{})^2\)

Range: (0, inf)

Default value: 0.1

Plop info:

  • Plop control file name: ‘rmsg’

  • Plop parameter name: min_params%rmsmin

  • Plop default value: 0.001

MaximumMinimizationIterations

Parameter: unsigned int iterMax

Use: Used as a convergence criterion in the different minimization algorithms.

Note for developers: Used in ConjugatedGradient::minimize, SteepestDescent::minimize and TruncatedNewton::runMinimizationIterations.

Units: Dimensionless

Range: [0, inf)

Default value: 3

Plop info:

  • Plop control file name: ‘iter’

  • Plop parameter name: min_params%iter_max

  • Plop default value: 3

Truncated Newton Parameters

MaximumNewtonIterations

Parameter: unsigned int maximumNewtonIterations

Use: Number of times that the outer loop is going to be run.

Note for developers: Used in TruncatedNewton::runOuterLoop

Units: Dimensionless

Range: [0, inf)

Default value: 65

Plop info:

  • Plop control file name: ‘mxitn’

  • Plop parameter name: min_params%mxitn

  • Plop default value: 65

nonBondingListUpdatedEachMinStep

Parameter: bool updateNblist

Use: Controls whether the NB list is updated after each minimization step or not.

Note for developers: Used in TruncatedNewton::revertToPreviousValidStateInCaseOfMinimizationFailure, TruncatedNewton::prepareOuterLoopNextIteration and TruncatedNewton::runOneIteration.

Units: Dimensionless

Range: True or false

Default value: true

Plop info:

  • Plop control file name: ‘nbup’

  • Plop parameter name: min_params%update_nblist

  • Plop default value: True

alphaUpdated

Parameter: bool updateAlpha

Use: Controls whether the Born alpha radius is updated after each minimization step or not.

Note for developers: Used in TruncatedNewton::runOneIteration and TruncatedNewton::revertToPreviousValidStateInCaseOfMinimizationFailure.

Units: Dimensionless

Range: True or false

Default value: false

Plop info:

  • Plop control file name: ‘alphaup’

  • Plop parameter name: min_params%update_alpha

  • Plop default value: False

sgbUpdated

Parameter: bool updateSgb

Use: Controls whether SGB cell list is updated after each minimization step or not.

Note for developers: Used in TruncatedNewton::runOneIteration and TruncatedNewton::revertToPreviousValidStateInCaseOfMinimizationFailure.

Units: Dimensionless

Range: True or false

Default value: true

Plop info:

  • Plop control file name: ‘gbup’

  • Plop parameter name: min_params%update_sgb

  • Plop default value: True

iterationsBetweenNBlistLongUpdate

This parameter is currently not assignable through the control file.

Parameter: unsigned int iterationsBetweenNonBondingLongUpdate

Use: The list of non bonded long is updated every iterationsBetweenNBlistLongUpdate.

Note for developers: Used, indirectly, in OuterLoop::prepareForNextIteration().

Units: Dimensionless

Range: [1,inf)

Default value: 2

Plop info:

  • Plop control file name: ‘niterup’

  • Plop parameter name: min_params%nfull

  • Plop default value: 2