# XALMO_OPTIMIZER_TRUSTR

Controls the trust-region optimization of extended ALMOs. Trust radius is varied in the outer loop. Once the trust radius is chosen (and fixed) the model function can be minized using various approaches. Currently, an iterative conjugate-gradient approach is used and controlled by the inner loop [Edit on GitHub]

## Keywords

- ALGORITHM

- CONJUGATOR

- EPS_ERROR

- EPS_ERROR_EARLY

- ETA

- INITIAL_TRUST_RADIUS

- MAX_ITER

- MAX_ITER_EARLY

- MAX_ITER_OUTER_LOOP

- MAX_TRUST_RADIUS

- MODEL_GRAD_NORM_RATIO

- PRECONDITIONER

## Keyword descriptions

ALGORITHM: enum = CAUCHY

  Usage: ALGORITHM CG

  Valid values:

  - `CG` Steihaug’s iterative CG algorithm that does not invert model Hessian

  - `CAUCHY` Compute simple Cauchy point

  - `DOGLEG` Dogleg optimizer

  Selects an algorithm to solve the fixed-radius subproblem [Edit on GitHub]

CONJUGATOR: enum = HAGER_ZHANG

  Usage: CONJUGATOR POLAK_RIBIERE

  Valid values:

  - `ZERO` Steepest descent

  - `POLAK_RIBIERE` Polak and Ribiere

  - `FLETCHER_REEVES` Fletcher and Reeves

  - `HESTENES_STIEFEL` Hestenes and Stiefel

  - `FLETCHER` Fletcher (Conjugate descent)

  - `LIU_STOREY` Liu and Storey

  - `DAI_YUAN` Dai and Yuan

  - `HAGER_ZHANG` Hager and Zhang

  Various methods to compute step directions in the PCG optimization [Edit on GitHub]

EPS_ERROR: real = 1.00000000E-005

  Usage: EPS_ERROR 1.E-6

  Target value of the MAX norm of the error [Edit on GitHub]

EPS_ERROR_EARLY: real = -1.00000000E+000

  Usage: EPS_ERROR_EARLY 1.E-2

  Target value of the MAX norm of the error for truncated SCF (e.g. Langevin-corrected MD). Negative values mean that this keyword is not used. [Edit on GitHub]

ETA: real = 2.50000000E-001

  Usage: ETA 0.1

  Must be between 0.0 and 0.25. Rho value below which the optimization of the model function is not accepted and the optimization is restarted from the same point but decreased trust radius. Rho is the ratio of the actual over predicted change in the objective function [Edit on GitHub]

INITIAL_TRUST_RADIUS: real = 1.00000000E-001

  Usage: INITIAL_TRUST_RADIUS 0.1

  Initial trust radius [Edit on GitHub]

MAX_ITER: integer = 20

  Usage: MAX_ITER 100

  Maximum number of iterations [Edit on GitHub]

MAX_ITER_EARLY: integer = -1

  Usage: MAX_ITER_EARLY 5

  Maximum number of iterations for truncated SCF (e.g. Langevin-corrected MD). Negative values mean that this keyword is not used. [Edit on GitHub]

MAX_ITER_OUTER_LOOP: integer = 0

  Usage: MAX_ITER_OUTER_LOOP 10

  Maximum number of iterations in the outer loop. Use the outer loop to update the preconditioner and reset the conjugator. This can speed up convergence significantly. [Edit on GitHub]

MAX_TRUST_RADIUS: real = 2.00000000E+000

  Usage: MAX_TRUST_RADIUS 1.0

  Maximum allowed trust radius [Edit on GitHub]

MODEL_GRAD_NORM_RATIO: real = 1.00000000E-002

  Usage: MODEL_GRAD_NORM_RATIO 1.E-2

  Stop the fixed-trust-radius (inner) loop optimization once the ratio of the current norm of the model gradient over the initial norm drops below this threshold [Edit on GitHub]

PRECONDITIONER: enum = DEFAULT

  Usage: PRECONDITIONER DOMAIN

  Valid values:

  - `NONE` Do not use preconditioner

  - `DEFAULT` Same as DOMAIN preconditioner

  - `DOMAIN` Invert preconditioner domain-by-domain. The main component of the linear scaling algorithm

  - `FULL` Solve linear equations step=-H.grad on the entire space

  Select a preconditioner for the conjugate gradient optimization [Edit on GitHub]