MPI/lammps

- build-block added
This commit is contained in:
2017-11-20 18:01:34 +01:00
parent a46e710365
commit 75106cfba8
4 changed files with 170 additions and 0 deletions

1
MPI/lammps/2017/variants Normal file
View File

@@ -0,0 +1 @@
lammps/2017.8 unstable gcc/5.4.0 openmpi/1.10.4

26
MPI/lammps/build Executable file
View File

@@ -0,0 +1,26 @@
#!/usr/bin/env modbuild
SOURCE_URL="lammps-2017.8.tar.gz"
pbuild::compile_in_sourcetree
pbuild::configure() {
cp -v "${BUILD_BLOCK_DIR}/files/Makefile.PSI" "${MODULE_BUILDDIR}/src/MAKE/MINE"
}
pbuild::build() {
make -C src PSI
}
pbuild::install() {
install -m 0755 -d "${PREFIX}/bin"
install -m 0755 "${MODULE_BUILDDIR}/src/lmp_PSI" "${PREFIX}/bin/lmp_omp"
strip "${PREFIX}/bin/lmp_omp"
}
pbuild::add_to_group 'MPI'
pbuild::set_docfiles \
LICENSE \
README
pbuild::make_all

View File

@@ -0,0 +1,120 @@
# omp = USER-OMP package, MPI with its default compiler
SHELL = /bin/sh
# ---------------------------------------------------------------------
# compiler/linker settings
# specify flags and libraries needed for your compiler
CC = mpicxx
CCFLAGS = -g -O3 -fopenmp
SHFLAGS = -fPIC
DEPFLAGS = -M
LINK = mpicxx
LINKFLAGS = -g -O -fopenmp
LIB =
SIZE = size
ARCHIVE = ar
ARFLAGS = -rc
SHLIBFLAGS = -shared
# ---------------------------------------------------------------------
# LAMMPS-specific settings, all OPTIONAL
# specify settings for LAMMPS features you will use
# if you change any -D setting, do full re-compile after "make clean"
# LAMMPS ifdef settings
# see possible settings in Section 2.2 (step 4) of manual
LMP_INC = -DLAMMPS_GZIP
# MPI library
# see discussion in Section 2.2 (step 5) of manual
# MPI wrapper compiler/linker can provide this info
# can point to dummy MPI library in src/STUBS as in Makefile.serial
# use -D MPICH and OMPI settings in INC to avoid C++ lib conflicts
# INC = path for mpi.h, MPI compiler settings
# PATH = path for MPI library
# LIB = name of MPI library
MPI_INC = -DMPICH_SKIP_MPICXX -DOMPI_SKIP_MPICXX=1
MPI_PATH =
MPI_LIB =
# FFT library
# see discussion in Section 2.2 (step 6) of manual
# can be left blank to use provided KISS FFT library
# INC = -DFFT setting, e.g. -DFFT_FFTW, FFT compiler settings
# PATH = path for FFT library
# LIB = name of FFT library
FFT_INC =
FFT_PATH =
FFT_LIB =
# JPEG and/or PNG library
# see discussion in Section 2.2 (step 7) of manual
# only needed if -DLAMMPS_JPEG or -DLAMMPS_PNG listed with LMP_INC
# INC = path(s) for jpeglib.h and/or png.h
# PATH = path(s) for JPEG library and/or PNG library
# LIB = name(s) of JPEG library and/or PNG library
JPG_INC =
JPG_PATH =
JPG_LIB =
# ---------------------------------------------------------------------
# build rules and dependencies
# do not edit this section
include Makefile.package.settings
include Makefile.package
EXTRA_INC = $(LMP_INC) $(PKG_INC) $(MPI_INC) $(FFT_INC) $(JPG_INC) $(PKG_SYSINC)
EXTRA_PATH = $(PKG_PATH) $(MPI_PATH) $(FFT_PATH) $(JPG_PATH) $(PKG_SYSPATH)
EXTRA_LIB = $(PKG_LIB) $(MPI_LIB) $(FFT_LIB) $(JPG_LIB) $(PKG_SYSLIB)
EXTRA_CPP_DEPENDS = $(PKG_CPP_DEPENDS)
EXTRA_LINK_DEPENDS = $(PKG_LINK_DEPENDS)
# Path to src files
vpath %.cpp ..
vpath %.h ..
# Link target
$(EXE): $(OBJ) $(EXTRA_LINK_DEPENDS)
$(LINK) $(LINKFLAGS) $(EXTRA_PATH) $(OBJ) $(EXTRA_LIB) $(LIB) -o $(EXE)
$(SIZE) $(EXE)
# Library targets
lib: $(OBJ) $(EXTRA_LINK_DEPENDS)
$(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ)
shlib: $(OBJ) $(EXTRA_LINK_DEPENDS)
$(CC) $(CCFLAGS) $(SHFLAGS) $(SHLIBFLAGS) $(EXTRA_PATH) -o $(EXE) \
$(OBJ) $(EXTRA_LIB) $(LIB)
# Compilation rules
%.o:%.cpp $(EXTRA_CPP_DEPENDS)
$(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $<
%.d:%.cpp $(EXTRA_CPP_DEPENDS)
$(CC) $(CCFLAGS) $(EXTRA_INC) $(DEPFLAGS) $< > $@
%.o:%.cu $(EXTRA_CPP_DEPENDS)
$(CC) $(CCFLAGS) $(SHFLAGS) $(EXTRA_INC) -c $<
# Individual dependencies
depend : fastdep.exe $(SRC)
@./fastdep.exe $(EXTRA_INC) -- $^ > .depend || exit 1
fastdep.exe: ../DEPEND/fastdep.c
cc -O -o $@ $<
sinclude .depend

23
MPI/lammps/modulefile Normal file
View File

@@ -0,0 +1,23 @@
#%Module1.0
module-whatis "an accelerator modeling code th"
module-url "http://www.aps.anl.gov/Accelerator_Systems_Division/Accelerator_Operations_Physics/elegant.html"
module-license "See: http://www.aps.anl.gov/epics/license/index.php"
module-maintainer "Achim Gsell <achim.gsell@psi.ch>"
module-help "
elegant is an accelerator modeling code that performs many functions. Its
basic function is 6D tracking, which it performs using matrices (up to
second order), symplectic integration, numerical integration, or a user-
defined mixture. It computes Twiss parameters, transport matrices, radiation
integrals, correction matrices, amplification factors, and floor coordinates.
It also performs optimization, including optimization of radiation integrals,
floor coordinates, transport matrices, and beam properties from tracking. A
number of time-dependent elements are supported, such as rf cavities, kickers,
and ramping machines. The code provides simulation of various collective
effects, such as wakes and coherent synchrotron radiation.
"
setenv RPN_DEFNS $PREFIX/RPN-DEFNS
setenv HOST_ARCH linux-x86_64
setenv EPICS_HOST_ARCH linux-x86_64