From a669f6e27b5c078fdd7f4592cd5dc688a979a864 Mon Sep 17 00:00:00 2001 From: Felix Gruber Date: Tue, 10 Mar 2020 20:29:05 +0100 Subject: gnu: dune-*: set up MPI for tests MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/maths.scm (dune-common, dune-grid, dune-istl, dune-alugrid): [arguments]: correctly set up MPI instead of disabling tests that require MPI. Signed-off-by: Ludovic Courtès --- gnu/packages/maths.scm | 110 +++++-------------------------------------------- 1 file changed, 10 insertions(+), 100 deletions(-) (limited to 'gnu/packages/maths.scm') diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 263f80f246..4235d5a0ad 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -4593,36 +4593,8 @@ linear algebra primitives specifically targeting graph analytics.") (add-after 'build 'build-tests (lambda* (#:key make-flags #:allow-other-keys) (apply invoke "make" "build_tests" make-flags))) - ;; These tests fail because they require a fully functional MPI - ;; environment. - (add-after 'unpack 'disable-failing-tests - (lambda _ - (setenv "ARGS" - (string-append "--exclude-regex '(" - (string-join - (list - "remoteindicestest" - "remoteindicestest-mpi-2" - "syncertest" - "syncertest-mpi-2" - "variablesizecommunicatortest" - "variablesizecommunicatortest-mpi-2" - "arithmetictestsuitetest" - "assertandreturntest" - "assertandreturntest_ndebug" - "concept" - "debugaligntest" - "mpicollectivecommunication" - "mpicollectivecommunication-mpi-2" - "mpiguardtest" - "mpiguardtest-mpi-2" - "mpihelpertest" - "mpihelpertest-mpi-2" - "mpihelpertest2" - "mpihelpertest2-mpi-2") - "|") - ")'")) - #t))))) + (add-before 'check 'mpi-setup + ,%openmpi-setup)))) (inputs `(("gmp" ,gmp) ("metis" ,metis) @@ -4703,54 +4675,8 @@ This package contains the basic DUNE geometry classes.") (add-after 'build 'build-tests (lambda* (#:key make-flags #:allow-other-keys) (apply invoke "make" "build_tests" make-flags))) - ;; These tests fail because they require a fully functional MPI - ;; environment. - (add-after 'unpack 'disable-failing-tests - (lambda _ - (setenv "ARGS" - (string-append "--exclude-regex '(" - (string-join - (list - "scsgmappertest" - "conformvolumevtktest" - "gnuplottest" - "nonconformboundaryvtktest" - "subsamplingvtktest" - "vtktest" - "vtktest-mpi-2" - "vtksequencetest" - "gmshtest-onedgrid" - "test-dgf-yasp" - "test-dgf-yasp-offset" - "test-dgf-oned" - "test-geogrid-yaspgrid" - "test-gridinfo" - "test-identitygrid" - "testiteratorranges" - "test-hierarchicsearch" - "test-parallel-ug-mpi-2" - "test-yaspgrid-backuprestore-equidistant" - "test-yaspgrid-backuprestore-equidistant-mpi-2" - "test-yaspgrid-backuprestore-equidistantoffset" - "test-yaspgrid-backuprestore-equidistantoffset-mpi-2" - "test-yaspgrid-backuprestore-tensor" - "test-yaspgrid-backuprestore-tensor-mpi-2" - "test-yaspgrid-tensorgridfactory" - "test-yaspgrid-tensorgridfactory-mpi-2" - "test-yaspgrid-yaspfactory-1d" - "test-yaspgrid-yaspfactory-1d-mpi-2" - "test-yaspgrid-yaspfactory-2d" - "test-yaspgrid-yaspfactory-2d-mpi-2" - "test-yaspgrid-yaspfactory-3d" - "test-yaspgrid-yaspfactory-3d-mpi-2" - "globalindexsettest" - "persistentcontainertest" - "structuredgridfactorytest" - "tensorgridfactorytest" - "vertexordertest") - "|") - ")'")) - #t))))) + (add-before 'check 'mpi-setup + ,%openmpi-setup)))) (inputs `(("dune-common" ,dune-common) ("dune-geometry" ,dune-geometry) @@ -4793,24 +4719,8 @@ This package contains the basic DUNE grid classes.") (add-after 'build 'build-tests (lambda* (#:key make-flags #:allow-other-keys) (apply invoke "make" "build_tests" make-flags))) - ;; These tests fail because they require a fully functional MPI - ;; environment. - (add-after 'unpack 'disable-failing-tests - (lambda _ - (setenv "ARGS" - (string-append "--exclude-regex '(" - (string-join - (list - "galerkintest" - "hierarchytest" - "pamgtest" - "pamg_comm_repart_test" - "matrixredisttest" - "vectorcommtest" - "matrixmarkettest") - "|") - ")'")) - #t))))) + (add-before 'check 'mpi-setup + ,%openmpi-setup)))) (inputs `(("dune-common" ,dune-common) ("openmpi" ,openmpi) @@ -4896,9 +4806,7 @@ assemble global function spaces on finite-element grids.") "1l9adgyjpra8mvwm445s0lpjshnb63jag85fb2hisbjn6bm320yj")))) (build-system cmake-build-system) (arguments - `(#:tests? #f ; 7 of 8 tests fail because they need a full MPI - ; environment - #:phases + `(#:phases (modify-phases %standard-phases (add-after 'unpack 'patch-include (lambda _ @@ -4910,7 +4818,9 @@ 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)))))) + (apply invoke "make" "build_tests" make-flags))) + (add-before 'check 'mpi-setup + ,%openmpi-setup)))) (inputs `(("dune-common" ,dune-common) ("dune-geometry" ,dune-geometry) -- cgit v1.2.3 From 07ebb75d175e0285dc3a5f525f111e3a7c544ba0 Mon Sep 17 00:00:00 2001 From: Felix Gruber Date: Tue, 10 Mar 2020 20:29:06 +0100 Subject: gnu: Add dune-uggrid. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/maths.scm (dune-uggrid): New variable. (dune-grid)[propagated-inputs]: Add dune-uggrid dependency, so that the UGGrid class in dune-grid can be used by packages that have dune-grid as input. (dune-functions)[arguments]: Enable tests that previously weren't built as they require dune-uggrid. Signed-off-by: Ludovic Courtès --- gnu/packages/maths.scm | 53 +++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 52 insertions(+), 1 deletion(-) (limited to 'gnu/packages/maths.scm') diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 4235d5a0ad..ab1532cd05 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -4656,6 +4656,42 @@ This package contains the basic DUNE geometry classes.") ;; GPL version 2 with "runtime exception" (license license:gpl2))) +(define-public dune-uggrid + (package + (name "dune-uggrid") + (version "2.6.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://dune-project.org/download/" + version "/dune-uggrid-" version ".tar.gz")) + (sha256 + (base32 + "05l7a1gb78mny49anyxk6rjvn66rhgm30y72v5cjg0m5kfgr1a1f")))) + (build-system cmake-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'build 'build-tests + (lambda* (#:key make-flags #:allow-other-keys) + (apply invoke "make" "build_tests" make-flags)))))) + (inputs + `(("dune-common" ,dune-common) + ("openmpi" ,openmpi))) + (native-inputs + `(("gfortran" ,gfortran) + ("pkg-config" ,pkg-config))) + (home-page "https://dune-project.org/") + (synopsis "Distributed and Unified Numerics Environment") + (description "DUNE, the Distributed and Unified Numerics Environment is a +modular toolbox for solving @dfn{partial differential equations} (PDEs) with +grid-based methods. It supports the easy implementation of methods like +@dfn{Finite Elements} (FE), @dfn{Finite Volumes} (FV), and also @dfn{Finite +Differences} (FD). + +This package contains the DUNE UG grid classes.") + (license license:lgpl2.1))) + (define-public dune-grid (package (name "dune-grid") @@ -4685,6 +4721,8 @@ This package contains the basic DUNE geometry classes.") ("openblas" ,openblas) ("openmpi" ,openmpi) ("python" ,python))) + (propagated-inputs + `(("dune-uggrid" ,dune-uggrid))) (native-inputs `(("gfortran" ,gfortran) ("pkg-config" ,pkg-config))) @@ -4898,7 +4936,20 @@ operating on statically typed trees of objects.") (base32 "1an8gb477n8j0kzpbrv7nr1snh8pxip0gsxq6w63jc83gg3dj200")))) (build-system cmake-build-system) - (arguments `(#:tests? #f)) ; FIXME: tests require dune-uugrid + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'disable-failing-tests + (lambda _ + (setenv "ARGS" + ;; unable to load GMSH file in this test + "--exclude-regex gridviewfunctionspacebasistest") + #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)))) (inputs `(("dune-common" ,dune-common) ("dune-istl" ,dune-istl) -- cgit v1.2.3 From f1f9466e3326d2df8e6e266a7cdced09116b2492 Mon Sep 17 00:00:00 2001 From: Felix Gruber Date: Tue, 10 Mar 2020 20:29:07 +0100 Subject: gnu: Add dune-subgrid MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/maths.scm (dune-subgrid): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/maths.scm | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) (limited to 'gnu/packages/maths.scm') diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index ab1532cd05..808fe3084f 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -4881,6 +4881,49 @@ implementation of the DUNE grid interface supporting either simplices or cubes.") (license license:gpl2+))) +(define-public dune-subgrid + (package + (name "dune-subgrid") + (version "2.6.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://git.imp.fu-berlin.de/agnumpde/dune-subgrid") + (commit "releases/2.6-1"))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1gcv35rx3knqd54r4pp9rzd639db4j8w2r2ibq43w1mgwdcqhs64")))) + (build-system cmake-build-system) + (arguments + `(#:phases + (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)))) + (inputs + `(("dune-common" ,dune-common) + ("dune-geometry" ,dune-geometry) + ("dune-grid" ,dune-grid) + ("openmpi" ,openmpi) + ;; Optional + ("metis" ,metis) + ("openblas" ,openblas) + ("gmp" ,gmp))) + (native-inputs + `(("gfortran" ,gfortran) + ("pkg-config" ,pkg-config))) + (home-page "http://numerik.mi.fu-berlin.de/dune-subgrid/index.php") + (synopsis "Distributed and Unified Numerics Environment") + (description "The dune-subgrid module allows to mark elements of +another hierarchical dune grid. The set of marked elements can then be +accessed as a hierarchical dune grid in its own right. Dune-Subgrid +provides the full grid interface including adaptive mesh refinement.") + (license license:gpl2+))) + (define-public dune-typetree (package (name "dune-typetree") -- cgit v1.2.3 From 0a703c04866c38ad5f9e0537013837a32b6d188a Mon Sep 17 00:00:00 2001 From: Felix Gruber Date: Tue, 10 Mar 2020 20:29:08 +0100 Subject: gnu: dune-istl: Build with suitesparse MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/maths.scm (dune-istl)[inputs]: Add suitesparse to build additional solvers in dune-istl. Signed-off-by: Ludovic Courtès --- gnu/packages/maths.scm | 1 + 1 file changed, 1 insertion(+) (limited to 'gnu/packages/maths.scm') diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 808fe3084f..e694a5b187 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -4764,6 +4764,7 @@ This package contains the basic DUNE grid classes.") ("openmpi" ,openmpi) ;; Optional ("metis" ,metis) + ("suitesparse" ,suitesparse) ("superlu" ,superlu) ("openblas" ,openblas) ("gmp" ,gmp) -- cgit v1.2.3 From b471337dea828b403635cc2391836ffe6ca0ad31 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 14 Mar 2020 01:57:10 +0100 Subject: gnu: suitesparse: Build with cmake-minimal. * gnu/packages/maths.scm (suitesparse)[native-inputs]: Change from CMAKE to CMAKE-MINIMAL. --- gnu/packages/maths.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'gnu/packages/maths.scm') diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index e694a5b187..499fdb06f7 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -3463,7 +3463,7 @@ Fresnel integrals, and similar related functions as well.") ("lapack" ,lapack) ("metis" ,metis))) (native-inputs - `(("cmake" ,cmake) + `(("cmake" ,cmake-minimal) ("m4" ,m4))) (home-page "http://faculty.cse.tamu.edu/davis/suitesparse.html") (synopsis "Suite of sparse matrix software") -- cgit v1.2.3