DUNE PDELab (git)

Dune namespace. More...

Namespaces

namespace  Capabilities
 Contains all capabilities classes.
 
namespace  Concept
 Namespace for concepts.
 
namespace  FloatCmp
 
namespace  GeoGrid
 namespace containing the implementations of GeometryGrid
 
namespace  GeometryTypes
 Predefined GeometryTypes for common geometries.
 
namespace  Indices
 Namespace with predefined compile time indices for the range [0,19].
 
namespace  MathOverloads
 namespace for customization of math functions with Dune-Semantics
 
namespace  Partitions
 Predefined PartitionSets for commonly used combinations of parallel grid PartitionTypes.
 
namespace  QuadratureType
 Defines an enum for currently available quadrature rules.
 
namespace  RefinementImp
 This namespace contains the implementation of Refinement.
 
namespace  Simd
 Namespace for vectorization interface functions used by library developers.
 
namespace  Std
 Namespace for features backported from new C++ standards.
 

Classes

class  AdaptDataHandleInterface
 Interface class for the Grid's adapt method where the parameter is a AdaptDataHandleInterface. More...
 
struct  AdderSelector
 template meta program for choosing how to add the correction. More...
 
struct  AdditiveSchwarzMode
 Tag that the tells the Schwarz method to be additive. More...
 
struct  AddPtrTypeEvaluator
 TypeEvaluator to turn a type T into a pointer to T More...
 
struct  AddRefTypeEvaluator
 TypeEvaluator to turn a type T into a reference to T More...
 
class  AffineGeometry
 Implementation of the Geometry interface for affine geometries. More...
 
class  AlbertaGrid
 [ provides Dune::Grid ] More...
 
class  AlbertaGridEntity
 
class  AlbertaGridEntity< 0, dim, Grid >
 
class  AlbertaGridGeometry
 geometry implementation for AlbertaGrid More...
 
class  AlbertaGridHierarchicIterator
 
class  AlbertaGridIdSet
 hierarchic index set of AlbertaGrid More...
 
class  AlbertaGridTreeIterator
 
class  AlbertaMarkerVector
 marker assigning subentities to one element containing them More...
 
class  AlignedAllocator
 Allocators which guarantee alignment of the memory. More...
 
struct  AlignedBase
 CRTP base mixin class to check alignment. More...
 
class  AllSet
 A set containing everything. More...
 
struct  AlwaysFalse
 template which always yields a false value More...
 
struct  AlwaysTrue
 template which always yields a true value More...
 
class  AnalyticalCoordFunction
 Derive an implementation of an analytical coordinate function from this class. More...
 
class  AnalyticalCoordFunctionInterface
 Interface class for using an analytical function to define the geometry of a Dune::GeometryGrid. An implementation should be derived from Dune::AnalyticalCoordFunction and the evaluate method mapping \( R^d\to R^r \) has to be supplied. More...
 
class  ArithmeticTestSuite
 Test suite for arithmetic types. More...
 
class  ArPackPlusPlus_Algorithms
 Wrapper to use a range of ARPACK++ eigenvalue solvers. More...
 
class  ArrayList
 A dynamically growing random access list. More...
 
class  ArrayListIterator
 A random access iterator for the Dune::ArrayList class. More...
 
class  AssembledLinearOperator
 A linear operator exporting itself in matrix form. More...
 
class  AssociativePropertyMap
 An adapter to turn an unique associative container into a property map. More...
 
struct  At
 Reverse element access. More...
 
struct  AtType
 Type for reverse element access. More...
 
struct  AutonomousValueType
 Type free of internal references that T can be converted to. More...
 
struct  AutonomousValueType< const T >
 Specialization to remove const qualifiers. More...
 
struct  AutonomousValueType< Simd::VcImpl::Proxy< V > >
 Specialization of AutonomousValue for Vc proxies. More...
 
struct  AutonomousValueType< std::vector< bool >::reference >
 Specialization for the proxies of vector<bool> More...
 
struct  AutonomousValueType< T & >
 Specialization to remove lvalue references. More...
 
struct  AutonomousValueType< T && >
 Specialization to remove rvalue references. More...
 
struct  AutonomousValueType< volatile const T >
 Specialization to remove both const and volatile qualifiers. More...
 
struct  AutonomousValueType< volatile T >
 Specialization to remove volatile qualifiers. More...
 
class  AxisAlignedCubeGeometry
 A geometry implementation for axis-aligned hypercubes. More...
 
struct  b64chunk
 struct representing the three byte text as well as the four 6 bit chunks More...
 
class  BackupRestoreFacility
 facility for writing and reading grids More...
 
struct  BackupRestoreFacility< const Grid >
 BackupRestoreFacility taking const Grid as type and deriving from the version with the const. More...
 
struct  BackupRestoreFacility< Dune::YaspGrid< dim, Coordinates > >
 facility for writing and reading grids More...
 
struct  BackupRestoreFacility< YaspGrid< dim, TensorProductCoordinates< ctype, dim > > >
 facility for writing and reading grids More...
 
class  Base64Stream
 class to base64 encode a stream of data More...
 
class  BasisInterface
 Interface for global-valued shape functions. More...
 
struct  BasisInterfaceSwitch
 Switch for uniform treatment of local and global basis classes. More...
 
class  BCRSMatrix
 A sparse block matrix with compressed row storage. More...
 
class  BCRSMatrixError
 Error specific to BCRSMatrix. More...
 
class  BDFMCubeLocalBasis
 Brezzi-Douglas-Fortin-Marini shape functions on a reference cube. More...
 
class  BDFMCubeLocalBasis< D, R, 2, 1 >
 First order Brezzi-Douglas-Fortin-Marini shape functions on the reference quadrialteral. More...
 
class  BDFMCubeLocalBasis< D, R, 2, 2 >
 Second order Brezzi-Douglas-Fortin-Marini shape functions on the reference quadrialteral. More...
 
class  BDFMCubeLocalBasis< D, R, 2, 3 >
 Third order Brezzi-Douglas-Fortin-Marini shape functions on the reference quadrialteral. More...
 
class  BDFMCubeLocalCoefficients
 Layout map for Brezzi-Douglas-Fortin-Marini elements on cubes. More...
 
class  BDFMCubeLocalFiniteElement
 Brezzi-Douglas-Fortin-Marini finite elements for cubes. More...
 
class  BDFMCubeLocalInterpolation
 Interpolation for Brezzi-Douglas-Fortin-Marini shape functions on cubes. More...
 
class  BDM1Cube2DLocalBasis
 First order Brezzi-Douglas-Marini shape functions on the reference quadrilateral. More...
 
class  BDM1Cube2DLocalCoefficients
 Layout map for Brezzi-Douglas-Marini-1 elements on quadrilaterals. More...
 
class  BDM1Cube2DLocalFiniteElement
 First order Brezzi-Douglas-Marini shape functions on quadrilaterals. More...
 
class  BDM1Cube2DLocalInterpolation
 First order Brezzi-Douglas-Marini shape functions on the reference quadrilateral. More...
 
class  BDM1Cube3DLocalBasis
 First order Brezzi-Douglas-Marini shape functions on the reference hexahedron. More...
 
class  BDM1Cube3DLocalCoefficients
 Layout map for Brezzi-Douglas-Marini-1 elements on hexahedra. More...
 
class  BDM1Cube3DLocalFiniteElement
 First order Brezzi-Douglas-Marini shape functions on hexahedron. More...
 
class  BDM1Cube3DLocalInterpolation
 First order Brezzi-Douglas-Marini shape functions on the reference hexahedron. More...
 
class  BDM1Simplex2DLocalBasis
 First order Brezzi-Douglas-Marini shape functions on the reference triangle. More...
 
class  BDM1Simplex2DLocalCoefficients
 Layout map for Brezzi-Douglas-Marini-1 elements on triangles. More...
 
class  BDM1Simplex2DLocalFiniteElement
 First order Brezzi-Douglas-Marini shape functions on triangles. More...
 
class  BDM1Simplex2DLocalInterpolation
 First order Brezzi-Douglas-Marini shape functions on the reference triangle. More...
 
class  BDM2Cube2DLocalBasis
 First order Brezzi-Douglas-Marini shape functions on quadrilaterals. More...
 
class  BDM2Cube2DLocalCoefficients
 Layout map for Brezzi-Douglas-Marini-2 elements on quadrilaterals. More...
 
class  BDM2Cube2DLocalFiniteElement
 Second order Brezzi-Douglas-Marini shape functions on quadrilaterals. More...
 
class  BDM2Cube2DLocalInterpolation
 First order Brezzi-Douglas-Marini shape functions on quadrilaterals. More...
 
class  BDM2Simplex2DLocalBasis
 First order Brezzi-Douglas-Marini shape functions on quadrilaterals. More...
 
class  BDM2Simplex2DLocalCoefficients
 Layout map for Brezzi-Douglas-Marini-2 elements on triangles. More...
 
class  BDM2Simplex2DLocalFiniteElement
 Second order Brezzi-Douglas-Marini shape functions on triangles. More...
 
class  BDM2Simplex2DLocalInterpolation
 First order Brezzi-Douglas-Marini shape functions on triangles. More...
 
class  BDMatrix
 A block-diagonal matrix. More...
 
class  BiCGSTABSolver
 Bi-conjugate Gradient Stabilized (BiCG-STAB) More...
 
class  BidirectionalIteratorFacade
 Facade class for stl conformant bidirectional iterators. More...
 
class  bigunsignedint
 Portable very large unsigned integers. More...
 
class  BitSetVector
 A dynamic array of blocks of booleans. More...
 
class  BitSetVectorConstReference
 A proxy class that acts as a const reference to a single bitset in a BitSetVector. More...
 
class  BitSetVectorReference
 A proxy class that acts as a mutable reference to a single bitset in a BitSetVector. 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...
 
struct  BoundarySegment
 Base class for classes implementing geometries of boundary segments. More...
 
class  BoundarySegmentWrapper
 
class  BrezziDouglasMariniCubeLocalFiniteElement
 Brezzi-Douglas-Marini local finite element for cubes. More...
 
class  BrezziDouglasMariniCubeLocalFiniteElement< D, R, 2, 1 >
 Brezzi-Douglas-Marini local finite elements for cubes with dimension 2 and order 1. More...
 
class  BrezziDouglasMariniCubeLocalFiniteElement< D, R, 2, 2 >
 Brezzi-Douglas-Marini local finite elements for cubes with dimension 2 and order 2. More...
 
class  BrezziDouglasMariniCubeLocalFiniteElement< D, R, 3, 1 >
 Brezzi-Douglas-Marini local finite elements for cubes with dimension 3 and order 1. More...
 
class  BrezziDouglasMariniSimplexLocalFiniteElement
 Brezzi-Douglas-Marini local finite element for simplices. More...
 
class  BrezziDouglasMariniSimplexLocalFiniteElement< D, R, 2, 1 >
 Brezzi-Douglas-Marini local finite elements for simplices with dimension 2 and order 1. More...
 
class  BrezziDouglasMariniSimplexLocalFiniteElement< D, R, 2, 2 >
 Brezzi-Douglas-Marini local finite elements for simplices with dimension 2 and order 2. More...
 
class  BTDMatrix
 A block-tridiagonal matrix. More...
 
class  BufferedCommunicator
 A communicator that uses buffers to gather and scatter the data to be send or received. More...
 
class  CachedMultiLinearGeometry
 Implement a MultiLinearGeometry with additional caching. More...
 
class  CGSolver
 conjugate gradient method More...
 
struct  CheckIfDiagonalPresent
 Check whether the a matrix has diagonal values on blocklevel recursion levels. More...
 
class  Cholmod
 Dune wrapper for SuiteSparse/CHOLMOD solver. More...
 
struct  Cloneable
 An interface class for cloneable objects. More...
 
struct  Codim
 Static tag representing a codimension. More...
 
struct  CoefficientsInterface
 Interface for global-valued coefficients. More...
 
class  CollectiveIterator
 A collective iterator for moving over the remote indices for all processes collectively. More...
 
class  CollectorStream
 Data collector stream. More...
 
class  Combine
 A set combining two other sets. More...
 
class  CombinedAdaptProlongRestrict
 class for combining 2 index sets together for adaptation process More...
 
class  CommDataHandleIF
 CommDataHandleIF describes the features of a data handle for communication in parallel runs using the Grid::communicate methods. Here the Barton-Nackman trick is used to interpret data handle objects as its interface. Therefore usable data handle classes need to be derived from this class. 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  common_bits
 activate if current and mask have common bits switched on. More...
 
struct  CommPolicy
 Default policy used for communicating an indexed type. More...
 
class  Communication
 Collective communication interface and sequential default implementation. More...
 
class  Communication< MPI_Comm >
 Specialization of Communication for MPI. More...
 
class  CompleteFCGSolver
 Complete flexible conjugate gradient method. More...
 
struct  CompressionStatistics
 Statistics about compression achieved in implicit mode. More...
 
struct  const_reference
 Get the 'const' version of a reference to a mutable object. More...
 
struct  const_reference< BitSetVectorReference< block_size, Alloc > >
 
class  ConstArrayListIterator
 A constant random access iterator for the Dune::ArrayList class. More...
 
class  ConstAssociativePropertyMap
 An adaptor to turn an unique associative container into a property map. More...
 
class  ContainerWrapperIterator
 Iterator class for sparse vector-like containers. More...
 
class  CopyableOptional
 A copyable type wrapper that provides copy/move assignment operations for types that are only copy/move constructible. More...
 
class  CrouzeixRaviartLocalFiniteElement
 Crouzeix-Raviart finite element. More...
 
class  DebugStream
 Generic class to implement debug output streams. More...
 
class  DebugStreamError
 standard exception for the debugstream More...
 
class  DebugStreamState
 Intermediate class to implement tie-operation of DebugStream. More...
 
struct  DefaultSVGMatrixOptions
 Default options class to write SVG matrices. More...
 
class  DenseIterator
 Generic iterator class for dense vector and matrix implementations. More...
 
class  DenseMatrix
 A dense n x m matrix. More...
 
struct  DenseMatrixAssigner
 you have to specialize this structure for any type that should be assignable to a DenseMatrix More...
 
class  DenseVector
 Interface for a class of dense vectors over a given field. More...
 
struct  DGFBoundaryParameter
 Contains types for additional features. More...
 
class  DGFException
 exception class for IO errors in the DGF parser More...
 
class  DGFGridFactory< Dune::YaspGrid< dim, Dune::TensorProductCoordinates< ctype, dim > > >
 Placeholder for grid factory for YaspGrid with tensor product coordinates. More...
 
struct  DGFGridFactory< YaspGrid< dim, EquidistantCoordinates< ctype, dim > > >
 Grid factory for YaspGrid with equidistant coordinates. More...
 
struct  DGFGridFactory< YaspGrid< dim, EquidistantOffsetCoordinates< ctype, dim > > >
 Grid factory for YaspGrid with equidistant coordinates. More...
 
struct  DGFGridInfo
 Some simple static information for a given GridType. More...
 
class  DGFWriter
 write a GridView to a DGF file More...
 
class  DGLocalCoefficients
 A class providing local coefficients for dg spaces. More...
 
struct  DGLocalCoefficientsFactory
 A factory class for the dg local coefficients. More...
 
struct  DGLocalFiniteElement
 Takes the basis and interpolation factory from a given LocalFiniteElement (derived from GenericLocalFiniteElement) and replaces the coefficients with dg local keys, i.e., attaches all degrees of freedom to the codimension zero entity. More...
 
