ELK—An all-electron full-potential linearised augmented-plane wave (LAPW) code,general features:
• LAPW basis with local-orbitals
• APW radial derivative matching to arbitrary orders at muffin-tin surface (super-LAPW, etc.)
• Arbitrary number of local-orbitals allowed (all core states can be made valence for example)
• Every element in the periodic table available
• Total energies resolved into components
• LSDA and GGA functionals available
• Variational meta-GGA (in the generalised Kohn-Sham sense) available with Libxc
• Core states treated with the radial Dirac equation
• Simple to use: just one input file required with all input parameters optional
• Multiple tasks can be run consecutively
ELK官網連結:
http://elk.sourceforge.net/
ELK下載連結:
https://sourceforge.net/projects/elk/files/
0、安裝前的準備
不會的請閱讀下面教程:
【VASP】給真·小白看的VASP本地編譯自學指南 Ver 2.1
1、下載ELK安裝包並解壓
tar xzvf elk-6.8.4.tgz
cd elk-6.8.42、運行setup
選擇1,會自動生成一個make.inc文件
3、修改make.inc文件內容(格式混亂了,下載連結見文末留言)MAKE = makeMKL_PATH = $(MKLROOT)/lib/intel64F90 = mpiifortF90_OPTS = -O3 -qopenmp -I$(MKL_PATH)/includeF77 = mpiifortF77_OPTS = -O3 -qopenmpAR = arLIB_SYS =LIB_LPK = -L$(MKL_PATH) -lmkl_intel_lp64 -lmkl_core -lmkl_sequential -lpthread#LIB_LPK = -Wl, --start-group $(MKL_PATH)/libmkl_intel_lp64.a $(MKL_PATH)/libmkl_intel_thread.a $(MKL_PATH)/libmkl_core.a -Wl,--end-group -lpthreadSRC_OMP =#----SRC_MPI = mpi_stub.f90# To enable MPI parallelism the MPI version of the Fortran compiler must be# used. This is usually mpif90. Uncomment the following lines and run# 'make clean' followed by 'make'.#F90 = mpif90#F77 = mpif90#SRC_MPI =/home/gang/intel/impi/2019.3.199/intel64/lib#----#----SRC_MKL = mkl_stub.f90# To enable MKL parallelism, link with the MKL library then uncomment the# following line and run 'make clean' followed by 'make'.#SRC_MKL =/home/gang/intel/compilers_and_libraries_2019.3.199/linux/mkl#----#----SRC_OBLAS = oblas_stub.f90# To enable OpenBLAS parallelism, link with the OpenBLAS library then uncomment# the following line and run 'make clean' followed by 'make'.#SRC_OBLAS =#----#----SRC_BLIS = blis_stub.f90# To enable BLIS parallelism, link with the BLIS library then uncomment the# following line and run 'make clean' followed by 'make'.#SRC_BLIS =#----#----SRC_libxc = libxcifc_stub.f90# To enable Libxc first download and compile version 5.x of the library. Next# copy the files libxcf90.a and libxc.a to the elk/src directory. Then uncomment# the following lines and run 'make clean' followed by 'make'.#LIB_libxc = libxcf90.a libxc.a#SRC_libxc = libxcf90.f90 libxcifc.f90#----#----#SRC_FFT = zfftifc.f90# To use a different FFT library, copy the relevant library or include files to# the elk/src directory (eg. mkl_dfti.f90), uncomment the appropriate lines# below and run 'make clean' followed by 'make'.SRC_FFT = zfftifc_fftw.f90LIB_FFT = -L$(MKL_PATH)/interfaces/fftw3xf/libfftw3xf_-lfftw3xf_intel#LIB_FFT = libfftw3.a#SRC_FFT = mkl_dfti.f90 zfftifc_mkl.f90#----#----SRC_W90S = w90_stub.f90# To enable the Wannier90 library copy libwannier.a to the elk/src directory.# Then uncomment the following lines and run 'make clean' followed by 'make'.#SRC_W90S =#LIB_W90 = libwannier.a#----大概半小時後,如果編譯沒有問題,會得到下面內容
make[1]: Leaving directory '/home/gang/software/elk-6.8.4/src'cd src/eos; makemake[1]: Entering directory '/home/gang/software/elk-6.8.4/src/eos'mpiifort -O3 -qopenmp -I/home/gang/intel/compilers_and_libraries_2019.3.199/linux/mkl/lib/intel64/include -c modmain.f90mpiifort -O3 -qopenmp -I/home/gang/intel/compilers_and_libraries_2019.3.199/linux/mkl/lib/intel64/include -c eos.f90mpiifort -O3 -qopenmp -I/home/gang/intel/compilers_and_libraries_2019.3.199/linux/mkl/lib/intel64/include -c eveos.f90mpiifort -O3 -qopenmp -I/home/gang/intel/compilers_and_libraries_2019.3.199/linux/mkl/lib/intel64/include -c pveos.f90mpiifort -O3 -qopenmp -I/home/gang/intel/compilers_and_libraries_2019.3.199/linux/mkl/lib/intel64/include -c readinput.f90mpiifort -O3 -qopenmp -I/home/gang/intel/compilers_and_libraries_2019.3.199/linux/mkl/lib/intel64/include -c getedata.f90mpiifort -O3 -qopenmp -I/home/gang/intel/compilers_and_libraries_2019.3.199/linux/mkl/lib/intel64/include -c fitdata.f90mpiifort -O3 -qopenmp -I/home/gang/intel/compilers_and_libraries_2019.3.199/linux/mkl/lib/intel64/include -c output.f90mpiifort -O3 -qopenmp -I/home/gang/intel/compilers_and_libraries_2019.3.199/linux/mkl/lib/intel64/include -c minf_nm.f90mpiifort -O3 -qopenmp -I/home/gang/intel/compilers_and_libraries_2019.3.199/linux/mkl/lib/intel64/include -c fmin_nm.f90mpiifort -O3 -qopenmp -I/home/gang/intel/compilers_and_libraries_2019.3.199/linux/mkl/lib/intel64/include -o eos modmain.o eos.o eveos.o pveos.o readinput.o getedata.o fitdata.o output.o minf_nm.o fmin_nm.omake[1]: Leaving directory '/home/gang/software/elk-6.8.4/src/eos'cd src/spacegroup; makemake[1]: Entering directory '/home/gang/software/elk-6.8.4/src/spacegroup'mpiifort -O3 -qopenmp -I/home/gang/intel/compilers_and_libraries_2019.3.199/linux/mkl/lib/intel64/include -c modmain.f90mpiifort -O3 -qopenmp -I/home/gang/intel/compilers_and_libraries_2019.3.199/linux/mkl/lib/intel64/include -c main.f90mpiifort -O3 -qopenmp -I/home/gang/intel/compilers_and_libraries_2019.3.199/linux/mkl/lib/intel64/include -c readinput.f90mpiifort -O3 -qopenmp -I/home/gang/intel/compilers_and_libraries_2019.3.199/linux/mkl/lib/intel64/include -c gencrystal.f90mpiifort -O3 -qopenmp -I/home/gang/intel/compilers_and_libraries_2019.3.199/linux/mkl/lib/intel64/include -c sgsymb.f90mpiifort -O3 -qopenmp -I/home/gang/intel/compilers_and_libraries_2019.3.199/linux/mkl/lib/intel64/include -c seitzgen.f90mpiifort -O3 -qopenmp -I/home/gang/intel/compilers_and_libraries_2019.3.199/linux/mkl/lib/intel64/include -c gengroup.f90mpiifort -O3 -qopenmp -I/home/gang/intel/compilers_and_libraries_2019.3.199/linux/mkl/lib/intel64/include -c seitzeq.f90mpiifort -O3 -qopenmp -I/home/gang/intel/compilers_and_libraries_2019.3.199/linux/mkl/lib/intel64/include -c seitzmul.f90mpiifort -O3 -qopenmp -I/home/gang/intel/compilers_and_libraries_2019.3.199/linux/mkl/lib/intel64/include -c writegeom.f90mpiifort -O3 -qopenmp -I/home/gang/intel/compilers_and_libraries_2019.3.199/linux/mkl/lib/intel64/include -c geomplot.f90mpiifort -O3 -qopenmp -I/home/gang/intel/compilers_and_libraries_2019.3.199/linux/mkl/lib/intel64/include -c findprimcell.f90mpiifort -O3 -qopenmp -I/home/gang/intel/compilers_and_libraries_2019.3.199/linux/mkl/lib/intel64/include -c r3frac.f90mpiifort -O3 -qopenmp -I/home/gang/intel/compilers_and_libraries_2019.3.199/linux/mkl/lib/intel64/include -c r3mv.f90mpiifort -O3 -qopenmp -I/home/gang/intel/compilers_and_libraries_2019.3.199/linux/mkl/lib/intel64/include -c r3cross.f90mpiifort -O3 -qopenmp -I/home/gang/intel/compilers_and_libraries_2019.3.199/linux/mkl/lib/intel64/include -c r3minv.f90mpiifort -O3 -qopenmp -I/home/gang/intel/compilers_and_libraries_2019.3.199/linux/mkl/lib/intel64/include -c r3mm.f90mpiifort -O3 -qopenmp -I/home/gang/intel/compilers_and_libraries_2019.3.199/linux/mkl/lib/intel64/include -o spacegroup modmain.o main.o readinput.o gencrystal.o sgsymb.oseitzgen.o gengroup.o seitzeq.o seitzmul.o writegeom.o geomplot.o findprimcell.o r3frac.o r3mv.o r3cross.o r3minv.o r3mm.omake[1]: Leaving directory '/home/gang/software/elk-6.8.4/src/spacegroup'並且在src文件夾能看到ELK可執行程序
運行上述命令之後成功編譯會出現以下內容
cd tests; ./test.shRunning test in directory test_001... PassedRunning test in directory test_002... PassedRunning test in directory test_003... Passed
………………(不一一展示了)
Running test in directory test_019... Passed
………………(不一一展示了)