LAMMPS 29Aug2024

Webpage

https://www.lammps.org

Version

29Aug2024

Build Environment

  • GCC 13.1.1 (gcc-toolset-13)
  • Intel MPI 2021.13
  • GSL 2.8

Files Required

  • lammps-stable_29Aug2024.tar.gz
  • MDI_Library-1.4.29.tar.gz
  • n2p2-2.2.0.tar.gz
  • (some of files will be downloaded in the procedure below)

Build Procedure

N2P2 2.2.0 (simplified)

$ module -s purge
$ module -s load gcc-toolset/13
$ module -s load intelmpi/2021.13
$ module -s load gsl/2.8
$ cd /apl/lammps/2024-Aug29
$ tar zxvf 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

  • (automatic build by LAMMPS does not work well)
  • -fPIC seems to be necessary
  • installing only "include" and "lib" directories does not work. The n2p2 tarball was expanded to the lammps directory.

MDI 1.4.29 (simplified)

$ tar xf MDI_Library-1.4.29.tar.gz
$ cd MDI_Library-1.4.29
$ mkdir build && cd build
$ cmake .. -DCMAKE_INSTALL_PREFIX=/apl/lammps/2024-Aug29/mdi-1.4.29 -DPython_EXECUTABLE=/usr/bin/python3.6m -DPython_INCLUDE_DIR=/usr/include/python3.6m
$ make -j8
$ make install

  • (There was a problem in Python specification in case of autobuild by lammps. Python_EXECUTABLE etc. won't be passed to cmake of MDI?)

LAMMPS

#!/bin/sh

VERSION=2024-Aug29
NAME=lammps-stable_29Aug2024
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
MDI_ROOT=/apl/lammps/2024-Aug29/mdi-1.4.29
N2P2_ROOT=/apl/lammps/2024-Aug29/n2p2-2.2.0

PARALLEL=12

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

module -s purge
module -s load gcc-toolset/13
module -s load intelmpi/2021.13
module -s load gsl/2.8

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

export CPATH="${MDI_ROOT}/include/mdi:${CPATH}"
export LIBRARY_PATH="${MDI_ROOT}/lib64/mdi:${LIBRARY_PATH}"
export LD_LIBRARY_PATH="${MDI_ROOT}/lib64/mdi:${LD_LIBRARY_PATH}"

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

tar zxf ${LAMMPS_TARBALL}

cd ${NAME}
mkdir build && cd build

# Disabled PKGs:
# ADIOS, VTK: noavail
# GUI: to avoid complicated dependecies
# KIM: CDDL is imcompatible with GPL
# INTEL: not necessary for gcc build
# ML-IAP: compilation error

cmake ../cmake \
 -DLAMMPS_MACHINE=rccs \
 -DENABLE_TESTING=on \
 -DCMAKE_INSTALL_PREFIX=${INSTALL_PREFIX} \
 -DCMAKE_C_COMPILER=gcc \
 -DCMAKE_CXX_COMPILER=g++ \
 -DCMAKE_Fortran_COMPILER=gfortran \
 -DCMAKE_MPI_C_COMPILER=mpicc \
 -DCMAKE_MPI_CXX_COMPILER=mpicxx \
 -DCMAKE_MPI_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=off \
 -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_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 \
 -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=off \
 -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 \
 -DMLIAP_ENABLE_PYTHON=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 \
 -DCMAKE_BUILD_TYPE=Release

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

Enabled Packages

AMOEBA 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

Tests

Copy of testlog can be found at /apl/lammps/2024-Aug29/Testing.

The following tests FAILED:
        37 - SimpleCommands (SEGFAULT)
        85 - PythonPyLammps (Failed)
       152 - MolPairStyle:lepton (Failed)
       253 - AtomicPairStyle:buck_coul_cut_qeq_point (Failed)
       254 - AtomicPairStyle:buck_coul_cut_qeq_shielded (Failed)
       271 - AtomicPairStyle:edip (Failed)
       277 - AtomicPairStyle:lepton_sphere (Failed)
       278 - AtomicPairStyle:lj_cut_sphere (Failed)
       279 - AtomicPairStyle:lj_expand_sphere (Failed)
       283 - AtomicPairStyle:meam_ms (Failed)
       285 - AtomicPairStyle:meam_spline (Failed)
       286 - AtomicPairStyle:meam_sw_spline (Failed)
       288 - AtomicPairStyle:pedone (Failed)
       290 - AtomicPairStyle:reaxff-acks2 (Failed)
       291 - AtomicPairStyle:reaxff-acks2_efield (Failed)
       292 - AtomicPairStyle:reaxff (Failed)
       293 - AtomicPairStyle:reaxff_lgvdw (Failed)
       294 - AtomicPairStyle:reaxff_noqeq (Failed)
       295 - AtomicPairStyle:reaxff_tabulate (Failed)
       296 - AtomicPairStyle:reaxff_tabulate_flag (Failed)
       321 - ManybodyPairStyle:ilp-graphene-hbn (Failed)
       322 - ManybodyPairStyle:ilp-graphene-hbn_notaper (Failed)
       372 - BondStyle:harmonic_restrain (Failed)
       422 - KSpaceStyle:pppm_ad (Failed)
       423 - KSpaceStyle:pppm_cg (Failed)
       424 - KSpaceStyle:pppm_cg_ad (Failed)
       425 - KSpaceStyle:pppm_cg_tiled (Failed)
       442 - KSpaceStyle:pppm_tip4p (Failed)
       447 - KSpaceStyle:scafacos_direct (Failed)
       448 - KSpaceStyle:scafacos_ewald (Failed)
       449 - KSpaceStyle:scafacos_fmm (Failed)
       450 - KSpaceStyle:scafacos_fmm_tuned (Failed)
       451 - KSpaceStyle:scafacos_p2nfft (Failed)
       457 - FixTimestep:addtorque_const (Failed)
       532 - FixTimestep:spring_rg (Failed)
       539 - FixTimestep:wall_harmonic_const (Failed)
       540 - FixTimestep:wall_lepton_const (Failed)
       544 - FixTimestep:wall_morse_const (Failed)
       546 - FixTimestep:wall_table_linear (Failed)
       547 - FixTimestep:wall_table_spline (Failed)
       552 - DihedralStyle:cosine_squared_restricted (Failed)
       561 - DihedralStyle:quadratic (Failed)
       563 - DihedralStyle:table_cut_linear (Failed)
       565 - DihedralStyle:table_linear (Failed)
       566 - DihedralStyle:table_spline (Failed)

Following tests involving "lattice" command in the input show large errors.

  • 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, reaxff_lgvdw, reaxff_noqeq, reaxff_tabulate, reaxff_tabulate_flag
  • KSpaceStyle:
    • scafacos_direct, scafacos_ewald, scafacos_fmm, scafacos_fmm_tuned, scafacos_p2nfft

Only minor numerical errors are found for the following tests.

  • MolPairStyle:lepton, AtomicPairStyle:meam_ms, AtomicPairStyle:meam_spline, ManybodyPairStyle:ilp-graphene-hbn*, BondStyle:harmonic_restrain, KSpaceStyle:pppm_*, FixTimestep:*, DihedralStyle:*

Others

  • SimpleCommands:segfault on "Quit" test (timeout may occur instead of segault).
  • PythonPyLammps: test_info_queries failed.
    • (This is probably due to "export OMP_NUM_THREADS=2"...)

Notes

  • ADIOS, VTK, and KIM are not verified. 
  • INTEL is not necessayr for this configuration.
  • GUI package is not used since too many additional packages are required.
  • ML-IAP is disabled to avoid compilation error.
  • There are no siginifiacnt differences between GCC 12 and 13 versions.
  • (automatic build of N2P2 by LAMMPS does not work well)
  • (There was a problem in Python specification of MDI when autobuild of lammps was used. Python_EXECUTABLE etc. won't be passed to cmake of MDI?)