본문 바로가기
HPC

VASP(vasp.6.3.0) + ONEAPI2023(intel64_v2023)

by Yoon_estar 2024. 4. 15.
728x90
반응형

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