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'