dune-istl  2.7.1
About: dune-istl - DUNE (Distributed and Unified Numerics Environment) is a modular toolbox for solving partial differential equations (PDEs) with grid-based methods: DUNE Iterative Solver Template Library.
  Fossies Dox: dune-istl-2.7.1.tar.gz  ("unofficial" and yet experimental doxygen-generated source code documentation)  

Namespaces

 Amg
 
 CounterImpl
 
 ILU
 
 Imp
 Everything in this namespace is internal to dune-istl, and may change without warning.
 
 Impl
 
 MatrixImp
 
 MatrixMarketImpl
 
 Metis
 

Classes

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  AssembledLinearOperator
 A linear operator exporting itself in matrix form. More...
 
struct  AutonomousValueType< Imp::BlockVectorWindow< B, A > >
 Specialization for the proxies of BlockVectorWindow More...
 
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 >
 
class  Cholmod
 
class  Cholmod< BlockVector< FieldVector< T, k >, A > >
 Dune wrapper for SuiteSparse/CHOLMOD solver. More...
 
struct  CholmodCreator
 
class  ColCompMatrix
 Utility class for converting an ISTL Matrix into a column-compressed matrix. More...
 
class  ColCompMatrixInitializer
 Inititializer for the ColCompMatrix as needed by OverlappingSchwarz. More...
 
class  CompleteFCGSolver
 Complete flexible conjugate gradient method. More...
 
struct  CompressionStatistics
 Statistics about compression achieved in implicit mode. More...
 
struct  DefaultAllocatorTraits
 
struct  DefaultAllocatorTraits< T, 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...
 
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  ImplicitModeOverflowExhausted
 The overflow error used during implicit BCRSMatrix construction was exhausted. More...
 
class  IndexInfoFromGrid
 Information about the index distribution. More...
 
class  InvalidSolverCategory
 
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  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  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 ( $C=A*B$) 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
 
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
 
class  MatrixRowSet
 Provides access to an iterator over all matrix rows. More...
 
class  MatrixRowSubset
 Provides access to an iterator over an arbitrary subset of matrix rows. More...
 
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 >
 
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  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  RedistributeInformation
 
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
 Sequential ILU0 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...
 
struct  StoresColumnCompressed
 
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 ( $C=A*B$) 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  UnsupportedType
 
class  VariableBlockVector
 A Vector of blocks with different blocksizes. More...
 

Typedefs

template<typename T >
using AllocatorType = typename AllocatorTraits< T >::type
 
template<typename T , typename X >
using ReboundAllocatorType = typename std::allocator_traits< typename AllocatorTraits< T >::type >::template rebind_alloc< X >
 
template<typename T >
using OverlappingAssigner = OverlappingAssignerHelper< T, Dune::StoresColumnCompressed< T >::value >
 
template<class T >
using SeqOverlappingSchwarzAssembler = SeqOverlappingSchwarzAssemblerHelper< T, Dune::StoresColumnCompressed< T >::value >
 
template<class M , class X , class Y , int l = 1>
using SeqGS = SeqSOR< M, X, Y, l >
 Sequential Gauss Seidel preconditioner. More...
 
template<class M , class X , class Y >
using DirectSolverSignature = std::shared_ptr< InverseOperator< X, Y > >(const M &, const ParameterTree &)
 
template<class M , class X , class Y >
using DirectSolverFactory = Singleton< ParameterizedObjectFactory< DirectSolverSignature< M, X, Y > >>
 
template<class M , class X , class Y >
using PreconditionerSignature = std::shared_ptr< Preconditioner< X, Y > >(const M &, const ParameterTree &)
 
template<class M , class X , class Y >
using PreconditionerFactory = Singleton< ParameterizedObjectFactory< PreconditionerSignature< M, X, Y > >>
 
template<class X , class Y >
using IterativeSolverSignature = std::shared_ptr< InverseOperator< X, Y > >(const std::shared_ptr< LinearOperator< X, Y > > &, const std::shared_ptr< ScalarProduct< X > > &, const std::shared_ptr< Preconditioner< X, Y > >, const ParameterTree &)
 
template<class X , class Y >
using IterativeSolverFactory = Singleton< ParameterizedObjectFactory< IterativeSolverSignature< X, Y > >>
 

Enumerations

enum  WithDiagType { withdiag =1 , nodiag =0 }
 
enum  WithRelaxType { withrelax =1 , norelax =0 }
 

Functions

template<class K , class A >
std::ostream & operator<< (std::ostream &s, const BlockVector< K, A > &v)
 Send BlockVector to an output stream. More...
 
template<class F , class MRS >
void copyToColCompMatrix (F &initializer, const MRS &mrs)
 
template<class F , class M , class S >
void copyToColCompMatrix (F &initializer, const MatrixRowSubset< M, S > &mrs)
 
template<class M , class X , class Y >
void bltsolve (const M &A, X &v, const Y &d)
 block lower triangular solve More...
 
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 More...
 
template<class M , class X , class Y >
void ubltsolve (const M &A, X &v, const Y &d)
 unit block lower triangular solve More...
 
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 More...
 
