Bohrium
robot
新建

空间站广场

论文
Notebooks
比赛
课程
Apps
我的主页
我的Notebooks
我的论文库
我的足迹

我的工作空间

任务
节点
文件
数据集
镜像
项目
数据库
公开
一键配置编译ABACUS | toolchain 脚本的使用
ABACUS
ABACUS使用教程
ABACUSABACUS使用教程
量子御坂
发布于 2023-09-01
推荐镜像 :Basic Image:ubuntu22.04-py3.10-intel2022
推荐机型 :c2_m4_cpu
赞 9
3
2
一键配置编译ABACUS | toolchain 脚本的使用
1. 快速了解ABACUS
2. ABACUS下载与ABACUS-toolchain简介
3. 基于intel-OneAPI的ABACUS快速安装
3.1 编译依赖环境
3.2 编译ABACUS
4. ABACUS运行测试
5. 结语

一键配置编译ABACUS | toolchain 脚本的使用

代码
文本

©️ Copyright 2023 @ Authors
作者: 量子御坂QuantumMisaka 📨
日期:2024-03-18
共享协议:本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。
快速开始:点击上方的 开始连接 按钮,选择 ubuntu:22.04-py3.10-intel2022 镜像 和任意配置机型(推荐 c2_m4_cpu c16_m32_cpu )即可开始。

代码
文本

🎯 这是目前第一个在通过用 ABACUS 的toolchain脚本集,一键配置ABACUS所需依赖并一键编译安装ABACUS的教程,面向仅有Linux使用基础的服务器用户。

本安装方法可在线或离线进行,可在无法联网的HPC服务器上完成ABACUS的配置部署

代码
文本

本教程可一键运行,完整运行该教程需要约 10-20 分钟 ( c16_m32_CPU 节点配置下)。

代码
文本

1. 快速了解ABACUS

代码
文本

ABACUS软件介绍

ABACUS官方文档

ABACUS使用教程合集

ABACUS是由何力新教授、任新国研究员和陈默涵助理教授主导开发的,拥有完全自主知识产权的一款DFT软件,主要针对凝聚态材料模拟计算,通过求解Kohn-Sham方程得到材料基态电荷密度分布,并由此计算目标材料的各项物理性质。

作为采用C++编写的一款DFT软件,ABACUS模块化较清晰,加上具备较完善的自动测试集,进一步的功能开发和性能优化都较为便利。ABACUS采取了依据LGPL协议的开源合作的开发方式,加入了Deep Modeling社区。目前已参与的开发者主要来自中科大、北大、中科院物理所、深势科技、字节跳动等单位,并期待更多的开发者加入。

代码
文本

2. ABACUS下载与ABACUS-toolchain简介

代码
文本

Toolchain已经合并到ABACUS的仓库之中,目前已更新至2024.1版本。通过拉取ABACUS仓库的方法即可一起拉取toolchain

代码
文本
[1]
# load newest version of abacus
! git clone https://github.com/deepmodeling/abacus-develop/
Cloning into 'abacus-develop'...
remote: Enumerating objects: 78964, done.
remote: Counting objects: 100% (248/248), done.
remote: Compressing objects: 100% (193/193), done.
remote: Total 78964 (delta 96), reused 128 (delta 50), pack-reused 78716
Receiving objects: 100% (78964/78964), 131.18 MiB | 4.64 MiB/s, done.
Resolving deltas: 100% (59441/59441), done.
代码
文本
[8]
! mv abacus-develop /opt/
代码
文本
[9]
cd /opt/abacus-develop/toolchain
/opt/abacus-develop/toolchain
代码
文本

让我们看看toolchain脚本流的文件架构

代码
文本
[10]
! tree
.
├── Details.md
├── README.md
├── build_abacus_gnu.sh
├── build_abacus_intel-mpich.sh
├── build_abacus_intel.sh
├── install_abacus_toolchain.sh
├── install_requirements.sh
├── install_requirements_fedora.sh
├── install_requirements_ubuntu.sh
├── pre_set.sh
├── scripts
│   ├── VERSION
│   ├── arch_base.tmpl
│   ├── common_vars.sh
│   ├── generate_arch_files.sh
│   ├── get_openblas_arch.sh
│   ├── parse_if.py
│   ├── signal_trap.sh
│   ├── stage0
│   │   ├── install_cmake.sh
│   │   ├── install_gcc.sh
│   │   ├── install_intel.sh
│   │   ├── install_stage0.sh
│   │   └── setup_buildtools.sh
│   ├── stage1
│   │   ├── install_intelmpi.sh
│   │   ├── install_mpich.sh
│   │   ├── install_openmpi.sh
│   │   └── install_stage1.sh
│   ├── stage2
│   │   ├── install_acml.sh
│   │   ├── install_mathlibs.sh
│   │   ├── install_mkl.sh
│   │   ├── install_openblas.sh
│   │   └── install_stage2.sh
│   ├── stage3
│   │   ├── install_elpa.sh
│   │   ├── install_fftw.sh
│   │   ├── install_libxc.sh
│   │   ├── install_scalapack.sh
│   │   └── install_stage3.sh
│   ├── stage4
│   │   ├── install_cereal.sh
│   │   ├── install_libcomm.sh
│   │   ├── install_libnpy.sh
│   │   ├── install_libri.sh
│   │   ├── install_libtorch.sh
│   │   ├── install_rapidjson.sh
│   │   └── install_stage4.sh
│   └── tool_kit.sh
├── toolchain_gnu.sh
├── toolchain_intel-mpich.sh
└── toolchain_intel.sh

6 directories, 47 files
代码
文本

toolchain目录下有一个README文件,里面涵盖了目前toolchain脚本集的完善程度以及toolchain的基本使用方法,可以参考该README使用toolchain构建不同编译环境的工具链,完成ABACUS依赖库的构建。

代码
文本
[11]
# get README
! cat README.md
# The ABACUS Toolchain
Version 2024.1