class  DiagonalMatrix
 A diagonal matrix of static size. More...
 
struct  Dim
 Static tag representing a dimension. More...
 
struct  DimSpecificPQkLocalFiniteElementFactory
 Factory that only creates dimension specific local finite elements. More...
 
struct  DimSpecificPQkLocalFiniteElementFactory< D, R, 3, k >
 Factory that only creates dimension specific local finite elements. More...
 
class  DiscreteCoordFunction
 Derive an implementation of a discrete coordinate function from this class. More...
 
class  DiscreteCoordFunctionInterface
 Interface class for using a discrete function to define the geometry of a Dune::GeometryGrid. An implementation should be derived from Dune::DiscreteCoordinateFunction and the evaluate method taking an entity of the host grid together with the number of a vertex returns the coordinate in \( R^r \) of that corner. The user must ensure continuity of this mapping. In addition an adapt method is provided which is called whenever adapt() is called on the Dune::GeometryGrid. More...
 
class  DualP1LocalBasis
 Dual Lagrange shape functions on the simplex. More...
 
class  DualP1LocalCoefficients
 Local coefficients for dual simplex P1 elements. More...
 
class  DualP1LocalFiniteElement
 The local dual p1 finite element on simplices. More...
 
class  DualQ1LocalBasis
 Dual Lagrange shape functions of order 1 on the reference cube. More...
 
class  DualQ1LocalCoefficients
 Layout map for dual Q1 elements. More...
 
class  DualQ1LocalFiniteElement
 The local dual Q1 finite element on cubes. More...
 
class  DualQ1LocalInterpolation
 
struct  DuneBoundaryProjection
 Interface class for vertex projection at the boundary. More...
 
class  DuneGridFormatParser
 The DuneGridFormatParser class: reads a DGF file and stores build information in vector structures used by the MacroGrid class. More...
 
class  DynamicLagrangeLocalFiniteElementCache
 A cache that stores Lagrange finite elements for the given dimension and order. More...
 
class  DynamicMatrix
 Construct a matrix with a dynamic size. More...
 
class  DynamicMatrixSubdomainSolver
 Exact subdomain solver using Dune::DynamicMatrix<T>::solve. More...
 
class  DynamicVector
 Construct a vector with a dynamic size. More...
 
class  EdgeS0_5Basis
 Basis for order 0.5 (lowest order) edge elements on simplices. More...
 
class  EdgeS0_5Coefficients
 Coefficients for lowest order edge elements on simplices. More...
 
struct  EdgeS0_5Common
 Common base class for edge elements. More...
 
class  EdgeS0_5FiniteElement
 FiniteElement for lowest order edge elements on simplices. More...
 
struct  EdgeS0_5FiniteElementFactory
 Factory for EdgeS0_5FiniteElement objects. More...
 
class  EdgeS0_5Interpolation
 Interpolation for lowest order edge elements on simplices. More...
 
struct  Empty
 Just an empty class. More...
 
class  EmptySet
 An empty set. More...
 
struct  EnableIfInterOperable
 Enable typedef if two types are interoperable. More...
 
class  Entity
 Wrapper class for entities. More...
 
class  Entity< 0, dim, GridImp, EntityImp >
 Template specialization of Dune::Entity for Elements (codim==0) More...
 
class  EntityDefaultImplementation
 Default Implementations for EntityImp. More...
 
class  EntityDefaultImplementation< 0, dim, GridImp, EntityImp >
 Default Implementations for EntityImp (Elements [cd=0]) More...
 
struct  EntityInfo
 Structure to hold statistical information about one type of entity. More...
 
class  EntityIterator
 interface class for an iterator over grid entities More...
 
class  EntitySeed
 Store a reference to an entity with a minimal memory footprint. More...
 
class  EnumItem
 A set consisting only of one item. More...
 
class  EnumRange
 A set representing a range including the borders. More...
 
class  EquidistantCoordinates
 Container for equidistant coordinates in a YaspGrid. More...
 
class  EquidistantOffsetCoordinates
 Container for equidistant coordinates in a YaspGrid with non-trivial origin. More...
 
class  Exception
 Base class for Dune-Exceptions. More...
 
struct  ExceptionHook
 Base class to add a hook to the Dune::Exception. More...
 
struct  Factorial
 
struct  Factorial< 0 >
 end of recursion of factorial via specialization More...
 
class  FakeMPIHelper
 A fake mpi helper. More...
 
class  FieldMatrix
 A dense n x m matrix. More...
 
class  FieldVector
 vector space out of a tensor product of fields. More...
 
class  FiniteElementFactoryInterface
 Factory interface for global-valued finite elements. More...
 
class  FiniteElementInterface
 Interface for global-valued finite elements. More...
 
struct  FiniteElementInterfaceSwitch
 Switch for uniform treatment of finite element with either the local or the global interface. More...
 
class  FirstPredicateIndex
 Finding the index of a certain type in a std::tuple. More...
 
struct  FirstTypeIndex
 Find the first occurrence of a type in a std::tuple. More...
 
struct  FlattenTuple
 Flatten a std::tuple of std::tuple's. More...
 
class  FloatCmpOps
 Class encapsulating a default epsilon. More...
 
class  FMatrixError
 Error thrown if operations of a FieldMatrix fail. More...
 
class  FMatrixPrecision
 Precisions for calculations with FieldMatrix and FieldVector. More...
 
struct  ForEachType
 Helper template to clone the type definition of a std::tuple with the storage types replaced by a user-defined rule. More...
 
class  ForwardIteratorFacade
 Base class for stl conformant forward iterators. More...
 
class  Future
 Type-erasure for future-like objects. A future-like object is a object satisfying the interface of FutureBase. More...
 
class  GeneralizedPCGSolver
 Generalized preconditioned conjugate gradient solver. More...
 
class  GeneralVertexOrder
 Class providing information on the ordering of vertices. More...
 
class  GenericIterator
 Generic class for stl-conforming iterators for container classes with operator[]. More...
 
struct  GenericLocalFiniteElement
 A LocalFiniteElement implementation based on three TopologyFactories providing the LocalBasis, LocalCoefficients, and LocalInterpolations. Note the key type for all three factories must coincide. More...
 
class  Geometry
 Wrapper class for geometries. More...
 
class  GeometryDefaultImplementation
 Default implementation for class Geometry. More...
 
class  GeometryGrid
 grid wrapper replacing the geometries More...
 
class  GeometryType
 Unique label for each type of entities that can occur in DUNE grids. More...
 
class  GlobalGeometryTypeIndex
 Compute indices for geometry types, taking the dimension into account. More...
 
class  GlobalIndexSet
 Calculate globally unique index over all processes in a Dune grid. More...
 
class  GlobalLookupIndexSet
 Decorates an index set with the possibility to find a global index that is mapped to a specific local. More...
 
class  GMPField
 Number class for high precision floating point number using the GMP library mpf_class implementation. More...
 
class  GmshReader
 Read Gmsh mesh file. More...
 
struct  GmshReaderOptions
 Options for read operation. More...
 
class  GmshReaderParser
 dimension independent parts for GmshReaderParser More...
 
class  GmshWriter
 Write Gmsh mesh file. More...
 
class  GnuplotWriter
 Writer for 1D grids in gnuplot format. More...
 
class  GradientSolver
 gradient method More...
 
struct  greater_or_equal
 Greater or equal template test. More...
 
class  Grid
 Grid abstract base class. More...
 
class  GridDefaultImplementation
 
class  GridError
 Base class for exceptions in Dune grid modules. More...
 
class  GridFactory
 Provide a generic factory class for unstructured grids. More...
 
class  GridFactory< AlbertaGrid< dim, dimworld > >
 specialization of the generic GridFactory for AlbertaGrid More...
 
class  GridFactory< UGGrid< dimworld > >
 Specialization of the generic GridFactory for UGGrid. More...
 
class  GridFactoryInterface
 Provide a generic factory class for unstructured grids. More...
 
struct  GridPtr
 Class for constructing grids from DGF files. More...
 
struct  GridTraits
 A traits struct that collects all associated types of one grid model. More...
 
class  GridView
 Grid view abstract base class. More...
 
struct  GridViewInfo
 structure to hold information about a certain GridView. More...
 
struct  GridViewInfoGTCompare
 Comparison object to sort GeometryType by majorly dimension. More...
 
struct  hash
 Functor for hashing objects of type T. More...
 
struct  HasNaN
 Whether this type has a value of NaN. More...
 
class  HelpRequest
 exception thrown if the user wants to see help string More...
 
class  HierarchicalP2LocalFiniteElement
 
class  HierarchicalP2WithElementBubbleLocalFiniteElement
 Linear Lagrange functions enriched with quadratic edge bubble functions and an element bubble function. More...
 
class  HierarchicalPrismP2LocalFiniteElement
 
class  HierarchicalPrismP2LocalInterpolation
 
class  HierarchicalSimplexP2LocalBasis< D, R, 1 >
 Hierarchical P2 basis in 1d. More...
 
class  HierarchicalSimplexP2LocalBasis< D, R, 2 >
 Hierarchical P2 basis in 2d. More...
 
class  HierarchicalSimplexP2LocalBasis< D, R, 3 >
 Hierarchical P2 basis in 3d. More...
 
class  HierarchicalSimplexP2LocalInterpolation
 
class  HierarchicalSimplexP2WithElementBubbleLocalBasis
 P1 basis in dim-d enriched by quadratic edge bubble functions and an element bubble function of order dim+1. More...
 
class  HierarchicalSimplexP2WithElementBubbleLocalCoefficients
 The local keys of the hierarchical basis functions with element bubble. More...
 
class  HierarchicSearch
 Search an IndexSet for an Entity containing a given point. More...
 
class  HostGridAccess
 provides access to host grid objects from GeometryGrid More...
 
class  IdentityGrid
 Provides a meta grid that is identical to its host. More...
 
class  IdentityGridEntity
 The implementation of entities in a IdentityGrid. More...
 
class  IdentityGridEntity< 0, dim, GridImp >
 Specialization for codim-0-entities. More...
 
class  IdentityGridEntitySeed
 The EntitySeed class provides the minimal information needed to restore an Entity using the grid. More...
 
class  IdentityGridHierarchicIterator
 Iterator over the descendants of an entity.Mesh entities of codimension 0 ("elements") allow to visit all entities of codimension 0 obtained through nested, hierarchic refinement of the entity. Iteration over this set of entities is provided by the HierarchicIterator, starting from a given entity. More...
 
class  IdentityGridLeafIntersection
 An intersection with a leaf neighbor elementMesh entities of codimension 0 ("elements") allow to visit all neighbors, where a neighbor is an entity of codimension 0 which has a common entity of codimension 1 These neighbors are accessed via a IntersectionIterator. This allows the implement non-matching meshes. The number of neighbors may be different from the number of an element! More...
 
class  IdentityGridLeafIntersectionIterator
 Iterator over all element neighborsMesh entities of codimension 0 ("elements") allow to visit all neighbors, where a neighbor is an entity of codimension 0 which has a common entity of codimension 1 These neighbors are accessed via a IntersectionIterator. This allows the implement non-matching meshes. The number of neighbors may be different from the number of an element! More...
 
class  IdentityGridLeafIterator
 Iterator over all entities of a given codimension and level of a grid. More...
 
class  IdentityGridLevelIndexSet
 
class  IdentityGridLevelIntersection
 
class  IdentityGridLevelIntersectionIterator
 
class  IdentityGridLevelIterator
 Iterator over all entities of a given codimension and level of a grid. More...
 
struct  IdentityMap
 A property map that applies the identity function to integers. More...
 
class  IdSet
 Id Set Interface. More...
 
class  ILU0SubdomainSolver
 Exact subdomain solver using ILU(p) with appropriate p. More...
 
class  ILUSubdomainSolver
 base class encapsulating common algorithms of ILU0SubdomainSolver and ILUNSubdomainSolver. More...
 
struct  ImplementationDefined
 Dummy struct used for documentation purposes. 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  Indent
 Utility class for handling nested indentation in output. More...
 
class  IndexedIterator
 An iterator mixin that adds an index() method returning an enumeration index for the traversal. More...
 
class  IndexInfoFromGrid
 Information about the index distribution. More...
 
class  IndexPair
 A pair consisting of a global and local index. More...
 
class  IndexSet
 Index Set Interface base class. More...
 
class  IndexSetDefaultImplementation
 Provide default implementation of method if IndexSet. More...
 
class  IndexStack
 
class  IndicesSyncer
 Class for recomputing missing indices of a distributed index set. More...
 
struct  IntegerSequenceEntry
 Get entry of std::integer_sequence. More...
 
class  IntegralRange
 dynamic integer range for use in range-based for loops More...
 
class  Interface
 Communication interface between remote and local indices. More...
 
class  InterfaceBuilder
 Base class of all classes representing a communication interface. More...
 
class  InterfaceInformation
 Information describing an interface. More...
 
struct  InterpolationInterface
 Interface for global-valued interpolation. More...
 
class  Intersection
 Intersection of a mesh entity of codimension 0 ("element") with a "neighboring" element or with the domain boundary. More...
 
class  IntersectionDefaultNormalVectors
 Default Implementations of integrationOuterNormal and unitOuterNormal for IntersectionImp. More...
 
class  IntersectionIterator
 Mesh entities of codimension 0 ("elements") allow to visit all intersections with "neighboring" elements and with the domain boundary. More...
 
class  InvalidFutureException
 This exception is thrown when ready(), wait() or get() is called on an invalid future. A future is valid until get() is called and if it is not default-constructed and it was not moved from. More...
 
class  InvalidIndexSetState
 Exception indicating that the index set is not in the expected state. More...
 
class  InvalidStateException
 Default exception if a function was called while the object is not in a valid state for that function. More...
 
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...
 
class  IOError
 Default exception class for I/O errors. More...
 
class  ios_base_all_saver
 Utility class for storing and resetting stream attributes. More...
 
struct  IsCallable
 Check if a type is callable with ()-operator and given arguments. More...
 
struct  IsCallable< F(Args...), R >
 Check if a type is callable with ()-operator and given arguments. More...
 
struct  IsCompileTimeConstant
 Check if T is an integral constant or any type derived from std::integral_constant. More...
 
struct  IsEmptyTypeList
 Check if given type is an empty TypeList. More...
 
struct  IsFieldVectorSizeCorrect
 TMP to check the size of a DenseVectors statically, if possible. More...
 
struct  IsIndexable
 Type trait to determine whether an instance of T has an operator[](I), i.e. whether it can be indexed with an index of type I. More...
 
struct  IsIntegralConstant
 Check if T is an std::integral_constant<I, i> More...
 
struct  IsInteroperable
 Checks whether two types are interoperable. More...
 
struct  IsIterable
 typetrait to check that a class has begin() and end() members More...
 
struct  IsMatrix
 Test whether a type is an ISTL Matrix. More...
 
struct  IsNumber
 Whether this type acts as a scalar in the context of (hierarchically blocked) containers. More...
 
struct  IsNumber< bigunsignedint< k > >
 Declare big unsigned int is a number. More...
 
class  ISTLError
 derive error class from the base class in common More...
 
struct  IsTuple
 Check if T is a std::tuple<...> More...
 
struct  IsTupleOrDerived
 Check if T derived from a std::tuple<...> More...
 
struct  IsType
 Generator for predicates accepting one particular type. More...
 
struct  IsTypeList
 Check if given type is a TypeList. More...
 
struct  IsTypeList< TypeList< T... > >
 Check if given type is a TypeList. More...
 
