MIXING

Define type and parameters for mixing the active-space density matrix during self-consistent embedding. This mixing is independent of the SCF method used for the reference calculation, including OT. NBUFFER controls the mixing history; N_SIMPLE_MIX controls the initial direct-mixing steps. [Edit on GitHub]

Keywords

Keyword descriptions

SECTION_PARAMETERS

Type: logical
Default: T
Lone keyword: T
Usage: &MIXING ON

Description: Controls the activation of the mixing procedure [Edit on GitHub]

ALPHA

Type: real
Default: 4.00000000E-001
Usage: ALPHA 0.2

Description: Fraction of new density to be included [Edit on GitHub]

ALPHA_MAG

Type: real
Default: -1.00000000E+000
Usage: ALPHA_MAG 0.8

Description: Fraction of new magnetization density to be included (for spin-polarized calculations, ispin=2 channel after rho_total/m transform). A negative value (default) means: use the same value as ALPHA. For magnetic transition-metal systems, a larger value (e.g. 0.8-1.6) than ALPHA often improves convergence. [Edit on GitHub]

BETA

Type: real
Default: 5.00000000E-001 [bohr^-1]
Usage: BETA 1.5

Description: Denominator parameter in Kerker damping introduced to suppress charge sloshing: rho_mix(g) = rho_in(g) + alphag^2/(g^2 + beta^2)(rho_out(g)-rho_in(g)) [Edit on GitHub]

BETA_MAG

Type: real
Default: -1.00000000E+000 [bohr^-1]
Usage: BETA_MAG 0.0

Description: Kerker damping parameter for the magnetization channel (for spin-polarized calculations). A negative value (default) means: use the same value as BETA. Set to 0.0 to disable Kerker screening on the magnetization density, which avoids suppression of long-range magnetic order formation in transition-metal systems. [Edit on GitHub]

BROY_W0

Type: real
Default: 1.00000000E-002
Usage: BROY_W0 0.03

Description: Regularization weight used in Broyden mixing. For the original BROYDEN_MIXING method this is the constant diagonal regularization of the small Broyden system. For MODIFIED_BROYDEN_MIXING it is the corresponding diagonal regularization of the dynamically weighted Broyden system. The default follows tblite. [Edit on GitHub]

BROY_WMAX

Type: real
Default: 1.00000000E+005
Usage: BROY_WMAX 100000.0

Description: Upper bound for the dynamic residual weight. This keyword is only used by MODIFIED_BROYDEN_MIXING; the original BROYDEN_MIXING path is unchanged. The lower bound is fixed to 1.0. The default follows tblite. [Edit on GitHub]

BROY_WREF

Type: real
Default: 1.00000000E-002
Usage: BROY_WREF 0.01

Description: Reference factor for the dynamic residual weight. This keyword is only used by MODIFIED_BROYDEN_MIXING; the original BROYDEN_MIXING path is unchanged. The effective history weight is proportional to BROY_WREF divided by the residual norm, clipped to the interval [1, BROY_WMAX]. The default follows tblite. [Edit on GitHub]

GMIX_P

Type: logical
Default: F
Lone keyword: T
Usage: GMIX_P

Description: Activate the mixing of the density matrix, using the same mixing coefficient applied for the g-space mixing. [Edit on GitHub]

MAX_GVEC_EXP

Type: real
Default: -1.00000000E+000
Usage: MAX_GVEC_EXP 3.

Description: Restricts the G-space mixing to lower part of G-vector spectrum, up to a G0, by assigning the exponent of the Gaussian that can be represented by vectors smaller than G0 within a certain accuracy. [Edit on GitHub]

MAX_STEP

Type: real
Default: 1.00000000E-001
Usage: MAX_STEP .2

Description: Upper bound for the magnitude of the unpredicted step size in the update by the multisecant mixing scheme [Edit on GitHub]

METHOD

Type: enum
Default: DIRECT_P_MIXING
Usage: METHOD KERKER_MIXING

