summaryrefslogtreecommitdiff
path: root/gnu
diff options
context:
space:
mode:
Diffstat (limited to 'gnu')
-rw-r--r--gnu/packages/maths.scm90
1 files changed, 90 insertions, 0 deletions
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 074e878de4..93fb75214e 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -4358,3 +4358,93 @@ Differences} (FD).
This package contains the basic DUNE geometry classes.")
;; GPL version 2 with "runtime exception"
(license license:gpl2)))
+
+(define-public dune-grid
+ (package
+ (name "dune-grid")
+ (version "2.6.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://dune-project.org/download/"
+ version "/dune-grid-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1jp4vscm9yb9xg0lh7apzccfkhvgbnk652yahigmh3cvzpl4acd0"))))
+ (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)))
+ ;; 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)))))
+ (inputs
+ `(("dune-common" ,dune-common)
+ ("dune-geometry" ,dune-geometry)
+ ("gmp" ,gmp)
+ ("metis" ,metis)
+ ("openblas" ,openblas)
+ ("openmpi" ,openmpi)
+ ("python" ,python)))
+ (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 basic DUNE grid classes.")
+ ;; GPL version 2 with "runtime exception"
+ (license license:gpl2)))