はじめに
- 私は、LAMMPS 初心者なのでこちらの記事は、自分用の備忘録。
- この記事を参考にして生じた損害等には一切の責任は負いません。
- Apple Silicon (M2) の Mac に LAMMPS を入れる記事。
- Homebrew で LAMMPS をインストールできますが、ここでは cmake で build する。
- LAMMPS では、分子性液体、イオン液体、電解液のMDシミュレーションを想定。
- また、電極界面にも興味があるため、ELECTRODE パッケージを導入。
- GROMACS, VMD に慣れているので、MOLFILE, EXTRA-DUMP パッケージを導入。
- M1 Mac で macOS monterey の場合は、Xcode 13.4.1 をそのまま使用するとOK。
インストール環境
- Mac Studio (M2, 2023) Apple M2 Ultra 128 GB macOS Ventura 13.4.1
- Mac mini (M2, 2023) Apple M2 16 GB macOS Ventura 13.4.1
【重要】 Xcode 13.4.1 をダンロードし、設定する
macOS Ventura では Xcode 14 以上しか使えない。
Xcode 14.3.1 で LAMMPS を install できるが、LAMMPS を動かすと pppm 処理でエラーが発生する。
(つまり、正常にインストールできているようで、インストールできていない >> ldのエラーが発生する)
→ よって、本来 Ventura で使用できない Xcode 13.4.1 を無理やりインストールし、
LAMMPS を build することでそのエラーを回避する。
- Apple Developper https://developer.apple.com/jp/ にアクセスし、Apple ID でログインする。
- https://developer.apple.com/download/all/?q=Xcode にアクセスする。
- Xcode_13.4.1.xip をダウンロードする(結構時間がかかる)。
- Xcode_13.4.1.xip をダブルクリックし、Xcode.app に展開する(結構時間がかる)。
- Xcode_13.4.1 と名前を変更して、Finder > アプリケーション に 移動させる。
- アイコンのダブルクリックでインストールを開始できないので、
Terminal から以下のコマンドでインストールを開始する。
open /Applications/Xcode_13.4.1.app/Contents/MacOS/Xcode
下のような画面が表示されるので、Install をクリックする。
Install をクリックすると、別のTerminal ウィンドが立ち上がり、インストールされる。
- ターミナル上での Xcode の Version 確認と Xcode 13.4.1 への変更
xcode-select -p
// "/Applications/Xcode.app/Contents/Developer" と表示される //
sudo xcode-select -s /Applications/Xcode_13.4.1.app/Contents/Developer/
// PASSWORD を打つ //
※ LAMMPS のインストールが終わったら Xcode を 14.3.1(元のバージョン)に戻すの忘れずに!
Homebrew で必要なものを入れ、リンクを作成する
- gcc11 のインストール
brew install gcc@11
- gcc11 のリンクを作成
sudo ln -sf /opt/homebrew/Cellar/gcc\@11/11.4.0/bin/gcc-11 /usr/local/bin/gcc
sudo ln -sf /opt/homebrew/Cellar/gcc\@11/11.4.0/bin/g++-11 /usr/local/bin/g++
sudo ln -sf /opt/homebrew/Cellar/gcc\@11/11.4.0/bin/gfortran-11 /usr/local/bin/gfortran
※ 11.4.0 などフォルダ名が違う場合があるので、確認して変更すること
- gcc Version の確認
gcc -v
g++ -v
gfortran -v
※ それぞれ、gcc version 11.4.0 (Homebrew GCC 11.4.0) などが表示されればOK
- cmake, fftw, ffmpeg, pkg-config をインストール
brew install cmake fftw ffmpeg pkg-config
Open MPI のインストール
- 上記ファイルをダウンロードし、解凍してそのフォルダに Terminal で入る。
cd
cd Downloads
tar xvzf openmpi-4.1.4.tar.gz
cd openmpi-4.1.4
mkdir build
cd build
../configure CC=gcc CXX=g++ FC=gfortran F77=gfortran F90=gfortran --prefix=/opt/openmpi-4.1.4
make -j 4
sudo make install
- Open MPI を使えるように .bashrc にPATHを通す
cd
vi .bashrc
- その後下記を最終行に追加して、ESC + :wq
## OpenMPI SETTING
export PATH=/opt/openmpi-4.1.4/bin:$PATH
export LD_LIBRARY_PATH=/opt/openmpi-4.1.4/lib:$LD_LIBRARY_PATH
export DYLD_LIBRARY_PATH=/opt/openmpi-4.1.4/lib:$DYLD_LIBRARY_PATH
export MANPATH=/opt/openmpi-4.1.4/share/man:$MANPATH
- ターミナルを再起動後にOpen MPI の PATH が通っているか確認する
mpicc -v
mpic++ -v
mpifort -v
※ 下部に gcc version 11.4.0 (Homebrew GCC 11.4.0) 等がそれぞれ表示されればOK
VMD のインストール (output に vmdplugin を使用する場合)
- LAMMPS で MOLFILE パッケージを使用する場合に以下の作業を行う VMDについてはこちら
ここでは、Apple Silicon を使っているはずなので、
Version 1.9.4 LATEST ALPHA (2022-04-27) Platforms:
MacOS 11.x, ARM64 (64-bit "M1" Macs) (Apple MacOS-X 11 or later)
をダウンロードし、インストールする。
※ Intel Mac の場合でも、Version 1.9.4 LATEST ALPHA を使用すること (理由は後述)
まぁ、MacOS catalina からは 32 bit が廃止されたので、1.9.3 は使われていないと思うが…。
LAMMPS をインストール前の準備 (VMDのヘッダーファイルの変更)
LAMMPS は、xtc, dcd などのoutput形式を VMD plugin を用いて処理する。(lammpstrj がLAMMPS形式)
LAMMPS ソースコードの中の VMD plugin のヘッダーファイル (vmdplugin.h, molfile_plugin.h) は古い。
したがって、ARM版 VMD-1.9.4 の ヘッダーファイルと入れ替える必要がある。
※ VMD-1.9.3 の macOS版は 32 bit であるため、64 bit LAMMPS では plugin が読み込めないので注意
対象の LAMMPS command: dump molfile, rerun (xtc, trr, dcd, etc), read_dump
上記コマンドを使用する場合は、VMD plugin のフォルダ PATH を指定する
あるいは、作業ディレクトリに *.so をコピーして使用する。
-
LAMMPS のソースファイルのダウンロード
LAMMPS から 23Jun2022(stable-update4) をダウンロードする -
ダウンロードしたファイルを解凍し、/lib/molfile 中のヘッダーファイルを更新する
cd
cd Downloads
tar xvzf lammps-stable_23Jun2022_update4.tar.gz
cd lammps-stable_23Jun2022_update4/lib/molfile
rm *.h
cp /Applications/VMD\ 1.9.4a57-arm64-Rev12.app/Contents/vmd/plugins/include/vmdplugin.h ./
cp /Applications/VMD\ 1.9.4a57-arm64-Rev12.app/Contents/vmd/plugins/include/molfile_plugin.h ./
// VMD の PATH は、使用しているVMDのバージョンで変更すること
//最新版は、VMD 1.9.4a57 for MacOS X, 64-bit
LAMMPS 23Jun2022_update4/GCC/FFTW3 のインストール
cd
cd Downloads/lammps-stable_23Jun2022_update4
mkdir build
cd build
cmake -DLAMMPS_MACHINE=23Jun2022 -DENABLE_TESTING=on -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/Users/${USER}/programs/lammps/lammps-23Jun2022 -DCMAKE_C_COMPILER=gcc -DCMAKE_C_FLAGS=-L/opt/homebrew/Cellar/gcc\@11/11.4.0/lib/gcc/11 -DCMAKE_CXX_COMPILER=g++ -DCMAKE_CXX_FLAGS=-L/opt/homebrew/Cellar/gcc\@11/11.4.0/lib/gcc/11 -DCMAKE_Fortran_COMPILER=gfortran -DCMAKE_Fortran_FLAGS=-L/opt/homebrew/Cellar/gcc\@11/11.4.0/lib/gcc/11 -DLAMMPS_EXCEPTIONS=on -DBUILD_SHARED_LIBS=on -DBUILD_TOOLS=on -DBUILD_MPI=on -DBUILD_OMP=on -DFFT=FFTW3 -DFFT_SINGLE=on -DFFT_FFTW_THREADS=on -DPKG_BODY=on -DPKG_BOCS=on -DPKG_COMPRESS=on -DPKG_CORESHELL=on -DPKG_DIELECTRIC=on -DPKG_DIFFRACTION=on -DPKG_DIPOLE=on -DPKG_DRUDE=on -DPKG_ELECTRODE=on -DPKG_EXTRA-COMPUTE=on -DPKG_EXTRA-DUMP=on -DPKG_EXTRA-FIX=on -DPKG_EXTRA-MOLECULE=on -DPKG_EXTRA-PAIR=on -DPKG_FEP=on -DPKG_INTERLAYER=on -DPKG_KSPACE=on -DPKG_MANYBODY=on -DPKG_MEAM=on -DPKG_MISC=on -DPKG_MOLECULE=on -DPKG_MOLFILE=on -DPKG_OPENMP=on -DPKG_OPT=on -DPKG_PLUGIN=on -DPKG_PYTHON=on -DPKG_RIGID=on -DMOLFILE_INCLUDE_DIR=/Applications/VMD\ 1.9.4a57-arm64-Rev12.app/Contents/vmd/plugins/include ../cmake
// インストール先は、 /Users/${USER}/programs/lammps/lammps-23Jun2022 としている
// gcc の Version は、使用している gcc で変更すること
// MOLFILE_INCLUDE_DIR は、ヘッダーファイルをコピーしたものと同じバージョンを使用すること
make -j 4 install
- LAMMPSを使えるように .bashrc に Path を通す
cd
vi .bashrc
- その後下記を最終行に以下を追加して、ESC + :wq
## LAMMPS SETTING
export PATH=$PATH:/Users/${USER}/programs/lammps/lammps-23Jun2022/bin
export DYLD_LIBRARY_PATH=/Users/${USER}/programs/lammps/lammps-23Jun2022/lib:$DYLD_LIBRARY_PATH
# LAMMPS TOOLS
export PATH=/Users/${USER}/Downloads/lammps-23Jun2022/tools/python:$PATH
export LAMMPS_PYTHON_TOOLS=/Users/${USER}/Downloads/lammps-23Jun2022/tools/python/pizza:$LAMMPS_PYTHON_TOOLS
※ PATH は自分の好みで適宜変更してもOK
ターミナルを再起動し、コマンドを確認
lmp_23Jun2022
// 下記が表示されれば OK
// LAMMPS (23 Jun 2022 - Update 4)
// OMP_NUM_THREADS environment is not set. Defaulting to 1 thread. (src/comm.cpp:98)
// using 1 OpenMP thread(s) per MPI task
// Control+D で終了
※ .bashrc に export OMP_NUM_THREADS=1 と追記すると良い
Xcode 13.4.1 から 元のバージョンに戻す
xcode-select -p
// "/Applications/Xcode_13.4.1.app/Contents/Developer" と表示される //
sudo xcode-select -s /Applications/Xcode.app/Contents/Developer/
// PASSWORD を打つ //
実際に MD シミュレーションを動かす
- 適当に MD シミュレーションを動かして、エラーが出ないか確認すること