class  IterativeSolver
 Base class for all implementations of iterative solvers. More...
 
struct  IteratorDirectionSelector
 Helper template meta program for application of overlapping Schwarz. More...
 
class  IteratorFacade
 CRTP-Mixing class for stl conformant iterators of given iterator category. More...
 
struct  IteratorFacadeAccess
 This class encapsulates access of IteratorFacade. More...
 
class  IteratorPropertyMap
 Adapter to turn a random access iterator into a property map. More...
 
class  IteratorRange
 Simple range between a begin and an end iterator. More...
 
struct  IteratorTransformationTag
 Tag to enable iterator based transformations in TransformedRangeView. More...
 
struct  JoinTuples
 Join two std::tuple's. More...
 
struct  L2LocalFiniteElement
 Takes the basis factory from a given LocalFiniteElement (derived from GenericLocalFiniteElement) and replaces the coefficients with dg local keys, i.e., attaches all degrees of freedom to the codimension zero entity and uses a l2 interpolation. More...
 
class  LagrangeCubeLocalFiniteElement
 Lagrange finite element for cubes with arbitrary compile-time dimension and polynomial order. More...
 
class  LagrangeLocalFiniteElement
 Lagrange local finite elements for a given set of interpolation points. More...
 
class  LagrangePrismLocalFiniteElement
 Lagrange finite element for 3d prisms with arbitrary compile-time polynomial order. More...
 
class  LagrangePyramidLocalFiniteElement
 Lagrange finite element for 3d pyramids with compile-time polynomial order. More...
 
class  LagrangeSimplexLocalFiniteElement
 Lagrange finite element for simplices with arbitrary compile-time dimension and polynomial order. More...
 
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...
 
class  LeafGnuplotWriter
 GnuplotWriter on the leaf grid. More...
 
class  LevelGnuplotWriter
 GnuplotWriter on a given level grid. More...
 
class  LinearOperator
 A linear operator. More...
 
struct  LocalBasisTraits
 Type traits for LocalBasisVirtualInterface. More...
 
class  LocalBasisVirtualImp
 class for wrapping a basis using the virtual interface More...
 
class  LocalBasisVirtualInterface
 virtual base class for a local basis More...
 
class  LocalCoefficientsVirtualImp
 class for wrapping local coefficients using the virtual interface More...
 
class  LocalCoefficientsVirtualInterface
 virtual base class for local coefficients More...
 
class  LocalFiniteElementGeometry
 Geometry implementation based on local-basis function parametrization. More...
 
struct  LocalFiniteElementTraits
 traits helper struct More...
 
class  LocalFiniteElementVariant
 Type erasure class for wrapping LocalFiniteElement classes. More...
 
class  LocalFiniteElementVariantCache
 A cache storing a compile time selection of local finite element implementations. More...
 
class  LocalFiniteElementVirtualImp
 class for wrapping a finite element using the virtual interface More...
 
class  LocalFiniteElementVirtualInterface
 virtual base class for local finite elements with functions More...
 
class  LocalGeometryTypeIndex
 Compute per-dimension indices for geometry types. More...
 
class  LocalIndex
 An index present on the local process. More...
 
class  LocalInterpolationVirtualImp
 class for wrapping a local interpolation using the virtual interface More...
 
class  LocalInterpolationVirtualInterface
 virtual base class for a local interpolation More...
 
class  LocalInterpolationVirtualInterfaceBase
 virtual base class for a local interpolation More...
 
class  LocalKey
 Describe position of one degree of freedom. More...
 
struct  LocalL2Interpolation
 A local L2 interpolation taking a test basis and a quadrature rule. More...
 
struct  LocalL2InterpolationFactory
 A factory class for the local l2 interpolations taking a basis factory. More...
 
struct  LocalToGlobalBasisAdaptorTraits
 Traits class for local-to-global basis adaptors. More...
 
class  LocalToGlobalInterpolationAdaptor
 Convert a local interpolation into a global interpolation. More...
 
class  LoopSIMD
 
class  LoopSolver
 Preconditioned loop solver. More...
 
class  lru
 LRU Cache Container. More...
 
struct  LvaluePropertyMapTag
 Tag for the category of lvalue property maps. More...
 
struct  MakeableInterfaceObject
 
class  MallocAllocator
 Allocators implementation which simply calls malloc/free. More...
 
class  MappedGeometry
 Geometry parametrized by a LocalFunction and a LocalGeometry. More...
 
class  Mapper
 Mapper interface. More...
 
struct  MathematicalConstants
 Provides commonly used mathematical constants. More...
 
class  MathError
 Default exception class for mathematical errors. More...
 
struct  MatMultMatResult
 Helper TMP to get the result type of a sparse matrix matrix multiplication ( \(C=A*B\)) More...
 
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...
 
class  MatrixIndexSet
 Stores the nonzero entries for creating a sparse matrix. More...
 
class  MessageBufferIF
 Communication message buffer interface. This class describes the interface for reading and writing data to the communication message buffer. As message buffers might be deeply implemented in various packages the message buffers implementations cannot be derived from this interface class. Therefore we just apply the engine concept to wrap the message buffer call and make sure that the interface is fulfilled. More...
 
struct  MetaType
 A type that refers to another type. More...
 
class  MimeticLocalCoefficients
 ! More...
 
class  MimeticLocalFiniteElement
 
class  MINRESSolver
 Minimal Residual Method (MINRES) More...
 
class  MonomialFiniteElementFactory
 Factory for global-valued MonomFiniteElement objects. More...
 
class  MonomialLocalBasis
 
class  MonomialLocalCoefficients
 
class  MonomialLocalFiniteElement
 Monomial basis for discontinuous Galerkin methods. More...
 
class  MPIFuture
 Provides a future-like object for MPI communication. It contains the object that will be received and might contain also a sending object, which must be hold (keep alive) until the communication has been completed. More...
 
class  MPIGuard
 detects a thrown exception and communicates to all other processes More...
 
class  MPIGuardError
 This exception is thrown if the MPIGuard detects an error on a remote process. More...
 
class  MPIHelper
 A real mpi helper. More...
 
struct  MPITraits
 A traits class describing the mapping of types onto MPI_Datatypes. More...
 
class  MPITraits< IndexPair< TG, ParallelLocalIndex< TA > > >
 
class  MPITraits< ParallelLocalIndex< T > >
 
class  MultiLinearGeometry
 generic geometry implementation based on corner coordinates More...
 
struct  MultiLinearGeometryTraits
 default traits class for MultiLinearGeometry More...
 
class  MultipleCodimMultipleGeomTypeMapper
 Implementation class for a multiple codim and multiple geometry type mapper. More...
 
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_Col
 part of solvers for MultiTypeBlockVector & MultiTypeBlockMatrix types More...
 
class  MultiTypeBlockVector
 A Vector class to support different block types. More...
 
struct  mutable_reference
 get the 'mutable' version of a reference to a const object More...
 
class  Nedelec1stKindCubeLocalFiniteElement
 Nédélec elements of the first kind for cube elements. More...
 
class  Nedelec1stKindSimplexLocalFiniteElement
 Nédélec elements of the first kind for simplex elements. More...
 
struct  NedelecBasisFactory
 
class  NedelecL2Interpolation
 An L2-based interpolation for Nedelec. More...
 
class  NegateSet
 The negation of a set. An item is contained in the set if and only if it is not contained in the negated set. More...
 
class  NoAssembledOperator
 This exception is thrown if the requested solver or preconditioner needs an assembled matrix. 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  NotImplemented
 Default exception for dummy implementations. More...
 
struct  null_deleter
 implements the Deleter concept of shared_ptr without deleting anything More...
 
struct  NullPointerInitialiser
 A helper template that initializes a std::tuple consisting of pointers to nullptr. More...
 
class  OneDGrid
 One-dimensional adaptive grid. More...
 
class  OrthonormalLocalFiniteElement
 A class providing orthonormal basis functions. More...
 
class  OutOfMemoryError
 Default exception if memory allocation fails. More...
 
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  P0LocalBasis
 
class  P0LocalCoefficients
 
class  P0LocalFiniteElement
 The local p0 finite element on all types of reference elements. More...
 
class  P0VTKFunction
 Take a vector and interpret it as cell data for the VTKWriter. More...
 
class  P1VTKFunction
 Take a vector and interpret it as point data for the VTKWriter. More...
 
class  ParallelError
 Default exception if an error in the parallel communication of the program occurred. More...
 
class  ParallelIndexSet
 Manager class for the mapping between local indices and globally unique indices. More...
 
class  ParallelLocalIndex
 An index present on the local process with an additional attribute flag. More...
 
class  ParallelScalarProduct
 Scalar product for overlapping Schwarz methods. More...
 
class  ParameterizedObjectFactory
 A factory class for parameterized objects. More...
 
class  ParameterTree
 Hierarchical structure of string parameters. More...
 
class  ParameterTreeParser
 Parsers to set up a ParameterTree from various input sources. More...
 
class  ParameterTreeParserError
 report parser error while reading ParameterTree More...
 
class  ParSSOR
 A parallel SSOR preconditioner. More...
 
struct  PartitionSet
 A set of PartitionType values. More...
 
class  PersistentContainer
 A class for storing data during an adaptation cycle. More...
 
class  PersistentContainer< const Grid, T >
 refer PersistentContainer<const Grid> to the implementation of the mutable grid More...
 
class  PersistentContainer< YaspGrid< dim, CoordCont >, T >
 Specialization of the PersistentContainer for YaspGrid. More...
 
class  PersistentContainerInterface
 Persistent storage of data on all entities of a grid. More...
 
class  PersistentContainerMap
 map-based implementation of the PersistentContainer More...
 
class  PersistentContainerVector
 vector-based implementation of the PersistentContainer More...
 
class  Pk1DFiniteElement
 Langrange finite element of arbitrary order on triangles. More...
 
struct  Pk1DFiniteElementFactory
 Factory for Pk1DFiniteElement objects. More...
 
class  Pk1dLocalFiniteElement
 Define the Pk Lagrange basis functions in 1d on the reference interval. More...
 
class  Pk2DFiniteElement
 Langrange finite element of arbitrary order on triangles. More...
 
struct  Pk2DFiniteElementFactory
 Factory for Pk2DFiniteElement objects. More...
 
struct  PointerPairDeletor
 Deletes all objects pointed to in a std::tuple of pointers. More...
 
class  PolynomialBasis
 
class  PolynomialBasisWithMatrix
 
class  Pool
 A memory pool of objects. More...
 
class  PoolAllocator
 An allocator managing a pool of objects for reuse. More...
 
class  PowerBasis
 Meta-basis turning a scalar basis into vector-valued basis. More...
 
class  PowerCoefficients
 Meta-coefficients turning a scalar coefficients into vector-valued coefficients. More...
 
class  PowerFiniteElement
 Meta-finite element turning a scalar finite element into vector-valued one. More...
 
class  PowerFiniteElementFactory
 Factory for meta-finite elements turning scalar finite elements into vector-valued ones. More...
 
class  PowerInterpolation
 Meta-interpolation turning a scalar interpolation into vector-valued interpolation. More...
 
class  PowerIteration_Algorithms
 Iterative eigenvalue algorithms based on power iteration. More...
 
class  PQkLocalFiniteElementCache
 A cache that stores all available Pk/Qk like local finite elements for the given dimension and order. More...
 
struct  PQkLocalFiniteElementFactory
 Factory to create any kind of Pk/Qk like element wrapped for the virtual interface. More...
 
class  Preconditioner
 Base class for matrix free definition of preconditioners. More...
 
struct  PriorityTag
 Helper class for tagging priorities. More...
 
struct  PriorityTag< 0 >
 Helper class for tagging priorities. More...
 
struct  PromotionTraits
 Compute type of the result of an arithmetic operation involving two different number types. More...
 
struct  PropertyMapTypeSelector
 Selector for the property map type. More...
 
class  ProxyArrowResult
 Helper to mimic a pointer for proxy objects. More...
 
class  PseudoFuture
 A wrapper-class for a object which is ready immediately. More...
 
struct  PushBackTuple
 Helper template to append a type to a std::tuple. More...
 
struct  PushFrontTuple
 Helper template to prepend a type to a std::tuple. More...
 
class  Q1FiniteElementFactory
 Factory for global-valued Q1 elements. More...
 
class  Q2FiniteElementFactory
 Factory for global-valued Q23D elements. More...
 
class  QkDGFiniteElementFactory
 Factory for global-valued QkDG elements. More...
 
class  QkDGGLFiniteElementFactory
 Factory for global-valued QkDG elements. More...
 
class  QkDGGLLocalFiniteElement
 
class  QkDGLagrangeLocalFiniteElement
 
class  QkDGLegendreFiniteElementFactory
 Factory for global-valued DGLegendre elements. More...
 
class  QkDGLegendreLocalFiniteElement
 
class  QuadratureOrderOutOfRange
 Exception thrown if a desired QuadratureRule is not available, because the requested order is to high. More...
 
class  QuadraturePoint
 Single evaluation point in a quadrature rule. More...
 
class  QuadratureRule
 Abstract base class for quadrature rules. More...
 
class  QuadratureRuleFactory
 Factory class for creation of quadrature rules, depending on GeometryType, order and QuadratureType. More...
 
class  QuadratureRules
 A container for all quadrature rules of dimension dim More...
 
class  RandomAccessIteratorFacade
 Base class for stl conformant forward iterators. More...
 
class  RangeError
 Default exception class for range errors. More...
 
struct  RannacherTurekLocalBasis
 Rannacher-Turek shape functions. More...
 
struct  RannacherTurekLocalCoefficients
 layout for Rannacher-Turek elements More...
 
struct  RannacherTurekLocalFiniteElement
 Rannacher-Turek shape functions. More...
 
class  RannacherTurekLocalInterpolation
 please doc me More...
 
class  RaviartThomasCubeLocalFiniteElement
 Raviart-Thomas local finite elements for cubes. More...
 
class  RaviartThomasCubeLocalFiniteElement< D, R, 2, 0 >
 Raviart-Thomas local finite elements for cubes with dimension 2 and order 0. More...
 
class  RaviartThomasCubeLocalFiniteElement< D, R, 2, 1 >
 Raviart-Thomas local finite elements for cubes with dimension 2 and order 1. More...
 
class  RaviartThomasCubeLocalFiniteElement< D, R, 2, 2 >
 Raviart-Thomas local finite elements for cubes with dimension 2 and order 2. More...
 
class  RaviartThomasCubeLocalFiniteElement< D, R, 2, 3 >
 Raviart-Thomas local finite elements for cubes with dimension 2 and order 3. More...
 
class  RaviartThomasCubeLocalFiniteElement< D, R, 2, 4 >
 Raviart-Thomas local finite elements for cubes with dimension 2 and order 4. More...
 
class  RaviartThomasCubeLocalFiniteElement< D, R, 3, 0 >
 Raviart-Thomas local finite elements for cubes with dimension 3 and order 0. More...
 
class  RaviartThomasCubeLocalFiniteElement< D, R, 3, 1 >
 Raviart-Thomas local finite elements for cubes with dimension 3 and order 1. More...
 
class  RaviartThomasL2Interpolation
 An L2-based interpolation for Raviart Thomas. More...
 
class  RaviartThomasSimplexLocalFiniteElement
 Raviart-Thomas local finite elements of arbitrary order for simplices of arbitrary dimension. More...
 
class  RawStream
 write out data in binary More...
 
struct  ReadablePropertyMapTag
 Tag for the category of readable property maps. More...
 
