Skip to content

Commit cac6351

Browse files
committed
Merge branch 'develop' into Charge_template
Conflicts: source/source_pw/module_ofdft/evolve_ofdft.cpp source/source_pw/module_ofdft/evolve_ofdft.h
2 parents ef0d0e6 + ed0b428 commit cac6351

File tree

89 files changed

+1210
-358
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

89 files changed

+1210
-358
lines changed

docs/advanced/input_files/input-main.md

Lines changed: 29 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -557,6 +557,7 @@ These variables are used to control general system parameters.
557557
- If ([dft_fuctional](#dft_functional)==hse/hf/pbe0/scan0 or [rpa](#rpa)==True).
558558
- If [efield_flag](#efield_flag)==1
559559
- 1: else
560+
- **Note**: When symmetry is enabled (value 1), k-points are reduced to the irreducible Brillouin zone (IBZ). For explicit k-point lists with custom weights (see [KPT file](./kpt.md#k-point-weights-and-symmetry)), the custom weights are preserved during symmetry reduction. For Monkhorst-Pack grids, uniform weights are used.
560561

561562
### symmetry_prec
562563

@@ -1369,28 +1370,46 @@ Note: In new angle mixing, you should set `mixing_beta_mag >> mixing_beta`. The
13691370
### lspinorb
13701371

13711372
- **Type**: Boolean
1372-
- **Description**: Whether to consider spin-orbital coupling effect in the calculation.
1373-
- True: Consider spin-orbital coupling effect, and `nspin` is also automatically set to 4.
1374-
- False: Do not consider spin-orbital coupling effect.
1373+
- **Description**: Whether to consider spin-orbit coupling (SOC) effect in the calculation.
1374+
- **True**: Consider spin-orbit coupling effect. When enabled:
1375+
- `nspin` is automatically set to 4 (noncollinear spin representation)
1376+
- Symmetry is automatically disabled (SOC breaks inversion symmetry)
1377+
- **Requires** full-relativistic pseudopotentials with `has_so=true` in the UPF header
1378+
- **False**: Do not consider spin-orbit coupling effect.
1379+
- **Common Error**: "no soc upf used for lspinorb calculation" - ensure you are using full-relativistic pseudopotentials
1380+
- See [Spin-polarization and SOC](../scf/spin.md#soc-effects) for detailed usage and examples
13751381
- **Default**: False
13761382

13771383
### noncolin
13781384

13791385
- **Type**: Boolean
1380-
- **Description**: Whether to allow non-collinear polarization, in which case the coupling between spin up and spin down will be taken into account.
1381-
- True: Allow non-collinear polarization, and `nspin` is also automatically set to 4.
1382-
- False: Do not allow non-collinear polarization.
1386+
- **Description**: Whether to allow non-collinear magnetic moments, where magnetization can point in arbitrary directions (x, y, z components) rather than being constrained to the z-axis.
1387+
- **True**: Allow non-collinear polarization. When enabled:
1388+
- `nspin` is automatically set to 4
1389+
- Wave function dimension is doubled (`npol=2`), and the number of occupied states is doubled
1390+
- Charge density has 4 components (Pauli spin matrices: ρ_total, ρ_x, ρ_y, ρ_z)
1391+
- **Constraint**: Cannot be used with `gamma_only=true`
1392+
- Can be combined with `lspinorb=true` for SOC effects with non-collinear magnetism
1393+
- **False**: Do not allow non-collinear polarization (magnetization constrained to z-axis).
1394+
- **Relationship with lspinorb**:
1395+
- `noncolin=0, lspinorb=1`: SOC with z-axis magnetism only (for non-magnetic materials with SOC)
1396+
- `noncolin=1, lspinorb=0`: Non-collinear magnetism without SOC
1397+
- `noncolin=1, lspinorb=1`: Both non-collinear magnetism and SOC
1398+
- See [Noncollinear Spin Polarized Calculations](../scf/spin.md#noncollinear-spin-polarized-calculations) for usage examples
13831399
- **Default**: False
13841400

13851401
### soc_lambda
13861402

13871403
- **Type**: Real
1388-
- **Availability**: Relevant for soc calculations.
1389-
- **Description**: Sometimes, for some real materials, both scalar-relativistic and full-relativistic can not describe the exact spin-orbit coupling. Artificial modulation may help in such cases.
1404+
- **Availability**: Only works when `lspinorb=true`
1405+
- **Description**: Modulates the strength of spin-orbit coupling effect. Sometimes, for some real materials, both scalar-relativistic and full-relativistic pseudopotentials cannot describe the exact spin-orbit coupling. Artificial modulation may help in such cases.
13901406

1391-
`soc_lambda`, which has value range [0.0, 1.0] , is used for modulate SOC effect.
1407+
`soc_lambda`, which has value range [0.0, 1.0], is used to modulate SOC effect:
1408+
- `soc_lambda 0.0`: Scalar-relativistic case (no SOC)
1409+
- `soc_lambda 1.0`: Full-relativistic case (full SOC)
1410+
- Intermediate values: Partial-relativistic SOC (interpolation between scalar and full)
13921411

1393-
In particular, `soc_lambda 0.0` refers to scalar-relativistic case and `soc_lambda 1.0` refers to full-relativistic case.
1412+
**Use case**: When experimental or high-level theoretical results suggest that the SOC effect is weaker or stronger than what full-relativistic pseudopotentials predict, you can adjust this parameter to match the target behavior.
13941413
- **Default**: 1.0
13951414

13961415
### dfthalf_type

docs/advanced/input_files/kpt.md

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,40 @@ Direct //`Direct' or `Cartesian' coordinate
5858
0.5 0.5 0.5 0.125
5959
```
6060

61+
### K-point Weights and Symmetry
62+
63+
When explicitly setting k-points, you can specify custom weights for each k-point. These weights determine the contribution of each k-point to the total energy and density calculations.
64+
65+
**Important notes about k-point weights:**
66+
67+
1. **Custom weights are preserved**: When using explicit k-point lists (non-Monkhorst-Pack), ABACUS preserves the custom weights you specify, even when symmetry operations are applied to reduce the k-points to the irreducible Brillouin zone (IBZ).
68+
69+
2. **Symmetry reduction**: When [`symmetry`](./input-main.md#symmetry) is set to 1, ABACUS will analyze the crystal symmetry and reduce the k-point set to the irreducible Brillouin zone. During this reduction:
70+
- For **Monkhorst-Pack grids** (automatically generated): All k-points have uniform weights (1/N where N is the total number of k-points)
71+
- For **explicit k-point lists**: Custom weights are preserved and properly combined when symmetry-equivalent k-points are merged
72+
73+
3. **Weight normalization**: After symmetry reduction, k-point weights are normalized so that their sum equals `degspin` (2 for non-spin-polarized calculations, 1 for spin-polarized calculations).
74+
75+
**Example with custom weights:**
76+
77+
```
78+
K_POINTS
79+
5
80+
Direct
81+
0.0 0.0 0.0 0.1 // Gamma point with weight 0.1
82+
0.5 0.0 0.0 0.2 // X point with weight 0.2
83+
0.0 0.5 0.0 0.3 // Y point with weight 0.3
84+
0.5 0.5 0.0 0.2 // M point with weight 0.2
85+
0.0 0.0 0.5 0.2 // Z point with weight 0.2
86+
```
87+
88+
In this example, different k-points have different weights, which might be useful for:
89+
- Special sampling schemes
90+
- Convergence testing with specific k-point importance
91+
- Custom integration methods
92+
93+
> **Note**: When using custom weights with symmetry, ensure that your weight distribution is consistent with the crystal symmetry. ABACUS will preserve your weights during IBZ reduction, but inconsistent weights may lead to unexpected results.
94+
6195
[back to top](#the-kpt-file)
6296

6397
## Band structure calculations

docs/advanced/pp_orb.md

Lines changed: 51 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,57 @@ $$
6565

6666
## Pseudopotentials
6767
### Supported formats
68-
ABACUS supports both norm-conserving and ultrasoft pseudopotentials. For norm-conserving pseudopotentials, UPF, UPF2, VWR, and BLPS formats are supported. For ultrasoft pseudopotentials, UPF and UPF2 formats are supported.
68+
ABACUS supports both norm-conserving and ultrasoft pseudopotentials. For norm-conserving pseudopotentials, UPF, UPF2, VWR, and BLPS formats are supported. For ultrasoft pseudopotentials, UPF and UPF2 formats are supported.
69+
70+
### Pseudopotentials for SOC Calculations
71+
72+
When performing spin-orbit coupling (SOC) calculations with `lspinorb=1`, specific pseudopotential requirements must be met:
73+
74+
#### Identifying SOC Pseudopotentials
75+
76+
Full-relativistic pseudopotentials suitable for SOC calculations can be identified by checking the UPF file header (`PP_HEADER` section):
77+
78+
```xml
79+
<PP_HEADER
80+
...
81+
relativistic="full"
82+
has_so="T"
83+
...
84+
/>
85+
```
86+
87+
- **`relativistic="full"`**: Indicates a full-relativistic pseudopotential
88+
- **`has_so="T"` or `has_so="1"`**: Indicates SOC information is included in the pseudopotential
89+
90+
#### Usage Rules
91+
92+
1. **SOC calculations** (`lspinorb=1`):
93+
- **Required**: Full-relativistic pseudopotentials with `has_so=true`
94+
- **Error if not met**: "no soc upf used for lspinorb calculation"
95+
96+
2. **Non-SOC calculations** (`lspinorb=0`):
97+
- **Flexible**: Can use either scalar-relativistic (`relativistic="scalar"`) or full-relativistic pseudopotentials
98+
- **Automatic conversion**: If full-relativistic PP is used, ABACUS automatically transforms it to scalar-relativistic version
99+
100+
3. **Ultrasoft pseudopotentials (USPP)**:
101+
- **Constraint**: Full-relativistic USPP must be used with `lspinorb=true`
102+
- **Warning if violated**: "FR-USPP please use lspinorb=.true."
103+
104+
#### Validation by ABACUS
105+
106+
ABACUS performs automatic validation when reading pseudopotentials:
107+
- Checks if `lspinorb=1` but pseudopotential has `has_so=false` → terminates with error
108+
- Checks if full-relativistic USPP is used without `lspinorb=1` → shows warning
109+
- Automatically averages SOC-related beta functions when `lspinorb=0`
110+
111+
#### Where to Find SOC Pseudopotentials
112+
113+
For SOC calculations, download full-relativistic pseudopotentials from:
114+
- **SG15_ONCV**: [quantum-simulation.org](http://quantum-simulation.org/potentials/sg15_oncv/upf/) - widely used in ABACUS
115+
- **PseudoDOJO**: [pseudo-dojo.org](http://www.pseudo-dojo.org/) - provides both scalar and full-relativistic versions
116+
- **ABACUS official**: [abacus.ustc.edu.cn](http://abacus.ustc.edu.cn/pseudo/list.htm) - includes both pseudopotentials and numerical atomic orbitals
117+
118+
For more details on SOC calculations, see [Spin-polarization and SOC](./scf/spin.md#soc-effects).
69119

70120
### Usage
71121
For more information about pseudopotential usage, check the `ATOMIC_SPECIES` section in the specification of the [STRU file](./input_files/stru.md).

0 commit comments

Comments
 (0)