Description: Mixing method to be applied [Edit on GitHub]

Valid values:

  • NONE No mixing is applied

  • DIRECT_P_MIXING Direct mixing of new and old density matrices

  • KERKER_MIXING Mixing of the potential in reciprocal space using the Kerker damping

  • PULAY_MIXING Pulay mixing

  • BROYDEN_MIXING Original CP2K Broyden mixing with a constant BROY_W0 regularization

  • MODIFIED_BROYDEN_MIXING Modified Broyden mixing with dynamic residual weights controlled by BROY_W0, BROY_WREF, and BROY_WMAX

  • MULTISECANT_MIXING Multisecant scheme for mixing

  • NEW_PULAY_MIXING New Pulay mixing using Sundararaman et al.’s metric and preconditioner, with improved convergence behavior and suitable for grand canonical SCF

NBUFFER

Type: integer
Default: 4
Aliases: NPULAY, NBROYDEN, NMULTISECANT
Usage: NBUFFER 2

Description: Number of previous steps stored for the actual mixing scheme [Edit on GitHub]

NMIXING

Type: integer
Default: 2
Usage: NMIXING 1

Description: Legacy SCF DIIS keyword with no effect on active-space mixing [Edit on GitHub]

Warning

The keyword NMIXING is deprecated and may be removed in a future version.

NMIXING has no effect in ACTIVE_SPACE%MIXING. Use NBUFFER for the history length or N_SIMPLE_MIX for initial direct-mixing steps; these have different meanings.

NSKIP

Type: integer
Default: 0
Aliases: NSKIP_MIXING
Usage: NSKIP 10

Description: Number of initial iteration for which the mixing is skipped [Edit on GitHub]

N_SIMPLE_MIX

Type: integer
Default: 0
Aliases: NSIMPLEMIX
Usage: NSIMPLEMIX

Description: Number of initial direct-mixing iterations after NSKIP before starting the selected mixing procedure [Edit on GitHub]

PULAY_ALPHA

Type: real
Default: 0.00000000E+000
Usage: PULAY_ALPHA 0.2

Description: Fraction of new density to be added to the Pulay expansion [Edit on GitHub]

PULAY_BETA

Type: real
Default: 1.00000000E+000
Usage: PULAY_BETA 0.2

Description: Fraction of residual contribution to be added to Pulay expansion [Edit on GitHub]

QK

Type: real
Default: 3.00000000E+000 [bohr^-1]
Usage: QK 3.0

Description: The control parameter in the denominator of the Kerker preconditioner used in the new Pulay mixing, introduced to suppress charge sloshing: Kerker preconditioner: K(g) = alpha * (g^2 + qkapa^2)/(g^2 + qk^2 + qkapa^2) [Edit on GitHub]

QKAPPA

Type: real
Default: 2.50000000E-001 [bohr^-1]
Usage: QKAPPA 0.25

Description: The control parameter in the numerator and the denominator of the Pulay metric and the Kerker preconditioner used in the new Pulay mixing, introduced to ensure a finite and well-defined Pulay metric at g=0 and a non-zero and well-defined Kerker preconditioner at g=0 [Edit on GitHub]

QM

Type: real
Default: 7.50000000E-001 [bohr^-1]
Usage: QM 0.75

Description: The control parameter in the numerator of the Pulay metric used in the new Pulay mixing, introduced to suppress charge sloshing: Pulay metric: M(g) = (g^2 + qm^2 + qkapa^2)/(g^2 + qkapa^2) [Edit on GitHub]

REGULARIZATION

Type: real
Default: 1.00000000E-005
Usage: REGULARIZATION 0.000001

Description: Regularization parameter to stabilize the inversion of the residual matrix {Yn^t Yn} in the multisecant mixing scheme (noise) [Edit on GitHub]

R_FACTOR

Type: real
Default: 5.00000000E-002
Usage: R_FACTOR .12

Description: Control factor for the magnitude of the unpredicted step size in the update by the multisecant mixing scheme [Edit on GitHub]