struct  ReadWritePropertyMapTag
 Tag for the category of readable and writable property maps. More...
 
struct  ReduceTuple
 Apply reduce with meta binary function to template. More...
 
struct  ReduceTuple< F, Tuple, Seed, 0 >
 Apply reduce with meta binary function to template. More...
 
class  RefinedP0LocalBasis
 Uniformly refined constant shape functions on a unit simplex in R^dim. More...
 
class  RefinedP0LocalCoefficients
 Layout map for RefinedP0 elements. More...
 
class  RefinedP0LocalFiniteElement
 Local finite element that is piecewise P0 on a once uniformly refined reference geometry. More...
 
class  RefinedP0LocalFiniteElement< D, R, 1 >
 Local finite element that is piecewise P0 on a once uniformly refined reference geometry. More...
 
class  RefinedP0LocalFiniteElement< D, R, 2 >
 Local finite element that is piecewise P0 on a once uniformly refined reference geometry. More...
 
class  RefinedP0LocalFiniteElement< D, R, 3 >
 Local finite element that is piecewise P0 on a once uniformly refined reference geometry. More...
 
class  RefinedP1LocalBasis< D, R, 1 >
 Uniformly refined linear Lagrange shape functions in 1D. More...
 
class  RefinedP1LocalBasis< D, R, 2 >
 Uniformly refined linear Lagrange shape functions on the triangle. More...
 
class  RefinedP1LocalBasis< D, R, 3 >
 Uniformly refined linear Lagrange shape functions on the 3D-simplex (tetrahedron). More...
 
class  RefinedP1LocalFiniteElement
 Piecewise linear continuous Lagrange functions on a uniformly refined simplex element. More...
 
class  RefinedSimplexLocalBasis< D, 1 >
 Base class for LocalBasis classes based on uniform refinement in 1D; provides numbering and local coordinates of subelements. More...
 
class  RefinedSimplexLocalBasis< D, 2 >
 Base class for LocalBasis classes based on uniform refinement in 2D; provides numbering and local coordinates of subelements. More...
 
class  RefinedSimplexLocalBasis< D, 3 >
 Base class for LocalBasis classes based on uniform refinement in 3D; provides numbering and local coordinates of subelements. More...
 
class  RefinementIntervals
 Holds the number of refined intervals per axis needed for virtual and static refinement. More...
 
class  RemoteIndex
 Information about an index residing on another processor. More...
 
class  RemoteIndexListModifier
 Modifier for adding and/or deleting remote indices from the remote index list. More...
 
class  RemoteIndices
 The indices present on remote processes. More...
 
class  ReservedVector
 A Vector class with statically reserved memory. More...
 
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  RT02DLocalBasis
 
class  RT02DLocalCoefficients
 
class  RT02DLocalFiniteElement
 Zero order Raviart-Thomas shape functions on triangles. More...
 
class  RT03DLocalBasis
 
class  RT03DLocalCoefficients
 
class  RT03DLocalFiniteElement
 Zero order Raviart-Thomas shape functions on tetrahedra. More...
 
class  RT0Cube2DLocalBasis
 
class  RT0Cube2DLocalCoefficients
 
class  RT0Cube2DLocalFiniteElement
 Zero order Raviart-Thomas shape functions on rectangles. More...
 
class  RT0Cube2DLocalInterpolation
 
class  RT0Cube3DLocalBasis
 
class  RT0Cube3DLocalCoefficients
 
class  RT0Cube3DLocalFiniteElement
 Zero order Raviart-Thomas shape functions on cubes. More...
 
class  RT0Cube3DLocalInterpolation
 
class  RT0PrismLocalBasis
 First order Raviart-Thomas shape functions on the reference prism. More...
 
class  RT0PrismLocalCoefficients
 Layout map for Raviart-Thomas-1 elements on prisms. More...
 
class  RT0PrismLocalFiniteElement
 First order Raviart-Thomas shape functions on prisms. More...
 
class  RT0PrismLocalInterpolation
 First order Raviart-Thomas shape functions on the reference prism. More...
 
class  RT0PyramidLocalBasis
 First order Raviart-Thomas shape functions on the reference pyramid. More...
 
class  RT0PyramidLocalCoefficients
 Layout map for Raviart-Thomas-1 elements on pyramids. More...
 
class  RT0PyramidLocalFiniteElement
 First order Raviart-Thomas shape functions on pyramids. More...
 
class  RT0PyramidLocalInterpolation
 First order Raviart-Thomas shape functions on the reference hexahedron. More...
 
class  RT12DLocalBasis
 First order Raviart-Thomas shape functions on the reference triangle. More...
 
class  RT12DLocalCoefficients
 Layout map for Raviart-Thomas-1 elements on the reference triangle. More...
 
class  RT12DLocalFiniteElement
 First order Raviart-Thomas shape functions on triangles. More...
 
class  RT12DLocalInterpolation
 First order Raviart-Thomas shape functions on the reference quadrilateral. More...
 
class  RT1Cube2DLocalBasis
 First order Raviart-Thomas shape functions on the reference quadrilateral. More...
 
class  RT1Cube2DLocalCoefficients
 Layout map for Raviart-Thomas-1 elements on quadrilaterals. More...
 
class  RT1Cube2DLocalFiniteElement
 First order Raviart-Thomas shape functions on quadrilaterals. More...
 
class  RT1Cube2DLocalInterpolation
 First order Raviart-Thomas shape functions on the reference quadrilateral. More...
 
class  RT1Cube3DLocalBasis
 First order Raviart-Thomas shape functions on the reference hexahedron. More...
 
class  RT1Cube3DLocalCoefficients
 Layout map for Raviart-Thomas-1 elements on quadrilaterals. More...
 
class  RT1Cube3DLocalFiniteElement
 First order Raviart-Thomas shape functions on cubes. More...
 
class  RT1Cube3DLocalInterpolation
 First order Raviart-Thomas shape functions on the reference hexahedron. More...
 
class  RT2Cube2DLocalBasis
 Second order Raviart-Thomas shape functions on the reference quadrilateral. More...
 
class  RT2Cube2DLocalCoefficients
 Layout map for Raviart-Thomas-2 elements on quadrilaterals. More...
 
class  RT2Cube2DLocalFiniteElement
 Second order Raviart-Thomas shape functions on cubes. More...
 
class  RT2Cube2DLocalInterpolation
 Second order Raviart-Thomas shape functions on the reference triangle. More...
 
class  RT3Cube2DLocalBasis
 Second order Raviart-Thomas shape functions on the reference quadrilateral. More...
 
class  RT3Cube2DLocalCoefficients
 Layout map for Raviart-Thomas-3 elements on quadrilaterals. More...
 
class  RT3Cube2DLocalFiniteElement
 Second order Raviart-Thomas shape functions on cubes. More...
 
class  RT3Cube2DLocalInterpolation
 Second order Raviart-Thomas shape functions on the reference quadrilateral. More...
 
class  RT4Cube2DLocalBasis
 Second order Raviart-Thomas shape functions on the reference quadrilateral. More...
 
class  RT4Cube2DLocalCoefficients
 Layout map for Raviart-Thomas-4 elements on quadrilaterals. More...
 
class  RT4Cube2DLocalFiniteElement
 Second order Raviart-Thomas shape functions on cubes. More...
 
class  RT4Cube2DLocalInterpolation
 Second order Raviart-Thomas shape functions on the reference triangle. More...
 
class  ScalarLocalToGlobalBasisAdaptor
 Convert a simple scalar local basis into a global basis. More...
 
struct  ScalarLocalToGlobalFiniteElementAdaptor
 Convert a simple scalar local finite element into a global finite element. More...
 
class  ScalarLocalToGlobalFiniteElementAdaptorFactory
 Factory for ScalarLocalToGlobalFiniteElementAdaptor objects. 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  Selection
 A cached selection of indices. More...
 
class  SelectionIterator
 A const iterator over an uncached selection. More...
 
class  SeqDILU
 Sequential DILU preconditioner. 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  SeqOverlappingSchwarzDomainSize
 
class  SeqScalarProduct
 Default implementation for the scalar case. More...
 
class  SeqSOR
 Sequential SOR preconditioner. More...
 
class  SeqSSOR
 Sequential SSOR preconditioner. More...
 
struct  SimdScalarTypeTraits< AlignedNumber< T, align > >
 deduce the underlying scalar data type of an AlignedNumber More...
 
class  SimplexP1BubbleLocalBasis
 P1 basis in dim-d enriched by an (order dim+1) element bubble function. More...
 
class  SimplexP1BubbleLocalCoefficients
 The Local keys associated to the dim-d local basis functions. More...
 
class  SimplexP1BubbleLocalFiniteElement
 Linear Lagrange functions enriched with an element bubble function. More...
 
class  SimplexP1BubbleLocalInterpolation
 Interpolation into the SimplexP1BubbleLocalBasis. More...
 
class  SingleCodimSingleGeomTypeMapper
 Implementation class for a single codim and single geometry type mapper. More...
 
class  Singleton
 An adapter to turn a class into a singleton. More...
 
class  SizeCache
 organizes the caching of sizes for one grid and one GeometryType More...
 
struct  SizeOf
 Compute size of variadic type list. More...
 
struct  SizeOne
 Flag for marking indexed data structures where data at each index is of the same size. More...
 
class  SLList
 A single linked list. More...
 
class  SLListConstIterator
 A constant iterator for the SLList. More...
 
class  SLListIterator
 A mutable iterator for the SLList. More...
 
class  SLListModifyIterator
 A mutable iterator for the SLList. More...
 
class  SolverAbort
 Thrown when a solver aborts due to some problem. More...
 
struct  SolverCategory
 Categories for the solvers. 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  StandardMathematicalConstants
 Standard implementation of MathematicalConstants. More...
 
class  StarCDReader
 File reader for the Star-CD format. More...
 
class  StaticIntegralRange
 static integer range for use in range-based for loops More...
 
class  StaticLagrangeLocalFiniteElementCache
 A cache that stores all available Pk/Qk like local finite elements for the given dimension and order for the case that the GeometryType is fixed and has the given Id. More...
 
class  StaticLagrangeLocalFiniteElementCache< GeometryType::Id(~0u), Domain, Range, dim, order >
 A cache that stores all available Pk/Qk like local finite elements for the given dimension and order. More...
 
class  StaticRefinement
 Wrap each Refinement implementation to get a consistent interface. More...
 
class  StructuredGridFactory
 Construct structured cube and simplex grids in unstructured grid managers. More...
 
class  StructuredGridFactory< AlbertaGrid< dim, dimworld > >
 specialization of the generic StructuredGridFactory for AlbertaGrid More...
 
class  StructuredGridFactory< YaspGrid< dim, EquidistantCoordinates< ctype, dim > > >
 Specialization of the StructuredGridFactory for YaspGrid. More...
 
class  StructuredGridFactory< YaspGrid< dim, EquidistantOffsetCoordinates< ctype, dim > > >
 Specialization of the StructuredGridFactory for YaspGrid<EquidistantOffsetCoordinates> More...
 
class  SubsamplingVTKWriter
 Writer for the output of subsampled grid functions in the vtk format. More...
 
class  SuperLU
 SuperLu Solver. More...
 
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  SymmetricMultiplicativeSchwarzMode
 Tag that tells the Schwarz method to be multiplicative and symmetric. More...
 
class  SystemError
 Default exception class for OS errors. More...
 
class  TensorGridFactory
 A factory class for conveniently creating tensorproduct grids. More...
 
class  TensorProductCoordinates
 Coordinate container for a tensor product YaspGrid. More...
 
class  TestSuite
 A Simple helper class to organize your test suite. More...
 
class  Timer
 A simple stop watch. More...
 
struct  TopologyFactory
 Provide a factory over the generic topologies. More...
 
struct  TopologySingletonFactory
 A wrapper for a TopologyFactory providing singleton storage. Same usage as TopologyFactory but with empty release method an internal storage. More...
 
class  Torus
 
class  TransformedRangeView
 A range transforming the values of another range on-the-fly. More...
 
class  TransformTupleFunctor
 
struct  TransposedMatMultMatResult
 Helper TMP to get the result type of a sparse matrix matrix multiplication ( \(C=A*B\)) More...
 
class  TupleVector
 A class augmenting std::tuple by element access via operator[]. More...
 
struct  TypeListElement< i, TypeList< T... > >
 Get element of TypeList. More...
 
struct  TypeListSize< TypeList< T... > >
 Get size of TypeList. More...
 
class  UGGrid
 Front-end for the grid manager of the finite element toolbox UG3. More...
 
class  UMFPack
 The UMFPack direct sparse solver. More...
 
class  UncachedSelection
 An uncached selection of indices. More...
 
struct  Unity
 A class representing the unit of a given Field. More...
 
struct  ValueTransformationTag
 Tag to enable value based transformations in TransformedRangeView. More...
 
class  VariableBlockVector
 A Vector of blocks with different blocksizes. More...
 
struct  VariableSize
 Flag for marking indexed data structures where the data at each index may be a variable multiple of another type. More...
 
class  VariableSizeCommunicator
 A buffered communicator where the amount of data sent does not have to be known a priori. More...
 
class  VertexOrderByIdFactory
 Factory for GeneralVertexOrder objects using an IdSet. More...
 
class  VirtualRefinement
 VirtualRefinement base class. More...
 
class  VTKFunction
 A base class for grid functions with any return type and dimension. More...
 
class  VTKSequenceWriter
 Writer for the output of grid functions in the vtk format. More...
 
class  VTKSequenceWriterBase
 Base class to write pvd-files which contains a list of all collected vtk-files. More...
 
class  VTKWriter
 Writer for the output of grid functions in the vtk format. More...
 
struct  WritablePropertyMapTag
 Tag for the category of writable property maps. More...
 
class  YaspEntitySeed
 Describes the minimal information necessary to create a fully functional YaspEntity. More...
 
class  YaspGeometry
 The general version that handles all codimensions but 0 and dim. More...
 
class  YaspGeometry< 0, cdim, GridImp >
 specialization for dim=0, this is a vertex More...
 
class  YaspGeometry< mydim, mydim, GridImp >
 specialize for dim=dimworld, i.e. a volume element More...
 
class  YaspGlobalIdSet
 persistent, globally unique Ids More...
 
class  YaspGrid
 [ provides Dune::Grid ] More...
 
class  YaspHierarchicIterator
 YaspHierarchicIterator enables iteration over son entities of codim 0. More...
 
class  YaspIndexSet
 Implementation of Level- and LeafIndexSets for YaspGrid. More...
 
class  YaspIntersection
 YaspIntersection provides data about intersection with neighboring codim 0 entities. More...
 
class  YaspIntersectionIterator
 YaspIntersectionIterator enables iteration over intersections with neighboring codim 0 entities. More...
 
class  YaspLevelIterator
 Iterates over entities of one grid level. More...
 
class  YaspPersistentContainerIndex
 implement a consecutive index for all entities of given codim of a YaspGrid More...
 
class  YGrid
 implements a collection of YGridComponents which form a codimension Entities of given codimension c need to be represented by d choose c YgridComponents. All entities in one such component share the same set of spanning unit vectors. A YGrid is used to iterate over the entire set of components the codimension consists of. It doesn't hold any data, but instead holds an iterator range into an array of components (which is owned by YGridLevel). More...
 
class  YGridComponent
 
