日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

vasp 5.2编译方法

發布時間:2023/12/15 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 vasp 5.2编译方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1 編譯openmpi


下載 http://www.open-mpi.org/software/ompi/v1.4/downloads/openmpi-1.4.2.tar.bz2
$tar xjvf openmpi-1.4.2.tar.bz2
$cd openmpi-1.4.2
$./configure --prefix=/opt/openmpi CC=icc F77=ifort FC=ifort CXX=icpc
$make
$make install
$vi ~/.bashrc

?

#--- for openmpi
MPI=/opt/openmpi
export MPI
PATH=$PATH:$MPI/bin
export PATH
MPI_LIB=$MPI/lib
MPI_INCLUDE=$MPI/include
export MPI_LIB
export MPI_INCLUDE


重新登錄或者source ~/.bashrc

?

2 編譯fftw 3.2.2庫


$./configure -prefix=/opt/mathlibs/fftw/3.2.2
$make
$make install
$make clean
$./configure -prefix=/opt/mathlibs/fftw/3.2.2 -enable-shared
$make
$make install
$make clean
$./configure -prefix=/opt/mathlibs/fftw/3.2.2 -enable-float
$make
$make install
$make clean
$./configure -prefix=/opt/mathlibs/fftw/3.2.2 -enable-float -enable-shared
$make
$make install

?

3 編譯libdmy.a


$cp makefile.linux_ifc_P4 Makefile
$vi Makefile

修改下面的內容
將FC=ifc修改為FC=ifort
增加CC=icc

$make

完成后即可獲得libdmy.a文件

?

4 編譯MKL fftw庫(可選)


$cd /opt/intel/mkl/10.2.2.025/interfaces/fftw3xf
$make libem64t compiler=intel
$cp libfftw3xf_intel.a ../../lib/em64t

?

5 編譯VASP


串行部分

增加下面2行
MKLINCLUDE=/opt/intel/mkl/10.2.2.25/include/
MKLPATH=/opt/intel/mkl/10.2.2.25/lib/em64t/

將BLAS行和LAPACK行注釋,并添加BLASLAPACK
BLASLAPACK=-L/opt/intel/mkl/10.2.2.25/lib/em64t/ -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -liomp5 -lpthread


fftw采用自帶的庫或者fftw3.2.2庫
FFT3D?? = fft3dfurth.o fft3dlib.o
或者
FFT3D?? = fftw3d.o fft3dlib.o?? /opt/mathlibs/fftw/3.2.2/lib/libfftw3.a


并行部分

取消注釋下面部分
FC=mpif90
FCL=$(FC)


BLACS和SCA庫
BLACS=-L/opt/intel/mkl/10.2.2.025/lib/em64t/ -wl,--start-group $(MKLPATH)/libmkl_blacs_openmpi_lp64.a --end-group -liomp5 -lpthread
SCA=-L/opt/intel/mkl/10.2.2.025/lib/em64t -lmkl_intel_lp64 -lmkl_core -lmkl_intel_thread -lmkl_scalapack_lp64 -lmkl_lapack -liomp5 -lpthread

?

取消注釋下面部分
CPP? = $(CPP_) -DMPI? -DHOST=/"LinuxIFC/" -DIFC /
???? -Dkind8 -DNGZhalf -DCACHE_SIZE=12000 -DPGF90 -Davoidalloc /
???? -DMPI_BLOCK=500? /
???? -DRPROMU_DGEMV? -DRACCMU_DGEMV

?

fftw采用fftw3.2.2庫或者用MKL自帶的庫
FFT3D = fftmpi.o fftmpi_map.o fft3dlib.o? /opt/mathlibs/fftw/3.2.2/lib/libfftw3.a
或者
FFT3D= fftmpiw.o fftmpi_map.o fftw3d.o fft3dlib.o /opt/intel/mkl/10.2.2.025/lib/em64t/libfftw3xf_intel.a


拷貝fftw3.f到當前目錄
$cp /opt/mathlibs/fftw/3.2.2/include/fftw3.f .

$make

?

如果沒有出現error則會在當前目錄生成可執行文件vasp
如果修改了Makefile,運行make clean后需要重新拷貝fftw3.f到當前目錄

?

錯誤1:
pead.o: In function `pead_mp_calc_polarization_':
pead.f90:(.text+0x18122): undefined reference to `zgeco_'
pead.f90:(.text+0x18183): undefined reference to `zgedi_'

解決:
錯誤原因: 缺少linpack_double.o。如下
加上最后一行即可

LIB = -I$(MKLINCLUDE) -L$(MKLPATH) /
-L../vasp.5.lib -ldmy /
$(BLASLAPACK) /
../vasp.5.lib/linpack_double.o


錯誤2:
fftmpiw.o: In function `fftmakeplan_mpi_':

fftmpiw.f90:(.text+0xa4c): undefined reference to `fftmakeplan_'

fftmpiw.o: In function `fftini_mpi_':

fftmpiw.f90:(.text+0xa9d): undefined reference to `fftini_'

?

解決:

錯誤原因 ,5.2 makefile 中并行部分的 FFT3D 中缺少一個 .o 文件 , 補上即可。

FFT3D= fftmpiw.o fftmpi_map.o fft3dlib.o /opt/intel/mkl/10.2.1.017/lib/em64t/libfftw3xf_intel.
a?

修改為

FFT3D= fftmpiw.o fftmpi_map.o fftw3d.o? fft3dlib.o /opt/intel/mkl/10.2.1.017/lib/em64t/libfftw3
xf_intel.a?

?

參考:


http://software.intel.com/en-us/articles/intel-math-kernel-library-intel-mkl-using-intel-mkl-in-vasp

http://qingyan1971.spaces.live.com/blog/cns!90DC91975FC440F6!432.entry
http://blog.163.com/wangle_xq/blog/static/1302592200961025431681/

?

本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/linfengfeiye/archive/2010/06/28/5699176.aspx

總結

以上是生活随笔為你收集整理的vasp 5.2编译方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。