slackbuilds_ponce/academic/lammps/README.SBo
Giancarlo Dessi 7c78ee4234
academic/lammps: Updated for version 2023.08.02_update3.
Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
2024-04-16 14:09:55 +07:00

211 lines
10 KiB
Text

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 ; ; scafacos
SHOCK ; SHOCK ; ;
SMTBQ ; SMTBQ ; ;
SPH ; SPH ; ;
SPIN ; SPIN ; ;
SRD ; SRD ; ;
TALLY ; TALLY ; ;
UEF ; UEF ; ;
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 be 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
- VORONOI: since the required dependency available in this repository
can be build as static library, this package is not compatible
when lammps is built enabling shared libraries, so support to
it is disabled
- 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 enhances 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