KASKADE 7 development version
Namespaces | Classes | Typedefs | Enumerations | Functions | Variables
Kaskade Namespace Reference

Namespaces

namespace  AdaptationStrategy_Detail
 
namespace  Adaptivity
 
namespace  AmiraMeshReader
 Reader for Amira meshes.
 
namespace  Assembler
 
namespace  AssemblyDetail
 
namespace  BDDC
 
namespace  BoundaryInterpolationDetail
 
namespace  BoundaryLocatorDetail
 
namespace  BoundarySpace_Detail
 
 
namespace  Bridge
 Namespace of Classes that implement the abstract interface classes via the bridge-pattern.
 
namespace  CellLocatorDetail
 
namespace  CG_Detail
 
namespace  CoarseningDetail
 
namespace  Crsutil_Detail
 
namespace  DerivativeCheck
 
namespace  DirectSolver_Detail
 
namespace  DomainDecompositionPreconditionerDetail
 
namespace  DynamicMatrixDetail
 
namespace  Elastomechanics
 
namespace  ErrorestDetail
 
namespace  ErrorEstimator_Detail
 
namespace  Functional_Aux_Detail
 
namespace  FunctionSpace_Detail
 
namespace  FunctionViews
 Namespace of views on a FunctionSpaceElement Views on Function SpaceElements can be used in a restricted sense like FunctionSpaceElements. The idea is to transform a given function to another function while evaluating it at a certain point. Such a view has provide certain functionality:
 
namespace  GridIterateDetail
 
namespace  HierarchicErrorEstimator_Detail
 
namespace  ifff
 Creates a (linear) model to a linearization of a functional.
 
namespace  IOTools
 
namespace  JacobiPreconditionerDetail
 
namespace  LinAlg
 
namespace  LinearSpace_Detail
 
namespace  MultiGridSolver_Detail
 
namespace  OPT_MODEL_FUNCTIONS_Detail
 
namespace  PartitionedSpaceDetail
 
namespace  ScalarSpaceDetail
 
namespace  SchurPreconditionerDetail
 
namespace  SemiEulerDetail
 
namespace  Simplex
 
namespace  TaylorHoodPreconditionerDetail
 
namespace  TensorAccess
 
namespace  ThreadedMatrixDetail
 
namespace  WeakFunctionViews
 Namespace of classes that mimick a FunctionSpaceElement in a very weak sense.
 
namespace  XMLHelper
 Some helper's for a correct indentation of XML-code.
 

Classes

class  AbstractAdaptiveGrid
 Representation of an adaptive grid and a simple set of operations thereon. More...
 
class  AbstractChart
 
class  AbstractCompositeStepErrorEstimator
 Representation of an error estimator. More...
 
class  AbstractConnectedLinearization
 
class  AbstractErrorEstimate
 Representation of an error estimate, i.e. the output of an error estimator. More...
 
class  AbstractErrorEstimator
 Representation of an error estimator. More...
 
class  AbstractFlushConnection
 Abstract connection. More...
 
class  AbstractFunctional
 Representation of a nonlinear functional. More...
 
class  AbstractFunctionSpaceElement
 Abstract Vector for function space algorithms. More...
 
class  AbstractHierarchicalErrorEstimator
 
class  AbstractLinearization
 Abstract linearization. More...
 
class  AbstractNewtonDirection
 Class that models the functionality of a (possibly inexact) linear solver. More...
 
class  AbstractNorm
 
class  AbstractNormalDirection
 
class  AbstractParameterFunctional
 Creates a functional from a homotopy of functionals by inserting a parameter. More...
 
class  AbstractParameters
 Representation of parameters. More...
 
class  AbstractPreconditioner
 
class  AbstractScalarProduct
 
class  AbstractTangentialSpace
 Class that models the functionality of a (possibly inexact) linear solver. More...
 
struct  ActiveStressModelBase
 Convenience base class for active stress generation models providing numerical differentiation. More...
 
struct  AdaptationCoarseningPolicy
 policy class for LocalTransfer These two structures are used for determining whether to perform a "normal" grid transfer (default, AdaptionCoarseningPolicy), or to calculate prolongation matrices for a FE function space based on a HierarchicIndexSet (see mgtools.hh). More...
 
class  AdaptiveParameters
 Parameters that are used by SimpleAdaptiveRefinement. More...
 
class  AdditiveMultiGrid
 An additive multigrid preconditioner for P1 elements. More...
 
class  AdditiveSchwarzPreconditioner
 
struct  AddToFunctionSpaceElement
 
struct  AddToFunctionSpaceElement< FSE, CoeffVector, rbegin, rbegin >
 
class  AdjointEquationHBErrorEstimator
 
class  AdjointEquationLinearPropagationHBErrorEstimator
 
class  Adjugate
 
class  Adjugate< 2, Source >
 
class  Adjugate< 3, Source >
 
class  AdvectedFunctionView
 A weak function view that defines an advected function. More...
 
class  AgglomerationPreconditioner
 An agglomeration-based preconditioner for elliptic problems discretized with higher-order Lagrange finite elements. More...
 
class  AgglomerationPreconditioner< AssembledGalerkinOperator< Assembler, firstRow, firstRow+1, firstCol, firstCol+1, IstlInterfaceDetail::RangeBlockSelector< firstRow, firstRow+1, firstCol, firstCol+1 >, true > >
 
class  Algorithm
 Base class for algorithms. Provides a unified interface and some simple wrapper routines, which perform optional timing, etc. More...
 
struct  AlievPanfilov
 Phenomenological model by Aliev and Panfilov. More...
 
struct  AlwaysRegularizeWithThetaGuess
 
class  AngleFeatureDetector
 Specifying geometric features in terms of angles between face normals and edge tangents. More...
 
class  AnotherHBErrorEstimator
 
class  AnsysMeshReader
 Reader for Ansys *.inp grid files. More...
 
class  ApproximateSchurComplement
 Approximation of the schur complement according to Pearson/Wathen '10. More...
 
class  ApproximateSchurComplement2
 Approximation of the schur complement. More...
 
class  ARMSPreconditioner
 
class  AssembledGalerkinOperator
 An adaptor presenting a Dune::LinearOperator <domain_type,range_type> interface to a contiguous sub-blockmatrix of an assembled heterogeneous Galerkin operator. More...
 
class  BabuskaRheinboldtCriterion
 Babuska-Rheinboldt refinement criterion. Determines the refinement thresholds such that all cells with an error contribution exceeding the expected error contribution of the worst cell after refinement will be marked. This tends to equilibrate the error contributions quite fast. More...
 
struct  Barrier
 Barrier<q,p> = sum_{i=p}^{q} Barrier<i,i> More...
 
struct  Barrier< 0, 0 >
 Logarithmic Barrier functions. More...
 
struct  Barrier< q, q >
 Rational Barrier functions of order q/2+1 (gradient has rational order q/2+1) More...
 
class  BasicGridElement
 
class  BezierMortar
 Defines a constraint formulation where samples are weighted by Bezier test functions. More...
 
class  BlockDiagonalSchurPreconditioner
 
class  BlockLUFactorization
 
struct  BlockSchurParameters
 
class  BoomerAMG
 
class  BoundaryDisplacementByInterpolation
 
class  BoundaryEdge
 A class storing a boundary edge consisting of two vertex indices and associated boundary curve tangents. More...
 
class  BoundaryFace
 A class for representing displaced/deformed boundary faces. More...
 
class  BoundaryInterpolationDisplacement
 The BoundaryInterpolationDisplacement class provides a Kaskade WeakFunctionView on the displacement from grid to actual domain boundary (which is computed by boundary interpolation). More...
 
struct  BoundaryJumpsTimesTestFunction
 
class  BoundaryLocator
 
class  BoundaryMapper
 A local to global mapper implementation for boundary spaces, with functions defined on the domain boundary (or parts of it) only. More...
 
struct  BoundaryStar
 A class storing all the corners (vertex-boundaryface incidences) at a boundary vertex. More...
 
class  BoundaryTangents
 A class providing information about domain boundary tangent vectors. More...
 
