You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Feature: a new mixing method for magnetic calculations (#3226)
* improved implementation of kerker preconditioner
* fix bug in charge_mixing_test
* make corresponding changes in Documentation after PR#3133
* extra add
* new mixing method for nspin=2
* add some comment for gg=0
* nspin2 mixing method for pw
* remove autoset and set default
* fix charge_mixing_test & add some documentation of mixing_beta_mag/mixing_gg0_mag
* use old mixing to support double_grid
* fix fatal error in CI
* recover Autotest.sh
* 108
* 108
* revert 101_PW_15_lowz
* revert 107_PW_OK
* revert 186_PW_KG_100
* revert 186_PW_SKG_10D10S
* revert 201_NO_15_f_pseudopots
* revert 201_NO_KP_DJ_CF_CS_GaAs
* revert 204_NO_KP_AFM
* revert 207_NO_KP_OHS_SPIN4
* revert 207_NO_KP_OTdH
* revert 207_NO_OK
* revert 220_NO_KP_MD_wfc_out
* revert 101_PW_15_pseudopots_LibxcLDA
* Autotest.sh
* fix bug in deepks_tests
* fix bugs in io_input_test
* update ref of 260 and 360
* do not use renormalize_rho in pw calculations
* set mixing_gg0=0.0 for 601_TD_DFT tests
* change mixing_type=plain to broyden
* add two_beta to replace NSPIN in mixing class
* add UnitTests of inner_product_recip_new1/2 & kerker_recip_new
Copy file name to clipboardExpand all lines: docs/advanced/input_files/input-main.md
+19-6Lines changed: 19 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -964,15 +964,21 @@ calculations.
964
964
-**Type**: Real
965
965
-**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.
966
966
We recommend the following options:
967
-
-**-10.0**: Program will auto set `mixing_beta` and `mixing_gg0` before charge mixing method starts.
968
-
- Default values of metal system (bandgap <= 1.0 eV) are `mixing_beta=0.2` and `mixing_gg0=1.0`;
969
-
- Default values of other systems (bandgap > 1.0eV) are `mixing_beta=0.7` and `mixing_gg0=1.0`.
967
+
-**0.8**: `nspin=1`
968
+
-**0.4**: `nspin=2`
969
+
-**0.2**: `nspin=4`
970
970
-**0**: keep charge density unchanged, usually used for restarting with `init_chg=file` or testing.
971
971
-**0.1 or less**: if convergence of SCF calculation is difficult to reach, please try `0 < mixing_beta < 0.1`.
972
972
973
-
Note: For low-dimensional large systems, the setup of `mixing_beta=0.1`, `mixing_ndim=20`, and `mixing_gg0=1.5` usually works well.
973
+
Note: For low-dimensional large systems, the setup of `mixing_beta=0.1`, `mixing_ndim=20`, and `mixing_gg0=1.0` usually works well.
974
974
975
-
-**Default**: -10.0
975
+
-**Default**: 0.8 for `nspin=1`, 0.4 for `nspin=2`, 0.2 for `nspin=4`.
976
+
977
+
### mixing_beta_mag
978
+
979
+
-**Type**: Real
980
+
-**Description**: Mixing parameter of magnetic density.
981
+
-**Default**: `4*mixing_beta`
976
982
977
983
### mixing_ndim
978
984
@@ -985,11 +991,18 @@ We recommend the following options:
985
991
### mixing_gg0
986
992
987
993
-**Type**: Real
988
-
-**Description**: Whether to perfom Kerker scaling.
994
+
-**Description**: Whether to perfom Kerker scaling for charge density.
989
995
-**>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`.
990
996
-**0**: No Kerker scaling is performed.
991
997
992
998
For systems that are difficult to converge, particularly metallic systems, enabling Kerker scaling may aid in achieving convergence.
999
+
-**Default**: 1.0
1000
+
1001
+
### mixing_gg0_mag
1002
+
1003
+
-**Type**: Real
1004
+
-**Description**: Whether to perfom Kerker preconditioner of magnetic density.
1005
+
Note: we do not recommand to open Kerker preconditioner of magnetic density unless the system is too hard to converge.
0 commit comments