alamode的安裝

該網(wǎng)站的鏈接
這里記錄下安裝alamode的過程,以便以后的繼續(xù)使用(只敘述我安裝的過程),用的是ubuntu

1.依賴安裝(編譯器等)

  1. Intel編譯器集群并行版本安裝
    包含了所需的C++ compiler,LAPACK library,MPI library (OpenMPI, MPICH2, IntelMPI, etc.),FFTW library

    image.png

    這里按著提示安裝,安裝完之后寫一下環(huán)境變量就行,環(huán)境變量如下(我這里裝在了/home/zhangsan/intel1目錄下):

    # intel2020 
    source /home/zhangsan/intel1/compilers_and_libraries_2020.4.304/linux/bin/compilervars.sh intel64
    source /home/zhangsan/intel1/compilers_and_libraries_2020.4.304/linux/bin/ifortvars.sh intel64
    source /home/zhangsan/intel1/compilers_and_libraries_2020.4.304/linux/bin/iccvars.sh intel64
    export LD_LIBRARY_PATH=/home/zhangsan/intel1/compilers_and_libraries_2020.4.304/linux/mkl/lib/intel64_lin:$LD_LIBRARY_PATH
    export LD_LIBRARY_PATH=/home/zhangsan/intel1/lib/intel64_lin:$LD_LIBRARY_PATH
    

    記得

    source .bashrc
    
  2. Boost C++ libraryEigen3 library
    這連個(gè)安裝相同放在了一起

    • 比如你的用戶家目錄叫zhangsan,你的home目錄等同于$(home) == /home/zhangsan
    • 那么新建/home/zhangsan/ect的目錄把解壓完的兩個(gè)包放進(jìn)去,
    • 然后再創(chuàng)建一個(gè)/home/zhangsan/include目錄
    • 最后做個(gè)軟鏈接
      $ ln -s /home/zhangsan/etc/boost_1_75_0/boost /home/zhangsan/include/boost
      $ ln -s /home/zhangsan/etc/eigen-3.3.9/Eigen /home/zhangsan/include/Eigen
      
  3. spglib安裝

    • 解壓完后也放到/home/zhangsan/ect
    • 然后安裝到/home/zhangsan/include/spblib目錄下,命令如下:
      $ cd /home/zhangsan/etc/spglib
      $ mkdir build && cd build
      $ cmake -DCMAKE_INSTALL_PREFIX="" ..
      $ make
      $ make DESTDIR=/home/zhangsan/include/spglib install
      
    • 添加進(jìn)環(huán)境變量
      # spglib
      export LD_LIBRARY_PATH=/home/one/include/spglib/lib:$LD_LIBRARY_PATH
      

2.編譯alamode

  1. 先這個(gè)軟件下下來,用git比較方便
    git clone https://github.com/ttadano/alamode.git
    
    然后解壓后依舊放到/home/zhangsan/etc/吧,有中二強(qiáng)迫癥。
  2. 編譯三個(gè)東西alm;anphon;tools
    • alm
      進(jìn)入到/home/zhangsan/etc/alamode/alm目錄,然后cp Makefile.linux Makefile
      然后修改Makefile的前幾行,如下:
      CXX = icpc  #注意icpc有沒有
      CXXFLAGS = -O2 -xHOST -qopenmp -std=c++11 # 注意是不是qopenmp
      INCLUDE = -I../include -I$(HOME)/include -I/home/zhangsan/include/spblib/include # 大力出奇跡直接給spblib的絕對路徑
      
      CXXL = ${CXX}
      LDFLAGS = -mkl -L/home/zhangsan/include/spglib/lib -lsymspg # 大力出奇跡直接給spblib的絕對路徑
      
      然后編譯
      make -j
      
    • anphon
      進(jìn)入到/home/zhangsan/etc/alamode/anphon目錄,然后cp Makefile.linux Makefile
      然后修改Makefile的前幾行,如下:
       MPICXX = mpiicpc #是不是mpiicpc
       CXXFLAGS = -O3 -xHOST -qopenmp -D_FE_BUBBLE -std=c++11 #是不是qopenmp 這里-D_FE_BUBBLE我看別人帖子上加的
       INCLUDE = -I../include -I/home/zhangsan/include -I/home/zhangsan/include/spglib/include -I/home/zhangsan/intel1/compilers_and_libraries_2020.4.304/linux/mkl/include -I/home/zhangsan/intel1/compilers_and_libraries_2020.4.304/linux/mkl/include/fftw #直接暴力給滿
      
       LINKER = ${MPICXX}
       LDFLAGS = -mkl -L/home/zhangsan/include/spglib/lib -lsymspg #直接絕對路徑
      
      然后編譯
      make -j
      
    • tools
      #Intel compiler
      CXX = icpc #是不是icpc
      
      # OSX (gcc)
      #CXX = g++-9
      
      # OSX (clang)
      #CXX = g++
      
      # OSX
      #CXX = clang++
      
       CXXFLAGS = -O2 -std=c++11
      
      # Add the directory containing boost header files here
      INCLUDE = -I../include -I/home/zhangsan/include #直接絕對路徑
      
      然后編譯
      make -j
      
    • 安裝完后環(huán)境變量中指定命令
      # alamode
      alias alm=/home/one/etc/alamode/alm/alm
      alias anphon=/home/one/etc/alamode/anphon/anphon
      
      記得
      source .bashrc
      

詭異問題

有些迷的地方是:我用兩個(gè)alamode包編譯alm編譯成功anphon可能會失敗,反之亦然,我的方法是直接把編譯成功的拼湊起來,然后就是完整的了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容