LAMMPS 22Jul2025

ウェブページ

https://www.lammps.org

バージョン

22Jul2025

ビルド環境

  • GCC 10.3.1 (gcc-toolset-10)
  • Intel MPI 2021.16
  • GSL 2.8
  • OpenBLAS 0.3.29

ビルドに必要なファイル

  • lammps-stable_22Jul2025.tar.gz
  • n2p2-2.2.0.tar.gz
  • (一部ファイルは以下スクリプト中で取得)

ビルド手順

n2p2-2.2.0 (抜粋)

$ module -s purge
$ module -s load gcc-toolset/10
$ module -s load intelmpi/2021.16
$ module -s load gsl/2.8
$ cd /apl/lammps/2025-Jul22
$ tar xf n2p2-2.2.0.tar.gz 
$ cd n2p2-2.2.0/src
$ make INTERFACES=LAMMPS COMP=gnu PROJECT_CC=g++ PROJECT_MPICC=mpicxx PROJECT_CFLAGS="-O3 -march=native -std=c++11 -fPIC" APP_CORE=nnp-convert APP_TRAIN=nnp-train APP=nnp-convert -j8

  • LAMMPS の方で自動ビルドがうまくいかず、cmake 関連のファイルを編集してもうまくいかなかったため、手動でインストール
  • 29Aug2024 時と同様の手順

lammps

#!/bin/sh

VERSION=2025-Jul22
NAME=lammps-stable_22Jul2025
INSTALL_PREFIX=/apl/lammps/${VERSION}

BASEDIR=/home/users/${USER}/Software/LAMMPS/${VERSION}
LAMMPS_TARBALL=${BASEDIR}/${NAME}.tar.gz

WORKDIR=/gwork/users/${USER}
LAMMPS_WORKDIR=${WORKDIR}/${NAME}

FFMPEG_BIN=/apl/ffmpeg/6.1/bin/ffmpeg
VMD_MOLFILE_INC=/home/users/${USER}/Software/VMD/1.9.4/vmd-1.9.4a57/plugins/include
GSL_ROOT=/apl/gsl/2.8
N2P2_ROOT=${INSTALL_PREFIX}/n2p2-2.2.0

PARALLEL=12

#------------------------------------------------------------------
umask 0022
export LANG=C
ulimit -s unlimited

module -s purge
module -s load gcc-toolset/10
module -s load intelmpi/2021.16
module -s load gsl/2.8
#module -s load mkl/2023.2.0
module -s load openblas/0.3.29-lp64

PYTHONEXE=/usr/bin/python3.6m
PYTHONINC=/usr/include/python3.6m

cd ${WORKDIR}
if [ -d ${NAME} ]; then
 mv ${NAME} lammps_erase
 rm -rf lammps_erase &
fi

tar zxf ${LAMMPS_TARBALL}

cd ${NAME}
# for FFT_SINGLE=on
sed -i -e '26i#include "force.h"' unittest/force-styles/test_fix_timestep.cpp
sed -i -e '29i#include "kspace.h"' unittest/force-styles/test_pair_style.cpp
# pass python exe path to MDI cmake
sed -i -e "59i\    -DPython_EXECUTABLE=${PYTHONEXE}" cmake/Modules/Packages/MDI.cmake
mkdir build && cd build

# Disabled PKGs:
# ADIOS, VTK: noavail
# KIM: to avoid unfavorable dependence to libkim-api.so.2
# ML-IAP: compilation error
# INTEL: not necessary for gcc build

