dune-istl  2.2.1
Namespaces | Classes | Typedefs | Enumerations | Functions
Dune Namespace Reference

Namespaces

namespace  Amg
 

Classes

class  base_array_unmanaged
 A simple array container for objects of type B. More...
 
class  base_array_window
 Extend base_array_unmanaged by functions to manipulate. More...
 
class  base_array
 This container extends base_array_unmanaged by memory management with the usual copy semantics providing the full range of copy constructor, destructor and assignment operators. More...
 
class  compressed_base_array_unmanaged
 A simple array container with non-consecutive index set. More...
 
struct  MatrixDimension
 
class  BCRSMatrix
 A sparse block matrix with compressed row storage. More...
 
class  BDMatrix
 A block-diagonal matrix. More...
 
class  BTDMatrix
 A block-tridiagonal matrix. More...
 
class  block_vector_unmanaged
 An unmanaged vector of blocks. More...
 
class  BlockVector
 A vector of blocks with memory management. More...
 
class  BlockVectorWindow
 
class  compressed_block_vector_unmanaged
 
class  CompressedBlockVectorWindow
 
class  DiagonalRowVectorConst
 
class  DiagonalRowVector
 
class  DiagonalMatrixWrapper
 
class  ContainerWrapperIterator
 Iterator class for sparse vector-like containers. More...
 
class  DiagonalMatrix
 A diagonal matrix of static size. More...
 
struct  const_reference< DiagonalRowVector< K, n > >
 
struct  const_reference< DiagonalRowVectorConst< K, n > >
 
struct  mutable_reference< DiagonalRowVector< K, n > >
 
struct  mutable_reference< DiagonalRowVectorConst< K, n > >
 
struct  BL
 compile-time parameter for block recursion depth More...
 
struct  algmeta_btsolve
 
struct  algmeta_btsolve< 0, withdiag, withrelax >
 
struct  algmeta_btsolve< 0, withdiag, norelax >
 
struct  algmeta_btsolve< 0, nodiag, withrelax >
 
struct  algmeta_btsolve< 0, nodiag, norelax >
 
struct  algmeta_bdsolve
 
struct  algmeta_bdsolve< 0, withrelax >
 
struct  algmeta_bdsolve< 0, norelax >
 
struct  algmeta_itsteps
 
struct  algmeta_itsteps< 0 >
 
class  MatrixBlockError
 
class  ILUSubdomainSolver
 base class encapsulating common algorithms of ILU0SubdomainSolver and ILUNSubdomainSolver. More...
 
class  ILU0SubdomainSolver
 Exact subdomain solver using ILU(p) with appropriate p. More...
 
class  ILUNSubdomainSolver
 
class  ISTLError
 derive error class from the base class in common More...
 
class  Matrix
 A generic dynamic dense matrix. More...
 
class  MatrixIndexSet
 Stores the nonzero entries in a sparse matrix. More...
 
class  MatrixMarketFormatError
 
struct  mm_multipliers
 
struct  mm_multipliers< BCRSMatrix< FieldMatrix< B, i, j >, A > >
 
struct  MatMultMatResult
 Helper TMP to get the result type of a sparse matrix matrix multiplication ( $C=A*B$) More...
 
struct  MatMultMatResult< FieldMatrix< T, n, k >, FieldMatrix< T, k, m > >
 
struct  MatMultMatResult< BCRSMatrix< FieldMatrix< T, n, k >, A >, BCRSMatrix< FieldMatrix< T, k, m >, A1 > >
 
struct  RedistributeInformation
 
class  RedistributeInformation< OwnerOverlapCopyCommunication< T, T1 > >
 
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< CommMatrixSparsityPattern< M, I > >
 
struct  CommMatrixRow
 Utility class for comunicating the matrix entries. More...
 
struct  CommPolicy< CommMatrixRow< M, I > >
 
struct  MatrixRowSizeGatherScatter
 
struct  MatrixCopyRowSizeGatherScatter
 
struct  MatrixSparsityPatternGatherScatter
 
struct  MatrixRowGatherScatter
 
class  FieldMatrix
 
struct  CheckIfDiagonalPresent
 Check whether the a matrix has diagonal values on blocklevel recursion levels. More...
 
struct  CheckIfDiagonalPresent< Matrix, 0, l >
 
class  MultiTypeBlockMatrix
 
