Name: lammps Version: 20180822 %global uversion %(v=%{version}; \ months=( "" Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec ); \ d=${v:6:2}; \ m=${v:4:2}; y=${v:0:4}; echo stable_${d#0}${months[${m#0}]}${y}) Release: 3%{?dist} Summary: Molecular Dynamics Simulator License: GPLv2 Url: https://lammps.sandia.gov Source0: https://github.com/lammps/lammps/archive/%{uversion}.tar.gz#/%{name}-%{uversion}.tar.gz BuildRequires: fftw-devel BuildRequires: gcc-c++ BuildRequires: gcc-gfortran BuildRequires: libpng-devel BuildRequires: libjpeg-devel BuildRequires: openmpi-devel BuildRequires: mpich-devel BuildRequires: python%{python3_pkgversion}-devel BuildRequires: fftw3-devel BuildRequires: zlib-devel BuildRequires: gsl-devel BuildRequires: voro++-devel BuildRequires: openblas-devel %if 0%{?rhel} BuildRequires: cmake3 >= 3.1 %else BuildRequires: cmake >= 3.1 %global cmake3 %{cmake} %endif BuildRequires: ocl-icd-devel BuildRequires: opencl-headers Requires: %{name}-data %global with_opencl 1 # don't build opencl on RHEL, except for x86_64 %if 0%{?rhel} %ifnarch x86_64 %global with_opencl 0 %endif %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 openmpi Summary: LAMMPS Open MPI binaries and libraries Requires: openmpi Requires: %{name}-data %description openmpi 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 LAMMPS Open MPI binaries and libraries %package mpich Summary: LAMMPS MPICH binaries and libraries Requires: mpich Requires: %{name}-data %description mpich 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 LAMMPS MPICH binaries and libraries %package -n python%{python3_pkgversion}-%{name} Summary: LAMMPS Python interface Requires: python%{python3_pkgversion} Requires: %{name}%{?_isa} = %{version}-%{release} %{?python_provide:%python_provide python%{python3_pkgversion}-%{name}} %description -n python%{python3_pkgversion}-%{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 package contains LAMMPS Python interface %package headers Summary: Development headers for LAMMPS %description headers 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 for LAMMPS. %package devel Summary: Development libraries for LAMMPS Requires: %{name}%{?_isa} = %{version}-%{release} Requires: %{name}-headers%{?_isa} = %{version}-%{release} %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 libraries for serial LAMMPS. %package mpich-devel Summary: Development libraries for MPICH LAMMPS Requires: %{name}-mpich%{?_isa} = %{version}-%{release} Requires: %{name}-headers%{?_isa} = %{version}-%{release} %description mpich-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 MPICH LAMMPS. %package openmpi-devel Summary: Development libraries for Open MPI LAMMPS Requires: %{name}-openmpi%{?_isa} = %{version}-%{release} Requires: %{name}-headers%{?_isa} = %{version}-%{release} %description openmpi-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 libraries for Open MPI LAMMPS. %package data Summary: Data files for LAMMPS 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 package contains data files for LAMMPS. %prep %setup -q -n %{name}-%{uversion} %build #python wrapper isn't mpi specific %global defopts \\\ -C ../cmake/presets/std_nolib.cmake \\\ -DBUILD_LIB=ON \\\ -DLIB_SUFFIX= \\\ -DPKG_PYTHON=ON \\\ -DPKG_VORONOI=ON \\\ -DPKG_USER-ATC=ON \\\ -DPKG_USER-OMP=ON \\\ -DENABLE_TESTING=ON \\\ -DPYTHON_INSTDIR=%{python3_sitelib} \\\ -DCMAKE_INSTALL_SYSCONFDIR=/etc \\\ -DPKG_GPU=%{with_opencl} -DGPU_API=OpenCL \\\ -DFFT=FFTW3 mkdir -p {serial,mpich,openmpi} cd openmpi %{_openmpi_load} %{cmake3} \ %{defopts} \ -DBUILD_MPI=ON \ -DPKG_MPIIO=ON \ -DCMAKE_INSTALL_BINDIR=$MPI_BIN \ -DCMAKE_INSTALL_LIBDIR=$MPI_LIB \ -DCMAKE_EXE_LINKER_FLAGS="%{__global_ldflags} -Wl,-rpath -Wl,${MPI_LIB} -Wl,--enable-new-dtags" \ -DCMAKE_SHARED_LINKER_FLAGS="%{__global_ldflags} -Wl,-rpath -Wl,${MPI_LIB} -Wl,--enable-new-dtags" \ ../cmake %make_build %{_openmpi_unload} cd .. cd mpich %{_mpich_load} %{cmake3} \ %{defopts} \ -DBUILD_MPI=ON \ -DPKG_MPIIO=ON \ -DCMAKE_INSTALL_BINDIR=$MPI_BIN \ -DCMAKE_INSTALL_LIBDIR=$MPI_LIB \ -DCMAKE_EXE_LINKER_FLAGS="%{__global_ldflags} -Wl,-rpath -Wl,${MPI_LIB} -Wl,--enable-new-dtags" \ -DCMAKE_SHARED_LINKER_FLAGS="%{__global_ldflags} -Wl,-rpath -Wl,${MPI_LIB} -Wl,--enable-new-dtags" \ ../cmake %make_build %{_mpich_unload} cd .. cd serial %{cmake3} \ %{defopts} \ -DBUILD_MPI=OFF \ ../cmake %make_build cd .. %install %make_install -C serial %make_install -C mpich %make_install -C openmpi %check make -C serial %{?_smp_mflags} test %{_mpich_load} make -C mpich %{?_smp_mflags} test %{_mpich_unload} %{_openmpi_load} make -C openmpi %{?_smp_mflags} test %{_openmpi_unload} %ldconfig_scriptlets %files %doc README %license LICENSE %{_bindir}/lmp %{_libdir}/liblammps.so.* %files devel %{_libdir}/liblammps.so %{_libdir}/pkgconfig/liblammps.pc %files openmpi-devel %{_libdir}/openmpi*/lib/liblammps.so %{_libdir}/openmpi*/lib/pkgconfig/liblammps.pc %files mpich-devel %{_libdir}/mpich*/lib/liblammps.so %{_libdir}/mpich*/lib/pkgconfig/liblammps.pc %files -n python%{python3_pkgversion}-%{name} %{python3_sitelib}/%{name}.py* %{python3_sitelib}/__pycache__/%{name}.* %files headers %license LICENSE %{_includedir}/%{name}/ %files openmpi %license LICENSE %{_libdir}/openmpi*/bin/* %{_libdir}/openmpi*/lib/liblammps.so.* %files mpich %license LICENSE %{_libdir}/mpich*/bin/* %{_libdir}/mpich*/lib/liblammps.so.* %files data %license LICENSE %{_datadir}/%{name} %config %{_sysconfdir}/profile.d/lammps.* %changelog * Mon Nov 26 2018 Orion Poplawski - 20180822-3 - Rebuild for openmpi 4.0 * Wed Aug 24 2018 Christoph Junghans - 20180822-2 - Enable some more packages - Use Openblas instead of internal lapack * Wed Aug 22 2018 Christoph Junghans - 20180822-1 - Bump version to 20180822 - Dropped 979.patch got merged upstream * Fri Jul 13 2018 Fedora Release Engineering - 20180316-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild * Mon Jul 02 2018 Miro Hrončok - 20180316-3 - Rebuilt for Python 3.7 * Tue Jun 19 2018 Miro Hrončok - 20180316-2 - Rebuilt for Python 3.7 * Wed Mar 21 2018 Christoph Junghans - 20180316-1 - Bump version to 20180316 (bug #1558768) and swtich to stable - Dropped 835.patch got merged upstream * Thu Mar 08 2018 Christoph Junghans - 20180308-1 - Bump version to 20180308 - Added 835.patch * Mon Mar 05 2018 Christoph Junghans - 201802222-1 - Bump version to 20180222 * Wed Feb 07 2018 Fedora Release Engineering - 20180117-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild * Wed Jan 31 2018 Christoph Junghans - 20180117-2 - Rebuild for gfortran-8 * Fri Jan 26 2018 Christoph Junghans - 20180117-1 - Bump version to 20180117 * Fri Nov 03 2017 Christoph Junghans - 20171023-1 - Bump version to 20171023 - Enable OpenCL package * Sun Sep 10 2017 Christoph Junghans - 20170901-1 - Bump version to 20170901, drop 573.patch merged upstream * Thu Aug 24 2017 Christoph Junghans - 20170811-6 - Enable voronoid package * Thu Aug 17 2017 Christoph Junghans - 20170811-5 - Comments from the review bug #1474958 - Drop Buildrequires mpi-devel for lammps-openmpi and lammps-mpich - Move Requires: mpi to lammps-openmpi and lammps-mpich - Install LICENSE for lammps-openmpi and lammps-mpich * Wed Aug 16 2017 Christoph Junghans - 20170811-4 - Set cmake linker flags to incl. $MPI_LIB as RUNPATH * Tue Aug 15 2017 Christoph Junghans - 20170811-3 - Added python provide - Added mpi deps * Tue Aug 15 2017 Christoph Junghans - 20170811-2 - Fix python3 dep * Mon Aug 14 2017 Christoph Junghans - 20170811-1 - Bump version to 20170811, drop 594.patch merged upstream - Improvment from reveiw bug #1474958 - split devel package into mpi*-devel and header - move python interface into own package and to python3 - support for epel7 * Fri Jul 21 2017 Christoph Junghans - 20170706-1 - Initial import