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
Copy file name to clipboardExpand all lines: docs/advanced/input_files/input-main.md
+20-4Lines changed: 20 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -37,6 +37,7 @@
37
37
-[ndx, ndy, ndz](#ndx-ndy-ndz)
38
38
-[pw\_seed](#pw_seed)
39
39
-[pw\_diag\_thr](#pw_diag_thr)
40
+
-[diago\_smooth\_ethr](#diago_smooth_ethr)
40
41
-[pw\_diag\_nmax](#pw_diag_nmax)
41
42
-[pw\_diag\_ndim](#pw_diag_ndim)
42
43
-[erf\_ecut](#erf_ecut)
@@ -777,6 +778,12 @@ These variables are used to control the plane wave related parameters.
777
778
-**Description**: Only used when you use `ks_solver = cg/dav/dav_subspace/bpcg`. It indicates the threshold for the first electronic iteration, from the second iteration the pw_diag_thr will be updated automatically. **For nscf calculations with planewave basis set, pw_diag_thr should be <= 1e-3.**
778
779
-**Default**: 0.01
779
780
781
+
### diago_smooth_ethr
782
+
783
+
-**Type**: bool
784
+
-**Description**: If `TRUE`, the smooth threshold strategy, which applies a larger threshold (10e-5) for the empty states, will be implemented in the diagonalization methods. (This strategy should not affect total energy, forces, and other ground-state properties, but computational efficiency will be improved.) If `FALSE`, the smooth threshold strategy will not be applied.
785
+
-**Default**: false
786
+
780
787
### pw_diag_nmax
781
788
782
789
-**Type**: Integer
@@ -1235,6 +1242,12 @@ Note: In new angle mixing, you should set `mixing_beta_mag >> mixing_beta`. The
1235
1242
-**Description**: To determine the number of old iterations' `drho` used in slope calculations.
1236
1243
-**Default**: `mixing_ndim`
1237
1244
1245
+
### sc_os_ndim
1246
+
1247
+
-**Type**: int
1248
+
-**Description**: To determine the number of old iterations to judge oscillation, it occured, more accurate lambda with DeltaSpin method would be calculated, only for PW base.
1249
+
-**Default**: 5
1250
+
1238
1251
### chg_extrap
1239
1252
1240
1253
-**Type**: String
@@ -1369,6 +1382,7 @@ These variables are used to control the geometry relaxation.
1369
1382
-**Description**: The methods to do geometry optimization.
1370
1383
- cg: using the conjugate gradient (CG) algorithm. Note that there are two implementations of the conjugate gradient (CG) method, see [relax_new](#relax_new).
1371
1384
- bfgs: using the Broyden–Fletcher–Goldfarb–Shanno (BFGS) algorithm.
1385
+
- bfgs_trad: using the traditional Broyden–Fletcher–Goldfarb–Shanno (BFGS) algorithm.
1372
1386
- cg_bfgs: using the CG method for the initial steps, and switching to BFGS method when the force convergence is smaller than [relax_cg_thr](#relax_cg_thr).
1373
1387
- sd: using the steepest descent (SD) algorithm.
1374
1388
- fire: the Fast Inertial Relaxation Engine method (FIRE), a kind of molecular-dynamics-based relaxation algorithm, is implemented in the molecular dynamics (MD) module. The algorithm can be used by setting [calculation](#calculation) to `md` and [md_type](#md_type) to `fire`. Also ionic velocities should be set in this case. See [fire](../md.md#fire) for more details.
@@ -2046,7 +2060,7 @@ Warning: this function is not robust enough for the current version. Please try
2046
2060
-**Type**: int
2047
2061
-**Availability**: numerical atomic orbital basis
2048
2062
-**Description**: Include V_delta label for DeePKS training. When `deepks_out_labels` is true and `deepks_v_delta` > 0, ABACUS will output h_base.npy, v_delta.npy and h_tot.npy(h_tot=h_base+v_delta).
2049
-
Meanwhile, when `deepks_v_delta` equals 1, ABACUS will also output v_delta_precalc.npy, which is used to calculate V_delta during DeePKS training. However, when the number of atoms grows, the size of v_delta_precalc.npy will be very large. In this case, it's recommended to set `deepks_v_delta` as 2, and ABACUS will output psialpha.npy and grad_evdm.npy but not v_delta_precalc.npy. These two files are small and can be used to calculate v_delta_precalc in the procedure of training DeePKS.
2063
+
Meanwhile, when `deepks_v_delta` equals 1, ABACUS will also output v_delta_precalc.npy, which is used to calculate V_delta during DeePKS training. However, when the number of atoms grows, the size of v_delta_precalc.npy will be very large. In this case, it's recommended to set `deepks_v_delta` as 2, and ABACUS will output phialpha.npy and grad_evdm.npy but not v_delta_precalc.npy. These two files are small and can be used to calculate v_delta_precalc in the procedure of training DeePKS.
2050
2064
-**Default**: 0
2051
2065
2052
2066
### deepks_out_unittest
@@ -2432,10 +2446,11 @@ These variables are relevant when using hybrid functionals.
2432
2446
### exx_ccp_rmesh_times
2433
2447
2434
2448
-**Type**: Real
2435
-
-**Description**: This parameter determines how many times larger the radial mesh required for calculating Columb potential is to that of atomic orbitals. For HSE, setting it to 1 is enough. But for PBE0, a much larger number must be used.
2449
+
-**Description**: This parameter determines how many times larger the radial mesh required for calculating Columb potential is to that of atomic orbitals. The value should be at least 1. Reducing this value can effectively increase the speed of self-consistent calculations using hybrid functionals.
2436
2450
-**Default**:
2437
-
- 1.5: if *[dft_functional](#dft_functional)==hse*
2438
-
- 5: else
2451
+
- 5: if *[dft_functional](#dft_functional)==hf/pbe0/scan0/muller/power/wp22*
2452
+
- 1.5: if *[dft_functional](#dft_functional)==hse/cwp22*
2453
+
- 1: else
2439
2454
2440
2455
### exx_distribute_type
2441
2456
@@ -2474,6 +2489,7 @@ These variables are relevant when using hybrid functionals.
2474
2489
-**Description**:
2475
2490
- True: Enforce LibRI to use `double` data type.
2476
2491
- False: Enforce LibRI to use `complex` data type.
2492
+
Setting it to True can effectively improve the speed of self-consistent calculations with hybrid functionals.
2477
2493
-**Default**: depends on the [gamma_only](#gamma_only) option
Copy file name to clipboardExpand all lines: docs/advanced/interface/Wannier90.md
+10-5Lines changed: 10 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,11 +2,11 @@
2
2
3
3
[Wannier90](http://www.wannier.org/) is a useful package to generating the maximally-localized Wannier functions (MLWFs), which can be used to compute advanced electronic properties. Some post-processing tools (such as WannierTools, etc.) will use MLWFs for further analysis and calculations.
4
4
5
-
Currently ABACUS provides an interface to Wannier90 package. The users are assumed to be familiar with the use of Wannier90. The ABACUS-Wannier90 interface is only suitable for nspin=1 or 2, not for nspin=4 or spin-orbit coupling (SOC).
5
+
Currently ABACUS provides an interface to Wannier90 package. The users are assumed to be familiar with the use of Wannier90. The ABACUS-Wannier90 interface is suitable for nspin=1, 2, 4 (including lspinorb=1).
6
6
7
7
To construct the MLWFs using the wave functions of ABACUS generally requires four steps. Here we use the diamond as an example which can be found in [examples/interface_wannier90/](https://github.com/abacusmodeling/abacus-develop/tree/develop/examples/interface_wannier90).
8
8
9
-
1. Enter the `ABACUS_towannier90/` folder, prepare a Wannier90 input file `diamond.win`, which is the main input file for Wannier90. Then To generate `diamond.nnkp` file by running Wannier90, which ABACUS will read later:
9
+
1. Enter the `ABACUS_towannier90_pw/` folder, prepare a Wannier90 input file `diamond.win`, which is the main input file for Wannier90. Then To generate `diamond.nnkp` file by running Wannier90, which ABACUS will read later:
10
10
11
11
```
12
12
wannier90 -pp diamond.win
@@ -73,17 +73,22 @@ To construct the MLWFs using the wave functions of ABACUS generally requires fou
73
73
```
74
74
INPUT_PARAMETERS
75
75
76
+
pseudo_dir ../../../tests/PP_ORB
77
+
orbital_dir ../../../tests/PP_ORB
76
78
ntype 1
77
79
ecutwfc 50
78
80
nbands 4
81
+
smearing_method fixed
79
82
calculation nscf
80
83
scf_nmax 50
81
84
pw_diag_thr 1.0e-12
82
-
scf_thr 1.0e-15
85
+
scf_thr 1.0e-13
83
86
init_chg file
84
-
symmetry 0
87
+
symmetry -1
85
88
towannier90 1
86
89
nnkpfile diamond.nnkp
90
+
basis_type pw
91
+
out_wannier_unk 0
87
92
```
88
93
89
94
There are seven interface-related parameters in the `INPUT` file:
@@ -97,7 +102,7 @@ To construct the MLWFs using the wave functions of ABACUS generally requires fou
97
102
- [out_wannier_unk](../input_files/input-main.md#out_wannier_unk): control whether to output the "UNK.*" file.
98
103
- [out_wannier_wvfn_formatted](../input_files/input-main.md#out_wannier_wvfn_formatted): control what format of the Wannier function file to output, `true`: output the formatted text file; `false`: output the binary file. Note that the `wvfn_formatted` option in `*.win` file (input file of Wannier90) has to be set accordingly with this option.
99
104
100
-
Note: You need to turn off the symmetry during the entire nscf calculation.
105
+
**Note: You need to turn off the symmetry during the entire nscf calculation.**
101
106
102
107
To setup the `KPT` file according to the `diamond.win` file, which is similar to "begin kpoints ..." in the `diamond.win` file:
Copy file name to clipboardExpand all lines: docs/advanced/opt.md
+3-1Lines changed: 3 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -22,7 +22,9 @@ In the nested procedure mentioned above, we used CG method to perform cell relax
22
22
23
23
The [BFGS method](https://en.wikipedia.org/wiki/Broyden%E2%80%93Fletcher%E2%80%93Goldfarb%E2%80%93Shanno_algorithm) is a quasi-Newton method for solving nonlinear optimization problem. It belongs to the class of quasi-Newton method where the Hessian matrix is approximated during the optimization process. If the initial point is not far from the extrema, BFGS tends to work better than gradient-based methods.
24
24
25
-
In ABACUS, we implemented the BFGS method for doing fixed-cell structural relaxation.
25
+
There is an alternative traditional BFGS method, which can be called by using the keyword 'bfgs_trad'. The bfgs_trad method is a quasi-Newton method that substitute an approximate matrix B for the Hessian matrix. The main difference between 'bfgs' and 'bfgs_trad' is that 'bfgs' updates the inverse of matrix B while 'bfgs_trad' updates matrix B and obtains the inverse of B by solving the matrix eigenvalues and taking the reciprocal of the eigenvalues. Both methods are mathematically equivalent, but in some cases, 'bfgs_trad' performs better.
26
+
27
+
In ABACUS, we implemented the BFGS method for doing fixed-cell structural relaxation. Users can choose which implementation of BFGS to call by adding the 'bfgs_trad' or 'bfgs' parameter.
Copy file name to clipboardExpand all lines: docs/quick_start/easy_install.md
+26-19Lines changed: 26 additions & 19 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,17 @@
1
1
# Easy Installation
2
2
3
-
This guide helps you install ABACUS with basic features. **For DeePKS, DeePMD and Libxc support, or building with `make`, please refer to [the advanced installation guide](../advanced/install.md)** after going through this page. We recommend building ABACUS with `cmake` to avoid dependency issues. We recommend compiling ABACUS(and possibly its requirements) from the source code using the latest compiler for the best performace. You can also deploy ABACUS **without building** by [Docker](#container-deployment) or [conda](#install-by-conda). Please note that ABACUS only supports Linux; for Windows users, please consider using [WSL](https://learn.microsoft.com/en-us/windows/wsl/) or docker.
3
+
This guide helps you install ABACUS with basic features. **For DeePKS, DeePMD and Libxc support, or building with `make`, please refer to [the advanced installation guide](../advanced/install.md)** after going through this page. We recommend building ABACUS with `cmake` to avoid dependency issues. We recommend compiling ABACUS(and possibly its requirements) from the source code using the latest compiler for the best performace. You can try [toolchain](#install-requirements-by-toolchain) to install ABACUS and dependencies in a source-code compilation way with convience. You can also deploy ABACUS **without building** by [Docker](#container-deployment) or [conda](#install-by-conda). Please note that ABACUS only supports Linux; for Windows users, please consider using [WSL](https://learn.microsoft.com/en-us/windows/wsl/) or docker.
4
+
5
+
## Get ABACUS source code
6
+
7
+
ABACUS source code can be obtained via one of the following choices:
8
+
9
+
- Clone the whole repo with git: `git clone https://github.com/deepmodeling/abacus-develop.git`
10
+
- Clone the minimum required part of repo: `git clone https://github.com/deepmodeling/abacus-develop.git --depth=1`
11
+
- Download the latest source code without git: `wget https://github.com/deepmodeling/abacus-develop/archive/refs/heads/develop.zip`
12
+
- Get the source code of a stable version [here](https://github.com/deepmodeling/abacus-develop/releases)
13
+
- If you have connection issues accessing GitHub, please try out our official [Gitee repo](https://gitee.com/deepmodeling/abacus-develop/): e.g. `git clone https://gitee.com/deepmodeling/abacus-develop.git`. This Gitee repo is updated synchronously with GitHub.
14
+
4
15
5
16
## Prerequisites
6
17
@@ -43,32 +54,22 @@ Please refer to our [guide](https://github.com/deepmodeling/abacus-develop/wiki/
43
54
44
55
We offer a set of [toolchain](https://github.com/deepmodeling/abacus-develop/tree/develop/toolchain)
45
56
scripts to compile and install all the requirements
46
-
automatically and suitable for machine characteristic in an online or offline way.
47
-
The toolchain can be downloaded with ABACUS repo, which is easily used and can
48
-
have a convenient installation under HPC environment in both `GNU` or `Intel-oneAPI` toolchain.
49
-
Sometimes, ABACUS by toolchain installation may have highly efficient performance.
50
-
A Tutorial for using this toolchain can be accessed in [bohrium-notebook](https://nb.bohrium.dp.tech/detail/5215742477)
51
-
52
-
> Notice: the toolchain is under development, please let me know if you encounter any problem in using this toolchain.
57
+
automatically and suitable for machine characteristic in an online or offline way.
58
+
The toolchain can be downloaded with ABACUS repo, and users can easily compile the requirements by running *toolchain_[gnu,intel].sh* and ABACUS itself by running *build_abacus_[gnu,intel].sh* script in the toolchain directory in both `GNU` and `Intel-oneAPI` toolchain.
59
+
Sometimes, ABACUS by toolchain installation may have better efficient performance due to the suitable compiled dependencies.
53
60
61
+
Users should read the README in toolchain directory for most of the information before use, and a tutorial for using this toolchain can be accessed in [bohrium-notebook](https://nb.bohrium.dp.tech/detail/5215742477) as reference.
54
62
55
-
## Get ABACUS source code
56
-
57
-
Of course a copy of ABACUS source code is required, which can be obtained via one of the following choices:
63
+
> Notice: the toolchain is under development, please let we know if you encounter any problem in using this toolchain by raising issue or contacting us.
58
64
59
-
- Clone the whole repo with git: `git clone https://github.com/deepmodeling/abacus-develop.git`
60
-
- Clone the minimum required part of repo: `git clone https://github.com/deepmodeling/abacus-develop.git --depth=1`
61
-
- Download the latest source code without git: `wget https://github.com/deepmodeling/abacus-develop/archive/refs/heads/develop.zip`
62
-
- Get the source code of a stable version [here](https://github.com/deepmodeling/abacus-develop/releases)
63
-
- If you have connection issues accessing GitHub, please try out our official [Gitee repo](https://gitee.com/deepmodeling/abacus-develop/): e.g. `git clone https://gitee.com/deepmodeling/abacus-develop.git`
64
65
65
-
###Update to latest release
66
+
## Update to latest release by git
66
67
67
68
Please check the [release page](https://github.com/deepmodeling/abacus-develop/releases) for the release note of a new version.
68
69
69
70
It is OK to download the new source code from beginning following the previous step.
70
71
71
-
To update your cloned git repo in-place:
72
+
You can update your cloned git repo (from Github or Gitee) in-place with the following commands:
72
73
73
74
```bash
74
75
git remote -v
@@ -78,7 +79,7 @@ git remote -v
78
79
79
80
# Replace "origin" with "upstream" or the remote name corresponding to deepmodeling/abacus-develop if necessary
80
81
git fetch origin
81
-
git checkout v3.2.0# Replace the tag with the latest version
82
+
git checkout v3.8.4# Replace the tag with the latest version
82
83
git describe --tags # Verify if the tag has been successfully checked out
83
84
```
84
85
@@ -158,6 +159,12 @@ If ABACUS is installed into a custom directory using `CMAKE_INSTALL_PREFIX`, ple
158
159
export PATH=/my-install-dir/:$PATH
159
160
```
160
161
162
+
If ABACUS is installed by toolchain, there will be an environment script in the toolchain directory named as *abacus_env.sh*. You can source it to set the environment variables.
163
+
164
+
```bash
165
+
source /path/to/abacus/toolchain/abacus_env.sh
166
+
```
167
+
161
168
Please set OpenMP threads by setting environment variable:
0 commit comments