class  BulkCriterion
 Bulk refinement criterion. Determines the refinement thresholds such that approximately the specified fraction of the total error is removed by the refinement (under the unrealistically optimistic assumption that refinement eliminates the error completely in that cell - in reality, it's only reduced by a certain factor, so the total error is reduced somewhat less). More...
 
class  BWErrorFunction
 Obtain an error function by solving local Neumann problems in the flavour of Bank/Weiser. More...
 
class  CacheBase
 Provides implementations of d1 and d2 for (possibly mixed) use of scalar and power spaces. More...
 
class  CachingBoundaryDetector
 
struct  CardioD2
 
class  CellData
 Class that stores information for each cell of a grid. More...
 
class  CellLocator
 
class  CellRanges
 A class storing cell ranges of roughly equal size for multithreaded mesh traversal. More...
 
class  CGBase
 regularized preconditioned conjugate gradient method More...
 
struct  CGFminModel
 
class  ChebyshevPreconditioner
 Preconditioner based on the Chebyshev semi-iteration. In order to provide a linear preconditioner the termination criterion based on relative descent in the energy-norm induced by the preconditioner is disabled here. Instead the preconditioner performs a fixed number of iterations thus yielding a linear preconditioner. More...
 
class  ChebyshevSemiIteration
 Preconditioned chebyshev semi iteration. More...
 
struct  CheckPoint
 
struct  ChooseProjectionPolicy
 
struct  ChooseProjectionPolicy< InexactTangentSpacePreconditioner< Functional, Assembler, components > >
 
class  Circle
 
class  Cofactor
 
struct  Components
 Helper class for specifying the number of components of a variable. More...
 
class  CompositeStep
 
class  ConcurrentQueue
 A concurrent fifo queue. More...
 
class  ConstantMapper
 
struct  ConstraintD1LipschitzConstant
 
struct  ConstructCoefficientVector
 A boost::fusion functor for generating coefficient vectors for given variables. More...
 
struct  ConstructElement
 A boost::fusion functor for generating function space elements for given variables. More...
 
class  ContinuousHierarchicExtensionMapper
 A degrees of freedom manager for globally continuous FEFunctionSpace s of piecewise polynomials. More...
 
class  ContinuousHierarchicExtensionMapperImplementation
 
class  ContinuousHierarchicMapper
 A degrees of freedom manager for globally continuous FEFunctionSpace s of piecewise polynomials. More...
 
class  ContinuousHierarchicMapperImplementation
 
class  ContinuousLagrangeBoundaryMapper
 
class  ContinuousLagrangeMapper
 A degrees of freedom manager for globally continuous FEFunctionSpace s of piecewise polynomials. More...
 
class  ContinuousLagrangeMapperImplementation
 
class  ContinuousLagrangeMapperSubdomain
 A local-to-global mapper for continuous finite elements on a subdomain. More...
 
class  ContinuousLagrangeMapperSubdomainImplementation
 
class  ContinuousScalarFunction
 
class  ContractionModelFunction
 
struct  ConvertTo
 Reports the converted type. More...
 
struct  ConvertTo< Dune::FieldMatrix< T, n, m >, Real >
 
struct  CopyFromFunctionSpaceElement
 
struct  CopyFromFunctionSpaceElement< FSE, CoeffVector, rbegin, rbegin >
 
struct  Corner
 A class storing algebraic and geometric information about a vertex-boundaryface incidence in simplicial grids. More...
 
struct  Creator
 Abstract base class of creators that can be registered at the pluggable factory. More...
 
struct  Creator< Factorization< Scalar > >
 Abstract base class for factorization creators to be plugged into a factorization factory. More...
 
class  CSCubicRegularization
 
struct  csr_matrix
 
class  Cube
 
class  CubicModel1dForFmin
 
class  CubicModelFunction
 
class  CUBThetaModelFunction
 For optimization with cubic upper bounds method. More...
 
class  DampedCovariantNewtonMethod
 Damped Newton's method that measures the Newton contraction via a simplified Newton step. More...
 
class  DampedCovariantNewtonParameters
 Paramters that are used and Logged by GuardedCovariantNewtonMethod. More...
 
class  DefaultDualPairing
 Default implementation of dual pairing (relies on scalar product operator * being defined) More...
 
struct  DefaultProjectionPolicy
 
class  DeformingGridManager
 A grid manager for asymptotically \( G^1 \)-continuous domains. More...
 
class  DenseCholeskyLocalMatrixStorage
 An inverse local matrix representation that simply stores a dense Cholesky factor. More...
 
class  DenseCholeskyStorageTag
 A parametrized tag type for selecting storage of inverses by dense Cholesky factors with floating point representation of type Scalar. More...
 
class  DenseInverseLocalMatrixStorage
 An inverse local matrix representation that simply stores the dense inverse. More...
 
class  DenseInverseStorageTag
 A parametrized tag type for selecting dense storage of inverses with floating point representation of type Scalar. More...
 
class  Deprecated
 Convenience class for marking deprecated functions. A static object of this class can be created inside deprecated functions. It will output a warning message to stderr if the deprecated function is called, but only once. More...
 
class  DerivativeChecker
 Class that checks the derivatives of a functional at a linearization point. More...
 
class  DetailedException
 A wrapper class for conveniently providing exceptions with context information. More...
 
class  Determinant
 A class for computing determinants and their derivatives. More...
 
class  Determinant< 2, Source >
 
class  Determinant< 3, Source >
 Determinant. More...
 
class  DiagonalCombiner
 A base class for implementing combiners with diagonal structure. More...
 
class  DifferentiableScalarFunction
 
struct  Dim
 Get dimension as nested integral static constexpr. More...
 
class  DiracMortar
 Defines a constraint formulation where each sample is taken as a single constraint of its own. More...
 
class  DirectBlockSchurSolver
 
class  DirectLinearSolver
 Direct solver.Implements Direct Solver Interface of Algorithms. More...
 
class  DirectNormalSolver
 
class  DirectPreconditioner
 
class  DirectPreconditionerFloatWrapper
 
class  DirectSolver
 
class  DirectSolver< Dune::FieldVector< S, n >, Dune::FieldVector< S, n > >
 
class  DirectSolverException
 To be raised if a direct solver fails. More...
 
class  DirichletNitscheBoundary
 Dirichlet boundary conditions by Nitsche's method. More...
 
class  DirichletPenaltyBoundary
 Dirichlet boundary conditions by the penalty approach. More...
 
class  DiscontinuousHierarchicExtensionMapper
 A degrees of freedom manager for FEFunctionSpace s of piecewise polynomials of given order. More...
 
class  DiscontinuousHierarchicExtensionMapperImplementation
 
class  DiscontinuousHierarchicMapper
 A degrees of freedom manager for FEFunctionSpace s of piecewise polynomials of order Order. More...
 
class  DiscontinuousHierarchicMapperImplementation
 
class  DiscontinuousLagrangeMapper
 A degrees of freedom manager for FEFunctionSpace s of piecewise polynomials of order Order. More...
 
class  DiscontinuousLagrangeMapperImplementation
 
class  DiscontinuousLagrangeMapperSubdomain
 
struct  DiscreteBlockTraits
 
struct  DoNotAlwaysRegularize
 
struct  DoNotMeasureTime
 
struct  DoRegularization
 
class  DualPairing
 Abstract base class for dual pairing of \( X \) and its dual space \( X^* \). More...
 
struct  Dummy
 
class  DynamicMatrix
 A LAPACK-compatible dense matrix class with shape specified at runtime. More...
 
class  EdgeScanner
 Class to scan functions along the edges of a computational grid. More...
 
class  EmbeddedErrorEstimator
 Embedded error estimation and mesh refinement. More...
 
class  EmptyShapeFunctionSet
 
struct  EnergyScalarProduct
 
class  EntityNumbering
 
struct  EntryTraits
 
struct  EntryTraits< Dune::FieldMatrix< Entry, n, m > >
 
struct  EntryTraits< Dune::FieldVector< Entry, n > >
 
struct  EntryTraits< Tensor< Entry, Sizes... > >
 
class  EquidistantLagrange
 Lagrange shape functions on an equidistant grid over the simplex. These are polynomial basis functions \( p_i \) over the unit simplex, together with interpolation nodes \( \xi_j \), such that \( p_i(\xi_j) = \delta_{ij} \) holds. More...
 
class  ErrorDistribution
 
struct  ErrorEstimationTraits
 
class  ErrorEstimatorBase
 
struct  EstimatorDescription
 
class  EtaModel
 
class  Euclid
 
class  EulerSDC
 Base class to perform SDC iterations based on forward Euler method. Total iterations performed depends on the value set for variable maxSDCiterations. More...
 
class  Exp
 Exponential function of the form a*exp(b*x) More...
 
class  ExtrapolationTableau
 Polynomial extrapolation following Aitken-Neville. More...
 
class  Factorization
 Abstract base class for matrix factorizations. More...
 
struct  FactorizationOptions
 The Options struct allows to specify several options of factorization. More...
 
class  Factory
 A pluggable factory. More...
 
class  FEFunctionSpace
 A representation of a finite element function space defined over a domain covered by a grid.
More...
 
class  FentonKarma
 The 3-variable Fenton-Karma membrane model. More...
 
class  FileIOException
 An exception class for file IO errors. More...
 
class  FinalAdaptiveRefinement
 Performs error estimation and creates error indicators, but does not refine. Good for testing error estimators. More...
 
struct  FirstGreater
 A comparator functor that supports sorting std::pair by their first component. More...
 
struct  FirstLess
 A comparator functor that supports sorting std::pair by their first component. More...
 
class  FixedFractionCriterion
 Fixed fraction refinement criterion. Determines the refinement thresholds such that at least the specified fraction of the cells are marked for refinement. This ensures that not too few cells are marked, which could lead to very many refinement iterations, but may lead to erratic refinement if there are indeed only very local refinements necessary. More...
 
class  FixedSolverWithErrorEstimate
 Performs error estimation and creates error indicators, but does not refine. Good for testing error estimators. More...
 
class  ForwardingBoundaryDetector
 
class  FunctionalBase
 Convenience base class for the easy definition of variational functionals and weak formulations. More...
 
class  FunctionSpaceElement
 A class for representing finite element functions. More...
 
class  FunctionViewAdaptor
 An adaptor that allows to turn lambda functions into function views. More...
 
class  GaussSeidelPreconditioner
 A simple single-level symmetric Gauss-Seidel preconditioner. More...
 
class  GaussTimeGrid
 spectral time grid for defect correction methods with Gauss points More...
 
class  Gbit
 Iterative solution of a large linear system using an error based termination-criterium. Includes some special termination-criterium options which are used by the giantGbit code. More...
 
class  GeometricFeatureDetector
 The interface for specifying feature edges and feature vertices. More...
 
struct  Get
 Get object from reference or functor. Is itself a functor. More...
 
struct  Get< Type, Type >
 
class  GetEvaluators
 A boost::fusion functor for creating an evaluator from the space, using a shape function cache that is given on construction of the functor. More...
 
class  GetEvaluatorTypes
 A boost::fusion functor for extracting the evaluator type from a pointer to a FE space. This is more or less redundant to GetEvaluators, but no shape function cache type needs to be provided. More...
 
struct  GetScalar
 Get scalar type from Dune (-> field_type) or Kaskade (-> Scalar) member. More...
 
struct  GetSubType
 
struct  GetSubType< Scalar, dim, Dune::FieldMatrix< Scalar, dim, dim > >
 
class  GetVarArgs
 A boost::fusion functor for creating a variational arg from the space, using a shape function cache that is given on construction of the functor. More...
 
class  Giant
 Solution of a nonlinear system of equations by a damped Newton-method with adaptive precision control of the used iterative linear solver Gbit. More...
 
class  GlobalBarycentricPermutation
 A class for computing permutations of local vertex numbers of simplex subentities to a globally unique ordering. More...
 
class  GlobalLocalIndexRelationship
 The GlobalLocalIndexRelationship class provides relationships between local indices of (e.g. matrix) blocks and global indices (of the corresponding block matrix) More...
 
class  GoalOrientedErrorEstimator
 
struct  GradientAverage
 
struct  GradientAverageFull
 
struct  GradientJumpsTimesTestFunction
 
class  GridException
 An exception class for grid related errors. More...
 
struct  GridLocking
 Grid locking information based on grid type. More...
 
struct  GridLocking< Dune::GeometryGrid< HostGrid, Deformation, Allocator > >
 
class  GridManager
 Class that takes care of the transfer of data (of each FunctionSpaceElement) after modification of the grid. More...
 
class  GridManagerBase
 Basic functionality for managing grids and their refinement. More...
 
struct  GridSignals
 A class that provides access to signals that are emitted from the grid manager on various occasions. More...
 
class  GuardedCovariantNewtonParameters
 Paramters that are used and Logged by GuardedCovariantNewtonMethod. More...
 
struct  H1Norm
 H1-norms. More...
 
struct  H1SemiNorm
 H1-semi-norms. More...
 
struct  HalfGradientJump
 
class  HcurlConverter
 A class mapping local vectorial shape function values and gradients to global shape function values and gradients in \( H(\text{curl}) \) conforming FE spaces. More...
 
class  HdivConverter
 A class mapping local vectorial shape function values and gradients to global shape function values and gradients in \( H(\text{div}) \) conforming FE spaces. More...
 
class  HdivMapper
 Degrees of freedom manager for H(div) conforming elements. More...
 
class  HdivShapeFunctionSetContainer
 
class  HdivSimplexShapeFunction
 Vectorial \( H(\text{div}) \) conforming shape functions on the unit simplex. More...
 
class  HdivSimplexShapeFunctionSet
 A shape function set of \( H(\text{div}) \) conforming functions. More...
 
class  HierarchicalBasisErrorEstimator
 
class  HierarchicalBasisErrorEstimator2
 
class  HierarchicalBasisErrorEstimator3
 
class  HierarchicalBasisPreconditioner
 A hierarchical basis preconditioner. More...
 
class  HierarchicErrorEstimator
 Defines assembly of hierarchically extended problems for defining DLY style error estimators. More...
 
class  HierarchicExtensionMapperImplementation
 
class  HierarchicExtensionShapeFunctionSetContainer
 
class  HierarchicExtensionSimplexShapeFunctionSet
 A container of hierarchic shape functions of nominal order Ord on the unit simplex of grid dimension. For Ord<0, this set is empty. More...
 
class  HierarchicMapperImplementation
 
class  HierarchicMapperImplementationBase
 A local to global mapper implementation for scalar hierarchic bases. More...
 
class  HierarchicShapeFunctionSetContainer
 
class  HierarchicSimplexShapeFunction
 Scalar hierarchic shape functions on the unit simplex. More...
 
class  HierarchicSimplexShapeFunctionSet
 A container of hierarchic shape functions (see HierarchicSimplexShapeFunction) up to a given nominal order on the unit simplex of grid dimension. More...
 
class  HigherOrderRecovery
 Construct a higher order estimate for the finite element solution from gradient information. More...
 
class  HomogeneousNeumannBoundary
 A simple boundary cache implementing homogeneous Neumann boundary conditions. More...
 
class  HomotopyBase
 Base class for homotopy methods. Here, the main algorithm is programmed. More...
 
class  HypIP
 
class  HypIPParameters
 
class  ICC_0Preconditioner
 Incomplete Cholesky factorization by algorithm from book "Matrix Computations" by Gene Golub & Charles van Loan. More...
 
class  IdentityChart
 
class  IdentityPreconditioner
 The trivial (identity) preconditioner. More...
 
struct  IdentityScaling
 A trivial Scaling. More...
 
class  ILUKPreconditioner
 
class  ILUTPreconditioner
 
struct  InDomainTraits
 
class  InexactTangentSpacePreconditioner
 
class  InexactTangentSpacePreconditionerILU
 
class  InfeasibleProblemException
 To be raised if an iterative solver detects the problem to be infeasible (has no valid solution). More...
 
class  Integral
 Evaluation class for integrals. More...
 
struct  IntegralF
 Integral. More...
 
class  Integrator
 
class  InteriorPointParameters
 
class  InteriorPointParametersSqrt
 
class  InteriorPointSimple
 Very simple implementation of homotopy method: fixed stepsize. More...
 
class  InteriorPointSlopeEstimate
 
class  InteriorPointSqrtModel
 InteriorPointMethod with a sqrt-model of the path: eta ~ mu^{-1/2}, omega ~mu^{-1/2}. More...
 
class  InteriorPointTangentialPredictor
 
class  InverseLinearOperator
 Dune::LinearOperator interface for inverse operators. More...
 
class  InverseLocalMatrixStorageBase
 A base class providing common functionality for storage of inverse local matrices. More...
 
struct  InverseVolume
 A Weighing that associates to each cell its inverse volume. More...
 
class  IOException
 An exception class for IO errors. More...
 
struct  IoOptions
 options for VTK/AMIRA output More...
 
class  IPFunctional
 Functional that adds barrier terms to VarFu. More...
 
struct  IsFunction
 Checks if type is a function or member function. More...
 
class  IsotropicCubicRegularization
 
class  IterationParameters
 Base class for algorithmic parameters. More...
 
class  IterativeSolverException
 To be raised if an iterative solver fails. More...
 
class  JacobiPreconditioner
 
class  JacobiPreconditioner< AssembledGalerkinOperator< Assembler, firstRow, lastRow, firstCol, lastCol, BlockFilter, symmetric > >
 A recursive Jacobi preconditioner for heterogeneous square block matrices from a variational assembler. More...
 
class  JacobiPreconditioner< NumaBCRSMatrix< Entry, Index > >
 A simple single-level Jacobi preconditioner working on sparse matrices. More...
 
class  JacobiPreconditionerForTriplets
 
class  JacobiSolver
 
class  JacobiSolverForTriplets
 
class  JModel
 
class  JModelLin
 
class  Kalloc
 A simple memory manager for NUMA systems. More...
 
class  KallocUnlocked
 A class for local memory management. More...
 
struct  L2Norm
 L_2-norms. More...
 
class  LagrangeBase
 
class  LagrangeCubeShapeFunction
 Scalar Lagrange shape functions on the unit cube. More...
 
class  LagrangeCubeShapeFunctionSet
 
class  LagrangeLinearization
 
class  LagrangeMapperImplementation
 A local to global mapper for scalar Lagrange bases. More...
 
class  LagrangeOperator
 
class  LagrangeShapeFunctionSetContainer
 
class  LagrangeSimplexShapeFunction
 Scalar Lagrange shape functions on the unit simplex. More...
 
class  LagrangeSimplexShapeFunctionSet
 A container of Lagrange shape functions of order Ord on the unit simplex of grid dimension. For Ord<0, this set is empty. More...
 
struct  LagrangianD2LipschitzConstant
 
class  Laplace
 Convenience class for handling diffusion terms in elliptic/parabolic equations. More...
 
struct  LeaveRHS
 
class  Limex
 Extrapolated linearly implicit Euler method. More...
 
class  LinearAlgebraException
 A base class for linear algebra exceptions. More...
 
class  LinearizationAt
 Proxy class for the linearization of a nonlinear functional. More...
 
class  LinearizationDifferenceAt
 Proxy class for evaluating differences of linearizations of a nonlinear functional. More...
 
class  LinearProductSpace
 
class  LinesearchException
 To be raised if a linesearch fails. More...
 
class  LN
 Natural logarithm of the form a*\ln(x) More...
 
class  LobattoGridLagrange
 
class  LobattoTimeGrid
 spectral time grid for defect correction methods with Lobatto points on \( [a,b]\) More...
 
class  LocalGeometryInCoarseGridAncestor
 
class  LocalIntegral
 Create a CellData by computing local integrals over each Cell. More...
 
class  LocalMatrices
 A structure for holding a sequence of several local matrices to be filled sequentially and to be scattered jointly. More...
 
class  LocalMatrix
 Providing a matrix or array interface to LAPACK-ordered entries. More...
 
struct  LocalNormalMatrixBlock
 
struct  LocalNormalMatrixRow
 
class  LocalTransfer
 Class that stores for a cell ("this entity" or "father") a local projection matrix. More...
 
class  LocalVector
 Providing a vector interface for contiguously stored entries. More...
 
class  LocalVectors
 A structure for holding a sequence of several local vectors to be filled sequentially and to be scattered jointly. More...
 
class  LoggedQuantity
 Class that represents a quantity that can be logged during the course of an algortihm. More...
 
class  Logger
 Simple logging facility. More...
 
class  LogLogModel
 Polynomial model in a loglog scale. More...
 
class  LookupException
 An exception that can be thrown whenever a key lookup fails. More...
 
class  MakeAdditiveSchwarzSmoother
 Functor for creating overlapping Schwarz smoothers. More...
 
class  MakeJacobiSmoother
 Functor for creating Jacobi smoothers. More...
 
class  MartinsErrorEstimator
 
class  MaterialAmiraMeshWriter
 
struct  Matrix_to_Triplet
 A class template that supports converting certain Dune matrices into the coordinate (triplet) format. More...
 
struct  Matrix_to_Triplet< Dune::BCRSMatrix< Dune::FieldMatrix< K, N, M >, Allocator > >
 
struct  Matrix_to_Triplet< Dune::FieldMatrix< K, n, m > >
 
struct  Matrix_to_Triplet< NumaBCRSMatrix< Dune::FieldMatrix< K, N, M >, Index > >
 
class  MatrixAsTriplet
 
class  MatrixRepresentedOperator
 Operator with matrix-representation and coordinate mappings. More...
 
class  MatrixRepresentedOperator< Dune::BCRSMatrix< MatrixBlock, Allocator >, Domain_, Range_ >
 
class  MatrixRepresentedOperator< MatrixAsTriplet< Scalar_, SparseInt >, Domain_, Range_ >
 
struct  MatrixTraits
 Defines domain and range types for matrix classes. More...
 
struct  MatrixTraits< Dune::FieldMatrix< Scalar, n, m > >
 
struct  MatrixTraits< NumaBCRSMatrix< Entry, Index > >
 
class  MaxValueCriterion
 Max value refinement criterion. Determines the refinement thresholds such that all cells with an error contribution exceeding a certain fraction of the maximum error contribution are refined. More...
 
struct  MeasureTime
 
struct  MembraneModelBase
 Convenience base class for membrane models providing numerical differentiation. More...
 
class  MGProjectionOnTangentSpace
 
class  MGProlongation
 A prolongation operator for P1 finite elements from a coarser grid level to the next finer level. More...
 
class  MGSolverStatistics
 An interface for gathering multigrid solver statistics. More...
 
class  ModifiedCovariantNewtonParameters
 
class  Monomial
 Monomial a*x^k of order k. More...
 
class  MorleyMapper
 Degrees of freedom manager for Morley nonconforming elements. More...
 
class  Mortar
 Abstract base class for computation of constraints from constraint samples. More...
 
struct  MortarB
 Defines the sample-based contact constraint formulation. More...
 
class  MultiGridPreconditioner
 
class  MultigridSolver
 
class  MultiGridStack
 Class for multigrid stacks. More...
 
struct  MultilevelCoarseningPolicy
 policy class for LocalTransfer These two structures are used for determining whether to perform a "normal" grid transfer (default, AdaptionCoarseningPolicy), or to calculate prolongation matrices for a FE function space based on a HierarchicIndexSet (see mgtools.hh). More...
 
class  MultiLevelLocalGeometry
 Transformation of coordinates between ancestor and child. More...
 
class  MultiplicativeMultiGrid
 A general multiplicative multigrid preconditioner. More...
 
class  MUMPSFactorization
 Factorization of sparse linear systems with mumps. More...
 
class  Mutex
 A utility class implementing appropriate copy semantics for boost mutexes. More...
 
class  NedelecMapper
 Degrees of freedom manager for Nedelec edge elements. More...
 
class  NedelecShapeFunctionSetContainer
 
class  NedelecSimplexShapeFunction
 Vectorial Nedelec shape functions on the unit simplex. More...
 
class  NedelecSimplexShapeFunctionSet
 
class  NestedDissection
 a nested dissection factorization for symmetric positive definite sparse matrices More...
 
class  NestedDissectionCholeskyLocalMatrixStorage
 An inverse local matrix representation that stores a sparse Cholesky factor using nested dissection. More...
 
class  NestedDissectionStorageTag
 A parametrized tag type for selecting storage of inverses by nested dissection with floating point representation of type Scalar. More...
 
class  NewtonCotesRule3
 
class  NewtonParameters
 
class  NewtonsMethod
 Base class for Newton's method. Defines the main algorithm, potentially using damping. More...
 
class  NleqSolver
 Solution of a nonlinear system of equations by a damped Newton-method. More...
 
class  NMIIIAPCGSolver
 conjugate gradient method More...
 
class  NMIIICGSolver
 conjugate gradient method More...
 
class  NMIIIPCGSolver
 conjugate gradient method More...
 
class  NonpositiveMatrixException
 To be raised if the matrix is not positive definite. More...
 
class  NonsquareMatrixException
 To be raised if the matrix is nonsquare. More...
 
struct  NoRegularization
 
class  NormalStep
 
class  NormalStepNewton
 
class  NormalStepPreconditioner
 
class  NormalStepPreconditioner2
 
class  NormalStepPreconditioner3
 
struct  NormModelCreator
 
class  NumaAllocator
 An STL allocator that uses memory of a specific NUMA node only. More...
 
class  NumaBCRSMatrix
 A NUMA-aware compressed row storage matrix adhering mostly to the Dune ISTL interface (to complete...) More...
 
class  NumaCRSPattern
 A NUMA-aware compressed row storage sparsity pattern. More...
 
class  NumaCRSPatternCreator
 A NUMA-aware creator for matrix sparsity patterns. More...
 
class  NumaDenseMatrix
 A dense matrix class tailored towards NUMA architectures. More...
 
class  NumaThreadPool
 Implementation of thread pools suitable for parallelization of (more or less) memory-bound algorithms (not only) on NUMA machines. More...
 
class  NumaVector
 A vector class tailored towards NUMA architectures. This vector distributes its entries in blocks of approximately equal size to the different nodes of NUMA machines in order to exploit the larger accumulated memory bandwidth for fast vector operations. This is most beneficial for large vectors exceeding the cache of the CPUs. Modern processors (2015-01-01) have up to 6MB 3rd level cache, so this is intended for vectors of more than 50,000 doubles, say. More...
 
class  OmegaModel
 
class  Optimization
 
class  OptimizationParameters
 
class  Options
 
class  Parameters
 ...for parameter dependent functionals, implements AbstractParameters More...
 
class  PardisoFactorization
 Factorization with DirectType::PARDISO. More...
 
class  PartialDirectPreconditioner
 DEPRECATED A partial direct preconditioner applicable to assembled operators. More...
 
class  PatchDomainDecompositionPreconditioner
 An additive overlapping domain decomposition type preconditioner for higher order finite elements applied to elliptic equations. More...
 
struct  PatchDomainDecompositionPreconditionerTraits
 Provides the actual type of local matrix storage based on a tag and the number of components. More...
 
struct  PatchDomainDecompositionPreconditionerTraits< DenseCholeskyStorageTag< Scalar >, components >
 
struct  PatchDomainDecompositionPreconditionerTraits< DenseInverseStorageTag< Scalar >, components >
 
struct  PatchDomainDecompositionPreconditionerTraits< NestedDissectionStorageTag< StorageScalar, FactorizationScalar >, components >
 
class  Pcg
 preconditioned conjugate gradient method More...
 
class  PCGCountingTerminationCriterion
 PCG termination after a given number of iterations. More...
 
class  PCGEnergyErrorTerminationCriterion
 TerminationCriterion based on an absolute energy error estimate. More...
 
class  PCGTerminationCriterion
 Interface for IterateType::PCG termination criterion policy classes. More...
 
class  PenaltyFunction
 Sets a function to std::numeric_limits<double>::max() for negative arguments. More...
 
struct  PhysiologicalAlievPanfilov
 Phenomenological model based on Aliev and Panfilov, scaled to physiological values. More...
 
class  PiecewiseContinuousLagrangeMapper
 A degrees of freedom manager for piecewise continuous FEFunctionSpace s of local polynomials. More...
 
struct  PlainAverage
 A Weighing that associates to each cell a constant weight of 1. More...
 
class  Polynomial
 
class  PolynomialModel
 
class  PPCGAsNormalSolver
 
class  PreconditionerAsNormalSolver
 
class  PreconditionerFactory
 
class  PrimalChart
 
class  ProjectedAPCGSolver
 
class  ProjectionOnTangentSpace
 
class  QPALSolver
 An augmented Lagrangian solver for small instances of a particular class of quadratic programs. More...
 
class  QPBoundSolver
 An iterative solver for small instances of bound constrained quadratic programs. More...
 
class  QPBoundSolverBase
 An iterative solver for small instances of bound constrained quadratic programs. More...
 
class  QPDirectSparse
 A solver for sparse, medium-sized instances of bound constrained quadratic programs. More...
 
class  QPMultiGrid
 A multigrid solver for convex QPs. More...
 
class  QPMultiGridBase
 A base class for multigrid solver for QPs. More...
 
class  QPMultiGridStrict
 
class  QPPenalizedSolver
 An iterative solver for small instances of a particular class of quadratic programs. More...
 
class  QPPenaltySmoother
 
class  QPSlackSolver
 An iterative solver for particular instances of bound constrained quadratic programs. More...
 
class  QPSmoother
 
class  QPSolver
 An iterative solver for small instances of a particular class of quadratic programs. More...
 
class  QuadraticAndLogBase
 
class  QuadraticFunction
 TODO !!!!! Entscheidung über Vektortyp !!!!!! More...
 
class  QuadraticModel
 Creates a (linear) model to a linearization of a functional. More...
 
struct  QuadraticModelCreator
 
struct  QuadratureTraits
 A cache that stores suitable quadrature rules for quick retrieval. More...
 
struct  QuadratureTraits< Dune::QuadratureRule< ctype, dim > >
 A cache that stores suitable quadrature rules for quick retrieval. More...
 
class  RadauTimeGrid
 spectral time grid for defect correction methods with Radau points on \( [a,b]\). More...
 
class  RangeView
 DEPRECATED. Use boost::iterator_range instead. More...
 
class  RefinedTrapezoidal
 
class  RefinementCriterion
 Base class for refinement criteria. More...
 
class  RegularizedQuadraticFunction
 
class  RestrictedShapeFunctionSet
 Restricted shape function set. Introduces a new local ordering for the shape functions. To retrieve the original shape function id use getId(int newLocalId) More...
 
class  ScalarConverter
 A Converter for scalar shape functions that do not change their value under transformation from reference to actual element geometry. More...
 
class  ScalarLaplace
 Convenience class for handling diffusion terms in elliptic/parabolic equations. More...
 
class  ScalarModelFunction
 Interface for a scalar model function on a scalar domain that may fit data. More...
 
class  ScalarProductView
 (Scalar) product of two functions. More...
 
class  ScalarTraits
 Helper class for working with (real or complex) scalar field types. More...
 
class  ScalarTraits< std::complex< T > >
 
class  Scaledl2ScalarProduct
 
class  ScaledTwoNorm2Collector
 A functor for computing scaled \(L^2\)-norms of a set of (possibly vector-valued) functions. More...
 
struct  ScatterFullLocalSolution
 
struct  ScatterLocalSolution
 
class  ScopedTimingSection
 A scope guard object that automatically closes a timing section on destruction. More...
 
class  Sdc
 Encapsulates the state of an SDC fixed point iteration and provides stepping. More...
 
class  SDCGridImplementationBase
 A convenience class simplifying the implementation of different SDCTimeGrid derived classes. More...
 
class  SDCTimeGrid
 Abstract base class of time grids for (block) spectral defect correction methods. More...
 
class  SearchSpaceCreator
 
class  SemiImplicitEulerStep
 Linearly implicit Euler method. More...
 
class  SemiLinearizationAt
 Proxy class for the linearization of semi-linear time stepping schemes. More...
 
class  SemiLinearizationAtInner
 
class  ShapeFunction
 Shape functions. More...
 
class  ShapeFunctionCache
 This class caches values and derivatives of shape functions at quadrature points. More...
 
class  ShapeFunctionSet
 A set of shape functions. More...
 
class  ShapeFunctionSetContainer
 Base class for sets of shape function containers. More...
 
class  SimpleAdaptiveRefinement
 Adaptive refinement algorithm. More...
 
class  SimpleSparseLinearSystem
 Simple Implementation for SparseLinearSystem. More...
 
class  SingularMatrixException
 To be raised if the matrix is singular. More...
 
class  SLAPMatrix
 Very simple dense matrix class for interfacing with LAPACK routines and the optimization tool uncmin. More...
 
struct  SolveLocalSystem
 
struct  SpaceIndex
 Helper class for specifying the FE space index of a variable. More...
 
struct  SpaceType
 Extracts the type of FE space with given index from set of spaces. More...
 
class  SparseLinearSystem
 Abstract base class for a sparse linear system. More...
 
class  Sqrt
 
class  Square
 
class  StateConstraintsNewtonMethod
 A Newton method that uses a pointwise damping strategy to cope with bounds. More...
 
class  StateEquationHBErrorEstimator
 
struct  StaticIndexRange
 A compile-time index range. More...
 
class  StepPolicyProjectedRHS
 
class  StrakosTichyEnergyErrorTerminationCriterion
 Relative energy error termination criterion according to Strakos, Tichy: Error estimation in preconditioned conjugate gradients. Requires that IterateType::CG starts at \( x = 0 \). More general starting values might be used, but must be chosen such that the estimate for the energy norm of the solution stays positive (see the above mentioned paper for details). More...
 
class  StrakosTichyPTerminationCriterion
 Relative error termination criterion based on the norm induced by the preconditioner, according to Strakos, Tichy: Error estimation in preconditioned conjugate gradients. Requires that IterateType::CG starts at \( x = 0 \). More general starting values might be used, but must be chosen such that the estimate for the energy norm of the solution stays positive (see the above mentioned paper for details). More...
 
struct  StrongBoundaryValues
 
struct  StrongResidualsTimesTestFunction
 
class  StupidHBErrorEstimator
 
struct  SubstractCorrection
 
class  SumCache
 
class  SumFunctional
 
struct  SummationCollector
 A Collector that sums up the weighted contributions. More...
 
struct  SumUp
 
class  SUPERLUFactorization
 Factorization of sparse linear systems with mumps. More...
 
class  SymmetricLinearOperator
 Interface for symmetric linear operators. More...
 
class  SymmetricLinearOperatorWrapper
 Wrapper class to present (hopefully) symmetric linear operators in the SymmetricLinearOperator interface. More...
 
class  SymmetricMatrixOperator
 A symmetric operator represented by a matrix. More...
 
class  SymmetricPreconditioner
 Interface for symmetric preconditioners. More...
 
class  SymmetricPreconditionerWrapper
 Wrapper class presenting a symmetric preconditioner interface for any preconditioner. More...
 
class  SymmetricTaylorHoodPreconditioner
 Symmetric Taylor-Hood constraint preconditioner. More...
 
struct  SystDim
 
struct  SystDimFull
 
class  TangentialStep
 
class  TangentialStepArmijo
 
class  TangentialStepNewton
 
class  TangentSpacePreconditioner
 
class  TangentSpacePreconditioner2
 
class  TaskTiming
 A class that gathers data on task timing and provides gnuplot visualization. More...
 
class  TaylorHoodPreconditioner
 Constraint preconditioner for Taylor-Hood discretizations of incompressibility problems. More...
 
class  TCG
 preconditioned conjugate gradient method More...
 
class  Tensor
 A class for representing tensors of arbitrary static rank and extents. More...
 
class  Tensor< Entry, Size0 >
 
struct  TenTusscher16
 Physiologcial model by tenTusscher et al. More...
 
struct  TenTusscher18
 Physiologcial model by tenTusscher et al. (2006) More...
 
class  TestErrorEstimator
 
class  TimeSeriesVTKWriter
 
class  Timings
 Supports gathering and reporting execution times information for nested program parts. More...
 
class  TransferData
 A class storing data collected before grid adaptation that is necessary to transfer FE functions. This includes global indices of shape functions on leaf cells and restriction matrices to coarser cells in case some leaf cells might be removed during grid adaptation. More...
 
class  TransformedPolynomialModel
 
class  TransposedOperator
 
class  TrapezoidalRule
 
class  TrivialBoundaryDetector
 
class  TrivialCacheBase
 Base class simplifying the definition of domain and boundary caches. More...
 
class  TrivialPreconditioner
 The trivial preconditioner: this is simply the identity that does exactly nothing. More...
 
class  UMFFactorization
 Factorization of sparse linear systems with UMFPack. More...
 
struct  UnaryTrue
 
class  UnboundedProblemException
 To be raised if an iterative solver detects the optimization problem to be unbounded (has no valid solution). More...
 
class  UNCMINVector
 Very simple vector wrapper for the use of the optimization tool uncmin, which is not capable of using std::vector :(. More...
 
class  UniformPartitionedMapper
 Base class for piecewise continuous mappers. More...
 
class  UniformSampler
 Class that can sample a Function(View) on a uniform rectangular grid. More...
 
class  UniformScalarMapper
 Base class for uniform scalar local to global mappers. More...
 
class  UzawaSolver
 An inexact Uzawa type solver for solving symmetric saddle point systems. More...
 
struct  Variable
 A class defining elementary information about a single variable. More...
 
struct  VariableDescription
 A class storing elementary information about a single variable.This includes the number of components, the id and name of the variable, and the index of the associated FEFunctionSpace from which the variable comes. More...
 
struct  VariableId
 DEPRECATED. More...
 
class  VariableSet
 A class for storing a heterogeneous collection of FunctionSpaceElement s. More...
 
class  VariableSetDescription
 A class that stores information about a set of variables. More...
 
struct  VariationalArg
 A class that stores values, gradients, and Hessians of evaluated shape functions. More...
 
class  VariationalEquationHBErrorEstimator
 
class  VariationalFunctionalAssembler
 A class for assembling Galerkin representation matrices and right hand sides for variational functionals depending on multiple variables. More...
 
struct  vec
 
class  VectorialConverterBase
 A class mapping local vectorial shape function values and gradients to global shape function values and gradients. More...
 
struct  Volume
 A Weighing that associates to each cell its volume. More...
 
class  VTKReader
 A class to create a grid and load coefficients from a VTK file. More...
 
struct  WeakBoundaryValues
 
struct  WeakBoundaryValuesFull
 
class  WeakFunctionViewAdaptor
 An adaptor that turns callables (e.g., lambdas) into weak function views. More...
 
struct  WeakResiduum
 
struct  WeakResiduumFull
 
struct  WeakResiduumMainPart
 
class  XXstress
 Active stress generation from XX. More...
 
class  YetAnotherHBErrorEstimator
 
class  YetAnotherHBErrorEstimator_Elasticity
 
class  ZeroDualPairing
 Zero dual pairing implementation (mainly useful whenever a dual pairing is needed for formal language reasons, but never used) More...
 

Typedefs

template<class GridView >
using GridAngleFeatureDetector = AngleFeatureDetector< typename GridView::IndexSet::IndexType, typename GridView::ctype, GridView::dimension >
 
template<class TestVars , int row>
using D1Result = Dune::FieldVector< typename TestVars::Scalar, TestVars::template Components< row >::m >
 The return type of the d1() method of DomainCache and BoundaryCache. More...
 
template<class TestVars , int row, class AnsatzVars , int col>
using D2Result = Dune::FieldMatrix< typename TestVars::Scalar, TestVars::template Components< row >::m, AnsatzVars::template Components< col >::m >
 The return type of the d1() method of DomainCache and BoundaryCache. More...
 
template<class Spaces >
using Evaluators = typename boost::fusion::result_of::as_vector< typename boost::fusion::result_of::transform< Spaces, GetEvaluatorTypes >::type >::type
 the heterogeneous sequence type of Evaluators for the given spaces More...
 
template<class GridView >
using Cell = typename GridView::template Codim< 0 >::Entity
 The type of cells (entities of codimension 0) in the grid view. More...
 
template<class GridView >
using Face = typename GridView::Intersection
 The type of faces in the grid view. More...
 
template<class GridView >
using GlobalPosition = Dune::FieldVector< typename GridView::ctype, GridView::dimensionworld >
 The type of global positions within the grid view. More...
 
template<class GridView >
using LocalPosition = Dune::FieldVector< typename GridView::ctype, GridView::dimension >
 The type of local positions within cells of the grid view. More...
 
template<class GridView >
using FaceLocalPosition = Dune::FieldVector< typename GridView::ctype, GridView::dimension-1 >
 The type of local positions within faces of the grid view. More...
 
template<class SFData >
using UniformPartitionedMapperCombinerArgument = RangeView< typename std::vector< boost::compressed_pair< size_t, SFData > >::const_iterator >
 The sequence type that is provided as first argument to the call of the Combiner constructor. More...
 
template<class SFData >
using UniformScalarMapperCombinerArgument = RangeView< typename std::vector< boost::compressed_pair< size_t, SFData > >::const_iterator >
 The sequence type that is provided as first argument to the call of the Combiner constructor. More...
 
template<class Grid , class Scalar = double>
using ConstantSpace = FEFunctionSpace< ConstantMapper< Scalar, typename Grid::LeafGridView > >
 A finite element space of globally constant functions on the leaf grid view. More...
 
template<class Grid , class Scalar = double>
using H1Space = FEFunctionSpace< ContinuousLagrangeMapper< Scalar, typename Grid::LeafGridView > >
 An \( H^1 \) conforming finite element space on the leaf grid view with Lagrange basis. More...
 
template<class Grid , class Scalar = double>
using H1HierarchicSpace = FEFunctionSpace< ContinuousHierarchicMapper< Scalar, typename Grid::LeafGridView > >
 An \( H^1 \) conforming finite element space on the leaf grid view with hierarchic basis. More...
 
template<class Grid , class Scalar = double>
using H1HierarchicExtensionSpace = FEFunctionSpace< ContinuousHierarchicExtensionMapper< Scalar, typename Grid::LeafGridView > >
 An \( H^1 \) conforming finite element extension space on the leaf grid view with hierarchic basis. More...
 
template<class Grid , class Scalar = double>
using L2Space = FEFunctionSpace< DiscontinuousLagrangeMapper< Scalar, typename Grid::LeafGridView > >
 An \( L^2 \) conforming finite element space on the leaf grid view with Lagrange basis. More...
 
template<class Grid , class Scalar = double>
using L2HierarchicSpace = FEFunctionSpace< DiscontinuousHierarchicMapper< Scalar, typename Grid::LeafGridView > >
 An \( L^2 \) conforming finite element space on the leaf grid view with hierarchic basis. More...
 
template<class Grid , class Scalar = double>
using L2HierarchicExtensionSpace = FEFunctionSpace< DiscontinuousHierarchicExtensionMapper< Scalar, typename Grid::LeafGridView > >
 An \( L^2 \) conforming finite element extension space on the leaf grid view with hierarchic basis. More...
 
using ValueMethod = decltype(valueMethod)
 The type of the valueMethod helper functor. More...
 
using DerivativeMethod = decltype(derivativeMethod)
 The type of the derivativeMethod helper functor. More...
 
template<class X , class Xstar , class TimerPolicy = DoNotMeasureTime>
using CG = CGBase< X, Xstar, CGImplementationType::STANDARD, TimerPolicy >
 
template<class X , class Xstar , class TimerPolicy = DoNotMeasureTime>
using TCG = CGBase< X, Xstar, CGImplementationType::TRUNCATED, TimerPolicy >
 
template<class X , class Xstar , class TimerPolicy = DoNotMeasureTime>
using RCG = CGBase< X, Xstar, CGImplementationType::REGULARIZED, TimerPolicy >
 
template<class X , class Xstar , class Regularization = NoRegularization>
using TPCG = TCG< X, Xstar, Regularization >
 
using Prolongation = NumaBCRSMatrix< Dune::FieldMatrix< double, 1, 1 > >
 
template<class Grid , int nComponents = 1>
using MultiGridSolver = MultigridSolver< Grid, nComponents >
 
template<class Type >
using ScalarType = typename GetScalar< Type >::type
 Extracts the scalar field type from linear algebra data types. More...
 
template<int k>
using PenaltyMonomial = PenaltyFunction< Monomial< k > >
 
typedef PenaltyFunction< LNPenaltyLN
 
typedef PenaltyFunction< Polynomial< 5,-5 > > Hartmann03
 
typedef PenaltyFunction< Polynomial< 2,-2 > > QuadQuad
 
typedef PenaltyFunction< QuadraticAndLogBaseQuadraticAndLog
 
template<int k>
using QuadraticAndPolynomial = PenaltyFunction< Polynomial< 2, k > >
 
typedef std::packaged_task< void()> Task
 Abstract interface for tasks to be scheduled for concurrent execution. More...
 
typedef std::future< void > Ticket
 Abstract waitable job ticket for submitted tasks. More...
 

Enumerations

enum class  RegularityTest { Failed , Passed }
 
enum class  AcceptanceTest {
  InitialGuess , FailedRecompute , Failed , NormalStepFailed ,
  TangentialStepFailed , Passed , LeftAdmissibleDomain
}
 
enum class  Convergence { Missed , Achieved }
 
enum class  ErrorNorm { Energy , L2 , H1 , H1_half }
 
enum  ProblemType { VariationalFunctional , WeakFormulation }
 A type for describing the nature of a PDE problem. More...
 
enum class  Endian {
  Unknown , Big , Little , BigWord ,
  LittleWord
}
 
enum  schwarzType { DIAGONAL , COMPLETE }
 
enum class  CGImplementationType { STANDARD , TRUNCATED , REGULARIZED , HYBRID }
 
enum class  GaussSeidelPreconditionerMode { FORWARD =0x1 , BACKWARD =0x2 , SYMMETRIC =0x3 }
 
enum class  QPConvexificationStrategy { DONOTHING , INCREMENTALADDITION , EIGENVALUEADDITION }
 
enum class  QPStructure { DENSE , SPARSE }
 A flag that determines whether the QP solver shall work with dense or sparse linear algebra. More...
 
enum class  TaylorHoodPreconditionerFlavour { TaylorHoodPreconditionerFlavour::SYMMETRIC , TaylorHoodPreconditionerFlavour::PRESMOOTH , TaylorHoodPreconditionerFlavour::POSTSMOOTH }
 tag for controlling the TaylorHoodPreconditioner flavour More...
 

Functions

template<class ParameterType >
Parameters< ParameterType > makePars (ParameterType const &p)
 
template<int rbegin, int rend, class FSE , class CoeffVector >
void copyFromFunctionSpaceElement (FSE const &fse, CoeffVector &coeffVector)
 
template<int rbegin, int rend, class FSE , class CoeffVector >
void addToFunctionSpaceElement (CoeffVector const &coeffVector, FSE &fse)
 
template<class Assembler , class Lin , int rbegin, int rend, int cbegin, int cend>
void ddxpy_template (Lin &lin, AbstractFunctionSpaceElement &y, AbstractFunctionSpaceElement const &x)
 
template<typename Scalar >
std::ostream & operator<< (std::ostream &s, std::vector< Scalar > const &vec)
 
template<class OriginalEvaluators , class ExtensionEvaluators , class Functional , class ArgYH , class ArgYE , class ArgUH , class ArgUE , class ArgPH , class ArgPE >
void evaluateData (OriginalEvaluators &originalEvaluators, ExtensionEvaluators &extendedEvaluators, Functional const &f, ArgYH &yl, ArgYE &yh, ArgUH &ul, ArgUE &uh, ArgPH &pl, ArgPE &ph, double w)
 
template<class ArgYL , class ArgYH , class ArgUL , class ArgUH , class ArgPL , class ArgPH >
void clearVarArgs (ArgYL &yl, ArgYH &yh, ArgUL &ul, ArgUH &uh, ArgPL &pl, ArgPH &ph)
 
template<class ArgU , class ArgY , class ArgP >
double computeL2Error (ArgU const &u, ArgY const &y, ArgP const &p)
 
template<class ArgU , class ArgY , class ArgP >
double computeH1HalfError (ArgU const &u, ArgY const &y, ArgP const &p)
 
bool biggerThanAbs (const std::pair< double, int > &x1, const std::pair< double, int > &x2)
 
double add (const double &x1, const std::pair< double, int > &x2)
 
template<class Equation >
double bisection (double a, double b, Equation const &f, double accuracy, int &iterations)
 Performs bisection algorithm to find a zero of a. More...
 
template<class Value >
void assignIfNegative (Value &val, Value newVal)
 
template<class Function >
CellData< typenameFunction::Space::Grid, typenameFunction::ValueType >::CellDataVector gradientAveraging (Function const &f)
 Perform gradient averaging in order to construct an error estimator. More...
 
template<class GradientError , class Function >
void gradientAveraging (GradientError &dx, Function const &x)
 Perform gradient averaging in order to construct a representation of the gradient error. More...
 
template<class Function >
CellData< typenameFunction::Space::Grid, typenameFunction::ValueType >::CellDataVector lowOrderInterpolation (Function const &f)
 Perform lower order interpolation in order to construct an error estimator. More...
 
template<class LocalMatrix , class Evaluators , class RT , class Cache >
void localNormalMatrix (LocalMatrix &localmatrix, RT intEl, Evaluators const &evaluators, Cache const &cache)
 
template<class LocalVector , class Evaluators , class RT >
void rank1KernelVector (LocalVector &localvector, RT intEl, Evaluators const &evaluators)
 
template<class VariableDescriptions , int sysdim, class Result , class F , class Spaces , class ExtendedSpaces >
void edgeAveraging (Result &result, F const &f, Spaces const &spaces, ExtendedSpaces const &extendedSpaces)
 Computes an error representation function, which is useful for goal oriented adaptivity. More...
 
template<class LocalVector , class LocalMatrix >
void solveLocalFullSystem (LocalVector &c, LocalMatrix &A, LocalVector &b)
 
template<class VariableDescriptions , int sysdim, class Result , class F , class FS , class Spaces , class ExtendedSpaces >
void edgeAveragingFull (Result &result, F const &f, FS const &fs, Spaces const &spaces, ExtendedSpaces const &extendedSpaces)
 Computes an error representation function, which is useful for goal oriented adaptivity. More...
 
template<class Description , class Function , class Functional >
CellData< typenameFunction::Grid >::CellDataVector BWErrorIndicator (Function const &f, Functional const &vf)
 Construct an error indicator in the flavour of Bank/Weiser. More...
 
template<class CoordType , int dim>
Dune::FieldVector< CoordType, dim+1 > barycentric (Dune::FieldVector< CoordType, dim > const &x)
 Computes the barycentric coordinates of a point in the unit simplex. More...
 
template<class CoordType , int dim, std::enable_if_t< std::is_floating_point_v< CoordType >, int > = 0>
Dune::FieldVector< CoordType, dim > projectToUnitSimplex (Dune::FieldVector< CoordType, dim > x)
 Projects a vector onto the unit simplex. More...
 
template<class CoordType , int dim>
Dune::FieldVector< CoordType, dim+1 > barycentric2 (Dune::FieldVector< CoordType, dim > const &x)
 Computes barycentric coordinates of a point in the unit simplex. More...
 
template<class CoordType , int dim>
Dune::FieldMatrix< CoordType, dim+1, dim > barycentric2Derivative (Dune::FieldVector< CoordType, dim > const &x)
 Computes the derivative of the barycentric coordinates of a point in the unit simplex. More...
 
template<size_t dim>
std::array< int, dim+1 > barycentric (std::array< int, dim > const &x, int bsum)
 Converts integer coordinate index to barycentric indices. More...
 
template<class GridView >
std::map< typename GridView::IndexSet::IndexType, BoundaryStar< typename GridView::IndexSet::IndexType, typename GridView::ctype, GridView::dimension > > computeBoundaryStars (GridView const &gv)
 Computes the boundary stars (i.e. corners around a vertex) for all boundary vertices of the grid view. More...
 
template<class Index , class ctype >
void adjustEdgeTangents (BoundaryStar< Index, ctype, 3 > &star, std::map< std::array< Index, 2 >, Dune::FieldVector< ctype, 3 > > &orientedEdges, GeometricFeatureDetector< Index, ctype, 3 > const &features)
 Detects feature edges and adjusts the edge tangent vectors accordingly. More...
 
template<class Index , class ctype >
void adjustEdgeTangents (BoundaryStar< Index, ctype, 2 > &star, std::map< std::array< Index, 2 >, Dune::FieldVector< ctype, 2 > > &orientedEdges, GeometricFeatureDetector< Index, ctype, 2 > const &features)
 
template<class GridView >
std::vector< Dune::FieldVector< typename GridView::ctype, GridView::dimension > > interpolateVertexPositions (GridView const &gv, GridBoundaryTangents< GridView > const &tangents, bool computeDisplacements=false)
 Computes a new position for each grid vertex based on boundary interpolation. More...
 
template<class Grid , class T >
CellData< Grid, int >::CellDataVector markByBulkCriterion (CellData< Grid, T > &ic, double Theta)
 Create a CellDataVector, in which the largest entities of *this are marked by 1, using the "bulk criterion". More...
 
template<class Grid , class T >
void deleteAllAboveLevel (CellData< Grid, T > &ic, int maxlevel)
 Delete all error entries of entities which are above a certain level. More...
 
template<class Grid , class T >
CellData< Grid, int >::CellDataVector markByMaxCriterion (CellData< Grid, T > &ic, double Ratio)
 Create a CellDataVector, in which the largest entities of *this are marked by 1, using the "max criterion". More...
 
template<class Grid , class T >
CellData< Grid, int >::CellDataVector markWithinInterval (CellData< Grid, T > &ic, double lower, double upper, int times)
 Create a CellDataVector, in which the largest entities of *this are marked by 1, using the "max criterion". More...
 
template<class Grid >
CellData< Grid, int >::CellDataVector unmarkOutOf (CellData< Grid, int > const &ic, Dune::FieldVector< typename Grid::ctype, Grid::dimension > center, double radius)
 Create a CellDataVector, in which the largest entities of *this are marked by 1, using the "max criterion". More...
 
template<class Indicator >
Indicator errorL2 (Indicator const &indi)
 Scale error indicators for H^1, such that L_2 indicators are the result. More...
 
template<typename FSElement >
void extendMarks (FSElement &fse, FSElement const &fu, int neighboursForMarking)
 
template<class VariableSetDescription , class Scaling >
void coarsening (VariableSetDescription const &varDesc, typename VariableSetDescription::VariableSet const &sol, Scaling const &scaling, std::vector< std::pair< double, double > > const &tol, GridManager< typename VariableSetDescription::Grid > &gridManager, int verbosity=1, int minRefLevel=0)
 
template<class VariableSetDescription , class Scaling >
void coarsening (VariableSetDescription const &varDesc, typename VariableSetDescription::VariableSet const &sol, Scaling const &scaling, std::vector< std::pair< double, double > > const &tol, GridManager< typename VariableSetDescription::Grid > &gridManager, std::vector< bool > &coarsenedCells, int verbosity=1, int minRefLevel=0)
 coarsening routine More...
 
template<class ScalarA , class ScalarB , int r, int c>
Dune::FieldMatrix< ScalarA, r, c > castMatrixEntries (Dune::FieldMatrix< ScalarB, r, c > const &m)
 Copies matrix into another matrix with possibly different entry type (e.g. from double to float). More...
 
template<class Space , class DisplacedFace , class Displacement >
auto getContactConstraint (Space const &space, BoundaryLocator< typename Space::GridView, Displacement > const &boundaryLocator, DisplacedFace const &face, Dune::FieldVector< typename Space::GridView::ctype, Space::GridView::Grid::dimension-1 > const &xi, double overlap)
 Computes a single multibody contact point constraint. More...
 
template<class Space1 , class DisplacedFace1 , class Displacement1 , int dimw1 = Space1::GridView::Grid::dimension, class Space2 , class Displacement2 , int dimw2 = Space2::GridView::Grid::dimension>
auto getContactConstraint (Space1 const &space1, BoundaryLocator< typename Space1::GridView, Displacement1, Space1::GridView::Grid::dimension > const &boundaryLocator1, Space2 const &space2, BoundaryLocator< typename Space2::GridView, Displacement2, Space2::GridView::Grid::dimension > const &boundaryLocator2, DisplacedFace1 const &face, Dune::FieldVector< typename Space1::GridView::ctype, Space1::GridView::Grid::dimension-1 > const &xi, double overlap, int which=0)
 Computes a single multibody contact point constraint. More...
 
template<int dim>
std::vector< Dune::QuadraturePoint< double, dim > > constraintPositions (Dune::GeometryType gt, int nodesPerEdge)
 Computes contact sample points on faces. More...
 
template<class Space , class Displacement >
auto getContactConstraints (Space const &space, BoundaryLocator< typename Space::GridView, Displacement > const &boundaryLocator, int pointsPerEdge, double overlap=std::numeric_limits< double >::lowest(), Mortar< typename Space::Grid::ctype, Space::Grid::dimension > const &mortar=ContactConstraintsDetail::defaultMortar< typename Space::Grid::ctype, Space::Grid::dimension >())
 Computes a complete set of pointwise multibody contact constraints. More...
 
template<class Space1 , class Displacement1 , class Space2 , class Displacement2 , bool flattened = false>
auto getContactConstraints (Space1 const &space1, BoundaryLocator< typename Space1::GridView, Displacement1, Space1::GridView::Grid::dimension > const &boundaryLocator1, Space2 const &space2, BoundaryLocator< typename Space2::GridView, Displacement2, Space1::GridView::Grid::dimension > const &boundaryLocator2, int order, double overlap=std::numeric_limits< double >::lowest(), bool symmetric=true)
 Computes a complete pointwise twobody contact constraint. More...
 
template<class GridView , class Displacement >
double getContactArea (BoundaryLocator< GridView, Displacement > const &boundaryLocator1, BoundaryLocator< GridView, Displacement > const &boundaryLocator2, int order, double overlap=std::numeric_limits< double >::lowest(), double maxGap=1e-4)
 Computes the contact area for the first body. More...
 
template<class Displacement , class BoundaryDisplacement >
double contactLinesearch (Displacement const &u, BoundaryLocator< typename Displacement::GridView, BoundaryDisplacement > &boundaryLocator, Displacement const &direction, int pointsPerEdge, double trialStepSize=0.2, double overlap=std::numeric_limits< double >::lowest(), double targetOverlap=0, Mortar< typename Displacement::ctype, Displacement::GridView::dimension > const &mortar=ContactConstraintsDetail::defaultMortar< typename Displacement::ctype, Displacement::GridView::dimension >())
 Computes a feasible step size for contact constraints. More...
 
template<class Displacement1 , class BoundaryDisplacement1 , class Displacement2 , class BoundaryDisplacement2 >
double contactLinesearch (Displacement1 const &u1, BoundaryLocator< typename Displacement1::GridView, BoundaryDisplacement1 > &boundaryLocator1, Displacement1 const &direction1, Displacement2 const &u2, BoundaryLocator< typename Displacement2::GridView, BoundaryDisplacement2 > &boundaryLocator2, Displacement2 const &direction2, int order, double trialStepSize=0.2, double overlap=std::numeric_limits< double >::lowest(), double targetOverlap=0)
 Computes a feasible step size for contact constraints. More...
 
double massDensity (std::string const &name)
 Mass density of several materials in kg/m^3. More...
 
std::map< std::string, double > const & massDensities ()
 A map from known material names to their mass densities. More...
 
double thermalExpansion (std::string const &name, double pressure=101300)
 Volumetric thermal expansion coefficient of materials. More...
 
double heatConductivity (std::string const &name)
 Heat conductivity [W/m/K]. More...
 
std::map< std::string, double > const & heatConductivities ()
 A map from known material names to their heat conductivities. More...
 
double specificHeatCapacity (std::string const &name)
 Specific heat capaciity [J/kg/K]. More...
 
std::map< std::string, double > const & specificHeatCapacities ()
 A map from known material names to their specific heat capaciities. More...
 
double dynamicViscosity (std::string const &name)
 Dynamic viscosity of several materials in kg/m/s. More...
 
std::map< std::string, double > const & dynamicViscosities ()
 A map from known material names to their dynamic viscosities. More...
 
template<class VariableSetDescription >
void projectHierarchically (VariableSet< VariableSetDescription > &f)
 Projects the given FE function onto the the polynomial ansatz subspace of one order lower. This relies on the hierarchic projection defined by the shape function sets on each cell. More...
 
template<class VariableSet , class GridManager >
std::array< size_t, 3 > uniformEmbeddedErrorEstimation (VariableSet const &u, Dune::FieldVector< double, VariableSet::Descriptions::noOfVariables > const &tol, GridManager &gridManager, double rhoMin=0.1, double rhoMax=0.9)
 Embedded error estimation and simultaneous mesh refinement/coarsening. More...
 
template<class VariableSetDescription , class Scaling >
bool embeddedErrorEstimator (VariableSetDescription const &varDesc, typename VariableSetDescription::VariableSet const &err, typename VariableSetDescription::VariableSet const &sol, Scaling const &scaling, std::vector< std::pair< double, double > > const &tol, GridManager< typename VariableSetDescription::Grid > &gridManager, int verbosity=1)
 Embedded error estimation and mesh refinement. More...
 
template<class GridManager , class GridView >
void markAndRefine (GridManager &gridManager, GridView const &gridView, boost::multi_array< double, 2 > const &normalizedErrors, std::vector< double > const &threshold)
 Refines the grid according to the normalized errors and the given thresholds. More...
 
template<class Space , class ShapeFunctionSet >
void evaluateGlobalShapeFunctions (Space const &space, Cell< typename Space::GridView > const &cell, std::vector< LocalPosition< typename Space::GridView > > const &xi, DynamicMatrix< Dune::FieldMatrix< typename Space::Scalar, Space::sfComponents, 1 > > &sfValues, ShapeFunctionSet const &shapeFunctionSet)
 Computes the values of global shape functions at the given points (which are supposed to be local coordinates inside the cell to which the evaluator is currently moved). More...
 
template<class Space >
void evaluateGlobalShapeFunctions (Space const &space, Cell< typename Space::GridView > const &cell, std::vector< LocalPosition< typename Space::GridView > > const &x, DynamicMatrix< Dune::FieldMatrix< typename Space::Scalar, Space::sfComponents, 1 > > &sfValues)
 
template<class Space , class ShapeFunctionSet >
void approximateGlobalValues (Space const &space, typename Space::Grid::template Codim< 0 >::Entity const &cell, DynamicMatrix< Dune::FieldMatrix< typename Space::Scalar, Space::sfComponents, 1 > > &globalValues, DynamicMatrix< Dune::FieldMatrix< typename Space::Scalar, 1, 1 > > &coeff, ShapeFunctionSet const &sfs)
 Computes global shape function coefficients such that the given set of global function values at the interpolation nodes of the shape function set are approximated by the resulting linear combinations of global shape functions. More...
 
template<class Space >
void approximateGlobalValues (Space const &space, typename Space::Grid::template Codim< 0 >::Entity const &cell, DynamicMatrix< Dune::FieldMatrix< typename Space::Scalar, Space::sfComponents, 1 > > &globalValues, DynamicMatrix< Dune::FieldMatrix< typename Space::Scalar, 1, 1 > > &coeff)
 
template<class ChildSpace , class FatherSpace >
void localProlongationMatrix (ChildSpace const &childSpace, Cell< typename ChildSpace::Grid > const &child, FatherSpace const &fatherSpace, Cell< typename FatherSpace::Grid > const &father, DynamicMatrix< Dune::FieldMatrix< typename ChildSpace::Scalar, 1, 1 > > &prolongation, typename ChildSpace::Mapper::ShapeFunctionSet const &childSfs, typename FatherSpace::Mapper::ShapeFunctionSet const &fatherSfs)
 Computes a local prolongation matrix for global shape functions from father cell to child cell. More...
 
template<class ChildSpace , class FatherSpace >
void localProlongationMatrix (ChildSpace const &childSpace, Cell< typename ChildSpace::GridView > const &child, FatherSpace const &fatherSpace, Cell< typename FatherSpace::GridView > const &father, DynamicMatrix< Dune::FieldMatrix< typename ChildSpace::Scalar, 1, 1 > > &prolongation)
 Computes a local prolongation matrix from father cell to child cell. More...
 
template<typename Weighing = PlainAverage, typename FSElement , typename Function >
void interpolateGlobally (FSElement &fse, Function const &fu)
 Interpolates FunctionSpaceElement to FunctionSpaceElement. More...
 
template<typename Weighing = PlainAverage, typename Target , typename Source >
void interpolateGloballyWeak (Target &target, Source const &fu)
 Interpolates WeakFunctionViews to FunctionSpaceElement. More...
 
template<class Fu1 , class Fu2 >
void spaceTransfer (Fu1 &f1, Fu2 const &f2)
 DEPRECATED. Use interpolateGlobally instead. More...
 
template<class Scalar , int n>
auto horzcat (Dune::FieldVector< Scalar, n > const &c1)
 
template<class Scalar , int n, class ... Rest>
auto horzcat (Dune::FieldVector< Scalar, n > const &a, Rest ... rest)
 Concatenates an arbitrary number of column vectors and matrices with coinciding number of rows to a larger matrix. More...
 
template<class Scalar , int n, int m>
auto horzcat (Dune::FieldMatrix< Scalar, n, m > const &a)
 
template<class Scalar , int n, int m, class ... Rest>
auto horzcat (Dune::FieldMatrix< Scalar, n, m > const &a, Rest ... rest)
 
template<class Scalar , int n>
Dune::FieldMatrix< Scalar, n, 3 > horzcat (Dune::FieldVector< Scalar, n > const &col1, Dune::FieldVector< Scalar, n > const &col2, Dune::FieldVector< Scalar, n > const &col3)
 
template<class Scalar , int n, int m>
Dune::FieldVector< Scalar, n > column (Dune::FieldMatrix< Scalar, n, m > const &A, int j)
 Extracts the j-th column of the given matrix A. More...
 
template<class Scalar , int n>
Dune::FieldVector< Scalar, n *n > vectorize (Dune::FieldMatrix< Scalar, n, n > const &A)
 matrix entries as vector, concatenating columns More...
 
template<int n, class Scalar >
Dune::FieldMatrix< Scalar, n, n > unvectorize (Dune::FieldVector< Scalar, n *n > const &v)
 forming quadratic matrix columns of vector segments More...
 
template<class T , int n, int m>
contraction (Dune::FieldMatrix< T, n, m > const &A, Dune::FieldMatrix< T, n, m > const &B)
 Matrix contraction (Frobenius product) \( (A,B) \mapsto A:B = \sum_{i,j} A_{ij} B_{ij} \). More...
 
template<class GridView , class Functor >
void forEachCell (GridView const &gridView, Functor functor)
 DEPRECATED: use range based for loops and Dune::elements() directly. iterates over each cell and applies functor to cell. Each cell is visited exactly once. More...
 
template<class GridView , class Functor >
void forEachVertex (GridView const &gridView, Functor functor)
 DEPRECATED: use range based for loops and Dune::vertices() directly. iterates over each vertex and applies functor to vertex. Each vertex is visited exactly once. More...
 
template<class GridView , class Functor >
void forEachFace (GridView const &gridView, Functor functor)
 
template<class GridView , class Functor >
void forEachFaceOfCell (GridView const &gridView, Functor functor)
 same as forEachFace, but the functor is applied to the face and the cell from which the face is visited More...
 
template<class GridView , class Functor >
void forEachBoundaryFace (GridView const &gridView, Functor functor)
 iterates over each boundary face and applies functor to face. Each boundary face is visited exactly once. More...
 
template<class GridView , class Functor >
void forEachInnerFace (GridView const &gridView, Functor functor)
 iterates over each inner face and applies functor to face. Each inner face is visited exactly twice (and so functor is applied twice). More...
 
template<class GridView , class Functor >
void forEachCellAndEachFace (GridView const &gridView, Functor functor)
 iterates over each cell and applies functor to cell and then iterates over each face of cell and applies functor to face More...
 
template<class GridManager , class Functor >
void markCells (GridManager &gridManager, Functor functor)
 
template<class Functional >
LinearizationDifferenceAt< Functional > linearizationDifference (Functional const &f, typename Functional::OriginVars::VariableSet const &u1, typename Functional::OriginVars::VariableSet const &u2)
 Convenience routine: construct linearization without having to know the type of the functional. More...
 
template<class Cell , class ctype >
std::pair< Cell, Dune::FieldVector< ctype, Cell::dimension > > findCellOnLevel (Cell cell, Dune::FieldVector< ctype, Cell::dimension > xi, int level=std::numeric_limits< int >::max())
 Returns a descendant or ancestor cell of the given cell containing the specified local coordinate. More...
 
template<class GridView >
Cell< GridView > findCell (GridView const &gv, GlobalPosition< GridView > global)
 Returns a cell of the given grid containing the specified global coordinate. More...
 
template<class Space , int m, class InIter >
InIter vectorFromSequence (FunctionSpaceElement< Space, m > &v, InIter in)
 
template<class Evaluators , class Cell >
void moveEvaluatorsToCell (Evaluators &evals, Cell const &cell)
 Moves all provided evaluators to the given cell. More...
 
template<class Evaluators , class Cell , class Index >
void moveEvaluatorsToCell (Evaluators &evals, Cell const &cell, Index idx)
 Moves all provided evaluators to the given cell with provided index. More...
 
template<class Evaluator , class QuadratureRule >
void useQuadratureRuleInEvaluators (Evaluator &evals, QuadratureRule const &qr, int subId)
 Tells all evaluators to use the given quadrature rule on the given subentity. More...
 
template<class Evaluators , class CoordType , int dim, int subDim>
void moveEvaluatorsToIntegrationPoint (Evaluators &evals, Dune::FieldVector< CoordType, dim > const &x, Dune::QuadratureRule< CoordType, subDim > const &qr, int ip, int subId)
 Moves all provided evaluators to the given integration point, evaluating the shape functions there. More...
 
template<class Evaluators , class CoordType , int dim>
void moveEvaluatorsToIntegrationPoint (Evaluators &evals, Dune::FieldVector< CoordType, dim > const &x)
 Moves all provided evaluators to the given integration point, evaluating the shape functions there. More...
 
template<class Evaluators >
int maxOrder (Evaluators const &evals)
 Computes the maximum ansatz order used in a collection of evaluators. More...
 
template<template< class Fct1, class Fct2 > class View, class Fct1 , class Fct2 >
View< Fct1, Fct2 > makeView (Fct1 const &f1, Fct2 const &f2)
 Construct a View on two Functions without having to state the type of these explicitely. More...
 
template<template< typename Function > class View, typename Function >
View< FunctionmakeView (Function const &f1)
 Construct a View on a Function without having to state the type of it explicitely. More...
 
template<class View , class Space >
CellData< typenameSpace::Grid, Dune::FieldVector< double, 1 > >::CellDataVector evalCellProperties (Space const &space)
 Evaluate WeakFunctionViews and construct CellData. More...
 
template<class Map , class IndexSet , class LocalDofs >
size_t computeDofStartIndices (int dim, Map &map, IndexSet const &is, LocalDofs &localDof)
 For each codimension (i.e., type of subentity) computes the number of global ansatz functions as well as an accumulated index into an array of all ansatz functions. More...
 
void vertexids (int d, int c, int k, int *idx)
 Computes the d-c+1 local vertex indices of the vertices incident to the k-th subentity of codimension c in the reference simplex of dimension d. More...
 
template<class GridView >
std::pair< Dune::FieldVector< typename GridView::ctype, GridView::dimensionworld >, Dune::FieldVector< typename GridView::ctype, GridView::dimensionworld > > boundingBox (GridView const &gv)
 Computes a the bounding box of the given grid view. More...
 
template<class GridView >
std::unique_ptr< typename GridView::Grid > createCoverGrid (GridView const &gv, double volumeRatio=10)
 Creates a cartesian structured grid occupying the bounding box of the given grid view. More...
 
template<class Grid >
void refineAtBoundary (GridManagerBase< Grid > &gridManager)
 A convenience routine that refines all cells incident to a boundary face. More...
 
template<class ExtensionVariables , class LinearFunctional >
HierarchicErrorEstimator< LinearFunctional, ExtensionVariables > hierarchicErrorEstimator (LinearFunctional const &lf, typename LinearFunctional::AnsatzVars::VariableSet const &u)
 
template<class ctype , int dimension, class Scalar >
HierarchicShapeFunctionSetContainer< ctype, dimension, Scalar >::value_type const & hierarchicShapeFunctionSet (Dune::GeometryType type, int order)
 Returns a Hierarchic shape function set for given reference element type and given polynomial order. Singleton function. More...
 
template<class ctype , int dimension, class Scalar >
HierarchicExtensionShapeFunctionSetContainer< ctype, dimension, Scalar >::value_type const & hierarchicExtensionShapeFunctionSet (Dune::GeometryType type, int order)
 
template<class Function , class Functor >
void forEachQuadPoint (Function const &f, Functor &accumulator)
 Loops over the whole domain occupied by the grid and calls an accumulator for each integration point with the value of the function f. This version of forEach requires the function f to be evaluatable by an Evaluator of the associated space of f. More...
 
template<class Functor , class Space >
void forEachQP (Functor &g, Space const &space)
 Loops over the whole domain occupied by the grid and calls the functor g for each integration point with an evaluator of the associated space. More...
 
template<class Functor , class Function , class Space >
void forEachQuadPoint (Function const &f, Functor &g, Space &space)
 Loops over the whole domain occupied by the grid and calls the functor g for each integration point with the value of the function f. More...
 
template<class FEFunction >
FEFunction::ValueType integrateOverIntersection (FEFunction const &function, typename FEFunction::Space::GridView::Intersection const &intersection, typename FEFunction::Space::Evaluator &evaluator)
 integrateOverIntersection computes the integral of an FE function over a grid intersection (face). More...
 
template<class FEFunction >
FEFunction::ValueType integrateOverBoundary (FEFunction const &function)
 integrateOverBoundary computes the integral of an FE function over the whole boundary of the underlying grid. More...
 
template<template< class, class > class DomainMapper, typename Scalar , typename GridView , int m>
FunctionSpaceElement< FEFunctionSpace< BoundaryMapper< DomainMapper, Scalar, GridView > >, m >::ValueType integrateOverBoundary (FunctionSpaceElement< FEFunctionSpace< BoundaryMapper< DomainMapper, Scalar, GridView > >, m > const &function)
 integrateOverBoundary computes the integral of an FE function which is restricted to (parts of) the boundary over the boundary of the underlying grid. More...
 
template<typename Function , class = typename Function::Space>
Function::ValueType integral (Function const &f)
 Evaluate integrals of finite element functions. More...
 
template<class WeakFunctionView , class Space >
auto integral (WeakFunctionView const &f, Space const &space)
 
template<class VariableList , class Collector , class Functions , class Spaces >
void gridIterate (VariableList const &vars, Functions const &functions, Spaces const &spaces, Collector &f)
 A function that supports general iterations over a spatial domain and supports efficient evaluation of FE functions at the iterated quadrature points. This is a low-level function working directly on variable lists and function lists. There's a convenience overload working on VariableSets. More...
 
template<class VariableSet , class Collector >
void gridIterate (VariableSet const &functions, Collector &f)
 A function that supports general iterations over a spatial domain and supports efficient evaluation of FE functions at the iterated quadrature points. More...
 
template<class Variables , class Functions , class Spaces , class Scaling , class Collector >
void scaledTwoNormSquared (Variables const &varDesc, Functions const &f, Spaces const &spaces, Scaling const &scaling, Collector &sum)
 Evaluates the square of the scaled \(L^2\)-norms of a set of functions. More...
 
template<class Variables , class OutIter , class Functions , class Spaces , class Scaling >
void relativeError (Variables const &varDesc, Functions const &f1, Functions const &f2, Functions const &f3, Spaces const &spaces, Scaling const &scaling, OutIter out)
 
template<class ctype , int dimension, class Scalar = double, bool restricted = false>
LagrangeShapeFunctionSetContainer< ctype, dimension, Scalar, restricted >::value_type const & lagrangeShapeFunctionSet (Dune::GeometryType type, int order)
 Returns a Lagrange shape function set for given reference element type and given polynomial order. Singleton function. More...
 
template<int m, class Scalar , class Sequence >
auto & component (LinearProductSpace< Scalar, Sequence > &x)
 
template<class Space , class Density , int m = 1, class Scalar = double>
NumaBCRSMatrix< Dune::FieldMatrix< Scalar, m, m > > massMatrix (Space const &space, Density const &rho)
 Creates a mass matrix for the given FE space. More...
 
template<class Space , class Conductivity , int m = 1, class Scalar = double>
NumaBCRSMatrix< Dune::FieldMatrix< Scalar, m, m > > stiffnessMatrix (Space const &space, Conductivity const &kappa)
 Creates a stiffness matrix for the given FE space. More...
 
template<class ctype , int dimension, class T >
NedelecShapeFunctionSetContainer< ctype, dimension, T >::value_type const & nedelecShapeFunctionSet (Dune::GeometryType type, int order)
 
template<class ctype , int dimension, class T = double>
HdivShapeFunctionSetContainer< ctype, dimension, T >::value_type const & hdivShapeFunctionSet (Dune::GeometryType type, int order)
 Returns a Hdiv shape function set for given reference element type and given polynomial order. Singleton function. More...
 
template<class Function >
CellData< typenameFunction::Space::Grid, typenameFunction::ValueType >::CellDataVector localH1SemiNorm (Function const &f)
 local (cellwise) H1-semi-norms More...
 
template<class Function >
CellData< typenameFunction::Space::Grid, typenameFunction::ValueType >::CellDataVector localL2Norm (Function const &f)
 local (cellwise) L2-norms More...
 
template<class FEFunction >
auto boundaryL2Norm (FEFunction const &function)
 boundaryL2Norm computes the L2-norm of an FE function on the whole boundary of the underlying grid. More...
 
template<class ShapeFunctionSet >
void computeSimplexSfPermutation (ShapeFunctionSet const &sfs, int const *vPermutation, int *sfPermutation, int *sign)
 
template<class ErrorDescriptions , class F , class FS , class TestFunctions , class Spaces , class TestSpaces >
void residualTimesTestFunction (std::vector< Dune::FieldVector< typename SpaceType< Spaces, 0 >::type::RT, boost::fusion::result_of::size< ErrorDescriptions >::type::value > > &ind, ErrorDescriptions const &varDesc, F const &f, FS const &fs, TestFunctions const &tf, Spaces const &spaces, TestSpaces const &testSpaces)
 Evaluates strong residual, applied to some test-function <f(x), tf> More...
 
template<class Space , class Range >
std::vector< size_t > algebraicPatch (Space const &space, Range const &cells)
 Computes the global indices of all ansatz functions whose support is a subset of the union of given cells. More...
 
template<class Space , class Range >
std::vector< size_t > algebraicPatch (Space const &space, Range const &cells, size_t vertexIdx, std::vector< std::vector< size_t > > const &indicesOnFacets)
 Computes the global indices of all ansatz functions whose support is a subset of the union of given cells. More...
 
template<class GridView >
auto computePatches (GridView const &gridview)
 Computes the patches around vertices of the grid view. More...
 
template<class Variables , class Functions , class Evaluators , class Method >
auto evaluateFunctions (Functions const &fs, Evaluators const &eval, Method const &method=Method())
 A function evaulating all functions in a variable set using the provided method. More...
 
template<class VariableSet , class Method >
auto evaluateVariables (VariableSet const &vars, typename VariableSet::Descriptions::Evaluators const &eval, Method const &method=Method())
 A function evaulating all functions in a variable set using the provided method. More...
 
template<class It >
RangeView< It > rangeView (It first, It last)
 Convenience function for constructing range views on the fly. More...
 
template<class GridView >
void copyHeader (GridView const &gridView, std::string const &file_in, std::string const &file_out)
 
template<class GridView , class VariableSet >
void writeAMIRAFile (GridView const &gridView, VariableSet const &vars, std::string file_out, IoOptions options=ioOptions_default, Dune::BlockVector< Dune::FieldVector< double, 1 > > materialData=Dune::BlockVector< Dune::FieldVector< double, 1 > >(), std::string file_in="")
 
Endian endianness ()
 Return endianness. More...
 
bool bigEndian ()
 Return true if byte order is big endian. More...
 
bool littleEndian ()
 Return true if byte order is little endian. More...
 
std::string paddedString (int n, int places=3)
 creates a zero-padded string representation of the given number More...
 
template<class GridView , class Writer , class VariableSet , class Filter , class Options >
void writePartialFile (GridView const &gridView, Writer &writer, VariableSet const &vars, std::string const &filename, Filter const &filter, Options const &options)
 
template<class Material >
void writeMarc (Material const &material, std::string const &filename, double const scale=1.0, IoOptions options=IoOptions())
 Writes grid and material IDs given as FE function to a Marc input file. More...
 
template<class Entry , class Index , class VEntry >
void writeToMatlabBinary (NumaBCRSMatrix< Entry, Index > const &A, Dune::BlockVector< VEntry > const &b, std::string const &basename, std::string const &path, int precision=16)
 Writes the given matrix and vector to an binary file based zero. More...
 
template<class Entry , class Index >
void writeToMatlab (NumaBCRSMatrix< Entry, Index > const &A, std::string const &basename, std::string const &outPath, int precision=16)
 Writes the given matrix to an executable matlab file. More...
 
template<class Entry , class Index , class VEntry >
void writeToMatlab (NumaBCRSMatrix< Entry, Index > const &A, Dune::BlockVector< VEntry > const &b, std::string const &basename, int precision=16)
 Writes the given matrix and vector to an executable matlab file. More...
 
template<class Assembler >
void writeToMatlab (Assembler const &assembler, std::string const &basename, int precision=16)
 
template<class Assembler >
void writeToMatlab (Assembler const &assembler, std::string const &path, std::string const &basename, int precision=16)
 
template<class Function >
void writeVTK (Function const &f, std::string const &filename, IoOptions options, std::string fname)
 Writes a single finite element function to a VTK file. More...
 
std::ostream & operator<< (std::ostream &stream, VTKReader::FunctionInfo const &info)
 
template<class VariableSet >
void writeVTK (VariableSet const &vars, IoOptions options, std::ostream &s)
 Writes a set of finite element functions in VTK XML format to a stream. More...
 
template<class VariableSet >
void writeVTK (VariableSet const &vars, std::string fname, IoOptions const &options)
 Writes a set of finite element functions in VTK XML format to a file. More...
 
void dgetrf_ (int *m, int *n, double *a, int *lda, int *ipiv, int *info)
 
void dgetrs_ (char *trans, int *n, int *nrhs, double *a, int *lda, int *ipiv, double *b, int *ldb, int *info)
 
template<class Domain , class Range >
bool requiresInitializedInput (Dune::Preconditioner< Domain, Range > const *p)
 Whether a preconditioner needs zero initialized result vector or not. More...
 
template<class Scalar , class Entry >
std::unique_ptr< Dune::MatrixIndexSet > conjugationPattern (Dune::BCRSMatrix< Dune::FieldMatrix< Scalar, 1, 1 > > const &P, Dune::BCRSMatrix< Entry > const &A, bool onlyLowerTriangle=false)
 Creates the sparsity pattern of \( P^T A P\). More...
 
template<class Scalar , class Entry >
void conjugation (Dune::BCRSMatrix< Entry > &C, Dune::BCRSMatrix< Dune::FieldMatrix< Scalar, 1, 1 > > const &P, Dune::BCRSMatrix< Entry > const &A, bool onlyLowerTriangle=false)
 Computes the triple sparse matrix product \( C = C + P^T A P \). More...
 
template<class OutIter >
OutIter vectorToSequence (double x, OutIter iter)
 
template<class OutIter >
OutIter vectorToSequence (float x, OutIter iter)
 
template<class K , int size, class OutIter >
OutIter vectorToSequence (Dune::FieldVector< K, size > const &v, OutIter iter)
 
template<class B , class A , class OutIter >
OutIter vectorToSequence (Dune::BlockVector< B, A > const &v, OutIter iter)
 copies the entries of a vector sequentially to the output iterator. More...
 
template<class K , class OutIter >
OutIter vectorToSequence (std::vector< K > const &v, OutIter iter)
 
template<class InIter >
InIter vectorFromSequence (double &x, InIter iter)
 
template<class InIter >
InIter vectorFromSequence (float &x, InIter iter)
 
template<class K , int size, class InIter >
InIter vectorFromSequence (Dune::FieldVector< K, size > &v, InIter iter)
 
template<class B , class A , class InIter >
InIter vectorFromSequence (Dune::BlockVector< B, A > &v, InIter in)
 copies the elements obtained from the input iterator sequentially to the entries of the vector. More...
 
template<class K , class InIter >
InIter vectorFromSequence (std::vector< K > &v, InIter iter)
 
template<class Matrix , class OutIteratorI , class OutIteratorD >
void matrix_to_triplet (Matrix const &a, OutIteratorI i, OutIteratorI j, OutIteratorD z)
 converts a matrix to the coordinate (triplet) format. More...
 
template<class SparseInt >
std::vector< std::vector< SparseInt > > getBCRSIndicesFromTriplet (SparseInt nrows, std::vector< SparseInt > const &ridx, std::vector< SparseInt > const &cidx, int nr=1, int nc=1)
 Sorts the sparse matrix nonzero positions into row buckets. More...
 
template<class B , class A >
std::ostream & operator<< (std::ostream &out, Dune::BCRSMatrix< B, A > const &a)
 
template<class GOP , int firstRow, int lastRow, int firstCol, int lastCol>
InverseLinearOperator< DirectSolver< typename AssembledGalerkinOperator< GOP, firstRow, lastRow, firstCol, lastCol >::Domain, typename AssembledGalerkinOperator< GOP, firstRow, lastRow, firstCol, lastCol >::Range > > directInverseOperator (AssembledGalerkinOperator< GOP, firstRow, lastRow, firstCol, lastCol > const &A, DirectType directType, MatrixProperties properties)
 
template<class Matrix , class Domain , class Range >
InverseLinearOperator< DirectSolver< Domain, Range > > directInverseOperator (MatrixRepresentedOperator< Matrix, Domain, Range > const &A, DirectType directType=DirectType::UMFPACK, MatrixProperties properties=MatrixProperties::GENERAL)
 
std::array< std::vector< size_t >, 3 > nestedDissection (std::vector< std::pair< size_t, size_t > > const &edges, std::vector< size_t > const &edgeStart)
 Computes a nested dissection of the given graph. More...
 
template<class T , typename = std::enable_if_t<std::is_arithmetic<T>::value>>
transpose (T x)
 
template<class Scalar , int d>
Dune::FieldVector< Scalar, d > eigenvalues (Dune::FieldMatrix< Scalar, d, d > A)
 Computes the eigenvalues of a symmetric matrix \( A \). More...
 
template<class Scalar , int d>
Dune::FieldVector< Scalar, d > eig (Dune::FieldMatrix< Scalar, d, d > &A, bool computeEigenvectors=true)
 Computes the eigenvalues and eigenvectors of a symmetric matrix \( A \). More...
 
template<int dimIn, int dimOut>
Dune::BlockVector< Dune::FieldVector< double, dimOut > > reshapeBlocks (Dune::BlockVector< Dune::FieldVector< double, dimIn > > const &b)
 reshapes a Dune::BlockVector block structure More...
 
template<class Entry , int n>
Dune::FieldMatrix< Entry, n, n > diag (Dune::FieldVector< Entry, n > const &d)
 Creates a fixed-size diagonal matrix from the given diagonal vector. More...
 
template<class Scalar , class Index >
void tripletToCompressedColumn (Index nRows, Index nCols, size_t nNonZeros, std::vector< Index > const &ridx, std::vector< Index > const &cidx, std::vector< Scalar > const &values, std::vector< Index > &Ap, std::vector< Index > &Ai, std::vector< Scalar > &Az)
 Converts a matrix in triplet format to a compressed column format. More...
 
template<class Scalar , class Index >
std::unique_ptr< Factorization< Scalar > > getFactorization (DirectType directType, MatrixAsTriplet< Scalar, Index > const &A, FactorizationOptions options)
 Creates a factorization of the given triplet matrix. More...
 
template<class Scalar >
std::unique_ptr< Factorization< Scalar > > getFactorization (DirectType directType, Dune::BCRSMatrix< Dune::FieldMatrix< Scalar, 1, 1 > > const &A, FactorizationOptions options)
 Creates a factorization of the given BCRSmatrix. More...
 
template<class Scalar , int n, int m, class Index >
std::unique_ptr< Factorization< Scalar > > getFactorization (DirectType directType, NumaBCRSMatrix< Dune::FieldMatrix< Scalar, n, m >, Index > const &A, FactorizationOptions options)
 Creates a factorization of the given NumaBCRS matrix. More...
 
template<class Entry , bool diagonal, class SortedRowIdx , class SortedColIdx >
std::ostream & operator<< (std::ostream &out, LocalMatrix< Entry, diagonal, SortedRowIdx, SortedColIdx > const &A)
 
template<class Entry , class Index >
void insertMatrixBlockIndices (NumaCRSPatternCreator< Index > &globalCreator, NumaBCRSMatrix< Entry, Index > const &matrixBlock, typename NumaBCRSMatrix< Entry, Index >::size_type startRow, typename NumaBCRSMatrix< Entry, Index >::size_type startCol)
 
template<class Entry >
void insertMatrixBlockIndices (Dune::MatrixIndexSet &globalIndexSet, Dune::BCRSMatrix< Entry > const &matrixBlock, Dune::MatrixIndexSet::size_type startRow, Dune::MatrixIndexSet::size_type startCol)
 
template<class BMatrix >
void insertMatrixBlockEntries (BMatrix &globalMatrix, BMatrix const &matrixBlock, typename BMatrix::size_type startRow, typename BMatrix::size_type startCol)
 
template<class BVector >
void insertVectorBlock (BVector &globalVector, BVector const &vectorBlock, typename BVector::size_type startIdx)
 
template<class MatrixA , class MatrixB , class VectorX , class VectorB >
std::array< typename ScalarTraits< typename MatrixA::field_type >::Real, 4 > checkKKT (MatrixA const &A, MatrixB const &B, VectorX const &c, VectorB const &b, VectorX const &x, VectorB const &lambda)
 Computes the KKT residual for approximate solutions of certain QPs. More...
 
template<class MatrixA , class MatrixB , class VectorX , class VectorB , class Real >
Real qpLinesearch (MatrixA const &A, MatrixB const &B, Real gamma, VectorX const &c, VectorB const &b, VectorX const &dx)
 Performs linesearch for penalized QPs. More...
 
template<class MatrixA , class MatrixB , class VectorX , class VectorB , class Real >
Real qpLinesearch (MatrixA const &A, MatrixB const &B, Real gamma, VectorX const &c, VectorB const &b, VectorX const &x, VectorX const &dx)
 Performs linesearch for penalized QPs. More...
 
template<int n, class Entry , int m, class A >
Dune::BlockVector< Dune::FieldVector< Entry, n >, A > reshapeBlocks (Dune::BlockVector< Dune::FieldVector< Entry, m >, A > const &x)
 Reshapes a nested block vector to differen entry sizes. More...
 
template<class Kb , int nb, int mb, class Ka , int na, int ma>
DynamicMatrix< Dune::FieldMatrix< Kb, nb, mb > > reshapeBlocks (DynamicMatrix< Dune::FieldMatrix< Ka, na, ma > > const &A)
 
void printVec (std::vector< double > const &v, int vend=1000000)
 Adapter class for DUNE::IterativeSolver. More...
 
void LeastSquares (SLAPMatrix< double > a, std::vector< double > const &b, std::vector< double > &x)
 Solve linear least squares problem, given by a*x=b. More...
 
void SymmetricEigenvalues (SLAPMatrix< double > a, std::vector< double > &eig)
 
template<class Scalar >
void pseudoinverse (SLAPMatrix< Scalar > A, SLAPMatrix< Scalar > &Ainv)
 
void MatrixMultiply (SLAPMatrix< double > A, std::vector< double > &in, std::vector< double > &out)
 Matrix multiplication. More...
 
void TransposedMatrixMultiply (SLAPMatrix< double > A, std::vector< double > &in, std::vector< double > &out)
 
void MatrixKT_A_K (SLAPMatrix< double > A, SLAPMatrix< double > &K, SLAPMatrix< double > &out)
 
void MatrixMultiplication (SLAPMatrix< double > A, SLAPMatrix< double > &B, SLAPMatrix< double > &AB)
 
template<class Entry , int ... Sizes>
std::ostream & operator<< (std::ostream &out, Tensor< Entry, Sizes... > const &t)
 
template<class Target , class Source , class RowIndices , class ColIndices >
Target submatrix (Source const &A, RowIndices const &ri, ColIndices const &ci)
 
template<class Index , class Index2 >
NumaCRSPattern< Index > operator+ (NumaCRSPattern< Index > const &pa, NumaCRSPattern< Index2 > const &pb)
 
template<class Scalar , int n, class Index = size_t>
NumaBCRSMatrix< Dune::FieldMatrix< Scalar, n, n >, Index > sparseUnitMatrix (Index N)
 creates a unit matrix in NUMA block compressed row storage format More...
 
template<class Scalar , int n, int m, class Index = size_t>
NumaBCRSMatrix< Dune::FieldMatrix< Scalar, n, m >, Index > sparseZeroMatrix (Index N, Index M)
 creates a zero matrix in NUMA block compressed row storage format More...
 
template<class Scalar >
void deleteLowerTriangle (std::vector< int > &ridx, std::vector< int > &cidx, std::vector< Scalar > &data)
 removes subdiagonal entries from the matrix entries stored in elementary triplet format More...
 
template<typename Scalar , typename SparseIndexInt >
std::ostream & operator<< (std::ostream &s, MatrixAsTriplet< Scalar, SparseIndexInt > const &mat)
 
void umfpack_solve (std::vector< int > const &ridx, std::vector< int > const &cidx, std::vector< double > const &values, std::vector< double > const &b, std::vector< double > &x)
 
template<class X , class Y >
void applyPreconditioner (Dune::Preconditioner< X, Y > &p, X &x, Y &y)
 Convenience function for simple application of preconditioners. Calls pre(), apply(), and post() sequentially. More...
 
template<class MatA , class SolA , class MatB , class MatBt , class PrecS >
auto uzawa (MatA &A, SolA &invA, MatB &B, MatBt &Bt, PrecS &precS, double reduction=1e-3, int maxit=1000, int verbose=0)
 Convenience function for constructing an UzawaSolver. \tparem MatA derived from Dune::LinearOperator<X,X> More...
 
template<class Scalar , class Sequence >
auto nestUzawa (LinearProductSpace< Scalar, Sequence > const &z)
 Convenience function for creating Uzawa domain/range arguments. More...
 
template<class Scalar , class Sequence >
auto unnestUzawa (LinearProductSpace< Scalar, Sequence > const &z)
 Convenience function for unpacking Uzawa domain/range results. More...
 
template<class Entry , class A >
Dune::BlockVector< Entry, A > vertcat (Dune::BlockVector< Entry, A > const &x, Dune::BlockVector< Entry, A > const &y)
 
template<class Entry , class Index , class Prolongation , class MakeSmoother , class MakeCoarsePreconditioner >
auto makeAdditiveMultiGrid (NumaBCRSMatrix< Entry, Index > const &A, std::vector< Prolongation > const &prolongations, MakeSmoother const &makeSmoother, MakeCoarsePreconditioner const &makeCoarsePreconditioner, bool onlyLowerTriangle=false)
 Convenience function creating additive multigrid preconditioners for P1 elements. More...
 
template<class Entry , class Index , class GridMan >
auto makeBPX (NumaBCRSMatrix< Entry, Index > const &A, GridMan const &gridman, bool onlyLowerTriangle=false)
 Convenience function creating a BPX preconditioner for P1 elements. More...
 
template<class Entry , class Index , class FineSpace , class MakeSmoother , class MakeCoarseSmoother >
auto makeAdditivePMultiGrid (NumaBCRSMatrix< Entry, Index > A, FineSpace const &space, H1Space< typename FineSpace::Grid > const &p1Space, MakeSmoother const &makeSmoother, MakeCoarseSmoother const &makeCoarseSmoother, int coarseLevel=0, bool onlyLowerTriangle=false)
 Convenience function creating additive multigrid preconditioner of V-cycle type for higher order elements. More...
 
template<class StorageTag , class Entry , class Index , class FineSpace >
auto makePBPX (NumaBCRSMatrix< Entry, Index > A, FineSpace const &space, H1Space< typename FineSpace::Grid > const &p1Space, StorageTag storageTag, int coarseLevel=0, bool onlyLowerTriangle=false)
 Convenience function creating additive multigrid preconditioner of V-cycle type with domain decomposition and Jacobi smoother for higher order elements. More...
 
template<class FromSpace , class ToSpace >
Prolongation twoGridProlongation (FromSpace const &from, ToSpace const &to)
 Computes an interpolation matrix for transfer between P1 finite element spaces on two different grids. More...
 
template<class FromSpace , class ToSpace >
Prolongation nonNestedProlongation (FromSpace const &from, ToSpace const &to, double tolTrunc=0.1)
 Computes an interpolation matrix for transfer between P1 finite element spaces on two different (possibly non-nested) grids. More...
 
std::vector< ProlongationnonNestedProlognationStack (std::vector< Prolongation > ps)
 Computes a full column rank prolongation stack from a colum rank deficient prolongation stack. More...
 
template<class Space >
std::vector< ProlongationmakeNonNestedPstack (std::initializer_list< Space > spacelist, double tolTrunc=0.1)
 Computes an interpolation matrix for transfer between P1 finite element spaces on two different (possibly non-nested) grids. More...
 
template<class Space1 , class Space2 >
std::vector< ProlongationmakeJointPstack (Space1 space1, Space2 space2, int coarseLevel=0)
 Computes a (joint) prolongation stack for a geometry defined by two grids. More...
 
template<class Space , class Entry , class Index >
MultiGridStack< Prolongation, Entry, Index > makeAuxiliarySpaceMultigridStack (Space const &space, NumaBCRSMatrix< Entry, Index > const &A, double volumeRatio=100)
 creates a semi-geometric multigrid preconditioner based on an auxiliary space More...
 
template<class Entry , class Index , class Space >
auto makeMultigrid (NumaBCRSMatrix< Entry, Index > const &A, Space const &space, bool onlyLowerTriangle=false, DirectType directType=DirectType::MUMPS)
 Convenience function for creating a (multiplicative) multigrid preconditioner for elliptic equations. More...
 
template<typename Matrix >
auto makeDirectPreconditioner (Matrix &&A, DirectType directType=DirectType::MUMPS)
 Creates a direct solver for the given matrix. More...
 
template<int domainBlockSize, int rangeBlockSize, class Index >
auto makeDirectPreconditioner (NumaBCRSMatrix< Dune::FieldMatrix< float, rangeBlockSize, domainBlockSize >, Index > &&A, DirectType directType=DirectType::MUMPS)
 Creates a direct solver for the given matrix. This specialization is for matrices containing floats (single precision) as scalar entries. Since the Kaskade interface for direct solvers only works for doubles, the matrix is copied into a new matrix with double as scalar entries. Since the coarse grid matrix often is much smaller, this hopefully means neglectable overhead. More...
 
template<class SparseIndex = size_t, class CoarseSpace , class FineSpace >
NumaBCRSMatrix< Dune::FieldMatrix< typename FineSpace::Scalar, 1, 1 >, SparseIndex > prolongation (CoarseSpace const &coarseSpace, FineSpace const &fineSpace)
 Computes an interpolation-based prolongation matrix from a (supposedly) coarser space to a finer space. More...
 
template<class SparseIndex , class Mapper >
std::vector< NumaBCRSMatrix< Dune::FieldMatrix< typename Mapper::Scalar, 1, 1 >, SparseIndex > > prolongationStack (FEFunctionSpace< Mapper > const &space)
 Computes a stack of prolongation matrices for higher order finite element spaces. More...
 
std::ostream & operator<< (std::ostream &out, MGProlongation const &p)
 
template<class Entry , class Index >
auto conjugation (MGProlongation const &p, NumaBCRSMatrix< Entry, Index > const &a, bool onlyLowerTriangle=false)
 Creates a Galerkin projected Matrix \( P^T A P \) from a prolongation \( P \) and a symmetric matrix \( A \). More...
 
template<class GridMan >
std::vector< MGProlongationprolongationStack (GridMan const &gridman, int coarseLevel=0, size_t minNodes=0)
 Computes a sequence of prolongation matrices for P1 finite elements in hierarchical grids. More...
 
template<class GridMan >
std::vector< NumaBCRSMatrix< Dune::FieldMatrix< double, 1, 1 > > > deformedProlongationStack (GridMan const &gridman, int coarseLevel=0, size_t minNodes=0, bool interpolateAtShiftedPosition=true)
 Computes a sequence of prolongation matrices for P1 finite elements in hierarchical grids. More...
 
template<typename Prolongations , typename Entry , typename Index >
std::ostream & operator<< (std::ostream &out, MultiGridStack< Prolongations, Entry, Index > const &mgStack)
 
template<class GridMan , class Entry , class Index >
MultiGridStack< MGProlongation, Entry, Index > makeGeometricMultiGridStack (GridMan const &gridManager, NumaBCRSMatrix< Entry, Index > &&A, size_t minNodes=10000, bool onlyLowerTriangle=false)
 convenience routine for creating multigrid stacks based on geometric coarsening for P1 elements More...
 
template<class Entry , class Index >
MultiGridStack< MGProlongation, Entry, Index > makeAlgebraicMultigridStack (NumaBCRSMatrix< Entry, Index > &&A, Index n=0, bool onlyLowerTriangle=false)
 Creates stack of prolongations and projected Galerkin matrices. More...
 
template<typename FineSpace >
auto makeDeepProlongationStack (FineSpace const &space, int coarseLevel=0, int minNodes=0)
 Convenience routine for creating a deep prolongation stack from coarse to fine grid and on from P1 to higher order. More...
 
template<typename FineSpace , typename Matrix >
auto makePMultiGridStack (FineSpace const &space, Matrix &&A, bool onlyLowerTriangle)
 convenience routine for creating multigrid stacks based on coarsening by reducing the ansatz order from P to P1 More...
 
template<typename FineSpace , typename CoarseSpace , typename Matrix >
auto makePMultiGridStack (FineSpace const &fineSpace, Matrix &&fA, CoarseSpace const &coarseSpace)
 convenience routine for creating multigrid stacks between two spaces. More...
 
template<typename FineSpace , typename CoarseSpace , typename Matrix >
auto makePMultiGridStack (FineSpace const &fineSpace, Matrix &&fA, CoarseSpace const &coarseSpace, Matrix &&cA)
 convenience routine for creating multigrid stacks between two spaces. More...
 
template<class Scalar >
void bsplineDifferentiationMatrix (Dune::DynamicVector< Scalar > const &t, Dune::DynamicVector< Scalar > const &s, int p, Dune::DynamicMatrix< Scalar > &d)
 computes the differentiation matrix for bspline interpolation of order p on t More...
 
template<class Scalar >
void bsplineEvaluationMatrix (Dune::DynamicVector< Scalar > const &t, Dune::DynamicVector< Scalar > const &s, int p, Dune::DynamicMatrix< Scalar > &e)
 computes the evaluation on s matrix for bspline interpolation of order p on t More...
 
template<class Matrix , class Vectors , class ReactionDerivatives , class Solver >
Matrix::field_type sdcIterationStep (SDCTimeGrid const &grid, SDCTimeGrid::RealMatrix const &Shat, Solver const &solve, Matrix const &M, Matrix const &A, Vectors const &r, ReactionDerivatives const &f_u, Vectors const &u, Vectors &du)
 A single spectral defect correction iteration sweep. More...
 
template<class Matrix , class Vectors , class Solver >
Matrix::field_type sdcIMEXStep (SDCTimeGrid const &grid, SDCTimeGrid::RealMatrix const &Shat, Solver const &solve, Matrix const &M, Matrix const &A, Vectors const &r, Vectors const &u, Vectors &du)
 A single IMEX SDIRK spectral deferred correction sweep. More...
 
template<class Matrix , class Vectors , class ReactionDerivatives , class Solver >
Matrix::field_type sdcIterationStep2 (SDCTimeGrid const &grid, SDCTimeGrid::RealMatrix const &Shat, Solver const &solve, Matrix const &M, Matrix const &A, Vectors const &rUi, ReactionDerivatives const &f_u, Vectors const &Mdu, Vectors &du)
 A single spectral defect correction iteration sweep. More...
 
template<class Matrix , class Vectors , class ReactionDerivatives >
double waveformRelaxationStep2 (SDCTimeGrid const &grid, Matrix const &M, Matrix const &A, Vectors const &rUi, ReactionDerivatives const &f_u, Vectors &du)
 A single waveform relaxation iteration. More...
 
template<class Vector >
Vector::field_type maxNorm (std::vector< Vector > const &values)
 A function to compute the partial \(\max-\)norm or \(L^{\infty}-\)norm of a vector of vectors. If \(\mathbf{x}\) denotes a vector of vectors, where \(\mathbf{x} = \{ \mathbf{x_1},\ldots , \mathbf{x_n}\}^{T}\), then \(\| \mathbf{x} \|_{\infty} = \max_{1 \leq i \leq N} \|\mathbf{x_i}\|$\f. Here the norm \)|.| \( is some arbitrary norm and in the current template function it is implemented as a \)\max- \(norm. \tparam Vector, a vector type, usually Dune::DenseVector \param[in]values a vector of vectors. \return the \)\infty-. More...
 
template<class Vector >
Vector::field_type sdcExEulerIterationStep (Kaskade::SDCTimeGrid const &grid, std::vector< Vector > &yi, std::vector< Vector > &dyi, std::function< Vector(typename Vector::field_type, Vector const &)> rhsFunc, std::function< typename Vector::field_type(std::vector< Vector > const &)> normFunc, bool verbose=false)
 A single spectral defect correction iteration sweep based on explicit Euler method. More...
 
template<int d, class Real >
Real bezier (int p, int i, Dune::FieldVector< Real, d > const &x)
 Computes the i-th Bezier function of order p at the given point in the unit simplex. More...
 
constexpr int binomial (int n, int k)
 Computes the binomial coefficient \( \binom{n}{k} \). More...
 
template<size_t m>
size_t multinomial (std::array< size_t, m > const &ks)
 Computes the multinomial coefficient \( \binom{n}{k_1,\dots,k_m}\), where \( n = \sum_{i=1}^m k_i \). More...
 
constexpr int numberOfMultiindices (int d, int m)
 Computes the number of multiindices of order m and dimension d. More...
 
template<int d>
std::array< size_t, d > multiIndex (size_t m, size_t n)
 Random access to multiindices. More...
 
template<class It >
void next_multiindex (It first, It last, int const m)
 Computes the next nonnegative multiindex of order m. More...
 
std::string getDateAndTime ()
 
std::string getDate ()
 
std::string & appendDateAndTime (std::string &str)
 append current time and date to string str More...
 
std::string & appendDate (std::string &str)
 append current date to string str More...
 
std::vector< double > lobattoNodes (int n)
 Computes the n Lobatto nodes on [-1,1] including the interval end points. More...
 
std::vector< double > radauNodes (int n)
 Computes the n Radau nodes on [-1,1] including the right end point. More...
 
std::vector< double > gaussNodes (int n)
 Computes the n Gauß nodes on [-1,1] excluding the interval end points. More...
 
template<class Grid , class Type >
std::unique_ptr< Grid > createGrid (std::vector< Type > const &cubes)
 Extract simplicial grid from list of cubes. More...
 
template<class Grid , class Scalar , int dim, class EdgeLength >
std::unique_ptr< Grid > createCuboid (Dune::FieldVector< Scalar, dim > const &x0, Dune::FieldVector< Scalar, dim > const &dx, EdgeLength const &dh, bool symmetric=true)
 Creates a uniform simplicial grid on a rectangular or cuboid domain. More...
 
template<class Grid >
std::unique_ptr< Grid > createUnitSquare (double dh=1., bool symmetric=true)
 Creates a unit square, filled regularly. More...
 
template<class Grid >
std::unique_ptr< Grid > createUnitCube (double dh=1., bool symmetric=true)
 Creates a unit cube. More...
 
template<class Grid , class Scalar >
std::unique_ptr< Grid > createRectangle (Dune::FieldVector< Scalar, 2 > const &x0, Dune::FieldVector< Scalar, 2 > const &dx, Scalar dh, bool symmetric=true)
 Fill rectangle with squares. More...
 
template<class Grid , class Scalar , int dim>
std::unique_ptr< Grid > createLShape (Dune::FieldVector< Scalar, dim > const &x0, Scalar dx, Scalar dy, Dune::FieldVector< Scalar, dim > const &thickness, Scalar dh, bool symmetric=true)
 Fill L-shaped domain with cubes. More...
 
template<class Grid , class Scalar , int dim>
std::unique_ptr< Grid > createTShape (Dune::FieldVector< Scalar, dim > const &x0, Scalar dx, Scalar dy, Dune::FieldVector< Scalar, dim > const &thickness, Scalar dh, bool symmetric=true)
 Fill L-shaped domain with cubes. More...
 
template<class Grid , class Scalar , int dim>
std::unique_ptr< Grid > createTwoLayerCuboid (Dune::FieldVector< Scalar, dim > const &x0, Dune::FieldVector< Scalar, dim > const &dx1, Dune::FieldVector< Scalar, dim > const &dx2, Dune::FieldVector< Scalar, dim > const &dh1, Scalar dh2, bool symmetric=true)
 
template<class Grid , class Scalar , int dim>
std::unique_ptr< Grid > createTwoLayerCuboid (Dune::FieldVector< Scalar, dim > const &x0, Dune::FieldVector< Scalar, dim > const &dx1, Dune::FieldVector< Scalar, dim > const &dx2, Dune::FieldVector< Scalar, dim > const &dh1, Dune::FieldVector< Scalar, dim > const &dh2, bool symmetric=true)
 
template<class Grid >
std::unique_ptr< Grid > createHexahedron ()
 Creates a hexahedron consisting of five tetrahedra. More...
 
template<class Grid >
std::unique_ptr< Grid > createOctahedron (Dune::FieldVector< typename Grid::ctype, 3 > extent=Dune::FieldVector< typename Grid::ctype, 3 >(1.0))
 Creates an octahedron consisting of eight tetrahedra. More...
 
template<class Grid >
std::unique_ptr< Grid > createIcosahedron ()
 Creates an icosahedron consisting of 20 tetrahedra. More...
 
template<class Grid >
std::unique_ptr< Grid > createCylinder (double radius, double height, int layers, int circumEdges=6)
 Creates a cylinder. More...
 
template<class Grid , class Deformation >
std::unique_ptr< Grid > createCylinder (double radius, double height, int layers, int circumEdges, Deformation const &deformation)
 Creates a deformed cylinder. More...
 
template<class Grid >
std::unique_ptr< Grid > createPentagon (double radius=1)
 Creates an regular pentagon consisting of five triangles, centered at the origin and with radius r. More...
 
template<class Grid >
std::unique_ptr< Grid > createUshape (double l, double d, double eps)
 Creates an U-shaped domain. More...
 
bool getKaskadeOptions (int argc, char **argv, Options const &options)
 Supports the extraction of program option values from command line arguments. More...
 
template<class A >
auto moveUnique (A &&a)
 Creates a dynamically allocated object from an r-value reference. More...
 
template<class A >
duplicate (A const &a)
 Creates a copy of a given object. More...
 
template<class R >
power (R base, int exp)
 Computes integral powers of values in a multiplicative half-group. More...
 
template<class R >
square (R x)
 returns the square of its argument. More...
 
template<class R >
faculty (int n)
 Computes faculties. Is this somewhere in the standard? no. More...
 
constexpr int sqrti (int n)
 Computes floor(sqrt(n)) for integers n at compile time. More...
 
std::string createFileName (std::string const &desiredName, std::string const &ending=std::string(), bool useEnding=true, int length=3)
 create file name More...
 
bool createFolder (std::string folder_name)
 
std::string createFileNameInFolder (std::string folderName, std::string const &desiredName, std::string const &ending=std::string(), bool const useEnding=true, int const length=3)
 
template<class Entry >
EntryTraits< Entry >::real_type frobenius_norm2 (Entry const &x)
 
void equalWeightRanges (std::vector< size_t > &x, size_t n)
 Computes partitioning points such that the sum of weights in each partition is roughly the same. More...
 
template<class BlockIndex , class Index >
Index uniformWeightRangeStart (BlockIndex i, BlockIndex n, Index m)
 Computes partitioning points of ranges for uniform weight distributions. More...
 
template<class Index >
Index uniformWeightRange (Index j, Index n, Index m)
 Computes the range in which an index is to be found when partitioned for uniform weights. More...
 
template<class Func >
void parallelFor (Func const &f, int maxTasks=std::numeric_limits< int >::max())
 A parallel for loop that executes the given functor in parallel on different CPUs. More...
 
template<class Func >
void parallelFor (size_t first, size_t last, Func const &f, size_t nTasks=std::numeric_limits< size_t >::max())
 A parallel for loop that executes the given functor in parallel on different CPUs. More...
 
template<class Func >
void parallelForNodes (Func const &f, int maxTasks=std::numeric_limits< int >::max())
 A parallel for loop that executes the given functor in parallel on different NUMA nodes. More...
 
void runInBackground (std::function< void()> &f)
 Executes a function in a child process. More...
 
template<class T >
T & removeConst (T const &t)
 A convenience template for removing the const qualifier from references and pointers. More...
 
template<class T >
T * removeConst (T const *t)
 
Approximate integration matrices

The convergence properties of SDC are essentially defined by the selection of an approximate integration matrix \( \hat S \) acting as a lower triangular preconditioner for the spectral integration matrix \( S \). We provide several choices.

void eulerIntegrationMatrix (SDCTimeGrid const &grid, SDCTimeGrid::RealMatrix &Shat)
 Triangular approximate integration matrix \( \hat S \) corresponding to the implicit Euler integrator. More...
 
SDCTimeGrid::RealMatrix eulerIntegrationMatrix (SDCTimeGrid const &grid)
 Triangular approximate integration matrix \( \hat S \) corresponding to the implicit Euler integrator. More...
 
void luIntegrationMatrix (SDCTimeGrid const &grid, SDCTimeGrid::RealMatrix &Shat)
 Triangular approximate integration matrix \( \hat S \) corresponding to a specialized DIRK sweep. More...
 
SDCTimeGrid::RealMatrix luIntegrationMatrix (SDCTimeGrid const &grid)
 Triangular approximate integration matrix \( \hat S \) corresponding to a specialized DIRK sweep. More...
 
SDCTimeGrid::RealMatrix singleEulerIntegrationMatrix (SDCTimeGrid const &grid)
 Triangular approximate integration matrix \( \hat S \) corresponding to an Euler sweep with constant "step size". More...
 
SDCTimeGrid::RealMatrix SDIRKIntegrationMatrix (SDCTimeGrid const &grid)
 Triangular approximate integration matrix \( \hat S \) corresponding to an SDIRK sweep (i.e. with constant "step size"). More...
 

Variables

template<class Functional , int n>
constexpr bool symmetryCheck = Functional_Aux_Detail::checkSymmetry<Functional,n>::pass
 
template<class Functional >
constexpr bool hasInnerBoundaryCache
 Checks whether InnerBoundaryCache is declared in Functional. More...
 
IoOptions ioOptions_default
 
template<class Vec >
constexpr bool contiguousStorage = Crsutil_Detail::VectorTraits<Vec>::contiguous
 
template<class T >
constexpr int rank = ScalarDetail::Rank<T>::value
 Reports the rank of vector, matrix, and tensor types of static size. More...
 
std::mutex DuneQuadratureRulesMutex
 A global lock for the Dune::QuadratureRules factory, which is not thread-safe as of 2015-01-01. More...
 
boost::mutex refElementMutex
 A global lock for the Dune::GenericReferenceElement singletons, which are not thread-safe. More...
 

Detailed Description

Typedef Documentation

◆ CG

template<class X , class Xstar , class TimerPolicy = DoNotMeasureTime>
using Kaskade::CG = typedef CGBase<X,Xstar,CGImplementationType::STANDARD,TimerPolicy>

Standard preconditioned conjugate gradient method.

Template Parameters
Xtype of domain space element
Xstartype of image space element
TimerPolicyenable timers for dual pairings, axpy-operations, matrix-vector products and preconditioners with struct MeasureTime

Definition at line 16 of file linalg/cg.hh.

◆ D1Result

template<class TestVars , int row>
using Kaskade::D1Result = typedef Dune::FieldVector<typename TestVars::Scalar, TestVars::template Components<row>::m>

The return type of the d1() method of DomainCache and BoundaryCache.

This is a vector type with length given by the number of components of the test variable with index row.

Definition at line 212 of file functional_aux.hh.

◆ D2Result

template<class TestVars , int row, class AnsatzVars , int col>
using Kaskade::D2Result = typedef Dune::FieldMatrix<typename TestVars::Scalar, TestVars::template Components<row>::m, AnsatzVars::template Components<col>::m>

The return type of the d1() method of DomainCache and BoundaryCache.

This is a matrix type with rows given by the number of components of test variable with index row, and columns given by the number of components of the ansatz variable with index col.

Definition at line 224 of file functional_aux.hh.

◆ GridAngleFeatureDetector

template<class GridView >
using Kaskade::GridAngleFeatureDetector = typedef AngleFeatureDetector<typename GridView::IndexSet::IndexType, typename GridView::ctype,GridView::dimension>

Definition at line 480 of file boundaryInterpolation.hh.

◆ Hartmann03

Definition at line 66 of file penaltyFunctions.hh.

◆ MultiGridSolver

template<class Grid , int nComponents = 1>
using Kaskade::MultiGridSolver = typedef MultigridSolver<Grid,nComponents>

Definition at line 490 of file multiGridSolver.hh.

◆ PenaltyLN

Definition at line 167 of file elementary_functions.hh.

◆ PenaltyMonomial

template<int k>
using Kaskade::PenaltyMonomial = typedef PenaltyFunction<Monomial<k> >

Definition at line 105 of file elementary_functions.hh.

◆ Prolongation

Definition at line 28 of file amg.hh.

◆ QuadQuad

Definition at line 67 of file penaltyFunctions.hh.

◆ QuadraticAndLog

Definition at line 68 of file penaltyFunctions.hh.

◆ QuadraticAndPolynomial

template<int k>
using Kaskade::QuadraticAndPolynomial = typedef PenaltyFunction<Polynomial<2,k> >

Definition at line 70 of file penaltyFunctions.hh.

◆ RCG

template<class X , class Xstar , class TimerPolicy = DoNotMeasureTime>
using Kaskade::RCG = typedef CGBase<X,Xstar,CGImplementationType::REGULARIZED,TimerPolicy>

Regularized preconditioned conjugate gradient method for nonconvex problems. Denote the used operator by \(A\) and the preconditioner by \(P\). Then if a direction of negative curvature is encountered \(A\) is implicitly replaced by the regularization $ \(A+\thetaP\). Then the IterateType::CG method is restarted for the regularized problem. The necessary quantities are available during the standard cg implementation, thus the costs for computing the regularization are neglishible.

Template Parameters
Xtype of domain space element
Xstartype of image space element
TimerPolicyenable timers for dual pairings, axpy-operations, matrix-vector products and preconditioners with struct MeasureTime

Definition at line 39 of file linalg/cg.hh.

◆ ScalarType

template<class Type >
using Kaskade::ScalarType = typedef typename GetScalar<Type>::type

Extracts the scalar field type from linear algebra data types.

Different conventions for specifying the scalar field type as member type alias are in use in Dune (field_type) and Kaskade (Scalar). This type alias extracts the scalar type from any of those.

Definition at line 110 of file duneInterface.hh.

◆ TCG

template<class X , class Xstar , class TimerPolicy = DoNotMeasureTime>
using Kaskade::TCG = typedef CGBase<X,Xstar,CGImplementationType::TRUNCATED,TimerPolicy>

Truncated preconditioned conjugate gradient method for nonconvex problems. Stops iteration if a direction of negative curvature is encountered.

Template Parameters
Xtype of domain space element
Xstartype of image space element
TimerPolicyenable timers for dual pairings, axpy-operations, matrix-vector products and preconditioners with struct MeasureTime

Definition at line 26 of file linalg/cg.hh.

◆ TPCG

template<class X , class Xstar , class Regularization = NoRegularization>
using Kaskade::TPCG = typedef TCG<X,Xstar,Regularization>

Definition at line 291 of file tcg.hh.

◆ UniformPartitionedMapperCombinerArgument

template<class SFData >
using Kaskade::UniformPartitionedMapperCombinerArgument = typedef RangeView<typename std::vector<boost::compressed_pair<size_t,SFData> >::const_iterator>

The sequence type that is provided as first argument to the call of the Combiner constructor.

This is a lightweight view type and should be kept by value, not by reference.

Definition at line 194 of file partitionedspace.hh.

◆ UniformScalarMapperCombinerArgument

template<class SFData >
using Kaskade::UniformScalarMapperCombinerArgument = typedef RangeView<typename std::vector<boost::compressed_pair<size_t,SFData> >::const_iterator>

The sequence type that is provided as first argument to the call of the Combiner constructor.

This is a lightweight view type and should be kept by value, not by reference.

Definition at line 175 of file scalarspace.hh.

Enumeration Type Documentation

◆ AcceptanceTest

enum class Kaskade::AcceptanceTest
strong
Enumerator
InitialGuess 
FailedRecompute 
Failed 
NormalStepFailed 
TangentialStepFailed 
Passed 
LeftAdmissibleDomain 

Definition at line 19 of file algorithm_base.hh.

◆ CGImplementationType

enum class Kaskade::CGImplementationType
strong
Enumerator
STANDARD 
TRUNCATED 
REGULARIZED 
HYBRID 

Definition at line 27 of file cgImplementation.hh.

◆ Convergence

enum class Kaskade::Convergence
strong
Enumerator
Missed 
Achieved 

Definition at line 20 of file algorithm_base.hh.

◆ Endian

enum class Kaskade::Endian
strong
Enumerator
Unknown 
Big 
Little 
BigWord 
LittleWord 

Definition at line 19 of file check_endianness.hh.

◆ ErrorNorm

enum class Kaskade::ErrorNorm
strong
Enumerator
Energy 
L2 
H1 
H1_half 

Definition at line 39 of file errorDistribution.hh.

◆ GaussSeidelPreconditionerMode

Enumerator
FORWARD 
BACKWARD 
SYMMETRIC 

Definition at line 34 of file GaussSeidelPreconditioner.hh.

◆ QPConvexificationStrategy

Enumerator
DONOTHING 
INCREMENTALADDITION 
EIGENVALUEADDITION 

Definition at line 59 of file qp.hh.

◆ QPStructure

enum class Kaskade::QPStructure
strong

A flag that determines whether the QP solver shall work with dense or sparse linear algebra.

Enumerator
DENSE 
SPARSE 

Definition at line 64 of file qp.hh.

◆ RegularityTest

enum class Kaskade::RegularityTest
strong
Enumerator
Failed 
Passed 

Definition at line 18 of file algorithm_base.hh.

◆ schwarzType

Enumerator
DIAGONAL 
COMPLETE 

Definition at line 25 of file additiveschwarz.hh.

Function Documentation

◆ add()

double Kaskade::add ( const double &  x1,
const std::pair< double, int > &  x2 
)

◆ addToFunctionSpaceElement()

template<int rbegin, int rend, class FSE , class CoeffVector >
void Kaskade::addToFunctionSpaceElement ( CoeffVector const &  coeffVector,
FSE &  fse 
)

Definition at line 1750 of file comp_step.hh.

◆ adjustEdgeTangents() [1/2]

template<class Index , class ctype >
void Kaskade::adjustEdgeTangents ( BoundaryStar< Index, ctype, 2 > &  star,
std::map< std::array< Index, 2 >, Dune::FieldVector< ctype, 2 > > &  orientedEdges,
GeometricFeatureDetector< Index, ctype, 2 > const &  features 
)

◆ adjustEdgeTangents() [2/2]

template<class Index , class ctype >
void Kaskade::adjustEdgeTangents ( BoundaryStar< Index, ctype, 3 > &  star,
std::map< std::array< Index, 2 >, Dune::FieldVector< ctype, 3 > > &  orientedEdges,
GeometricFeatureDetector< Index, ctype, 3 > const &  features 
)

Detects feature edges and adjusts the edge tangent vectors accordingly.

Feature edges are determined according to two criteria:

  • the normals \( n_1, n_2 \) of the incident faces deviate from each other significantly, i.e. \( n_1^T n_2 < \alpha \), where \( \alpha \) is the feature edge threshold
  • the set \( \{p_1,p_2\} \) of incident faces' patch types occurs in the featureEdges list (the order of \( p_1, p_2 \) is not relevant).

If any of these two criteria is satisfied, the edge is classified as feature edge.

If exactly two feature edges meet in one vertex, and their normalized emanating tangent vectors \( t_a, t_b \) are approximately parallel (i.e. \( \|t_a + t_b\| < \beta \), where \( \beta \) is the feature curve threshold), these two tangent vectors are modified such as to be collinear.

Parameters
starvertices and faces around a boundary vertex
[out]orientedEdgesall boundary half-edges, indexed

Referenced by Kaskade::BoundaryTangents< dim, Index, ctype >::BoundaryTangents().

◆ appendDate()

std::string & Kaskade::appendDate ( std::string &  str)

append current date to string str

◆ appendDateAndTime()

std::string & Kaskade::appendDateAndTime ( std::string &  str)

append current time and date to string str

◆ approximateGlobalValues()

template<class Space >
void Kaskade::approximateGlobalValues ( Space const &  space,
typename Space::Grid::template Codim< 0 >::Entity const &  cell,
DynamicMatrix< Dune::FieldMatrix< typename Space::Scalar, Space::sfComponents, 1 > > &  globalValues,
DynamicMatrix< Dune::FieldMatrix< typename Space::Scalar, 1, 1 > > &  coeff 
)
Parameters
cellthe cell on which to interpolate. This has to be contained in the space's grid view.

Definition at line 159 of file fetransfer.hh.

Referenced by interpolateGloballyWeak().

◆ assignIfNegative()

template<class Value >
void Kaskade::assignIfNegative ( Value &  val,
Value  newVal 
)

◆ bigEndian()

bool Kaskade::bigEndian ( )

Return true if byte order is big endian.

◆ biggerThanAbs()

bool Kaskade::biggerThanAbs ( const std::pair< double, int > &  x1,
const std::pair< double, int > &  x2 
)

◆ bisection()

template<class Equation >
double Kaskade::bisection ( double  a,
double  b,
Equation const &  f,
double  accuracy,
int &  iterations 
)

Performs bisection algorithm to find a zero of a.

Definition at line 290 of file homotopy_base.hh.

Referenced by corrTangent(), and InteriorPointTangentialPredictor< IPF, DomainVector >::muOnSuccess().

◆ boundaryL2Norm()

template<class FEFunction >
auto Kaskade::boundaryL2Norm ( FEFunction const &  function)

boundaryL2Norm computes the L2-norm of an FE function on the whole boundary of the underlying grid.

Parameters
functionis the FE function to be integrated.
Template Parameters
FEFunctionis the type of the integrand.
Returns
value of integral

Definition at line 135 of file norms.hh.

◆ bsplineDifferentiationMatrix()

template<class Scalar >
void Kaskade::bsplineDifferentiationMatrix ( Dune::DynamicVector< Scalar > const &  t,
Dune::DynamicVector< Scalar > const &  s,
int  p,
Dune::DynamicMatrix< Scalar > &  d 
)

computes the differentiation matrix for bspline interpolation of order p on t

B-Splines of order p define an interpolation \( u(t) \) for all \( t \) between the \( n+1 \) timepoints \( t_i \) with given values \( u(t_i) \). The derivative's values \( u'(t_i) \) at the \( m+1 \) timepoints \( s_i \) can then be computed as a linear combination of the values \( u(t_i) \):

\[ u'(s_i) = \sum_{k=0}^n d_{ik} u(t_k) \]

For \( p=n \), the interpolation is classical polynomial interpolation.

Parameters
[in]tthe time points from which to interpolate. Entries have to be strictly increasing.
[in]sthe time points from which to interpolate. Entries have to be strictly increasing.
[in]pthe order of B-spline interpolation (nonnegative)
[out]dthe \( m+1 \times n+1 \) differentiation matrix

◆ bsplineEvaluationMatrix()

template<class Scalar >
void Kaskade::bsplineEvaluationMatrix ( Dune::DynamicVector< Scalar > const &  t,
Dune::DynamicVector< Scalar > const &  s,
int  p,
Dune::DynamicMatrix< Scalar > &  e 
)

computes the evaluation on s matrix for bspline interpolation of order p on t

B-Splines of order p define an interpolation \( u(t) \) for all \( t \) between the \( n+1 \) timepoints \( t_i \) with given values \( u(t_i) \). The values \( u(s_i) \) can then be computed as a linear combination of the values \( u(t_i) \):

\[ u(s_i) = \sum_{k=0}^n e_{ik} u(t_k) \]

For \( p=n \), the interpolation is classical polynomial interpolation.

Parameters
[in]tthe time points from which to interpolate. Entries have to be strictly increasing.
[in]sthe time points from which to interpolate. Entries have to be strictly increasing.
[in]pthe order of B-spline interpolation (nonnegative)
[out]ethe \( m+1 \times n+1 \) evaluation matrix

◆ castMatrixEntries()

template<class ScalarA , class ScalarB , int r, int c>
Dune::FieldMatrix< ScalarA, r, c > Kaskade::castMatrixEntries ( Dune::FieldMatrix< ScalarB, r, c > const &  m)

Copies matrix into another matrix with possibly different entry type (e.g. from double to float).

Definition at line 29 of file converter.hh.

◆ clearVarArgs()

template<class ArgYL , class ArgYH , class ArgUL , class ArgUH , class ArgPL , class ArgPH >
void Kaskade::clearVarArgs ( ArgYL &  yl,
ArgYH &  yh,
ArgUL &  ul,
ArgUH &  uh,
ArgPL &  pl,
ArgPH &  ph 
)

◆ column()

template<class Scalar , int n, int m>
Dune::FieldVector< Scalar, n > Kaskade::column ( Dune::FieldMatrix< Scalar, n, m > const &  A,
int  j 
)

Extracts the j-th column of the given matrix A.

Definition at line 445 of file fixdune.hh.

Referenced by Kaskade::DerivativeChecker< Functional, checkD1, SparseInt >::checkSecondDerivative(), and Kaskade::DerivativeCheck::d2().

◆ component()

template<int m, class Scalar , class Sequence >
auto & Kaskade::component ( LinearProductSpace< Scalar, Sequence > &  x)

◆ computeBoundaryStars()

template<class GridView >
std::map< typename GridView::IndexSet::IndexType, BoundaryStar< typename GridView::IndexSet::IndexType, typename GridView::ctype, GridView::dimension > > Kaskade::computeBoundaryStars ( GridView const &  gv)

Computes the boundary stars (i.e. corners around a vertex) for all boundary vertices of the grid view.

Parameters
gvthe grid view to use, usually the level 0 coarse grid view.
Returns
a map that maps indices of boundary vertices to their star

Definition at line 275 of file boundaryInterpolation.hh.

Referenced by Kaskade::BoundaryTangents< dim, Index, ctype >::BoundaryTangents().

◆ computeH1HalfError()

template<class ArgU , class ArgY , class ArgP >
double Kaskade::computeH1HalfError ( ArgU const &  u,
ArgY const &  y,
ArgP const &  p 
)

◆ computeL2Error()

template<class ArgU , class ArgY , class ArgP >
double Kaskade::computeL2Error ( ArgU const &  u,
ArgY const &  y,
ArgP const &  p 
)

◆ computeSimplexSfPermutation()

template<class ShapeFunctionSet >
void Kaskade::computeSimplexSfPermutation ( ShapeFunctionSet const &  sfs,
int const *  vPermutation,
int *  sfPermutation,
int *  sign 
)

For a given shape function set

  • sfs which is defined on a simplex and permits a simple coupling, and a given permutation
  • vPermutation of the vertices of the simplex defining an affine spatial transformation \( f \), this function returns a permutation
  • sfPermutation of the shape functions and a sign vector
  • sign, such that

\[ \mathrm{sign[k]}\phi_{\mathrm{sfPermutation[k]}}(f(x)) = \phi_k(x). \]

Definition at line 401 of file pshapefunctions.hh.

◆ conjugation()

template<class Scalar , class Entry >
void Kaskade::conjugation ( Dune::BCRSMatrix< Entry > &  C,
Dune::BCRSMatrix< Dune::FieldMatrix< Scalar, 1, 1 > > const &  P,
Dune::BCRSMatrix< Entry > const &  A,
bool  onlyLowerTriangle = false 
)

◆ conjugationPattern()

template<class Scalar , class Entry >
std::unique_ptr< Dune::MatrixIndexSet > Kaskade::conjugationPattern ( Dune::BCRSMatrix< Dune::FieldMatrix< Scalar, 1, 1 > > const &  P,
Dune::BCRSMatrix< Entry > const &  A,
bool  onlyLowerTriangle = false 
)

Creates the sparsity pattern of \( P^T A P\).

Out now: onlyLowerTriangle. If parameter is set true, we will only touch the lower triangle of A and only create the lower triangle of the resulting matrix P^T A P

Definition at line 43 of file conjugation.hh.

Referenced by Kaskade::MultiGridSolver_Detail::MultiLevelStack< Grid, Scalar, nComponents, Matrix >::MultiLevelStack().

◆ copyFromFunctionSpaceElement()

template<int rbegin, int rend, class FSE , class CoeffVector >
void Kaskade::copyFromFunctionSpaceElement ( FSE const &  fse,
CoeffVector &  coeffVector 
)

Definition at line 1744 of file comp_step.hh.

◆ copyHeader()

template<class GridView >
void Kaskade::copyHeader ( GridView const &  gridView,
std::string const &  file_in,
std::string const &  file_out 
)

This method copies/adapts the header of an Amira-file containing additional information about the materials. (e.g which material id belongs to which material)

Parameters
gridViewgridView, i.e. LeafGridView
file_infile, from which the additional material data is read (header in Amira-file)
file_outfile to be written in. Should be the same file as in the call of writeAMIRAFile

Definition at line 210 of file amira.hh.

Referenced by writeAMIRAFile().

◆ createFileName()

std::string Kaskade::createFileName ( std::string const &  desiredName,
std::string const &  ending = std::string(),
bool  useEnding = true,
int  length = 3 
)

create file name

Checks if a file called <fileName><ending> exists. If this is the case tries fileName0...0ending - fileName9...9ending, where the number of added digits can be controlled via variable length

Parameters
desiredNamedesired file name
ending(i.e. '.doc', '.cpp', '.vtu', ...)
useEndingtrue: create file name with ending, false: use ending only for checking file name candidates
lengthlength of the extension if file name exists

◆ createFileNameInFolder()

std::string Kaskade::createFileNameInFolder ( std::string  folderName,
std::string const &  desiredName,
std::string const &  ending = std::string(),
bool const  useEnding = true,
int const  length = 3 
)

◆ createFolder()

bool Kaskade::createFolder ( std::string  folder_name)

◆ ddxpy_template()

template<class Assembler , class Lin , int rbegin, int rend, int cbegin, int cend>
void Kaskade::ddxpy_template ( Lin &  lin,
AbstractFunctionSpaceElement y,
AbstractFunctionSpaceElement const &  x 
)

Definition at line 1756 of file comp_step.hh.

◆ deleteAllAboveLevel()

template<class Grid , class T >
void Kaskade::deleteAllAboveLevel ( CellData< Grid, T > &  ic,
int  maxlevel 
)

Delete all error entries of entities which are above a certain level.

This may be sensible, if the geometry resolution is coarse, such that too deep refinement is not useful

Definition at line 250 of file celldata.hh.

◆ dgetrf_()

void Kaskade::dgetrf_ ( int *  m,
int *  n,
double *  a,
int *  lda,
int *  ipiv,
int *  info 
)

◆ dgetrs_()

void Kaskade::dgetrs_ ( char *  trans,
int *  n,
int *  nrhs,
double *  a,
int *  lda,
int *  ipiv,
double *  b,
int *  ldb,
int *  info 
)

◆ directInverseOperator() [1/2]

template<class GOP , int firstRow, int lastRow, int firstCol, int lastCol>
InverseLinearOperator< DirectSolver< typename AssembledGalerkinOperator< GOP, firstRow, lastRow, firstCol, lastCol >::Domain, typename AssembledGalerkinOperator< GOP, firstRow, lastRow, firstCol, lastCol >::Range > > Kaskade::directInverseOperator ( AssembledGalerkinOperator< GOP, firstRow, lastRow, firstCol, lastCol > const &  A,
DirectType  directType,
MatrixProperties  properties 
)

◆ directInverseOperator() [2/2]

template<class Matrix , class Domain , class Range >
InverseLinearOperator< DirectSolver< Domain, Range > > Kaskade::directInverseOperator ( MatrixRepresentedOperator< Matrix, Domain, Range > const &  A,
DirectType  directType = DirectType::UMFPACK,
MatrixProperties  properties = MatrixProperties::GENERAL 
)

Definition at line 626 of file direct.hh.

◆ endianness()

Endian Kaskade::endianness ( )

Return endianness.

◆ errorL2()

template<class Indicator >
Indicator Kaskade::errorL2 ( Indicator const &  indi)

Scale error indicators for H^1, such that L_2 indicators are the result.

This is done by the heuristics that the L_2 error is h * H^1-error.

Definition at line 316 of file celldata.hh.

◆ evalCellProperties()

template<class View , class Space >
CellData< typenameSpace::Grid, Dune::FieldVector< double, 1 > >::CellDataVector Kaskade::evalCellProperties ( Space const &  space)

Evaluate WeakFunctionViews and construct CellData.

Definition at line 360 of file functionviews.hh.

◆ evaluateData()

template<class OriginalEvaluators , class ExtensionEvaluators , class Functional , class ArgYH , class ArgYE , class ArgUH , class ArgUE , class ArgPH , class ArgPE >
void Kaskade::evaluateData ( OriginalEvaluators &  originalEvaluators,
ExtensionEvaluators &  extendedEvaluators,
Functional const &  f,
ArgYH &  yl,
ArgYE &  yh,
ArgUH &  ul,
ArgUE &  uh,
ArgPH &  pl,
ArgPE &  ph,
double  w 
)

◆ evaluateGlobalShapeFunctions()

template<class Space >
void Kaskade::evaluateGlobalShapeFunctions ( Space const &  space,
Cell< typename Space::GridView > const &  cell,
std::vector< LocalPosition< typename Space::GridView > > const &  x,
DynamicMatrix< Dune::FieldMatrix< typename Space::Scalar, Space::sfComponents, 1 > > &  sfValues 
)

Definition at line 93 of file fetransfer.hh.

◆ extendMarks()

template<typename FSElement >
void Kaskade::extendMarks ( FSElement &  fse,
FSElement const &  fu,
int  neighboursForMarking 
)

Definition at line 333 of file celldata.hh.

Referenced by Kaskade::Bridge::extendMarkings().

◆ forEachCell()

template<class GridView , class Functor >
void Kaskade::forEachCell ( GridView const &  gridView,
Functor  functor 
)

DEPRECATED: use range based for loops and Dune::elements() directly. iterates over each cell and applies functor to cell. Each cell is visited exactly once.

Definition at line 33 of file forEach.hh.

Referenced by markCells().

◆ forEachCellAndEachFace()

template<class GridView , class Functor >
void Kaskade::forEachCellAndEachFace ( GridView const &  gridView,
Functor  functor 
)

iterates over each cell and applies functor to cell and then iterates over each face of cell and applies functor to face

Definition at line 110 of file forEach.hh.

◆ forEachFace()

template<class GridView , class Functor >
void Kaskade::forEachFace ( GridView const &  gridView,
Functor  functor 
)

DEPRECATED: use range based for loops and Dune::intersections() directly.iterates over each face and applies functor to face. Each boundary face is visited exactly once and each inner face is visited exactly twice (from each neighbouring cell) and so the functor is applied twice to inner faces.

Definition at line 52 of file forEach.hh.

Referenced by forEachInnerFace().

◆ forEachFaceOfCell()

template<class GridView , class Functor >
void Kaskade::forEachFaceOfCell ( GridView const &  gridView,
Functor  functor 
)

same as forEachFace, but the functor is applied to the face and the cell from which the face is visited

Definition at line 63 of file forEach.hh.

◆ forEachInnerFace()

template<class GridView , class Functor >
void Kaskade::forEachInnerFace ( GridView const &  gridView,
Functor  functor 
)

iterates over each inner face and applies functor to face. Each inner face is visited exactly twice (and so functor is applied twice).

Definition at line 99 of file forEach.hh.

◆ forEachVertex()

template<class GridView , class Functor >
void Kaskade::forEachVertex ( GridView const &  gridView,
Functor  functor 
)

DEPRECATED: use range based for loops and Dune::vertices() directly. iterates over each vertex and applies functor to vertex. Each vertex is visited exactly once.

Definition at line 42 of file forEach.hh.

◆ frobenius_norm2()

template<class Entry >
EntryTraits< Entry >::real_type Kaskade::frobenius_norm2 ( Entry const &  x)

◆ getBCRSIndicesFromTriplet()

template<class SparseInt >
std::vector< std::vector< SparseInt > > Kaskade::getBCRSIndicesFromTriplet ( SparseInt  nrows,
std::vector< SparseInt > const &  ridx,
std::vector< SparseInt > const &  cidx,
int  nr = 1,
int  nc = 1 
)

Sorts the sparse matrix nonzero positions into row buckets.

From the row and column indices of a sparse matrix with scalar entries, e.g., in triplet format, obtain the row and column indices of a sparse matrix with nr-by-nc block-entries, as in Dune::BCRSMatrix<Dune::FieldMatrix<Scalar,nr,nc>>. The indices are stored by row.

Parameters
nrowsnumber of rows of BCRS target matrix (i.e. rows of triplet source / nr)
ridxvector of row indices
cidxvector of column indices
nrrow size of sparse matrix entries
nccolumn size of sparse matrix entries

Definition at line 456 of file crsutil.hh.

Referenced by Kaskade::AssemblyDetail::Fill< Dune::BCRSMatrix< Dune::FieldMatrix< Scalar, 1, 1 >, Allocator > >::apply().

◆ getDate()

std::string Kaskade::getDate ( )

◆ getDateAndTime()

std::string Kaskade::getDateAndTime ( )

◆ gridIterate() [1/2]

template<class VariableList , class Collector , class Functions , class Spaces >
void Kaskade::gridIterate ( VariableList const &  vars,
Functions const &  functions,
Spaces const &  spaces,
Collector f 
)

A function that supports general iterations over a spatial domain and supports efficient evaluation of FE functions at the iterated quadrature points. This is a low-level function working directly on variable lists and function lists. There's a convenience overload working on VariableSets.

Template Parameters
Collectora type implementing the Collector concept

For each quadrature point \( \xi \) in all cells \( T \), this calls

\[ f(T, i, \xi, w, u), \]

where \( i \) is the cell index, \( u \) is the sequence of function values and \( w \) is the integration weight. This is performed in parallel on several copies of \( f \). After the integration, the provided collector joins the data of its copies.

Parameters
varsa heterogeneous container of VariableDescription structures
functionsa heterogeneous container of FE functions or function views that can be evaluated given an Evaluator of the associated space.
spacesa heterogeneous container of pointers to FE function spaces. VariableDescription classes that give the mapping of functions in data to their associated spaces.
fthe functor that does the work. On each quadrature point, its operator() is called with a heterogeneous container of the values of the functions in data.

Definition at line 121 of file iterate_grid.hh.

Referenced by gridIterate(), scaledTwoNormSquared(), and uniformEmbeddedErrorEstimation().

◆ gridIterate() [2/2]

template<class VariableSet , class Collector >
void Kaskade::gridIterate ( VariableSet const &  functions,
Collector f 
)

A function that supports general iterations over a spatial domain and supports efficient evaluation of FE functions at the iterated quadrature points.

This is a convenience overload for the usual case that the FE spaces are just those listed in the VariableDescriptions.

Definition at line 148 of file iterate_grid.hh.

◆ hdivShapeFunctionSet()

template<class ctype , int dimension, class T = double>
HdivShapeFunctionSetContainer< ctype, dimension, T >::value_type const & Kaskade::hdivShapeFunctionSet ( Dune::GeometryType  type,
int  order 
)

Returns a Hdiv shape function set for given reference element type and given polynomial order. Singleton function.

Definition at line 542 of file nedelecshapefunctions.hh.

◆ hierarchicExtensionShapeFunctionSet()

template<class ctype , int dimension, class Scalar >
HierarchicExtensionShapeFunctionSetContainer< ctype, dimension, Scalar >::value_type const & Kaskade::hierarchicExtensionShapeFunctionSet ( Dune::GeometryType  type,
int  order 
)

Returns a Hierarchic shape function set for given reference element type and given polynomial order. Singleton function.

Definition at line 750 of file hierarchicshapefunctions.hh.

◆ hierarchicShapeFunctionSet()

template<class ctype , int dimension, class Scalar >
HierarchicShapeFunctionSetContainer< ctype, dimension, Scalar >::value_type const & Kaskade::hierarchicShapeFunctionSet ( Dune::GeometryType  type,
int  order 
)

Returns a Hierarchic shape function set for given reference element type and given polynomial order. Singleton function.

Definition at line 570 of file hierarchicshapefunctions.hh.

◆ horzcat() [1/4]

template<class Scalar , int n, int m>
auto Kaskade::horzcat ( Dune::FieldMatrix< Scalar, n, m > const &  a)

Definition at line 381 of file fixdune.hh.

◆ horzcat() [2/4]

template<class Scalar , int n, int m, class ... Rest>
auto Kaskade::horzcat ( Dune::FieldMatrix< Scalar, n, m > const &  a,
Rest ...  rest 
)

Definition at line 387 of file fixdune.hh.

◆ horzcat() [3/4]

template<class Scalar , int n>
auto Kaskade::horzcat ( Dune::FieldVector< Scalar, n > const &  c1)

Definition at line 328 of file fixdune.hh.

Referenced by horzcat().

◆ horzcat() [4/4]

template<class Scalar , int n>
Dune::FieldMatrix< Scalar, n, 3 > Kaskade::horzcat ( Dune::FieldVector< Scalar, n > const &  col1,
Dune::FieldVector< Scalar, n > const &  col2,
Dune::FieldVector< Scalar, n > const &  col3 
)

Definition at line 429 of file fixdune.hh.

◆ insertMatrixBlockEntries()

template<class BMatrix >
void Kaskade::insertMatrixBlockEntries ( BMatrix &  globalMatrix,
BMatrix const &  matrixBlock,
typename BMatrix::size_type  startRow,
typename BMatrix::size_type  startCol 
)

Add entries of a sparse matrix block to a global sparse matrix, which already has the suitable sparsity pattern assigned.

Definition at line 182 of file matrixBlocks.hh.

◆ insertMatrixBlockIndices() [1/2]

template<class Entry >
void Kaskade::insertMatrixBlockIndices ( Dune::MatrixIndexSet &  globalIndexSet,
Dune::BCRSMatrix< Entry > const &  matrixBlock,
Dune::MatrixIndexSet::size_type  startRow,
Dune::MatrixIndexSet::size_type  startCol 
)

Add indices of a sparse matrix block to a global sparse matrix (creator).

Definition at line 164 of file matrixBlocks.hh.

◆ insertMatrixBlockIndices() [2/2]

template<class Entry , class Index >
void Kaskade::insertMatrixBlockIndices ( NumaCRSPatternCreator< Index > &  globalCreator,
NumaBCRSMatrix< Entry, Index > const &  matrixBlock,
typename NumaBCRSMatrix< Entry, Index >::size_type  startRow,
typename NumaBCRSMatrix< Entry, Index >::size_type  startCol 
)

Add indices of a sparse matrix block to a global sparse matrix (creator).

Definition at line 131 of file matrixBlocks.hh.

◆ insertVectorBlock()

template<class BVector >
void Kaskade::insertVectorBlock ( BVector &  globalVector,
BVector const &  vectorBlock,
typename BVector::size_type  startIdx 
)

Add entries of a vector block to a global vector.

Definition at line 203 of file matrixBlocks.hh.

◆ integral()

template<class WeakFunctionView , class Space >
auto Kaskade::integral ( WeakFunctionView const &  f,
Space const &  space 
)

Definition at line 301 of file integration.hh.

◆ lagrangeShapeFunctionSet()

template<class ctype , int dimension, class Scalar = double, bool restricted = false>
LagrangeShapeFunctionSetContainer< ctype, dimension, Scalar, restricted >::value_type const & Kaskade::lagrangeShapeFunctionSet ( Dune::GeometryType  type,
int  order 
)

Returns a Lagrange shape function set for given reference element type and given polynomial order. Singleton function.

Template Parameters
restricteddocme!

Definition at line 872 of file lagrangeshapefunctions.hh.

◆ LeastSquares()

void Kaskade::LeastSquares ( SLAPMatrix< double >  a,
std::vector< double > const &  b,
std::vector< double > &  x 
)

Solve linear least squares problem, given by a*x=b.

Preferrably used like the following:

LeastSquares(SLAPMatrix<double>(A),b,x)

Here A models the Dune Matrix concept.

Referenced by Kaskade::PolynomialModel::computeCoefficients().

◆ linearizationDifference()

template<class Functional >
LinearizationDifferenceAt< Functional > Kaskade::linearizationDifference ( Functional const &  f,
typename Functional::OriginVars::VariableSet const &  u1,
typename Functional::OriginVars::VariableSet const &  u2 
)

Convenience routine: construct linearization without having to know the type of the functional.

Definition at line 885 of file functional_aux.hh.

◆ littleEndian()

bool Kaskade::littleEndian ( )

Return true if byte order is little endian.

◆ localH1SemiNorm()

template<class Function >
CellData< typenameFunction::Space::Grid, typenameFunction::ValueType >::CellDataVector Kaskade::localH1SemiNorm ( Function const &  f)

local (cellwise) H1-semi-norms

Definition at line 100 of file norms.hh.

◆ localL2Norm()

template<class Function >
CellData< typenameFunction::Space::Grid, typenameFunction::ValueType >::CellDataVector Kaskade::localL2Norm ( Function const &  f)

local (cellwise) L2-norms

Definition at line 114 of file norms.hh.

◆ localProlongationMatrix()

template<class ChildSpace , class FatherSpace >
void Kaskade::localProlongationMatrix ( ChildSpace const &  childSpace,
Cell< typename ChildSpace::Grid > const &  child,
FatherSpace const &  fatherSpace,
Cell< typename FatherSpace::Grid > const &  father,
DynamicMatrix< Dune::FieldMatrix< typename ChildSpace::Scalar, 1, 1 > > &  prolongation,
typename ChildSpace::Mapper::ShapeFunctionSet const &  childSfs,
typename FatherSpace::Mapper::ShapeFunctionSet const &  fatherSfs 
)

Computes a local prolongation matrix for global shape functions from father cell to child cell.

Returns
In the notation of LocalToGlobalMapperConcept ( \(\Phi_{ij}\) is the matrix of shape function values \(\phi_j\) at interpolation nodes \( \xi_i \), and \(\Psi \) is the diagonal matrix of converter values \( \psi(x_i)\)), the returned value is

\[ p \leftarrow \Phi_c^+ \Psi_c^{-1} \Psi_f \Phi_f. \]

This means, \( p \in \R^{n_c \times n_f} \) is a matrix, where the entries \( p_{ij} \) give the contribution of the \( j \)-th father global shape function to the \( i \)-th child global shape function. \( n_f \) and \( n_c \) are the number of father and child shape functions, respectively.

Although suggestively called father and child, the only geometric relation required is that all interpolation nodes of the child cell are also contained inside the father cell.

Note that the FE spaces on father and child may be different, providing interpolation matrices for different FE approximations. The requirement is that the scalar type and the number of shape function components coincide.

Parameters
childSfsa shape function set to use for the child space on the given child cell (which need not be contained in the child space's grid view)
fatherSfsa shape function set to use for the father space on the given father cell (which need not be contained in the fathers space's grid view)

Definition at line 195 of file fetransfer.hh.

Referenced by localProlongationMatrix(), Kaskade::CoarseningDetail::GetLocalTransferProjection< Cell >::operator()(), and Kaskade::TransferData< Space, CoarseningPolicy >::transferMatrix().

◆ makeAuxiliarySpaceMultigridStack()

template<class Space , class Entry , class Index >
MultiGridStack< Prolongation, Entry, Index > Kaskade::makeAuxiliarySpaceMultigridStack ( Space const &  space,
NumaBCRSMatrix< Entry, Index > const &  A,
double  volumeRatio = 100 
)

creates a semi-geometric multigrid preconditioner based on an auxiliary space

Template Parameters
Spacethe finite element space for which the stiffness matrix A has been computed. Currently this is restricted to a P1 finite element space.
Todo:
: implement for general spaces
Template Parameters
Entrythe type of matrix entries in the stiffness matrix
Returns
a multigrid stack with prolongations and (Galerkin-projected) stiffness matrices

Definition at line 378 of file amg.hh.

◆ markByBulkCriterion()

template<class Grid , class T >
CellData< Grid, int >::CellDataVector Kaskade::markByBulkCriterion ( CellData< Grid, T > &  ic,
double  Theta 
)

Create a CellDataVector, in which the largest entities of *this are marked by 1, using the "bulk criterion".

To be used together with GridManager::mark(...)

Definition at line 224 of file celldata.hh.

Referenced by Kaskade::Bridge::AdaptiveGrid< GridManager, Estimate >::mark().

◆ markByMaxCriterion()

template<class Grid , class T >
CellData< Grid, int >::CellDataVector Kaskade::markByMaxCriterion ( CellData< Grid, T > &  ic,
double  Ratio 
)

Create a CellDataVector, in which the largest entities of *this are marked by 1, using the "max criterion".

Definition at line 262 of file celldata.hh.

◆ markCells()

template<class GridManager , class Functor >
void Kaskade::markCells ( GridManager gridManager,
Functor  functor 
)

Definition at line 121 of file forEach.hh.

◆ markWithinInterval()

template<class Grid , class T >
CellData< Grid, int >::CellDataVector Kaskade::markWithinInterval ( CellData< Grid, T > &  ic,
double  lower,
double  upper,
int  times 
)

Create a CellDataVector, in which the largest entities of *this are marked by 1, using the "max criterion".

Definition at line 280 of file celldata.hh.

◆ matrix_to_triplet()

template<class Matrix , class OutIteratorI , class OutIteratorD >
void Kaskade::matrix_to_triplet ( Matrix const &  a,
OutIteratorI  i,
OutIteratorI  j,
OutIteratorD  z 
)

converts a matrix to the coordinate (triplet) format.

The Matrix type needs to satisfy the Dune matrix interface.

Definition at line 418 of file crsutil.hh.

◆ MatrixKT_A_K()

void Kaskade::MatrixKT_A_K ( SLAPMatrix< double >  A,
SLAPMatrix< double > &  K,
SLAPMatrix< double > &  out 
)

◆ MatrixMultiplication()

void Kaskade::MatrixMultiplication ( SLAPMatrix< double >  A,
SLAPMatrix< double > &  B,
SLAPMatrix< double > &  AB 
)

◆ maxNorm()

template<class Vector >
Vector::field_type Kaskade::maxNorm ( std::vector< Vector > const &  values)

A function to compute the partial \(\max-\)norm or \(L^{\infty}-\)norm of a vector of vectors. If \(\mathbf{x}\) denotes a vector of vectors, where \(\mathbf{x} = \{ \mathbf{x_1},\ldots , \mathbf{x_n}\}^{T}\), then \(\| \mathbf{x} \|_{\infty} = \max_{1 \leq i \leq N} \|\mathbf{x_i}\|$\f. Here the norm \)|.| \( is some arbitrary norm and in the current template function it is implemented as a \)\max- \(norm. \tparam Vector, a vector type, usually Dune::DenseVector \param[in]values a vector of vectors. \return the \)\infty-.

  \brief A function to compute the partial \f$1-\f$norm or \f$L^{1}-\f$norm of a vector of vectors.
  If \f$\mathbf{x}\f$ denotes a vector of vectors, where \f$\mathbf{x} = \{ \mathbf{x_1},\ldots , \mathbf{x_n}\}^{T}\f$,
  then \f$\| \mathbf{x} \|_1 = \sum_{i=1}^N \|\mathbf{x_i}\|$\f. Here the norm \f$\|.\| \f$ is some arbitrary norm and
  in the current template function it is implemented as a \f$1-\f$norm.

  \tparam Vector, a vector type, usually Dune::DenseVector

  \param[in]values a vector of vectors.

  \return the \f$1-\f$norm of the vector values, usually a double.
*/

template<class Vector> typename Vector::field_type oneNorm(std::vector<Vector> const& values) { return std::accumulate(values.begin(),values.end(),0.0,[](double init, Vector const& v) { return init + v.one_norm(); }); // auto norm = 0.0;

// for (auto i = 0u; i < values.size(); ++i) // //one_norm: public member function of Dune::DenseVector // norm += values[i].one_norm();

// return norm; }

/**

Definition at line 54 of file sdc_euler.hh.

◆ moveEvaluatorsToCell() [1/2]

template<class Evaluators , class Cell >
void Kaskade::moveEvaluatorsToCell ( Evaluators evals,
Cell const &  cell 
)

◆ moveEvaluatorsToCell() [2/2]

template<class Evaluators , class Cell , class Index >
void Kaskade::moveEvaluatorsToCell ( Evaluators evals,
Cell const &  cell,
Index  idx 
)

Moves all provided evaluators to the given cell with provided index.

As index lookups may be relatively expensive, providing the index here once for all spaces/evaluators may improve performance.

Definition at line 1900 of file functionspace.hh.

◆ nedelecShapeFunctionSet()

template<class ctype , int dimension, class T >
NedelecShapeFunctionSetContainer< ctype, dimension, T >::value_type const & Kaskade::nedelecShapeFunctionSet ( Dune::GeometryType  type,
int  order 
)

Returns a Nedelec shape function set for given reference element type and given polynomial order. Singleton function.

Definition at line 309 of file nedelecshapefunctions.hh.

◆ nestedDissection()

std::array< std::vector< size_t >, 3 > Kaskade::nestedDissection ( std::vector< std::pair< size_t, size_t > > const &  edges,
std::vector< size_t > const &  edgeStart 
)

Computes a nested dissection of the given graph.

Parameters
edgesa sequence \( E \) of edges \( (v,w) \), given as pairs of vertices, sorted lexicographically. The edges are assumed to be symmetric, i.e. \( (v,w)\in E \Rightarrow (w,v)\in E \), and shall not contain the diagonal, i.e. \( (v,v) \not\in E \).
edgeStartan index sequence such that all edges \( (v,w) \) for some particular \( v \) are in the half-open range [edgeStart(v),edgeStart(v+1)[ of edges.

The vertices are assumed to be a contiguous range \( 0, \dots, n-1 \) of integers.

Returns
a tuple \( (v_1, v_2, s) \) of vertices, forming the two sets \( v_1, v_2 \) separated by \( s \).

If no proper partitioning can be found, both \( v_1, v_2 \) are empty and \( s \) contains all vertices. If the graph is disconnected, \( s \) is empty.

◆ nestUzawa()

template<class Scalar , class Sequence >
auto Kaskade::nestUzawa ( LinearProductSpace< Scalar, Sequence > const &  z)

Convenience function for creating Uzawa domain/range arguments.

If the UzawaSolver is created by providing AssembledGalerkinOperator data for A, B, and Bt, their domain and range spaces are LinearProductSpace types containing (usually) just one component. Then, domain and range of the UzawaSolver are doubly nested, [[u],[p]], but extracting two consecutive components from an assembler leads to the flat LinearProductSpace [u,p]. This function takes [u,p] and outputs [[u],[p]].

Definition at line 299 of file uzawa.hh.

◆ operator+()

template<class Index , class Index2 >
NumaCRSPattern< Index > Kaskade::operator+ ( NumaCRSPattern< Index > const &  pa,
NumaCRSPattern< Index2 > const &  pb 
)

Definition at line 2037 of file threadedMatrix.hh.

◆ operator<<() [1/8]

template<class B , class A >
std::ostream & Kaskade::operator<< ( std::ostream &  out,
Dune::BCRSMatrix< B, A > const &  a 
)

Definition at line 474 of file crsutil.hh.

◆ operator<<() [2/8]

template<class Entry , bool diagonal, class SortedRowIdx , class SortedColIdx >
std::ostream & Kaskade::operator<< ( std::ostream &  out,
LocalMatrix< Entry, diagonal, SortedRowIdx, SortedColIdx > const &  A 
)

Definition at line 146 of file localMatrices.hh.

◆ operator<<() [3/8]

std::ostream & Kaskade::operator<< ( std::ostream &  out,
MGProlongation const &  p 
)

◆ operator<<() [4/8]

template<typename Prolongations , typename Entry , typename Index >
std::ostream & Kaskade::operator<< ( std::ostream &  out,
MultiGridStack< Prolongations, Entry, Index > const &  mgStack 
)

Definition at line 855 of file prolongation.hh.

◆ operator<<() [5/8]

template<class Entry , int ... Sizes>
std::ostream & Kaskade::operator<< ( std::ostream &  out,
Tensor< Entry, Sizes... > const &  t 
)

Definition at line 307 of file tensor.hh.

◆ operator<<() [6/8]

template<typename Scalar , typename SparseIndexInt >
std::ostream & Kaskade::operator<< ( std::ostream &  s,
MatrixAsTriplet< Scalar, SparseIndexInt > const &  mat 
)

Definition at line 773 of file triplet.hh.

◆ operator<<() [7/8]

template<typename Scalar >
std::ostream & Kaskade::operator<< ( std::ostream &  s,
std::vector< Scalar > const &  vec 
)

Definition at line 47 of file dune_bridge.hh.

◆ operator<<() [8/8]

std::ostream & Kaskade::operator<< ( std::ostream &  stream,
VTKReader::FunctionInfo const &  info 
)

◆ pseudoinverse()

template<class Scalar >
void Kaskade::pseudoinverse ( SLAPMatrix< Scalar >  A,
SLAPMatrix< Scalar > &  Ainv 
)

Computes the pseudoinverse.

  • A The input matrix. Will be overwritten with unspecified data.
  • Ainv the pseudoinverse. Needs to have the shape of A transposed.

◆ rangeView()

template<class It >
RangeView< It > Kaskade::rangeView ( It  first,
It  last 
)

Convenience function for constructing range views on the fly.

Definition at line 59 of file views.hh.

Referenced by Kaskade::UniformPartitionedMapper< Implementation, Tagger, SFData >::combiner(), and Kaskade::UniformScalarMapper< Implementation, SFData >::combiner().

◆ relativeError()

template<class Variables , class OutIter , class Functions , class Spaces , class Scaling >
void Kaskade::relativeError ( Variables const &  varDesc,
Functions const &  f1,
Functions const &  f2,
Functions const &  f3,
Spaces const &  spaces,
Scaling const &  scaling,
OutIter  out 
)

For each variable, this function computes the following pair of values:

\[ (\|f_1-f_2\|,\|f_3\|) \]

Template Parameters
Variablesa boost::fusion sequence of variable descriptions
OutIteran output iterator with value type std::pair(double,double)
Functionsa boost::fusion sequence of finite element functions, referenced by the variable descriptions
Spacesa boost::fusion sequence of pointers to spaces, referenced by the variable descriptions
Scaling

Definition at line 382 of file iterate_grid.hh.

Referenced by Kaskade::Limex< Eq >::estimateError().

◆ removeConst()

template<class T >
T * Kaskade::removeConst ( T const *  t)

Definition at line 36 of file typeTraits.hh.

◆ reshapeBlocks() [1/2]

template<int dimIn, int dimOut>
Dune::BlockVector< Dune::FieldVector< double, dimOut > > Kaskade::reshapeBlocks ( Dune::BlockVector< Dune::FieldVector< double, dimIn > > const &  b)

reshapes a Dune::BlockVector block structure

Reshapes a Dune::BlockVector with entry-type Dune::FieldVector<double,dimIn> to entry type Dune::FieldVector<double,dimOut>, i.e. the size of the contained blocks are reshaped. Block sizes must be such that dimIn == 1 or dimOut == 1.

Template Parameters
dimInreshape block size from dimIn
dimOutto desired block size dimOut
Parameters
bA Dune::BlockVector<> whose entry-type is to be reshaped

Definition at line 1037 of file dynamicMatrix.hh.

◆ reshapeBlocks() [2/2]

template<class Kb , int nb, int mb, class Ka , int na, int ma>
DynamicMatrix< Dune::FieldMatrix< Kb, nb, mb > > Kaskade::reshapeBlocks ( DynamicMatrix< Dune::FieldMatrix< Ka, na, ma > > const &  A)

Definition at line 64 of file reshape.hh.

◆ scaledTwoNormSquared()

template<class Variables , class Functions , class Spaces , class Scaling , class Collector >
void Kaskade::scaledTwoNormSquared ( Variables const &  varDesc,
Functions const &  f,
Spaces const &  spaces,
Scaling const &  scaling,
Collector sum 
)

Evaluates the square of the scaled \(L^2\)-norms of a set of functions.

Template Parameters
Variablesa boost::fusion sequence of VariableDescription types
Functionsa boost::fusion sequence of FE function types (or types providing the required interface subset)
Spaces
Scaling
Collector
Parameters
varDesca boost::fusion sequence of VariableDescription entries, e.g. obtained from VariableSetDescription::Variables()
fa matching boost::fusion sequence of FE functions

The required interface subset of FE functions includes the value() and the space() methods.

Definition at line 304 of file iterate_grid.hh.

Referenced by coarsening(), Kaskade::EmbeddedErrorEstimator< VariableSetDescription, Scaling >::estimate(), and relativeError().

◆ sdcExEulerIterationStep()

template<class Vector >
Vector::field_type Kaskade::sdcExEulerIterationStep ( Kaskade::SDCTimeGrid const &  grid,
std::vector< Vector > &  yi,
std::vector< Vector > &  dyi,
std::function< Vector(typename Vector::field_type, Vector const &)>  rhsFunc,
std::function< typename Vector::field_type(std::vector< Vector > const &)>  normFunc,
bool  verbose = false 
)

A single spectral defect correction iteration sweep based on explicit Euler method.

This function performs one spectral defect correction (SDC) iteration for a system of ODE's of the form:

\[y'(t) = f(y(t)),\,\, y(0) = y_0 \textrm{ and } t \in [0, T].\]

using the explicit Euler method on a given time grid. Here SDC is interpreted as fixed point iteration. Given an approximate solution \(y^{[j]} \in \mathbb{P}_N\), the error function

\[\delta^{[j]} = y - y^{[j]}\]

satisfies the defect equation

\[\delta^{[j]}'(t) = y'(t) - y^{[j]}'(t) = f(y(t)) - y^{[j]}'(t).\]

The equivalent Picard equation is

\[\delta^{[j]}(t) = \int_{\tau=0}^t \left( f(y^{[j]}(\tau)+\delta^{[j]}(\tau)) - {y^{[j]}}'(\tau) \right) \,d\tau.\]

Evaluated at the grid nodes \( t_i\) we obtain

\[ \delta^{[j]}_i &= \delta^{[j]}_{i-1} + \int_{\tau=t_{i-1}}^{t_i} \left( f(y^{[j]}(\tau)+\delta^{[j]}(\tau)) - {y^{[j]}}'(\tau) \right) \,d\tau \\ &= \delta^{[j]}_{i-1} + \int_{\tau=t_{i-1}}^{t_i} \left( f(y^{[j]}(\tau)+\delta^{[j]}(\tau)) - f(y^{[j]}(\tau))\right) \,d\tau \\ &\quad + \int_{\tau=t_{i-1}}^{t_i} \hspace{-0.5em}f(y^{[j]}(\tau)) \,d\tau - ( y^{[j]}_i-y^{[j]}_{i-1}) \]

starting at \(\delta_0^{[j]} = 0.\) Using left looking rectangular rule for approximating the first integral, and the canonical quadrature by polynomial interpolation on the nodes \( t_1,\ldots t_N\) for second integral, approximate values \( \hat{\delta}_i^{[j]}\) for \( \delta_i^{[j]}\) can be evaluated. With the left looking rectangular rule, we obtain the explicit scheme

\[ \hat\delta^{[j]}_i &= \hat\delta^{[j]}_{i-1} + (t_i-t_{i-1}) \left( f(y^{[j]}_{i-1}+\hat{\delta}^{[j]}_{i-1}) - f(y^{[j]}_{i-1})\right) + \sum_{k=1}^N S_{ik} f(y^{[j]}_k) - y^{[j]}_i+y^{[j]}_{i-1}, \]

where the entries of the spectral quadrature matrix \( S \in \mathbb{R}^{N \times N}\) are defined in terms of the Lagrange polynomials \(L_k \in \mathbb{P}_N\) satisfying \(L_k(t_i) = \delta_{ik}\) as

\[ S_{ik} = \int_{\tau=t_{i-1}}^{t_i} L_k(\tau) \,d\tau, \quad i,k =1,\dots, N. \]

An improved approximation \( y^{[j+1]}\) is then obtained by polynomial interpolation of \(\hat \delta^{[j]}_i \),

\[y^{[j+1]} = y^{[j]} + \hat\delta^{[j]}.\]

The norm of the correction \(\hat\delta^{[j]}\) is returned.

Template Parameters
Vector,avector type, usually Dune::DenseVector.
Parameters
[in]gridthe collocation time grid
[out]yistores the current iterate of the solution \(y\).
[out]dyiis the approximate correction \(\delta y \)
[in]rhsFuncis the function which represents the right hand side \(f\) and is used in th computation of \( \delta y\).
[in]normFuncrepresents the norm that would be used in the computation of norm of \( \delta y\).
[in]verbosea boolean used to print out the iterates of \(y\).
Returns
the norm of dyi, the type of the norm is determined by input parameter normFunc.

Definition at line 117 of file sdc_euler.hh.

Referenced by Kaskade::EulerSDC< Vector, TimeGrid >::integrate(), and Kaskade::EulerSDC< Vector, TimeGrid >::integrateTOL().

◆ spaceTransfer()

template<class Fu1 , class Fu2 >
void Kaskade::spaceTransfer ( Fu1 &  f1,
Fu2 const &  f2 
)

DEPRECATED. Use interpolateGlobally instead.

Definition at line 1119 of file fetransfer.hh.

Referenced by Kaskade::Bridge::SpaceTransfer::operator()().

◆ submatrix()

template<class Target , class Source , class RowIndices , class ColIndices >
Target Kaskade::submatrix ( Source const &  A,
RowIndices const &  ri,
ColIndices const &  ci 
)
related

◆ SymmetricEigenvalues()

void Kaskade::SymmetricEigenvalues ( SLAPMatrix< double >  a,
std::vector< double > &  eig 
)

◆ transpose()

template<class T , typename = std::enable_if_t<std::is_arithmetic<T>::value>>
T Kaskade::transpose ( x)

Definition at line 750 of file dynamicMatrix.hh.

Referenced by Kaskade::Elastomechanics::HyperelasticVariationalFunctional< HyperelasticEnergy, StrainTensor >::cauchyStress(), Kaskade::NumaBCRSMatrix< Entry, Index >::conjugation(), Kaskade::ThreadedMatrixDetail::MatrixEntry< To, From, scalarsMatch >::copy(), Kaskade::Elastomechanics::LinearizedGreenLagrangeTensor< Scalar, dim, byValue >::d0(), Kaskade::Elastomechanics::GreenLagrangeTensor< Scalar, dim, byValue >::d0(), Kaskade::Elastomechanics::SurfaceGreenLagrangeTensor< Scalar, dim, byValue >::d0(), Kaskade::Elastomechanics::ExtendedGreenLagrangeTensor< Scalar, dim, byValue >::d0(), Kaskade::Cofactor< dimension, Source >::d0(), Kaskade::Elastomechanics::SurfaceGreenLagrangeTensor< Scalar, dim, byValue >::d1(), Kaskade::Elastomechanics::ExtendedGreenLagrangeTensor< Scalar, dim, byValue >::d1(), Kaskade::Cofactor< dimension, Source >::d1(), Kaskade::Elastomechanics::LinearizedGreenLagrangeTensor< Scalar, dim, byValue >::d1(), Kaskade::Elastomechanics::GreenLagrangeTensor< Scalar, dim, byValue >::d1(), Kaskade::Elastomechanics::SurfaceGreenLagrangeTensor< Scalar, dim, byValue >::d2(), Kaskade::Elastomechanics::ExtendedGreenLagrangeTensor< Scalar, dim, byValue >::d2(), Kaskade::Cofactor< dimension, Source >::d2(), Kaskade::Elastomechanics::GreenLagrangeTensor< Scalar, dim, byValue >::d2(), Kaskade::Cofactor< dimension, Source >::d3(), Kaskade::BoundaryInterpolationDisplacement< GridView >::derivative(), Kaskade::VectorialConverterBase< GridView >::global(), Kaskade::ScalarConverter< Cell, Scalar >::global(), Kaskade::ThreadedMatrixDetail::CopyMatrixToChunk< Entry, Matrix, true, transposed, Index >::init(), Kaskade::ThreadedMatrixDetail::CopyMatrixToChunk< Entry, Matrix, false, true, Index >::init(), and Kaskade::DynamicMatrix< K >::transpose().

◆ TransposedMatrixMultiply()

void Kaskade::TransposedMatrixMultiply ( SLAPMatrix< double >  A,
std::vector< double > &  in,
std::vector< double > &  out 
)

◆ tripletToCompressedColumn()

template<class Scalar , class Index >
void Kaskade::tripletToCompressedColumn ( Index  nRows,
Index  nCols,
size_t  nNonZeros,
std::vector< Index > const &  ridx,
std::vector< Index > const &  cidx,
std::vector< Scalar > const &  values,
std::vector< Index > &  Ap,
std::vector< Index > &  Ai,
std::vector< Scalar > &  Az 
)

Converts a matrix in triplet format to a compressed column format.

Template Parameters
Scalarthe matrix entry type
Indexthe row/column index type

Referenced by Kaskade::SUPERLUFactorization< Scalar >::SUPERLUFactorization(), and Kaskade::UMFFactorization< Scalar, UMFPackIndex >::UMFFactorization().

◆ umfpack_solve()

void Kaskade::umfpack_solve ( std::vector< int > const &  ridx,
std::vector< int > const &  cidx,
std::vector< double > const &  values,
std::vector< double > const &  b,
std::vector< double > &  x 
)

◆ unmarkOutOf()

template<class Grid >
CellData< Grid, int >::CellDataVector Kaskade::unmarkOutOf ( CellData< Grid, int > const &  ic,
Dune::FieldVector< typename Grid::ctype, Grid::dimension >  center,
double  radius 
)

Create a CellDataVector, in which the largest entities of *this are marked by 1, using the "max criterion".

Definition at line 296 of file celldata.hh.

◆ unnestUzawa()

template<class Scalar , class Sequence >
auto Kaskade::unnestUzawa ( LinearProductSpace< Scalar, Sequence > const &  z)

Convenience function for unpacking Uzawa domain/range results.

This unwraps nested LinearProductSpace arguments.

Parameters
za nested Uzawa domain/range type of structure [[u],[p]]
Returns
a flattend representation of structure [u,p]

Definition at line 319 of file uzawa.hh.

◆ uzawa()

template<class MatA , class SolA , class MatB , class MatBt , class PrecS >
auto Kaskade::uzawa ( MatA &  A,
SolA &  invA,
MatB &  B,
MatBt &  Bt,
PrecS &  precS,
double  reduction = 1e-3,
int  maxit = 1000,
int  verbose = 0 
)

Convenience function for constructing an UzawaSolver. \tparem MatA derived from Dune::LinearOperator<X,X>

Template Parameters
SolAderived from Dune::InverseOperator<X,X>
MatBderived from Dune::LinearOperator<X,Y>
MatBtderived from Dune::LinearOperator<Y,X>
PrecSderived from Dune::Preconditioner<Y,Y>

Definition at line 280 of file uzawa.hh.

◆ vectorFromSequence() [1/5]

template<class InIter >
InIter Kaskade::vectorFromSequence ( double &  x,
InIter  iter 
)

Definition at line 97 of file crsutil.hh.

◆ vectorFromSequence() [2/5]

template<class K , int size, class InIter >
InIter Kaskade::vectorFromSequence ( Dune::FieldVector< K, size > &  v,
InIter  iter 
)

Definition at line 111 of file crsutil.hh.

◆ vectorFromSequence() [3/5]

template<class InIter >
InIter Kaskade::vectorFromSequence ( float &  x,
InIter  iter 
)

Definition at line 104 of file crsutil.hh.

◆ vectorFromSequence() [4/5]

template<class Space , int m, class InIter >
InIter Kaskade::vectorFromSequence ( FunctionSpaceElement< Space, m > &  v,
InIter  in 
)

◆ vectorFromSequence() [5/5]

template<class K , class InIter >
InIter Kaskade::vectorFromSequence ( std::vector< K > &  v,
InIter  iter 
)

Definition at line 135 of file crsutil.hh.

◆ vectorToSequence() [1/4]

template<class OutIter >
OutIter Kaskade::vectorToSequence ( double  x,
OutIter  iter 
)

◆ vectorToSequence() [2/4]

template<class K , int size, class OutIter >
OutIter Kaskade::vectorToSequence ( Dune::FieldVector< K, size > const &  v,
OutIter  iter 
)

Definition at line 45 of file crsutil.hh.

◆ vectorToSequence() [3/4]

template<class OutIter >
OutIter Kaskade::vectorToSequence ( float  x,
OutIter  iter 
)

Definition at line 37 of file crsutil.hh.

◆ vectorToSequence() [4/4]

template<class K , class OutIter >
OutIter Kaskade::vectorToSequence ( std::vector< K > const &  v,
OutIter  iter 
)

Definition at line 84 of file crsutil.hh.

◆ vertcat()

template<class Entry , class A >
Dune::BlockVector< Entry, A > Kaskade::vertcat ( Dune::BlockVector< Entry, A > const &  x,
Dune::BlockVector< Entry, A > const &  y 
)

Definition at line 31 of file vectorOps.hh.

◆ vertexids()

void Kaskade::vertexids ( int  d,
int  c,
int  k,
int *  idx 
)
inline

Computes the d-c+1 local vertex indices of the vertices incident to the k-th subentity of codimension c in the reference simplex of dimension d.

Parameters
dspatial dimension of the reference simplex
ccodimension of the considered subentity
knumber of the subentity (among all of given codimension c)
idxoutput iterator, where d-c+1 values are stored

Definition at line 117 of file gridcombinatorics.hh.

Referenced by computeBoundaryStars(), Kaskade::ContinuousHierarchicMapperImplementation< Scalar, GV, ShapeFunctionFilter >::entityIndex(), Kaskade::ContinuousHierarchicExtensionMapperImplementation< Scalar, GV, ShapeFunctionFilter >::entityIndex(), and Kaskade::BoundaryInterpolationDetail::getIsBoundaryFace().

◆ writeAMIRAFile()

template<class GridView , class VariableSet >
void Kaskade::writeAMIRAFile ( GridView const &  gridView,
VariableSet const &  vars,
std::string  file_out,
IoOptions  options = ioOptions_default,
Dune::BlockVector< Dune::FieldVector< double, 1 > >  materialData = Dune::BlockVector<Dune::FieldVector<double, 1>>(),
std::string  file_in = "" 
)

This procedure writes data in AmiraMesh with cell material data to ascii/binary format, e.g. for visualization in AMIRA software.

Parameters
gridViewgridView, i.e. LeafGridView
descriptionvariable set description
varsdata of variables
file_outname of output file
optionsdefines the format for the output,e.g., ascii/binary
materialmaterial data of underlying grid. Typically called as material.coefficients(), where material is a is a FunctionSpaceElement.
file_inthe Amira-input file the material data was read from

Definition at line 276 of file amira.hh.

◆ writeMarc()

template<class Material >
void Kaskade::writeMarc ( Material const &  material,
std::string const &  filename,
double const  scale = 1.0,
IoOptions  options = IoOptions() 
)

Writes grid and material IDs given as FE function to a Marc input file.

This creates an input file for the Marc finite element solver by MSC Software. The created file is intended for heat simulations (not mechanics), and provides dummy thermal material parameters which need to be fixed before submitting the file to MARC.

The underlying grid must contain just one type of cell.

Parameters
materiala scalar integer-valued piecewise constant FE function defining the material id
filenamefile name (without trailing ".marc" suffix)
scalea scaling factor for the geometry. All lengths and positions are scaled by this factor.

Definition at line 69 of file marcwriter.hh.

◆ writeToMatlab()

template<class Assembler >
void Kaskade::writeToMatlab ( Assembler const &  assembler,
std::string const &  path,
std::string const &  basename,
int  precision = 16 
)

Definition at line 237 of file matlab.hh.

Variable Documentation

◆ contiguousStorage

template<class Vec >
constexpr bool Kaskade::contiguousStorage = Crsutil_Detail::VectorTraits<Vec>::contiguous
constexpr

Definition at line 167 of file crsutil.hh.

◆ ioOptions_default

IoOptions Kaskade::ioOptions_default
extern

◆ symmetryCheck

template<class Functional , int n>
constexpr bool Kaskade::symmetryCheck = Functional_Aux_Detail::checkSymmetry<Functional,n>::pass
constexpr

Definition at line 249 of file functional_aux.hh.