diff options
Diffstat (limited to 'gnu/packages/maths.scm')
-rw-r--r-- | gnu/packages/maths.scm | 92 |
1 files changed, 61 insertions, 31 deletions
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index d72f884a8f..9feb54d87d 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -3356,7 +3356,7 @@ access to BLIS implementations via traditional BLAS routine calls.") ;; no configure script (modify-phases %standard-phases (delete 'configure)) #:tests? #f)) ;the tests are part of the default target - (home-page "http://openlibm.org/") + (home-page "https://openlibm.org/") (synopsis "Portable C mathematical library (libm)") (description "OpenLibm is an effort to have a high quality, portable, standalone C @@ -4591,13 +4591,10 @@ linear algebra primitives specifically targeting graph analytics.") (modify-phases %standard-phases (add-after 'build 'build-tests (lambda* (#:key make-flags #:allow-other-keys) - (apply invoke "make" "build_tests" make-flags))) - (add-before 'check 'mpi-setup - ,%openmpi-setup)))) + (apply invoke "make" "build_tests" make-flags)))))) (inputs `(("gmp" ,gmp) ("metis" ,metis) - ("openmpi" ,openmpi) ("openblas" ,openblas) ("python" ,python) ("superlu" ,superlu))) @@ -4635,7 +4632,6 @@ Differences} (FD).") (apply invoke "make" "build_tests" make-flags)))))) (inputs `(("dune-common" ,dune-common) - ("openmpi" ,openmpi) ;; Optional ("openblas" ,openblas) ("gmp" ,gmp) @@ -4675,8 +4671,7 @@ This package contains the basic DUNE geometry classes.") (lambda* (#:key make-flags #:allow-other-keys) (apply invoke "make" "build_tests" make-flags)))))) (inputs - `(("dune-common" ,dune-common) - ("openmpi" ,openmpi))) + `(("dune-common" ,dune-common))) (native-inputs `(("gfortran" ,gfortran) ("pkg-config" ,pkg-config))) @@ -4709,16 +4704,13 @@ This package contains the DUNE UG grid classes.") (modify-phases %standard-phases (add-after 'build 'build-tests (lambda* (#:key make-flags #:allow-other-keys) - (apply invoke "make" "build_tests" make-flags))) - (add-before 'check 'mpi-setup - ,%openmpi-setup)))) + (apply invoke "make" "build_tests" make-flags)))))) (inputs `(("dune-common" ,dune-common) ("dune-geometry" ,dune-geometry) ("gmp" ,gmp) ("metis" ,metis) ("openblas" ,openblas) - ("openmpi" ,openmpi) ("python" ,python))) (propagated-inputs `(("dune-uggrid" ,dune-uggrid))) @@ -4755,12 +4747,9 @@ This package contains the basic DUNE grid classes.") (modify-phases %standard-phases (add-after 'build 'build-tests (lambda* (#:key make-flags #:allow-other-keys) - (apply invoke "make" "build_tests" make-flags))) - (add-before 'check 'mpi-setup - ,%openmpi-setup)))) + (apply invoke "make" "build_tests" make-flags)))))) (inputs `(("dune-common" ,dune-common) - ("openmpi" ,openmpi) ;; Optional ("metis" ,metis) ("suitesparse" ,suitesparse) @@ -4808,7 +4797,6 @@ aggregation-based algebraic multigrid.") (inputs `(("dune-common" ,dune-common) ("dune-geometry" ,dune-geometry) - ("openmpi" ,openmpi) ;; Optional ("metis" ,metis) ("superlu" ,superlu) @@ -4856,14 +4844,11 @@ assemble global function spaces on finite-element grids.") (lambda* (#:key inputs make-flags #:allow-other-keys) (setenv "CPLUS_INCLUDE_PATH" (string-append (assoc-ref inputs "dune-grid") "/share")) - (apply invoke "make" "build_tests" make-flags))) - (add-before 'check 'mpi-setup - ,%openmpi-setup)))) + (apply invoke "make" "build_tests" make-flags)))))) (inputs `(("dune-common" ,dune-common) ("dune-geometry" ,dune-geometry) ("dune-grid" ,dune-grid) - ("openmpi" ,openmpi) ;; Optional ("metis" ,metis) ("openblas" ,openblas) @@ -4901,14 +4886,11 @@ cubes.") (modify-phases %standard-phases (add-after 'build 'build-tests (lambda* (#:key make-flags #:allow-other-keys) - (apply invoke "make" "build_tests" make-flags))) - (add-before 'check 'mpi-setup - ,%openmpi-setup)))) + (apply invoke "make" "build_tests" make-flags)))))) (inputs `(("dune-common" ,dune-common) ("dune-geometry" ,dune-geometry) ("dune-grid" ,dune-grid) - ("openmpi" ,openmpi) ;; Optional ("metis" ,metis) ("openblas" ,openblas) @@ -4947,7 +4929,6 @@ provides the full grid interface including adaptive mesh refinement.") (apply invoke "make" "build_tests" make-flags)))))) (inputs `(("dune-common" ,dune-common) - ("openmpi" ,openmpi) ;; Optional ("openblas" ,openblas) ("python" ,python) @@ -4990,9 +4971,7 @@ operating on statically typed trees of objects.") #t)) (add-after 'build 'build-tests (lambda* (#:key make-flags #:allow-other-keys) - (apply invoke "make" "build_tests" make-flags))) - (add-before 'check 'mpi-setup - ,%openmpi-setup)))) + (apply invoke "make" "build_tests" make-flags)))))) (inputs `(("dune-common" ,dune-common) ("dune-istl" ,dune-istl) @@ -5000,7 +4979,6 @@ operating on statically typed trees of objects.") ("dune-grid" ,dune-grid) ("dune-geometry" ,dune-geometry) ("dune-typetree" ,dune-typetree) - ("openmpi" ,openmpi) ("openblas" ,openblas) ("metis" ,metis) ("python" ,python) @@ -5041,7 +5019,6 @@ implemented as callable objects, and bases of finite element spaces.") ("dune-grid" ,dune-grid) ("dune-typetree" ,dune-typetree) ("dune-functions" ,dune-functions) - ("openmpi" ,openmpi) ;; Optional ("openblas" ,openblas) ("eigen" ,eigen) @@ -5059,6 +5036,59 @@ built on top of DUNE, the Distributed and Unified Numerics Environment.") ;; Either GPL version 2 with "runtime exception" or LGPLv3+. (license (list license:lgpl3+ license:gpl2)))) +(define add-openmpi-to-dune-package + (let ((dune-package? + (lambda (p) (string-prefix? "dune-" (package-name p))))) + (package-mapping + (lambda (p) + (if (dune-package? p) + (package (inherit p) + (name (string-append (package-name p) "-openmpi")) + (inputs `(,@(package-inputs p) + ("openmpi" ,openmpi))) + (arguments + (substitute-keyword-arguments (package-arguments p) + ((#:phases phases '%standard-phases) + `(modify-phases ,phases + (add-before 'check 'mpi-setup + ,%openmpi-setup))))) + (synopsis (string-append (package-synopsis p) " (with MPI support)"))) + p)) + (negate dune-package?)))) + +(define-public dune-common-openmpi + (add-openmpi-to-dune-package dune-common)) + +(define-public dune-geometry-openmpi + (add-openmpi-to-dune-package dune-geometry)) + +(define-public dune-istl-openmpi + (add-openmpi-to-dune-package dune-istl)) + +(define-public dune-typetree-openmpi + (add-openmpi-to-dune-package dune-typetree)) + +(define-public dune-uggrid-openmpi + (add-openmpi-to-dune-package dune-uggrid)) + +(define-public dune-grid-openmpi + (add-openmpi-to-dune-package dune-grid)) + +(define-public dune-alugrid-openmpi + (add-openmpi-to-dune-package dune-alugrid)) + +(define-public dune-subgrid-openmpi + (add-openmpi-to-dune-package dune-subgrid)) + +(define-public dune-localfunctions-openmpi + (add-openmpi-to-dune-package dune-localfunctions)) + +(define-public dune-functions-openmpi + (add-openmpi-to-dune-package dune-functions)) + +(define-public dune-pdelab-openmpi + (add-openmpi-to-dune-package dune-pdelab)) + (define-public mlucas (package (name "mlucas") |