Skip to content

Commit 26a7ef8

Browse files
committed
Merge branch 'develop' of github.com:deepmodeling/abacus-develop into develop
2 parents 26cf499 + 815614a commit 26a7ef8

File tree

440 files changed

+26186
-5526
lines changed

Some content is hidden

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

440 files changed

+26186
-5526
lines changed

Dockerfile

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
# To build this Dockerfile, run `docker build -t abacus - < Dockerfile`.
2-
# Pull image with `docker pull ghcr.io/deepmodeling/abacus:latest`.
2+
# Alternatively, pull the image with `docker pull ghcr.io/deepmodeling/abacus:latest`.
3+
# Also available at `docker pull registry.dp.tech/deepmodeling/abacus:latest`.
4+
5+
# Docker images are aimed for evaluating ABACUS.
6+
# For production use, please compile ABACUS from source code and run in bare-metal for a better performace.
7+
38
FROM ubuntu:22.04
49
RUN apt update && apt install -y --no-install-recommends \
510
libopenblas-dev liblapack-dev libscalapack-mpi-dev libelpa-dev libfftw3-dev libcereal-dev libxc-dev \
@@ -17,10 +22,11 @@ RUN git clone https://github.com/deepmodeling/abacus-develop.git --depth 1 && \
1722
# If you have trouble cloning repo, replace "github.com" with "gitee.com".
1823
CMD mpirun --use-hwthread-cpus abacus
1924

20-
# To run ABACUS built by this image with all available threads, execute `docker run -v <host>:<wd> -w <wd/input> abacus`.
25+
# To run ABACUS built by this image with all available threads, execute `docker run -v <host>:<wd> -w <wd/input> abacus:latest`.
2126
# Replace '<host>' with the path to all files(including pseudopotential files), '<wd>' with a path to working directory, and '<wd/input>' with the path to input folder(containing 'INPUT', 'STRU', etc.).
22-
# e.g. after clone the repo to `$HOME` and pulled this image, execute `docker run -v ~/abacus-develop/tests/integrate:/workspace -w /workspace/101_PW_15_f_pseudopots abacus`.
23-
# To run ABACUS with a given MPI process number, execute `docker run -v <host>:<wd> -w <wd/input> -it --entrypoint mpirun abacus -np <processes> abacus`. Note: the first "abacus" is the name of the image, the second "abacus" is the name of the executable file. Do not use '--cpus' flag of 'docker run' to specify the number of processes.
27+
# e.g. after cloning the repo to `$HOME` and pulling image, execute `docker run -v ~/abacus-develop/tests/integrate:/workspace -w /workspace/101_PW_15_f_pseudopots abacus:latest`.
28+
# To run ABACUS with a given MPI process number, execute `docker run -v <host>:<wd> -w <wd/input> -it --entrypoint mpirun abacus:latest -np <processes> abacus`.
29+
# Note: It would be better using all available CPUs. Docker uses CFS to share the CPU resources, which will result in bad CPU affinity.
2430

2531
# To use this image as developing environment, execute `docker run -it --entrypoint /bin/bash abacus`.
2632
# Please refer to https://docs.docker.com/engine/reference/commandline/run/ for more details.

Dockerfile.gnu

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,3 +16,10 @@ RUN wget https://download.pytorch.org/libtorch/cpu/libtorch-cxx11-abi-shared-wit
1616
unzip -q libtorch.zip && rm libtorch.zip && \
1717
cd libtorch && cp -r . /usr/local && \
1818
cd .. && rm -r libtorch
19+
20+
RUN git clone https://github.com/deepmodeling/abacus-develop.git --depth 1 && \
21+
cd abacus-develop && \
22+
cmake -B build -DENABLE_DEEPKS=ON && \
23+
cmake --build build -j`nproc` && \
24+
cmake --install build && \
25+
cd .. && rm -rf abacus-develop

