diff options
Diffstat (limited to 'sci-physics')
-rw-r--r-- | sci-physics/lammps/Manifest | 2 | ||||
-rw-r--r-- | sci-physics/lammps/lammps-20240829.ebuild | 190 |
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 +} |