py-fluidfft and co: add new packages (#46236)

* Add new packages: py-fluidfft and co

* py-fluidfft: add few contrains (version dependencies)
This commit is contained in:
Pierre Augier 2024-09-11 17:45:56 +02:00 committed by GitHub
parent 5fa8890bd3
commit 5beed521bd
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
7 changed files with 214 additions and 0 deletions

View File

@ -0,0 +1,20 @@
# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import *
class PyFluidfftBuilder(PythonPackage):
"""Fluidfft plugin dependencies"""
pypi = "fluidfft-builder/fluidfft_builder-0.0.2.tar.gz"
maintainers("paugier")
license("MIT", checked_by="paugier")
version("0.0.2", sha256="c0af9ceca27ae3a00ccf2f160703be9e394d8b886b8a02653b6c0a12a4f54a90")
depends_on("python@3.9:", type=("build", "run"))
depends_on("py-flit-core@3.2:3", type="build")

View File

@ -0,0 +1,30 @@
# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import *
class PyFluidfftFftw(PythonPackage):
"""Fluidfft plugin using fftw."""
pypi = "fluidfft_fftw/fluidfft_fftw-0.0.1.tar.gz"
maintainers("paugier")
license("CECILL-B", checked_by="paugier")
version("0.0.1", sha256="59967846e1d976508db30ff65987e9c1e6c024ec9c095849608ee8913b96d3ff")
with default_args(type=("build", "run")):
depends_on("python@3.9:")
with default_args(type="link"):
depends_on("fftw")
with default_args(type="build"):
depends_on("py-meson-python")
depends_on("py-transonic@0.6.4:")
depends_on("py-fluidfft-builder")
depends_on("py-fluidfft", type="run")

View File

@ -0,0 +1,31 @@
# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import *
class PyFluidfftFftwmpi(PythonPackage):
"""Fluidfft plugin using fftwmpi."""
pypi = "fluidfft-fftwmpi/fluidfft_fftwmpi-0.0.1.tar.gz"
maintainers("paugier")
license("CECILL-B", checked_by="paugier")
version("0.0.1", sha256="af3c606852e991c2c1b3ea4f7558c69ab9138b713a7166a6eedf48ef1af660d3")
with default_args(type=("build", "run")):
extends("python@3.9:")
depends_on("py-mpi4py")
with default_args(type="link"):
depends_on("fftw")
with default_args(type="build"):
depends_on("py-meson-python")
depends_on("py-transonic@0.6.4:")
depends_on("py-fluidfft-builder")
depends_on("py-fluidfft", type="run")

View File

@ -0,0 +1,31 @@
# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import *
class PyFluidfftMpiWithFftw(PythonPackage):
"""Fluidfft MPI plugin using fftw."""
pypi = "fluidfft-mpi_with_fftw/fluidfft_mpi_with_fftw-0.0.1.tar.gz"
maintainers("paugier")
license("CECILL-B", checked_by="paugier")
version("0.0.1", sha256="ab8c1867e745715892f8d30c9409e9509467a610f5a702ac7b5cfa003787f6ce")
with default_args(type=("build", "run")):
depends_on("python@3.9:")
depends_on("py-mpi4py")
with default_args(type="link"):
depends_on("fftw")
with default_args(type="build"):
depends_on("py-meson-python")
depends_on("py-transonic@0.6.4:")
depends_on("py-fluidfft-builder")
depends_on("py-fluidfft", type="run")

View File

@ -0,0 +1,32 @@
# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import *
class PyFluidfftP3dfft(PythonPackage):
"""Fluidfft MPI plugin using p3dfft."""
pypi = "fluidfft-p3dfft/fluidfft_p3dfft-0.0.1.tar.gz"
maintainers("paugier")
license("CECILL-B", checked_by="paugier")
version("0.0.1", sha256="1c291236a43045b9f8b9725e568277c5f405d2e2d9f811ba1bc9c5e1d9f2f827")
with default_args(type=("build", "run")):
depends_on("python@3.9:")
depends_on("py-mpi4py")
with default_args(type="link"):
depends_on("p3dfft3")
depends_on("fftw")
with default_args(type="build"):
depends_on("py-meson-python")
depends_on("py-transonic@0.6.4:")
depends_on("py-fluidfft-builder")
depends_on("py-fluidfft", type="run")

View File

@ -0,0 +1,32 @@
# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import *
class PyFluidfftPfft(PythonPackage):
"""Fluidfft MPI plugin using pfft."""
pypi = "fluidfft-pfft/fluidfft_pfft-0.0.1.tar.gz"
maintainers("paugier")
license("CECILL-B", checked_by="paugier")
version("0.0.1", sha256="ef8255bd78c9d2dbfb11715542b221d457eedfa0a5b0bbdd1b95e8fbe64043c5")
with default_args(type=("build", "run")):
depends_on("python@3.9:")
depends_on("py-mpi4py")
with default_args(type="link"):
depends_on("fftw")
depends_on("pfft")
with default_args(type="build"):
depends_on("py-meson-python")
depends_on("py-transonic@0.6.4:")
depends_on("py-fluidfft-builder")
depends_on("py-fluidfft", type="run")

View File

@ -0,0 +1,38 @@
# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import *
class PyFluidfft(PythonPackage):
"""Efficient and easy Fast Fourier Transform (FFT) for Python."""
pypi = "fluidfft/fluidfft-0.4.2.tar.gz"
maintainers("paugier")
license("CECILL-B", checked_by="paugier")
version("0.4.2", sha256="5e35f1fb647da2fa65c116bb0d598fc9cb975cd95c41022644c27dc726c36073")
version("0.4.1", sha256="b17e64c7b2be47c61d6ac7b713e0e8992cf900d2367381288c93a56090e6c0c1")
variant("native", default=False, description="Compile with -march=native and -Ofast.")
with default_args(type=("build", "run")):
depends_on("python@3.9:")
depends_on("py-transonic@0.6.4:")
with default_args(type="build"):
depends_on("py-meson-python")
depends_on("py-pythran@0.9.7:")
with default_args(type="run"):
depends_on("py-fluiddyn@0.2.3:")
depends_on("py-pyfftw@0.10.4:")
depends_on("py-importlib_metadata", when="^python@:3.10")
def config_settings(self, spec, prefix):
settings = {"setup-args": {"-Dnative": spec.variants["native"].value}}
return settings