cmake ../cmake \
 -DLAMMPS_MACHINE=rccs \
 -DENABLE_TESTING=on \
 -DCMAKE_INSTALL_PREFIX=${INSTALL_PREFIX} \
 -DCMAKE_C_COMPILER=mpicc \
 -DCMAKE_CXX_COMPILER=mpicxx \
 -DCMAKE_Fortran_COMPILER=mpif90 \
 -DCMAKE_C_FLAGS_RELEASE="-O3 -DNDEBUG" \
 -DCMAKE_CXX_FLAGS_RELEASE="-O3 -DNDEBUG" \
 -DCMAKE_Fortran_FLAGS_RELEASE="-O3 -DNDEBUG" \
 -DPython_EXECUTABLE=${PYTHONEXE} \
 -DPython_INCLUDE_DIR=${PYTHONINC} \
 -DGSL_ROOT_DIR=${GSL_ROOT} \
 -DBUILD_SHARED_LIBS=on \
 -DBUILD_TOOLS=on \
 -DBUILD_MPI=on \
 -DBUILD_OMP=on \
 -DBUILD_LAMMPS_GUI=on \
 -DBUILD_WHAM=on \
 -DFFT=FFTW3 \
 -DFFT_SINGLE=on \
 -DFFT_FFTW_THREADS=on \
 -DWITH_JPEG=on \
 -DWITH_PNG=on \
 -DWITH_GZIP=on \
 -DWITH_FFMPEG=on \
 -DFFMPEG_EXECUTABLE=${FFMPEG_BIN} \
 -DPKG_ADIOS=off \
 -DPKG_AMOEBA=on \
 -DPKG_APIP=on \
 -DPKG_ASPHERE=on \
 -DPKG_ATC=on \
 -DPKG_AWPMD=on \
 -DPKG_BOCS=on \
 -DPKG_BODY=on \
 -DPKG_BPM=on \
 -DPKG_BROWNIAN=on \
 -DPKG_CG-DNA=on \
 -DPKG_CG-SPICA=on \
 -DPKG_CLASS2=on \
 -DPKG_COLLOID=on \
 -DPKG_COLVARS=on \
 -DPKG_COMPRESS=on \
 -DPKG_CORESHELL=on \
 -DPKG_DIELECTRIC=on \
 -DPKG_DIFFRACTION=on \
 -DPKG_DIPOLE=on \
 -DPKG_DPD-BASIC=on \
 -DPKG_DPD-MESO=on \
 -DPKG_DPD-REACT=on \
 -DPKG_DPD-SMOOTH=on \
 -DPKG_DRUDE=on \
 -DPKG_EFF=on \
 -DPKG_ELECTRODE=on \
 -DPKG_EXTRA-COMMAND=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_GPU=off \
 -DPKG_GRANULAR=on \
 -DPKG_H5MD=on \
 -DPKG_INTEL=off \
 -DPKG_INTERLAYER=on \
 -DPKG_KIM=off \
 -DDOWNLOAD_KIM=off \
 -DPKG_KOKKOS=on \
 -DKokkos_ARCH_ZEN3=on \
 -DKokkos_ENABLE_OPENMP=on \
 -DFFT_KOKKOS=FFTW3 \
 -DPKG_KSPACE=on \
 -DPKG_LATBOLTZ=on \
 -DPKG_LEPTON=on \
 -DPKG_MACHDYN=on \
 -DDOWNLOAD_EIGEN3=on \
 -DPKG_MANIFOLD=on \
 -DPKG_MANYBODY=on \
 -DPKG_MC=on \
 -DPKG_MDI=on \
 -DDOWNLOAD_MDI=on \
 -DPKG_MEAM=on \
 -DPKG_MESONT=on \
 -DPKG_MGPT=on \
 -DPKG_MISC=on \
 -DPKG_ML-HDNNP=on \
 -DDOWNLOAD_N2P2=off \
 -DN2P2_DIR=${N2P2_ROOT} \
 -DPKG_ML-IAP=off \
 -DPKG_ML-PACE=on \
 -DPKG_ML-POD=on \
 -DPKG_ML-QUIP=on \
 -DDOWNLOAD_QUIP=on \
 -DPKG_ML-RANN=on \
 -DPKG_ML-SNAP=on \
 -DPKG_ML-UF3=on \
 -DPKG_MOFFF=on \
 -DPKG_MOLECULE=on \
 -DPKG_MOLFILE=on \
 -DMOLFILE_INCLUDE_DIR=${VMD_MOLFILE_INC} \
 -DPKG_NETCDF=on \
 -DPKG_OPENMP=on \
 -DPKG_OPT=on \
 -DPKG_ORIENT=on \
 -DPKG_PERI=on \
 -DPKG_PHONON=on \
 -DPKG_PLUGIN=on \
 -DPKG_PLUMED=on \
 -DDOWNLOAD_PLUMED=on \
 -DPKG_POEMS=on \
 -DPKG_PTM=on \
 -DPKG_PYTHON=on \
 -DPKG_QEQ=on \
 -DPKG_QMMM=on \
 -DPKG_QTB=on \
 -DPKG_REACTION=on \
 -DPKG_REAXFF=on \
 -DPKG_REPLICA=on \
 -DPKG_RHEO=on \
 -DPKG_RIGID=on \
 -DPKG_SCAFACOS=on \
 -DDOWNLOAD_SCAFACOS=on \
 -DPKG_SHOCK=on \
 -DPKG_SMTBQ=on \
 -DPKG_SPH=on \
 -DPKG_SPIN=on \
 -DPKG_SRD=on \
 -DPKG_TALLY=on \
 -DPKG_UEF=on \
 -DPKG_VORONOI=on \
 -DDOWNLOAD_VORO=on \
 -DPKG_VTK=off \
 -DPKG_YAFF=on \
 -DBLA_VENDOR=OpenBLAS \
 -DBLA_PREFER_PKGCONFIG=on \
 -DCMAKE_BUILD_TYPE=Release

