Skip to content

Commit 5541227

Browse files
Docs: make corresponding changes with PR#3133 (#3139)
* improved implementation of kerker preconditioner * fix bug in charge_mixing_test * make corresponding changes in Documentation after PR#3133 * extra add
1 parent 4865b77 commit 5541227

File tree

3 files changed

+5
-6
lines changed

3 files changed

+5
-6
lines changed

docs/advanced/input_files/input-main.md

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -929,9 +929,8 @@ calculations.
929929
- **Description**: In general, the formula of charge mixing can be written as $\rho_{new} = \rho_{old} + \beta * \rho_{update}$, where $\rho_{new}$ represents the new charge density after charge mixing, $\rho_{old}$ represents the charge density in previous step, $\rho_{update}$ is obtained through various mixing methods, and $\beta$ is set by the parameter `mixing_beta`. A lower value of 'mixing_beta' results in less influence of $\rho_{update}$ on $\rho_{new}$, making the self-consistent field (SCF) calculation more stable. However, it may require more steps to achieve convergence.
930930
We recommend the following options:
931931
- **-10.0**: Program will auto set `mixing_beta` and `mixing_gg0` before charge mixing method starts.
932-
- Default values of transition metal system are `mixing_beta=0.2` and `mixing_gg0=1.5`;
933-
- Default values of metal system (bandgap <= 1.0 eV) are `mixing_beta=0.2` and `mixing_gg0=0.0`;
934-
- Default values of other systems (bandgap > 1.0eV) are `mixing_beta=0.7` and `mixing_gg0=0.0`.
932+
- Default values of metal system (bandgap <= 1.0 eV) are `mixing_beta=0.2` and `mixing_gg0=1.0`;
933+
- Default values of other systems (bandgap > 1.0eV) are `mixing_beta=0.7` and `mixing_gg0=1.0`.
935934
- **0**: keep charge density unchanged, usually used for restarting with `init_chg=file` or testing.
936935
- **0.1 or less**: if convergence of SCF calculation is difficult to reach, please try `0 < mixing_beta < 0.1`.
937936

@@ -951,7 +950,7 @@ We recommend the following options:
951950

952951
- **Type**: Real
953952
- **Description**: Whether to perfom Kerker scaling.
954-
- **>0**: The high frequency wave vectors will be suppressed by multiplying a scaling factor $\frac{k^2}{k^2+gg0^2}$. Setting `mixing_gg0 = 1.5` is normally a good starting point.
953+
- **>0**: The high frequency wave vectors will be suppressed by multiplying a scaling factor $\frac{k^2}{k^2+gg0^2}$. Setting `mixing_gg0 = 1.0` is normally a good starting point. Kerker preconditioner will be automatically turned off if `mixing_beta <= 0.1`.
955954
- **0**: No Kerker scaling is performed.
956955

957956
For systems that are difficult to converge, particularly metallic systems, enabling Kerker scaling may aid in achieving convergence.

docs/advanced/scf/converge.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ By mixing the electron density with that obtained from previous steps, numerical
88

99
For each of the mixing types, we also provide variables for controlling relevant parameters, including `mixing_beta`, `mixing_ndim`, and `mixing_gg0`.
1010

11-
The default choice is `broyden`, which should work fine in most cases. If convergence issue arises in metallic systems, inclusion of Kerker preconditioning may be helpful, which can be achieved by setting [mixing_gg0](../input_files/input-main.md#mixing_gg0) to be a positive number. For the default broyden method, a choice of 1.5 might be a good start.
11+
The default choice is `broyden`, which should work fine in most cases. If convergence issue arises in metallic systems, inclusion of Kerker preconditioning may be helpful, which can be achieved by setting [mixing_gg0](../input_files/input-main.md#mixing_gg0) to be a positive number. For the default broyden method, a choice of 1.0 might be a good start.
1212

1313
A large `mixing_beta` means a larger change in electron density for each SCF step. For well-behaved systems, a larger `mixing_beta` leads to faster convergence. However, for some difficult cases, a smaller `mixing_beta` is preferred to avoid numerical instabilities.
1414

docs/community/faq.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ This is usually caused by overloading of CPUs' memory without specifying thread
7070

7171
**2. My relaxation failed. How to deal with it?**
7272

73-
This is usually caused by the difficulty in converging charge density. Reducing charge mixing coefficient (`mixing_beta`) might help. For large systems up to hundreds of atoms, it is suggested to choose the Kerker mixing method by setting parameter "mixing_gg0" as "1.5".
73+
This is usually caused by the difficulty in converging charge density. Reducing charge mixing coefficient (`mixing_beta`) might help. For large systems up to hundreds of atoms, it is suggested to choose the Kerker mixing method by setting parameter "mixing_gg0" as "1.0".
7474

7575
Sometimes, loose convergence threshold of charge density (parameter "scf_thr") will cause atomic forces not correctly enough, please set it at most "1e-7" for relaxation calculation.
7676

0 commit comments

Comments
 (0)