struct  CheckIfDiagonalPresent< MultiTypeBlockMatrix< T1, T2, T3, T4, T5, T6, T7, T8, T9 >, blocklevel, l >
 
struct  MatrixDimension< BCRSMatrix< B, TA > >
 
struct  MatrixDimension< BCRSMatrix< FieldMatrix< B, n, m >, TA > >
 
struct  MatrixDimension< FieldMatrix< K, n, m > >
 
struct  MatrixDimension< Matrix< FieldMatrix< K, n, m >, TA > >
 
struct  IsMatrix
 Test whether a type is an ISTL Matrix. More...
 
struct  IsMatrix< DenseMatrix< T > >
 
struct  IsMatrix< BCRSMatrix< T, A > >
 
class  NonoverlappingSchwarzOperator
 A nonoverlapping operator with communication object. More...
 
class  NonoverlappingSchwarzScalarProduct
 Nonoverlapping Scalar Product with communication object. More...
 
struct  ScalarProductChooser< X, C, SolverCategory::nonoverlapping >
 
class  NonoverlappingBlockPreconditioner
 Nonoverlapping parallel preconditioner. More...
 
class  LinearOperator
 A linear operator. More...
 
class  AssembledLinearOperator
 A linear operator exporting itself in matrix form. More...
 
class  MatrixAdapter
 Adapter to turn a matrix into a linear operator. More...
 
class  SeqOverlappingSchwarz
 Sequential overlapping Schwarz preconditioner. More...
 
class  OverlappingSchwarzInitializer
 Initializer for SuperLU Matrices representing the subdomains. More...
 
struct  AdditiveSchwarzMode
 Tag that the tells the schwarz method to be additive. More...
 
struct  MultiplicativeSchwarzMode
 Tag that tells the Schwarz method to be multiplicative. More...
 
struct  SymmetricMultiplicativeSchwarzMode
 Tag that tells the Schwarz method to be multiplicative and symmetric. More...
 
class  DynamicMatrixSubdomainSolver
 Exact subdomain solver using Dune::DynamicMatrix<T>::solve. More...
 
class  DynamicMatrixSubdomainSolver< BCRSMatrix< FieldMatrix< K, n, n >, Al >, X, Y >
 
struct  OverlappingAssigner
 
class  OverlappingAssigner< DynamicMatrixSubdomainSolver< BCRSMatrix< FieldMatrix< K, n, n >, Al >, X, Y > >
 
struct  OverlappingAssigner< SuperLU< BCRSMatrix< FieldMatrix< T, n, m >, A > > >
 
class  OverlappingAssignerILUBase
 
class  OverlappingAssigner< ILU0SubdomainSolver< M, X, Y > >
 
class  OverlappingAssigner< ILUNSubdomainSolver< M, X, Y > >
 
struct  AdditiveAdder
 
struct  AdditiveAdder< S, BlockVector< FieldVector< T, n >, A > >
 
struct  MultiplicativeAdder
 
struct  MultiplicativeAdder< S, BlockVector< FieldVector< T, n >, A > >
 
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  IteratorDirectionSelector
 Helper template meta program for application of overlapping schwarz. More...
 
struct  IteratorDirectionSelector< T1, T2, false >
 
struct  SeqOverlappingSchwarzApplier
 Helper template meta program for application of overlapping schwarz. More...
 
struct  SeqOverlappingSchwarzApplier< SeqOverlappingSchwarz< M, X, SymmetricMultiplicativeSchwarzMode, TD, TA > >
 
struct  SeqOverlappingSchwarzAssembler
 
struct  SeqOverlappingSchwarzAssembler< DynamicMatrixSubdomainSolver< BCRSMatrix< FieldMatrix< K, n, n >, Al >, X, Y > >
 
struct  SeqOverlappingSchwarzAssembler< SuperLU< T > >
 
struct  SeqOverlappingSchwarzAssemblerILUBase
 
struct  SeqOverlappingSchwarzAssembler< ILU0SubdomainSolver< M, X, Y > >
 
struct  SeqOverlappingSchwarzAssembler< ILUNSubdomainSolver< M, X, Y > >
 
struct  SeqOverlappingSchwarzDomainSize
 
struct  SeqOverlappingSchwarzDomainSize< BCRSMatrix< FieldMatrix< T, n, m >, A > >
 
struct  OwnerOverlapCopyAttributeSet
 Attribute set for overlapping schwarz. More...
 