Dockerfile.intel

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,3 +47,16 @@ RUN source /opt/intel/oneapi/setvars.sh \
4747
&& make PREFIX=/usr/local install \
4848
&& ln -s /usr/local/include/elpa-2021.05.002/elpa /usr/local/include/ \
4949
&& cd /tmp && rm -rf elpa-2021.05.002
50+
51+
RUN wget https://download.pytorch.org/libtorch/cpu/libtorch-cxx11-abi-shared-with-deps-1.9.1%2Bcpu.zip \
52+
--no-check-certificate --quiet -O libtorch.zip && \
53+
unzip -q libtorch.zip && rm libtorch.zip && \
54+
cd libtorch && cp -r . /usr/local && \
55+
cd .. && rm -r libtorch
56+
57+
RUN git clone https://github.com/deepmodeling/abacus-develop.git --depth 1 && \
58+
cd abacus-develop && \
59+
cmake -B build -DENABLE_DEEPKS=ON && \
60+
cmake --build build -j`nproc` && \
61+
cmake --install build && \
62+
cd .. && rm -rf abacus-develop

README.md

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ The following files are the central input files for ABACUS. Before executing the
9595

9696
- The numerical orbital files
9797

98-
This part is only required in LCAO calculations.
98+
This part is only required in LCAO calculations.
9999
The filename for each element’s numerical orbital basis needs to be specified in the STRU file, together with the directory of the orbital files unless they are already present in the working directory.
100100
ABACUS provides numerical atomic basis sets of different accuracy levels for most elements commonly used. Users can download these basis sets from the [website](http://abacus.ustc.edu.cn/pseudo/list.htm). Moreover, users can generate numerical atomic orbitals by themselves, and the procedure is provided in this [short introduction](docs/generate-basis.md).
101101

@@ -136,7 +136,7 @@ into which the following output files will be generated:
136136
[back to top](#readme-top)
137137

138138
## Hands-on examples
139-
The following provides basic sample jobs in ABACUS. More can be found in the directories `examples/` and `tests/`, with an introduction [here](tests/README.md), and the corresponding reference outputs can be found in the file `result.ref` under each subdirectory.
139+
The following provides basic sample jobs in ABACUS. More can be found in the directories `examples/` and `tests/`, and the corresponding reference outputs can be found in the file `result.ref` under each subdirectory.
140140

141141
*Note that the examples there are intended as quick hands-on jobs, and the results are NOT converged with regard to basis set or k point sampling.*
142142

@@ -171,13 +171,13 @@ The following references are required to be cited when using ABACUS. Specificall
171171
- **For general purpose:**
172172

173173
[1]. Mohan Chen, G. C. Guo, and Lixin He. "Systematically improvable optimized atomic basis sets for ab initio calculations." Journal of Physics: Condensed Matter 22.44 (2010): 445501.
174-
174+
175175
[2]. Pengfei Li, et al. "Large-scale ab initio simulations based on systematically improvable atomic basis." Computational Materials Science 112 (2016): 503-517.
176176

177177
- **If Stochastic DFT is used:**
178178

179179
[1]. Qianrui Liu, and Mohan Chen. "Plane-Wave-Based Stochastic-Deterministic Density Functional Theory for Extended Systems." https://arxiv.org/abs/2204.05662.
180-
180+
181181
- **If DFT+U is used:**
182182

183183
[1]. Xin Qu, et al. "DFT+ U within the framework of linear combination of numerical atomic orbitals." The Journal of Chemical Physics (2022).
@@ -189,17 +189,17 @@ The following references are required to be cited when using ABACUS. Specificall
189189
- **If berry curvature calculation is used in LCAO base:**
190190

191191
[1]. Gan Jin, Daye Zheng, and Lixin He. "Calculation of Berry curvature using non-orthogonal atomic orbitals." Journal of Physics: Condensed Matter 33.32 (2021): 325503.
192-
192+
193193
- **If DeePKS is used:**
194194

195195
[1]. Wenfei Li, Qi Ou, et al. "DeePKS+ABACUS as a Bridge between Expensive Quantum Mechanical Models and Machine Learning Potentials." https://arxiv.org/abs/2206.10093.
196-
196+
197197
- **If hybrid functional is used:**
198-
198+
199199
[1]. Peize Lin, Xinguo Ren, and Lixin He. "Efficient Hybrid Density Functional Calculations for Large Periodic Systems Using Numerical Atomic Orbitals." Journal of Chemical Theory and Computation 2021, 17(1), 222–239.
200-
200+
201201
[2]. Peize Lin, Xinguo Ren, and Lixin He. "Accuracy of Localized Resolution of the Identity in Periodic Hybrid Functional Calculations with Numerical Atomic Orbitals." Journal of Physical Chemistry Letters 2020, 11, 3082-3088.
202-
202+
203203
[back to top](#readme-top)
204204

205205
# Development team
@@ -232,4 +232,3 @@ If you find a bug or have some questions, please refer to our GitHub [issue trac
232232
- [Exchange-correlation functionals](docs/features.md#exchange-correlation-functionals)
233233

234234
[back to top](#readme-top)
235-

docs/examples/dpgen.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,7 @@ Next, for the "dpgen run" step, the following `run_param.json` should be provide
163163
"fp_pp_path": "./",
164164
"fp_pp_files": ["Al_ONCV_PBE-1.0.upf"], # the pseudopotential file
165165
"fp_orb_files": ["Al_gga_9au_100Ry_4s4p1d.orb"], # the orbital file (use only in LCAO calculation)
166+
"k_points":[2, 2, 2, 0, 0, 0], # k-mesh setting
166167
"user_fp_params":{ # All the ABACUS input paramters are defined here
167168
"ntype": 1, # defining input parameters from INPUT files is not supported yet.
168169
"ecutwfc": 80,
@@ -175,7 +176,6 @@ Next, for the "dpgen run" step, the following `run_param.json` should be provide
175176
"smearing_sigma": 0.002,
176177
"scf_thr":1e-8,
177178
"cal_force":1, # calculate force must be set to 1 in dpgen calculation
178-
"k_points":[2, 2, 2, 0, 0, 0], # k-mesh setting
179179
"kspacing": 0.01 # when KSPACING is set, the above k_points setting becomes invalid.
180180
}
181181
}
@@ -186,4 +186,4 @@ Notes:
186186
- The ABACUS-DPGEN interface can be used in both pw and lcao basis.
187187

188188

189-
[back to top](#abacus-wannier90-interface)
189+
[back to top](#abacus-wannier90-interface)

docs/features.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ In the INPUT file, the keyword basis_type controls what basis type to use:
3434

3535
The default value of basis_type is pw. When choosing lcao or lcao_in_pw, the user should prepare atomic orbitals first.
3636

37-
Information on the keyword basis_type can also be found in [the list of input keywords](input-main.md#basis-type).
37+
Information on the keyword basis_type can also be found in [the list of input keywords](input-main.md#basis_type).
3838

3939
We also provide a [detailed instruction](generate-basis.md) on generating basis functions.
4040

@@ -43,7 +43,7 @@ We also provide a [detailed instruction](generate-basis.md) on generating basis
4343
## Pseudopotentials
4444

4545
Currently ABACUS uses norm-conserving pseudopotentials in the (old) format of UPF, which
46-
is the standard pseudopotential format for uantum ESPRESSO. To run a calculation, the pseudopotential needs to be set in STRU file. For example:
46+
is the standard pseudopotential format for Quantum ESPRESSO. To run a calculation, the pseudopotential needs to be set in STRU file. For example:
4747

4848
```
4949
ATOMIC_SPECIES
@@ -63,7 +63,7 @@ vectors of the supercell are set in the STRU file.
6363

6464
For the input k-point (KPT) file, the file should either contain the k-point coordinates and weights or the mesh size for creating the k-point gird. Both options are allowed in ABACUS.
6565

66-
More information on k-points is provided in this [instruction](#docs/input-kpt.md)
66+
More information on k-points is provided in this [instruction](input-kpt.md)
6767

6868
[back to top](#features)
6969

@@ -86,7 +86,7 @@ hpseps can not be used with plane wave basis.
8686

8787
Then the user has to correct the input file and restart the calculation.
8888

89-
Information on the keyword ks_solver is also given in the [list of input variables](input-main.md#ks-solver).
89+
Information on the keyword ks_solver is also given in the [list of input variables](input-main.md#ks_solver).
9090

9191
[back to top](#features)
9292

@@ -126,6 +126,6 @@ The user can set the XC functional type in INPUT file with the parameter, dft_fu
126126

127127
If the functional specified by the user is not consistent with the pseudopotential file, the program will stop with an error message.
128128

129-
Information on the keyword ks_solver is also given in the [list of input variables](input-main.md#dft-functional).
129+
Information on the keyword ks_solver is also given in the [list of input variables](input-main.md#dft_functional).
130130

131131
[back to top](#features)

0 commit comments

Comments
 (0)