Skip to content

Commit f153acf

Browse files
Docs: clarify Kerker bypass conditions
Document the charge and magnetic mixing thresholds that bypass Kerker preconditioning, and clarify that mixing_gg0_min does not change those fixed thresholds.
1 parent df5567a commit f153acf

3 files changed

Lines changed: 24 additions & 12 deletions

File tree

docs/advanced/input_files/input-main.md

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1351,8 +1351,8 @@
13511351
### mixing_gg0
13521352

13531353
- **Type**: Real
1354-
- **Description**: Whether to perfom Kerker scaling for charge density.
1355-
- >0: The high frequency wave vectors will be suppressed by multiplying a scaling factor. Setting mixing_gg0 = 1.0 is normally a good starting point. Kerker preconditioner will be automatically turned off if mixing_beta <= 0.1.
1354+
- **Description**: Controls the Kerker preconditioner for charge-density mixing.
1355+
- >0: Enables Kerker scaling to suppress long-wavelength (small-G) charge-density fluctuations. Setting mixing_gg0 = 1.0 is normally a good starting point. This setting has no effect when mixing_beta <= 0.1 because the charge-density Kerker preconditioner is bypassed.
13561356
- 0: No Kerker scaling is performed.
13571357

13581358
For systems that are difficult to converge, particularly metallic systems, enabling Kerker scaling may aid in achieving convergence.
@@ -1361,13 +1361,17 @@
13611361
### mixing_gg0_mag
13621362

13631363
- **Type**: Real
1364-
- **Description**: Whether to perfom Kerker preconditioner of magnetic density. Note: we do not recommand to open Kerker preconditioner of magnetic density unless the system is too hard to converge.
1364+
- **Description**: Controls the Kerker preconditioner for magnetic-density mixing. It is disabled by default and is generally only recommended for systems whose magnetic density is difficult to converge.
1365+
1366+
The magnetic-density Kerker preconditioner is bypassed when mixing_beta_mag <= 0.1, so mixing_gg0_mag has no effect in that regime. It is also unavailable when the charge-density Kerker preconditioner itself is bypassed.
13651367
- **Default**: 0.0
13661368

13671369
### mixing_gg0_min
13681370

13691371
- **Type**: Real
1370-
- **Description**: The minimum kerker coefficient.
1372+
- **Description**: Sets the lower bound used by the Kerker filter. The lower bound is evaluated as mixing_gg0_min / mixing_beta for charge-density mixing and mixing_gg0_min / mixing_beta_mag for magnetic-density mixing.
1373+
1374+
In the current implementation, the automatic bypass thresholds are fixed independently of mixing_gg0_min: charge-density Kerker is bypassed when mixing_beta <= 0.1, and magnetic-density Kerker is bypassed when mixing_beta_mag <= 0.1. Changing mixing_gg0_min does not change these thresholds or re-enable Kerker.
13711375
- **Default**: 0.1
13721376

13731377
### mixing_angle

docs/parameters.yaml

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -765,8 +765,8 @@ parameters:
765765
category: Electronic structure
766766
type: Real
767767
description: |
768-
Whether to perfom Kerker scaling for charge density.
769-
* >0: The high frequency wave vectors will be suppressed by multiplying a scaling factor. Setting mixing_gg0 = 1.0 is normally a good starting point. Kerker preconditioner will be automatically turned off if mixing_beta <= 0.1.
768+
Controls the Kerker preconditioner for charge-density mixing.
769+
* >0: Enables Kerker scaling to suppress long-wavelength (small-G) charge-density fluctuations. Setting mixing_gg0 = 1.0 is normally a good starting point. This setting has no effect when mixing_beta <= 0.1 because the charge-density Kerker preconditioner is bypassed.
770770
* 0: No Kerker scaling is performed.
771771
772772
For systems that are difficult to converge, particularly metallic systems, enabling Kerker scaling may aid in achieving convergence.
@@ -777,15 +777,19 @@ parameters:
777777
category: Electronic structure
778778
type: Real
779779
description: |
780-
Whether to perfom Kerker preconditioner of magnetic density. Note: we do not recommand to open Kerker preconditioner of magnetic density unless the system is too hard to converge.
780+
Controls the Kerker preconditioner for magnetic-density mixing. It is disabled by default and is generally only recommended for systems whose magnetic density is difficult to converge.
781+
782+
The magnetic-density Kerker preconditioner is bypassed when mixing_beta_mag <= 0.1, so mixing_gg0_mag has no effect in that regime. It is also unavailable when the charge-density Kerker preconditioner itself is bypassed.
781783
default_value: "0.0"
782784
unit: ""
783785
availability: ""
784786
- name: mixing_gg0_min
785787
category: Electronic structure
786788
type: Real
787789
description: |
788-
The minimum kerker coefficient.
790+
Sets the lower bound used by the Kerker filter. The lower bound is evaluated as mixing_gg0_min / mixing_beta for charge-density mixing and mixing_gg0_min / mixing_beta_mag for magnetic-density mixing.
791+
792+
In the current implementation, the automatic bypass thresholds are fixed independently of mixing_gg0_min: charge-density Kerker is bypassed when mixing_beta <= 0.1, and magnetic-density Kerker is bypassed when mixing_beta_mag <= 0.1. Changing mixing_gg0_min does not change these thresholds or re-enable Kerker.
789793
default_value: "0.1"
790794
unit: ""
791795
availability: ""