template<class M , class X , class Y >
void butsolve (const M &A, X &v, const Y &d)
 block upper triangular solve More...
 
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 More...
 
template<class M , class X , class Y >
void ubutsolve (const M &A, X &v, const Y &d)
 unit block upper triangular solve More...
 
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 More...
 
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 More...
 
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 More...
 
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 More...
 
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 More...
 
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 More...
 
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 More...
 
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 More...
 
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 More...
 
template<class M , class X , class Y >
void bdsolve (const M &A, X &v, const Y &d)
 block diagonal solve, no relaxation More...
 
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 More...
 
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 More...
 
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 More...
 
template<class M , class X , class Y , class K >
void dbgs (const M &A, X &x, const Y &b, const K &w)
 GS step. More...
 
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. More...
 
template<class M , class X , class Y , class K >
void bsorf (const M &A, X &x, const Y &b, const K &w)
 SOR step. More...
 
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. More...
 
template<class M , class X , class Y , class K >
void bsorb (const M &A, X &x, const Y &b, const K &w)
 SSOR step. More...
 
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. More...
 
template<class M , class X , class Y , class K >
void dbjac (const M &A, X &x, const Y &b, const K &w)
 Jacobi step. More...
 
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. More...
 
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 More...
 
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)
 compute ILU decomposition of A. A is overwritten by its decomposition More...
 
template<class M , class X , class Y >
void bilu_backsolve (const M &A, X &v, const Y &d)
 LU backsolve with stored inverse. More...
 
template<class M >
M::field_type & firstmatrixelement (M &A, typename std::enable_if_t<!Dune::IsNumber< M >::value > *sfinae=nullptr)
 
template<class K >
K & firstmatrixelement (K &A, typename std::enable_if_t< Dune::IsNumber< K >::value > *sfinae=nullptr)
 
template<class K , int n, int m>
K & firstmatrixelement (FieldMatrix< K, n, 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. More...
 
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. More...
 
void fill_row (std::ostream &s, int m, int width, int precision)
 Print a row of zeros for a non-existing block. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
template<class MatrixType >
void writeMatrixToMatlab (const MatrixType &matrix, const std::string &filename, int outputPrecision=18)
 Writes sparse matrix in a Matlab-readable format. More...
 
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. More...
 
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)
 
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)
 
template<typename T , typename A >
void readMatrixMarket (Dune::BlockVector< T, A > &vector, std::istream &istr)
 Reads a BlockVector from a matrix market file. More...
 
template<typename T , typename A >
void readMatrixMarket (Dune::BCRSMatrix< T, A > &matrix, std::istream &istr)
 Reads a sparse matrix from a matrix market file. More...
 
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 > &)
 
template<typename V >
void mm_print_vector_entry (const V &vector, std::ostream &ostr, const std::integral_constant< int, 0 > &)
 
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. More...
 
template<typename M >
void storeMatrixMarket (const M &matrix, std::string filename)
 Stores a parallel matrix/vector in matrix market format in a file. More...
 
template<typename M >
void loadMatrixMarket (M &matrix, const std::string &filename)
 Load a matrix/vector stored in matrix market format. More...
 
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 ( $C=A*B^T$). More...
 
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 ( $C=A*B$). More...
 
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 ( $C=A^T*B$). More...
 
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 &matrix, typename std::enable_if_t< Dune::IsNumber< M >::value > *sfinae=nullptr)
 Get the number of nonzero fields in the matrix. More...
 
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 More...
 
template<typename... Args>
std::ostream & operator<< (std::ostream &s, const MultiTypeBlockVector< Args... > &v)
 Send MultiTypeBlockVector to an outstream. More...
 
 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 &mat, 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 P , class T1 , class T2 , class R >
bool graphRepartition (const G &graph, P &oocomm, int nparts, std::shared_ptr< P > &outcomm, R &redistInf, bool v=false)
 
template<class G , class P , class T1 , class T2 , class R >
bool commGraphRepartition (const G &graph, P &oocomm, int nparts, std::shared_ptr< P > &outcomm, R &redistInf, bool v=false)
 
template<class X , class Comm >
std::shared_ptr< ScalarProduct< X > > createScalarProduct (const Comm &comm, SolverCategory::Category category)
 Choose the approriate scalar product for a solver category. More...
 
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 ()
 
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. More...
 
 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 >())
 

Typedef Documentation

◆ AllocatorType

template<typename T >
using Dune::AllocatorType = typedef typename AllocatorTraits<T>::type

Definition at line 30 of file allocator.hh.

◆ ReboundAllocatorType

template<typename T , typename X >
using Dune::ReboundAllocatorType = typedef typename std::allocator_traits<typename AllocatorTraits<T>::type>::template rebind_alloc<X>

Definition at line 33 of file allocator.hh.

Function Documentation

◆ bildl_backsolve()

template<class Matrix , class X , class Y >
void Dune::bildl_backsolve ( const Matrix A,
X &  v,
const Y &  d,
bool  isLowerTriangular = false 
)
inline

