OBS-URL: https://build.opensuse.org/package/show/science/lammps?expand=0&rev=86
297 lines
9.1 KiB
RPMSpec
297 lines
9.1 KiB
RPMSpec
#
|
|
# spec file for package lammps
|
|
#
|
|
# Copyright (c) 2025 SUSE LLC
|
|
# Copyright (c) 2017-2020 Christoph Junghans
|
|
#
|
|
# All modifications and additions to the file contributed by third parties
|
|
# remain the property of their copyright owners, unless otherwise agreed
|
|
# upon. The license for this file, and modifications and additions to the
|
|
# file, is the same license as for the pristine package itself (unless the
|
|
# license for the pristine package is not an Open Source License, in which
|
|
# case the license is the MIT License). An "Open Source License" is a
|
|
# license that conforms to the Open Source Definition (Version 1.9)
|
|
# published by the Open Source Initiative.
|
|
|
|
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
|
#
|
|
|
|
|
|
# kokkos >= 4.3.01 required
|
|
%bcond_with kokkos
|
|
%bcond_without test
|
|
%ifarch %ix86
|
|
# Missing openmpi-macros-devel on i586
|
|
%bcond_with mpi
|
|
%else
|
|
%bcond_without mpi
|
|
%endif
|
|
%define shlib lib%{name}0
|
|
%define pythons python3
|
|
%define __builder ninja
|
|
%define uversion stable_29Aug2024_update2
|
|
Name: lammps
|
|
Version: 20240829.02
|
|
Release: 0
|
|
Summary: Molecular Dynamics Simulator
|
|
License: GPL-2.0-only AND GPL-3.0-or-later
|
|
Group: Productivity/Scientific/Chemistry
|
|
URL: https://lammps.sandia.gov
|
|
Source0: https://github.com/lammps/lammps/archive/refs/tags/%{uversion}.tar.gz#/%{name}-%{uversion}.tar.gz
|
|
# PATCH-FEATURE-OPENSUSE lammps-allow-system-gtest.patch badshah400@gmail.com -- Look for system installed gtest/gmock before trying to download
|
|
Patch0: lammps-allow-system-gtest.patch
|
|
BuildRequires: clang
|
|
BuildRequires: cmake
|
|
BuildRequires: fdupes
|
|
BuildRequires: gcc-c++
|
|
BuildRequires: gcc-fortran
|
|
BuildRequires: gzip
|
|
BuildRequires: kim-api-devel >= 2.1
|
|
BuildRequires: python3-build
|
|
BuildRequires: python3-pip
|
|
BuildRequires: python3-setuptools
|
|
BuildRequires: python3-wheel
|
|
BuildRequires: voro++-devel
|
|
BuildRequires: pkgconfig(OpenCL)
|
|
BuildRequires: pkgconfig(OpenCL-CLHPP)
|
|
BuildRequires: pkgconfig(OpenCL-Headers)
|
|
BuildRequires: pkgconfig(clBLAS)
|
|
BuildRequires: pkgconfig(fftw3)
|
|
BuildRequires: pkgconfig(gsl)
|
|
BuildRequires: pkgconfig(lapack)
|
|
BuildRequires: pkgconfig(libjpeg)
|
|
BuildRequires: pkgconfig(libpng)
|
|
BuildRequires: pkgconfig(libzstd)
|
|
BuildRequires: pkgconfig(ocl-icd)
|
|
BuildRequires: pkgconfig(python3)
|
|
BuildRequires: pkgconfig(readline)
|
|
BuildRequires: pkgconfig(tbb)
|
|
BuildRequires: pkgconfig(yaml-0.1)
|
|
BuildRequires: pkgconfig(zlib)
|
|
Requires: %{name}-data
|
|
%if "%{?__builder}" == "ninja"
|
|
BuildRequires: ninja
|
|
%endif
|
|
%if %{with kokkos}
|
|
BuildRequires: kokkos-devel >= 3.2
|
|
%endif
|
|
%if %{with mpi}
|
|
BuildRequires: openmpi-macros-devel
|
|
%endif
|
|
%if %{with test}
|
|
BuildRequires: kim-api-examples
|
|
BuildRequires: valgrind
|
|
BuildRequires: pkgconfig(gmock)
|
|
BuildRequires: pkgconfig(gmock_main)
|
|
BuildRequires: pkgconfig(gtest)
|
|
BuildRequires: pkgconfig(gtest_main)
|
|
%endif
|
|
|
|
%description
|
|
LAMMPS is a classical molecular dynamics code, and an acronym for Large-scale
|
|
Atomic/Molecular Massively Parallel Simulator.
|
|
|
|
LAMMPS has potentials for soft materials (biomolecules, polymers) and
|
|
solid-state materials (metals, semiconductors) and coarse-grained or
|
|
mesoscopic systems. It can be used to model atoms or, more generically, as a
|
|
parallel particle simulator at the atomic, meso, or continuum scale.
|
|
|
|
LAMMPS runs on single processors or in parallel using message-passing
|
|
techniques and a spatial-decomposition of the simulation domain. The code is
|
|
designed to be easy to modify or extend with new functionality.
|
|
|
|
%package -n %{shlib}
|
|
Summary: A molecular dynamics simulator library
|
|
Group: System/Libraries
|
|
|
|
%description -n liblammps0
|
|
LAMMPS is a classical molecular dynamics code, and an acronym for Large-scale
|
|
Atomic/Molecular Massively Parallel Simulator.
|
|
|
|
LAMMPS has potentials for soft materials (biomolecules, polymers) and
|
|
solid-state materials (metals, semiconductors) and coarse-grained or
|
|
mesoscopic systems. It can be used to model atoms or, more generically, as a
|
|
parallel particle simulator at the atomic, meso, or continuum scale.
|
|
|
|
LAMMPS runs on single processors or in parallel using message-passing
|
|
techniques and a spatial-decomposition of the simulation domain. The code is
|
|
designed to be easy to modify or extend with new functionality.
|
|
|
|
This package contains the library of LAMMPS package.
|
|
|
|
%package devel
|
|
Summary: Development headers and libraries for LAMMPS
|
|
Group: Development/Libraries/C and C++
|
|
Requires: %{name} = %{version}
|
|
Requires: %{shlib} = %{version}
|
|
|
|
%description devel
|
|
LAMMPS is a classical molecular dynamics code, and an acronym for Large-scale
|
|
Atomic/Molecular Massively Parallel Simulator.
|
|
|
|
LAMMPS has potentials for soft materials (biomolecules, polymers) and
|
|
solid-state materials (metals, semiconductors) and coarse-grained or
|
|
mesoscopic systems. It can be used to model atoms or, more generically, as a
|
|
parallel particle simulator at the atomic, meso, or continuum scale.
|
|
|
|
LAMMPS runs on single processors or in parallel using message-passing
|
|
techniques and a spatial-decomposition of the simulation domain. The code is
|
|
designed to be easy to modify or extend with new functionality.
|
|
|
|
This package contains development headers and libraries for LAMMPS.
|
|
|
|
%package -n %{pythons}-%{name}
|
|
Summary: LAMMPS python module
|
|
Group: Development/Languages/Python
|
|
Requires: %{shlib} = %{version}
|
|
BuildArch: noarch
|
|
# File conflict, old package contained python3 module
|
|
Conflicts: python-%{name} <= %{version}
|
|
Provides: python-%{name}:%{python3_sitearch}/%{name}.py
|
|
|
|
%description -n %{pythons}-%{name}
|
|
LAMMPS is a classical molecular dynamics code, and an acronym for Large-scale
|
|
Atomic/Molecular Massively Parallel Simulator.
|
|
|
|
LAMMPS has potentials for soft materials (biomolecules, polymers) and
|
|
solid-state materials (metals, semiconductors) and coarse-grained or
|
|
mesoscopic systems. It can be used to model atoms or, more generically, as a
|
|
parallel particle simulator at the atomic, meso, or continuum scale.
|
|
|
|
LAMMPS runs on single processors or in parallel using message-passing
|
|
techniques and a spatial-decomposition of the simulation domain. The code is
|
|
designed to be easy to modify or extend with new functionality.
|
|
|
|
This subpackage contains LAMMPS's Python module.
|
|
|
|
%package data
|
|
Summary: LAMMPS data
|
|
Group: Productivity/Scientific/Chemistry
|
|
BuildArch: noarch
|
|
|
|
%description data
|
|
LAMMPS is a classical molecular dynamics code, and an acronym for Large-scale
|
|
Atomic/Molecular Massively Parallel Simulator.
|
|
|
|
LAMMPS has potentials for soft materials (biomolecules, polymers) and
|
|
solid-state materials (metals, semiconductors) and coarse-grained or
|
|
mesoscopic systems. It can be used to model atoms or, more generically, as a
|
|
parallel particle simulator at the atomic, meso, or continuum scale.
|
|
|
|
LAMMPS runs on single processors or in parallel using message-passing
|
|
techniques and a spatial-decomposition of the simulation domain. The code is
|
|
designed to be easy to modify or extend with new functionality.
|
|
|
|
This subpackage contains LAMMPS's potential files
|
|
|
|
%prep
|
|
%autosetup -p1 -n %{name}-%{uversion}
|
|
|
|
%build
|
|
%if %{with mpi}
|
|
%setup_openmpi
|
|
%endif
|
|
|
|
pushd cmake
|
|
%cmake \
|
|
-DCMAKE_INSTALL_SYSCONFDIR=%{_sysconfdir} \
|
|
-DCMAKE_TUNE_FLAGS='%{?tune_flags}' \
|
|
-DBUILD_TOOLS=ON \
|
|
-DBUILD_LAMMPS_SHELL=$(pkg-config readline && echo ON) \
|
|
-DBUILD_MPI=%{?with_mpi:ON}%{!?with_mpi:OFF} \
|
|
-DBUILD_OMP=ON \
|
|
-DDOWNLOAD_POTENTIALS=OFF \
|
|
-DENABLE_TESTING:BOOL=%{?with_test:ON}%{!?with_test:OFF} \
|
|
-DEXTERNAL_GTEST:BOOL=ON \
|
|
-DFFT=FFTW3 \
|
|
-DGPU_API=OpenCL \
|
|
-DPKG_COMPRESS=ON \
|
|
-DPKG_EXTRA-MOLECULE=ON \
|
|
-DPKG_GPU=ON \
|
|
-DPKG_KIM=ON \
|
|
-DPKG_KSPACE=OFF \
|
|
-DPKG_LEPTON=ON \
|
|
-DPKG_MANYBODY=ON \
|
|
-DPKG_MOLECULE=ON \
|
|
-DPKG_PHONON=OFF \
|
|
-DPKG_PYTHON=ON \
|
|
-DPKG_VORONOI=ON \
|
|
-DPYTHON_EXECUTABLE=%{_bindir}/python%{python3_version} \
|
|
-DUSE_STATIC_OPENCL_LOADER=OFF \
|
|
-DUSE_SPGLIB:BOOL=OFF \
|
|
%{?with_kokkos:-DPKG_KOKKOS=ON -DEXTERNAL_KOKKOS=ON} \
|
|
%{nil}
|
|
%cmake_build
|
|
popd
|
|
cd python
|
|
%pyproject_wheel
|
|
|
|
%install
|
|
pushd cmake
|
|
%cmake_install
|
|
popd
|
|
|
|
pushd python
|
|
%pyproject_install
|
|
popd
|
|
|
|
%fdupes %{buildroot}%{_datadir}/%{name}/
|
|
%fdupes %{buildroot}%{python3_sitelib}/%{name}/
|
|
|
|
%if %{with test}
|
|
%check
|
|
%if %{with mpi}
|
|
%setup_openmpi
|
|
%endif
|
|
|
|
pushd cmake
|
|
# Do not cause failing tests on non-x86_64 archs to abort builds
|
|
# as these are due to minor numerical tolerance differences which
|
|
# upstream does not intend to fix. See, for instance,
|
|
# * https://github.com/lammps/lammps/issues/2383
|
|
# * https://github.com/lammps/lammps/issues/2978
|
|
%ifnarch x86_64
|
|
%ctest || true
|
|
%else
|
|
%ctest
|
|
%endif
|
|
popd
|
|
|
|
%endif
|
|
|
|
%ldconfig_scriptlets -n %{shlib}
|
|
|
|
%files
|
|
%doc README
|
|
%license LICENSE
|
|
%{_bindir}/l{mp,ammps}*
|
|
%{_mandir}/man1/lmp.1%{?ext_man}
|
|
%{_bindir}/msi2lmp
|
|
%{_mandir}/man1/msi2lmp.1%{?ext_man}
|
|
%{_bindir}/binary2txt
|
|
%{_bindir}/chain.x
|
|
%{_bindir}/micelle2d.x
|
|
%{_bindir}/phana
|
|
%{_bindir}/stl_bin2txt
|
|
|
|
%files -n %{shlib}
|
|
%{_libdir}/liblammps.so.*
|
|
|
|
%files devel
|
|
%license LICENSE
|
|
%{_includedir}/%{name}
|
|
%{_libdir}/liblammps.so
|
|
%{_libdir}/pkgconfig/liblammps.pc
|
|
%{_libdir}/cmake/LAMMPS
|
|
|
|
%files data
|
|
%license LICENSE
|
|
%{_datadir}/%{name}
|
|
%config %{_sysconfdir}/profile.d/lammps.*
|
|
|
|
%files -n %{pythons}-%{name}
|
|
%{python3_sitelib}/%{name}/
|
|
%{python3_sitelib}/%{name}-*.*-info
|
|
|
|
%changelog
|