编译和安装
操作步骤
- 使用PuTTY工具,以root用户登录服务器。
- 执行以下命令设置环境变量。
export MPI_HOME=/path/to/HMPI export CPPFLAGS=" -I/path/to/HDF5/include -I/path/to/PNETCDF/include -I/path/to/NETCDF/include -I$MPI_HOME/include" export CFLAGS=" -I/path/to/HDF5/include -I/path/to/PNETCDF/include -I/path/to/NETCDF/include -I$MPI_HOME/include " export CXXFLAGS=" -I/path/to/HDF5/include -I/path/to/PNETCDF/include -I/path-to/NETCDF/include -I$MPI_HOME/include " export FCFLAGS=" -I/path/to/HDF5/include -I/path/to/PNETCDF/include" export FFLAGS=" -I/path/to/HDF5/include -I/path/to/PNETCDF/include" export LDFLAGS=" -L/path/to/HDF5/lib -L/path/to/PNETCDF/lib -L/path/to/PNETCDF/lib”
- 执行以下命令创建第三方数学库安装包存放目录“extral”。
cd /path/to/ABINIT mkdir extral
- 下载AtomPAW、BigDFT、LibXC、Wannier90软件包。
- 利用SFTP工具将以上下载的软件包上传到“extral”目录下。
- 执行以下命令解压安装包。
cd extral tar -xzvf atompaw-4.0.1.0.tar.gz tar -xzvf bigdft-1.7.1.25.tar.gz tar -xzvf libxc-3.0.0.tar.gz tar -xzvf wannier90-2.0.1.1.tar.gz
- 返回“/path/to/ABINIT”,执行以下命令解压ABINIT安装包。
cd /path/to/ABINIT tar -zxvf abinit-8.10.3.tar.gz
- 执行以下命令进入解压后目录。
cd abinit-8.10.3
- 执行以下命令创建并进入ABINIT软件编译目录。
mkdir build cd build
- 执行以下命令进行配置。
../configure FC=mpif90 --with-mpi-prefix=/path/to/HMPI/ --with-dft-flavor="libxc+atompaw" --with-trio-flavor="netcdf" --with-tardir=/path/to/ABINIT/extral --with-netcdf-incs="-I/path/to/NETCDF/include" --withnetcdf-libs="-L/path/to/NETCDF/lib -lnetcdf -L/path/to/NETCDF/lib -lnetcdff" FCFLAGS="-g -O2 -ffree-line-length-none" --with-linalg-libs="-L/path/to/OPENBLAS/ -lopenblas" CFLAGS="-O2"
- 执行以下命令修改配置文件。
sed -i -e "s/shiftr/rshift/g" src/78_effpot/m_random_xoroshiro128plus.F90 sed -i -e "s/shiftl/lshift/g" src/78_effpot/m_random_xoroshiro128plus.F90
- 执行以下命令进入“ABINIT”目录。
cd /path/to/ABINIT/abinit-8.10.3
- 执行以下命令修改配置文件。
sed -i 's/#define HAVE_FC_INT_QUAD 1/#undef HAVE_FC_INT_QUAD/' config.h sed -i 's/#define HAVE_FC_LONG_LINES 1/#undef HAVE_FC_LONG_LINES/' config.h sed -i 's/#define atomic_mass_units/at_mass_units/' src/77_ddb/m_phonons.F90 sed -i 's/#define number_of_atom_species/n_atom_species/' src/77_ddb/m_phonons.F90 sed -i 's/alpha = 0.2/!alpha = 0.2/' src/78_eph/m_phgamma.F90
- 执行以下命令修改“src/56_io_mpi/m_hdr.F90”文件。
- 打开“src/56_io_mpi/m_hdr.F90”文件。
vi src/56_io_mpi/m_hdr.F90
- 按“i”进入编辑模式,将“integer,public,parameter :: HDR_LATEST_HEADFORM = HDR_KNOWN_HEADFORMS(size(HDR_KNOWN_HEADFORMS))”修改为如下内容。
integer,private,parameter :: HDR_KNOWN_HEADFORMS(1) = [123] integer,public,parameter :: size_hdr_known_headforms = size(HDR_KNOWN_HEADFORMS) integer,public,parameter :: HDR_LATEST_HEADFORM = HDR_KNOWN_HEADFORMS(size_hdr_known_headforms)
- 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。
- 打开“src/56_io_mpi/m_hdr.F90”文件。
- 执行以下命令修改“src/62_iowfdenpot/m_io_screening.F90”文件。
- 打开“src/62_iowfdenpot/m_io_screening.F90”文件。
vi src/62_iowfdenpot/m_io_screening.F90
- 按“i”进入编辑模式,将“integer,private,parameter :: HSCR_KNOWN_HEADFORMS(1) = [80]”修改为如下内容。
integer,private,parameter :: HSCR_KNOWN_HEADFORMS(1) = [123] integer,private,parameter :: size_hscr_known_headforms = size(HSCR_KNOWN_HEADFORMS) integer,public,parameter :: HSCR_LATEST_HEADFORM = HSCR_KNOWN_HEADFORMS(size_hscr_known_headforms)
- 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。
- 打开“src/62_iowfdenpot/m_io_screening.F90”文件。
- 执行以下命令进行编译安装。
FC=mpif90 CC=mpicc CXX=mpicxx make multi multi_nprocs=32
“multi_nprocs”为并发编译的核数,可根据使用机器的核数和需求自由选择,初次编译建议不要并发。
执行编译命令时,因路径问题可能报“unable to open MODULE file *.mod”错误,解决方法:
将“.mod”文件拷贝到“incs”目录下,再执行编译安装,因“.mod”文件在编译过程中不断生成,故拷贝“.mod”的操作会持续执行多次。若不想执行多次拷贝操作,可编写一个脚本,例如:- 创建脚本。
vi cp.sh
- 按“i”进入编辑模式,编写如下内容。
#!/bin/bash for i in `find -name *.mod` do cp $i src/incs done
- 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。
- 执行以下命令运行脚本。
./cp.sh
- 创建脚本。
- 执行以下命令添加环境变量。
export ABI_TESTS=/path/to/ABINIT/abinit-8.10.3/tests/ export ABI_TUTORIAL=$ABI_TESTS/tutorial/ export ABI_TUTORESPFN=$ABI_TESTS/tutorespfn/ export ABI_TUTOPARAL=$ABI_TESTS/tutoparal/ export ABI_TUTOPLUGS=$ABI_TESTS/tutoplugs/ export ABI_PSPDIR=$ABI_TESTS/Psps_for_tests/ export PATH=/path/to/ABINIT/abinit-8.10.3/build/src/98_main/:$PATH