class  IndexInfoFromGrid
 Information about the index distribution. More...
 
class  OwnerOverlapCopyCommunication
 A class setting up standard communication for a two-valued attribute set with owner/overlap/copy semantics. More...
 
class  OverlappingSchwarzOperator
 An overlapping schwarz operator. More...
 
struct  PropertyMapTypeSelector< Amg::VertexVisitedTag, Amg::PropertiesGraph< G, Amg::VertexProperties, EP, VM, EM > >
 
struct  CommPolicy< Amg::GlobalAggregatesMap< T, TI > >
 
class  SeqPardiso
 The sequential Pardiso preconditioner. More...
 
struct  IsDirectSolver< SeqPardiso< M, X, Y > >
 
class  Preconditioner
 Base class for matrix free definition of preconditioners. More...
 
class  SeqSSOR
 Sequential SSOR preconditioner. More...
 
class  SeqSOR
 Sequential SOR preconditioner. More...
 
class  SeqGS
 Sequential Gauss Seidel preconditioner. More...
 
class  SeqJac
 The sequential jacobian preconditioner. More...
 
class  SeqILU0
 Sequential ILU0 preconditioner. More...
 
class  SeqILUn
 Sequential ILU(n) preconditioner. More...
 
class  Richardson
 Richardson preconditioner. More...
 
struct  RedistributeInterface
 
class  ScalarProduct
 Base class for scalar product and norm computation. More...
 
struct  ScalarProductChooser
 Choose the approriate scalar product for a solver category. More...
 
class  SeqScalarProduct
 Default implementation for the scalar case. More...
 
struct  ScalarProductChooser< X, C, SolverCategory::sequential >
 
class  ScaledIdentityMatrix
 A multiple of the identity matrix of static size. More...
 
class  OverlappingSchwarzScalarProduct
 Scalar product for overlapping schwarz methods. More...
 
struct  ScalarProductChooser< X, C, SolverCategory::overlapping >
 
class  ParSSOR
 A parallel SSOR preconditioner. More...
 
class  BlockPreconditioner
 Block parallel preconditioner. More...
 
struct  SolverCategory
 Categories for the solvers. More...
 
struct  InverseOperatorResult
 Statistics about the application of an inverse operator. More...
 
class  InverseOperator
 Abstract base class for all solvers. More...
 
class  LoopSolver
 Preconditioned loop solver. More...
 
class  GradientSolver
 gradient method More...
 
class  CGSolver
 conjugate gradient method More...
 
class  BiCGSTABSolver
 Bi-conjugate Gradient Stabilized (BiCG-STAB) More...
 
class  MINRESSolver
 Minimal Residual Method (MINRES) More...
 
class  RestartedGMResSolver
 implements the Generalized Minimal Residual (GMRes) method More...
 
struct  IsDirectSolver
 
class  SuperLU
 
struct  SuperLUSolveChooser
 
struct  SuperLUDenseMatChooser
 
struct  SuperLUQueryChooser
 
struct  QuerySpaceChooser
 
struct  SuperLUDenseMatChooser< double >
 
struct  SuperLUSolveChooser< double >
 
struct  QuerySpaceChooser< double >
 
class  SuperLU< BCRSMatrix< FieldMatrix< T, n, m >, A > >
 SuperLu Solver. More...
 
struct  IsDirectSolver< SuperLU< BCRSMatrix< FieldMatrix< T, n, m >, A > > >
 
struct  SuperMatrixCreateSparseChooser
 
struct  SuperMatrixPrinter
 
struct  SuperMatrixCreateSparseChooser< float >
 
struct  SuperMatrixPrinter< float >
 
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...
 
struct  BaseGetSuperLUType
 
struct  GetSuperLUType
 
struct  GetSuperLUType< double >
 
struct  GetSuperLUType< float >
 
struct  GetSuperLUType< std::complex< double > >
 
struct  GetSuperLUType< std::complex< float > >
 
struct  SuperLUMatrix
 Utility class for converting an ISTL Matrix into a SuperLU Matrix. More...
 
struct  SuperMatrixInitializer
 
class  SuperLUMatrix< BCRSMatrix< FieldMatrix< B, n, m >, TA > >
 Converter for BCRSMatrix to SuperLU Matrix. More...
 
class  SuperMatrixInitializer< BCRSMatrix< FieldMatrix< T, n, m >, A > >
 