class  YGridList
 implements a collection of multiple std::deque<Intersection> Intersections with neighboring processors are stored as std::deque<Intersection>. Eachsuch intersection only holds one YGridComponent. To do all communication associated with one codimension, multiple such deques have to be concatenated. YGridList manges this concatenation. As for YGrids, YGridList doesn't hold any data, but an iterator range into a data array owned by YGridLevel. More...
 
struct  Zero
 A class representing the zero of a given Field. More...
 

Typedefs

using ViolatedAlignmentHandler = std::function< void(const char *, std::size_t, const void *)>
 type of the handler called by violatedAlignment()
 
typedef unsigned int DebugLevel
 Type for debug levels. More...
 
template<std::size_t i>
using index_constant = std::integral_constant< std::size_t, i >
 An index constant with value i. More...
 
template<class T >
using CollectiveCommunication = Communication< T >
 
template<class T >
using ResolveRef_t = std::remove_reference_t< decltype(Dune::resolveRef(std::declval< T & >()))>
 Type trait to resolve std::reference_wrapper. More...
 
template<typename V >
using SimdIndex = typename SimdIndexTypeTraits< V >::type
 An simd vector of indices corresponding to a simd vector V. More...
 
template<typename V >
using SimdMask = typename SimdMaskTypeTraits< V >::type
 A simd vector of truth values corresponding to a simd vector V. More...
 
template<template< typename... > class Fallback, template< typename... > class TargetType, typename... Args>
using detected_or_fallback_t = Std::detected_or_t< decltype(detail::warningIfNotDefined< Std::detected_t< Fallback, Args... > >(std::declval< const Std::detected_t< TargetType, Args... > * >())), TargetType, Args... >
 This type will be either TargetType<Args...> if it exists, or the Fallback<Args...> type.
 
typedef DebugStream< VERY_VERBOSE_DEBUG_LEVEL, MINIMAL_DEBUG_LEVEL > DVVerbType
 Type of very verbose debug stream. More...
 
typedef DebugStream< VERBOSE_DEBUG_LEVEL, MINIMAL_DEBUG_LEVEL > DVerbType
 Type of more verbose debug stream. More...
 
typedef DebugStream< INFO_DEBUG_LEVEL, MINIMAL_DEBUG_LEVEL > DInfoType
 Type of debug stream with info level. More...
 
typedef DebugStream< WARN_DEBUG_LEVEL, MINIMAL_DEBUG_LEVEL > DWarnType
 Type of debug stream with warn level. More...
 
typedef DebugStream< GRAVE_DEBUG_LEVEL, MINIMAL_DEBUG_LEVEL > DGraveType
 Type of debug stream for fatal errors.
 
typedef DebugStream< 1 > DErrType
 The type of the stream used for error messages.
 
template<class... T>
using TypeList = std::tuple< MetaType< T >... >
 A simple type list. More...
 
template<std::size_t i, class T >
using TypeListEntry_t = typename TypeListElement< i, T >::type
 Shortcut for TypeListElement<i, T>::type;.
 
template<template< class... > class Target, class TL >
using UnpackTypeList_t = typename Impl::UnpackTypeList< Target, TL >::type
 Unpack Dune::TypeList. More...
 
template<template< class... > class Target, class... T>
using UniqueTypes_t = typename Impl::UniqueTypesHelper< Target, TypeList< T... > >::type
 Remove duplicates from a list of types. More...
 
template<class NonUniqueTypeList >
using UniqueTypeList_t = typename Impl::UniqueTypesHelper< TypeList, NonUniqueTypeList >::type
 Remove duplicates from a Dune::TypeList. More...
 
template<class... Types>
using void_t = typename Impl::voider< Types... >::type
 Is void for all valid input types. The workhorse for C++11 SFINAE-techniques. More...
 
template<class Type >
using field_t = typename FieldTraits< Type >::field_type
 Convenient access to FieldTraits<Type>::field_type.
 
template<class Type >
using real_t = typename FieldTraits< Type >::real_type
 Convenient access to FieldTraits<Type>::real_type.
 
template<class T >
using AutonomousValue = typename AutonomousValueType< T >::type
 Type free of internal references that T can be converted to. More...
 
template<class This , class... T>
using disableCopyMove = std::enable_if_t< not Impl::disableCopyMoveHelper< This, T... >::value, int >
 Helper to disable constructor as copy and move constructor. More...
 
template<class M , class X , class Y , int l = 1>
using SeqGS = SeqSOR< M, X, Y, l >
 Sequential Gauss Seidel preconditioner. More...
 
template<class D , class R , int dim>
using HierarchicalP1WithElementBubbleLocalFiniteElement = SimplexP1BubbleLocalFiniteElement< D, R, dim >
 Linear Lagrange functions enriched with an element bubble function. More...
 
template<class D , class R , std::size_t dim, std::size_t order>
using LagrangeLocalFiniteElementCache = LocalFiniteElementVariantCache< Impl::ImplementedLagrangeFiniteElements< D, R, dim, order > >
 A cache that stores all available Pk/Qk like local finite elements for the given dimension and order. More...
 
template<class D , class R , std::size_t dim, std::size_t order>
using RaviartThomasLocalFiniteElementCache = LocalFiniteElementVariantCache< Impl::ImplementedRaviartThomasLocalFiniteElements< D, R, dim, order > >
 A cache that stores all available Raviart-Thomas local finite elements for the given dimension and order. More...
 
using MCMGLayout = std::function< size_t(GeometryType, int)>
 layout function for MultipleCodimMultipleGeomTypeMapper More...
 
template<int mydim, int coorddim, class GridImp >
using OneDGridGeometry = AxisAlignedCubeGeometry< double, mydim, coorddim >
 The type used to for OneDGrid geometries. More...
 

Enumerations

enum  { implementationDefined }
 
enum  ParallelIndexSetState { GROUND , RESIZE }
 The states the index set can be in. More...
 
enum  LocalIndexState
 The states available for the local indices. More...
 
enum  PartitionType {
  InteriorEntity =0 , BorderEntity =1 , OverlapEntity =2 , FrontEntity =3 ,
  GhostEntity =4
}
 Attributes used in the generic overlap model. More...
 
enum  InterfaceType {
  InteriorBorder_InteriorBorder_Interface =0 , InteriorBorder_All_Interface =1 , Overlap_OverlapFront_Interface =2 , Overlap_All_Interface =3 ,
  All_All_Interface =4
}
 Parameter to be used for the communication functions. More...
 
enum  PartitionIteratorType {
  Interior_Partition =0 , InteriorBorder_Partition =1 , Overlap_Partition =2 , OverlapFront_Partition =3 ,
  All_Partition =4 , Ghost_Partition =5
}
 Parameter to be used for the parallel level- and leaf iterators. More...
 
enum  CommunicationDirection { ForwardCommunication , BackwardCommunication }
 Define a type for communication direction parameter. More...
 

Functions

template<class T >
std::string className ()
 Provide the demangled class name of a type T as a string.
 
template<class T >
std::string className (T &&v)
 Provide the demangled class name of a given object as a string.
 
template<class C , class... T>
constexpr auto models ()
 Check if concept is modeled by given types. More...
 
template<typename T1 , typename T2 >
const T1 cond (bool b, const T1 &v1, const T2 &v2)
 conditional evaluate More...
 
static void defaultViolatedAlignment (const char *className, std::size_t expectedAlignment, const void *address)
 default alignment violation handler More...
 
ViolatedAlignmentHandlerviolatedAlignmentHandler ()
 access the handler called by violatedAlignment() More...
 
void violatedAlignment (const char *className, std::size_t expectedAlignment, const void *address)
 called when an alignment violation is detected More...
 
bool isAligned (const void *p, std::size_t align)
 check whether an address conforms to the given alignment
 
template<std::size_t align = debugAlignment, class T >
AlignedNumber< T, align > aligned (T value)
 align a value to a certain alignment
 
template<typename MAT >
std::ostream & operator<< (std::ostream &s, const DenseMatrix< MAT > &a)
 Sends the matrix to an output stream.
 
template<class A , class B >
auto dot (const A &a, const B &b) -> typename std::enable_if< IsNumber< A >::value &&!IsVector< A >::value &&!std::is_same< typename FieldTraits< A >::field_type, typename FieldTraits< A >::real_type > ::value, decltype(conj(a) *b)>::type
 computes the dot product for fundamental data types according to Petsc's VectDot function: dot(a,b) := std::conj(a)*b More...
 
template<class A , class B >
auto dotT (const A &a, const B &b) -> decltype(a *b)
 Computes an indefinite vector dot product for fundamental data types according to Petsc's VectTDot function: dotT(a,b) := a*b. More...
 
template<std::size_t n, class T >
constexpr std::array< T, n > filledArray (const T &t)
 Return an array filled with the provided value. More...
 
template<typename T >
void hash_combine (std::size_t &seed, const T &arg)
 Calculates the hash value of arg and combines it in-place with seed. More...
 
template<typename It >
std::size_t hash_range (It first, It last)
 Hashes all elements in the range [first,last) and returns the combined hash. More...
 
template<typename It >
void hash_range (std::size_t &seed, It first, It last)
 Hashes all elements in the range [first,last) and combines the hashes in-place with seed. More...
 
std::ostream & operator<< (std::ostream &s, const Indent &indent)
 write indentation to a stream
 
template<class F , class I , I... i>
decltype(auto) constexpr unpackIntegerSequence (F &&f, std::integer_sequence< I, i... > sequence)
 Unpack an std::integer_sequence<I,i...> to std::integral_constant<I,i>... More...
 
template<std::size_t pos, class T , T... II, std::enable_if_t<(!(pos >=sizeof...(II))), int > = 0>
constexpr auto get (std::integer_sequence< T, II... >, std::integral_constant< std::size_t, pos >={})
 Return the entry at position pos of the given sequence.
 
template<class T , T... II>
constexpr T get (std::integer_sequence< T, II... >, std::size_t pos)
 Return the entry at position pos of the given sequence.
 
template<class T , T I0, T... II>
constexpr std::integral_constant< T, I0 > front (std::integer_sequence< T, I0, II... >)
 Return the first entry of the sequence.
 
template<class T , T... II, std::enable_if_t<(sizeof...(II) > 0), int > = 0>
constexpr auto back (std::integer_sequence< T, II... > seq)
 Return the last entry of the sequence.
 
template<class T , T I0, T... II>
constexpr std::integral_constant< T, I0 > head (std::integer_sequence< T, I0, II... >)
 For a sequence [head,tail...) return the single head element.
 
template<class T , T I0, T... II>
constexpr std::integer_sequence< T, II... > tail (std::integer_sequence< T, I0, II... >)
 For a sequence [head,tail...) return the tail sequence.
 
template<auto I0, class T , T... II>
constexpr std::integer_sequence< T, T(I0), II... > push_front (std::integer_sequence< T, II... >, std::integral_constant< T, I0 >={})
 Append an index I0 to the front of the sequence.
 
template<auto IN, class T , T... II>
constexpr std::integer_sequence< T, II..., T(IN)> push_back (std::integer_sequence< T, II... >, std::integral_constant< T, IN >={})
 Append an index IN to the back of the sequence.
 
template<class T , T... II>
constexpr std::integral_constant< std::size_t, sizeof...(II)> size (std::integer_sequence< T, II... >)
 Return the size of the sequence.
 
template<class T , T... II>
constexpr std::bool_constant<(sizeof...(II)==0)> empty (std::integer_sequence< T, II... >)
 Checks whether the sequence is empty.
 
template<class T , T... II, class Compare >
constexpr auto sorted (std::integer_sequence< T, II... > seq, Compare comp)
 Sort a given sequence by the comparator comp.
 
template<class T , T... II>
constexpr auto sorted (std::integer_sequence< T, II... > seq)
 Sort a given sequence by less-than comparison.
 
template<class T , T... II, T value>
constexpr std::bool_constant<((II==value)||...)> contains (std::integer_sequence< T, II... >, std::integral_constant< T, value >)
 Checks whether or not a given sequence contains a value.
 
template<class T , T... II, T... JJ>
constexpr auto difference (std::integer_sequence< T, II... > iSeq, std::integer_sequence< T, JJ... > jSeq)
 Return the elements from the sequence [II...) which are not found in the sequence [JJ...).
 
template<std::size_t N, class T , T... JJ, std::enable_if_t<(N >=sizeof...(JJ)), int > = 0>
constexpr auto difference (std::integer_sequence< T, JJ... > jSeq)
 Return the elements from the sequence [0,1,...N) which are not found in the sequence [JJ...).
 
template<class S , S... II, class T , T... JJ, std::enable_if_t<(sizeof...(II)==sizeof...(JJ)), int > = 0, class ST = std::common_type_t<S,T>>
constexpr std::is_same< std::integer_sequence< bool, true,(ST(II)==ST(JJ))... >, std::integer_sequence< bool,(ST(II)==ST(JJ))..., true > > equal (std::integer_sequence< S, II... >, std::integer_sequence< T, JJ... >)
 Checks whether two sequences are identical.
 
template<class S , S... II, class T , T... JJ, std::enable_if_t<(sizeof...(II) !=sizeof...(JJ)), int > = 0>
constexpr std::bool_constant< false > equal (std::integer_sequence< S, II... >, std::integer_sequence< T, JJ... >)
 Sequences are unequal if not of the same length.
 
template<template< auto > class Filter, class T , T J0, T... JJ>
constexpr auto filter (std::integer_sequence< T, J0, JJ... > jSeq)
 
template<class Filter , class T , T J0, T... JJ>
constexpr auto filter (Filter f, std::integer_sequence< T, J0, JJ... > jSeq)
 
template<class T1 , class V1 , class R1 , class D , class T2 , class V2 , class R2 >
EnableIfInterOperable< T1, T2, bool >::type operator== (const ForwardIteratorFacade< T1, V1, R1, D > &lhs, const ForwardIteratorFacade< T2, V2, R2, D > &rhs)
 Checks for equality. More...
 
template<class T1 , class V1 , class R1 , class D , class T2 , class V2 , class R2 >
EnableIfInterOperable< T1, T2, bool >::type operator!= (const ForwardIteratorFacade< T1, V1, R1, D > &lhs, const ForwardIteratorFacade< T2, V2, R2, D > &rhs)
 Checks for inequality. More...
 
template<class T1 , class V1 , class R1 , class D , class T2 , class V2 , class R2 >
std::enable_if< std::is_convertible< T2, T1 >::value, bool >::type operator== (const BidirectionalIteratorFacade< T1, V1, R1, D > &lhs, const BidirectionalIteratorFacade< T2, V2, R2, D > &rhs)
 Checks for equality. More...
 
template<class T1 , class V1 , class R1 , class D , class T2 , class V2 , class R2 >
std::enable_if< std::is_convertible< T1, T2 >::value &&!std::is_convertible< T2, T1 >::value, bool >::type operator== (const BidirectionalIteratorFacade< T1, V1, R1, D > &lhs, const BidirectionalIteratorFacade< T2, V2, R2, D > &rhs)
 Checks for equality. More...
 
template<class T1 , class V1 , class R1 , class D , class T2 , class V2 , class R2 >
EnableIfInterOperable< T1, T2, bool >::type operator!= (const BidirectionalIteratorFacade< T1, V1, R1, D > &lhs, const BidirectionalIteratorFacade< T2, V2, R2, D > &rhs)
 Checks for inequality. More...
 
template<class T1 , class V1 , class R1 , class D , class T2 , class V2 , class R2 >
EnableIfInterOperable< T1, T2, bool >::type operator== (const RandomAccessIteratorFacade< T1, V1, R1, D > &lhs, const RandomAccessIteratorFacade< T2, V2, R2, D > &rhs)
 Checks for equality. More...
 