◆ bildl_decompose()

template<class Matrix >
void Dune::bildl_decompose ( Matrix A)
inline

compute ILDL decomposition of a symmetric matrix A

Author
Martin Nolte
Parameters
[in,out]Amatrix to decompose
Note
A is overwritten by the factorization.
Only the lower half of A is used.

Definition at line 86 of file ildl.hh.

References A, Dune::Matrix< T, A >::begin(), bildl_subtractBCT(), Dune::Matrix< T, A >::end(), and Dune::MatrixBlockError::r.

Referenced by Dune::SeqILDL< M, X, Y >::SeqILDL().

◆ bildl_subtractBCT() [1/3]

template<class K , int m, int n>
static void Dune::bildl_subtractBCT ( const FieldMatrix< K, m, n > &  B,
const FieldMatrix< K, m, n > &  CT,
FieldMatrix< K, m, n > &  A 
)
inlinestatic

Definition at line 22 of file ildl.hh.

References A.

Referenced by bildl_decompose(), and bildl_subtractBCT().

◆ bildl_subtractBCT() [2/3]

template<class K >
static void Dune::bildl_subtractBCT ( const K &  B,
const K &  CT,
K &  A,
typename std::enable_if_t< Dune::IsNumber< K >::value > *  sfinae = nullptr 
)
inlinestatic

Definition at line 35 of file ildl.hh.

References A.

◆ bildl_subtractBCT() [3/3]

template<class Matrix >
static void Dune::bildl_subtractBCT ( const Matrix B,
const Matrix CT,
Matrix A,
typename std::enable_if_t<!Dune::IsNumber< Matrix >::value > *  sfinae = nullptr 
)
inlinestatic

◆ commGraphRepartition()

template<class G , class P , class T1 , class T2 , class R >
bool Dune::commGraphRepartition ( const G &  graph,
P &  oocomm,
int  nparts,
std::shared_ptr< P > &  outcomm,
R &  redistInf,
bool  v = false 
)

Definition at line 1934 of file repartition.hh.

Referenced by Dune::Amg::repartitionAndDistributeMatrix().

◆ copyToColCompMatrix() [1/2]

template<class F , class M , class S >
void Dune::copyToColCompMatrix ( F &  initializer,
const MatrixRowSubset< M, S > &  mrs 
)

◆ copyToColCompMatrix() [2/2]

template<class F , class MRS >
void Dune::copyToColCompMatrix ( F &  initializer,
const MRS &  mrs 
)

Definition at line 473 of file colcompmatrix.hh.

References col, and row.

Referenced by Dune::ColCompMatrix< Mat, I >::setMatrix().

◆ createScalarProduct()

template<class X , class Comm >
std::shared_ptr<ScalarProduct<X> > Dune::createScalarProduct ( const Comm &  comm,
SolverCategory::Category  category 
)

Choose the approriate scalar product for a solver category.

Todo:
this helper function should be replaced by a proper factory

As there is only one scalar product for each solver category it is possible to choose the appropriate product at compile time.

In each specialization of the this struct there will be a typedef ScalarProduct available the defines the type of the scalar product.

Definition at line 203 of file scalarproducts.hh.

References Dune::SolverCategory::sequential.

◆ DUNE_REGISTER_PRECONDITIONER()

Dune::DUNE_REGISTER_PRECONDITIONER ( "amg"  ,
AMGCreator()   
)

◆ get()

◆ graphRepartition()

template<class G , class P , class T1 , class T2 , class R >
bool Dune::graphRepartition ( const G &  graph,
P &  oocomm,
int  nparts,
std::shared_ptr< P > &  outcomm,
R &  redistInf,
bool  v = false 
)

Definition at line 1923 of file repartition.hh.

Referenced by Dune::Amg::repartitionAndDistributeMatrix().

◆ operator<<()

template<class K , class A >
std::ostream& Dune::operator<< ( std::ostream &  s,
const BlockVector< K, A > &  v 
)

Send BlockVector to an output stream.

Definition at line 650 of file bvector.hh.

References Dune::Imp::base_array_unmanaged< B, A >::size().

◆ printGlobalSparseMatrix()

template<class M , class C >
void Dune::printGlobalSparseMatrix ( const M &  mat,
C &  ooc,
std::ostream &  os 
)

◆ redistributeMatrix()

template<typename M >
void Dune::redistributeMatrix ( M &  origMatrix,
M &  newMatrix,
Dune::Amg::SequentialInformation origComm,
Dune::Amg::SequentialInformation newComm,
RedistributeInformation< Dune::Amg::SequentialInformation > &  ri 
)

Definition at line 856 of file matrixredistribute.hh.

Referenced by Dune::Amg::repartitionAndDistributeMatrix().

◆ redistributeMatrixEntries()

template<typename M >
void Dune::redistributeMatrixEntries ( M &  origMatrix,
M &  newMatrix,
Dune::Amg::SequentialInformation origComm,
Dune::Amg::SequentialInformation newComm,
RedistributeInformation< Dune::Amg::SequentialInformation > &  ri 
)