mixing keywords

Mixing parameters

mixing.betamin

Minimal mixing fraction. If mixing.invJ0 is set to ‘kerker’, the long wavelength components are mixed at a slower pace than the short wavelength components. The Kerker preconditioner is prevented to mix the short wavelength components too slowly by having a minimal mixing fraction.

type: scalar

default: 0.01

example: mixing.betamin = 0.005

mixing.beta

Mixing fraction. This is used by all mixers.

type: scalar

default: 0.25

example: mixing.beta = 0.45

mixing.betalin

Mixing fraction during the linear mixing steps.

type: scalar

example: mixing.betalin = 0.45

mixing.initlin

Number of linear mixing steps. Most mixer need at least one linear mixing step.

type: scalar

default: 1

example: mixing.initlin = 1

mixing.ipScheme

In quasi-Newton methods necessitate inner products. The inner products can be calculated straightforwardly using a uniform inner product (the identity). It is however advisable to weight differently the low and high frequency components using a nonuniform inner product.

type: string

default: uniform

allowed: 'uniform','nonuniform'

example: mixing.ipScheme = 'uniform'

mixing.invJ0

Initial inverse Jacobian. The initial inverse Jacobian is necessary in quasi-Newton mixing methods. It is by default linear, in which case the initial inverse Jacobian is A*I, where A = mixing.beta. It can also be ‘kerker’, in which case the initial inverse Jacobian is A*q^2/(q^2+q0^2), where q0 is controlled by mixing.kerkerNorm.

type: string

default: linear

allowed: 'kerker','linear'

example: mixing.invJ0 = 'kerker'

mixing.kerkerNorm

If mixing.invJ0 = ‘kerker’, the initial inverse Jacobian is A*q^2/(q^2+q0^2), where q0 is set by mixing.kerkerNorm. For a homogeneous electron gas, q0^2 = 4*k_F/pi, where k_F is the Fermi momentum.

type: scalar

default: 0.8

example: mixing.kerkerNorm = 2.15

mixing.maxhistory

Maximal number of trial functions retained to compute the new trial function. For example, in a calculation doing density mixing with mixing.maxhistory = 10, RESCU will estimate the next trial density based on the densities of the last 10 iterations.

type: scalar

default: 20

example: mixing.maxhistory = 10

mixing.method

If mixing.method is equal to ‘linear’ and ‘pulay’ RESCU will use the mixing method of the same name. If mixing.method is equal to ‘broyden’ RESCU will use the Broyden method of Srivastava. If mixing.method is equal to ‘broyden2’ RESCU will use the Broyden method of Johnson, which is usually less aggressive but more stable than that of Srivastava.

type: string

default: 'broyden'

allowed: 'broyden','broyden2','linear','pulay'

example: mixing.method = 'pulay'

mixing.tol

For ‘self-consistent’ (ground state) calculations, the self-consistent procedure stops if the charge variation per valence electron is less than mixing.tol(1) and the total energy variation per valence electron is less than mixing.tol(2). Note that if mixing.type = ‘potential’, there is no iteration-dependent input density, and hence the charge variation is calculated between iterations instead of between the input and output charges at a given step. For ‘dfpt-xxx’ calculations, the self-consistent procedure stops if the linear charge perturbation variation is less than mixing.tol(1) and the linear potential perturbation variation is less than mixing.tol(2). The variations are relative in this case, which means that mixing.tol controls the number of converged significant digits instead of the absolute convergence precision.

type: [1,2]

default: [1e-05,1e-05]

example: mixing.tol = [1e-6 1e0]

mixing.type

Determine whether to mix the density, density-matrix or the potential; if mixing.type = ‘potential’, V_H + V_X + V_C is mixed. ‘density-matrix’ is imposed for hybrid functional calculations.

type: string

default: 'potential'

allowed: 'density','density-matrix','potential'

example: mixing.type = 'density'