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 |