Debian Patches

Status for dune-istl/2.9.0-5

Patch Description Author Forwarded Bugs Origin Last update
fix-version-dune-module.diff Use correct version 2.9.0 in dune.module. no
choose-correct-umfpack-method-on-32bit Call int32_t variants of umfpack methods if size_t is 32bitOn systems where size_t is only 32bit calling the umfpack methods for long integer types (int64_t), i.e.
umfpack_dl* and umfpack_zl*, does not work.
Hence now check the size of the size_type used in UMPackMatrix and use the umfpack method for integer (umfpack_di*
and umfpackzi* instead) and use the correct interger type for the UMFPack matrix.

This should close #1069532 https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1069532

The build has been breaking on armel with the following errors:

In file included from /<<PKGBUILDDIR>>/dune/istl/paamg/amg.hh:17,
from /<<PKGBUILDDIR>>/dune/istl/paamg/test/pthreadamgtest.cc:24:
/<<PKGBUILDDIR>>/dune/istl/umfpack.hh: In instantiation of ‘static void Dune::UMFPackMethodChooser<double>::symbolic(A ...) [with A = {int, int, long int*, long int*, double*, void**, double*, double*}]’:
/<<PKGBUILDDIR>>/dune/istl/umfpack.hh:545:23: required from ‘void Dune::UMFPack<M>::decompose() [with M = Dune::BCRSMatrix<Dune::FieldMatrix<double, 1, 1> >]’
/<<PKGBUILDDIR>>/dune/istl/umfpack.hh:459:7: required from ‘void Dune::UMFPack<M>::setMatrix(const Matrix&) [with M = Dune::BCRSMatrix<Dune::FieldMatrix<double, 1, 1> >; Matrix = Dune::BCRSMatrix<Dune::FieldMatrix<double, 1, 1> >]’
/<<PKGBUILDDIR>>/dune/istl/umfpack.hh:270:7: required from ‘Dune::UMFPack<M>::UMFPack(const Matrix&, int, bool) [with M = Dune::BCRSMatrix<Dune::FieldMatrix<double, 1, 1> >; Matrix = Dune::BCRSMatrix<Dune::FieldMatrix<double, 1, 1> >]’
/<<PKGBUILDDIR>>/dune/istl/paamg/amg.hh:658:18: required from ‘static Dune::Amg::DirectSolverSelector<Matrix, Vector>::Solver<M, Dune::Amg::DirectSolverSelector<Matrix, Vector>::umfpack>::type* Dune::Amg::DirectSolverSelector<Matrix, Vector>::Solver<M, Dune::Amg::DirectSolverSelector<Matrix, Vector>::umfpack>::create(const M&, bool, bool) [with M = Dune::BCRSMatrix<Dune::FieldMatrix<double, 1, 1> >; Matrix = Dune::BCRSMatrix<Dune::FieldMatrix<double, 1, 1> >; Vector = Dune::BlockVector<Dune::FieldVector<double, 1> >; type = Dune::UMFPack<Dune::BCRSMatrix<Dune::FieldMatrix<double, 1, 1> > >]’
/<<PKGBUILDDIR>>/dune/istl/paamg/amg.hh:683:40: required from ‘static Dune::Amg::DirectSolverSelector<Matrix, Vector>::DirectSolver* Dune::Amg::DirectSolverSelector<Matrix, Vector>::create(const Matrix&, bool, bool) [with Matrix = Dune::BCRSMatrix<Dune::FieldMatrix<double, 1, 1> >; Vector = Dune::BlockVector<Dune::FieldVector<double, 1> >; DirectSolver = Dune::UMFPack<Dune::BCRSMatrix<Dune::FieldMatrix<double, 1, 1> > >]’
/<<PKGBUILDDIR>>/dune/istl/paamg/amg.hh:745:51: required from ‘void Dune::Amg::AMG<M, X, S, PI, A>::createHierarchies(C&, const std::shared_ptr<const _Tp>&, const PI&) [with C = const Dune::Amg::CoarsenCriterion<Dune::Amg::UnSymmetricCriterion<Dune::BCRSMatrix<Dune::FieldMatrix<double, 1, 1> >, Dune::Amg::FirstDiagonal> >; M = Dune::MatrixAdapter<Dune::BCRSMatrix<Dune::FieldMatrix<double, 1, 1> >, Dune::BlockVector<Dune::FieldVector<double, 1> >, Dune::BlockVector<Dune::FieldVector<double, 1> > >; X = Dune::BlockVector<Dune::FieldVector<double, 1> >; S = Dune::SeqSSOR<Dune::BCRSMatrix<Dune::FieldMatrix<double, 1, 1> >, Dune::BlockVector<Dune::FieldVector<double, 1> >, Dune::BlockVector<Dune::FieldVector<double, 1> > >; PI = Dune::Amg::SequentialInformation; A = std::allocator<Dune::BlockVector<Dune::FieldVector<double, 1> > >]’
/<<PKGBUILDDIR>>/dune/istl/paamg/amg.hh:448:24: required from ‘Dune::Amg::AMG<M, X, S, PI, A>::AMG(const Operator&, const C&, const SmootherArgs&, const PI&) [with C = Dune::Amg::CoarsenCriterion<Dune::Amg::UnSymmetricCriterion<Dune::BCRSMatrix<Dune::FieldMatrix<double, 1, 1> >, Dune::Amg::FirstDiagonal> >; M = Dune::MatrixAdapter<Dune::BCRSMatrix<Dune::FieldMatrix<double, 1, 1> >, Dune::BlockVector<Dune::FieldVector<double, 1> >, Dune::BlockVector<Dune::FieldVector<double, 1> > >; X = Dune::BlockVector<Dune::FieldVector<double, 1> >; S = Dune::SeqSSOR<Dune::BCRSMatrix<Dune::FieldMatrix<double, 1, 1> >, Dune::BlockVector<Dune::FieldVector<double, 1> >, Dune::BlockVector<Dune::FieldVector<double, 1> > >; PI = Dune::Amg::SequentialInformation; A = std::allocator<Dune::BlockVector<Dune::FieldVector<double, 1> > >; Operator = Dune::MatrixAdapter<Dune::BCRSMatrix<Dune::FieldMatrix<double, 1, 1> >, Dune::BlockVector<Dune::FieldVector<double, 1> >, Dune::BlockVector<Dune::FieldVector<double, 1> > >; SmootherArgs = Dune::Amg::DefaultSmootherArgs<double>]’
/<<PKGBUILDDIR>>/dune/istl/paamg/test/pthreadamgtest.cc:176:7: required from ‘void testAMG(int, int, int) [with int BS = 1; AMG = Dune::Amg::AMG<Dune::MatrixAdapter<Dune::BCRSMatrix<Dune::FieldMatrix<double, 1, 1> >, Dune::BlockVector<Dune::FieldVector<double, 1> >, Dune::BlockVector<Dune::FieldVector<double, 1> > >, Dune::BlockVector<Dune::FieldVector<double, 1> >, Dune::SeqSSOR<Dune::BCRSMatrix<Dune::FieldMatrix<double, 1, 1> >, Dune::BlockVector<Dune::FieldVector<double, 1> >, Dune::BlockVector<Dune::FieldVector<double, 1> > > >]’
/<<PKGBUILDDIR>>/dune/istl/paamg/test/pthreadamgtest.cc:232:19: required from here
/<<PKGBUILDDIR>>/dune/istl/umfpack.hh:106:27: error: cannot convert ‘long int*’ to ‘const int64_t*’ {aka ‘const long long int*’}
106 | umfpack_dl_symbolic(args...);
| ^~~~
| |
| long int*
Markus Blatt <markus@dr-blatt.de> no other 2024-05-08
solver-factory-do-not-test-unavailable-suitesparse.diff Make sure solverfactory only tests available solvers markus@dr-blatt.de invalid upstream 2024-06-10

All known versions for source package 'dune-istl'

Links