class  VariableBlockVector
 A Vector of blocks with different blocksizes. More...
 

Typedefs

typedef std::size_t idxtype
 

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 M , class K , int n>
void istl_assign_to_fmatrix (DenseMatrix< M > &fm, const DiagonalMatrix< K, n > &s)
 
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 > bl)
 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 > bl)
 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 > bl)
 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 > bl)
 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 > bl)
 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 > bl)
 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 > bl)
 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 > bl)
 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 > bl)
 SSOR 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 > bl)
 Jacobi step. More...
 
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)
 
template<class K , int n, int m>
K & firstmatrixelement (FieldMatrix< K, n, m > &A)
 
template<class K >
K & firstmatrixelement (FieldMatrix< K, 1, 1 > &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, int precision)
 
template<class K , int n>
void recursive_printvector (std::ostream &s, const FieldVector< K, n > &v, std::string rowtext, int &counter, int columns, int width, int precision)
 
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 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)
 print one row of a matrix More...
 
template<class K , int n, int m>
void print_row (std::ostream &s, const FieldMatrix< K, n, m > &A, typename FieldMatrix< K, n, m >::size_type I, typename FieldMatrix< K, n, m >::size_type J, typename FieldMatrix< K, n, m >::size_type therow, int width, int precision)
 print one row of a matrix, specialization for FieldMatrix More...
 
template<class K >
void print_row (std::ostream &s, const FieldMatrix< K, 1, 1 > &A, 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)
 print one row of a matrix, specialization for FieldMatrix<K,1,1> More...
 
template<class M >
void printmatrix (std::ostream &s, const M &A, std::string title, std::string rowtext, int width=10, int precision=2)
 Prints 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 , int rows, int cols>
void writeMatrixToMatlabHelper (const FieldMatrix< FieldType, rows, cols > &matrix, int rowOffset, int colOffset, std::ostream &s)
 Helper method for the writeMatrixToMatlab routine. More...
 
template<class MatrixType >
void writeMatrixToMatlabHelper (const MatrixType &matrix, int externalRowOffset, int externalColOffset, std::ostream &s)
 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...
 
void mm_read_header (std::size_t &rows, std::size_t &cols, MMHeader &header, std::istream &istr, bool isVector)
 
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 , int entries>
void readMatrixMarket (Dune::BlockVector< Dune::FieldVector< T, entries >, A > &vector, std::istream &istr)
 Reads a BlockVector from a matrix market file. More...
 
template<typename T , typename A , int brows, int bcols>
void readMatrixMarket (Dune::BCRSMatrix< Dune::FieldMatrix< T, brows, bcols >, A > &matrix, std::istream &istr)
 Reads a sparse matrix from a matrix market file. More...
 
template<typename B , int i, int j>
void mm_print_entry (const FieldMatrix< B, i, j > &entry, typename FieldMatrix< B, i, j >::size_type rowidx, typename FieldMatrix< B, i, j >::size_type colidx, std::ostream &ostr)
 
template<typename V >
void mm_print_vector_entry (const V &entry, std::ostream &ostr, const integral_constant< int, 1 > &)
 
template<typename V >
void mm_print_vector_entry (const V &vector, std::ostream &ostr, const integral_constant< int, 0 > &)
 
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 integral_constant< int, 0 > &)
 
template<typename M >
void writeMatrixMarket (const M &matrix, std::ostream &ostr, const 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 , typename G , typename L >
void storeMatrixMarket (const M &matrix, std::string filename, const OwnerOverlapCopyCommunication< G, L > &comm, bool storeIndices=true)
 Stores a parallel matrix/vector in matrix market format in a file. More...
 
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. 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 , 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. More...
 
template<class M >
int countNonZeros (const M &matrix)
 Get the number of nonzero fields in the matrix. More...
 
template<class M , class C >
void printGlobalSparseMatrix (const M &mat, C &ooc, std::ostream &os)
 
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)
 
template<class G , class T1 , class T2 >
void fillIndexSetHoles (const G &graph, Dune::OwnerOverlapCopyCommunication< T1, T2 > &oocomm)
 Fills the holes in an index set. More...
 
template<class G , class T1 , class T2 >
bool buildCommunication (const G &graph, std::vector< int > &realparts, Dune::OwnerOverlapCopyCommunication< T1, T2 > &oocomm, 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)
 