source/source_io/module_parameter/read_input_item_elec_stru.cpp

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -711,8 +711,8 @@ For systems that are difficult to converge, one could try increasing the value o
711711
item.annotation = "mixing parameter in kerker";
712712
item.category = "Electronic structure";
713713
item.type = "Real";
714-
item.description = R"(Whether to perfom Kerker scaling for charge density.
715-
* >0: The high frequency wave vectors will be suppressed by multiplying a scaling factor. Setting mixing_gg0 = 1.0 is normally a good starting point. Kerker preconditioner will be automatically turned off if mixing_beta <= 0.1.
714+
item.description = R"(Controls the Kerker preconditioner for charge-density mixing.
715+
* >0: Enables Kerker scaling to suppress long-wavelength (small-G) charge-density fluctuations. Setting mixing_gg0 = 1.0 is normally a good starting point. This setting has no effect when mixing_beta <= 0.1 because the charge-density Kerker preconditioner is bypassed.
716716
* 0: No Kerker scaling is performed.
717717
718718
For systems that are difficult to converge, particularly metallic systems, enabling Kerker scaling may aid in achieving convergence.)";
@@ -727,7 +727,9 @@ For systems that are difficult to converge, particularly metallic systems, enabl
727727
item.annotation = "mixing parameter in kerker";
728728
item.category = "Electronic structure";
729729
item.type = "Real";
730-
item.description = "Whether to perfom Kerker preconditioner of magnetic density. Note: we do not recommand to open Kerker preconditioner of magnetic density unless the system is too hard to converge.";
730+
item.description = R"(Controls the Kerker preconditioner for magnetic-density mixing. It is disabled by default and is generally only recommended for systems whose magnetic density is difficult to converge.
731+
732+
The magnetic-density Kerker preconditioner is bypassed when mixing_beta_mag <= 0.1, so mixing_gg0_mag has no effect in that regime. It is also unavailable when the charge-density Kerker preconditioner itself is bypassed.)";
731733
item.default_value = "0.0";
732734
item.unit = "";
733735
item.availability = "";
@@ -739,7 +741,9 @@ For systems that are difficult to converge, particularly metallic systems, enabl
739741
item.annotation = "the minimum kerker coefficient";
740742
item.category = "Electronic structure";
741743
item.type = "Real";
742-
item.description = "The minimum kerker coefficient.";
744+
item.description = R"(Sets the lower bound used by the Kerker filter. The lower bound is evaluated as mixing_gg0_min / mixing_beta for charge-density mixing and mixing_gg0_min / mixing_beta_mag for magnetic-density mixing.
745+
746+
In the current implementation, the automatic bypass thresholds are fixed independently of mixing_gg0_min: charge-density Kerker is bypassed when mixing_beta <= 0.1, and magnetic-density Kerker is bypassed when mixing_beta_mag <= 0.1. Changing mixing_gg0_min does not change these thresholds or re-enable Kerker.)";
743747
item.default_value = "0.1";
744748
item.unit = "";
745749
item.availability = "";

0 commit comments

Comments
 (0)