1.编译安装
本文还是以intel oneapi环境为例,siesta的编译非常简单。官方源码在GitLab发布,可以在https://gitlab.com/siesta-project/siesta/-/releases获取软件包,以siesta-v4.1.5版本为例,下载siesta-v4.1.5.tar.gz并解压,进入该文件夹。
mkdir build
cd build
bash ../Src/obj_setup.sh
cp ../Obj/intel.make ./arch.make
这里我们需要对arch.make进行修改,主要是需要修改两个地方,首先根据实际情况修改需要用到的编译器,这里我使用了mpicc和mpiifort
CC = mpicc
FPP = $(FC) -E -P
FC = mpiifort
FC_SERIAL = ifort
其次是我们需要使用MKL的BLAS,在Dependency rules ———一行之前的位置加入下面的内容,如果将这部分放在文件开头,可能会被后面的命令给覆盖导致无效
MKL_PATH=根据实际情况填写
BLAS_LIBS=-L$(MKL_PATH) -lmkl_intel_lp64 -lmkl_sequential -lmkl_core -lpthread -lmkl_blacs_intelmpi_lp64 -lmkl_scalapack_lp64
LAPACK_LIBS=
BLACS_LIBS=
SCALAPACK_LIBS=
LIBS =$(SCALAPACK_LIBS) $(BLACS_LIBS) $(LAPACK_LIBS) $(BLAS_LIBS)
MPI_INTERFACE = libmpi_f90.a
MPI_INCLUDE = .
FPPFLAGS += -DMPI
这里如果不清楚MKL的安装目录,可以使用下面的命令来获取
MKL_PATH=$(echo $MKLROOT | awk -F: '{ print $1 }')
echo $MKL_PATH
之后使用make -jN进行编译(N为核心数),我们就可以在当前目录下得到siesta的二进制文件了。
参考:
https://zhuanlan.zhihu.com/p/609209355
2.赝势获取
SIESTA提供了一个生成赝势的程序ATOM,对于学术用户是免费的,可以在https://siesta-project.org/SIESTA_MATERIAL/Pseudos/atom_licence.html进行获取。我们也可以从下面几个赝势库获取生成好的赝势直接使用:
- https://www.simuneatomistics.com/siesta-pro/siesta-pseudos-and-basis-database/
- https://nninc.cnf.cornell.edu/
- https://departments.icmab.es/leem/SIESTA_MATERIAL/Databases/Pseudopotentials/periodictable-gga-abinit.html
- http://www.pseudo-dojo.org/