#make -j ${PARALLEL}
make VERBOSE=1 -j ${PARALLEL}

export OMP_NUM_THREADS=2

make test
make install

cp -a ../examples ${INSTALL_PREFIX}

cd ${INSTALL_PREFIX}
for f in etc/profile.d/*; do
 if [ -f $f ]; then
   ln -s $f .
 fi
done

cd lib64
if [ -f liblammps_rccs.so ]; then
 ln -s liblammps_rccs.so liblammps.so
fi
if [ -f liblammps_rccs.so.0 ]; then
 ln -s liblammps_rccs.so.0 liblammps.so.0
fi

有効なパッケージ

AMOEBA APIP ASPHERE ATC AWPMD BOCS BODY BPM BROWNIAN CG-DNA CG-SPICA CLASS2 
COLLOID COLVARS COMPRESS CORESHELL DIELECTRIC DIFFRACTION DIPOLE DPD-BASIC 
DPD-MESO DPD-REACT DPD-SMOOTH DRUDE EFF ELECTRODE EXTRA-COMMAND EXTRA-COMPUTE 
EXTRA-DUMP EXTRA-FIX EXTRA-MOLECULE EXTRA-PAIR FEP GRANULAR H5MD INTERLAYER 
KOKKOS KSPACE LATBOLTZ LEPTON MACHDYN MANIFOLD MANYBODY MC MDI MEAM MESONT 
MGPT MISC ML-HDNNP ML-PACE ML-POD ML-QUIP ML-RANN ML-SNAP ML-UF3 MOFFF 
MOLECULE MOLFILE NETCDF OPENMP OPT ORIENT PERI PHONON PLUGIN PLUMED POEMS PTM 
PYTHON QEQ QMMM QTB REACTION REAXFF REPLICA RHEO RIGID SCAFACOS SHOCK SMTBQ 
SPH SPIN SRD TALLY UEF VORONOI YAFF

テスト結果

lammps の以下のテストに失敗しています。ログのコピーは /apl/lammps/2025-Jul22/Testing 以下にあります。

  • 38:SimpleCommands => Quit が失敗。
  • 54:LibraryProperties => memory_usage のテストに失敗
    • meminfo[1] を参照して失敗しているが、本来は meminfo[2] など他のものを見るべきかもしれない?
  • 72:FortranProperties => 54:LibraryProperties と同じエラー

以下のインプットに lattice が含まれるテストは大きなエラー。

  •  AtomicPairStyle:
    • buck_coul_cut_qeq_point, buck_coul_cut_qeq_shielded, edip, lepton_sphere, lj_cut_sphere, lj_expand_sphere, meam_sw_spline, pedone, reaxff-acks2, reaxff-acks2_efield, reaxff-qtpie, reaxff, reaxff_lgvdw, reaxff_noqeq, reaxff_tabulate, reaxff_tabulate_flag
  • KSpaceStyle:
    • scafacos_direct, scafacos_ewald, scafacos_fmm, scafacos_fmm_tuned, scafacos_p2nfft

以下は軽微な数値エラー。

  • 333:ManybodyPairStyle:ilp-graphene-hbn
  • 334:ManybodyPairStyle:ilp-graphene-hbn_notaper
  • 435:KSpaceStyle:pppm_ad
  • 436:KSpaceStyle:pppm_cg
  • 437:KSpaceStyle:pppm_cg_ad
  • 438:KSpaceStyle:pppm_cg_tiled
  • 455:KSpaceStyle:pppm_tip4p
  • 592:DihedralStyle:quadratic
  • 594:DihedralStyle:table_cut_linear
  • 596:DihedralStyle:table_linear

メモ

  • ADIOS, VTK は未検証。INTEL は GCC 版では不要なため除外。
  • 今回は GUI も有効にしています。
  • KIM を有効にすると実行時に libkim-api.so.2 への依存が発生するため回避。
  • ML-IAP はコンパイル時にエラーが発生するため回避。
  • FFT_SINGLE を有効にすると unittest のビルドに失敗する(force-styles の test_fix_timestep.cpp, test_pair_style.cpp)。
    • それぞれヘッダーを1つ追加してビルドしている。(手順中の sed 文)
  • MDI の python 指定は cmake のファイルを編集して強制的に指定。
  • cmake 中で n2p2 をダウンロードさせるとビルドに失敗する。原因は特定できていない。
    • $(shell ...) あたりの記述の問題かもしれない。
  • gcc13, gcc14 よりも少しだけ gcc10 の方が速度が出たため gcc10 を採用。in.rhodo のテスト(replicate 2 2 2)で比較。