24#ifndef DUMUX_LINEAR_SOLVER_TRAITS_HH
25#define DUMUX_LINEAR_SOLVER_TRAITS_HH
27#include <dune/istl/schwarz.hh>
28#include <dune/istl/novlpschwarz.hh>
29#include <dune/istl/owneroverlapcopy.hh>
30#include <dune/istl/paamg/pinfo.hh>
31#include <dune/istl/preconditioners.hh>
32#include <dune/grid/common/capabilities.hh>
42#include <dune/grid/uggrid.hh>
47template<
class Gr
id,
int codim>
50 static const bool v =
false;
54template<
int dim,
int codim>
57 static const bool v =
true;
67template<
class Gr
idGeometry, DiscretizationMethod discMethod>
71template<
class Gr
idGeometry>
75template<
class MType,
class VType>
83 template<
class SeqPreconditioner>
88template <
class MType,
class VType>
94 using Comm = Dune::OwnerOverlapCopyCommunication<Dune::bigunsignedint<96>,
int>;
95 using LinearOperator = Dune::NonoverlappingSchwarzOperator<MType, VType, VType, Comm>;
96 using ScalarProduct = Dune::NonoverlappingSchwarzScalarProduct<VType, Comm>;
99 template<
class SeqPreconditioner>
100 using Preconditioner = Dune::NonoverlappingBlockPreconditioner<Comm, SeqPreconditioner>;
103template <
class MType,
class VType>
109 using Comm = Dune::OwnerOverlapCopyCommunication<Dune::bigunsignedint<96>,
int>;
110 using LinearOperator = Dune::OverlappingSchwarzOperator<MType, VType, VType, Comm>;
114 template<
class SeqPreconditioner>
115 using Preconditioner = Dune::BlockPreconditioner<VType, VType, Comm, SeqPreconditioner>;
119template<
class Gr
idGeometry>
123 using Grid =
typename GridGeometry::GridView::Traits::Grid;
125 template<
class Matrix,
class Vector>
129 template<
class Matrix,
class Vector>
132 template<
class Matrix,
class Vector>
138template<
class Gr
idGeometry>
143 using Grid =
typename GridGeometry::GridView::Traits::Grid;
148 Dune::Capabilities::canCommunicate<Grid, dofCodim>::v
151 template<
class Gr
idView>
153 {
return gridView.overlapSize(0) == 0; }
157template<
class Gr
idGeometry>
162 using Grid =
typename GridGeometry::GridView::Traits::Grid;
167 Dune::Capabilities::canCommunicate<Grid, dofCodim>::v
170 template<
class Gr
idView>
176template<
class Gr
idGeometry>
181template<
class Gr
idGeometry>
The available discretization methods in Dumux.
DiscretizationMethod
The available discretization methods in Dumux.
Definition method.hh:37
@ box
Definition method.hh:38
@ ccmpfa
Definition method.hh:38
@ staggered
Definition method.hh:38
@ cctpfa
Definition method.hh:38
LinearSolverTraitsImpl< GridGeometry, GridGeometry::discMethod > LinearSolverTraits
The type traits required for using the IstlFactoryBackend.
Definition linearsolvertraits.hh:72
Definition common/pdesolver.hh:35
Definition linearsolvertraits.hh:45
Definition common/properties.hh:113
Definition linearsolvertraits.hh:49
static const bool v
Definition linearsolvertraits.hh:50
The implementation is specialized for the different discretizations.
Definition linearsolvertraits.hh:68
sequential solver traits
Definition linearsolvertraits.hh:77
MType Matrix
Definition linearsolvertraits.hh:78
VType Vector
Definition linearsolvertraits.hh:79
Dune::MatrixAdapter< MType, VType, VType > LinearOperator
Definition linearsolvertraits.hh:80
SeqPreconditioner Preconditioner
Definition linearsolvertraits.hh:84
Dune::SeqScalarProduct< VType > ScalarProduct
Definition linearsolvertraits.hh:81
Definition linearsolvertraits.hh:90
Dune::NonoverlappingSchwarzOperator< MType, VType, VType, Comm > LinearOperator
Definition linearsolvertraits.hh:95
MType Matrix
Definition linearsolvertraits.hh:92
Dune::NonoverlappingBlockPreconditioner< Comm, SeqPreconditioner > Preconditioner
Definition linearsolvertraits.hh:100
Dune::NonoverlappingSchwarzScalarProduct< VType, Comm > ScalarProduct
Definition linearsolvertraits.hh:96
VType Vector
Definition linearsolvertraits.hh:93
Dune::OwnerOverlapCopyCommunication< Dune::bigunsignedint< 96 >, int > Comm
Definition linearsolvertraits.hh:94
static constexpr bool isNonOverlapping
Definition linearsolvertraits.hh:97
Definition linearsolvertraits.hh:105
static constexpr bool isNonOverlapping
Definition linearsolvertraits.hh:112
Dune::OverlappingSchwarzOperator< MType, VType, VType, Comm > LinearOperator
Definition linearsolvertraits.hh:110
MType Matrix
Definition linearsolvertraits.hh:107
Dune::BlockPreconditioner< VType, VType, Comm, SeqPreconditioner > Preconditioner
Definition linearsolvertraits.hh:115
VType Vector
Definition linearsolvertraits.hh:108
Dune::OwnerOverlapCopyCommunication< Dune::bigunsignedint< 96 >, int > Comm
Definition linearsolvertraits.hh:109
Dune::OverlappingSchwarzScalarProduct< VType, Comm > ScalarProduct
Definition linearsolvertraits.hh:111
Definition linearsolvertraits.hh:121
NonoverlappingSolverTraits< Matrix, Vector > ParallelNonoverlapping
Definition linearsolvertraits.hh:133
typename GridGeometry::GridView::Traits::Grid Grid
Definition linearsolvertraits.hh:123
typename GridGeometry::GridView GridView
Definition linearsolvertraits.hh:122
OverlappingSolverTraits< Matrix, Vector > ParallelOverlapping
Definition linearsolvertraits.hh:130
SequentialSolverTraits< Matrix, Vector > Sequential
Definition linearsolvertraits.hh:126
static bool isNonOverlapping(const GridView &gridView)
Definition linearsolvertraits.hh:152
static constexpr int dofCodim
Definition linearsolvertraits.hh:144
typename GridGeometry::GridView::Traits::Grid Grid
Definition linearsolvertraits.hh:143
static constexpr bool canCommunicate
Definition linearsolvertraits.hh:147
typename GridGeometry::VertexMapper DofMapper
Definition linearsolvertraits.hh:142
static bool isNonOverlapping(const GridView &gridView)
Definition linearsolvertraits.hh:171
static constexpr int dofCodim
Definition linearsolvertraits.hh:163
typename GridGeometry::GridView::Traits::Grid Grid
Definition linearsolvertraits.hh:162
typename GridGeometry::ElementMapper DofMapper
Definition linearsolvertraits.hh:161
static constexpr bool canCommunicate
Definition linearsolvertraits.hh:166