# PAO

References: Schuett2018, Berghold2002

Polarized Atomic Orbital Method [Edit on GitHub]

Subsections

- LINE_SEARCH
- MACHINE_LEARNING
- PRINT

## Keywords

- CG_INIT_STEPS

- CG_RESET_LIMIT

- CHECK_GRADIENT_TOL

- CHECK_UNITARY_TOL

- EPS_PAO

- EPS_PGF

- LINPOT_INITGUESS_DELTA

- LINPOT_PRECONDITION_DELTA

- LINPOT_REGULARIZATION_DELTA

- LINPOT_REGULARIZATION_STRENGTH

- MAX_CYCLES

- MAX_PAO

- MIXING

- NUM_GRADIENT_EPS

- NUM_GRADIENT_ORDER

- OPTIMIZER

- PARAMETERIZATION

- PENALTY_DISTANCE

- PENALTY_STRENGTH

- PRECONDITION

- PREOPT_DM_FILE

- REGULARIZATION

- RESTART_FILE

## Keyword descriptions

CG_INIT_STEPS: integer = 2

  Number of steepest descent steps before starting the conjugate gradients optimization. [Edit on GitHub]

CG_RESET_LIMIT: real = 1.00000000E-001

  The CG is reseted if the cosine of the angle between the last search direction and the new gradient is larger that the limit. [Edit on GitHub]

CHECK_GRADIENT_TOL: real = -1.00000000E+000

  Tolerance for check of full analytic gradient against the numeric one. Negative values mean don’t check at all. [Edit on GitHub]

CHECK_UNITARY_TOL: real = -1.00000000E+000

  Check if rotation matrix is unitary. Negative values mean don’t check at all. [Edit on GitHub]

EPS_PAO: real = 1.00000000E-005

  Mentions: ⭐PAO-ML

  Convergence criteria for PAO optimization. [Edit on GitHub]

EPS_PGF: real

  Sets precision for potential and descriptor matrix elements. Overrides DFT/QS/EPS_DEFAULT value. [Edit on GitHub]

LINPOT_INITGUESS_DELTA: real = 0.00000000E+000

  Eigenvalue threshold used for calculating initial guess. [Edit on GitHub]

LINPOT_PRECONDITION_DELTA: real = 0.00000000E+000

  Eigenvalue threshold used for preconditioning. [Edit on GitHub]

LINPOT_REGULARIZATION_DELTA: real = 0.00000000E+000

  Mentions: ⭐PAO-ML

  Eigenvalue threshold used for regularization. [Edit on GitHub]

LINPOT_REGULARIZATION_STRENGTH: real = 0.00000000E+000

  Strength of regularization on linpot layer. [Edit on GitHub]

MAX_CYCLES: integer = 75

  Mentions: ⭐PAO-ML

  Maximum number of PAO line search cycles for a given hamiltonian. [Edit on GitHub]

MAX_PAO: integer = 1000

  Mentions: ⭐PAO-ML

  Maximum number of PAO basis optimization steps. [Edit on GitHub]

MIXING: real = 5.00000000E-001

  Mentions: ⭐PAO-ML

  Mixing fraction of new and old optimizied solutions. [Edit on GitHub]

NUM_GRADIENT_EPS: real = 1.00000000E-008

  Step length used for the numeric derivative when checking the gradient. [Edit on GitHub]

NUM_GRADIENT_ORDER: integer = 2

  Order of the numeric derivative when checking the gradient. Possible values are 2, 4, and 6. [Edit on GitHub]

OPTIMIZER: enum = CG

  Valid values:

  - `CG` Conjugate gradient algorithm

  - `BFGS` Broyden-Fletcher-Goldfarb-Shanno algorithm

  Optimizer used to find PAO basis. [Edit on GitHub]

PARAMETERIZATION: enum = ROTINV

  Valid values:

  - `ROTINV` Rotational invariant parametrization (machine learnable)

  - `FOCK` Fock matrix parametrization

  - `GTH` Parametrization based on GTH pseudo potentials

  - `EXP` Original matrix exponential parametrization

  - `EQUIVARIANT` Equivariant parametrization

  Parametrization of the mapping between the primary and the PAO basis. [Edit on GitHub]

PENALTY_DISTANCE: real = 1.00000000E-001

  Distance at which approaching eigenvalues are penalized to prevent degeneration. [Edit on GitHub]

PENALTY_STRENGTH: real = 5.00000000E-003

  Strength of the penalty term which prevents degenerate eigenvalues. [Edit on GitHub]

PRECONDITION: logical = F

  Lone keyword: `T`

  Apply a preconditioner to the parametrization. [Edit on GitHub]

PREOPT_DM_FILE: string

  Read pre-optimized density matrix from given file. [Edit on GitHub]

REGULARIZATION: real = 0.00000000E+000

  Strength of regularization term which ensures parameters remain small. [Edit on GitHub]

RESTART_FILE: string

  Reads given files as restart for PAO basis [Edit on GitHub]