Subject: [PATCH] gnu: Add python-pyamg.

From: Felix Gruber <[email-masked]>
Date: Sat, 4 Nov 2023 15:05:56 +0000

* gnu/packages/python-science.scm (python-pyamg): New variable.

Change-Id: Ibf39fecd14d4e6fd72078b217737e5e5cbbf2321
---
 gnu/packages/python-science.scm | 36 +++++++++++++++++++++++++++++++++
 1 file changed, 36 insertions(+)

diff --git a/gnu/packages/python-science.scm b/gnu/packages/python-science.scm
index 4063797a30..1c2edda118 100644
--- a/gnu/packages/python-science.scm
+++ b/gnu/packages/python-science.scm
@@ -387,6 +387,42 @@ (define-public python-trimesh
 library.")
     (license license:expat)))
 
+(define-public python-pyamg
+  (package
+    (name "python-pyamg")
+    (version "5.0.0")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "pyamg" version))
+              (sha256
+               (base32
+                "0bm0cbqcj5zgs4k7djs5ga98pb95raxxdd674g744hv1iwi6gfga"))))
+    (build-system pyproject-build-system)
+    (propagated-inputs (list pybind11 python-numpy python-scipy))
+    (native-inputs (list python-setuptools-scm python-pytest))
+    (arguments
+     (list
+      #:test-flags
+      ;; Test installed package in order to find C++ modules.
+      #~(list "--pyargs" "pyamg.tests")))
+    (home-page "https://github.com/pyamg/pyamg")
+    (synopsis "Algebraic Multigrid Solvers in Python")
+    (description "PyAMG is a Python library of Algebraic Multigrid
+(AMG) solvers.
+
+PyAMG features implementations of:
+@itemize
+@item Ruge-Stuben (RS) or Classical AMG
+@item AMG based on Smoothed Aggregation (SA)
+@item Adaptive Smoothed Aggregation (αSA)
+@item Compatible Relaxation (CR)
+@item Krylov methods such as CG, GMRES, FGMRES, BiCGStab, MINRES, etc.
+@end itemize
+PyAMG is primarily written in Python with supporting C++ code for
+performance critical operations.
+")
+    (license license:expat)))
+
 (define-public python-tspex
   (package
     (name "python-tspex")

base-commit: 9dcd8802f5bc472579f23a38dcf437f8a9ac976c
-- 
2.42.0