bool isValidGraph (std::size_t noVtx, std::size_t gnoVtx, idxtype noEdges, idxtype *xadj, idxtype *adjncy, bool checkSymmetry)
 
template<class M , class T1 , class T2 >
bool commGraphRepartition (const M &mat, Dune::OwnerOverlapCopyCommunication< T1, T2 > &oocomm, int nparts, 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, int nparts, Dune::OwnerOverlapCopyCommunication< T1, T2 > *&outcomm, RedistributeInterface &redistInf, bool verbose=false)
 execute a graph repartition for a giving graph and indexset. More...
 
template<class M , class K , int n>
void istl_assign_to_fmatrix (DenseMatrix< M > &fm, const ScaledIdentityMatrix< K, n > &s)
 
template<class T , class A , int n, int m>
void writeCompColMatrixToMatlab (const SuperLUMatrix< BCRSMatrix< FieldMatrix< T, n, m >, A > > &mat, std::ostream &os)
 
template<class F , class MRS >
void copyToSuperMatrix (F &initializer, const MRS &mrs)
 
template<class F , class M , class S >
void copyToSuperMatrix (F &initializer, const MatrixRowSubset< M, S > &mrs)
 
template<class B , class TA , int n, int m>
bool operator== (SuperLUMatrix< BCRSMatrix< FieldMatrix< B, n, m >, TA > > &sla, BCRSMatrix< FieldMatrix< B, n, m >, TA > &a)
 

Typedef Documentation

typedef std::size_t Dune::idxtype

Function Documentation

template<class G , class T1 , class T2 >
bool Dune::buildCommunication ( const G &  graph,
std::vector< int > &  realparts,
Dune::OwnerOverlapCopyCommunication< T1, T2 > &  oocomm,
Dune::OwnerOverlapCopyCommunication< T1, T2 > *&  outcomm,
RedistributeInterface &  redistInf,
bool  verbose = false 
)
template<class M , class T1 , class T2 >
bool Dune::commGraphRepartition ( const M &  mat,
Dune::OwnerOverlapCopyCommunication< T1, T2 > &  oocomm,
int  nparts,
Dune::OwnerOverlapCopyCommunication< T1, T2 > *&  outcomm,
RedistributeInterface &  redistInf,
bool  verbose = false 
)
template<class F , class MRS >
void Dune::copyToSuperMatrix ( F &  initializer,
const MRS &  mrs 
)
template<class F , class M , class S >
void Dune::copyToSuperMatrix ( F &  initializer,
const MatrixRowSubset< M, S > &  mrs 
)
template<class G , class T1 , class T2 >
void Dune::fillIndexSetHoles ( const G &  graph,
Dune::OwnerOverlapCopyCommunication< T1, T2 > &  oocomm 
)

Fills the holes in an index set.

In general the index set only needs to know those indices where communication my occur. In usual FE computations these are just those near the processor boundaries.

For the repartitioning we need to know all all indices for which data is stored. The missing indices will be created in this method.

Parameters
graphThe graph to reparition.
oocommThe communication information.

References Dune::OwnerOverlapCopyCommunication< GlobalIdType, LocalIdType >::buildGlobalLookup(), Dune::OwnerOverlapCopyCommunication< GlobalIdType, LocalIdType >::communicator(), Dune::OwnerOverlapCopyCommunication< GlobalIdType, LocalIdType >::freeGlobalLookup(), Dune::OwnerOverlapCopyCommunication< GlobalIdType, LocalIdType >::globalLookup(), Dune::OwnerOverlapCopyCommunication< GlobalIdType, LocalIdType >::indexSet(), Dune::OwnerOverlapCopyAttributeSet::owner, and Dune::OwnerOverlapCopyCommunication< GlobalIdType, LocalIdType >::remoteIndices().

Referenced by commGraphRepartition(), and graphRepartition().

template<typename G , typename EP , typename VM , typename EM >
PropertyMapTypeSelector<Amg::VertexVisitedTag,Amg::PropertiesGraph<G,Amg::VertexProperties,EP,VM,EM> >::Type Dune::get ( const Amg::VertexVisitedTag &  tag,
Amg::PropertiesGraph< G, Amg::VertexProperties, EP, VM, EM > &  graph 
)
template<class G , class T1 , class T2 >
bool Dune::graphRepartition ( const G &  graph,
Dune::OwnerOverlapCopyCommunication< T1, T2 > &  oocomm,
int  nparts,
Dune::OwnerOverlapCopyCommunication< T1, T2 > *&  outcomm,
RedistributeInterface &  redistInf,
bool  verbose = false 
)

