struct AdderSelector
template meta program for choosing how to add the correction. More...
struct AdderSelector< AdditiveSchwarzMode, X, S >
struct AdderSelector< MultiplicativeSchwarzMode, X, S >
struct AdderSelector< SymmetricMultiplicativeSchwarzMode, X, S >
struct AdditiveAdder
struct AdditiveAdder< S, BlockVector< T, A > >
struct AdditiveSchwarzMode
Tag that the tells the Schwarz method to be additive. More...
struct algmeta_bdsolve
struct algmeta_bdsolve< 0, norelax >
struct algmeta_bdsolve< 0, withrelax >
struct algmeta_btsolve
struct algmeta_btsolve< 0, nodiag, norelax >
struct algmeta_btsolve< 0, nodiag, withrelax >
struct algmeta_btsolve< 0, withdiag, norelax >
struct algmeta_btsolve< 0, withdiag, withrelax >
struct algmeta_itsteps
struct algmeta_itsteps< 0, M >
struct algmeta_itsteps< I, MultiTypeBlockMatrix< T1, MultiTypeMatrixArgs... > >
struct AllocatorTraits
struct AMGCreator
class ArPackPlusPlus_Algorithms
Wrapper to use a range of ARPACK++ eigenvalue solvers. More...
class AssembledLinearOperator
A linear operator exporting itself in matrix form. More...
struct AutonomousValueType< Imp::BlockVectorWindow< B, A > >
Specialization for the proxies of BlockVectorWindow
struct BaseGetSuperLUType
class BCRSMatrix
A sparse block matrix with compressed row storage. More...
class BCRSMatrixError
Error specific to BCRSMatrix . More...
class BDMatrix
A block-diagonal matrix. More...
class BiCGSTABSolver
Bi-conjugate Gradient Stabilized (BiCG-STAB) More...
struct BL
compile-time parameter for block recursion depth More...
class BlockPreconditioner
Block parallel preconditioner. More...
class BlockVector
A vector of blocks with memory management. More...
class BTDMatrix
A block-tridiagonal matrix. More...
class CGSolver
conjugate gradient method More...
struct CheckIfDiagonalPresent
Check whether the a matrix has diagonal values on blocklevel recursion levels. More...
struct CheckIfDiagonalPresent< Matrix, 0, l >
struct CheckIfDiagonalPresent< MultiTypeBlockMatrix< T1, Args... >, blocklevel, l >
struct ColCompMatrix
A sparse matrix in compressed-column format. More...
struct CommMatrixRow
Utility class for comunicating the matrix entries. More...
struct CommMatrixRowSize
Utility class to communicate and set the row sizes of a redistributed matrix. More...
struct CommMatrixSparsityPattern
Utility class to communicate and build the sparsity pattern of a redistributed matrix. More...
struct CommPolicy< Amg::GlobalAggregatesMap< T, TI > >
struct CommPolicy< CommMatrixRow< M, I > >
struct CommPolicy< CommMatrixSparsityPattern< M, I > >
class CompleteFCGSolver
Complete flexible conjugate gradient method. More...
struct CompressionStatistics
Statistics about compression achieved in implicit mode. More...
struct DefaultAllocatorTraits
struct DefaultAllocatorTraits< T, std::void_t< typename T::allocator_type > >
struct DenseMatrixAssigner< DenseMatrix, ScaledIdentityMatrix< field, N > >
class DynamicMatrixSubdomainSolver
Exact subdomain solver using Dune::DynamicMatrix<T>::solve. More...
class DynamicMatrixSubdomainSolver< BCRSMatrix< K, Al >, X, Y >
struct exists
class FieldMatrix
struct FieldTraits< BlockVector< B, A > >
struct FieldTraits< MultiTypeBlockVector< Arg0, Args... > >
class GeneralizedPCGSolver
Generalized preconditioned conjugate gradient solver. More...
struct GetSuperLUType
struct GetSuperLUType< double >
struct GetSuperLUType< float >
struct GetSuperLUType< std::complex< double > >
struct GetSuperLUType< std::complex< float > >
class GradientSolver
gradient method More...
class ILU0SubdomainSolver
Exact subdomain solver using ILU(p) with appropriate p. More...
class ILUNSubdomainSolver
class ILUSubdomainSolver
base class encapsulating common algorithms of ILU0SubdomainSolver and ILUNSubdomainSolver . More...
class ImplicitMatrixBuilder
A wrapper for uniform access to the BCRSMatrix during and after the build stage in implicit build mode. More...
class ImplicitModeCompressionBufferExhausted
Thrown when the compression buffer used by the implicit BCRSMatrix construction is exhausted. More...
class IndexInfoFromGrid
Information about the index distribution. More...
class InvalidSolverCategory
class InvalidSolverFactoryConfiguration
class InverseOperator
Abstract base class for all solvers. More...
class InverseOperator2Preconditioner
Turns an InverseOperator into a Preconditioner . More...
struct InverseOperatorResult
Statistics about the application of an inverse operator. More...
struct IsDirectSolver
struct IsDirectSolver< LDL< BCRSMatrix< FieldMatrix< T, n, m >, A > > >
struct IsDirectSolver< SPQR< BCRSMatrix< T, A > > >
struct IsDirectSolver< SuperLU< BCRSMatrix< T, A > > >
struct IsDirectSolver< UMFPack< BCRSMatrix< FieldMatrix< T, n, m >, A > > >
struct IsMatrix
Test whether a type is an ISTL Matrix . More...
struct IsMatrix< BCRSMatrix< T, A > >
struct IsMatrix< DenseMatrix< T > >
class ISTLError
derive error class from the base class in common More...
class IterativeSolver
Base class for all implementations of iterative solvers. More...
struct IteratorDirectionSelector
Helper template meta program for application of overlapping Schwarz. More...
struct IteratorDirectionSelector< T1, T2, false >
class LDL
Use the LDL package to directly solve linear systems – empty default class. More...
class LDL< BCRSMatrix< FieldMatrix< T, n, m >, A > >
The LDL direct sparse solver for matrices of type BCRSMatrix . More...
struct LDLCreator
class LinearOperator
A linear operator. More...
class LoopSolver
Preconditioned loop solver. More...
struct MatMultMatResult
Helper TMP to get the result type of a sparse matrix matrix multiplication ( ) More...
struct MatMultMatResult< BCRSMatrix< FieldMatrix< T, n, k >, A >, BCRSMatrix< FieldMatrix< T, k, m >, A1 > >
struct MatMultMatResult< FieldMatrix< T, n, k >, FieldMatrix< T, k, m > >
class Matrix
A generic dynamic dense matrix. More...
class MatrixAdapter
Adapter to turn a matrix into a linear operator. More...
class MatrixBlockError
Error when performing an operation on a matrix block. More...
struct MatrixCopyRowSizeGatherScatter
struct MatrixDimension
struct MatrixDimension< BCRSMatrix< B, TA > >
struct MatrixDimension< BCRSMatrix< FieldMatrix< B, n, m >, TA > >
struct MatrixDimension< DiagonalMatrix< K, n > >
struct MatrixDimension< Dune::DynamicMatrix< T > >
struct MatrixDimension< FieldMatrix< K, n, m > >
struct MatrixDimension< Matrix< B, TA > >
struct MatrixDimension< Matrix< FieldMatrix< K, n, m >, TA > >
struct MatrixDimension< ScaledIdentityMatrix< K, n > >
class MatrixIndexSet
Stores the nonzero entries in a sparse matrix. More...
class MatrixMarketFormatError
struct MatrixRowGatherScatter
struct MatrixRowSizeGatherScatter
struct MatrixSparsityPatternGatherScatter
class MINRESSolver
Minimal Residual Method (MINRES) More...
struct MultiplicativeAdder
struct MultiplicativeAdder< S, BlockVector< T, A > >
struct MultiplicativeSchwarzMode
Tag that tells the Schwarz method to be multiplicative. More...
class MultiTypeBlockMatrix
A Matrix class to support different block types. More...
class MultiTypeBlockMatrix_Solver
solver for MultiTypeBlockVector & MultiTypeBlockMatrix types More...
class MultiTypeBlockMatrix_Solver< I, crow, 0 >
class MultiTypeBlockMatrix_Solver_Col
part of solvers for MultiTypeBlockVector & MultiTypeBlockMatrix types More...
class MultiTypeBlockMatrix_Solver_Col< I, crow, ccol, 0 >
class MultiTypeBlockVector
A Vector class to support different block types. More...
class NonoverlappingBlockPreconditioner
Nonoverlapping parallel preconditioner. More...
class NonoverlappingSchwarzOperator
A nonoverlapping operator with communication object. More...
class NonoverlappingSchwarzScalarProduct
Nonoverlapping Scalar Product with communication object. More...
class OverlappingAssignerHelper
class OverlappingAssignerHelper< DynamicMatrixSubdomainSolver< BCRSMatrix< K, Al >, X, Y >, false >
class OverlappingAssignerHelper< ILU0SubdomainSolver< M, X, Y >, false >
class OverlappingAssignerHelper< ILUNSubdomainSolver< M, X, Y >, false >
struct OverlappingAssignerHelper< S< BCRSMatrix< T, A > >, true >
class OverlappingAssignerILUBase
class OverlappingSchwarzInitializer
Initializer for SuperLU Matrices representing the subdomains. More...
class OverlappingSchwarzOperator
An overlapping Schwarz operator. More...
class OverlappingSchwarzScalarProduct
Scalar product for overlapping Schwarz methods. More...
struct OwnerOverlapCopyAttributeSet
Attribute set for overlapping Schwarz. More...
class OwnerOverlapCopyCommunication
A class setting up standard communication for a two-valued attribute set with owner/overlap/copy semantics. More...
class ParallelScalarProduct
Scalar product for overlapping Schwarz methods. More...
class ParSSOR
A parallel SSOR preconditioner. More...
struct PointerCompare
class PowerIteration_Algorithms
Iterative eigenvalue algorithms based on power iteration. More...
class Preconditioner
Base class for matrix free definition of preconditioners. More...
struct PropertyMapTypeSelector< Amg::VertexVisitedTag, Amg::PropertiesGraph< G, Amg::VertexProperties, EP, VM, EM > >
struct QuerySpaceChooser
struct RedistributeInformation
class RedistributeInformation< OwnerOverlapCopyCommunication< T, T1 > >
struct RedistributeInterface
class RestartedFCGSolver
Accelerated flexible conjugate gradient method. More...
class RestartedFlexibleGMResSolver
implements the Flexible Generalized Minimal Residual (FGMRes) method (right preconditioned) More...
class RestartedGMResSolver
implements the Generalized Minimal Residual (GMRes) method More...
class Richardson
Richardson preconditioner. More...
class ScalarProduct
Base class for scalar product and norm computation. More...
class ScaledIdentityMatrix
A multiple of the identity matrix of static size. More...
class SeqILDL
sequential ILDL preconditioner More...
class SeqILU
Sequential ILU preconditioner. More...
class SeqJac
The sequential jacobian preconditioner. More...
class SeqOverlappingSchwarz
Sequential overlapping Schwarz preconditioner. More...
struct SeqOverlappingSchwarzApplier
Helper template meta program for application of overlapping Schwarz. More...
struct SeqOverlappingSchwarzApplier< SeqOverlappingSchwarz< M, X, SymmetricMultiplicativeSchwarzMode, TD, TA > >
struct SeqOverlappingSchwarzAssemblerHelper
struct SeqOverlappingSchwarzAssemblerHelper< DynamicMatrixSubdomainSolver< BCRSMatrix< K, Al >, X, Y >, false >
struct SeqOverlappingSchwarzAssemblerHelper< ILU0SubdomainSolver< M, X, Y >, false >
struct SeqOverlappingSchwarzAssemblerHelper< ILUNSubdomainSolver< M, X, Y >, false >
struct SeqOverlappingSchwarzAssemblerHelper< S< BCRSMatrix< T, A > >, true >
struct SeqOverlappingSchwarzAssemblerILUBase
struct SeqOverlappingSchwarzDomainSize
struct SeqOverlappingSchwarzDomainSize< BCRSMatrix< T, A > >
class SeqScalarProduct
Default implementation for the scalar case. More...
class SeqSOR
Sequential SOR preconditioner. More...
class SeqSSOR
Sequential SSOR preconditioner. More...
class SolverAbort
Thrown when a solver aborts due to some problem. More...
struct SolverCategory
Categories for the solvers. More...
class SolverFactory
Factory to assembly solvers configured by a ParameterTree
. More...
class SolverHelper
Helper class for notifying a DUNE-ISTL linear solver about a change of the iteration matrix object in a unified way, i.e. independent from the solver's type (direct/iterative). More...
class SPQR
Use the SPQR package to directly solve linear systems – empty default class. More...
class SPQR< BCRSMatrix< FieldMatrix< T, n, m >, A > >
The SPQR direct sparse solver for matrices of type BCRSMatrix . More...
struct SPQRCreator
struct StoresColumnCompressed
struct StoresColumnCompressed< LDL< BCRSMatrix< FieldMatrix< T, n, m >, A > > >
struct StoresColumnCompressed< SPQR< BCRSMatrix< T, A > > >
struct StoresColumnCompressed< SuperLU< BCRSMatrix< T, A > > >
struct StoresColumnCompressed< UMFPack< BCRSMatrix< T, A > > >
class SuperLU
SuperLu Solver. More...
struct SuperLUCreator
struct SuperLUDenseMatChooser
struct SuperLUMatrix
Utility class for converting an ISTL Matrix into a SuperLU Matrix . More...
class SuperLUMatrix< BCRSMatrix< B, TA > >
Converter for BCRSMatrix to SuperLU Matrix . More...
struct SuperLUQueryChooser
struct SuperLUSolveChooser
struct SuperMatrixCreateSparseChooser
struct SuperMatrixInitializer
class SuperMatrixInitializer< BCRSMatrix< B, A > >
struct SuperMatrixPrinter
struct SymmetricMultiplicativeSchwarzMode
Tag that tells the Schwarz method to be multiplicative and symmetric. More...
struct TransposedMatMultMatResult
Helper TMP to get the result type of a sparse matrix matrix multiplication ( ) More...
struct TransposedMatMultMatResult< BCRSMatrix< FieldMatrix< T, k, n >, A >, BCRSMatrix< FieldMatrix< T, k, m >, A1 > >
struct TransposedMatMultMatResult< FieldMatrix< T, k, n >, FieldMatrix< T, k, m > >
class UMFPack
The UMFPack direct sparse solver. More...
struct UMFPackCreator
struct UMFPackMethodChooser
struct UMFPackMethodChooser< double >
struct UMFPackMethodChooser< std::complex< double > >
class UnsupportedType
class VariableBlockVector
A Vector of blocks with different blocksizes. More...
template<typename T >
constexpr std::size_t maxBlockLevel ()
Determine the maximum block level of a possibly nested vector/matrix type.
template<typename T >
constexpr std::size_t minBlockLevel ()
Determine the minimum block level of a possibly nested vector/matrix type.
template<typename T >
constexpr bool hasUniqueBlockLevel ()
Determine if a vector/matrix has a uniquely determinable block level.
template<typename T >
constexpr std::size_t blockLevel ()
Determine the block level of a possibly nested vector/matrix type.
template<class K , class A >
std::ostream & operator<< (std::ostream &s, const BlockVector < K, A > &v)
Send BlockVector to an output stream.
template<class Vector , class F >
std::size_t flatVectorForEach (Vector &&vector, F &&f, std::size_t offset=0)
Traverse a blocked vector and call a functor at each scalar entry.
template<class Matrix , class F >
std::pair< std::size_t, std::size_t > flatMatrixForEach (Matrix &&matrix, F &&f, std::size_t rowOffset=0, std::size_t colOffset=0)
Traverse a blocked matrix and call a functor at each scalar entry.
template<class M , class X , class Y >
void bltsolve (const M &A, X &v, const Y &d)
block lower triangular solve
template<class M , class X , class Y , class K >
void bltsolve (const M &A, X &v, const Y &d, const K &w)
relaxed block lower triangular solve
template<class M , class X , class Y >
void ubltsolve (const M &A, X &v, const Y &d)
unit block lower triangular solve
template<class M , class X , class Y , class K >
void ubltsolve (const M &A, X &v, const Y &d, const K &w)
relaxed unit block lower triangular solve
template<class M , class X , class Y >
void butsolve (const M &A, X &v, const Y &d)
block upper triangular solve
template<class M , class X , class Y , class K >
void butsolve (const M &A, X &v, const Y &d, const K &w)
relaxed block upper triangular solve
template<class M , class X , class Y >
void ubutsolve (const M &A, X &v, const Y &d)
unit block upper triangular solve
template<class M , class X , class Y , class K >
void ubutsolve (const M &A, X &v, const Y &d, const K &w)
relaxed unit block upper triangular solve
template<class M , class X , class Y , int l>
void bltsolve (const M &A, X &v, const Y &d, BL < l >)
block lower triangular solve
template<class M , class X , class Y , class K , int l>
void bltsolve (const M &A, X &v, const Y &d, const K &w, BL < l >)
relaxed block lower triangular solve
template<class M , class X , class Y , int l>
void ubltsolve (const M &A, X &v, const Y &d, BL < l >)
unit block lower triangular solve
template<class M , class X , class Y , class K , int l>
void ubltsolve (const M &A, X &v, const Y &d, const K &w, BL < l >)
relaxed unit block lower triangular solve
template<class M , class X , class Y , int l>
void butsolve (const M &A, X &v, const Y &d, BL < l > bl)
block upper triangular solve
template<class M , class X , class Y , class K , int l>
void butsolve (const M &A, X &v, const Y &d, const K &w, BL < l > bl)
relaxed block upper triangular solve
template<class M , class X , class Y , int l>
void ubutsolve (const M &A, X &v, const Y &d, BL < l > bl)
unit block upper triangular solve
template<class M , class X , class Y , class K , int l>
void ubutsolve (const M &A, X &v, const Y &d, const K &w, BL < l > bl)
relaxed unit block upper triangular solve
template<class M , class X , class Y >
void bdsolve (const M &A, X &v, const Y &d)
block diagonal solve, no relaxation
template<class M , class X , class Y , class K >
void bdsolve (const M &A, X &v, const Y &d, const K &w)
block diagonal solve, with relaxation
template<class M , class X , class Y , int l>
void bdsolve (const M &A, X &v, const Y &d, BL < l >)
block diagonal solve, no relaxation
template<class M , class X , class Y , class K , int l>
void bdsolve (const M &A, X &v, const Y &d, const K &w, BL < l >)
block diagonal solve, with relaxation
template<class M , class X , class Y , class K >
void dbgs (const M &A, X &x, const Y &b, const K &w)
GS step.
template<class M , class X , class Y , class K , int l>
void dbgs (const M &A, X &x, const Y &b, const K &w, BL < l >)
GS step.
template<class M , class X , class Y , class K >
void bsorf (const M &A, X &x, const Y &b, const K &w)
SOR step.
template<class M , class X , class Y , class K , int l>
void bsorf (const M &A, X &x, const Y &b, const K &w, BL < l >)
SOR step.
template<class M , class X , class Y , class K >
void bsorb (const M &A, X &x, const Y &b, const K &w)
SSOR step.
template<class M , class X , class Y , class K , int l>
void bsorb (const M &A, X &x, const Y &b, const K &w, BL < l >)
Backward SOR step.
template<class M , class X , class Y , class K >
void dbjac (const M &A, X &x, const Y &b, const K &w)
Jacobi step.
template<class M , class X , class Y , class K , int l>
void dbjac (const M &A, X &x, const Y &b, const K &w, BL < l >)
Jacobi step.
template<class K , int m, int n>
static void bildl_subtractBCT (const FieldMatrix < K, m, n > &B, const FieldMatrix < K, m, n > &CT, FieldMatrix < K, m, n > &A)
template<class K >
static void bildl_subtractBCT (const K &B, const K &CT, K &A, typename std::enable_if_t< Dune::IsNumber< K >::value > *sfinae=nullptr)
template<class Matrix >
static void bildl_subtractBCT (const Matrix &B, const Matrix &CT, Matrix &A, typename std::enable_if_t<!Dune::IsNumber< Matrix >::value > *sfinae=nullptr)
template<class Matrix >
void bildl_decompose (Matrix &A)
compute ILDL decomposition of a symmetric matrix A
template<class Matrix , class X , class Y >
void bildl_backsolve (const Matrix &A, X &v, const Y &d, bool isLowerTriangular=false)
template<class M >
void bilu0_decomposition (M &A)
template<class M , class X , class Y >
void bilu_backsolve (const M &A, X &v, const Y &d)
template<class M >
decltype(auto) firstmatrixelement (M &A)
template<class M >
void bilu_decomposition (const M &A, int n, M &ilu)
template<class V >
void recursive_printvector (std::ostream &s, const V &v, std::string rowtext, int &counter, int columns, int width)
Recursively print a vector.
template<class V >
void printvector (std::ostream &s, const V &v, std::string title, std::string rowtext, int columns=1, int width=10, int precision=2)
Print an ISTL vector.
void fill_row (std::ostream &s, int m, int width, int precision)
Print a row of zeros for a non-existing block.
template<class K >
void print_row (std::ostream &s, const K &value, typename FieldMatrix < K, 1, 1 >::size_type I, typename FieldMatrix < K, 1, 1 >::size_type J, typename FieldMatrix < K, 1, 1 >::size_type therow, int width, int precision, typename std::enable_if_t< Dune::IsNumber< K >::value > *sfinae=nullptr)
Print one row of a matrix, specialization for number types.
template<class M >
void print_row (std::ostream &s, const M &A, typename M::size_type I, typename M::size_type J, typename M::size_type therow, int width, int precision, typename std::enable_if_t<!Dune::IsNumber< M >::value > *sfinae=nullptr)
Print one row of a matrix.
template<class M >
void printmatrix (std::ostream &s, const M &A, std::string title, std::string rowtext, int width=10, int precision=2)
Print a generic block matrix.
template<class B , int n, int m, class A >
void printSparseMatrix (std::ostream &s, const BCRSMatrix < FieldMatrix < B, n, m >, A > &mat , std::string title, std::string rowtext, int width=3, int precision=2)
Prints a BCRSMatrix with fixed sized blocks.
template<class FieldType >
void writeMatrixToMatlabHelper (const FieldType &value, int rowOffset, int colOffset, std::ostream &s, typename std::enable_if_t< Dune::IsNumber< FieldType >::value > *sfinae=nullptr)
Helper method for the writeMatrixToMatlab routine.
template<class MatrixType >
void writeMatrixToMatlabHelper (const MatrixType &matrix, int externalRowOffset, int externalColOffset, std::ostream &s, typename std::enable_if_t<!Dune::IsNumber< MatrixType >::value > *sfinae=nullptr)
Helper method for the writeMatrixToMatlab routine.
template<class MatrixType >
void writeMatrixToMatlab (const MatrixType &matrix, const std::string &filename, int outputPrecision=18)
Writes sparse matrix in a Matlab-readable format.
template<class V >
void writeVectorToMatlabHelper (const V &v, std::ostream &stream)
template<class VectorType >
void writeVectorToMatlab (const VectorType &vector, const std::string &filename, int outputPrecision=18)
Writes vectors in a Matlab-readable format.
DUNE_REGISTER_DIRECT_SOLVER ("ldl", Dune::LDLCreator ())
void mm_read_header (std::size_t &rows, std::size_t &cols, MatrixMarketImpl::MMHeader &header, std::istream &istr, bool isVector)
template<typename T , typename A >
void mm_read_vector_entries (Dune::BlockVector < T, A > &vector, std::size_t size, std::istream &istr, size_t lane)
template<typename T , typename A , int entries>
void mm_read_vector_entries (Dune::BlockVector < Dune::FieldVector< T, entries >, A > &vector, std::size_t size, std::istream &istr, size_t lane)
template<typename T , typename A >
void readMatrixMarket (Dune::BlockVector < T, A > &vector, std::istream &istr)
Reads a BlockVector from a matrix market file.
template<typename T , typename A >
void readMatrixMarket (Dune::BCRSMatrix < T, A > &matrix, std::istream &istr)
Reads a sparse matrix from a matrix market file.
template<typename B >
void mm_print_entry (const B &entry, std::size_t rowidx, std::size_t colidx, std::ostream &ostr)
template<typename V >
void mm_print_vector_entry (const V &entry, std::ostream &ostr, const std::integral_constant< int, 1 > &, size_t lane)
template<typename V >
void mm_print_vector_entry (const V &vector, std::ostream &ostr, const std::integral_constant< int, 0 > &, size_t lane)
template<typename T , typename A >
std::size_t countEntries (const BlockVector < T, A > &vector)
template<typename T , typename A , int i>
std::size_t countEntries (const BlockVector < FieldVector< T, i >, A > &vector)
template<typename V >
void writeMatrixMarket (const V &vector, std::ostream &ostr, const std::integral_constant< int, 0 > &)
template<typename M >
void writeMatrixMarket (const M &matrix, std::ostream &ostr, const std::integral_constant< int, 1 > &)
template<typename M >
void writeMatrixMarket (const M &matrix, std::ostream &ostr)
writes a ISTL matrix or vector to a stream in matrix market format.
template<typename M >
void storeMatrixMarket (const M &matrix, std::string filename, int prec=default_precision )
Stores a parallel matrix/vector in matrix market format in a file.
template<typename M , typename G , typename L >
void storeMatrixMarket (const M &matrix, std::string filename, const OwnerOverlapCopyCommunication < G, L > &comm, bool storeIndices=true, int prec=default_precision )
Stores a parallel matrix/vector in matrix market format in a file.
template<typename M , typename G , typename L >
void loadMatrixMarket (M &matrix, const std::string &filename, OwnerOverlapCopyCommunication < G, L > &comm, bool readIndices=true)
Load a parallel matrix/vector stored in matrix market format.
template<typename M >
void loadMatrixMarket (M &matrix, const std::string &filename)
Load a matrix/vector stored in matrix market format.
template<class T , class A , class A1 , class A2 , int n, int m, int k>
void matMultTransposeMat (BCRSMatrix < FieldMatrix < T, n, k >, A > &res, const BCRSMatrix < FieldMatrix < T, n, m >, A1 > &mat , const BCRSMatrix < FieldMatrix < T, k, m >, A2 > &matt, bool tryHard=false)
Calculate product of a sparse matrix with a transposed sparse matrices ( ).
template<class T , class A , class A1 , class A2 , int n, int m, int k>
void matMultMat (BCRSMatrix < FieldMatrix < T, n, m >, A > &res, const BCRSMatrix < FieldMatrix < T, n, k >, A1 > &mat , const BCRSMatrix < FieldMatrix < T, k, m >, A2 > &matt, bool tryHard=false)
Calculate product of two sparse matrices ( ).
template<class T , class A , class A1 , class A2 , int n, int m, int k>
void transposeMatMultMat (BCRSMatrix < FieldMatrix < T, n, m >, A > &res, const BCRSMatrix < FieldMatrix < T, k, n >, A1 > &mat , const BCRSMatrix < FieldMatrix < T, k, m >, A2 > &matt, bool tryHard=false)
Calculate product of a transposed sparse matrix with another sparse matrices ( ).
template<typename M , typename C >
void redistributeSparsityPattern (M &origMatrix, M &newMatrix, C &origComm, C &newComm, RedistributeInformation < C > &ri)
template<typename M , typename C >
void redistributeMatrixEntries (M &origMatrix, M &newMatrix, C &origComm, C &newComm, RedistributeInformation < C > &ri)
template<typename M , typename C >
void redistributeMatrix (M &origMatrix, M &newMatrix, C &origComm, C &newComm, RedistributeInformation < C > &ri)
Redistribute a matrix according to given domain decompositions.
template<typename M >
void redistributeMatrixEntries (M &origMatrix, M &newMatrix, Dune::Amg::SequentialInformation &origComm, Dune::Amg::SequentialInformation &newComm, RedistributeInformation < Dune::Amg::SequentialInformation > &ri)
template<typename M >
void redistributeMatrix (M &origMatrix, M &newMatrix, Dune::Amg::SequentialInformation &origComm, Dune::Amg::SequentialInformation &newComm, RedistributeInformation < Dune::Amg::SequentialInformation > &ri)
template<class M >
auto countNonZeros (const M &, typename std::enable_if_t< Dune::IsNumber< M >::value > *sfinae=nullptr)
Get the number of nonzero fields in the matrix.
template<class M >
auto countNonZeros (const M &matrix, typename std::enable_if_t<!Dune::IsNumber< M >::value > *sfinae=nullptr)
template<class M , class C >
void printGlobalSparseMatrix (const M &mat , C &ooc, std::ostream &os)
template<typename T1 , typename... Args>
std::ostream & operator<< (std::ostream &s, const MultiTypeBlockMatrix < T1, Args... > &m)
<< operator for a MultiTypeBlockMatrix
template<typename... Args>
std::ostream & operator<< (std::ostream &s, const MultiTypeBlockVector < Args... > &v)
Send MultiTypeBlockVector to an outstream.
DUNE_REGISTER_PRECONDITIONER ("amg", AMGCreator ())
template<typename G , typename EP , typename VM , typename EM >
PropertyMapTypeSelector< Amg::VertexVisitedTag , Amg::PropertiesGraph < G, Amg::VertexProperties , EP, VM, EM > >::Type get (const Amg::VertexVisitedTag &tag, Amg::PropertiesGraph < G, Amg::VertexProperties , EP, VM, EM > &graph)
DUNE_REGISTER_PRECONDITIONER ("ssor", defaultPreconditionerBlockLevelCreator < Dune::SeqSSOR >())
DUNE_REGISTER_PRECONDITIONER ("sor", defaultPreconditionerBlockLevelCreator < Dune::SeqSOR >())
DUNE_REGISTER_PRECONDITIONER ("gs", defaultPreconditionerBlockLevelCreator < Dune::SeqGS >())
DUNE_REGISTER_PRECONDITIONER ("jac", defaultPreconditionerBlockLevelCreator < Dune::SeqJac >())
DUNE_REGISTER_PRECONDITIONER ("ilu", defaultPreconditionerBlockLevelCreator < Dune::SeqILU >())
DUNE_REGISTER_PRECONDITIONER ("richardson", [](auto tl, const auto &, const ParameterTree &config){ using D=typename Dune::TypeListElement< 1, decltype(tl)>::type;using R=typename Dune::TypeListElement< 2, decltype(tl)>::type;return std::make_shared< Richardson < D, R > >(config);})
DUNE_REGISTER_PRECONDITIONER ("ildl", defaultPreconditionerCreator < Dune::SeqILDL >())
template<class G , class T1 , class T2 >
void fillIndexSetHoles (const G &graph, Dune::OwnerOverlapCopyCommunication < T1, T2 > &oocomm)
Fills the holes in an index set.
template<class G , class T1 , class T2 >
bool buildCommunication (const G &graph, std::vector< int > &realparts, Dune::OwnerOverlapCopyCommunication < T1, T2 > &oocomm, std::shared_ptr< Dune::OwnerOverlapCopyCommunication < T1, T2 > > &outcomm, RedistributeInterface &redistInf, bool verbose=false)
template<class S , class T >
void print_carray (S &os, T *array, std::size_t l)
template<class S , class T >
bool isValidGraph (std::size_t noVtx, std::size_t gnoVtx, S noEdges, T *xadj, T *adjncy, bool checkSymmetry)
template<class M , class T1 , class T2 >
bool commGraphRepartition (const M &mat , Dune::OwnerOverlapCopyCommunication < T1, T2 > &oocomm, Metis::idx_t nparts, std::shared_ptr< Dune::OwnerOverlapCopyCommunication < T1, T2 > > &outcomm, RedistributeInterface &redistInf, bool verbose=false)
template<class G , class T1 , class T2 >
bool graphRepartition (const G &graph, Dune::OwnerOverlapCopyCommunication < T1, T2 > &oocomm, Metis::idx_t nparts, std::shared_ptr< Dune::OwnerOverlapCopyCommunication < T1, T2 > > &outcomm, RedistributeInterface &redistInf, bool verbose=false)
execute a graph repartition for a giving graph and indexset.
template<class X , class Comm >
std::shared_ptr< ScalarProduct < X > > makeScalarProduct (std::shared_ptr< const Comm > comm, SolverCategory::Category category)
Choose the approriate scalar product for a solver category.
template<class X , class Comm >
std::shared_ptr< ScalarProduct < X > > createScalarProduct (const Comm &comm, SolverCategory::Category category)
template<class O , class Preconditioner >
std::shared_ptr< Preconditioner > wrapPreconditioner4Parallel (const std::shared_ptr< Preconditioner > &prec, const O &)
template<class M , class X , class Y , class C , class Preconditioner >
std::shared_ptr< Preconditioner > wrapPreconditioner4Parallel (const std::shared_ptr< Preconditioner > &prec, const std::shared_ptr< OverlappingSchwarzOperator < M, X, Y, C > > &op)
template<class M , class X , class Y , class C , class Preconditioner >
std::shared_ptr< Preconditioner > wrapPreconditioner4Parallel (const std::shared_ptr< Preconditioner > &prec, const std::shared_ptr< NonoverlappingSchwarzOperator < M, X, Y, C > > &op)
template<class M , class X , class Y >
std::shared_ptr< ScalarProduct < X > > createScalarProduct (const std::shared_ptr< MatrixAdapter < M, X, Y > > &)
template<class M , class X , class Y , class C >
std::shared_ptr< ScalarProduct < X > > createScalarProduct (const std::shared_ptr< OverlappingSchwarzOperator < M, X, Y, C > > &op)
template<class M , class X , class Y , class C >
std::shared_ptr< ScalarProduct < X > > createScalarProduct (const std::shared_ptr< NonoverlappingSchwarzOperator < M, X, Y, C > > &op)
template<class Operator >
std::shared_ptr< InverseOperator < typename Operator::domain_type, typename Operator::range_type > > getSolverFromFactory (std::shared_ptr< Operator > op, const ParameterTree &config, std::shared_ptr< Preconditioner < typename Operator::domain_type, typename Operator::range_type > > prec=nullptr)
Instantiates an InverseOperator
from an Operator and a configuration given as a ParameterTree.
template<template< class, class, class, int >class Preconditioner, int blockLevel = 1>
auto defaultPreconditionerBlockLevelCreator ()
template<template< class, class, class >class Preconditioner>
auto defaultPreconditionerCreator ()
template<template< class... >class Solver>
auto defaultIterativeSolverCreator ()
DUNE_REGISTER_ITERATIVE_SOLVER ("loopsolver", defaultIterativeSolverCreator < Dune::LoopSolver >())
DUNE_REGISTER_ITERATIVE_SOLVER ("gradientsolver", defaultIterativeSolverCreator < Dune::GradientSolver >())
DUNE_REGISTER_ITERATIVE_SOLVER ("cgsolver", defaultIterativeSolverCreator < Dune::CGSolver >())
DUNE_REGISTER_ITERATIVE_SOLVER ("bicgstabsolver", defaultIterativeSolverCreator < Dune::BiCGSTABSolver >())
DUNE_REGISTER_ITERATIVE_SOLVER ("minressolver", defaultIterativeSolverCreator < Dune::MINRESSolver >())
DUNE_REGISTER_ITERATIVE_SOLVER ("restartedgmressolver", defaultIterativeSolverCreator < Dune::RestartedGMResSolver >())
DUNE_REGISTER_ITERATIVE_SOLVER ("restartedflexiblegmressolver", defaultIterativeSolverCreator < Dune::RestartedFlexibleGMResSolver >())
DUNE_REGISTER_ITERATIVE_SOLVER ("generalizedpcgsolver", defaultIterativeSolverCreator < Dune::GeneralizedPCGSolver >())
DUNE_REGISTER_ITERATIVE_SOLVER ("restartedfcgsolver", defaultIterativeSolverCreator < Dune::RestartedFCGSolver >())
DUNE_REGISTER_ITERATIVE_SOLVER ("completefcgsolver", defaultIterativeSolverCreator < Dune::CompleteFCGSolver >())
DUNE_REGISTER_DIRECT_SOLVER ("spqr", Dune::SPQRCreator ())
DUNE_REGISTER_DIRECT_SOLVER ("superlu", SuperLUCreator ())
DUNE_REGISTER_DIRECT_SOLVER ("umfpack", Dune::UMFPackCreator ())