1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
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
|