template<class T1 , class V1 , class R1 , class D , class T2 , class V2 , class R2 >
EnableIfInterOperable< T1, T2, bool >::type operator!= (const RandomAccessIteratorFacade< T1, V1, R1, D > &lhs, const RandomAccessIteratorFacade< T2, V2, R2, D > &rhs)
 Checks for inequality. More...
 
template<class T1 , class V1 , class R1 , class D , class T2 , class V2 , class R2 >
EnableIfInterOperable< T1, T2, bool >::type operator< (const RandomAccessIteratorFacade< T1, V1, R1, D > &lhs, const RandomAccessIteratorFacade< T2, V2, R2, D > &rhs)
 Comparison operator. More...
 
template<class T1 , class V1 , class R1 , class D , class T2 , class V2 , class R2 >
EnableIfInterOperable< T1, T2, bool >::type operator<= (const RandomAccessIteratorFacade< T1, V1, R1, D > &lhs, const RandomAccessIteratorFacade< T2, V2, R2, D > &rhs)
 Comparison operator. More...
 
template<class T1 , class V1 , class R1 , class D , class T2 , class V2 , class R2 >
EnableIfInterOperable< T1, T2, bool >::type operator> (const RandomAccessIteratorFacade< T1, V1, R1, D > &lhs, const RandomAccessIteratorFacade< T2, V2, R2, D > &rhs)
 Comparison operator. More...
 
template<class T1 , class V1 , class R1 , class D , class T2 , class V2 , class R2 >
EnableIfInterOperable< T1, T2, bool >::type operator>= (const RandomAccessIteratorFacade< T1, V1, R1, D > &lhs, const RandomAccessIteratorFacade< T2, V2, R2, D > &rhs)
 Comparison operator. More...
 
template<class T1 , class V1 , class R1 , class D , class T2 , class V2 , class R2 >
EnableIfInterOperable< T1, T2, D >::type operator- (const RandomAccessIteratorFacade< T1, V1, R1, D > &lhs, const RandomAccessIteratorFacade< T2, V2, R2, D > &rhs)
 Calculates the difference between two pointers. More...
 
template<class T1 , class T2 , class C , class V1 , class V2 , class R1 , class R2 , class P1 , class P2 , class D1 , class D2 >
constexpr auto operator== (const IteratorFacade< T1, C, V1, R1, P1, D1 > &it1, const IteratorFacade< T2, C, V2, R2, P2, D2 > &it2)
 Equality comparison for IteratorFacade. More...
 
template<class T1 , class T2 , class C , class V1 , class V2 , class R1 , class R2 , class P1 , class P2 , class D1 , class D2 , std::enable_if_t< Dune::models< Impl::Concepts::IterEqualsOp, T1, T2 >(), int > = 0>
constexpr bool operator!= (const IteratorFacade< T1, C, V1, R1, P1, D1 > &it1, const IteratorFacade< T2, C, V2, R2, P2, D2 > &it2)
 Inequality comparison for IteratorFacade. More...
 
template<class T1 , class T2 , class C , class V1 , class V2 , class R1 , class R2 , class P1 , class P2 , class D >
constexpr auto operator- (const IteratorFacade< T1, C, V1, R1, P1, D > &it1, const IteratorFacade< T2, C, V2, R2, P2, D > &it2)
 Difference for two IteratorFacade objects. More...
 
template<class T1 , class T2 , class C , class V1 , class V2 , class R1 , class R2 , class P1 , class P2 , class D1 , class D2 , std::enable_if_t< Dune::models< Impl::Concepts::IterDistanceOp< D1 >, T1, T2 >(), int > = 0>
constexpr bool operator< (const IteratorFacade< T1, C, V1, R1, P1, D1 > &it1, const IteratorFacade< T2, C, V2, R2, P2, D2 > &it2)
 Comparison for IteratorFacade. More...
 
template<class T1 , class T2 , class C , class V1 , class V2 , class R1 , class R2 , class P1 , class P2 , class D1 , class D2 , std::enable_if_t< Dune::models< Impl::Concepts::IterDistanceOp< D1 >, T1, T2 >(), int > = 0>
constexpr bool operator<= (const IteratorFacade< T1, C, V1, R1, P1, D1 > &it1, const IteratorFacade< T2, C, V2, R2, P2, D2 > &it2)
 Comparison for IteratorFacade. More...
 
template<class T1 , class T2 , class C , class V1 , class V2 , class R1 , class R2 , class P1 , class P2 , class D1 , class D2 , std::enable_if_t< Dune::models< Impl::Concepts::IterDistanceOp< D1 >, T1, T2 >(), int > = 0>
constexpr bool operator> (const IteratorFacade< T1, C, V1, R1, P1, D1 > &it1, const IteratorFacade< T2, C, V2, R2, P2, D2 > &it2)
 Comparison for IteratorFacade. More...
 
template<class T1 , class T2 , class C , class V1 , class V2 , class R1 , class R2 , class P1 , class P2 , class D1 , class D2 , std::enable_if_t< Dune::models< Impl::Concepts::IterDistanceOp< D1 >, T1, T2 >(), int > = 0>
constexpr bool operator>= (const IteratorFacade< T1, C, V1, R1, P1, D1 > &it1, const IteratorFacade< T2, C, V2, R2, P2, D2 > &it2)
 Comparison for IteratorFacade. More...
 
template<class T >
constexpr bool operator== (const MallocAllocator< T > &, const MallocAllocator< T > &)
 check whether allocators are equivalent
 
template<class T >
constexpr bool operator!= (const MallocAllocator< T > &, const MallocAllocator< T > &)
 check whether allocators are not equivalent
 
template<class Base , class Exponent >
constexpr Base power (Base m, Exponent p)
 Power method for integer exponents. More...
 
template<class T >
static constexpr T factorial (const T &n) noexcept
 calculate the factorial of n as a constexpr
 
template<class T , T n>
static constexpr auto factorial (std::integral_constant< T, n >) noexcept
 calculate the factorial of n as a constexpr
 
template<class T >
static constexpr T binomial (const T &n, const T &k) noexcept
 calculate the binomial coefficient n over k as a constexpr
 
template<class T , T n, T k>
static constexpr auto binomial (std::integral_constant< T, n >, std::integral_constant< T, k >) noexcept
 calculate the binomial coefficient n over k as a constexpr
 
template<class K >
conjugateComplex (const K &x)
 compute conjugate complex of x
 
template<class T >
int sign (const T &val)
 Return the sign of the value.
 
template<class... F>
auto overload (F &&... f)
 Create an overload set. More...
 
template<class... F>
auto orderedOverload (F &&... f)
 Create an ordered overload set. More...
 
bool operator== (const No_Comm &, const No_Comm &)
 Comparison operator for MPI compatibility. More...
 
bool operator!= (const No_Comm &, const No_Comm &)
 Comparison operator for MPI compatibility. More...
 
template<class TG , class TL >
std::ostream & operator<< (std::ostream &os, const IndexPair< TG, TL > &pair)
 Print an index pair. More...
 
template<class TG , class TL , int N>
std::ostream & operator<< (std::ostream &os, const ParallelIndexSet< TG, TL, N > &indexSet)
 Print an index set. More...
 
template<typename T , typename A , typename A1 >
void storeGlobalIndicesOfRemoteIndices (std::map< int, SLList< std::pair< typename T::GlobalIndex, typename T::LocalIndex::Attribute >, A > > &globalMap, const RemoteIndices< T, A1 > &remoteIndices)
 Stores the corresponding global indices of the remote index information. More...
 
template<typename T , typename A , typename A1 >
void repairLocalIndexPointers (std::map< int, SLList< std::pair< typename T::GlobalIndex, typename T::LocalIndex::Attribute >, A > > &globalMap, RemoteIndices< T, A1 > &remoteIndices, const T &indexSet)
 Repair the pointers to the local indices in the remote indices. More...
 
template<class T >
std::ostream & operator<< (std::ostream &os, const ParallelLocalIndex< T > &index)
 Print the local index to a stream. More...
 
std::string concatPaths (const std::string &base, const std::string &p)
 concatenate two paths More...
 
std::string processPath (const std::string &p)
 sanitize a path for further processing More...
 
bool pathIndicatesDirectory (const std::string &p)
 check whether the given path indicates that it is a directory More...
 
std::string prettyPath (const std::string &p, bool isDirectory)
 pretty print path More...
 
std::string prettyPath (const std::string &p)
 pretty print path More...
 
std::string relativePath (const std::string &newbase, const std::string &p)
 compute a relative path between two paths More...
 
template<typename T >
pointer_or_proxy_holder handle_proxy_member_access (T &&t)
 Transparent support for providing member access to both lvalues and rvalues (temporary proxies). More...
 
template<typename T , typename std::enable_if< IsIterable< T >::value, int >::type = 0>
T::value_type max_value (const T &v)
 compute the maximum value over a range More...
 
template<typename T , typename std::enable_if< IsIterable< T >::value, int >::type = 0>
T::value_type min_value (const T &v)
 compute the minimum value over a range More...
 
template<typename T , typename std::enable_if< IsIterable< T >::value, int >::type = 0>
bool any_true (const T &v)
 similar to std::bitset<N>::any() return true, if any entries is true More...
 
template<typename T , typename std::enable_if< IsIterable< T >::value, int >::type = 0>
bool all_true (const T &v)
 similar to std::bitset<N>::all() return true, if any entries is true More...
 
template<class T , class U , std::enable_if_t< std::is_same< std::decay_t< T >, std::decay_t< U > >::value, int > = 0, std::enable_if_t< std::is_integral< std::decay_t< T > >::value, int > = 0>
static IntegralRange< std::decay_t< T > > range (T &&from, U &&to) noexcept
 free standing function for setting up a range based for loop over an integer range for (auto i: range(0,10)) // 0,1,2,3,4,5,6,7,8,9 or for (auto i: range(-10,10)) // -10,-9,..,8,9 or for (auto i: range(10)) // 0,1,2,3,4,5,6,7,8,9
 
template<class R , class F >
auto transformedRangeView (R &&range, F &&f)
 Create a TransformedRangeView. More...
 
template<class R , class F >
auto iteratorTransformedRangeView (R &&range, F &&f)
 Create a TransformedRangeView using an iterator transformation. More...
 
template<class Range >
auto sparseRange (Range &&range)
 Allow structured-binding for-loops for sparse iterators. More...
 
template<class T >
constexpr T & resolveRef (T &gf) noexcept
 Helper function to resolve std::reference_wrapper. More...
 
template<class T >
constexpr T & resolveRef (std::reference_wrapper< T > gf) noexcept
 Helper function to resolve std::reference_wrapper. More...
 
template<typename T >
std::shared_ptr< T > stackobject_to_shared_ptr (T &t)
 Create a shared_ptr for a stack-allocated object. More...
 
template<class T >
auto wrap_or_move (T &&t)
 Capture R-value reference to shared_ptr. More...
 
template<class T >
auto wrap_or_move (T &t)
 Capture L-value reference to std::shared_ptr. More...
 
template<class T >
std::size_t lanes (const T &)
 get the number of lanes of a simd vector (scalar version)
 
template<class T >
lane (std::size_t l, const T &v)
 access a lane of a simd vector (scalar version)
 
template<class T >
T & lane (std::size_t l, T &v)
 access a lane of a simd vector (scalar version)
 
template<class T >
void assign (T &dst, const T &src, bool mask)
 masked Simd assignment (scalar version) More...
 
void assertCallOnce (const char *file=nullptr, int line=-1, const char *function=nullptr)
 Make sure call_once() works and provide a helpful error message otherwise. More...
 
template<typename... Ts>
std::ostream & operator<< (std::ostream &stream, const std::tuple< Ts... > &t)
 Print a std::tuple.
 
template<typename... Ts>
std::istream & operator>> (std::istream &stream, std::tuple< Ts... > &t)
 Read a std::tuple.
 
template<typename T , std::size_t N>
std::ostream & operator<< (std::ostream &stream, const std::array< T, N > &a)
 Print a std::array.
 
template<typename C >
bool hasPrefix (const C &c, const char *prefix)
 Check whether a character container has a given prefix. More...
 
template<typename C >
bool hasSuffix (const C &c, const char *suffix)
 Check whether a character container has a given suffix. More...
 
template<class... T>
static std::string formatString (const std::string &s, const T &... args)
 Format values according to printf format string. More...
 
template<class Matrix , std::enable_if_t< Impl::HasMemberFunctionTransposed< Matrix >::value, int > = 0>
auto transpose (const Matrix &matrix)
 Return the transposed of the given matrix. More...
 
template<class Matrix , std::enable_if_t< not Impl::HasMemberFunctionTransposed< std::decay_t< Matrix > >::value, int > = 0>
auto transpose (Matrix &&matrix)
 Create a wrapper modelling the transposed matrix. More...
 
template<class Matrix >
auto transpose (const std::reference_wrapper< Matrix > &matrix)
 Create a wrapper modelling the transposed matrix. More...
 
template<class Matrix >
auto transposedView (const Matrix &matrix)
 Create a view modelling the transposed matrix. More...
 
template<class F , class ArgTuple , class I , I... i>
decltype(auto) applyPartial (F &&f, ArgTuple &&args, std::integer_sequence< I, i... >)
 Apply function with arguments from a given tuple. More...
 
template<class Tuple , class Functor >
auto genericTransformTuple (Tuple &&t, Functor &&f) -> decltype(genericTransformTupleBackend(t, f))
 
template<template< class > class TypeEvaluator, class Tuple , class... Args>
auto transformTuple (Tuple &&orig, Args &&... args) -> decltype(genericTransformTuple(orig, makeTransformTupleFunctor< TypeEvaluator >(args...)))
 
template<class... T>
constexpr auto uniqueTypeList (TypeList< T... > list)
 Remove duplicates from a Dune::TypeList. More...
 
template<class T , T... t, std::size_t index>
constexpr auto integerSequenceEntry (std::integer_sequence< T, t... >, std::integral_constant< std::size_t, index > i)
 Get entry of std::integer_sequence. More...
 
template<class T >
constexpr AutonomousValue< T > autoCopy (T &&v)
 Autonomous copy of an expression's value for use in auto type deduction. 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. More...
 
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. More...
 
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 Matrix >
void bildl_decompose (Matrix &A)
 compute ILDL decomposition of a symmetric matrix A More...
 
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 , std::enable_if_t< Dune::IsNumber< K >::value, int > = 0>
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)
 Print one row of a matrix, specialization for number types. More...
 
