-
Notifications
You must be signed in to change notification settings - Fork 145
Feature: a promising angle mixing method for non-colinear calculations #3356
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
939c90d
9856c26
a0afc97
632bbd5
cb0439e
7a71a0b
129d62d
8922901
44ade69
d317268
d56f351
841adbb
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -77,6 +77,7 @@ | |
| - [mixing\_gg0\_min](#mixing_gg0_min) | ||
| - [mixing\_tau](#mixing_tau) | ||
| - [mixing\_dftu](#mixing_dftu) | ||
| - [mixing\_angle](#mixing_angle) | ||
| - [gamma\_only](#gamma_only) | ||
| - [printe](#printe) | ||
| - [scf\_nmax](#scf_nmax) | ||
|
|
@@ -1015,6 +1016,17 @@ We recommend the following options: | |
| - **Description**: the minimum kerker coefficient | ||
| - **Default**: 0.1 | ||
|
|
||
| ### mixing_angle | ||
|
|
||
| - **Type**: Real | ||
| - **Availability**: Only relevant for non-colinear calculations `nspin=4`. | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Users often set "lspinorb=1" or "noncolin=1" rather than "nspin=4". |
||
| - **Description**: Normal broyden mixing can give the converged result for a given magnetic configuration. If one is not interested in the energies of a given magnetic configuration but wants to determine the ground state by relaxing the magnetic moments’ directions, one cannot rely on the standard Broyden mixing algorithm. To enhance the ability to find correct magnetic configuration for non-colinear calculations, ABACUS implements a promising mixing method proposed by J. Phys. Soc. Jpn. 82 (2013) 114706. Here, `mixing_angle` is the angle mixing parameter. In fact, only `mixing_angle=1.0` is implemented currently. | ||
| - **<=0**: Normal broyden mixing for $m_{x}, m_{y}, m_{z}$ | ||
| - **>0**: Angle mixing for the modulus $|m|$ with `mixing_angle=1.0` | ||
| - **Default**: -10.0 | ||
|
|
||
| Note: In new angle mixing, you should set `mixing_beta_mag >> mixing_beta`. The setup of `mixing_beta=0.2`, `mixing_beta_mag=1.0` usually works well. | ||
|
|
||
| ### mixing_tau | ||
|
|
||
| - **Type**: Boolean | ||
|
|
||
Large diffs are not rendered by default.
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -235,6 +235,7 @@ class Input | |
| double mixing_beta_mag; | ||
| double mixing_gg0_mag; | ||
| double mixing_gg0_min; | ||
| double mixing_angle; | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Please add unit-test for this mixing_angle parameter. |
||
|
|
||
| bool mixing_tau; // whether to mix tau in mgga | ||
| bool mixing_dftu; //whether to mix locale in DFT+U | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please update the description in https://abacus.deepmodeling.com/en/latest/advanced/scf/converge.html#charge-mixing for new mixing parameters.