summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'sci-physics')
-rw-r--r--sci-physics/lammps/Manifest2
-rw-r--r--sci-physics/lammps/lammps-20240829.ebuild190
2 files changed, 192 insertions, 0 deletions
diff --git a/sci-physics/lammps/Manifest b/sci-physics/lammps/Manifest
index 4ef469752759..70e2b05b2ca1 100644
--- a/sci-physics/lammps/Manifest
+++ b/sci-physics/lammps/Manifest
@@ -2,3 +2,5 @@ DIST lammps-17Feb2022.tar.gz 170036241 BLAKE2B 74d370657bff17847dce0bbe082134721
DIST lammps-23Jun2022.tar.gz 181439760 BLAKE2B b8012417257527820a4f37dbd300d3f949e3768fc7ae669c49bc7ea0cdc30b28512cb3ee25d375394184bbf1371763da6c3556b2d600f060b754816c589197bf SHA512 e882cb8a83a90b17471cd5c79b2b724378a28642b82511c695a36c0d9a0feb63681b29171c5bfb0bcb218ea3a1a5e4f00fdb8e6ce5f0fc8aed1fa83680cd3a34
DIST lammps-28Mar2023.tar.gz 187946133 BLAKE2B 87f8ffaefd9a5b4cb7a286157d6c7808d899bf738b42a1e82af257fdafa2cf6ed2ce216d0534fb762882130efea9a5f2566ca5282fb7ef95f028d2839be59eaa SHA512 2999d8311ff83612a0da82e2453e8b25dcb2af56005382725b6fd5ed9e7f61e9ae506d04cc3c587ce75f1e2346e7f2ec05eada6351dad7abee1bc25161851682
DIST lammps-2Aug2023.tar.gz 193279161 BLAKE2B 15816514984a307055e6f42ca741b14a9cabe8839ce266086e9a286bf89a868b2d795846a0a191549013f8f2c403a590ec1231633bf4e161f82d3d83d9fa700e SHA512 5e915f61d29f73de9edca05f371a6ca4449564ab48dfb64c212a417a2200b1738e7f44145db44d794bb480116e8f57c658612d54a3c9f759eb9947d3de5d4c35
+DIST lammps-gtest-1.12.1.tar.gz 854944 BLAKE2B 7b121fb95bb19efec1387a83da2201a139197225f79f7649ceac04695ff06fc4148319ae928d79ced413a9cfd42e68b56bfda1ee6bfdbf07fdd22795e9974388 SHA512 a9104dc6c53747e36e7dd7bb93dfce51a558bd31b487a9ef08def095518e1296da140e0db263e0644d9055dbd903c0cb69380cb2322941dbfb04780ef247df9c
+DIST stable_29Aug2024.tar.gz 141582660 BLAKE2B a90233840ff2cb98dd28851137f84820bfa3618488e46f9f304aaa9c2425f40750771b15677ed07b3606eb78b50c8beb26c3933ff71c48c0c2911ca3743647d6 SHA512 c6755da36d78d1f8e13db4c1f473db2c15d062ed79b15e110031b6501388a67f47d62d71fe367a111f7dd6cb58c7d6e358eed7e69589e06f735039ee794f4618
diff --git a/sci-physics/lammps/lammps-20240829.ebuild b/sci-physics/lammps/lammps-20240829.ebuild
new file mode 100644
index 000000000000..7d4d92c21ff8
--- /dev/null
+++ b/sci-physics/lammps/lammps-20240829.ebuild
@@ -0,0 +1,190 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..12} )
+DISTUTILS_OPTIONAL=1
+DISTUTILS_USE_PEP517=setuptools
+CMAKE_MAKEFILE_GENERATOR=emake
+# Doc building insists on fetching mathjax
+# DOCS_BUILDER="doxygen"
+# DOCS_DEPEND="
+# media-gfx/graphviz
+# dev-libs/mathjax
+# "
+
+inherit cmake fortran-2 distutils-r1 # docs
+
+convert_month() {
+ local months=( "" Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec )
+ echo ${months[${1#0}]}
+}
+
+MY_PV="$((10#${PV:6:2}))$(convert_month ${PV:4:2})${PV:0:4}"
+MY_P="${PN}-stable_${MY_PV}"
+
+DESCRIPTION="Large-scale Atomic/Molecular Massively Parallel Simulator"
+HOMEPAGE="https://www.lammps.org"
+SRC_URI="
+ https://github.com/lammps/lammps/archive/refs/tags/stable_${MY_PV}.tar.gz
+ test? (
+ https://github.com/google/googletest/archive/release-1.12.1.tar.gz -> ${PN}-gtest-1.12.1.tar.gz
+ )
+"
+S="${WORKDIR}/${MY_P}/cmake"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="cuda examples extra gzip hip lammps-memalign mpi opencl openmp python test"
+# Requires write access to /dev/dri/renderD...
+RESTRICT="test"
+
+RDEPEND="
+ app-arch/gzip
+ media-libs/libpng:0
+ sys-libs/zlib
+ mpi? (
+ virtual/mpi
+ sci-libs/hdf5:=[mpi]
+ )
+ python? ( ${PYTHON_DEPS} )
+ sci-libs/voro++
+ virtual/blas
+ virtual/lapack
+ sci-libs/fftw:3.0=
+ sci-libs/netcdf:=
+ cuda? ( >=dev-util/nvidia-cuda-toolkit-4.2.9-r1:= )
+ opencl? ( virtual/opencl )
+ hip? (
+ dev-util/hip:=
+ sci-libs/hipCUB:=
+ )
+ dev-cpp/eigen:3
+ "
+ # Kokkos-3.5 not in tree atm
+ # kokkos? ( dev-cpp/kokkos-3.5.* )
+BDEPEND="${DISTUTILS_DEPS}"
+DEPEND="${RDEPEND}
+ test? (
+ dev-cpp/gtest
+ dev-libs/libyaml
+ )
+"
+
+REQUIRED_USE="
+ python? ( ${PYTHON_REQUIRED_USE} )
+ ?? ( cuda opencl hip )
+"
+
+src_prepare() {
+ cmake_src_prepare
+ if use python; then
+ pushd ../python || die
+ distutils-r1_src_prepare
+ popd || die
+ fi
+ if use test; then
+ mkdir "${BUILD_DIR}/_deps"
+ cp "${DISTDIR}/${PN}-gtest-1.12.1.tar.gz" "${BUILD_DIR}/_deps/release-1.12.1.tar.gz"
+ fi
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DCMAKE_INSTALL_SYSCONFDIR="${EPREFIX}/etc"
+ -DBUILD_SHARED_LIBS=ON
+ -DBUILD_MPI=$(usex mpi)
+ -DBUILD_DOC=OFF
+ #-DBUILD_DOC=$(usex doc)
+ -DENABLE_TESTING=$(usex test)
+ -DPKG_ASPHERE=ON
+ -DPKG_BODY=ON
+ -DPKG_CLASS2=ON
+ -DPKG_COLLOID=ON
+ -DPKG_COMPRESS=ON
+ -DPKG_CORESHELL=ON
+ -DPKG_DIPOLE=ON
+ -DPKG_EXTRA-COMPUTE=$(usex extra)
+ -DPKG_EXTRA-DUMP=$(usex extra)
+ -DPKG_EXTRA-FIX=$(usex extra)
+ -DPKG_EXTRA-MOLECULE=$(usex extra)
+ -DPKG_EXTRA-PAIR=$(usex extra)
+ -DPKG_GRANULAR=ON
+ -DPKG_KSPACE=ON
+ -DFFT=FFTW3
+ -DPKG_KOKKOS=OFF
+ #-DPKG_KOKKOS=$(usex kokkos)
+ #$(use kokkos && echo -DEXTERNAL_KOKKOS=ON)
+ -DPKG_MANYBODY=ON
+ -DPKG_MC=ON
+ -DPKG_MEAM=ON
+ -DPKG_MISC=ON
+ -DPKG_MOLECULE=ON
+ -DPKG_OPENMP=$(usex openmp)
+ -DPKG_PERI=ON
+ -DPKG_QEQ=ON
+ -DPKG_REPLICA=ON
+ -DPKG_RIGID=ON
+ -DPKG_SHOCK=ON
+ -DPKG_SRD=ON
+ -DPKG_PYTHON=$(usex python)
+ -DPKG_MPIIO=$(usex mpi)
+ -DPKG_VORONOI=ON
+ )
+ if use cuda || use opencl || use hip; then
+ mycmakeargs+=( -DPKG_GPU=ON )
+ use cuda && mycmakeargs+=( -DGPU_API=cuda )
+ use opencl && mycmakeargs+=( -DGPU_API=opencl -DUSE_STATIC_OPENCL_LOADER=OFF )
+ use hip && mycmakeargs+=( -DGPU_API=hip -DHIP_PATH="${EPREFIX}/usr" )
+ else
+ mycmakeargs+=( -DPKG_GPU=OFF )
+ fi
+ cmake_src_configure
+ if use python; then
+ pushd ../python || die
+ distutils-r1_src_configure
+ popd || die
+ fi
+}
+
+src_compile() {
+ cmake_src_compile
+ if use python; then
+ pushd ../python || die
+ distutils-r1_src_compile
+ popd || die
+ fi
+}
+
+src_test() {
+ cmake_src_test
+ if use python; then
+ pushd ../python || die
+ distutils-r1_src_test
+ popd || die
+ fi
+}
+
+src_install() {
+ cmake_src_install
+
+ if use opencl; then
+ dobin "${BUILD_DIR}/ocl_get_devices"
+ fi
+
+ if use python; then
+ pushd ../python || die
+ distutils-r1_src_install
+ popd || die
+ fi
+
+ if use examples; then
+ for d in examples bench; do
+ local LAMMPS_EXAMPLES="/usr/share/${PN}/${d}"
+ insinto "${LAMMPS_EXAMPLES}"
+ doins -r "${S}"/../${d}/*
+ done
+ fi
+}