gnu: dealii: Update to 9.3.2.

* gnu/packages/maths.scm (dealii): Update to 9.3.2.
  [source]: Add dealii-fix-compiliation-with-boost-1.78.patch and
  dealii-fix-sundials.patch.
  [inputs]: Use simplified format.
  [native-inputs]: Use simplified format.
* gnu/packages/patches/dealii-fix-compiliation-with-boost-1.78.patch:
  New file.
* gnu/packages/patches/dealii-fix-sundials.patch: New file.
* gnu/local.mk: Add new patch files.

Signed-off-by: Nicolas Goaziou <mail@nicolasgoaziou.fr>
This commit is contained in:
Felix Gruber 2022-01-07 07:39:05 +00:00 committed by Nicolas Goaziou
parent f499f62941
commit 80f616139c
No known key found for this signature in database
GPG key ID: DA00B4F048E92F2D
4 changed files with 115 additions and 13 deletions

View file

@ -31,7 +31,7 @@
# Copyright © 2020 R Veera Kumar <vkor@vkten.in>
# Copyright © 2020 Nicolò Balzarotti <nicolo@nixo.xyz>
# Copyright © 2020 Michael Rohleder <mike@rohleder.de>
# Copyright © 2020, 2021 Felix Gruber <felgru@posteo.net>
# Copyright © 2020, 2021, 2022 Felix Gruber <felgru@posteo.net>
# Copyright © 2020 Ryan Prior <rprior@protonmail.com>
# Copyright © 2020 Jan Wielkiewicz <tona_kosmicznego_smiecia@interia.pl>
# Copyright © 2020, 2021 Brice Waegeneire <brice@waegenei.re>
@ -980,6 +980,8 @@ dist_patch_DATA = \
%D%/packages/patches/dbus-c++-gcc-compat.patch \
%D%/packages/patches/dbus-c++-threading-mutex.patch \
%D%/packages/patches/dbxfs-remove-sentry-sdk.patch \
%D%/packages/patches/dealii-fix-compiliation-with-boost-1.78.patch \
%D%/packages/patches/dealii-fix-sundials.patch \
%D%/packages/patches/debops-constants-for-external-program-names.patch \
%D%/packages/patches/debops-debops-defaults-fall-back-to-less.patch \
%D%/packages/patches/dee-vapi.patch \

View file

