mirror of
https://github.com/Ponce/slackbuilds
synced 2024-11-16 19:50:19 +01:00
academic/lammps: Added (molecular simulator).
Signed-off-by: Andrew Clemons <andrew.clemons@gmail.com> Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
This commit is contained in:
parent
2ee53a3a4e
commit
469fecd964
5 changed files with 656 additions and 0 deletions
48
academic/lammps/README
Normal file
48
academic/lammps/README
Normal file
|
@ -0,0 +1,48 @@
|
|||
LAMMPS stands for Large-scale Atomic/Molecular Massively Parallel
|
||||
Simulator.
|
||||
|
||||
It is a classical molecular dynamics simulation code designed to
|
||||
run efficiently on parallel computers. It was developed at Sandia
|
||||
National Laboratories, a US Department of Energy facility.
|
||||
|
||||
A basic installation of LAMMPS can be enhanced enabling the build of
|
||||
internal or external extensions (packages) that add methods and/or
|
||||
give support to third parts libraries or platforms.
|
||||
|
||||
Dependencies strictly needed to build LAMMPS with most internal
|
||||
packages enabled are already present in a full installation of
|
||||
Slackware 15.0 and the slackbuild can be launched without any other
|
||||
dependency not released with the official Slackware. Only openmpi is
|
||||
highly recommended since LAMMPS takes advantage of the parallel
|
||||
computation. Furthermore some packages require it as strictly
|
||||
dependency. Instead of openmpi LAMMPS can be build with the support
|
||||
of mpich, although the latter does not support the enabling of a
|
||||
package (OPENMP). If any MPI platform is found in the system, LAMMPS
|
||||
will be built anyway but with a reduced functionality.
|
||||
|
||||
Other optional dependencies available in Slackbuilds.org are
|
||||
autodetected and allow the enabling of some additional packages: HDF5,
|
||||
OpenBLAS, python3-numpy, voro++, PLUMED, netcdf. Other packages need
|
||||
third parts libraries given by downloaded extrafile and bundled in
|
||||
the application during the compilation. The slackbuild prevent the
|
||||
download during the build, so you have to download these extrafiles
|
||||
listed in lammps.info. Optional dependencies and the download of
|
||||
extrafiles are not needed if you do not require the respective
|
||||
packages.
|
||||
|
||||
Warning: except to GPU, all packages are enabled by default if no
|
||||
dependencies are required (or they dependencies are found in the
|
||||
system), but you have to disable the packages that require the
|
||||
extrafiles listed in lammps.info if you do not download them,
|
||||
otherwise the build fails during the check of cmake.
|
||||
For GPU package you can try:
|
||||
GPU=yes ./lammps.SlackBuild
|
||||
or
|
||||
GPU=yes STATIC_OCL=yes ./lammps.SlackBuild
|
||||
The latter uses an internal static OpenCL loader.
|
||||
|
||||
See README.SBo for a full list of available packages and their
|
||||
dependencies.
|
||||
|
||||
Some packages available in the source of LAMMPS cannot be enabled for
|
||||
reasons reported in README.SBo.
|
209
academic/lammps/README.SBo
Normal file
209
academic/lammps/README.SBo
Normal file
|
@ -0,0 +1,209 @@
|
|||
Table of contents
|
||||
|
||||
1. HOW TO DISABLE NOT REQUIRED PACKAGES
|
||||
2. INTERDEPENDENT PACKAGES
|
||||
3. EXTERNAL PACKAGES
|
||||
4. LIST OF PACKAGES AND RELATED REQUIREMENTS
|
||||
5. PACKAGES NOT AVAILABLE
|
||||
6. NOTES
|
||||
|
||||
1. HOW TO DISABLE NOT REQUIRED PACKAGES
|
||||
|
||||
Almost all packages that are supported by your system and dependencies
|
||||
installed (autodetected) are enabled by default. You can disable those
|
||||
not required in three different ways:
|
||||
A. edit the code of the slackbuild
|
||||
for example, a package enabled by default has this condition:
|
||||
atc="" [ "${ATC:-no}" = "yes" ] && atc="-DPKG_ATC=yes "
|
||||
if you want to disable it you have to edit as following:
|
||||
atc="" [ "${ATC:-no}" = "yes" ] && atc="-DPKG_ATC=yes "
|
||||
B. remove the variables not required from the global $packages at line
|
||||
221. The script will not pass the related flags to cmake)
|
||||
for example, if you want to disable AMOEBA and ATC you have to
|
||||
remove the strings $amoeba and $atc from packages=$amoeba$asphere...
|
||||
C. pass to the script the related environment variable as following
|
||||
AMOEBA=no ATC=no ./lammps.SlackBuild
|
||||
|
||||
2. INTERDEPENDENT PACKAGES
|
||||
|
||||
The enabling of some packages require that also other packages are
|
||||
enabled. For example, the ATC package require also MANYBODY enabled.
|
||||
The script or cmake check if this condition is not respected, so all
|
||||
required additional packages will be enabled automatically
|
||||
|
||||
3. EXTERNAL PACKAGES
|
||||
|
||||
Various packages are build as bundled features that interface LAMMPS
|
||||
to third part software that it should already installed in your
|
||||
system. These deps are released with the official Slackware (fftw
|
||||
for example) or available in Slackbuilds.org. Some packages require
|
||||
the download of additional sources (listed in lammps.info). Please
|
||||
make sure to download all required extrafiles if the dependent
|
||||
package is enable. If you do not do this, the process will fail or
|
||||
starts the download during the compilation.
|
||||
|
||||
4. LIST OF PACKAGES AND RELATED REQUIREMENTS
|
||||
|
||||
For description of each package see the documentation on line at
|
||||
https://docs.lammps.org/Packages_list.html
|
||||
|
||||
Dependencies available in the official Slackware are not reported.
|
||||
-----------------------------------------------------------------------
|
||||
PACKAGE ; ENV. VARIABLE ; ENABLED ALSO ; EXTERNAL DEPENDENCIES
|
||||
-----------------------------------------------------------------------
|
||||
AMOEBA ; AMOEBA ; ;
|
||||
ASPHERE ; ASPHERE ; ;
|
||||
ATC ; ATC ; MANYBODY ;
|
||||
AWPMD ; AWPMD ; ;
|
||||
BOCS ; BOCS ; ;
|
||||
BODY ; BODY ; ;
|
||||
BPM ; BPM ; ;
|
||||
BROWNIAN ; BROWNIAN ; ;
|
||||
CG-DNA ; CGDNA ; ASPHERE \
|
||||
MOLECULE ;
|
||||
CG-SPICA ; CGSPICA ; ;
|
||||
CLASS2 ; CLASS2 ; ;
|
||||
COLLOID ; COLLOID ; ;
|
||||
COLVARS ; COLVARS ; ;
|
||||
COMPRESS ; COMPRESS ; ;
|
||||
CORESHELL ; CORESHELL ; ;
|
||||
DIELECTRIC ; DIELECTRIC ; EXTRA-PAIR \
|
||||
KSPACE ;
|
||||
DIFFRACTION ; DIFFRACTION ; ;
|
||||
DIPOLE ; DIPOLE ; ;
|
||||
DPD-BASIC ; DPDBASIC ; ;
|
||||
DPD-MESO ; DPDMESO ; ;
|
||||
DPD-REACT ; DPDREACT ; ;
|
||||
DPD-SMOOTH ; DPDSMOOTH ; ;
|
||||
DRUDE ; DRUDE ; ;
|
||||
EFF ; EFF ; ;
|
||||
ELECTRODE ; ELECTRODE ; KSPACE ; OpenBLAS (optional)
|
||||
EXTRA-COMPUTE ; EXTRACOMPUTE ; ;
|
||||
EXTRA-DUMP ; EXTRADUMP ; ;
|
||||
EXTRA-FIX ; EXTRAFIX ; ;
|
||||
EXTRA-MOLECULE ; EXTRAMOLECULE ; ;
|
||||
EXTRA-PAIR ; EXTRAPAIR ; ;
|
||||
FEP ; FEP ; ;
|
||||
GPU ; GPU ; ; see NOTES
|
||||
GRANULAR ; GRANULAR ; ;
|
||||
H5MD ; H5MD ; ; hdf5 (needed)
|
||||
INTEL ; INTEL ; OPENMP ; see NOTES
|
||||
INTERLAYER ; INTERLAYER ; ;
|
||||
KOKKOS ; KOKKOS ; ; see NOTES
|
||||
KSPACE ; KSPACE ; ;
|
||||
LATBOLTZ ; LATBOLTZ ; ; see NOTES
|
||||
LEPTON ; LEPTON ; ;
|
||||
MACHDYN ; MACHDYN ; ;
|
||||
MANIFOLD ; MANIFOLD ; ;
|
||||
MANYBODY ; MANYBODY ; ;
|
||||
MC ; MC ; ;
|
||||
MDI ; MDI ; ; download extrasource
|
||||
MEAM ; MEAM ; ;
|
||||
MESONT ; MESONT ; MOLECULE ; download data file
|
||||
MGPT ; MGPT ; ;
|
||||
MISC ; MISC ; ;
|
||||
ML-HDNNP ; MLHDNNP ; ; download extrasource
|
||||
ML-IAP ; MLIAP ; ML-SNAP \
|
||||
PYTHON ; python3-numpy (needed)
|
||||
ML-PACE ; MLPACE ; ; download extrasource
|
||||
ML-POD ; MLPOD ; ;
|
||||
ML-RANN ; MLRANN ; ;
|
||||
ML-SNAP ; MLSNAP ; ;
|
||||
MOFFF ; MOFFF ; ;
|
||||
MOLECULE ; MOLECULE ; ;
|
||||
NETCDF ; NETCDF ; ; netcdf
|
||||
OPENMP ; OPENMP ; ; openmpi (needed) \
|
||||
(mpich not supported)
|
||||
OPT ; OPT ; ;
|
||||
ORIENT ; ORIENT ; ;
|
||||
PERI ; PERI ; ;
|
||||
PHONON ; PHONON ; KSPACE ;
|
||||
PLUMED ; PLUMED ; ; PLUMED
|
||||
POEMS ; POEMS ; ;
|
||||
PTM ; PTM ; ;
|
||||
PYTHON ; PYTHON ; ;
|
||||
QEQ ; QEQ ; ;
|
||||
QTB ; QTB ; ;
|
||||
REACTION ; REACTION ; ;
|
||||
REAXFF ; REAXFF ; ;
|
||||
REPLICA ; REPLICA ; ;
|
||||
RIGID ; RIGID ; ;
|
||||
SCAFACOS ; SCAFACOS ; ; download extrasource \
|
||||
openmpi/mpich (needed)
|
||||
SHOCK ; SHOCK ; ;
|
||||
SMTBQ ; SMTBQ ; ;
|
||||
SPH ; SPH ; ;
|
||||
SPIN ; SPIN ; ;
|
||||
SRD ; SRD ; ;
|
||||
TALLY ; TALLY ; ;
|
||||
UEF ; UEF ; ;
|
||||
VORONOI ; VORONOI ; ; voro++
|
||||
YAFF ; YAFF ; ;
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
5. PACKAGES NOT AVAILABLE
|
||||
|
||||
Some packages, available in the source, are not supported in this
|
||||
slackbuild for various reasons. These are:
|
||||
- ADIOS: requires a library not available in Slackware or SBo.
|
||||
- KIM: requires the download of extrasource during the compilation
|
||||
which cannot prevented by a predownload.
|
||||
- ML-QUIP: the version for non-commercial uses can be downloaded only
|
||||
during the compilation. A preventive download is allowed
|
||||
only via git.
|
||||
- MOLFILE: this package supports the VMD plugin that is must be built
|
||||
and installed only by sources or packages downloaded after
|
||||
registration
|
||||
- MPIIO: this packages is unmantained and it should be enabled with
|
||||
caution
|
||||
- MSCG: requires the download of extrasource during the compilation or
|
||||
the installation in the system. This library is free and open
|
||||
source but the anonymous download is not permitted.
|
||||
- QMMM: requires a library that can be built and installed from source
|
||||
downloaded after registration
|
||||
- VTK: not available at the moment because the build fails. It is
|
||||
possible that this is caused by the VTK built in my system: the
|
||||
issue is a conflict with the support of VTK to openmpi in my
|
||||
built. I have to make some tests to find the problem.
|
||||
|
||||
6. NOTES
|
||||
|
||||
The GPU package supports OpenCL, CUDA and HIP by setting the
|
||||
appropriate build configuration. See the documentation on line if you
|
||||
would extend the functionality of LAMMPS adapted to you hardware. This
|
||||
slackbuild sets a basic configuration build the package with OpenCL.
|
||||
LAMMPS can be build linking the system OpenCL or using a static
|
||||
internal OpenCL loader. To enable the build with the internal OpenCL
|
||||
you have to download the extrasource from the link indicated in
|
||||
lammps.info and pass the variable STATIC_OCL=yes to the slackbuild.
|
||||
The enabling of this package gives different results depending on the
|
||||
hardware/software configurations, so it is disabled by default because
|
||||
we have to apply additional settings to prevent the issues (build
|
||||
failures and segmentation faults). With a basic configuration I enabled
|
||||
it in a Slackware current with a an old Nvidia GPU and driver and
|
||||
using the system OpenCL (the bundled OpenCL gives segmentation fault).
|
||||
In other tests (Slackware 15 with older Nvidia GPU and driver,
|
||||
Slackware 32-bit in virtual machine) the build not works. You could
|
||||
passing GPU=yes (and eventually STATIC_OCL=yes) to the slackbuild to
|
||||
try if it works in your system with a basic configuration, but it is no
|
||||
guaranteed.
|
||||
|
||||
The INTEL package takes advantage in build and runtime of an advanced
|
||||
configuration using Intel compilers and hardware it should work also
|
||||
with other with reduced performances. If detected, the build takes
|
||||
advantage of the parallelism (MPI and tbb, for example).
|
||||
|
||||
KOKKOS is another package that enhance the functionality of LAMMPS
|
||||
taking advandage of the parallel computation. Since its build requires
|
||||
resources and a build with a single core seems very long, I set the
|
||||
enabling by default only for 64-bit architectures because I do not know
|
||||
how it can be useful in 32-bit systems.
|
||||
|
||||
The LATBOLTZ package must be enabled only if LAMMPS is built with the
|
||||
support to MPI (openmpi or mpich). The script allows the enabling of
|
||||
LATBOLTZ if one of these dependencies are found in the system.
|
||||
|
||||
By default, LAMMPS will be built with Python anyway, even if packages
|
||||
that require it will not be enabled. If you want disable the support
|
||||
to Python, you have to launch the slackbuild with
|
||||
PYTHON=no ./lammps.SlackBuild
|
358
academic/lammps/lammps.SlackBuild
Normal file
358
academic/lammps/lammps.SlackBuild
Normal file
|
@ -0,0 +1,358 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Slackware build script for lammps
|
||||
|
||||
# Copyright 2023 Giancarlo Dessi, Cagliari, IT
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use of this script, with or without modification, is
|
||||
# permitted provided that the following conditions are met:
|
||||
#
|
||||
# 1. Redistributions of this script must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED
|
||||
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
|
||||
# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
||||
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
cd $(dirname $0) ; CWD=$(pwd)
|
||||
|
||||
PRGNAM=lammps
|
||||
VERSION=${VERSION:-2023.08.02}
|
||||
BUILD=${BUILD:-1}
|
||||
TAG=${TAG:-_SBo}
|
||||
PKGTYPE=${PKGTYPE:-tgz}
|
||||
SRCNAM=lammps-stable
|
||||
SRCVERSION=${SRCVERSION:-2Aug2023}
|
||||
|
||||
if [ -z "$ARCH" ]; then
|
||||
case "$( uname -m )" in
|
||||
i?86) ARCH=i586 ;;
|
||||
arm*) ARCH=arm ;;
|
||||
*) ARCH=$( uname -m ) ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
|
||||
echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# First detect if openmpi or mpich are installed, so we can build LAMMPS with the
|
||||
# parallel computing and enable some packages
|
||||
MP=""
|
||||
mpi=""
|
||||
if pkg-config --exists ompi; then
|
||||
MP="openmpi";
|
||||
mpi="-DBUILD_OMP=yes "
|
||||
fi
|
||||
if pkg-config --exists mpich; then
|
||||
MP="mpich";
|
||||
mpi="-DBUILD_MPI=yes "
|
||||
fi
|
||||
|
||||
# These internal packages are enabled by default.
|
||||
# If you do not require some of them you have to edit the conditions in this block
|
||||
# otherwise pass the respective environment variables set to "no" to the script
|
||||
# for each package not desired
|
||||
# (for example: AMOEBA=no ASPHERE=no ./lammps.SlackBuild)
|
||||
|
||||
amoeba="" [ "${AMOEBA:-yes}" = "yes" ] && amoeba="-DPKG_AMOEBA=yes "
|
||||
asphere="" ; [ "${ASPHERE:-yes}" = "yes" ] && asphere="-DPKG_ASPHERE=yes "
|
||||
atc="" ; [ "${ATC:-yes}" = "yes" ] && atc="-DPKG_ATC=yes "
|
||||
awpmd="" ; [ "${AWPMD:-yes}" = "yes" ] && awpmd="-DPKG_AWPMD=yes "
|
||||
bocs="" ; [ "${BOCS:-yes}" = "yes" ] && bocs="-DPKG_BOCS=yes "
|
||||
body="" ; [ "${BODY:-yes}" = "yes" ] && body="-DPKG_BODY=yes "
|
||||
bpm="" ; [ "${BPM:-yes}" = "yes" ] && bpm="-DPKG_BPM=yes "
|
||||
brownian="" ; [ "${BROWNIAN:-yes}" = "yes" ] && brownian="-DPKG_BROWNIAN=yes "
|
||||
cgdna="" ; [ "${CGDNA:-yes}" = "yes" ] && cgdna="-DPKG_CG-DNA=yes "
|
||||
cgspica="" ; [ "${CGSPICA:-yes}" = "yes" ] && cgspica="-DPKG_CG-SPICA=yes "
|
||||
class2="" ; [ "${CLASS2:-yes}" = "yes" ] && class2="-DPKG_CLASS2=yes "
|
||||
colloid="" ; [ "${COLLOID:-yes}" = "yes" ] && colloid="-DPKG_COLLOID=yes "
|
||||
colvars="" ; [ "${COLVARS:-yes}" = "yes" ] && colvars="-DPKG_COLVARS=yes "
|
||||
compress="" ; [ "${COMPRESS:-yes}" = "yes" ] && compress="-DPKG_COMPRESS=yes "
|
||||
coreshell="" ; [ "${CORESHELL:-yes}" = "yes" ] && coreshell="-DPKG_CORESHELL=yes "
|
||||
dielectric="" ; [ "${DIELECTRIC:-yes}" = "yes" ] && dielectric="-DPKG_DIELECTRIC=yes "
|
||||
diffraction="" ; [ "${DIFFRACTION:-yes}" = "yes" ] && diffraction="-DPKG_DIFFRACTION=yes "
|
||||
dipole="" ; [ "${DIPOLE:-yes}" = "yes" ] && dipole="-DPKG_DIPOLE=yes "
|
||||
dpdbasic="" ; [ "${DPDBASIC:-yes}" = "yes" ] && dpdbasic="-DPKG_DPD-BASIC=yes "
|
||||
dpdmeso="" ; [ "${DPDMESO:-yes}" = "yes" ] && dpdmeso="-DPKG_DPD-MESO=yes "
|
||||
dpdreact="" ; [ "${DPDREACT:-yes}" = "yes" ] && dpdreact="-DPKG_DPD-REACT=yes "
|
||||
dpdsmooth="" ; [ "${DPDSMOOTH:-yes}" = "yes" ] && dpdsmooth="-DPKG_DPD-SMOOTH=yes "
|
||||
drude="" ; [ "${DRUDE:-yes}" = "yes" ] && drude="-DPKG_DRUDE=yes "
|
||||
eff="" ; [ "${EFF:-yes}" = "yes" ] && eff="-DPKG_EFF=yes "
|
||||
electrode="" ; [ "${ELECTRODE:-yes}" = "yes" ] && electrode="-DPKG_ELECTRODE=yes "
|
||||
extracompute="" ; [ "${EXTRACOMPUTE:-yes}" = "yes" ] && extracompute="-DPKG_EXTRA-COMPUTE=yes "
|
||||
extradump="" ; [ "${EXTRADUMP:-yes}" = "yes" ] && extradump="-DPKG_EXTRA-DUMP=yes "
|
||||
extrafix="" ; [ "${EXTRAFIX:-yes}" = "yes" ] && extrafix="-DPKG_EXTRA-FIX=yes "
|
||||
extramolecule="" ; [ "${EXTRAMOLECULE:-yes}" = "yes" ] && extramolecule="-DPKG_EXTRA-MOLECULE=yes "
|
||||
extrapair="" ; [ "${EXTRAPAIR:-yes}" = "yes" ] && extrapair="-DPKG_EXTRA-PAIR=yes "
|
||||
fep="" ; [ "${FEP:-yes}" = "yes" ] && fep="-DPKG_FEP=yes "
|
||||
granular="" ; [ "${GRANULAR:-yes}" = "yes" ] && granular="-DPKG_GRANULAR=yes "
|
||||
intel="" ; [ "${INTEL:-yes}" = "yes" ] && intel="-DPKG_INTEL=yes "
|
||||
interlayer="" ; [ "${INTERLAYER:-yes}" = "yes" ] && interlayer="-DPKG_INTERLAYER=yes "
|
||||
kspace="" ; [ "${KSPACE:-yes}" = "yes" ] && kspace="-DPKG_KSPACE=yes "
|
||||
lepton="" ; [ "${LEPTON:-yes}" = "yes" ] && lepton="-DPKG_LEPTON=yes "
|
||||
machdyn="" ; [ "${MACHDYN:-yes}" = "yes" ] && machdyn="-DPKG_MACHDYN=yes "
|
||||
manifold="" ; [ "${MANIFOLD:-yes}" = "yes" ] && manifold="-DPKG_MANIFOLD=yes "
|
||||
manybody="" ; [ "${MANYBODY:-yes}" = "yes" ] && manybody="-DPKG_MANYBODY=yes "
|
||||
mc="" ; [ "${MC:-yes}" = "yes" ] && mc="-DPKG_MC=yes "
|
||||
mdi="" ; [ "${MDI:-yes}" = "yes" ] && mdi="-DPKG_MDI=yes -DDOWNLOAD_MDI=yes "
|
||||
meam="" ; [ "${MEAM:-yes}" = "yes" ] && meam="-DPKG_MEAM=yes "
|
||||
mesont="" ; [ "${MESONT:-yes}" = "yes" ] && mesont="-DPKG_MESONT=yes "
|
||||
mgpt="" ; [ "${MGPT:-yes}" = "yes" ] && mgpt="-DPKG_MGPT=yes "
|
||||
misc="" ; [ "${MISC:-yes}" = "yes" ] && misc="-DPKG_MISC=yes "
|
||||
mlhdnnp="" ; [ "${MLHDNNP:-yes}" = "yes" ] && mlhdnnp="-DPKG_ML-HDNNP=yes "
|
||||
mliap="" ; [ "${MLIAP:-yes}" = "yes" ] && mliap="-DPKG_ML-IAP=yes -DMLIAP_ENABLE_PYTHON=autodetected "
|
||||
mlpace="" ; [ "${MLPACE:-yes}" = "yes" ] && mlpace="-DPKG_ML-PACE=yes "
|
||||
mlpod="" ; [ "${MLPOD:-yes}" = "yes" ] && mlpod="-DPKG_ML-POD=yes "
|
||||
mlrann="" ; [ "${MLRANN:-yes}" = "yes" ] && mlrann="-DPKG_ML-RANN=yes "
|
||||
mlsnap="" ; [ "${MLSNAP:-yes}" = "yes" ] && mlsnap="-DPKG_ML-SNAP=yes "
|
||||
mofff="" ; [ "${MOFFF:-yes}" = "yes" ] && mofff="-DPKG_MOFFF=yes "
|
||||
molecule="" ; [ "${MOLECULE:-yes}" = "yes" ] && molecule="-DPKG_MOLECULE=yes "
|
||||
opt="" ; [ "${OPT:-yes}" = "yes" ] && opt="-DPKG_OPT=yes "
|
||||
orient="" ; [ "${ORIENT:-yes}" = "yes" ] && orient="-DPKG_ORIENT=yes "
|
||||
peri="" ; [ "${PERI:-yes}" = "yes" ] && peri="-DPKG_PERI=yes "
|
||||
phonon="" ; [ "${PHONON:-yes}" = "yes" ] && phonon="-DPKG_PHONON=yes "
|
||||
plugin="" ; [ "${PLUGIN:-yes}" = "yes" ] && plugin="-DPKG_PLUGIN=yes "
|
||||
poems="" ; [ "${POEMS:-yes}" = "yes" ] && poems="-DPKG_POEMS=yes "
|
||||
ptm="" ; [ "${PTM:-yes}" = "yes" ] && ptm="-DPKG_PTM=yes "
|
||||
qeq="" ; [ "${QEQ:-yes}" = "yes" ] && qeq="-DPKG_QEQ=yes "
|
||||
qtb="" ; [ "${QTB:-yes}" = "yes" ] && qtb="-DPKG_QTB=yes "
|
||||
reaction="" ; [ "${REACTION:-yes}" = "yes" ] && reaction="-DPKG_REACTION=yes "
|
||||
reaxff="" ; [ "${REAXFF:-yes}" = "yes" ] && reaxff="-DPKG_REAXFF=yes "
|
||||
replica="" ; [ "${REPLICA:-yes}" = "yes" ] && replica="-DPKG_REPLICA=yes "
|
||||
rigid="" ; [ "${RIGID:-yes}" = "yes" ] && rigid="-DPKG_RIGID=yes "
|
||||
shock="" ; [ "${SHOCK:-yes}" = "yes" ] && shock="-DPKG_SHOCK=yes "
|
||||
smtbq="" ; [ "${SMTBQ:-yes}" = "yes" ] && smtbq="-DPKG_SMTBQ=yes "
|
||||
sph="" ; [ "${SPH:-yes}" = "yes" ] && sph="-DPKG_SPH=yes "
|
||||
spin="" ; [ "${SPIN:-yes}" = "yes" ] && spin="-DPKG_SPIN=yes "
|
||||
srd="" ; [ "${SRD:-yes}" = "yes" ] && srd="-DPKG_SRD=yes "
|
||||
tally="" ; [ "${TALLY:-yes}" = "yes" ] && tally="-DPKG_TALLY=yes "
|
||||
uef="" ; [ "${UEF:-yes}" = "yes" ] && uef="-DPKG_UEF=yes "
|
||||
yaff="" ; [ "${YAFF:-yes}" = "yes" ] && yaff="-DPKG_YAFF=yes "
|
||||
|
||||
# If OpenBLAS is installed ELECTRODE will be enabled using the system LAPACK
|
||||
# otherwise a bundled linear algebra is used. To force the use of internal
|
||||
# linear algebra edit the CMake flag setting "-DUSE_INTERNAL_LINALG=yes "
|
||||
if [ "$electrode" = "-DPKG_ELECTRODE=yes " ]; then
|
||||
if pkg-config --exists openblas; then
|
||||
electrode=$electrode"-DUSE_INTERNAL_LINALG=no "
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "${PYTHON:-yes}" = "yes" ]; then
|
||||
python="-DPKG_PYTHON=yes "
|
||||
else
|
||||
python=""
|
||||
mliap=""
|
||||
fi
|
||||
|
||||
# The GPU package requires some basic settings that may be customized through environment
|
||||
# variables. For advanced options requiring specific hardware configurations (GPU) see the
|
||||
# documentation in lammps.org
|
||||
# This package causes many issues depending on the hardware/software configuration (build
|
||||
# failure or segmentation fault) that require additional settings to be solved, so it is
|
||||
# disabled by default.
|
||||
if [ "${GPU:-no}" = "yes" ]; then
|
||||
# by default the GPU package is enabled using bundled OpenCL ICD loader library/headers
|
||||
# but users may prefer the local opencl installed in the system
|
||||
opencl_loader="yes" ; [ "${STATIC_OCL:-no}" = "no" ] && opencl_loader="no"
|
||||
gpu="-DPKG_GPU=yes -DGPU_API=opencl -DUSE_STATIC_OPENCL_LOADER=${opencl_loader} "
|
||||
else
|
||||
opencl_loader=""
|
||||
gpu=""
|
||||
fi
|
||||
|
||||
# Following conditions enable by default all packages that require dependencies if these
|
||||
# are installed in the system
|
||||
|
||||
latboltz=""
|
||||
openmp=""
|
||||
scafacos=""
|
||||
if [ "$MP" = "openmpi" ]; then
|
||||
latboltz="" ; [ "${LATBOLTZ:-yes}" = "yes" ] && latboltz="-DPKG_LATBOLTZ=yes "
|
||||
openmp="" ; [ "${OPENMP:-yes}" = "yes" ] && openmp="-DPKG_OPENMP=yes "
|
||||
scafacos="" ; [ "${SCAFACOS:-yes}" = "yes" ] && scafacos="-DPKG_SCAFACOS=yes "
|
||||
fi
|
||||
|
||||
if [ "$MP" = "mpich" ]; then
|
||||
latboltz="" ; [ "${LATBOLTZ:-yes}" = "yes" ] && latboltz="-DPKG_LATBOLTZ=yes "
|
||||
scafacos="" ; [ "${SCAFACOS:-yes}" = "yes" ] && scafacos="-DPKG_SCAFACOS=yes "
|
||||
fi
|
||||
|
||||
if pkg-config --exists plumed; then
|
||||
plumed="" ; [ "${PLUMED:-yes}" = "yes" ] && plumed="-DPKG_PLUMED=yes -DDOWNLOAD_PLUMED=no "
|
||||
else
|
||||
plumed=""
|
||||
fi
|
||||
|
||||
netcdf=""
|
||||
if pkg-config --exists netcdf; then
|
||||
netcdf="" ; [ "${NETCDF:-yes}" = "yes" ] && netcdf="-DPKG_NETCDF=yes "
|
||||
fi
|
||||
|
||||
voronoi=""
|
||||
if [ -f /usr/bin/voro++ ]; then
|
||||
voronoi="" ; [ "${VORONOI:-yes}" = "yes" ] && voronoi="-DPKG_VORONOI=yes "
|
||||
fi
|
||||
|
||||
h5md=""
|
||||
if [ -f /usr/bin/h5cc ]; then
|
||||
h5md="" ; [ "${H5MD:-yes}" = "yes" ] && h5md="-DPKG_H5MD=yes "
|
||||
fi
|
||||
|
||||
# This shouldn't need in 32-bit architectures, however it significantly extends the build times
|
||||
# and absorbs many resources. Openmpi is strictly required.
|
||||
kokkos=""
|
||||
if [ "$ARCH" = "x86_64" ]; then
|
||||
if [ "${KOKKOS:-yes}" = "yes" ] ; then
|
||||
kokkos="-DPKG_KOKKOS=yes -DKokkos_ARCH_NATIVE=yes -DKokkos_ENABLE_OPENMP=yes "
|
||||
fi
|
||||
if [ "$MP" != "openmpi" ]; then
|
||||
kokkos=""
|
||||
fi
|
||||
fi
|
||||
|
||||
# All required cmake flags related to packages are included in a single global variable
|
||||
packages=$amoeba$asphere$atc$awpmd$bocs$body$bpm$brownian$cgdna$cgspica$class2$colloid\
|
||||
$colvars$compress$coreshell$dielectric$diffraction$dipole$dpdbasic$dpdmeso$dpdreact\
|
||||
$dpdsmooth$drude$eff$electrode$extracompute$extradump$extrafix$extramolecule$extrapair\
|
||||
$fep$gpu$granular$h5md$intel$interlayer$kokkos$kspace$latboltz$lepton$machdyn$manifold\
|
||||
$manybody$mc$mdi$meam$mesont$mgpt$misc$mlhdnnp$mliap$mlpace$mlpod$mlrann$mlsnap$mofff\
|
||||
$molecule$netcdf$openmp$opt$orient$peri$phonon$plugin$plumed$poems$ptm$qeq$qtb$reaction\
|
||||
$reaxff$replica$rigid$scafacos$shock$smtbq$sph$spin$srd$tally$uef$voronoi$yaff
|
||||
|
||||
TMP=${TMP:-/tmp/SBo}
|
||||
PKG=$TMP/package-$PRGNAM
|
||||
OUTPUT=${OUTPUT:-/tmp}
|
||||
|
||||
if [ "$ARCH" = "i586" ]; then
|
||||
SLKCFLAGS="-O2 -march=i586 -mtune=i686"
|
||||
LIBDIRSUFFIX=""
|
||||
elif [ "$ARCH" = "i686" ]; then
|
||||
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
|
||||
LIBDIRSUFFIX=""
|
||||
elif [ "$ARCH" = "x86_64" ]; then
|
||||
SLKCFLAGS="-O2 -fPIC"
|
||||
LIBDIRSUFFIX="64"
|
||||
else
|
||||
SLKCFLAGS="-O2"
|
||||
LIBDIRSUFFIX=""
|
||||
fi
|
||||
|
||||
set -e
|
||||
|
||||
rm -rf $PKG
|
||||
mkdir -p $TMP $PKG $OUTPUT
|
||||
cd $TMP
|
||||
rm -rf ${SRCNAM}_${SRCVERSION}
|
||||
tar xvf $CWD/${SRCNAM}_${SRCVERSION}.tar.gz
|
||||
cd ${SRCNAM}_${SRCVERSION}
|
||||
|
||||
echo -e "\nFLAGS FOR PACKAGES ENABLED:\n "$packages"\n"
|
||||
|
||||
echo -e "FLAGS FOR PYTHON:\n "$python
|
||||
|
||||
echo -e "\nFLAGS FOR MPI:\n "$mpi
|
||||
|
||||
if [ "$mesont" != "" ]; then
|
||||
cp -a $CWD/C_10_10.mesocnt ./potentials
|
||||
if [ "$molecule" = "" ]; then
|
||||
echo -e "\n\033[33mYou have enabled the package MESONT. Since this package requires also "
|
||||
echo -e "the package MOLECULE, the build of MOLECULE will be automatically enabled\033[0m\n"
|
||||
packages=$packages" -DPKG_MOLECULE=yes "
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$MP" = "" ]; then
|
||||
echo -e "\n\033[33m******************** WARNING ********************\n"
|
||||
echo " no API supporting MPI (mpich or openmpi) are "
|
||||
echo " installed on your system. This does not affect "
|
||||
echo " the build and installation of LAMMPS, but some "
|
||||
echo " packages cannot be enabled and other may work "
|
||||
echo " not optimally. "
|
||||
echo -e "\n*************************************************\n\033[0m"
|
||||
fi
|
||||
|
||||
# Prepare directories to move the extrafiles needed to build some packages
|
||||
mkdir -p cmake/build
|
||||
|
||||
if [ "$opencl_loader" = "yes" ]; then
|
||||
mkdir -p cmake/build/_deps
|
||||
cp -a $CWD/opencl-loader-2022.01.04.tar.gz cmake/build/_deps
|
||||
fi
|
||||
|
||||
if [ "$mdi" != "" ]; then
|
||||
mkdir -p cmake/build/mdi_build_ext/src/
|
||||
cp -a $CWD/MDI_Library-1.4.16.tar.gz cmake/build/mdi_build_ext/src/v1.4.16.tar.gz
|
||||
fi
|
||||
|
||||
if [ "$mlhdnnp" != "" ]; then
|
||||
mkdir -p cmake/build/n2p2_build-prefix/src/
|
||||
cp -a $CWD/n2p2-2.2.0.tar.gz cmake/build/n2p2_build-prefix/src/v2.2.0.tar.gz
|
||||
fi
|
||||
|
||||
if [ "$mlpace" != "" ]; then
|
||||
cp -a $CWD/lammps-user-pace-v.2023.01.3.fix.tar.gz cmake/build/libpace.tar.gz
|
||||
fi
|
||||
|
||||
if [ "$scafacos" != "" ]; then
|
||||
mkdir -p cmake/build/scafacos_build-prefix/src
|
||||
cp -a $CWD/scafacos-1.0.1.tar.gz cmake/build/scafacos_build-prefix/src
|
||||
fi
|
||||
|
||||
chown -R root:root .
|
||||
find -L . \
|
||||
\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
|
||||
-o -perm 511 \) -exec chmod 755 {} \; -o \
|
||||
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
|
||||
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
|
||||
|
||||
# The Source has not a CMakeLists.txt file in the root directory we
|
||||
# need to change in the cmake directory
|
||||
cd cmake
|
||||
cd build
|
||||
cmake \
|
||||
-DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \
|
||||
-DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \
|
||||
-DCMAKE_INSTALL_PREFIX=/usr \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
$mpi \
|
||||
$python \
|
||||
$packages \
|
||||
..
|
||||
make
|
||||
make install DESTDIR=$PKG
|
||||
cd ..
|
||||
|
||||
rm -f $PKG/{,usr/}lib${LIBDIRSUFFIX}/*.la
|
||||
|
||||
find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
|
||||
| cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
|
||||
|
||||
#Since the build installs man in /usr/share we move the directory in /usr
|
||||
mv -v $PKG/usr/share/man $PKG/usr
|
||||
find $PKG/usr/man -type f -exec gzip -9 {} \;
|
||||
for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done
|
||||
|
||||
#Since the build installs etc as subfolder of /usr (?), we move it in the root directory
|
||||
mv -v $PKG/usr/etc $PKG
|
||||
|
||||
cd $TMP/${SRCNAM}_${SRCVERSION}
|
||||
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
|
||||
cp -a LICENSE README $PKG/usr/doc/$PRGNAM-$VERSION
|
||||
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
|
||||
|
||||
mkdir -p $PKG/install
|
||||
cat $CWD/slack-desc > $PKG/install/slack-desc
|
||||
|
||||
cd $PKG
|
||||
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE
|
22
academic/lammps/lammps.info
Normal file
22
academic/lammps/lammps.info
Normal file
|
@ -0,0 +1,22 @@
|
|||
PRGNAM="lammps"
|
||||
VERSION="2023.08.02"
|
||||
HOMEPAGE="https://www.lammps.org"
|
||||
DOWNLOAD="https://github.com/lammps/lammps/archive/stable_2Aug2023/lammps-stable_2Aug2023.tar.gz \
|
||||
https://download.lammps.org/potentials/C_10_10.mesocnt \
|
||||
https://download.lammps.org/thirdparty/opencl-loader-2022.01.04.tar.gz \
|
||||
https://github.com/MolSSI-MDI/MDI_Library/archive/v1.4.16.tar.gz \
|
||||
https://github.com/CompPhysVienna/n2p2/archive/v2.2.0.tar.gz \
|
||||
https://github.com/ICAMS/lammps-user-pace/archive/v.2023.01.3.fix.tar.gz \
|
||||
https://github.com/scafacos/scafacos/releases/download/v1.0.1/scafacos-1.0.1.tar.gz"
|
||||
MD5SUM="276af48be230518d8a281387838d6efd \
|
||||
68b5ca26283968fd9889aa0a37f7b7fb \
|
||||
8d3a801e87a2c6653bf0e27707063914 \
|
||||
407db44e2d79447ab5c1233af1965f65 \
|
||||
a2d9ab7f676b3a74a324fc1eda0a911d \
|
||||
4f0b3b5b14456fe9a73b447de3765caa \
|
||||
bd46d74e3296bd8a444d731bb10c1738"
|
||||
DOWNLOAD_x86_64=""
|
||||
MD5SUM_x86_64=""
|
||||
REQUIRES="openmpi"
|
||||
MAINTAINER="Giancarlo Dessi"
|
||||
EMAIL="slack@giand.it"
|
19
academic/lammps/slack-desc
Normal file
19
academic/lammps/slack-desc
Normal file
|
@ -0,0 +1,19 @@
|
|||
# HOW TO EDIT THIS FILE:
|
||||
# The "handy ruler" below makes it easier to edit a package description.
|
||||
# Line up the first '|' above the ':' following the base package name, and
|
||||
# the '|' on the right side marks the last column you can put a character in.
|
||||
# You must make exactly 11 lines for the formatting to be correct. It's also
|
||||
# customary to leave one space after the ':' except on otherwise blank lines.
|
||||
|
||||
|-----handy-ruler------------------------------------------------------|
|
||||
lammps: lammps (LAMMPS Molecular Dynamics Simulator)
|
||||
lammps:
|
||||
lammps: LAMMPS stands for
|
||||
lammps: Large-scale Atomic/Molecular Massively Parallel Simulator.
|
||||
lammps: It was developed at Sandia National Laboratories (US Department of
|
||||
lammps: Energy) and is designed to run efficiently on parallel computers.
|
||||
lammps:
|
||||
lammps:
|
||||
lammps: Home page: https://www.lamps.org
|
||||
lammps:
|
||||
lammps:
|
Loading…
Reference in a new issue