## Author
[QuantumMisaka](https://github.com/QuantumMisaka) 
(Zhaoqing Liu) @PKU @AISI

Inspired by cp2k-toolchain, still in improvement.

You should have read this README before using this toolchain.

## Introduction

This toolchain will help you easily compile and install, 
or link libraries ABACUS depends on 
in ONLINE or OFFLINE way,
and give setup files that you can use to compile ABACUS.

## Todo

- [x] `gnu-openblas` toolchain support for `openmpi` and `mpich`.
- [x] `intel-mkl-mpi` toolchain support using `icc` or `icx`. (`icx` version of ABACUS have some problem now, please be cautious)
- [x] `intel-mkl-mpich` toolchain support.
- [x] Automatic installation of [CEREAL](https://github.com/USCiLab/cereal) and [LIBNPY](https://github.com/llohse/libnpy) (by github.com)
- [x] Support for [LibRI](https://github.com/abacusmodeling/LibRI) by submodule or automatic installation from github.com (but installed LibRI via `wget` seems to have some problem, please be cautious)
- [x] A mirror station by Bohrium database, which can download CEREAL, LibNPY, LibRI and LibComm by `wget` in China Internet. 
- [x] Support for GPU compilation, users can add `-DUSE_CUDA=1` in builder scripts.
- [ ] A better mirror station for all packages.
- [ ] A better README and Detail markdown file.
- [ ] Automatic installation of [DEEPMD](https://github.com/deepmodeling/deepmd-kit).
- [ ] Better compliation method for ABACUS-DEEPMD and ABACUS-DEEPKS.
- [ ] A better `setup` and toolchain code structure.
- [ ] Modulefile generation scripts.
- [ ] Support for AMD compiler and math lib like `AOCL` and `AOCC`


## Usage Online & Offline
Main script is `install_abacus_toolchain.sh`, 
which will use scripts in `scripts` directory 
to compile install dependencies of ABACUS.

You can just `./install_abacus_toolchain.sh -h` to get more help message.

**Notice: You SHOULD `source` or `module load` related environments before use toolchain method for installation, espacially for `gcc` or `intel-oneAPI` !!!! for example, `module load mkl mpi icc compiler`**

**Notice: You SHOULD keep your environments systematic, for example, you CANNOT load `intel-OneAPI` environments while use gcc toolchain !!!**

**Notice: If your server system already have libraries like `cmake`, `openmpi`, please change related setting in `toolchain*.sh` like `--with-cmake=system`**

```shell
> ./install_ABACUS_toolchain.sh
```

All packages will be downloaded from [cp2k-static/download](https://www.cp2k.org/static/downloads). by  `wget` , and will be detailedly compiled and installed in `install` directory by toolchain scripts, despite of:
- `CEREAL` which will be downloaded from [CEREAL](https://github.com/USCiLab/cereal)  
- `Libnpy` which will be downloaded from [LIBNPY](https://github.com/llohse/libnpy)
- `LibRI` which will be downloaded from [LibRI](https://github.com/abacusmodeling/LibRI)
- `LibCOMM` which will be downloaded from [LibComm](https://github.com/abacusmodeling/LibComm)
- `RapidJSON` which will be downloaded from [RapidJSON](https://github.com/Tencent/rapidjson)
Notice: These packages will be downloaded by `wget` from `github.com`, which is hard to be done in Chinese Internet. You may need to use offline installation method. 

Instead of github.com, we offer other package station, you can use it by:
```shell
wget https://bohrium-api.dp.tech/ds-dl/abacus-deps-93wi-v2 -O abacus-deps-v2.zip
```
`unzip` it ,and you can do offline installation of these packages above after rename. The above station will be updated handly but one should notice that the version will always lower than github repo.

If one want to install ABACUS by toolchain OFFLINE, 
one can manually download all the packages from [cp2k-static/download](https://www.cp2k.org/static/downloads) or official website
and put them in `build` directory by formatted name
like `fftw-3.3.10.tar.gz`, or `openmpi-4.1.5.tar.gz`, 
then run this toolchain. 
All package will be detected and installed automatically. 
Also, one can install parts of packages OFFLINE and parts of packages ONLINE
just by using this toolchain

```shell
# for OFFLINE installation
# in toolchain directory
> mkdir build 
> cp ***.tar.gz build/
```

The needed dependencies version default:
- `cmake` 3.28.1
- `gcc` 13.2.0 (which will always NOT be installed, But use system)
- `OpenMPI` 5.0.0
- `MPICH` 4.1.2
- `OpenBLAS` 0.3.25 (Intel toolchain need `get_vars.sh` tool from it)
- `ScaLAPACK` 2.2.1
- `FFTW` 3.3.10
- `LibXC` 6.2.2
- `ELPA` 2023.05.001
- `CEREAL` 1.3.2
- `RapidJSON` 1.1.0
And Intel-oneAPI need user or server manager to manually install from Intel.
[Intel-oneAPI](https://www.intel.cn/content/www/cn/zh/developer/tools/oneapi/toolkits.html)

Dependencies below are optional, which is NOT installed by default:
- `LibTorch` 2.0.1
- `Libnpy` 1.0.1
- `LibRI` 0.1.1
- `LibComm` 0.1.0
Users can install them by using `--with-*=install` in toolchain*.sh, which is `no` in default.
> Notice: LibRI, LibComm and Libnpy is on actively development, you should check-out the package version when using this toolchain. Also, LibRI and LibComm can be installed by github submodule, which is also work for libnpy, which is more recommended.

Notice: for `CEREAL`,`RapidJSON`, `Libnpy`, `LibRI` and `LibComm`, 
you need to download them from github.com, 
rename it as formatted, and put them in `build` directory at the same time
e.g.:
```shell
# packages downloaded from github.com
mv v1.3.2.tar.gz build/cereal-1.3.2.tar.gz
```

There are also well-modified script to run `install_abacus_toolchain.sh` for `gnu-openblas` and `intel-mkl` toolchains dependencies.

```shell
# for gnu-openblas
> ./toolchain_gnu.sh
# for intel-mkl
> ./toolchain_intel.sh
# for intel-mkl-mpich
> ./toolchain_intel-mpich.sh
```

Users can easily compile and install dependencies of ABACUS
by running these scripts after loading `gcc` or `intel-mkl-mpi`
environment. 

The toolchain installation process can be interrupted at anytime.
just re-run `install_abacus_toolchain.sh`, toolchain itself may fix it

If compliation is successful, a message will be shown like this:

```shell
> Done!
> To use the installed tools and libraries and ABACUS version
> compiled with it you will first need to execute at the prompt:
>   source ./install/setup
> To build ABACUS by gnu-toolchain, just use:
>     ./build_abacus_gnu.sh
> To build ABACUS by intel-toolchain, just use:
>     ./build_abacus_intel.sh
> or you can modify the builder scripts to suit your needs.
```
You can run `build_abacus_gnu.sh` or `build_abacus_intel.sh` to build ABACUS 
by gnu-toolchain or intel-toolchain respectively, the builder scripts will
automatically locate the environment and compile ABACUS.
You can manually change the builder scripts to suit your needs.
The builder scripts will generate `abacus_env.sh` for source

Then, after `source abacus_env.sh`, one can easily 
run builder scripts to build ABACUS binary software.

If users want to use toolchain but lack of some system library
dependencies, `install_requirements.sh` scripts will help.

If users want to re-install all the package, just do:
```shell
> rm -rf install
```
or you can also do it in a more completely way:
```shell
> rm -rf install build/*/* build/OpenBLAS*/ build/setup_*
```

## Common Problem and Solution
### GPU version of ABACUS
add following options in build*.sh:
```shell
cmake -B $BUILD_DIR -DCMAKE_INSTALL_PREFIX=$PREFIX \
        -DCMAKE_CXX_COMPILER=icpx \
        -DMPI_CXX_COMPILER=mpiicpc \
        ......
        -DUSE_CUDA=1 \
        -DCMAKE_CUDA_COMPILER=${path to cuda toolkit}/bin/nvcc \
        ......
```
Notice: You CANNOT use `icpx` compiler for GPU version of ABACUS for now

### shell problem
If you encounter problem like:
```shell
/bin/bash^M: bad interpreter: No such file or directory
```
or   `permission denied` problem, you can simply run:
```shell
./pre_set.sh
```
And also, you can fix `permission denied` problem via `chmod +x`
if `pre_set.sh` have no execution permission.

### libtorch and deepks problem
If deepks feature have problem, you can manually change libtorch version
from 2.0.1 to 1.12.0 in `toolchain/scripts/stage4/install_libtorch.sh`.
Also, you can install ABACUS without deepks by removing all the deepks and related options.

NOTICE: if you want deepks feature, your intel-mkl environment should be accessible in building process. you can check it in `build_abacus_gnu.sh`

### deepmd feature problem
When you encounter problem like `GLIBCXX_3.4.29 not found`, it is sure that your `gcc` version is lower than the requirement of `libdeepmd`.

After my test, you need `gcc`>11.3.1 to enable deepmd feature in ABACUS.

### ELPA problem via Intel-oneAPI toolchain in AMD server
The default compiler for Intel-oneAPI is `icpx` and `icx`, which will cause problem when compling ELPA in AMD server. (Which is a problem and needed to have more check-out)

The best way is to change `icpx` to `icpc`, `icx` to `icc`. user can manually change it in toolchain*.sh via `--with-intel-classic=yes`

Notice: `icc` and `icpc` from Intel Classic Compiler of Intel-oneAPI is not supported for 2024.0 and newer version.



### Intel-oneAPI problem
Sometimes Intel-oneAPI have problem to link `mpirun`, 
which will always show in 2023.2.0 version of MPI in Intel-oneAPI. 
Try `source /path/to/setvars.sh` or install another version of IntelMPI may help.

which is fixed in 2024.0.0 version of Intel-oneAPI, 
And will not occur in Intel-MPI before 2021.10.0 (Intel-oneAPI before 2023.2.0)

More problem and possible solution can be accessed via [#2928](https://github.com/deepmodeling/abacus-develop/issues/2928)



## Advanced Installation Usage

1. Users can move toolchain directory to anywhere you like, 
and complete installation by change the setting in 
`toolchain_*.sh` and `build_*.sh` by your own setting.
By moving toolchain out or rename it ,one can make toolchain independent
from ABACUS repo, make dependencies package more independent and flexible.
2. Users can manually change `pkg_install_dir` variable 
in `scripts/stage*/install*` to change the installation directory 
of each packages, which may let the installation more fiexible.


## More
More infomation can be read from `Details.md`, 
which is merely easily refined from cp2k-toolchain README.
代码
文本

接下来我们尝试从零开始安装ABACUS。

3. 基于intel-OneAPI的ABACUS快速安装

调用工具链脚本流的主脚本是install_abacus_toolchain.sh,直接运行此脚本即可基于已有的环境变量,完成ABACUS依赖环境的安装和相关依赖包的链接。此脚本可以有一系列的参数设置。在toolchain文件夹中提供了三种工具链的快速安装,分别为intel,intel-mpichgnu

在intel的cpu上,以intel-OneAPI为代表的intel编译器,数学库和MPI库是非常适配的,基于已有的intel-OneAPI配置环境也是最简单快速的,因此本notebook以此工具链为例进行ABACUS的从零开始快速安装。基于GCC和开源编译器+数学库的gcc-toolchain的安装思路是类似的。

代码
文本

3.1 编译依赖环境

首先我们要加载intel-OneAPI环境,在服务器和个人主机上,一般可以通过source或者module load两种方式加载。在bohrium notebook环境下载入环境变量较为困难,本文将采用一些特殊的方式加载这些环境变量

代码
文本
[16]
# load intel-OneAPI
# You should do it in server
# ! source /opt/intel/oneapi/setvars.sh
代码
文本

然后,运行toolchain_intel.sh脚本,采用intel-OneAPI toolchain 一键安装ABACUS的依赖环境。此处采用icc,icpcmpiicpc作为编译器,mkl作为数学库,mpi作为MPI库,并另外安装cmake作为构建工具。

我们可以先看看这个脚本的设置方法

代码
文本
[20]
! cat ./toolchain_intel.sh
#!/bin/bash
#SBATCH -J install
#SBATCH -N 1
#SBATCH -n 16
#SBATCH -o compile.log
#SBATCH -e compile.err

# JamesMisaka in 2023-08-31
# install abacus dependency by intel-toolchain
# use mkl and intelmpi
# but mpich and openmpi can also be tried
# libtorch and libnpy are for deepks support, which can be =no

# module load mkl mpi compiler

./install_abacus_toolchain.sh \
--with-intel=system --math-mode=mkl \
--with-gcc=no --with-intelmpi=system \
--with-cmake=install \
--with-scalapack=no \
--with-libxc=install \
--with-fftw=no \
--with-elpa=install \
--with-cereal=install \
--with-rapidjson=no \
--with-libtorch=no \
--with-libnpy=no \
--with-libri=no \
--with-libcomm=no \
--with-intel-classic=no \
| tee compile.log
# if you are using AMD server: set --with-intel-classic=yes
代码
文本

当前的toolchain在intel-toolchain方面采用icpx和mpiicpc作为编译器,是一种比较折中的做法。需要注意在AMD-CPU上,这样的做法会导致ELPA编译不上(暂时未解决),故若在AMD服务器上运行toolchain脚本安装依赖环境,需要调整参数--with-intel-classic=yes采用更为保守的icpc作为编译器(Intel-OneAPI-2024.0之后已经取消对icpc和icc的支持)

toolchain系列脚本将自动识别build文件夹内有没有所需要的软件压缩包,如果没有,会自动下载。同时,这些脚本将抓取各环境变量和硬件信息(基于OpenBLAS的一些脚本),采用最适合该机器的编译方案进行配置编译。

这一过程因网络环境与在线/离线安装方式,以及安装包需求等均有关系。一般需要5-10分钟。当前版本toolchain默认关闭了对deepks,libri等自选依赖库的支持,因为这些库的配置安装对软件版本和本地环境可能有更多要求。用户可以将相关选项在脚本内打开,然后自行尝试。

代码
文本
[22]
# You should run this in your server
# ! ./toolchain_intel.sh
# in Bohrium another method is used to load environment
! . /opt/intel/oneapi/setvars.sh && ./toolchain_intel.sh
 
:: initializing oneAPI environment ...
   dash: SH_VERSION = unknown
   args: Using "$@" for setvars.sh arguments: 
:: compiler -- latest
:: debugger -- latest
:: dev-utilities -- latest
:: mkl -- latest
:: mpi -- latest
:: tbb -- latest
:: vtune -- latest
:: oneAPI environment initialized ::
 
MPI is detected and it appears to be Intel MPI
Using MKL, so openblas is disabled.
Compiling with 16 processes for target native.
Step gcc took 0.00 seconds.
==================== Finding Intel compiler from system paths ====================
path to icx is /opt/intel/oneapi/compiler/2022.0.2/linux/bin/icx
path to icpx is /opt/intel/oneapi/compiler/2022.0.2/linux/bin/icpx
path to ifort is /opt/intel/oneapi/compiler/2022.0.2/linux/bin/intel64/ifort
CC  is /opt/intel/oneapi/compiler/2022.0.2/linux/bin/icx
CXX is /opt/intel/oneapi/compiler/2022.0.2/linux/bin/icpx
FC  is /opt/intel/oneapi/compiler/2022.0.2/linux/bin/intel64/ifort
Step intel took 0.00 seconds.
==================== Getting proc arch info using OpenBLAS tools ====================
wget  https://www.cp2k.org/static/downloads/OpenBLAS-0.3.25.tar.gz
--2024-03-18 14:11:31--  https://www.cp2k.org/static/downloads/OpenBLAS-0.3.25.tar.gz
Resolving ga.dp.tech (ga.dp.tech)... 10.255.254.37, 10.255.254.7, 10.255.254.18
Connecting to ga.dp.tech (ga.dp.tech)|10.255.254.37|:8118... connected.
Proxy request sent, awaiting response... 200 OK
Length: 24073168 (23M) [application/x-gzip]
Saving to: ‘OpenBLAS-0.3.25.tar.gz’

OpenBLAS-0.3.25.tar 100%[===================>]  22.96M  5.66MB/s    in 4.1s    

2024-03-18 14:11:36 (5.66 MB/s) - ‘OpenBLAS-0.3.25.tar.gz’ saved [24073168/24073168]

OpenBLAS-0.3.25.tar.gz: OK
Checksum of OpenBLAS-0.3.25.tar.gz Ok
./f_check: 96: [: Illegal number: # mark_description 
OpenBLAS detected LIBCORE = haswell
OpenBLAS detected ARCH    = x86_64
==================== Installing CMake ====================
wget  https://www.cp2k.org/static/downloads/cmake-3.28.1-linux-x86_64.sh
--2024-03-18 14:11:41--  https://www.cp2k.org/static/downloads/cmake-3.28.1-linux-x86_64.sh
Resolving ga.dp.tech (ga.dp.tech)... 10.255.254.18, 10.255.254.7, 10.255.254.37
Connecting to ga.dp.tech (ga.dp.tech)|10.255.254.18|:8118... connected.
Proxy request sent, awaiting response... 200 OK
Length: 52658202 (50M) [text/x-sh]
Saving to: ‘cmake-3.28.1-linux-x86_64.sh’

cmake-3.28.1-linux- 100%[===================>]  50.22M  9.07MB/s    in 6.5s    

2024-03-18 14:11:48 (7.69 MB/s) - ‘cmake-3.28.1-linux-x86_64.sh’ saved [52658202/52658202]

cmake-3.28.1-linux-x86_64.sh: OK
Checksum of cmake-3.28.1-linux-x86_64.sh Ok
Installing from scratch into /opt/abacus-develop/toolchain/install/cmake-3.28.1
Step cmake took 9.00 seconds.
==================== Finding Intel MPI from system paths ====================
path to mpiexec is /opt/intel/oneapi/mpi/2021.5.1/bin/mpiexec
path to mpiicc is /opt/intel/oneapi/mpi/2021.5.1/bin/mpiicc
path to mpiicpc is /opt/intel/oneapi/mpi/2021.5.1/bin/mpiicpc
path to mpiifort is /opt/intel/oneapi/mpi/2021.5.1/bin/mpiifort
Found lib directory /opt/intel/oneapi/mpi/2021.5.1/lib/release
libmpi is found in ld search path
libmpicxx is found in ld search path
I_MPI_CXX is icpx
I_MPI_CC  is icx
I_MPI_FC  is ifort
MPICXX    is /opt/intel/oneapi/mpi/2021.5.1/bin/mpiicpc
MPICC     is /opt/intel/oneapi/mpi/2021.5.1/bin/mpiicc
MPIFC     is /opt/intel/oneapi/mpi/2021.5.1/bin/mpiifort
Step intelmpi took 0.00 seconds.
==================== Finding MKL from system paths ====================
MKLROOT is found to be /opt/intel/oneapi/mkl/2022.0.2
libm is found in ld search path
libdl is found in ld search path
Step mkl took 0.00 seconds.
==================== Installing LIBXC ====================
wget  https://www.cp2k.org/static/downloads/libxc-6.2.2.tar.gz
--2024-03-18 14:11:50--  https://www.cp2k.org/static/downloads/libxc-6.2.2.tar.gz
Resolving ga.dp.tech (ga.dp.tech)... 10.255.254.18, 10.255.254.37, 10.255.254.7
Connecting to ga.dp.tech (ga.dp.tech)|10.255.254.18|:8118... connected.
Proxy request sent, awaiting response... 200 OK
Length: 64297852 (61M) [application/x-gzip]
Saving to: ‘libxc-6.2.2.tar.gz’

libxc-6.2.2.tar.gz  100%[===================>]  61.32M  9.13MB/s    in 7.8s    

2024-03-18 14:11:59 (7.87 MB/s) - ‘libxc-6.2.2.tar.gz’ saved [64297852/64297852]

libxc-6.2.2.tar.gz: OK
Checksum of libxc-6.2.2.tar.gz Ok
Installing from scratch into /opt/abacus-develop/toolchain/install/libxc-6.2.2
Step libxc took 50.00 seconds.
Step fftw took 0.00 seconds.
Step scalapack took 0.00 seconds.
==================== Installing ELPA ====================
wget  https://www.cp2k.org/static/downloads/elpa-2023.05.001.tar.gz
--2024-03-18 14:12:40--  https://www.cp2k.org/static/downloads/elpa-2023.05.001.tar.gz
Resolving ga.dp.tech (ga.dp.tech)... 10.255.254.37, 10.255.254.7, 10.255.254.18
Connecting to ga.dp.tech (ga.dp.tech)|10.255.254.37|:8118... connected.
Proxy request sent, awaiting response... 200 OK
Length: 1762399 (1.7M) [application/x-gzip]
Saving to: ‘elpa-2023.05.001.tar.gz’

elpa-2023.05.001.ta 100%[===================>]   1.68M  1.39MB/s    in 1.2s    

2024-03-18 14:12:42 (1.39 MB/s) - ‘elpa-2023.05.001.tar.gz’ saved [1762399/1762399]

elpa-2023.05.001.tar.gz: OK
Checksum of elpa-2023.05.001.tar.gz Ok
Installing from scratch into /opt/abacus-develop/toolchain/install/elpa-2023.05.001/cpu
Step elpa took 274.00 seconds.
==================== Installing CEREAL ====================
wget --quiet https://github.com/USCiLab/cereal/archive/refs/tags/v1.3.2.tar.gz -O cereal-1.3.2.tar.gz
cereal-1.3.2.tar.gz: OK
Checksum of cereal-1.3.2.tar.gz Ok
Installing from scratch into /opt/abacus-develop/toolchain/install/cereal-1.3.2
Step cereal took 1.00 seconds.
Step rapidjson took 0.00 seconds.
Step libtorch took 0.00 seconds.
Step libnpy took 0.00 seconds.
Step libri took 0.00 seconds.
Step libcomm took 0.00 seconds.
========================== usage =========================
Done!
To use the installed tools and libraries and ABACUS version
compiled with it you will first need to execute at the prompt:
  source /opt/abacus-develop/toolchain/install/setup
To build ABACUS by gnu-toolchain, just use:
    ./build_abacus_gnu.sh
To build ABACUS by intel-toolchain, just use:
    ./build_abacus_intel.sh
or you can modify the builder scripts to suit your needs.
"""
代码
文本

依赖环境编译完成之后,我们可以在install文件夹中看到编译好的依赖库和可执行文件。基于这些依赖库,我们可以进行ABACUS的编译安装。

代码
文本
[23]
! ls install
cereal-1.3.2  elpa-2023.05.001	lsan.supp  toolchain.conf  tsan.supp
cmake-3.28.1  libxc-6.2.2	setup	   toolchain.env   valgrind.supp
代码
文本

3.2 编译ABACUS

编译ABACUS的方法参考ABACUS-Installation-Options。在toolchain脚本集中提供了基于此文档的和intel-toolchain的一键编译脚本build_abacus_intel.sh。直接运行此脚本可以完成ABACUS的编译

我们可以先看看这个脚本的设置方法

代码
文本
[24]
! cat ./build_abacus_intel.sh
#!/bin/bash
#SBATCH -J build
#SBATCH -N 1
#SBATCH -n 16
#SBATCH -o install.log
#SBATCH -e install.err
# install ABACUS with libxc and deepks
# JamesMisaka in 2023.08.22

# Build ABACUS by intel-toolchain

# module load mkl compiler mpi
# source path/to/vars.sh

ABACUS_DIR=..
TOOL=$(pwd)
INSTALL_DIR=$TOOL/install
source $INSTALL_DIR/setup
cd $ABACUS_DIR
ABACUS_DIR=$(pwd)

BUILD_DIR=build_abacus_intel
rm -rf $BUILD_DIR

PREFIX=$ABACUS_DIR
ELPA=$INSTALL_DIR/elpa-2023.05.001/cpu
CEREAL=$INSTALL_DIR/cereal-1.3.2/include/cereal
LIBXC=$INSTALL_DIR/libxc-6.2.2
# LIBTORCH=$INSTALL_DIR/libtorch-2.0.1/share/cmake/Torch
# LIBNPY=$INSTALL_DIR/libnpy-1.0.1/include
# LIBRI=$INSTALL_DIR/LibRI-0.1.1
# LIBCOMM=$INSTALL_DIR/LibComm-0.1.0
# DEEPMD=$HOME/apps/anaconda3/envs/deepmd

# if use deepks and deepmd
cmake -B $BUILD_DIR -DCMAKE_INSTALL_PREFIX=$PREFIX \
        -DCMAKE_CXX_COMPILER=icpx \
        -DMPI_CXX_COMPILER=mpiicpc \
        -DMKLROOT=$MKLROOT \
        -DELPA_DIR=$ELPA \
        -DCEREAL_INCLUDE_DIR=$CEREAL \
        -DLibxc_DIR=$LIBXC \
        -DENABLE_LCAO=ON \
        -DENABLE_LIBXC=ON \
        -DUSE_OPENMP=ON \
        -DUSE_ELPA=ON \
#         -DENABLE_DEEPKS=1 \
#         -DTorch_DIR=$LIBTORCH \
#         -Dlibnpy_INCLUDE_DIR=$LIBNPY \
#         -DENABLE_LIBRI=ON \
#         -DLIBRI_DIR=$LIBRI \
#         -DLIBCOMM_DIR=$LIBCOMM \
# 	      -DDeePMD_DIR=$DEEPMD \
# 	      -DTensorFlow_DIR=$DEEPMD \
#         -DENABLE_RAPIDJSON=ON \

cmake --build $BUILD_DIR -j `nproc` 
cmake --install $BUILD_DIR 2>/dev/null

# if one want's to include deepmd, your gcc version should be >= 11.3.0

# generate abacus_env.sh
cat << EOF > "${TOOL}/abacus_env.sh"
source $INSTALL_DIR/setup
export PATH="${PREFIX}/bin":\${PATH}
EOF
代码
文本

该脚本本质上只做了三件事情

  1. 加载通过toolchain安装的相关依赖库:通过source install/setup加载toolchain安装过程中自动生成的环境变量,同时通过固定路径进一步指定所需库的位置(这二者确实有点重复,但对于开箱即用来说是更好的)
  2. 通过CMake进行ABACUS的编译安装,包括configure(-B部分),build和install
  3. 在toolchain目录下生成abacus_env.sh,该脚本会自动加载toolchain安装的依赖环境(在install/setup中),并将ABACUS执行文件加入到环境变量

基于正常运行完成的toolchain_intel.sh配置好的环境,直接运行build_abacus_intel.sh即可完成ABACUS的编译,此ABACUS支持LCAO基组,但未默认支持DEEPKS和LibRI特性,如果需要可通过如下办法支持:

  1. 打开toolchain_intel.sh中的libtorch, libnpy, libri, libcomm选项,如--with-libtorch=install
  2. 打开build_abacus_intel.sh中的相关选项,即去掉对应特性设置前面的注释

该过程一般需要5分钟。执行完该过程后,用户可删除build文件夹,以减少ABACUS依赖的占用。

代码
文本
[25]
# You need to do this in your server
#! ./build_abacus_intel.sh
# in Bohrium, another way is done for load environment
! . /opt/intel/oneapi/setvars.sh && ./build_abacus_intel.sh
 
:: initializing oneAPI environment ...
   dash: SH_VERSION = unknown
   args: Using "$@" for setvars.sh arguments: 
:: compiler -- latest
:: debugger -- latest
:: dev-utilities -- latest
:: mkl -- latest
:: mpi -- latest
:: tbb -- latest
:: vtune -- latest
:: oneAPI environment initialized ::
 
-- The CXX compiler identification is IntelLLVM 2022.0.0
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /opt/intel/oneapi/compiler/2022.0.2/linux/bin/icpx - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found Git: /usr/bin/git (found version "2.34.1") 
-- Found git: attempting to get commit info...
-- Current commit hash: 12b319e0e
-- Last commit date: Mon Mar 18 12:19:34 2024 +0800
-- Found Cereal: /opt/abacus-develop/toolchain/install/cereal-1.3.2/include/cereal  
-- Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE) 
ELPA : We need pkg-config to get all information about the elpa library
-- Found ELPA: /opt/abacus-develop/toolchain/install/elpa-2023.05.001/cpu/lib/libelpa_openmp.so  
-- Performing Test ELPA_VERSION_SATISFIES
-- Performing Test ELPA_VERSION_SATISFIES - Success
-- Found MPI_CXX: /opt/intel/oneapi/mpi/2021.5.1/lib/libmpicxx.so (found version "3.1") 
-- Found MPI: TRUE (found version "3.1")  
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE  
-- Found OpenMP_CXX: -fiopenmp (found version "5.0") 
-- Found OpenMP: TRUE (found version "5.0")  
-- Looking for a CUDA compiler
-- Looking for a CUDA compiler - NOTFOUND
-- Found IntelMKL: /opt/intel/oneapi/mkl/2022.0.2/lib/intel64/libmkl_intel_lp64.so  
-- Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE) 
-- Found Libxc: version 6.2.2
-- Configuring done (1.4s)
-- Generating done (0.1s)
-- Build files have been written to: /opt/abacus-develop/build_abacus_intel
[  0%] Building CXX object source/module_cell/module_symmetry/CMakeFiles/symmetry.dir/symm_other.cpp.o
[  1%] Building CXX object source/module_base/module_container/CMakeFiles/container.dir/base/core/refcount.cpp.o
[  1%] Building CXX object source/module_relax/CMakeFiles/relax.dir/relax_driver.cpp.o
[  1%] Building CXX object source/module_elecstate/CMakeFiles/elecstate.dir/elecstate.cpp.o
[  1%] Building CXX object source/module_base/CMakeFiles/base.dir/assoc_laguerre.cpp.o
[  2%] Building CXX object source/module_hamilt_general/CMakeFiles/hamilt_general.dir/operator.cpp.o
[  3%] Building CXX object source/CMakeFiles/device.dir/module_hamilt_pw/hamilt_pwdft/kernels/nonlocal_op.cpp.o
[  3%] Building CXX object source/module_psi/CMakeFiles/psi_initializer.dir/psi_initializer.cpp.o
[  3%] Building CXX object source/module_cell/module_neighbor/CMakeFiles/neighbor.dir/sltk_adjacent_set.cpp.o
[  4%] Building CXX object source/CMakeFiles/driver.dir/driver.cpp.o
[  4%] Building CXX object source/module_hamilt_general/module_vdw/CMakeFiles/vdw.dir/vdwd2_parameters.cpp.o
[  4%] Building CXX object source/module_hamilt_general/module_surchem/CMakeFiles/surchem.dir/surchem.cpp.o
[  4%] Building CXX object source/module_psi/CMakeFiles/psi.dir/psi.cpp.o
[  5%] Building CXX object source/module_cell/CMakeFiles/cell.dir/atom_pseudo.cpp.o
[  5%] Building CXX object source/module_hamilt_general/module_xc/CMakeFiles/xc_.dir/xc_functional.cpp.o
[  6%] Building CXX object source/module_hamilt_pw/hamilt_pwdft/CMakeFiles/hamilt_pwdft.dir/hamilt_pw.cpp.o
[  6%] Building CXX object source/module_base/module_container/CMakeFiles/container.dir/base/core/cpu_allocator.cpp.o
[  6%] Building CXX object source/CMakeFiles/device.dir/module_hamilt_pw/hamilt_pwdft/kernels/veff_op.cpp.o
[  6%] Building CXX object source/module_base/CMakeFiles/base.dir/clebsch_gordan_coeff.cpp.o
[  6%] Building CXX object source/module_cell/module_neighbor/CMakeFiles/neighbor.dir/sltk_atom.cpp.o
[  7%] Building CXX object source/module_hamilt_general/module_xc/CMakeFiles/xc_.dir/xc_functional_vxc.cpp.o
[  7%] Building CXX object source/module_base/module_container/CMakeFiles/container.dir/ATen/ops/einsum_op.cpp.o
[  7%] Building CXX object source/CMakeFiles/device.dir/module_hamilt_pw/hamilt_pwdft/kernels/ekinetic_op.cpp.o
[  7%] Built target psi
[  7%] Building CXX object source/module_cell/module_symmetry/CMakeFiles/symmetry.dir/symmetry_basic.cpp.o
[  8%] Building CXX object source/module_hamilt_pw/hamilt_ofdft/CMakeFiles/hamilt_ofdft.dir/kedf_tf.cpp.o
[  8%] Building CXX object source/module_elecstate/CMakeFiles/elecstate.dir/elecstate_getters.cpp.o
[  8%] Building CXX object source/module_cell/module_neighbor/CMakeFiles/neighbor.dir/sltk_atom_arrange.cpp.o
[  8%] Building CXX object source/CMakeFiles/driver.dir/driver_run.cpp.o
[  8%] Building CXX object source/CMakeFiles/device.dir/module_hamilt_pw/hamilt_pwdft/kernels/meta_op.cpp.o
[  8%] Building CXX object source/module_relax/CMakeFiles/relax.dir/relax_new/relax.cpp.o
[  8%] Building CXX object source/module_hamilt_pw/hamilt_pwdft/CMakeFiles/hamilt_pwdft.dir/operator_pw/ekinetic_pw.cpp.o
[  8%] Building CXX object source/module_cell/CMakeFiles/cell.dir/atom_spec.cpp.o
[  9%] Building CXX object source/module_base/CMakeFiles/base.dir/complexarray.cpp.o
[  9%] Building CXX object source/CMakeFiles/device.dir/module_basis/module_pw/kernels/pw_op.cpp.o
[  9%] Building CXX object source/module_hamilt_general/CMakeFiles/hamilt_general.dir/module_ewald/H_Ewald_pw.cpp.o
[  9%] Building CXX object source/module_hamilt_pw/hamilt_pwdft/CMakeFiles/hamilt_pwdft.dir/operator_pw/veff_pw.cpp.o
[  9%] Building CXX object source/module_hamilt_general/module_vdw/CMakeFiles/vdw.dir/vdwd3_parameters_tab.cpp.o
[  9%] Building CXX object source/module_hamilt_pw/hamilt_ofdft/CMakeFiles/hamilt_ofdft.dir/kedf_vw.cpp.o
[  9%] Built target driver
[  9%] Building CXX object source/module_hamilt_pw/hamilt_ofdft/CMakeFiles/hamilt_ofdft.dir/kedf_wt.cpp.o
[ 10%] Building CXX object source/CMakeFiles/device.dir/module_hsolver/kernels/dngvd_op.cpp.o
[ 10%] Building CXX object source/module_elecstate/CMakeFiles/elecstate.dir/elecstate_energy_terms.cpp.o
[ 11%] Building CXX object source/module_cell/module_neighbor/CMakeFiles/neighbor.dir/sltk_atom_input.cpp.o
[ 11%] Building CXX object source/module_cell/module_neighbor/CMakeFiles/neighbor.dir/sltk_grid.cpp.o
[ 11%] Building CXX object source/module_psi/CMakeFiles/psi_initializer.dir/psi_initializer_random.cpp.o
[ 12%] Building CXX object source/module_relax/CMakeFiles/relax.dir/relax_new/line_search.cpp.o
[ 12%] Building CXX object source/module_cell/module_symmetry/CMakeFiles/symmetry.dir/symmetry.cpp.o
[ 12%] Building CXX object source/module_hamilt_general/module_xc/CMakeFiles/xc_.dir/xc_functional_gradcorr.cpp.o
[ 12%] Building CXX object source/module_relax/CMakeFiles/relax.dir/relax_old/relax_old.cpp.o
[ 12%] Building CXX object source/module_hamilt_pw/hamilt_pwdft/CMakeFiles/hamilt_pwdft.dir/operator_pw/nonlocal_pw.cpp.o
[ 12%] Building CXX object source/module_base/CMakeFiles/base.dir/complexmatrix.cpp.o
[ 12%] Building CXX object source/module_cell/CMakeFiles/cell.dir/pseudo.cpp.o
[ 12%] Building CXX object source/module_cell/module_neighbor/CMakeFiles/neighbor.dir/sltk_grid_driver.cpp.o
[ 12%] Building CXX object source/module_cell/CMakeFiles/cell.dir/read_pp.cpp.o
[ 12%] Building CXX object source/module_hamilt_general/CMakeFiles/hamilt_general.dir/module_ewald/dnrm2.cpp.o
[ 13%] Building CXX object source/module_elecstate/CMakeFiles/elecstate.dir/elecstate_energy.cpp.o
[ 13%] Building CXX object source/CMakeFiles/device.dir/module_hsolver/kernels/math_kernel_op.cpp.o
[ 14%] Building CXX object source/module_hamilt_general/module_vdw/CMakeFiles/vdw.dir/vdwd3_parameters.cpp.o
[ 14%] Building CXX object source/module_hamilt_pw/hamilt_ofdft/CMakeFiles/hamilt_ofdft.dir/kedf_lkt.cpp.o
[ 14%] Building CXX object source/module_psi/CMakeFiles/psi_initializer.dir/psi_initializer_atomic.cpp.o
[ 14%] Built target hamilt_general
[ 14%] Building CXX object source/module_relax/CMakeFiles/relax.dir/relax_old/bfgs_basic.cpp.o
[ 15%] Building CXX object source/module_hamilt_pw/hamilt_stodft/CMakeFiles/hamilt_stodft.dir/sto_iter.cpp.o
[ 15%] Building CXX object source/module_cell/CMakeFiles/cell.dir/read_pp_upf100.cpp.o
[ 15%] Building CXX object source/module_base/CMakeFiles/base.dir/element_basis_index.cpp.o
[ 15%] Built target neighbor
[ 15%] Building CXX object source/module_hamilt_lcao/hamilt_lcaodft/CMakeFiles/hamilt_lcao.dir/hamilt_lcao.cpp.o
[ 15%] Building CXX object source/module_hamilt_pw/hamilt_pwdft/CMakeFiles/hamilt_pwdft.dir/operator_pw/meta_pw.cpp.o
[ 16%] Building CXX object source/module_hamilt_lcao/module_tddft/CMakeFiles/tddft.dir/evolve_elec.cpp.o
[ 16%] Building CXX object source/module_hamilt_pw/hamilt_ofdft/CMakeFiles/hamilt_ofdft.dir/of_stress_pw.cpp.o
[ 16%] Building CXX object source/module_base/CMakeFiles/base.dir/export.cpp.o
[ 16%] Building CXX object source/module_relax/CMakeFiles/relax.dir/relax_old/ions_move_basic.cpp.o
[ 16%] Building CXX object source/module_elecstate/CMakeFiles/elecstate.dir/elecstate_exx.cpp.o
[ 16%] Building CXX object source/CMakeFiles/device.dir/module_elecstate/kernels/elecstate_op.cpp.o
[ 16%] Building CXX object source/module_hamilt_lcao/module_tddft/CMakeFiles/tddft.dir/evolve_psi.cpp.o
[ 16%] Building CXX object source/module_relax/CMakeFiles/relax.dir/relax_old/ions_move_bfgs.cpp.o
[ 16%] Building CXX object source/module_hamilt_general/module_xc/CMakeFiles/xc_.dir/xc_functional_wrapper_xc.cpp.o
[ 16%] Building CXX object source/module_hamilt_pw/hamilt_stodft/CMakeFiles/hamilt_stodft.dir/sto_hchi.cpp.o
[ 16%] Building CXX object source/module_base/CMakeFiles/base.dir/inverse_matrix.cpp.o
[ 16%] Built target symmetry
[ 16%] Building CXX object source/module_hamilt_lcao/module_dftu/CMakeFiles/dftu.dir/dftu.cpp.o
[ 16%] Building CXX object source/CMakeFiles/device.dir/module_psi/kernels/psi_memory_op.cpp.o
[ 16%] Building CXX object source/module_elecstate/CMakeFiles/elecstate.dir/elecstate_print.cpp.o
[ 16%] Building CXX object source/module_hamilt_general/module_xc/CMakeFiles/xc_.dir/xc_functional_wrapper_gcxc.cpp.o
[ 16%] Building CXX object source/module_hamilt_lcao/module_tddft/CMakeFiles/tddft.dir/bandenergy.cpp.o
[ 16%] Building CXX object source/module_hamilt_lcao/hamilt_lcaodft/CMakeFiles/hamilt_lcao.dir/operator_lcao/operator_lcao.cpp.o
[ 16%] Built target hamilt_ofdft
[ 17%] Building CXX object source/module_hamilt_lcao/hamilt_lcaodft/CMakeFiles/hamilt_lcao.dir/operator_lcao/veff_lcao.cpp.o
[ 18%] Building CXX object source/module_cell/CMakeFiles/cell.dir/read_pp_upf201.cpp.o
[ 18%] Building CXX object source/module_hamilt_general/module_surchem/CMakeFiles/surchem.dir/H_correction_pw.cpp.o
[ 19%] Building CXX object source/module_relax/CMakeFiles/relax.dir/relax_old/ions_move_cg.cpp.o
[ 20%] Building CXX object source/module_base/CMakeFiles/base.dir/gather_math_lib_info.cpp.o
[ 20%] Building CXX object source/module_hamilt_pw/hamilt_stodft/CMakeFiles/hamilt_stodft.dir/sto_wf.cpp.o
[ 20%] Building CXX object source/module_base/module_container/CMakeFiles/container.dir/ATen/ops/linalg_op.cpp.o
[ 20%] Building CXX object source/module_hamilt_general/module_surchem/CMakeFiles/surchem.dir/cal_epsilon.cpp.o
[ 20%] Building CXX object source/module_hamilt_general/module_vdw/CMakeFiles/vdw.dir/vdwd2.cpp.o
[ 20%] Building CXX object source/module_base/CMakeFiles/base.dir/global_file.cpp.o
[ 20%] Building CXX object source/module_hamilt_general/module_xc/CMakeFiles/xc_.dir/xc_functional_wrapper_tauxc.cpp.o
[ 20%] Building CXX object source/module_base/module_container/CMakeFiles/container.dir/ATen/core/tensor.cpp.o
[ 20%] Building CXX object source/module_cell/CMakeFiles/cell.dir/read_pp_blps.cpp.o
[ 20%] Building CXX object source/module_relax/CMakeFiles/relax.dir/relax_old/ions_move_sd.cpp.o
[ 20%] Building CXX object source/CMakeFiles/device.dir/module_psi/kernels/device.cpp.o
[ 21%] Building CXX object source/module_hamilt_pw/hamilt_pwdft/CMakeFiles/hamilt_pwdft.dir/operator_pw/velocity_pw.cpp.o
[ 21%] Building CXX object source/module_hamilt_pw/hamilt_stodft/CMakeFiles/hamilt_stodft.dir/sto_func.cpp.o
[ 21%] Building CXX object source/module_base/CMakeFiles/base.dir/global_function.cpp.o
[ 22%] Building CXX object source/module_hamilt_general/module_xc/CMakeFiles/xc_.dir/xc_funct_exch_lda.cpp.o
[ 23%] Building CXX object source/CMakeFiles/device.dir/module_hamilt_pw/hamilt_pwdft/kernels/force_op.cpp.o
[ 23%] Building CXX object source/module_hamilt_general/module_xc/CMakeFiles/xc_.dir/xc_funct_corr_lda.cpp.o
[ 23%] Building CXX object source/module_base/CMakeFiles/base.dir/global_function_ddotreal.cpp.o
[ 23%] Building CXX object source/module_hamilt_pw/hamilt_stodft/CMakeFiles/hamilt_stodft.dir/sto_forces.cpp.o
[ 23%] Building CXX object source/module_base/CMakeFiles/base.dir/global_variable.cpp.o
[ 23%] Building CXX object source/module_hamilt_general/module_vdw/CMakeFiles/vdw.dir/vdwd3.cpp.o
[ 24%] Building CXX object source/module_base/CMakeFiles/base.dir/intarray.cpp.o
[ 24%] Building CXX object source/module_hamilt_lcao/module_dftu/CMakeFiles/dftu.dir/dftu_force.cpp.o
[ 24%] Building CXX object source/module_hamilt_general/module_xc/CMakeFiles/xc_.dir/xc_funct_exch_gga.cpp.o
[ 24%] Building CXX object source/module_hamilt_pw/hamilt_pwdft/CMakeFiles/hamilt_pwdft.dir/operator_pw/operator_pw.cpp.o
[ 24%] Building CXX object source/module_hamilt_lcao/module_tddft/CMakeFiles/tddft.dir/middle_hamilt.cpp.o
[ 25%] Building CXX object source/module_hamilt_lcao/module_tddft/CMakeFiles/tddft.dir/norm_psi.cpp.o
[ 25%] Building CXX object source/module_hamilt_general/module_xc/CMakeFiles/xc_.dir/xc_funct_corr_gga.cpp.o
[ 25%] Building CXX object source/module_base/CMakeFiles/base.dir/math_integral.cpp.o
[ 25%] Building CXX object source/CMakeFiles/device.dir/module_hamilt_pw/hamilt_pwdft/kernels/stress_op.cpp.o
[ 26%] Building CXX object source/module_hamilt_general/module_xc/CMakeFiles/xc_.dir/xc_funct_hcth.cpp.o
[ 26%] Building CXX object source/module_relax/CMakeFiles/relax.dir/relax_old/ions_move_methods.cpp.o
[ 27%] Building CXX object source/module_base/module_container/CMakeFiles/container.dir/ATen/core/tensor_buffer.cpp.o
[ 27%] Building CXX object source/module_hamilt_lcao/module_dftu/CMakeFiles/dftu.dir/dftu_yukawa.cpp.o
[ 27%] Building CXX object source/module_hamilt_pw/hamilt_pwdft/CMakeFiles/hamilt_pwdft.dir/forces.cpp.o
[ 27%] Building CXX object source/module_hamilt_lcao/module_tddft/CMakeFiles/tddft.dir/propagator.cpp.o
[ 28%] Building CXX object source/module_psi/CMakeFiles/psi_initializer.dir/psi_initializer_atomic_random.cpp.o
[ 28%] Building CXX object source/module_hamilt_lcao/hamilt_lcaodft/CMakeFiles/hamilt_lcao.dir/operator_lcao/meta_lcao.cpp.o
[ 28%] Building CXX object source/module_elecstate/CMakeFiles/elecstate.dir/elecstate_pw.cpp.o
[ 28%] Built target xc_
[ 28%] Building CXX object source/module_hamilt_lcao/module_hcontainer/CMakeFiles/hcontainer.dir/base_matrix.cpp.o
[ 28%] Building CXX object source/module_base/CMakeFiles/base.dir/math_lebedev_laikov.cpp.o
[ 28%] Building CXX object source/module_relax/CMakeFiles/relax.dir/relax_old/lattice_change_basic.cpp.o
[ 28%] Building CXX object source/module_base/module_container/CMakeFiles/container.dir/ATen/core/tensor_map.cpp.o
[ 28%] Building CXX object source/module_hamilt_lcao/hamilt_lcaodft/CMakeFiles/hamilt_lcao.dir/operator_lcao/op_dftu_lcao.cpp.o
[ 29%] Building CXX object source/module_hamilt_lcao/module_dftu/CMakeFiles/dftu.dir/dftu_folding.cpp.o
[ 29%] Building CXX object source/CMakeFiles/device.dir/module_hamilt_pw/hamilt_pwdft/kernels/wf_op.cpp.o
[ 30%] Building CXX object source/module_hamilt_general/module_surchem/CMakeFiles/surchem.dir/cal_pseudo.cpp.o
[ 30%] Building CXX object source/module_base/module_container/CMakeFiles/container.dir/ATen/core/tensor_shape.cpp.o
[ 30%] Building CXX object source/CMakeFiles/device.dir/module_hamilt_pw/hamilt_pwdft/kernels/vnl_op.cpp.o
[ 30%] Building CXX object source/module_base/module_container/CMakeFiles/container.dir/ATen/core/tensor_types.cpp.o
[ 30%] Building CXX object source/module_hamilt_lcao/module_dftu/CMakeFiles/dftu.dir/dftu_io.cpp.o
[ 31%] Building CXX object source/CMakeFiles/device.dir/module_base/kernels/math_op.cpp.o
[ 31%] Building CXX object source/module_hamilt_lcao/module_hcontainer/CMakeFiles/hcontainer.dir/atom_pair.cpp.o
[ 32%] Building CXX object source/module_hamilt_pw/hamilt_stodft/CMakeFiles/hamilt_stodft.dir/sto_stress_pw.cpp.o
[ 32%] Building CXX object source/module_base/CMakeFiles/base.dir/math_polyint.cpp.o
[ 32%] Building CXX object source/module_hamilt_general/module_vdw/CMakeFiles/vdw.dir/vdw.cpp.o
[ 32%] Building CXX object source/module_cell/CMakeFiles/cell.dir/read_pp_vwr.cpp.o
[ 32%] Building CXX object source/module_base/module_container/CMakeFiles/container.dir/ATen/kernels/blas.cpp.o
[ 32%] Building CXX object source/module_hamilt_lcao/hamilt_lcaodft/CMakeFiles/hamilt_lcao.dir/operator_lcao/deepks_lcao.cpp.o
[ 32%] Building CXX object source/module_psi/CMakeFiles/psi_initializer.dir/psi_initializer_nao.cpp.o
[ 33%] Building CXX object source/module_relax/CMakeFiles/relax.dir/relax_old/lattice_change_cg.cpp.o
[ 33%] Building CXX object source/module_base/CMakeFiles/base.dir/math_sphbes.cpp.o
[ 33%] Building CXX object source/module_elecstate/CMakeFiles/elecstate.dir/elecstate_pw_sdft.cpp.o
[ 33%] Building CXX object source/module_hamilt_lcao/module_tddft/CMakeFiles/tddft.dir/upsi.cpp.o
[ 34%] Building CXX object source/module_elecstate/CMakeFiles/elecstate.dir/potentials/gatefield.cpp.o
[ 34%] Building CXX object source/module_hamilt_lcao/module_dftu/CMakeFiles/dftu.dir/dftu_tools.cpp.o
[ 34%] Building CXX object source/CMakeFiles/device.dir/module_hamilt_general/module_xc/kernels/xc_functional_op.cpp.o
[ 35%] Building CXX object source/module_base/CMakeFiles/base.dir/math_ylmreal.cpp.o
[ 35%] Built target tddft
[ 35%] Building CXX object source/module_base/CMakeFiles/base.dir/math_bspline.cpp.o
[ 35%] Building CXX object source/module_hamilt_lcao/module_deltaspin/CMakeFiles/deltaspin.dir/spin_constrain.cpp.o
[ 36%] Building CXX object source/module_base/module_container/CMakeFiles/container.dir/ATen/kernels/lapack.cpp.o
[ 36%] Built target device
[ 36%] Building CXX object source/module_base/module_container/CMakeFiles/container.dir/ATen/kernels/linalg.cpp.o
[ 36%] Building CXX object source/module_hamilt_general/module_surchem/CMakeFiles/surchem.dir/cal_totn.cpp.o
[ 36%] Building CXX object source/module_hamilt_lcao/hamilt_lcaodft/CMakeFiles/hamilt_lcao.dir/operator_lcao/op_exx_lcao.cpp.o
[ 37%] Building CXX object source/module_hamilt_lcao/hamilt_lcaodft/CMakeFiles/hamilt_lcao.dir/operator_lcao/overlap_new.cpp.o
[ 37%] Building CXX object source/module_relax/CMakeFiles/relax.dir/relax_old/lattice_change_methods.cpp.o
[ 37%] Building CXX object source/module_cell/CMakeFiles/cell.dir/unitcell.cpp.o
[ 37%] Building CXX object source/module_hamilt_lcao/module_dftu/CMakeFiles/dftu.dir/dftu_occup.cpp.o
[ 37%] Building CXX object source/module_hsolver/CMakeFiles/hsolver.dir/diagh_consts.cpp.o
[ 37%] Building CXX object source/module_hamilt_pw/hamilt_pwdft/CMakeFiles/hamilt_pwdft.dir/forces_us.cpp.o
[ 37%] Building CXX object source/module_hamilt_general/module_surchem/CMakeFiles/surchem.dir/cal_vcav.cpp.o
[ 37%] Building CXX object source/module_hamilt_lcao/module_deltaspin/CMakeFiles/deltaspin.dir/sc_parse_json.cpp.o
[ 37%] Building CXX object source/module_base/module_container/CMakeFiles/container.dir/ATen/kernels/memory_impl.cpp.o
[ 38%] Building CXX object source/module_hsolver/CMakeFiles/hsolver.dir/diago_cg.cpp.o
[ 38%] Building CXX object source/module_base/CMakeFiles/base.dir/math_chebyshev.cpp.o
[ 38%] Built target vdw
[ 38%] Building CXX object source/module_hsolver/genelpa/CMakeFiles/genelpa.dir/elpa_new.cpp.o
[ 38%] Building CXX object source/module_elecstate/CMakeFiles/elecstate.dir/potentials/efield.cpp.o
[ 38%] Building CXX object source/module_hamilt_lcao/module_dftu/CMakeFiles/dftu.dir/dftu_hamilt.cpp.o
[ 38%] Building CXX object source/module_base/CMakeFiles/base.dir/mathzone_add1.cpp.o
[ 39%] Building CXX object source/module_base/CMakeFiles/base.dir/matrix.cpp.o
[ 39%] Built target container
[ 39%] Building CXX object source/module_base/CMakeFiles/base.dir/matrix3.cpp.o
[ 39%] Building CXX object source/module_hamilt_pw/hamilt_pwdft/CMakeFiles/hamilt_pwdft.dir/stress_func_cc.cpp.o
[ 39%] Built target relax
[ 40%] Building CXX object source/module_hamilt_pw/hamilt_pwdft/CMakeFiles/hamilt_pwdft.dir/stress_func_ewa.cpp.o
[ 40%] Building CXX object source/module_hamilt_lcao/module_hcontainer/CMakeFiles/hcontainer.dir/hcontainer.cpp.o
[ 40%] Built target hamilt_stodft
[ 41%] Building CXX object source/module_hamilt_lcao/module_hcontainer/CMakeFiles/hcontainer.dir/output_hcontainer.cpp.o
[ 41%] Built target dftu
[ 41%] Building CXX object source/module_basis/module_ao/CMakeFiles/orb.dir/ORB_atomic.cpp.o
[ 41%] Building CXX object source/module_hamilt_lcao/hamilt_lcaodft/CMakeFiles/hamilt_lcao.dir/operator_lcao/ekinetic_new.cpp.o
[ 41%] Building CXX object source/module_basis/module_ao/CMakeFiles/orb.dir/ORB_atomic_lm.cpp.o
[ 41%] Building CXX object source/module_basis/module_ao/CMakeFiles/orb.dir/ORB_control.cpp.o
[ 41%] Building CXX object source/module_hamilt_general/module_surchem/CMakeFiles/surchem.dir/cal_vel.cpp.o
[ 41%] Building CXX object source/module_basis/module_ao/CMakeFiles/orb.dir/ORB_gaunt_table.cpp.o
[ 41%] Building CXX object source/module_hsolver/CMakeFiles/hsolver.dir/diago_david.cpp.o
[ 41%] Building CXX object source/module_hsolver/CMakeFiles/hsolver.dir/diago_bpcg.cpp.o
[ 42%] Building CXX object source/module_basis/module_ao/CMakeFiles/orb.dir/ORB_gen_tables.cpp.o
[ 42%] Building CXX object source/module_psi/CMakeFiles/psi_initializer.dir/psi_initializer_nao_random.cpp.o
[ 42%] Building CXX object source/module_hamilt_pw/hamilt_pwdft/CMakeFiles/hamilt_pwdft.dir/stress_func_gga.cpp.o
[ 42%] Building CXX object source/module_base/CMakeFiles/base.dir/memory.cpp.o
[ 42%] Building CXX object source/module_hamilt_general/module_surchem/CMakeFiles/surchem.dir/corrected_energy.cpp.o
[ 42%] Building CXX object source/module_elecstate/CMakeFiles/elecstate.dir/potentials/H_Hartree_pw.cpp.o
[ 42%] Building CXX object source/module_elecstate/CMakeFiles/elecstate.dir/potentials/pot_xc.cpp.o
[ 42%] Building CXX object source/module_basis/module_ao/CMakeFiles/orb.dir/ORB_nonlocal.cpp.o
[ 42%] Building CXX object source/module_hamilt_lcao/module_hcontainer/CMakeFiles/hcontainer.dir/func_folding.cpp.o
[ 42%] Building CXX object source/module_hamilt_pw/hamilt_pwdft/CMakeFiles/hamilt_pwdft.dir/stress_func_mgga.cpp.o
[ 42%] Built target psi_initializer
[ 42%] Building CXX object source/module_basis/module_nao/CMakeFiles/numerical_atomic_orbitals.dir/numerical_radial.cpp.o
[ 42%] Building CXX object source/module_basis/module_ao/CMakeFiles/orb.dir/ORB_nonlocal_lm.cpp.o
[ 42%] Building CXX object source/module_basis/module_ao/CMakeFiles/orb.dir/ORB_read.cpp.o
[ 42%] Building CXX object source/module_base/CMakeFiles/base.dir/mymath.cpp.o
[ 42%] Building CXX object source/module_hamilt_lcao/hamilt_lcaodft/CMakeFiles/hamilt_lcao.dir/operator_lcao/nonlocal_new.cpp.o
[ 42%] Building CXX object source/module_hamilt_lcao/hamilt_lcaodft/CMakeFiles/hamilt_lcao.dir/operator_lcao/td_ekinetic_lcao.cpp.o
[ 42%] Building CXX object source/module_hsolver/CMakeFiles/hsolver.dir/hsolver_pw.cpp.o
[ 42%] Building CXX object source/module_hsolver/CMakeFiles/hsolver.dir/hsolver_pw_sdft.cpp.o
[ 42%] Building CXX object source/module_basis/module_nao/CMakeFiles/numerical_atomic_orbitals.dir/radial_set.cpp.o
[ 43%] Building CXX object source/module_elecstate/CMakeFiles/elecstate.dir/potentials/pot_local.cpp.o
[ 44%] Building CXX object source/module_hamilt_general/module_surchem/CMakeFiles/surchem.dir/minimize_cg.cpp.o
[ 44%] Building CXX object source/module_hsolver/genelpa/CMakeFiles/genelpa.dir/elpa_new_real.cpp.o
[ 44%] Building CXX object source/module_hamilt_lcao/module_hcontainer/CMakeFiles/hcontainer.dir/transfer.cpp.o
[ 45%] Building CXX object source/module_hsolver/CMakeFiles/hsolver.dir/diago_iter_assist.cpp.o
[ 45%] Building CXX object source/module_base/CMakeFiles/base.dir/opt_CG.cpp.o
[ 45%] Building CXX object source/module_hamilt_pw/hamilt_pwdft/CMakeFiles/hamilt_pwdft.dir/stress_func_har.cpp.o
[ 45%] Building CXX object source/module_elecstate/CMakeFiles/elecstate.dir/potentials/pot_local_paw.cpp.o
[ 45%] Building CXX object source/module_hamilt_pw/hamilt_pwdft/CMakeFiles/hamilt_pwdft.dir/stress_func_kin.cpp.o
[ 46%] Building CXX object source/module_base/CMakeFiles/base.dir/opt_DCsrch.cpp.o
[ 46%] Building CXX object source/module_hsolver/CMakeFiles/hsolver.dir/hsolver_lcao.cpp.o
[ 47%] Building CXX object source/module_hamilt_lcao/module_deltaspin/CMakeFiles/deltaspin.dir/cal_h_lambda.cpp.o
[ 48%] Building CXX object source/module_hamilt_pw/hamilt_pwdft/CMakeFiles/hamilt_pwdft.dir/stress_func_loc.cpp.o
[ 48%] Building CXX object source/module_hamilt_pw/hamilt_pwdft/CMakeFiles/hamilt_pwdft.dir/stress_func_nl.cpp.o
[ 48%] Building CXX object source/module_base/CMakeFiles/base.dir/realarray.cpp.o
[ 48%] Building CXX object source/module_elecstate/CMakeFiles/elecstate.dir/potentials/potential_new.cpp.o
[ 48%] Building CXX object source/module_basis/module_ao/CMakeFiles/orb.dir/ORB_table_alpha.cpp.o
[ 48%] Building CXX object source/module_base/CMakeFiles/base.dir/sph_bessel_recursive-d1.cpp.o
[ 48%] Building CXX object source/module_cell/CMakeFiles/cell.dir/read_atoms.cpp.o
[ 48%] Building CXX object source/module_hsolver/genelpa/CMakeFiles/genelpa.dir/elpa_new_complex.cpp.o
[ 49%] Building CXX object source/module_cell/CMakeFiles/cell.dir/read_cell_pseudopots.cpp.o
[ 49%] Building CXX object source/module_hamilt_lcao/module_hcontainer/CMakeFiles/hcontainer.dir/func_transfer.cpp.o
[ 50%] Building CXX object source/module_basis/module_nao/CMakeFiles/numerical_atomic_orbitals.dir/atomic_radials.cpp.o
[ 51%] Building CXX object source/module_basis/module_ao/CMakeFiles/orb.dir/ORB_table_beta.cpp.o
[ 51%] Building CXX object source/module_base/CMakeFiles/base.dir/sph_bessel_recursive-d2.cpp.o
[ 51%] Building CXX object source/module_elecstate/CMakeFiles/elecstate.dir/potentials/potential_types.cpp.o
[ 51%] Building CXX object source/module_hamilt_general/module_surchem/CMakeFiles/surchem.dir/sol_force.cpp.o
[ 51%] Building CXX object source/module_elecstate/CMakeFiles/elecstate.dir/module_charge/charge.cpp.o
[ 51%] Building CXX object source/module_base/CMakeFiles/base.dir/timer.cpp.o
[ 51%] Building CXX object source/module_basis/module_ao/CMakeFiles/orb.dir/ORB_table_phi.cpp.o
[ 51%] Building CXX object source/module_hsolver/CMakeFiles/hsolver.dir/diago_blas.cpp.o
[ 51%] Building CXX object source/module_basis/module_ao/CMakeFiles/orb.dir/parallel_2d.cpp.o
[ 51%] Building CXX object source/module_hamilt_lcao/module_deltaspin/CMakeFiles/deltaspin.dir/init_sc.cpp.o
[ 51%] Building CXX object source/module_hamilt_lcao/hamilt_lcaodft/CMakeFiles/hamilt_lcao.dir/operator_lcao/td_nonlocal_lcao.cpp.o
[ 51%] Building CXX object source/module_hsolver/genelpa/CMakeFiles/genelpa.dir/utils.cpp.o
[ 51%] Building CXX object source/module_basis/module_nao/CMakeFiles/numerical_atomic_orbitals.dir/beta_radials.cpp.o
[ 51%] Building CXX object source/module_basis/module_ao/CMakeFiles/orb.dir/parallel_orbitals.cpp.o
[ 51%] Built target genelpa
[ 51%] Building CXX object source/module_md/CMakeFiles/md.dir/fire.cpp.o
[ 51%] Building CXX object source/module_basis/module_nao/CMakeFiles/numerical_atomic_orbitals.dir/sphbes_radials.cpp.o
[ 51%] Building CXX object source/module_basis/module_nao/CMakeFiles/numerical_atomic_orbitals.dir/hydrogen_radials.cpp.o
[ 51%] Built target hcontainer
[ 51%] Building CXX object source/module_basis/module_nao/CMakeFiles/numerical_atomic_orbitals.dir/pswfc_radials.cpp.o
[ 52%] Building CXX object source/module_basis/module_nao/CMakeFiles/numerical_atomic_orbitals.dir/radial_collection.cpp.o
[ 52%] Built target surchem
[ 52%] Building CXX object source/module_basis/module_nao/CMakeFiles/numerical_atomic_orbitals.dir/real_gaunt_table.cpp.o
[ 52%] Building CXX object source/module_hamilt_lcao/module_deltaspin/CMakeFiles/deltaspin.dir/cal_mw_helper.cpp.o
[ 52%] Building CXX object source/module_basis/module_nao/CMakeFiles/numerical_atomic_orbitals.dir/two_center_table.cpp.o
[ 52%] Building CXX object source/module_hsolver/CMakeFiles/hsolver.dir/diago_elpa.cpp.o
[ 53%] Building CXX object source/module_hamilt_lcao/hamilt_lcaodft/CMakeFiles/hamilt_lcao.dir/operator_lcao/sc_lambda_lcao.cpp.o
[ 54%] Building CXX object source/module_base/CMakeFiles/base.dir/tool_check.cpp.o
[ 55%] Building CXX object source/module_elecstate/CMakeFiles/elecstate.dir/module_charge/charge_init.cpp.o
[ 55%] Building CXX object source/module_basis/module_nao/CMakeFiles/numerical_atomic_orbitals.dir/two_center_integrator.cpp.o
[ 56%] Building CXX object source/module_basis/module_nao/CMakeFiles/numerical_atomic_orbitals.dir/two_center_bundle.cpp.o
[ 56%] Building CXX object source/module_base/CMakeFiles/base.dir/tool_quit.cpp.o
[ 56%] Building CXX object source/module_hamilt_lcao/module_deltaspin/CMakeFiles/deltaspin.dir/cal_mw.cpp.o
[ 56%] Building CXX object source/module_hamilt_pw/hamilt_pwdft/CMakeFiles/hamilt_pwdft.dir/stress_func_us.cpp.o
[ 56%] Built target hsolver
[ 57%] Building CXX object source/module_md/CMakeFiles/md.dir/langevin.cpp.o
[ 57%] Building CXX object source/module_basis/module_pw/CMakeFiles/planewave.dir/fft.cpp.o
[ 57%] Built target orb
[ 58%] Building CXX object source/module_esolver/CMakeFiles/esolver.dir/esolver.cpp.o
[ 58%] Building CXX object source/module_basis/module_nao/CMakeFiles/numerical_atomic_orbitals.dir/projgen.cpp.o
[ 58%] Building CXX object source/module_hamilt_lcao/hamilt_lcaodft/CMakeFiles/hamilt_lcao.dir/operator_lcao/dftu_new.cpp.o
[ 58%] Building CXX object source/module_cell/CMakeFiles/cell.dir/setup_nonlocal.cpp.o
[ 58%] Building CXX object source/module_cell/CMakeFiles/cell.dir/klist.cpp.o
[ 58%] Building CXX object source/module_base/CMakeFiles/base.dir/tool_title.cpp.o
[ 58%] Building CXX object source/module_base/CMakeFiles/base.dir/ylm.cpp.o
[ 59%] Building CXX object source/module_basis/module_pw/CMakeFiles/planewave.dir/pw_basis.cpp.o
[ 59%] Building CXX object source/module_basis/module_pw/CMakeFiles/planewave.dir/pw_basis_k.cpp.o
[ 59%] Building CXX object source/module_basis/module_pw/CMakeFiles/planewave.dir/pw_basis_sup.cpp.o
[ 59%] Building CXX object source/module_base/CMakeFiles/base.dir/abfs-vector3_order.cpp.o
[ 59%] Building CXX object source/module_basis/module_pw/CMakeFiles/planewave.dir/pw_distributeg.cpp.o
[ 60%] Building CXX object source/module_basis/module_pw/CMakeFiles/planewave.dir/pw_distributeg_method1.cpp.o
[ 60%] Building CXX object source/module_md/CMakeFiles/md.dir/md_base.cpp.o
[ 60%] Building CXX object source/module_hamilt_pw/hamilt_pwdft/CMakeFiles/hamilt_pwdft.dir/stress_pw.cpp.o
[ 60%] Building CXX object source/module_md/CMakeFiles/md.dir/md_func.cpp.o
[ 60%] Building CXX object source/module_md/CMakeFiles/md.dir/msst.cpp.o
[ 60%] Building CXX object source/module_md/CMakeFiles/md.dir/nhchain.cpp.o
[ 60%] Building CXX object source/module_cell/CMakeFiles/cell.dir/parallel_kpoints.cpp.o
[ 60%] Building CXX object source/module_basis/module_pw/CMakeFiles/planewave.dir/pw_distributeg_method2.cpp.o
[ 61%] Building CXX object source/module_md/CMakeFiles/md.dir/run_md.cpp.o
[ 61%] Building CXX object source/module_md/CMakeFiles/md.dir/verlet.cpp.o
[ 61%] Building CXX object source/module_elecstate/CMakeFiles/elecstate.dir/module_charge/charge_mpi.cpp.o
[ 61%] Building CXX object source/module_basis/module_pw/CMakeFiles/planewave.dir/pw_distributer.cpp.o
[ 62%] Building CXX object source/module_hamilt_lcao/module_deltaspin/CMakeFiles/deltaspin.dir/basic_funcs.cpp.o
[ 62%] Building CXX object source/module_hamilt_lcao/hamilt_lcaodft/CMakeFiles/hamilt_lcao.dir/FORCE_STRESS.cpp.o
[ 62%] Building CXX object source/module_elecstate/CMakeFiles/elecstate.dir/module_charge/charge_extra.cpp.o
[ 62%] Building CXX object source/module_elecstate/CMakeFiles/elecstate.dir/module_charge/charge_mixing.cpp.o
[ 62%] Building CXX object source/module_elecstate/CMakeFiles/elecstate.dir/module_charge/symmetry_rho.cpp.o
[ 63%] Building CXX object source/module_hamilt_pw/hamilt_pwdft/CMakeFiles/hamilt_pwdft.dir/VL_in_pw.cpp.o
[ 63%] Building CXX object source/module_esolver/CMakeFiles/esolver.dir/esolver_ks.cpp.o
[ 63%] Built target md
[ 64%] Building CXX object source/module_hamilt_lcao/module_gint/CMakeFiles/gint.dir/gint.cpp.o
[ 64%] Building CXX object source/module_hamilt_lcao/module_gint/CMakeFiles/gint.dir/gint_gamma.cpp.o
[ 64%] Building CXX object source/module_basis/module_pw/CMakeFiles/planewave.dir/pw_init.cpp.o
[ 64%] Building CXX object source/module_hamilt_lcao/hamilt_lcaodft/CMakeFiles/hamilt_lcao.dir/FORCE_gamma.cpp.o
[ 64%] Building CXX object source/module_basis/module_pw/CMakeFiles/planewave.dir/pw_transform.cpp.o
[ 64%] Building CXX object source/module_hamilt_pw/hamilt_pwdft/CMakeFiles/hamilt_pwdft.dir/VNL_in_pw.cpp.o
[ 64%] Building CXX object source/module_hamilt_lcao/module_deltaspin/CMakeFiles/deltaspin.dir/lambda_loop_helper.cpp.o
[ 64%] Building CXX object source/module_hamilt_pw/hamilt_pwdft/CMakeFiles/hamilt_pwdft.dir/VNL_grad_pw.cpp.o
[ 64%] Building CXX object source/module_esolver/CMakeFiles/esolver.dir/esolver_fp.cpp.o
[ 64%] Building CXX object source/module_hamilt_lcao/module_gint/CMakeFiles/gint.dir/gint_gamma_env.cpp.o
/opt/abacus-develop/source/module_elecstate/module_charge/charge_mixing.cpp:507:17: warning: using integer absolute value function 'abs' when argument is of floating point type [-Wabsolute-value]
            if (abs(norm) < 1e-10) continue;
                ^
/opt/abacus-develop/source/module_elecstate/module_charge/charge_mixing.cpp:507:17: note: use function 'std::abs' instead
            if (abs(norm) < 1e-10) continue;
                ^~~
                std::abs
[ 64%] Building CXX object source/module_hamilt_lcao/module_gint/CMakeFiles/gint.dir/gint_gamma_vl.cpp.o
[ 64%] Built target numerical_atomic_orbitals
[ 64%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/input.cpp.o
[ 64%] Building CXX object source/module_hamilt_lcao/module_gint/CMakeFiles/gint.dir/gint_fvl.cpp.o
[ 64%] Building CXX object source/module_hamilt_pw/hamilt_pwdft/CMakeFiles/hamilt_pwdft.dir/wavefunc.cpp.o
[ 65%] Building CXX object source/module_hamilt_lcao/hamilt_lcaodft/CMakeFiles/hamilt_lcao.dir/FORCE_gamma_edm.cpp.o
[ 65%] Building CXX object source/module_hamilt_lcao/hamilt_lcaodft/CMakeFiles/hamilt_lcao.dir/FORCE_gamma_tvnl.cpp.o
[ 65%] Building CXX object source/module_hamilt_lcao/hamilt_lcaodft/CMakeFiles/hamilt_lcao.dir/FORCE_gamma_vl.cpp.o
[ 66%] Building CXX object source/module_hamilt_lcao/module_gint/CMakeFiles/gint.dir/gint_rho.cpp.o
[ 66%] Building CXX object source/module_esolver/CMakeFiles/esolver.dir/esolver_ks_pw.cpp.o
[ 67%] Building CXX object source/module_basis/module_pw/CMakeFiles/planewave.dir/pw_transform_k.cpp.o
[ 67%] Building CXX object source/module_hamilt_lcao/module_deltaspin/CMakeFiles/deltaspin.dir/lambda_loop.cpp.o
[ 67%] Building CXX object source/module_hamilt_lcao/module_deltaspin/CMakeFiles/deltaspin.dir/cal_mw_from_lambda.cpp.o
[ 67%] Building CXX object source/module_hamilt_lcao/module_deltaspin/CMakeFiles/deltaspin.dir/template_helpers.cpp.o
[ 67%] Building CXX object source/module_hamilt_lcao/hamilt_lcaodft/CMakeFiles/hamilt_lcao.dir/FORCE_k.cpp.o
[ 67%] Building CXX object source/module_hamilt_lcao/hamilt_lcaodft/CMakeFiles/hamilt_lcao.dir/LCAO_gen_fixedH.cpp.o
[ 68%] Building CXX object source/module_elecstate/CMakeFiles/elecstate.dir/module_charge/symmetry_rhog.cpp.o
[ 68%] Building CXX object source/module_elecstate/CMakeFiles/elecstate.dir/fp_energy.cpp.o
[ 68%] Building CXX object source/module_hamilt_lcao/module_gint/CMakeFiles/gint.dir/gint_tau.cpp.o
[ 68%] Building CXX object source/module_elecstate/CMakeFiles/elecstate.dir/magnetism.cpp.o
[ 69%] Building CXX object source/module_hamilt_lcao/hamilt_lcaodft/CMakeFiles/hamilt_lcao.dir/LCAO_hamilt.cpp.o
[ 69%] Building CXX object source/module_hamilt_lcao/hamilt_lcaodft/CMakeFiles/hamilt_lcao.dir/LCAO_matrix.cpp.o
1 warning generated.
[ 69%] Building CXX object source/module_elecstate/CMakeFiles/elecstate.dir/occupy.cpp.o
[ 69%] Building CXX object source/module_elecstate/CMakeFiles/elecstate.dir/elecstate_lcao.cpp.o
[ 70%] Building CXX object source/module_elecstate/CMakeFiles/elecstate.dir/elecstate_lcao_tddft.cpp.o
[ 70%] Building CXX object source/module_elecstate/CMakeFiles/elecstate.dir/potentials/H_TDDFT_pw.cpp.o
[ 70%] Built target deltaspin
[ 70%] Building CXX object source/module_io/CMakeFiles/io_advanced.dir/unk_overlap_pw.cpp.o
[ 70%] Built target planewave
[ 70%] Building CXX object source/module_base/CMakeFiles/formatter.dir/formatter_fmt.cpp.o
[ 70%] Building CXX object source/module_hamilt_lcao/module_gint/CMakeFiles/gint.dir/gint_vl.cpp.o
[ 70%] Building CXX object source/module_hamilt_pw/hamilt_pwdft/CMakeFiles/hamilt_pwdft.dir/wf_atomic.cpp.o
[ 70%] Building CXX object source/module_base/CMakeFiles/formatter.dir/formatter_physfmt.cpp.o
[ 70%] Built target cell
[ 70%] Building CXX object source/module_base/CMakeFiles/formatter.dir/formatter_table.cpp.o
[ 70%] Building CXX object source/module_elecstate/CMakeFiles/elecstate.dir/module_dm/density_matrix.cpp.o
[ 70%] Building CXX object source/module_elecstate/CMakeFiles/elecstate.dir/module_dm/cal_dm_psi.cpp.o
[ 71%] Building CXX object source/module_io/CMakeFiles/io_advanced.dir/berryphase.cpp.o
[ 71%] Building CXX object source/module_io/CMakeFiles/io_advanced.dir/to_wannier90.cpp.o
[ 71%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/input_conv.cpp.o
[ 72%] Building CXX object source/module_base/CMakeFiles/formatter.dir/formatter_contextfmt.cpp.o
[ 72%] Building CXX object source/module_esolver/CMakeFiles/esolver.dir/esolver_ks_pw_tool.cpp.o
[ 73%] Building CXX object source/module_hamilt_pw/hamilt_pwdft/CMakeFiles/hamilt_pwdft.dir/structure_factor.cpp.o
[ 74%] Building CXX object source/module_base/CMakeFiles/base.dir/parallel_common.cpp.o
[ 74%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/bessel_basis.cpp.o
[ 74%] Building CXX object source/module_hamilt_lcao/hamilt_lcaodft/CMakeFiles/hamilt_lcao.dir/LCAO_nnr.cpp.o
[ 74%] Building CXX object source/module_hamilt_lcao/hamilt_lcaodft/CMakeFiles/hamilt_lcao.dir/record_adj.cpp.o
[ 74%] Building CXX object source/module_base/CMakeFiles/base.dir/parallel_global.cpp.o
[ 74%] Building CXX object source/module_io/CMakeFiles/io_advanced.dir/to_wannier90_pw.cpp.o
[ 74%] Building CXX object source/module_hamilt_lcao/module_gint/CMakeFiles/gint.dir/gint_k_env.cpp.o
[ 74%] Building CXX object source/module_hamilt_lcao/module_gint/CMakeFiles/gint.dir/gint_k_sparse.cpp.o
[ 75%] Building CXX object source/module_esolver/CMakeFiles/esolver.dir/esolver_sdft_pw.cpp.o
[ 75%] Built target elecstate
[ 75%] Building CXX object source/module_hamilt_pw/hamilt_pwdft/operator_pw/CMakeFiles/operator_ks_pw.dir/operator_pw.cpp.o
[ 75%] Built target formatter
[ 75%] Building CXX object source/module_hamilt_lcao/hamilt_lcaodft/operator_lcao/CMakeFiles/operator_ks_lcao.dir/op_exx_lcao.cpp.o
[ 75%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/cal_test.cpp.o
[ 75%] Building CXX object source/module_hamilt_lcao/hamilt_lcaodft/CMakeFiles/hamilt_lcao.dir/center2_orb-orb11.cpp.o
[ 75%] Building CXX object source/module_base/CMakeFiles/base.dir/parallel_reduce.cpp.o
[ 75%] Building CXX object source/module_hamilt_lcao/hamilt_lcaodft/operator_lcao/CMakeFiles/operator_ks_lcao.dir/op_dftu_lcao.cpp.o
[ 75%] Building CXX object source/module_hamilt_pw/hamilt_pwdft/CMakeFiles/hamilt_pwdft.dir/structure_factor_k.cpp.o
[ 76%] Building CXX object source/module_hamilt_lcao/hamilt_lcaodft/CMakeFiles/hamilt_lcao.dir/center2_orb-orb21.cpp.o
[ 77%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/cal_dos.cpp.o
[ 78%] Building CXX object source/module_hamilt_pw/hamilt_pwdft/operator_pw/CMakeFiles/operator_ks_pw.dir/ekinetic_pw.cpp.o
[ 78%] Building CXX object source/module_hamilt_pw/hamilt_pwdft/operator_pw/CMakeFiles/operator_ks_pw.dir/veff_pw.cpp.o
[ 78%] Building CXX object source/module_hamilt_pw/hamilt_pwdft/operator_pw/CMakeFiles/operator_ks_pw.dir/nonlocal_pw.cpp.o
[ 79%] Building CXX object source/module_hamilt_lcao/module_gint/CMakeFiles/gint.dir/gint_k_sparse1.cpp.o
[ 79%] Building CXX object source/module_hamilt_lcao/module_gint/CMakeFiles/gint.dir/gint_k_pvpr.cpp.o
[ 79%] Building CXX object source/module_base/CMakeFiles/base.dir/spherical_bessel_transformer.cpp.o
[ 79%] Building CXX object source/module_hamilt_lcao/hamilt_lcaodft/CMakeFiles/hamilt_lcao.dir/center2_orb-orb22.cpp.o
[ 79%] Building CXX object source/module_hamilt_pw/hamilt_pwdft/CMakeFiles/hamilt_pwdft.dir/soc.cpp.o
[ 79%] Building CXX object source/module_esolver/CMakeFiles/esolver.dir/esolver_sdft_pw_tool.cpp.o
[ 79%] Building CXX object source/module_hamilt_pw/hamilt_pwdft/operator_pw/CMakeFiles/operator_ks_pw.dir/meta_pw.cpp.o
[ 79%] Building CXX object source/module_hamilt_lcao/hamilt_lcaodft/operator_lcao/CMakeFiles/operator_ks_lcao.dir/meta_lcao.cpp.o
[ 80%] Building CXX object source/module_hamilt_pw/hamilt_pwdft/operator_pw/CMakeFiles/operator_ks_pw.dir/velocity_pw.cpp.o
[ 80%] Building CXX object source/module_hamilt_lcao/hamilt_lcaodft/CMakeFiles/hamilt_lcao.dir/DM_gamma.cpp.o
[ 80%] Building CXX object source/module_hamilt_pw/hamilt_pwdft/CMakeFiles/hamilt_pwdft.dir/global.cpp.o
[ 80%] Building CXX object source/module_hamilt_lcao/hamilt_lcaodft/CMakeFiles/hamilt_lcao.dir/DM_gamma_2d_to_grid.cpp.o
[ 80%] Building CXX object source/module_io/CMakeFiles/io_advanced.dir/to_wannier90_lcao_in_pw.cpp.o
[ 81%] Building CXX object source/module_base/CMakeFiles/base.dir/cubic_spline.cpp.o
[ 81%] Building CXX object source/module_base/CMakeFiles/base.dir/formatter_fmt.cpp.o
[ 81%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/write_dos_pw.cpp.o
[ 81%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/nscf_band.cpp.o
[ 81%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/write_istate_info.cpp.o
[ 81%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/numerical_basis.cpp.o
[ 82%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/numerical_descriptor.cpp.o
[ 82%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/output.cpp.o
[ 82%] Building CXX object source/module_hamilt_lcao/module_gint/CMakeFiles/gint.dir/gint_k_pvdpr.cpp.o
[ 82%] Building CXX object source/module_hamilt_lcao/module_gint/CMakeFiles/gint.dir/gint_tools.cpp.o
[ 83%] Building CXX object source/module_hamilt_lcao/hamilt_lcaodft/operator_lcao/CMakeFiles/operator_ks_lcao.dir/veff_lcao.cpp.o
[ 83%] Built target operator_ks_pw
[ 83%] Building CXX object source/module_hamilt_lcao/hamilt_lcaodft/operator_lcao/CMakeFiles/operator_ks_lcao.dir/deepks_lcao.cpp.o
[ 83%] Building CXX object source/module_hamilt_lcao/hamilt_lcaodft/CMakeFiles/hamilt_lcao.dir/DM_k.cpp.o
[ 83%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/print_info.cpp.o
[ 84%] Building CXX object source/module_hamilt_lcao/hamilt_lcaodft/CMakeFiles/hamilt_lcao.dir/local_orbital_charge.cpp.o
[ 84%] Building CXX object source/module_hamilt_pw/hamilt_pwdft/CMakeFiles/hamilt_pwdft.dir/parallel_grid.cpp.o
[ 84%] Building CXX object source/module_hamilt_lcao/module_gint/CMakeFiles/gint.dir/grid_bigcell.cpp.o
[ 85%] Building CXX object source/module_hamilt_lcao/module_gint/CMakeFiles/gint.dir/grid_meshball.cpp.o
[ 85%] Building CXX object source/module_hamilt_lcao/module_gint/CMakeFiles/gint.dir/grid_meshcell.cpp.o
[ 85%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/read_cube.cpp.o
[ 85%] Building CXX object source/module_hamilt_lcao/hamilt_lcaodft/operator_lcao/CMakeFiles/operator_ks_lcao.dir/overlap_new.cpp.o
[ 85%] Building CXX object source/module_hamilt_lcao/module_gint/CMakeFiles/gint.dir/grid_meshk.cpp.o
[ 86%] Building CXX object source/module_io/CMakeFiles/io_advanced.dir/to_wannier90_lcao.cpp.o
[ 86%] Built target hamilt_pwdft
[ 86%] Building CXX object source/module_hamilt_lcao/module_gint/CMakeFiles/gint.dir/grid_technique.cpp.o
[ 86%] Building CXX object source/module_esolver/CMakeFiles/esolver.dir/esolver_lj.cpp.o
[ 86%] Building CXX object source/module_esolver/CMakeFiles/esolver.dir/esolver_dp.cpp.o
[ 86%] Building CXX object source/module_esolver/CMakeFiles/esolver.dir/esolver_of.cpp.o
[ 86%] Building CXX object source/module_hamilt_lcao/hamilt_lcaodft/operator_lcao/CMakeFiles/operator_ks_lcao.dir/ekinetic_new.cpp.o
[ 87%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/read_rho.cpp.o
[ 87%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/read_rhog.cpp.o
[ 87%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/read_wfc_pw.cpp.o
[ 88%] Building CXX object source/module_esolver/CMakeFiles/esolver.dir/esolver_of_interface.cpp.o
[ 88%] Building CXX object source/module_hamilt_lcao/hamilt_lcaodft/CMakeFiles/hamilt_lcao.dir/local_orbital_wfc.cpp.o
[ 88%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/restart.cpp.o
[ 88%] Building CXX object source/module_esolver/CMakeFiles/esolver.dir/esolver_of_tool.cpp.o
[ 88%] Building CXX object source/module_base/CMakeFiles/base.dir/formatter_physfmt.cpp.o
[ 88%] Built target gint
[ 88%] Building CXX object source/module_base/CMakeFiles/base.dir/formatter_table.cpp.o
[ 88%] Building CXX object source/module_base/CMakeFiles/base.dir/formatter_contextfmt.cpp.o
[ 89%] Building CXX object source/module_base/CMakeFiles/base.dir/module_mixing/mixing_data.cpp.o
[ 89%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/binstream.cpp.o
[ 89%] Building CXX object source/module_hamilt_lcao/hamilt_lcaodft/operator_lcao/CMakeFiles/operator_ks_lcao.dir/nonlocal_new.cpp.o
[ 89%] Building CXX object source/module_hamilt_lcao/hamilt_lcaodft/CMakeFiles/hamilt_lcao.dir/dm_2d.cpp.o
[ 89%] Building CXX object source/module_hamilt_lcao/hamilt_lcaodft/CMakeFiles/hamilt_lcao.dir/wavefunc_in_pw.cpp.o
/opt/abacus-develop/source/module_io/restart.cpp:29:9: warning: add explicit braces to avoid dangling else [-Wdangling-else]
        else return false;
        ^
/opt/abacus-develop/source/module_io/restart.cpp:34:9: warning: add explicit braces to avoid dangling else [-Wdangling-else]
        else return false;
        ^
/opt/abacus-develop/source/module_io/restart.cpp:45:9: warning: add explicit braces to avoid dangling else [-Wdangling-else]
        else return false;
        ^
/opt/abacus-develop/source/module_io/restart.cpp:50:9: warning: add explicit braces to avoid dangling else [-Wdangling-else]
        else return false;
        ^
[ 89%] Building CXX object source/module_esolver/CMakeFiles/esolver.dir/esolver_ks_lcao.cpp.o
[ 89%] Building CXX object source/module_base/CMakeFiles/base.dir/module_mixing/mixing.cpp.o
[ 89%] Building CXX object source/module_base/CMakeFiles/base.dir/module_mixing/plain_mixing.cpp.o
4 warnings generated.
[ 89%] Building CXX object source/module_base/CMakeFiles/base.dir/module_mixing/pulay_mixing.cpp.o
[ 89%] Building CXX object source/module_base/CMakeFiles/base.dir/module_mixing/broyden_mixing.cpp.o
[ 89%] Building CXX object source/module_esolver/CMakeFiles/esolver.dir/esolver_ks_lcao_elec.cpp.o
[ 89%] Building CXX object source/module_esolver/CMakeFiles/esolver.dir/esolver_ks_lcao_tddft.cpp.o
[ 90%] Building CXX object source/module_esolver/CMakeFiles/esolver.dir/esolver_ks_lcao_tmpfunc.cpp.o
[ 91%] Building CXX object source/module_hamilt_lcao/hamilt_lcaodft/operator_lcao/CMakeFiles/operator_ks_lcao.dir/td_ekinetic_lcao.cpp.o
[ 92%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/write_wfc_pw.cpp.o
[ 92%] Building CXX object source/module_hamilt_lcao/hamilt_lcaodft/operator_lcao/CMakeFiles/operator_ks_lcao.dir/td_nonlocal_lcao.cpp.o
[ 92%] Building CXX object source/module_hamilt_lcao/hamilt_lcaodft/operator_lcao/CMakeFiles/operator_ks_lcao.dir/sc_lambda_lcao.cpp.o
[ 92%] Building CXX object source/module_hamilt_lcao/hamilt_lcaodft/operator_lcao/CMakeFiles/operator_ks_lcao.dir/dftu_new.cpp.o
[ 92%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/write_input.cpp.o
[ 92%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/write_cube.cpp.o
[ 92%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/write_rho.cpp.o
[ 92%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/write_potential.cpp.o
[ 92%] Built target hamilt_lcao
[ 92%] Building CXX object source/module_io/CMakeFiles/io_advanced.dir/fR_overlap.cpp.o
/opt/abacus-develop/source/module_esolver/esolver_ks_lcao.cpp:576:60: warning: instantiation of variable 'hamilt::DFTUNew<hamilt::OperatorLCAO<double, double>>::dm_in_dftu' required here, but no definition is available [-Wundefined-var-template]
            hamilt::DFTUNew<hamilt::OperatorLCAO<TK, TR>>::dm_in_dftu = nullptr;
                                                           ^
/opt/abacus-develop/source/module_hamilt_lcao/hamilt_lcaodft/operator_lcao/dftu_new.h:59:56: note: forward declaration of template entity is here
    static const elecstate::DensityMatrix<TK, double>* dm_in_dftu;
                                                       ^
/opt/abacus-develop/source/module_esolver/esolver_ks_lcao.cpp:576:60: note: add an explicit instantiation declaration to suppress this warning if 'hamilt::DFTUNew<hamilt::OperatorLCAO<double, double>>::dm_in_dftu' is explicitly instantiated in another translation unit
            hamilt::DFTUNew<hamilt::OperatorLCAO<TK, TR>>::dm_in_dftu = nullptr;
                                                           ^
/opt/abacus-develop/source/module_esolver/esolver_ks_lcao.cpp:576:60: warning: instantiation of variable 'hamilt::DFTUNew<hamilt::OperatorLCAO<std::complex<double>, double>>::dm_in_dftu' required here, but no definition is available [-Wundefined-var-template]
            hamilt::DFTUNew<hamilt::OperatorLCAO<TK, TR>>::dm_in_dftu = nullptr;
                                                           ^
/opt/abacus-develop/source/module_hamilt_lcao/hamilt_lcaodft/operator_lcao/dftu_new.h:59:56: note: forward declaration of template entity is here
    static const elecstate::DensityMatrix<TK, double>* dm_in_dftu;
                                                       ^
/opt/abacus-develop/source/module_esolver/esolver_ks_lcao.cpp:576:60: note: add an explicit instantiation declaration to suppress this warning if 'hamilt::DFTUNew<hamilt::OperatorLCAO<std::complex<double>, double>>::dm_in_dftu' is explicitly instantiated in another translation unit
            hamilt::DFTUNew<hamilt::OperatorLCAO<TK, TR>>::dm_in_dftu = nullptr;
                                                           ^
/opt/abacus-develop/source/module_esolver/esolver_ks_lcao.cpp:576:60: warning: instantiation of variable 'hamilt::DFTUNew<hamilt::OperatorLCAO<std::complex<double>, std::complex<double>>>::dm_in_dftu' required here, but no definition is available [-Wundefined-var-template]
            hamilt::DFTUNew<hamilt::OperatorLCAO<TK, TR>>::dm_in_dftu = nullptr;
                                                           ^
/opt/abacus-develop/source/module_hamilt_lcao/hamilt_lcaodft/operator_lcao/dftu_new.h:59:56: note: forward declaration of template entity is here
    static const elecstate::DensityMatrix<TK, double>* dm_in_dftu;
                                                       ^
/opt/abacus-develop/source/module_esolver/esolver_ks_lcao.cpp:576:60: note: add an explicit instantiation declaration to suppress this warning if 'hamilt::DFTUNew<hamilt::OperatorLCAO<std::complex<double>, std::complex<double>>>::dm_in_dftu' is explicitly instantiated in another translation unit
            hamilt::DFTUNew<hamilt::OperatorLCAO<TK, TR>>::dm_in_dftu = nullptr;
                                                           ^
[ 92%] Building CXX object source/module_io/CMakeFiles/io_advanced.dir/winput.cpp.o
[ 93%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/write_dipole.cpp.o
[ 93%] Building CXX object source/module_io/CMakeFiles/io_advanced.dir/unk_overlap_lcao.cpp.o
[ 93%] Building CXX object source/module_io/CMakeFiles/io_advanced.dir/mulliken_charge.cpp.o
[ 94%] Building CXX object source/module_io/CMakeFiles/io_advanced.dir/write_HS_R.cpp.o
[ 94%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/td_current_io.cpp.o
[ 94%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/write_wfc_r.cpp.o
[ 94%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/output_log.cpp.o
[ 94%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/output_rho.cpp.o
[ 94%] Building CXX object source/module_io/CMakeFiles/io_advanced.dir/write_HS_sparse.cpp.o
[ 94%] Built target base
[ 94%] Building CXX object source/module_io/CMakeFiles/io_advanced.dir/single_R_io.cpp.o
[ 94%] Building CXX object source/module_io/CMakeFiles/io_advanced.dir/write_dm_sparse.cpp.o
[ 95%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/output_potential.cpp.o
3 warnings generated.
[ 95%] Built target esolver
[ 95%] Building CXX object source/module_io/CMakeFiles/io_advanced.dir/cal_r_overlap_R.cpp.o
[ 95%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/parameter_pool.cpp.o
[ 96%] Building CXX object source/module_io/CMakeFiles/io_advanced.dir/output_mat_sparse.cpp.o
[ 96%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/para_json.cpp.o
[ 96%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/write_dos_lcao.cpp.o
[ 97%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/write_orb_info.cpp.o
[ 97%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/write_proj_band_lcao.cpp.o
[ 97%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/nscf_fermi_surf.cpp.o
[ 97%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/istate_charge.cpp.o
[ 97%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/istate_envelope.cpp.o
[ 98%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/read_dm.cpp.o
[ 98%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/read_wfc_nao.cpp.o
[ 98%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/write_wfc_nao.cpp.o
[ 98%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/write_dm.cpp.o
[ 98%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/dos_nao.cpp.o
[ 99%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/output_dm.cpp.o
[ 99%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/output_dm1.cpp.o
[ 99%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/sparse_matrix.cpp.o
[ 99%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/file_reader.cpp.o
[ 99%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/csr_reader.cpp.o
[100%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/to_qo_kernel.cpp.o
[100%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/to_qo_mpi.cpp.o
[100%] Building CXX object source/module_io/CMakeFiles/io_basic.dir/to_qo_structures.cpp.o
[100%] Built target operator_ks_lcao
[100%] Built target io_advanced
[100%] Built target io_basic
[100%] Building CXX object CMakeFiles/abacus.dir/source/main.cpp.o
[100%] Linking CXX executable abacus
[100%] Built target abacus
-- Install configuration: ""
-- Installing: /opt/abacus-develop/bin/abacus
代码
文本

于是,我们完成了ABACUS的编译!其他工具链,如gnuintel-mpich工具链编译的ABACUS,均可用如上方法快速完成

更多的编译工具链等待你探索!

4. ABACUS运行测试

我们已经得到一个成熟的ABACUS了,现在是时候让它跑起来了。

在真正使用ABACUS之前,首先我们要简单配置一下相关的环境变量。toolchain脚本已经自动帮你生成了abacus_env.sh文件,你可以用它快速导入ABACUS的环境变量。

代码
文本
[ ]
# You should load abacus environment in server by the commmand below
# ! source /opt/abacus-develop/toolchain/abacus_env.sh
代码
文本
[36]
cat abacus_env.sh
source /opt/abacus-develop/toolchain/install/setup
export PATH="/opt/abacus-develop/bin":${PATH}
代码
文本

然后,让我们查看一下abacus的版本(由于加载环境的困难这里一直没跑通)

代码
文本
[44]
! . /opt/intel/oneapi/setvars.sh && . /opt/abacus-develop/toolchain/abacus_env.sh && abacus --version
 
:: initializing oneAPI environment ...
   dash: SH_VERSION = unknown
   args: Using "$@" for setvars.sh arguments: 
:: compiler -- latest
:: debugger -- latest
:: dev-utilities -- latest
:: mkl -- latest
:: mpi -- latest
:: tbb -- latest
:: vtune -- latest
:: oneAPI environment initialized ::
 
/usr/bin/sh: 1: /opt/abacus-develop/toolchain/abacus_env.sh: source: not found
abacus: error while loading shared libraries: libxc.so.12: cannot open shared object file: No such file or directory
代码
文本

最后,让我们分别采用MPI和OMP方法,简单运行一个实例。这个实例可以在ABACUS的仓库内找到。这些代码建议在命令行中,通过abacus_env.sh加载好了ABACUS环境后再运行。在Notebook内加载环境存在困难

代码
文本
[ ]
! cd /opt/abacus-develop/example/scf/lcao_ZnO
代码
文本

c16_m32_cpu机器下,可运行如下命令

代码
文本
[ ]
! OMP_NUM_THREADS=1 mpirun -np 16 abacus | tee abacus_mpi.log
代码
文本
[ ]
! OMP_NUM_THREADS=16 mpirun -np 1 abacus | tee abacus_omp.log
代码
文本

5. 结语

恭喜你!你已经学会并完成了ABACUS的快速安装部署,接下来,在你自己的硬件上安装并使用ABACUS吧!

有任何问题吗?或者有任何想交流的?欢迎与我们联系 QuantumMisaka

代码
文本
ABACUS
ABACUS使用教程
ABACUSABACUS使用教程
已赞9
本文被以下合集收录
ABACUS
bohr9d1500
更新于 2024-05-18
14 篇5 人关注
测试合集文章列表100篇
xingyanshi@dp.tech很长的名字xingyanshi@dp.tech很长的名字很长的
更新于 2024-08-04
104 篇2 人关注
推荐阅读
公开
ASE-ABACUS接口使用方法介绍
ASEABACUSABACUS使用教程
ASEABACUSABACUS使用教程
量子御坂
发布于 2023-09-19
1 赞10 转存文件4 评论
公开
手搓RHF其实不难只是慢(1):Gaussian型轨道和计算重叠积分
量子化学
量子化学
hanyanbo
发布于 2023-09-25
3 赞3 转存文件
评论
 # load intel-OneAPI ...

量子御坂

作者
2023-09-01
在这里先断掉了,因为不知道怎么在notebook里面source相关的环境脚本qwq,但这个工作流在终端里是能跑的

陈涛

2023-09-01
改成`! . /opt/intel/oneapi/setvars.sh`就可以正常加载intel环境了

量子御坂

作者
2023-09-01
但这么做好像还是找不到icc orz

量子御坂

作者
2023-09-01
先暂且用&&解决了

jianzhifu@vip.163.com

01-13 09:38
请问用&&解决了是什么意思呢?

量子御坂

作者
03-18 01:51
Bohrium Notebook里面加载环境存在一些问题,intel环境可以勉强通过上述方法解决,但其他的带source的脚本并不可以
评论
 ## 5. 结语 恭喜你!你已经学会并...

kirk0830

2023-09-01
沙发没了😤

张源

2023-09-01
写的是真好!

bohr0be991

11-21 19:26
很实用!
评论