summary refs log tree commit diff
path: root/gnu/packages/maths.scm
diff options
context:
space:
mode:
authorRicardo Wurmus <rekado@elephly.net>2019-02-08 17:17:26 +0100
committerRicardo Wurmus <rekado@elephly.net>2019-02-08 17:52:47 +0100
commitab03d899cac5e09faf0a4d759d48b7bc05f48f0d (patch)
treee52c6c9639c56e7e6dd144c05c822d514c2b5a57 /gnu/packages/maths.scm
parentfc80f54e29bc6da3cfa8b683bb30f767e05ae8f5 (diff)
downloadguix-ab03d899cac5e09faf0a4d759d48b7bc05f48f0d.tar.gz
gnu: Add dune-alugrid.
* gnu/packages/maths.scm (dune-alugrid): New variable.
Diffstat (limited to 'gnu/packages/maths.scm')
-rw-r--r--gnu/packages/maths.scm52
1 files changed, 52 insertions, 0 deletions
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 61e58bda2a..e01ec9d797 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -4556,3 +4556,55 @@ interpolation operators and special keys are provided which can be used to
 assemble global function spaces on finite-element grids.")
     ;; GPL version 2 with "runtime exception"
     (license license:gpl2)))
+
+(define-public dune-alugrid
+  (package
+    (name "dune-alugrid")
+    (version "2.6.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://dune-project.org/download/"
+                           version "/dune-alugrid-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1l9adgyjpra8mvwm445s0lpjshnb63jag85fb2hisbjn6bm320yj"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:tests? #f ; 7 of 8 tests fail because they need a full MPI
+                   ; environment
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-include
+           (lambda _
+             (substitute* "dune/alugrid/test/test-alugrid.cc"
+               (("doc/grids/gridfactory/testgrids")
+                "doc/dune-grid/grids/gridfactory/testgrids"))
+             #t))
+         (add-after 'build 'build-tests
+           (lambda* (#:key inputs make-flags #:allow-other-keys)
+             (setenv "CPLUS_INCLUDE_PATH"
+                     (string-append (assoc-ref inputs "dune-grid") "/share:"
+                                    (getenv "CPLUS_INCLUDE_PATH")))
+             (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)
+       ("python" ,python)
+       ("superlu" ,superlu)
+       ("gmp" ,gmp)
+       ("zlib" ,zlib)))
+    (native-inputs
+     `(("gfortran" ,gfortran)
+       ("pkg-config" ,pkg-config)))
+    (home-page "https://dune-project.org/")
+    (synopsis "Distributed and Unified Numerics Environment")
+    (description "ALUGrid is an adaptive, loadbalancing, unstructured
+implementation of the DUNE grid interface supporting either simplices or
+cubes.")
+    (license license:gpl2+)))