execute a graph repartition for a giving graph and indexset.

This function provides repartition functionality using the PARMETIS library

Parameters
graphThe given graph to repartition
oocommThe parallel information about the graph.
npartsThe number of domains the repartitioning should achieve.
[out]outcommPointer store the parallel information of the redistributed domains in.
redistInfRedistribute interface
verboseVerbosity flag to give out additional information.

References buildCommunication(), Dune::OwnerOverlapCopyCommunication< GlobalIdType, LocalIdType >::buildGlobalLookup(), Dune::OwnerOverlapCopyCommunication< GlobalIdType, LocalIdType >::communicator(), Dune::OwnerOverlapCopyCommunication< GlobalIdType, LocalIdType >::copyCopyToAll(), Dune::OwnerOverlapCopyCommunication< GlobalIdType, LocalIdType >::copyOwnerToAll(), fillIndexSetHoles(), Dune::OwnerOverlapCopyCommunication< GlobalIdType, LocalIdType >::getSolverCategory(), Dune::OwnerOverlapCopyCommunication< GlobalIdType, LocalIdType >::globalLookup(), index, and Dune::OwnerOverlapCopyCommunication< GlobalIdType, LocalIdType >::indexSet().

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

template<class M , class K , int n>
void Dune::istl_assign_to_fmatrix ( DenseMatrix< M > &  fm,
const ScaledIdentityMatrix< K, n > &  s 
)
bool Dune::isValidGraph ( std::size_t  noVtx,
std::size_t  gnoVtx,
idxtype  noEdges,
idxtype *  xadj,
idxtype *  adjncy,
bool  checkSymmetry 
)
inline

Referenced by commGraphRepartition().

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

Send BlockVector to an output stream.

template<class B , class TA , int n, int m>
bool Dune::operator== ( SuperLUMatrix< BCRSMatrix< FieldMatrix< B, n, m >, TA > > &  sla,
BCRSMatrix< FieldMatrix< B, n, m >, TA > &  a 
)
template<class S , class T >
void Dune::print_carray ( S &  os,
T *  array,
std::size_t  l 
)
inline

Referenced by commGraphRepartition().

template<class M , class C >
void Dune::printGlobalSparseMatrix ( const M &  mat,
C &  ooc,
std::ostream &  os 
)
template<typename M , typename C >
void Dune::redistributeMatrix ( M &  origMatrix,
M &  newMatrix,
C &  origComm,
C &  newComm,
RedistributeInformation< C > &  ri 
)

Redistribute a matrix according to given domain decompositions.

All the parameters for this function can be obtained by calling graphRepartition with the graph of the original matrix.

Parameters
origMatrixThe matrix on the original partitioning.
newMatrixAn empty matrix to store the new redistributed matrix in.
origCommThe parallel information of the original partitioning.
newCommThe parallel information of the new partitioning.
riThe remote index information between the original and the new partitioning. Upon exit of this method it will be prepared for copying from owner to owner vertices for data redistribution.
Template Parameters
MThe matrix type. It is assumed to be sparse. E.g. BCRSMatrix.
CThe type of the parallel information, see OwnerOverlapCopyCommunication.

References redistributeMatrixEntries(), redistributeSparsityPattern(), Dune::RedistributeInformation< T >::setNoBackwardsCopyRows(), Dune::RedistributeInformation< T >::setNoCopyRows(), and Dune::RedistributeInformation< T >::setNoRows().

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

template<typename M , typename C >
void Dune::redistributeMatrixEntries ( M &  origMatrix,
M &  newMatrix,
C &  origComm,
C &  newComm,
RedistributeInformation< C > &  ri 
)
template<typename M , typename C >
void Dune::redistributeSparsityPattern ( M &  origMatrix,
M &  newMatrix,
C &  origComm,
C &  newComm,
RedistributeInformation< C > &  ri 
)
template<class T , class A , int n, int m>
void Dune::writeCompColMatrixToMatlab ( const SuperLUMatrix< BCRSMatrix< FieldMatrix< T, n, m >, A > > &  mat,
std::ostream &  os 
)

References col, mat, and row.