template<class M , std::enable_if_t< not Dune::IsNumber< M >::value, int > = 0>
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 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 A , class InnerMatrixType >
void printSparseMatrix (std::ostream &s, const BCRSMatrix< InnerMatrixType, 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 , std::enable_if_t< Dune::IsNumber< FieldType >::value, int > = 0>
void writeMatrixToMatlabHelper (const FieldType &value, int rowOffset, int colOffset, std::ostream &s)
 Helper method for the writeMatrixToMatlab routine. More...
 
template<class MatrixType , std::enable_if_t< not Dune::IsNumber< MatrixType >::value, int > = 0>
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...
 
template<class VectorType >
void writeVectorToMatlab (const VectorType &vector, const std::string &filename, int outputPrecision=18)
 Writes vectors in a Matlab-readable format. More...
 
template<class Mat , class SVGOptions = DefaultSVGMatrixOptions>
void writeSVGMatrix (std::ostream &out, const Mat &mat, SVGOptions opts={})
 Writes the visualization of matrix in the SVG format. More...
 
template<class Mat , class SVGOptions = DefaultSVGMatrixOptions>
void writeSVGMatrix (const Mat &mat, std::ostream &out, SVGOptions opts={})
 Writes the visualization of matrix in the SVG format. More...
 
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 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. More...
 
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. 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 redistributeMatrix (M &origMatrix, M &newMatrix, C &origComm, C &newComm, RedistributeInformation< C > &ri)
 Redistribute a matrix according to given domain decompositions. More...
 
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. More...
 
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.
 
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 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. More...
 
template<class X , class Comm >
std::shared_ptr< ScalarProduct< X > > makeScalarProduct (std::shared_ptr< const Comm > comm, SolverCategory::Category category)
 Choose the appropriate scalar product for a solver category. More...
 
template<class X , class Comm >
std::shared_ptr< ScalarProduct< X > > createScalarProduct (const Comm &comm, SolverCategory::Category category)
 
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...
 
template<class Operator >
std::shared_ptr< Preconditioner< typename Operator::domain_type, typename Operator::range_type > > getPreconditionerFromFactory (std::shared_ptr< Operator > op, const ParameterTree &config)
 Construct a Preconditioner for a given Operator.
 
template<class F2 , class F1 >
void field_cast (const F1 &f1, F2 &f2)
 a helper class to cast from one field to another More...
 
template<class InIterator , class OutIterator >
void reduceOrder (const InIterator &inBegin, const InIterator &inEnd, OutIterator outIt)
 Algorithm to reduce vertex order information. More...
 
template<typename... T>
unspecified value type referenceElement (T &&... t)
 Returns a reference element for the objects t.... More...
 
template<typename T , int dim>
auto referenceElement (const Dune::GeometryType &gt, Dune::Dim< dim >={})
 Returns a reference element of dimension dim for the given geometry type and coordinate field type. More...
 
template<typename T , int dim, std::enable_if_t< IsNumber< std::decay_t< T > >::value, int > = 0>
auto referenceElement (const T &, const Dune::GeometryType &gt, Dune::Dim< dim >)
 Returns a reference element of dimension dim for the given geometry type and coordinate field type. More...
 
RefinementIntervals refinementIntervals (int intervals)
 Creates a RefinementIntervals object. More...
 
RefinementIntervals refinementLevels (int levels)
 Creates a RefinementIntervals object. More...
 
template<class TestGeometry >
bool checkGeometry (const TestGeometry &geometry)
 Static and dynamic checks for all features of a Geometry. More...
 
std::ostream & operator<< (std::ostream &s, const GeometryType &a)
 Prints the type to an output stream.
 
GeometryType geometryTypeFromVertexCount (unsigned int dim, unsigned int vertices)
 Utility function to construct the correct geometry type given the dimension and the number of vertices. More...
 
template<int dimension, class CoordType >
VirtualRefinement< dimension, CoordType > & buildRefinement (GeometryType geometryType, GeometryType coerceTo)
 return a reference to the VirtualRefinement according to the parameters More...
 
template<int dim, int dimworld, class ct , class GridFamily >
Grid< dim, dimworld, ct, GridFamily >::LevelGridView levelGridView (const Grid< dim, dimworld, ct, GridFamily > &grid, int level)
 level grid view for the given grid and level. More...
 
template<int dim, int dimworld, class ct , class GridFamily >
Grid< dim, dimworld, ct, GridFamily >::LeafGridView leafGridView (const Grid< dim, dimworld, ct, GridFamily > &grid)
 leaf grid view for the given grid More...
 
std::string PartitionName (PartitionType type)
 Provide names for the partition types. More...
 
std::ostream & operator<< (std::ostream &out, const PartitionType &type)
 write a PartitionType to a stream More...
 
std::ostream & operator<< (std::ostream &out, const InterfaceType &type)
 write an InterfaceType to a stream More...
 
std::ostream & operator<< (std::ostream &out, const PartitionIteratorType &type)
 write a PartitionIteratorType to a stream More...
 
template<class G >
void gridinfo (const G &grid, std::string prefix="")
 A function to print some information about the grid as a whole.
 
template<class G >
void gridlevellist (const G &grid, int level, std::string prefix)
 A function to print info about a grid level and its entities.
 
template<class G >
void gridleaflist (const G &grid, std::string prefix)
 A function to print info about a leaf grid and its entities.
 
template<int codim>
MCMGLayout mcmgLayout (Codim< codim >)
 layout for entities of codimension codim More...
 
template<int dim>
MCMGLayout mcmgLayout (Dim< dim >)
 layout for entities of dimension dim More...
 
MCMGLayout mcmgElementLayout ()
 layout for elements (codim-0 entities) More...
 
MCMGLayout mcmgVertexLayout ()
 layout for vertices (dim-0 entities) More...
 
template<typename GridType >
void printGrid (const GridType &grid, const Dune::MPIHelper &helper, std::string output_file="printgrid", int size=2000, bool execute_plot=true, bool png=true, bool local_corner_indices=true, bool local_intersection_indices=true, bool outer_normals=true)
 Print a grid as a gnuplot for testing and development. More...
 
template<class GV >
void fillGridViewInfoSerial (const GV &gv, GridViewInfo< typename GV::ctype > &gridViewInfo)
 fill a GridViewInfo structure from a serial grid More...
 
template<int d, class CC >
std::ostream & operator<< (std::ostream &s, const YaspGrid< d, CC > &grid)
 Output operator for multigrids.
 
template<class Communication , int d>
std::ostream & operator<< (std::ostream &s, const Torus< Communication, d > &t)
 Output operator for Torus.
 
template<class Coordinates >
std::ostream & operator<< (std::ostream &s, YGridComponent< Coordinates > e)
 Output operator for ygrids.
 
template<class Coordinates >
std::ostream & operator<< (std::ostream &s, typename YGridComponent< Coordinates >::Iterator &e)
 Output operator for ygrids.
 
template<class Coordinates >
std::ostream & operator<< (std::ostream &s, const YGrid< Coordinates > &e)
 Output operator for ygrids.
 

Variables

static constexpr auto debugAlignment = 2*alignof(std::max_align_t)
 an alignment large enough to trigger alignment errors
 
template<class T >
constexpr bool IsReferenceWrapper_v = Impl::IsReferenceWrapper<T>::value
 Helper to detect if given type is a std::reference_wrapper.
 
DVVerbType dvverb (std::cout)
 stream for very verbose output. More...
 
DVerbType dverb (std::cout)
 Singleton of verbose debug stream. More...
 
DInfoType dinfo (std::cout)
 Stream for informative output. More...
 
DWarnType dwarn (std::cerr)
 Stream for warnings indicating problems. More...
 
DGraveType dgrave (std::cerr)
 Stream for warnings indicating fatal errors. More...
 
DErrType derr (std::cerr)
 Stream for error messages. More...
 
static const DebugLevel VERY_VERBOSE_DEBUG_LEVEL = 1
 The level of the very verbose debug stream. More...
 
static const DebugLevel VERBOSE_DEBUG_LEVEL = 2
 The level of the verbose debug stream. More...
 
static const DebugLevel INFO_DEBUG_LEVEL = 3
 The level of the informative debug stream. More...
 
static const DebugLevel WARN_DEBUG_LEVEL = 4
 The level of the debug stream for warnings. More...
 
static const DebugLevel GRAVE_DEBUG_LEVEL = 5
 The level of the debug stream for fatal errors. More...
 
const char base64table []
 endoing table
 

Detailed Description

Dune namespace.

For backward compatibility – Do not use this!

Include standard header files.

Todo:
put vtk io intro here ...

details and examples regarding the VTK file format can be found here:

http://www.earthmodels.org/software/vtk-and-paraview/vtk-file-formats

include base class functionality for the communication interface include parallel capability

Todo:

update quadrature order to work with lfsv != lfsu

update alpha_* to work with lfsv != lfsu (./)

update jacobian_* to work with lfsv != lfsu

update caches to work with lfsv != lfsu

Todo:
Don't use this matrix

Typedef Documentation

◆ CollectiveCommunication

template<class T >
using Dune::CollectiveCommunication = typedef Communication<T>
Deprecated:
CollectiveCommunication is deprecated and will be removed after Dune 2.9.

Use Communication instead.

◆ HierarchicalP1WithElementBubbleLocalFiniteElement

template<class D , class R , int dim>
using Dune::HierarchicalP1WithElementBubbleLocalFiniteElement = typedef SimplexP1BubbleLocalFiniteElement<D,R,dim>

Linear Lagrange functions enriched with an element bubble function.

Linear Lagrange functions enriched with an element bubble function.

The set of basis functions contains the classical Lagrange basis functions of order 1, i.e., the barycentric coordinates, and a single element "bubble" function that vanishes on all faces of the element. The bubble function is simply defined as the product of all linear basis functions and thus has polynomial order dim+1.

A classical example where this kind of basis is used in the discretization of the Stokes equation with the stable mixed-element called MINI element, see

Arnold, D.N., Brezzi, F. and Fortin, M. A stable finite element for the Stokes equations. Calcolo 21, 337-344 (1984). doi: 10.1007/BF02576171

The velocity field is discretized with continuous piecewise linear functions enriched by a bubble function.

Note
The implementation here is restricted to simplex elements.
Template Parameters
DType to represent the field in the domain.
RType to represent the field in the range.
dimDimension of the domain.

◆ LagrangeLocalFiniteElementCache

template<class D , class R , std::size_t dim, std::size_t order>
using Dune::LagrangeLocalFiniteElementCache = typedef LocalFiniteElementVariantCache<Impl::ImplementedLagrangeFiniteElements<D,R,dim,order> >

A cache that stores all available Pk/Qk like local finite elements for the given dimension and order.

An interface for dealing with different vertex orders is currently missing.

Template Parameters
DType used for domain coordinates
RType used for shape function values
dimElement dimension
orderElement order

The cached finite element implementations can be obtained using get(GeometryType).

◆ OneDGridGeometry

template<int mydim, int coorddim, class GridImp >
using Dune::OneDGridGeometry = typedef AxisAlignedCubeGeometry<double, mydim, coorddim>

The type used to for OneDGrid geometries.

If you ever want OneDGrid to use a different type for coordinates, you need to change the first argument of AxisAlignedCubeGeometry here.

◆ RaviartThomasLocalFiniteElementCache

template<class D , class R , std::size_t dim, std::size_t order>
using Dune::RaviartThomasLocalFiniteElementCache = typedef LocalFiniteElementVariantCache<Impl::ImplementedRaviartThomasLocalFiniteElements<D,R,dim,order> >

A cache that stores all available Raviart-Thomas local finite elements for the given dimension and order.

Template Parameters
DType used for domain coordinates
RType used for shape function values
dimElement dimension
orderElement order

The cached finite element implementations can be obtained using get(GeometryType).

◆ SimdIndex

template<typename V >
using Dune::SimdIndex = typedef typename SimdIndexTypeTraits<V>::type

An simd vector of indices corresponding to a simd vector V.

lanes(T()) == lanes(SimdIndex<T>()) holds.

Note
The size of the elements of a SimdIndex isn't very well-defined. Be careful.

◆ SimdMask

template<typename V >
using Dune::SimdMask = typedef typename SimdMaskTypeTraits<V>::type

A simd vector of truth values corresponding to a simd vector V.

lanes(T()) == lanes(SimdMask<T>()) holds.

◆ UniqueTypeList_t

template<class NonUniqueTypeList >
using Dune::UniqueTypeList_t = typedef typename Impl::UniqueTypesHelper<TypeList, NonUniqueTypeList>::type

Remove duplicates from a Dune::TypeList.

For a given Dune::TypeList<T...> this is an alias for Dune::TypeList<S...>, where S... is generated by removing duplicate types from T... .

◆ UniqueTypes_t

template<template< class... > class Target, class... T>
using Dune::UniqueTypes_t = typedef typename Impl::UniqueTypesHelper<Target, TypeList<T...> >::type

Remove duplicates from a list of types.

For a given list of types T... instantiate Target<S...>, where S... is generated by removing duplicate types from T... . This is useful for std::variant which does not like to be instantiated with duplicate types.

◆ UnpackTypeList_t

template<template< class... > class Target, class TL >
using Dune::UnpackTypeList_t = typedef typename Impl::UnpackTypeList<Target, TL>::type

Unpack Dune::TypeList.

For a given Dune::TypeList<T...> this is an alias for Target<T...>.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
implementationDefined 

Dummy integral value used for documentation purposes.

Documentation related stuff.
See also
ImplementationDefined

Function Documentation

◆ assertCallOnce()

void Dune::assertCallOnce ( const char *  file = nullptr,
int  line = -1,
const char *  function = nullptr 
)
inline

Make sure call_once() works and provide a helpful error message otherwise.

For call_once() to work, certain versions of libstdc++ need to be linked with -pthread or similar flags. If that is not the case, call_once() will throw an exception. This function checks that call_once() can indeed be used, i.e. that it does not throw an exception when it should not, and that the code does indeed get executed. If call_once() cannot be used, assertCallOnce() aborts the program with a helpful error message.

The check is only actually executed the first time assertCallOnce() is called.

The arguments file and line specify the filename and line number that should appear in the error message. They are ignored if file is 0. The argument function specifies the name of the function to appear in the error message. It is ignored if function is 0.

References Dune::GeometryTypes::line.

◆ assign()

template<class T >
void Dune::assign ( T &  dst,
const T &  src,
bool  mask 
)

masked Simd assignment (scalar version)

Assign src to dest for those lanes where mask is true.

References Dune::Simd::Overloads::mask().

Referenced by Dune::bigunsignedint< k >::bigunsignedint(), Dune::BitSetVector< block_size, Allocator >::setAll(), and Dune::BitSetVector< block_size, Allocator >::unsetAll().

◆ 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.

◆ buildRefinement()

template<int dimension, class CoordType >
VirtualRefinement< dimension, CoordType > & Dune::buildRefinement ( GeometryType  geometryType,
GeometryType  coerceTo 
)

return a reference to the VirtualRefinement according to the parameters

Template Parameters
dimensionDimension of the element to refine
CoordTypeC++ type of the coordinates
Exceptions
NotImplementedThere is no Refinement implementation for the specified parameters.
Parameters
geometryTypegeometry type of the refined element
coerceTogeometry type of the subelements

References Dune::GeometryType::dim(), and Dune::GeometryType::id().

◆ checkGeometry()

template<class TestGeometry >
bool Dune::checkGeometry ( const TestGeometry geometry)

Static and dynamic checks for all features of a Geometry.

This excludes anything related to being part of a grid.

Template Parameters
TestGeometryThe type of the geometry to be tested
Parameters
geometryThe TestGeometry object to be tested
Returns
true if check passed

◆ cond()

template<typename T1 , typename T2 >
const T1 Dune::cond ( bool  b,
const T1 &  v1,
const T2 &  v2 
)

conditional evaluate

sometimes call immediate if, evaluates to

if (b)
return v1;
else
return v2;

In contrast to if-then-else the cond function can also be evaluated for vector valued SIMD data types, see simd.hh.

Parameters
bboolean value
v1value of b==true
v2value of b==false

Referenced by Dune::Simd::Overloads::cond().

◆ createScalarProduct()

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

Note
Using this helper, you are responsible for the life-time management of comm

References stackobject_to_shared_ptr().

◆ defaultViolatedAlignment()

static void Dune::defaultViolatedAlignment ( const char *  className,
std::size_t  expectedAlignment,
const void *  address 
)
static

default alignment violation handler

Prints it's arguments on stderr and aborts.

References className().

Referenced by violatedAlignmentHandler().

◆ field_cast()

template<class F2 , class F1 >
void Dune::field_cast ( const F1 &  f1,
F2 &  f2 
)
inline

a helper class to cast from one field to another

This cast can be used for assignment between different field types, including for example between FieldVectors with different fields. Specially the conversion from a special type e.g. gmp to build in types are provided, the other direction can be more easily handled by the special field type implementation.

◆ fillGridViewInfoSerial()

template<class GV >
void Dune::fillGridViewInfoSerial ( const GV &  gv,
GridViewInfo< typename GV::ctype > &  gridViewInfo 
)

◆ fillIndexSetHoles()

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.

Referenced by graphRepartition().

◆ filter() [1/2]

template<class Filter , class T , T J0, T... JJ>
constexpr auto Dune::filter ( Filter  f,
std::integer_sequence< T, J0, JJ... >  jSeq 
)
constexpr

Return the elements from the sequence [JJ...) which are accepted by the Filter, i.e., for which f(integral_constant<JJ>) == true

References head(), push_front(), and tail().

◆ filter() [2/2]

template<template< auto > class Filter, class T , T J0, T... JJ>
constexpr auto Dune::filter ( std::integer_sequence< T, J0, JJ... >  jSeq)
constexpr

Return the elements from the sequence [JJ...) which are accepted by the Filter, i.e., for which Filter<JJ>::value == true

References head(), push_front(), and tail().

◆ flatMatrixForEach()

template<class Matrix , class F >
std::pair< std::size_t, std::size_t > Dune::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.

The functor f is assumed to have the signature

void(auto&& entry, std::size_t rowOffset, std::size_t colOffset)

taking a scalar entry and the current flat offset (index) of both row and column.

The restrictions on the matrix are:

  • well aligned blocks (otherwise there is no sense in the total number of scalar rows/cols)
  • all blocks have positive non-zero column / row number
  • at least one entry must be present if dynamic matrix types are wrapped within other dynamic matrix types
  • if the block size of a sparse matrix is statically known at compile time, the matrix can be empty

The return value is a pair of the total number of scalar rows and columns of the matrix.

Referenced by Dune::Cholmod< Vector, Index >::setMatrix().

◆ flatVectorForEach()

template<class Vector , class F >
std::size_t Dune::flatVectorForEach ( Vector &&  vector,
F &&  f,
std::size_t  offset = 0 
)

Traverse a blocked vector and call a functor at each scalar entry.

The functor f is assumed to have the signature

void(auto&& entry, std::size_t offset)

taking a scalar entry and the current flat offset (index) of this position.

It returns the total number of scalar entries. Similar to dimension() for some DUNE vector types.

References Dune::Hybrid::forEach().

Referenced by Dune::UMFPack< M >::apply(), and Dune::Cholmod< Vector, Index >::apply().

◆ geometryTypeFromVertexCount()

GeometryType Dune::geometryTypeFromVertexCount ( unsigned int  dim,
unsigned int  vertices 
)
inline

Utility function to construct the correct geometry type given the dimension and the number of vertices.

Note
This code only works up to dimension 3. In higher dimensions the number of vertices does not uniquely identify the type of polyhedron.

References DUNE_THROW, Dune::GeometryTypes::hexahedron, Dune::GeometryTypes::line, Dune::GeometryTypes::prism, Dune::GeometryTypes::pyramid, Dune::GeometryTypes::quadrilateral, Dune::GeometryTypes::tetrahedron, Dune::GeometryTypes::triangle, and Dune::GeometryTypes::vertex.

◆ graphRepartition()

template<class G , class T1 , class T2 >
bool Dune::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.

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 Dune::Communication< MPI_Comm >::barrier(), Dune::ParallelIndexSet< TG, TL, N >::begin(), Dune::SolverCategory::category(), Dune::OwnerOverlapCopyCommunication< GlobalIdType, LocalIdType >::copyCopyToAll(), Dune::OwnerOverlapCopyCommunication< GlobalIdType, LocalIdType >::copyOwnerToAll(), Dune::Timer::elapsed(), Dune::ParallelIndexSet< TG, TL, N >::end(), fillIndexSetHoles(), Dune::OwnerOverlapCopyCommunication< GlobalIdType, LocalIdType >::indexSet(), Dune::SolverCategory::nonoverlapping, Dune::Communication< MPI_Comm >::rank(), Dune::Timer::reset(), Dune::ParallelIndexSet< TG, TL, N >::size(), and Dune::Communication< MPI_Comm >::size().

◆ hash_combine()

template<typename T >
void Dune::hash_combine ( std::size_t &  seed,
const T &  arg 
)
inline

Calculates the hash value of arg and combines it in-place with seed.

Parameters
seedThe hash value that will be combined with the hash of arg.
argThe object for which to calculate a hash value and combine it with seed.

Referenced by hash_range().

◆ hash_range() [1/2]

template<typename It >
std::size_t Dune::hash_range ( It  first,
It  last 
)
inline

Hashes all elements in the range [first,last) and returns the combined hash.

Parameters
firstIterator pointing to the first object to hash.
lastIterator pointing one past the last object to hash.
Returns
The result of hashing all objects in the range and combining them using hash_combine() in sequential fashion, starting with seed 0.

References hash_combine().

◆ hash_range() [2/2]

template<typename It >
void Dune::hash_range ( std::size_t &  seed,
It  first,
It  last 
)
inline

Hashes all elements in the range [first,last) and combines the hashes in-place with seed.

Parameters
seedStart value that will be combined with the hash values of all objects in the range using hash_combine() in sequential fashion.
firstIterator pointing to the first object to hash.
lastIterator pointing one past the last object to hash.

References hash_combine().

◆ makeScalarProduct()

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

Choose the appropriate 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.

References Dune::SolverCategory::sequential.

◆ operator!=()

bool Dune::operator!= ( const No_Comm &  ,
const No_Comm &   
)
inline

Comparison operator for MPI compatibility.

Always returns false.

◆ operator==() [1/2]

template<class T1 , class V1 , class R1 , class D , class T2 , class V2 , class R2 >
std::enable_if< std::is_convertible< T1, T2 >::value &&!std::is_convertible< T2, T1 >::value, bool >::type Dune::operator== ( const BidirectionalIteratorFacade< T1, V1, R1, D > &  lhs,
const BidirectionalIteratorFacade< T2, V2, R2, D > &  rhs 
)
inline

Checks for equality.

This operation is only defined if either T1 is convertible to T2, and T2 is not convetible to T1. Otherwise the operator is removed from the overload set since the enable_if for the return type yield an invalid type expression.

References Dune::Hybrid::equals().

◆ operator==() [2/2]

bool Dune::operator== ( const No_Comm &  ,
const No_Comm &   
)
inline

Comparison operator for MPI compatibility.

Always returns true.

◆ power()

◆ printGrid()

template<typename GridType >
void Dune::printGrid ( const GridType &  grid,
const Dune::MPIHelper helper,
std::string  output_file = "printgrid",
int  size = 2000,
bool  execute_plot = true,
bool  png = true,
bool  local_corner_indices = true,
bool  local_intersection_indices = true,
bool  outer_normals = true 
)

Print a grid as a gnuplot for testing and development.

Template Parameters
GridTypethe type of grid to work with
Parameters
gridthe grid to print
helperan MPIHelper to create unique output file names in parallel case
output_filethe base of the output filename
sizesize of the plot in pixels; increase if plot is too cramped
execute_plotwhether to execute gnuplot automatically
pngwhether to use PNG or SVG as the output format
local_corner_indiceswhether to show local corner indices
local_intersection_indiceswhether to show local intersection indices
outer_normalswhether to show outer normals of intersections Creates a gnuplot (one per process if parallel) showing the grid structure with indices, intersection types etc.

References DUNE_THROW, Dune::Mapper< G, MapperImp, IndexType >::index(), mcmgElementLayout(), mcmgVertexLayout(), Dune::MPIHelper::rank(), size(), Dune::Mapper< G, MapperImp, IndexType >::subIndex(), and Dune::FloatCmp::trunc().

◆ redistributeMatrix()

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.

◆ reduceOrder()

template<class InIterator , class OutIterator >
void Dune::reduceOrder ( const InIterator &  inBegin,
const InIterator &  inEnd,
OutIterator  outIt 
)

Algorithm to reduce vertex order information.

#include <dune/geometry/generalvertexorder.hh>
Parameters
inBeginStart of the range of ids to reduce.
inEndEnd of the range of ids to reduce.
outItStart of the sequence where to store the result.

inBegin and inEnd must be ForwardIterators; their value_type may constant. outIt must be an OutputIterator and must allow std::distance(inBegin,inEnd) increments. Complexity is quadratic.

See also
GeneralVertexOrder, VertexOrderByIdFactory

Referenced by Dune::GeneralVertexOrder< dim, Index_ >::getReduced(), and testElementDim().

◆ stackobject_to_shared_ptr()

template<typename T >
std::shared_ptr< T > stackobject_to_shared_ptr ( T &  t)
inline

Create a shared_ptr for a stack-allocated object.

This file implements several utilities related to std::shared_ptr.

Usage:

int i = 10;
std::shared_ptr<int> pi = stackobject_to_shared_ptr(i);
std::shared_ptr< T > stackobject_to_shared_ptr(T &t)
Create a shared_ptr for a stack-allocated object.
Definition: shared_ptr.hh:72

The std::shared_ptr points to the object on the stack, but its deleter is set to an instance of null_deleter so that nothing happens when the shared_ptr is destroyed.

See also
null_deleter
Examples
recipe-operator-splitting.cc.

Referenced by createScalarProduct(), Dune::PDELab::InstationarySumLocalOperator< std::tuple< Args... > >::InstationarySumLocalOperator(), Dune::TypeTree::PowerNode< T, k >::PowerNode(), Dune::TypeTree::DynamicPowerNode< T >::setChild(), Dune::TypeTree::PowerNode< T, k >::setChild(), Dune::PDELab::GridFunctionProbe< GF >::setGridFunction(), Dune::PDELab::WeightedSumLocalOperator< K, std::tuple< Args... > >::WeightedSumLocalOperator(), and wrap_or_move().

◆ transpose() [1/3]

template<class Matrix , std::enable_if_t< Impl::HasMemberFunctionTransposed< Matrix >::value, int > = 0>
auto Dune::transpose ( const Matrix matrix)

Return the transposed of the given matrix.

Parameters
matrixThe matrix to be transposed.

This overload is selected if the given matrix supports

matrix.transposed()

. It will return the result of

matrix.transposed()

.

Referenced by Dune::MappedGeometry< Map, Geo >::jacobianInverseTransposed(), Dune::MappedGeometry< Map, Geo >::jacobianTransposed(), and transposedView().

◆ transpose() [2/3]

template<class Matrix >
auto Dune::transpose ( const std::reference_wrapper< Matrix > &  matrix)

Create a wrapper modelling the transposed matrix.

Parameters
matrixThe matrix to be transposed.

This overload is selected if the given value is a

std::reference_wrapper

of a matrix. It will return a wrapper storing a reference of the given matrix.

Currently the wrapper only implements

auto c = a*transpose(b);
auto transpose(const Matrix &matrix)
Return the transposed of the given matrix.
Definition: transpose.hh:183

if a is a FieldMatrix of appropriate size. This is optimal even for sparse b because it only relies on calling b.mv(a[i], c[i]) for the rows of a. Furthermore the wrapper can be converted to a suitable dense FieldMatrix using the

adDense()

method if the wrapped matrix allows to iterate over its entries and matrix-vector multiplication using

transpose(b).mv(x,y)

if the wrapped matrix provides the

b.mtv(x,y)

.

This specialization allows to pass a

std::reference_wrapper

of a matrix to explicitly request, that the latter is stored by reference in the wrapper.

◆ transpose() [3/3]

template<class Matrix , std::enable_if_t< not Impl::HasMemberFunctionTransposed< std::decay_t< Matrix > >::value, int > = 0>
auto Dune::transpose ( Matrix &&  matrix)

Create a wrapper modelling the transposed matrix.

Parameters
matrixThe matrix to be transposed.

This overload is selected if the given matrix does not support

matrix.transposed()

. It will return a wrapper storing a copy of the given matrix.

Currently the wrapper only implements

auto c = a*transpose(b);

if a is a FieldMatrix of appropriate size. This is optimal even for sparse b because it only relies on calling

b.mv(a[i], c[i])

for the rows of a. Furthermore the wrapper can be converted to a suitable dense FieldMatrix using the

asDense()

method if the wrapped matrix allows to iterate over its entries and matrix-vector multiplication using

transpose(b).mv(x,y)

if the wrapped matrix provides the

b.mtv(x,y)

.

◆ transposedView()

template<class Matrix >
auto Dune::transposedView ( const Matrix matrix)

Create a view modelling the transposed matrix.

Parameters
matrixThe matrix to be transposed.

The returned view stores a reference of the given matrix. Calling

auto transposedView(const Matrix &matrix)
Create a view modelling the transposed matrix.
Definition: transpose.hh:261

is equivalent to

transpose(std::cref(matrix))

.

References transpose().

◆ uniqueTypeList()

template<class... T>
constexpr auto Dune::uniqueTypeList ( TypeList< T... >  list)
constexpr

Remove duplicates from a Dune::TypeList.

For a given Dune::TypeList<T...> this return a Dune::TypeList<S...>, where S... is generated by removing duplicate types from T... .

◆ violatedAlignment()

void Dune::violatedAlignment ( const char *  className,
std::size_t  expectedAlignment,
const void *  address 
)

called when an alignment violation is detected

className Name of the class whose alignment was violated expectedAlignment The (over-)alignment that the class expected address The address the class actually found itself at.

The main purpose of the function is to serve as a convenient breakpoint for debugging – which is why we put it in an external compilation unit so it isn't inlined.

References className(), and violatedAlignmentHandler().

◆ violatedAlignmentHandler()

ViolatedAlignmentHandler & Dune::violatedAlignmentHandler ( )

access the handler called by violatedAlignment()

This may be used to obtain the handler for the purpose of calling, or for saving it somewhere to restore it later. It may also be used to set the handler simply by assigning a new handler. Setting the handler races with other accesses.

References defaultViolatedAlignment().

Referenced by violatedAlignment().

◆ wrap_or_move() [1/2]

template<class T >
auto Dune::wrap_or_move ( T &&  t)

Capture R-value reference to shared_ptr.

This will store a copy of the passed object in a shared_ptr.

The two overloads of wrap_or_move are intended to capture references and temporaries in a unique way without creating copies and only moving if necessary.

Be careful: Only use this function if you are aware of it's implications. You can e.g. easily end up storing a reference to a temporary if you use this inside of another function without perfect forwarding.

◆ wrap_or_move() [2/2]

template<class T >
auto Dune::wrap_or_move ( T &  t)

Capture L-value reference to std::shared_ptr.

This will store a pointer for the passed reference in a non-owning std::shared_ptr.

The two overloads of wrap_or_move are intended to capture references and temporaries in a unique way without creating copies and only moving if necessary.

Be careful: Only use this function if you are aware of it's implications. You can e.g. easily end up storing a reference to a temporary if you use this inside of another function without perfect forwarding.

References stackobject_to_shared_ptr().

Creative Commons License   |  Legal Statements / Impressum  |  Hosted by TU Dresden  |  generated with Hugo v0.111.3 (Nov 27, 23:30, 2024)