VASP (Vienna Ab initio Simulation Package): 궁극의 양자역학 시뮬레이션 도구
개요
VASP (Vienna Ab initio Simulation Package)는 재료 과학, 고체 물리학, 화학 등의 분야에서 전자 구조, 물질의 특성, 분자 동역학을 연구하기 위한 선도적인 양자역학 시뮬레이션 소프트웨어입니다. 이 프로그램은 오스트리아 빈 대학의 연구 그룹에 의해 개발되었으며, 전 세계적으로 연구자들에 의해 널리 사용됩니다. VASP는 밀도 함수 이론(Density Functional Theory, DFT), Hartree-Fock 방법, 편미분 방정식을 기반으로 한 다양한 고급 계산 모델을 사용하여 물질의 전자 구조와 물리적, 화학적 특성을 예측합니다.
핵심 기능
전자 구조 계산
VASP는 밀도 함수 이론(DFT)을 사용하여 고체, 액체, 분자 시스템의 전자 구조를 계산합니다. 이를 통해 에너지 밴드 구조, 전자 밀도, 상태 밀도 등을 예측할 수 있습니다.
분자 동역학 시뮬레이션
온도, 압력 등 외부 조건 하에서의 시스템 동적 거동을 시뮬레이션합니다. 이를 통해 물질의 상 변화, 화학 반응 경로, 이온 및 열 전도도와 같은 중요한 물리적 특성을 연구할 수 있습니다.
물리적, 화학적 특성 분석
VASP는 물질의 기계적, 전자적, 광학적 특성을 분석할 수 있습니다. 이를 위해 전기적 편극, 자기적 특성, 광학 스펙트럼 등 다양한 계산 방법을 제공합니다.
사용 사례
VASP는 재료 과학에서 신소재 개발, 나노 기술, 에너지 저장 및 변환 장치의 설계, 화학 반응 메커니즘의 이해 등 다양한 분야에 응용됩니다. 예를 들어, 태양 전지, 연료 전지, 리튬 이온 배터리의 성능 향상을 위한 새로운 물질 탐색에 중요한 역할을 합니다.
설치
- version
OS : Rocky8.6
vasp.6.3.0
ONEAPI : 2023
- 컴파일러 적용
source /APP/enhpc/profile.d/intel64_v2023.sh
컴파일
- source 준비
cp vasp.6.3.2.tgz /APP/enhpc/source/
cd /APP/enhpc/source/
tar xvzf vasp.6.3.2.tgz -C /APP/enhpc/
- 환경설정
module load oneapi_2023
- makefile.include 준비
# cd /APP/enhpc/vasp.6.3.0/arch/
# cp makefile.include.intel makefile.include
- 컴파일러 경로 확인
# echo $MKLROOT
/APP/enhpc/compiler/intel/v2023/mkl/2023.1.0
# ls /APP/enhpc/compiler/intel/v2023/mkl/2023.1.0/lib/intel64/
# ls /APP/enhpc/compiler/intel/v2023/mkl/2023.1.0/lib/intel64/ | grep mkl_scalapack
libmkl_scalapack_ilp64.so
libmkl_scalapack_ilp64.so.2
libmkl_scalapack_lp64.so
libmkl_scalapack_lp64.so.2
# ls /APP/enhpc/compiler/intel/v2023/mkl/2023.1.0/lib/intel64/ | grep mkl_blacs_intel
libmkl_blacs_intelmpi_ilp64.a.tmp
libmkl_blacs_intelmpi_ilp64.so
libmkl_blacs_intelmpi_ilp64.so.2
libmkl_blacs_intelmpi_lp64.a.tmp
libmkl_blacs_intelmpi_lp64.so
libmkl_blacs_intelmpi_lp64.so.2
# ls $MKLROOT/include/fftw
fftw3.f fftw3_mkl_f77.h.tmp fftw3-mpi.h.tmp fftw_mpi.h.tmp rfftw_mpi.h.tmp
fftw3.f03.tmp fftw3_mkl.f.tmp fftw3-mpi_mkl.h.tmp fftw_threads.h.tmp rfftw_threads.h.tmp
fftw3.f.tmp fftw3_mkl.h.tmp fftw_f77.i.tmp offload
fftw3.h.tmp fftw3-mpi.f03.tmp fftw.h.tmp rfftw.h.tmp
- makefile.include 파일을 컴파일러 경로에 맞게 수정한다.(60번째 줄 ~ 64번째 줄)
# vi makefile.include
1 # Default precompiler options
2 CPP_OPTIONS = -DHOST=\\"LinuxIFC\\" \\
3 -DMPI -DMPI_BLOCK=8000 -Duse_collective \\
4 -DscaLAPACK \\
5 -DCACHE_SIZE=4000 \\
6 -Davoidalloc \\
7 -Dvasp6 \\
8 -Duse_bse_te \\
9 -Dtbdyn \\
10 -Dfock_dblbuf
11
12 CPP = fpp -f_com=no -free -w0 $*$(FUFFIX) $*$(SUFFIX) $(CPP_OPTIONS)
13
14 FC = mpiifort
15 FCL = mpiifort
16
17 FREE = -free -names lowercase
18
19 FFLAGS = -assume byterecl -w
20
21 OFLAG = -O2
22 OFLAG_IN = $(OFLAG)
23 DEBUG = -O0
24
25 OBJECTS = fftmpiw.o fftmpi_map.o fftw3d.o fft3dlib.o
26 OBJECTS_O1 += fftw3d.o fftmpi.o fftmpiw.o
27 OBJECTS_O2 += fft3dlib.o
28
29 # For what used to be vasp.5.lib
30 CPP_LIB = $(CPP)
31 FC_LIB = $(FC)
32 CC_LIB = icc
33 CFLAGS_LIB = -O
34 FFLAGS_LIB = -O1
35 FREE_LIB = $(FREE)
36
37 OBJECTS_LIB = linpack_double.o
38
39 # For the parser library
40 CXX_PARS = icpc
41 LLIBS = -lstdc++
42
43 ##
44 ## Customize as of this point! Of course you may change the preceding
45 ## part of this file as well if you like, but it should rarely be
46 ## necessary ...
47 ##
48
49 # When compiling on the target machine itself, change this to the
50 # relevant target when cross-compiling for another architecture
51 FFLAGS += -xHOST
52
53 # Intel MKL (FFTW, BLAS, LAPACK, and scaLAPACK)
54 # (Note: for Intel Parallel Studio's MKL use -mkl instead of -qmkl)
55 #FCL += -qmkl=sequential
56 #MKLROOT ?= /path/to/your/mkl/installation
57 #LLIBS += -L$(MKLROOT)/lib/intel64 -lmkl_scalapack_lp64 -lmkl_blacs_intelmpi_lp64
58 #INCS =-I$(MKLROOT)/include/fftw
59
60 ## 수정본 ##
61 FCL += -qmkl=sequential
62 MKLROOT ?= /APP/enhpc/compiler/intel/v2023/mkl
63 LLIBS += -L$(MKLROOT)/lib/intel64 -lmkl_scalapack_lp64 -lmkl_blacs_intelmpi_lp64
64 INCS =-I$(MKLROOT)/include/fftw
65
66 # HDF5-support (optional but strongly recommended)
67 #CPP_OPTIONS+= -DVASP_HDF5
68 #HDF5_ROOT ?= /path/to/your/hdf5/installation
69 #LLIBS += -L$(HDF5_ROOT)/lib -lhdf5_fortran
70 #INCS += -I$(HDF5_ROOT)/include
71
72 # For the VASP-2-Wannier90 interface (optional)
73 #CPP_OPTIONS += -DVASP2WANNIER90
74 #WANNIER90_ROOT ?= /path/to/your/wannier90/installation
75 #LLIBS += -L$(WANNIER90_ROOT)/lib -lwannier
- 컴파일
# make all ( make -j* )
설치 완료 후 log
ectron4o.o gauss_quad.o m_unirnk.o minimax_ini.o minimax_dependence.o minimax_functions1D.o minimax_functions2D.
o minimax_struct.o minimax_varpro.o minimax.o umco.o mlwf.o ratpol.o pade_fit.o screened_2e.o wave_cacher.o crpa
.o chi_base.o wpot.o local_field.o ump2.o ump2kpar.o fcidump.o ump2no.o bse_te.o bse.o time_propagation.o acfdt.
o afqmc.o rpax.o chi.o acfdt_GG.o dmft.o GG_base.o greens_orbital.o lt_mp2.o rnd_orb_mp2.o greens_real_space.o c
hi_GG.o chi_super.o sydmat.o rmm-diis_mlr.o linear_response_NMR.o wannier_interpol.o wave_interpolate.o linear_r
esponse.o auger.o dmatrix.o phonon.o wannier_mats.o elphon.o core_con_mat.o embed.o extpot.o rpa_high.o fftmpiw.
o fftmpi_map.o fftw3d.o fft3dlib.o main.o -Llib -ldmy -Lparser -lparser -lstdc++ -L/APP/enhpc/compiler/intel/v2
023/mkl/2023.1.0/lib/intel64 -lmkl_scalapack_lp64 -lmkl_blacs_intelmpi_lp64
make[2]: Leaving directory '/root/vasp.6.3.0/build/ncl'
make[1]: Leaving directory '/root/vasp.6.3.0/build/ncl'
- 컴파일 완료 확인
# ls bin/
vasp_gam vasp_ncl vasp_std
결론
VASP는 현대 재료 과학, 화학, 물리학 분야의 연구와 신소재 개발에 있어 필수적인 도구입니다. 그 정확성과 다양한 계산 기능으로 연구자들에게 귀중한 인사이트를 제공하며, 실제 실험에 앞서 다양한 가설을 검증하는 데 큰 역할을 합니다. VASP를 통해 얻은 깊은 이해와 예측은 과학적 발견을 가속화하고, 새로운 기술의 개발을 이끌어내는 데 기여하고 있습니다.
'HPC' 카테고리의 다른 글
GNU(gcc-11.4.0 , gcc-13.2.0) 수동 설치 (0) | 2024.04.24 |
---|---|
Openblas(고성능 수학 라이브러리의 핵심) 설치 (0) | 2024.04.16 |
Intel OneAPI (0) | 2024.04.13 |
GNU Compiler (gcc, g++, gfortran) (0) | 2024.04.12 |
fftw 라이브러리 (0) | 2024.04.11 |