LAMMPS

Sandia國家實驗室開發的程序

LAMMPS是Large-scale Atomic/Molecular Massively Parallel Simulator的簡稱,是Sandia國家實驗室開發的程序。以GPL license發布,即開放源代碼且可以免費獲取使用,這意味著使用者可以根據自己的需要自行修改源代碼

簡介


LAMMPS由美國Sandia國家實驗室開發,以GPL license發布,即開放源代碼且可以免費獲取使用,這意味著使用者可以根據自己的需要自行修改源代碼。LAMMPS可以支持包括氣態,液態或者固態相形態下、各種系綜下、百萬級的原子分子體系,並提供支持多種勢函數。且LAMMPS有良好的并行擴展性。

一般特點

支持并行計算
分散式內存MPI
spatial-decomposition of simulation domain for parallelism

代碼開源

C++可拓展性好
optional libraries used: MPI and single-processor FFT
easy to extend with new features and functionality
runs from an input script
syntax for defining and using variables and formulas
syntax for looping over runs and breaking out of loops
run one or multiple simulations simultaneously (in parallel) from one script

LAMMPS編譯安裝


切換到根目錄(root)
sudo -s

安裝fftw

1下載源碼包fftw-2.1.5.tar.gz,解壓 tar xvzf fftw-2.1.5.tar.gz
2 cd fftw-2.1.5.
3 ./configure --prefix=/opt/mathlib/fftw215-gnu --enable-float
其它選項:
4 make
5 make install

安裝mpich

1下載mpich.tar.gz
2 cd mpich-1.2.7**
3 ./configure --prefix=/opt/mpich-gnu
4 make
5 make install

編輯/etc/hosts.equiv文件

,在其中加入本機主機名(用hostname可以得到),單獨一行!
前三步都在root下進行。
下面的步驟都在自己的用戶中進行

安裝lammps

1 tar xvzflammps.tar.gz
2 cdlammps**
3 cd src
4 vim MAKE/Makefile.g++
修改mpich的安裝路徑
修改fftw的安裝路徑
(每個都有兩處,include前面和lib前面的部分)
# g++ = RedHat Linux box, g++, MPICH2, FFTW
SHELL = /bin/sh
# System-specific settings
CC = g++
CCFLAGS = -g -O -DFFT_FFTW -DLAMMPS_GZIP -
DMPICH_IGNORE_CXX_SEEK -I/opt/mathlib/fftw215-gnu/include -I/opt/mpich-
gnu/include
DEPFLAGS = -M
LINK = g++ -L/opt/mathlib/fftw215-gnu/lib -L/opt/mpich-
gnu/lib
LINKFLAGS = -g -O
USRLIB = -lfftw -lmpich
SYSLIB = -lpthread
ARCHIVE = ar
ARFLAGS = -rc
SIZE = size
# Link target
$(EXE): $(OBJ)
$(LINK) $(LINKFLAGS) $(OBJ) $(USRLIB) $(SYSLIB) -o $(EXE)
$(SIZE) $(EXE)
# Library target
lib: $(OBJ)
$(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ)
# Compilation rules
%.o:%.cpp
$(CC) $(CCFLAGS) -c $<
%.d:%.cpp
$(CC) $(CCFLAGS) $(DEPFLAGS) $< > $@
# Individual dependencies
DEPENDS = $(OBJ:.o=.d)
include $(DEPENDS)
5 make g++ (在src目錄下)
生成lmp_g++
四 運行lammps
1 cd ../bench
2 /opt/mpich-gnu/bin/mpirun -np 16 ../src/lmp_g++
  • 目錄