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