@ -34,7 +34,7 @@
;;; Copyright © 2019 Steve Sprang <scs@stevesprang.com>
;;; Copyright © 2019 Robert Smith <robertsmith@posteo.net>
;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
;;; Copyright © 2020, 2021 Felix Gruber <felgru@posteo.net>
;;; Copyright © 20202022 Felix Gruber <felgru@posteo.net>
;;; Copyright © 2020 R Veera Kumar <vkor@vkten.in>
;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
;;; Copyright © 2020 Nicolò Balzarotti <nicolo@nixo.xyz>
@ -5268,14 +5268,16 @@ (define trilinos-for-dealii-openmpi
(define-public dealii
(package
(name "dealii")
(version "9.3.1")
(version "9.3.2")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/dealii/dealii/releases/"
"download/v" version "/dealii-" version ".tar.gz"))
(sha256
(base32 "1f0sqvlxvl0myqcn0q6xrn1vnp5pgx143lai4a4jkh1dmdv4cbx6"))
(base32 "1s0kawnljg24jj6nibwrif5gxdgg2daqfylhqqpl1lvmzmmxfhak"))
(patches (search-patches "dealii-fix-compiliation-with-boost-1.78.patch"
"dealii-fix-sundials.patch"))
(modules '((guix build utils)))
(snippet
'(begin
@ -5286,16 +5288,14 @@ (define-public dealii
(outputs '("out" "doc"))
(native-inputs
;; Required to build the documentation.
`(("dot" ,graphviz)
("doxygen" ,doxygen)
("perl" ,perl)))
(list graphviz doxygen perl))
(inputs
`(("arpack" ,arpack-ng)
("blas" ,openblas)
("gfortran" ,gfortran)
("lapack" ,lapack)
("muparser" ,muparser)
("zlib" ,zlib)))
(list arpack-ng
openblas
gfortran
lapack
muparser
zlib))
(propagated-inputs
;; Some scripts are installed into share/deal.II/scripts that require
;; perl and python, but they are not executable (and some are missing the

View file

@ -0,0 +1,40 @@
From cbef761731627cece2a6f0276b87dacabbdc8a72 Mon Sep 17 00:00:00 2001
From: David Wells <drwells@email.unc.edu>
Date: Tue, 4 Jan 2022 12:46:30 -0500
Subject: [PATCH] Fix compilation with boost 1.78.
I bisected (fortunately Boost.Geometry a header-only library so adding the
include directory sufficed) and
https://github.com/boostorg/geometry/commit/6eb9e238bcb37e26dc31d16acf826784a2ba30f4
is where this problem starts for us. See also
https://github.com/boostorg/geometry/issues/792 - the easiest fix for all such
issues is to just include the project header `boost/geometry/geometry.hpp`.
In this particular case, if you look at the commit which causes grid_tools.cc
fails to compile, its because we were relying on some implicit includes. In
particular, we need the distance header to find the distance between points and
boxes, but that was previously included in another file.
This patch has been adapted from
e0e76835519d122fd12b5858e16d08641a641c6a to apply to dealii 9.3.2.
See https://github.com/dealii/dealii/pull/13165.
---
include/deal.II/numerics/rtree.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/include/deal.II/numerics/rtree.h b/include/deal.II/numerics/rtree.h
index 1b9d04dacd..1e1bfd2932 100644
--- a/include/deal.II/numerics/rtree.h
+++ b/include/deal.II/numerics/rtree.h
@@ -26,6 +26,7 @@
#include <deal.II/boost_adaptors/segment.h>
DEAL_II_DISABLE_EXTRA_DIAGNOSTICS
+#include <boost/geometry/algorithms/distance.hpp>
#include <boost/geometry/index/rtree.hpp>
#include <boost/geometry/strategies/strategies.hpp>
DEAL_II_ENABLE_EXTRA_DIAGNOSTICS
--
2.30.2

View file

@ -0,0 +1,60 @@
From af73f368f7f9d4a00df075d1a9f50fc495f8e87a Mon Sep 17 00:00:00 2001
From: Timo Heister <timo.heister@gmail.com>
Date: Sat, 25 Dec 2021 12:30:45 -0500
Subject: [PATCH] fix sundials compilation
---
include/deal.II/sundials/n_vector.templates.h | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/include/deal.II/sundials/n_vector.templates.h b/include/deal.II/sundials/n_vector.templates.h
index 2b49e3efc9..746f63a03b 100644
--- a/include/deal.II/sundials/n_vector.templates.h
+++ b/include/deal.II/sundials/n_vector.templates.h
@@ -253,13 +253,13 @@ namespace SUNDIALS
template <
typename VectorType,
typename std::enable_if_t<!IsBlockVector<VectorType>::value, int> = 0>
- MPI_Comm
+ const MPI_Comm &
get_communicator(N_Vector v);
template <
typename VectorType,
typename std::enable_if_t<IsBlockVector<VectorType>::value, int> = 0>
- MPI_Comm
+ const MPI_Comm &
get_communicator(N_Vector v);
/**
@@ -481,7 +481,7 @@ SUNDIALS::internal::NVectorOperations::destroy(N_Vector v)
template <typename VectorType,
std::enable_if_t<IsBlockVector<VectorType>::value, int>>
-MPI_Comm
+const MPI_Comm &
SUNDIALS::internal::NVectorOperations::get_communicator(N_Vector v)
{
return unwrap_nvector_const<VectorType>(v)->block(0).get_mpi_communicator();
@@ -491,7 +491,7 @@ SUNDIALS::internal::NVectorOperations::get_communicator(N_Vector v)
template <typename VectorType,
std::enable_if_t<!IsBlockVector<VectorType>::value, int>>
-MPI_Comm
+const MPI_Comm &
SUNDIALS::internal::NVectorOperations::get_communicator(N_Vector v)
{
return unwrap_nvector_const<VectorType>(v)->get_mpi_communicator();
@@ -519,7 +519,8 @@ SUNDIALS::internal::NVectorOperations::get_communicator_as_void_ptr(N_Vector v)
(void)v;
return nullptr;
# else
- return get_communicator<VectorType>(v);
+ // We need to cast away const here, as SUNDIALS demands a pure `void *`.
+ return &(const_cast<MPI_Comm &>(get_communicator<VectorType>(v)));
# endif
}
--
2.30.2