Lammps simulation for 2D ICE - MaterSim/CMS GitHub Wiki

1, Compile lammps

[qiangz@smic1]$ tar -xf lammps-stable.tar.gz
[qiangz@smic1]$ cd lammps-11Aug17/src
[qiangz@smic1]$ make
make clean-all           delete all object files
make clean-machine       delete object files for one machine
make mpi-stubs           build dummy MPI library in STUBS
make install-python      install LAMMPS wrapper in Python
make tar                 create lmp_src.tar.gz for src dir and packages

make package                 list available packages and their dependencies
make package-status (ps)     status of all packages
make yes-package             install a single pgk in src dir
make no-package              remove a single pkg from src dir
make yes-all                 install all pgks in src dir
make no-all                  remove all pkgs from src dir
make yes-standard (yes-std)  install all standard pkgs
make no-standard (no-std)    remove all standard pkgs
make yes-user                install all user pkgs
make no-user                 remove all user pkgs
make yes-lib       install all pkgs with libs (included or ext)
make no-lib        remove all pkgs with libs (included or ext)
make yes-ext                 install all pkgs with external libs
make no-ext                  remove all pkgs with external libs

make package-update (pu) replace src files with updated package files
make package-overwrite   replace package files with src files
make package-diff (pd)   diff src files against package files

make lib-package         download/build/install a package library
make purge               purge obsolete copies of source files

make machine             build LAMMPS for machine
make mode=lib machine    build LAMMPS as static lib for machine
make mode=shlib machine  build LAMMPS as shared lib for machine
make mode=shexe machine  build LAMMPS as shared exe for machine
make makelist            create Makefile.list used by old makes
make -f Makefile.list machine     build LAMMPS for machine (old)

machine is one of these from src/MAKE:

# mpi = MPI with its default compiler
# LC = for Livermore Computing: Intel Cluster Tools, mpiicc, MKL MPI, MKL FFT
# serial = GNU g++ compiler, no MPI

... or one of these from src/MAKE/OPTIONS:

# big = MPI with its default compiler, BIGBIG switch
# fftw = MPI with its default compiler, FFTW3 support
# g++_mpich = MPICH with compiler set to GNU g++
# g++_mpich_link = GNU g++ compiler, link to MPICH
# g++_openmpi = OpenMPI with compiler set to GNU g++
# g++_openmpi_link = GNU g++ compiler, link to OpenMPI
# gpu = GPU package, MPI with its default compiler
# g++_serial = GNU g++ compiler, no MPI
# icc_mpich = MPICH with compiler set to Intel icc
# icc_mpich_link = Intel icc compiler, link to MPICH
# icc_openmpi = OpenMPI with compiler set to Intel icc
# icc_openmpi_link = Intel icc compiler, link to OpenMPI
# icc_serial = Intel icc compiler, no MPI
# intel_phi = USER-INTEL package with Phi offload support, Intel MPI, MKL FFT
# intel_cpu_intelmpi = USER-INTEL package, Intel MPI, MKL FFT
# intel_cpu_intelmpi = USER-INTEL package, Intel MPI, MKL FFT
# intel_cpu_mpich = USER-INTEL package, MPICH with compiler set to Intel icc
# intel_cpu_openmpi = USER-INTEL package, OpenMPI with compiler set to Intel icc
# intel_phi = USER-INTEL with Phi x200 (KNL) offload support,Intel MPI,MKL FFT
# jpeg = default MPI compiler, default MPI, JPEG support
# knl = Flags for Knights Landing Xeon Phi Processor,Intel Compiler/MPI,MKL FFT
# kokkos_cuda = KOKKOS/CUDA package, MPICH with nvcc compiler, Kepler GPU
# kokkos_cuda = KOKKOS/CUDA package, OpenMPI with nvcc compiler, Kepler GPU
# kokkos_mpi_only = KOKKOS package, no threading, MPI with its default compiler
# kokkos_omp = KOKKOS/OMP package, MPI with its default compiler
# kokkos_phi = KOKKOS package with PHI support, Intel compiler, default MPI
# mgptfast = MPI with its default compiler, optimizations for USER-MGPT
# omp = USER-OMP package, MPI with its default compiler
# opt = OPT package, MPI with its default compiler
# pgi_mpich_link = Portland group compiler, link to MPICH
# png = default MPI compiler, default MPI, PNG support

... or one of these from src/MAKE/MACHINES:

# linux = RedHat Linux box, Intel icc, MPICH2, FFTW
# bgl = LLNL Blue Gene Light machine, xlC, native MPI, FFTW
# bgq = IBM Blue Gene/Q, multiple compiler options, native MPI, ALCF FFTW2
# multiple compiler options for BGQ
# chama - Intel SandyBridge, mpic++, openmpi, no FFTW
# cori2 = NERSC Cori II KNL, static build, FFTW (single precision)
# cygwin = Windows Cygwin, mpicxx, MPICH, FFTW
# glory = Linux cluster with 4-way quad cores, Intel mpicxx, native MPI, FFTW
# jaguar = ORNL Jaguar Cray XT5, CC, native MPICH, FFTW
# mac = Apple PowerBook G4 laptop, c++, no MPI, FFTW 2.1.5
# mac_mpi = Apple laptop, MacPorts Open MPI 1.4.3, gcc 4.8, fftw, jpeg
# mingw32-cross = Win 32-bit, gcc-4.7.1, MinGW, internal FFT, no MPI, OpenMP
# mingw32-cross-mpi = Win 32-bit, gcc-4.7.1, MinGW, internal FFT, MPICH2, OpenMP
# mingw64-cross = Win 64-bit, gcc-4.7.1, MinGW, internal FFT, no MPI, OpenMP
# mingw64-cross-mpi = Win 64-bit, gcc-4.7.1, MinGW, internal FFT, MPICH2, OpenMP
# myrinet = cluster, g++, myrinet MPI, no FFTs
# power = IBM Power5+, mpCC_r, native MPI, FFTW
# redsky - SUN X6275 nodes, Nehalem procs, mpic++, openmpi, OpenMP, no FFTW 
# serial = RedHat Linux box, g++4, no MPI, no FFTs
# stampede = Intel Compiler, MKL FFT, Offload to Xeon Phi
# storm = Cray Red Storm XT3, Cray CC, native MPI, FFTW
# tacc = UT Lonestar TACC machine, mpiCC, MPI, FFTW
# ubuntu = Ubuntu Linux box, g++, openmpi, FFTW3
# ubuntu_simple = Ubuntu Linux box, g++, openmpi, KISS FFT
# kokkos_cuda = KOKKOS/CUDA package, OpenMPI with nvcc compiler, Kepler GPU
# xe6 = Cray XE6, Cray CC, native MPI, FFTW
# xt3 = PSC BigBen Cray XT3, CC, native MPI, FFTW
# xt5 = Cray XT5, Cray CC, native MPI, FFTW

... or one of these from src/MAKE/MINE:


2, Compile customized packages

  • rigid package, needed for fix shake command
  • kspace package, needed for lj/cut/tip4p/long
  • molecule package, needed for atom_style full
[qiangz@smic1 src]$$ make no-all
[qiangz@smic1 src]$$ make yes-rigid
[qiangz@smic1 src]$$ make yes-molecule
[qiangz@smic1 src]$$ make yes-kspace
[qiangz@smic1 src]$ make serial

This will end up with a compiled executable called lmp_mpi in src directory