DUNE-ACFEM (unstable)

Operators which originate from a weak formulation of a PDE. More...

Classes

class  Dune::ACFem::EllipticOperator< Model, DomainFunction, RangeFunction, Constraints, QuadratureTraits >
 A class defining an elliptic operator. More...
 

Functions

template<class Functional , class DiscreteFunction , std::enable_if_t<(IsLinearFunctional< Functional >::value &&IsDiscreteFunction< DiscreteFunction >::value), int > = 0>
void Dune::ACFem::l2Projection (const Functional &phi, DiscreteFunction &result)
 Compute the L2-projection of the given functional to a discrete space. More...
 
template<class GridFunction , class DiscreteFunction , std::enable_if_t<(IsWrappableByConstLocalFunction< GridFunction >::value &&IsDiscreteFunction< DiscreteFunction >::value), int > = 0>
void Dune::ACFem::l2Projection (GridFunction &&fct, DiscreteFunction &result)
 Perform an L2-projection for any GridFunction.
 
virtual void Dune::ACFem::EllipticOperator< Model, DomainFunction, RangeFunction, Constraints, QuadratureTraits >::operator() (const DomainFunctionType &u, RangeFunctionType &w) const
 application operator, works "on the fly" More...
 
void Dune::ACFem::DifferentiableEllipticOperator< JacobianOperator, Model, Constraints, QuadratureTraits >::jacobian (const DomainFunctionType &u, JacobianOperatorType &jOp) const
 method to setup the jacobian of the operator for storage in a matrix
 

Detailed Description

Operators which originate from a weak formulation of a PDE.

Function Documentation

◆ l2Projection()

template<class Functional , class DiscreteFunction , std::enable_if_t<(IsLinearFunctional< Functional >::value &&IsDiscreteFunction< DiscreteFunction >::value), int > = 0>
void Dune::ACFem::l2Projection ( const Functional &  phi,
DiscreteFunction &  result 
)

Compute the L2-projection of the given functional to a discrete space.

This is meant for continuous finite elements. Consequently, we have to do "hard" work here and assemble and invert the mass matrix by means of a CG method. Fortunately, the condition of the mass-matrix should be bounded independently of the mesh width after applying Jacobian preconditioning.

Parameters
FunctionalThe Domain type, has to satisfiy the DiscreteLinearFunctional interface.
DiscreteFunctionThe Range type. Some Fem::DiscreteFunction.

See, e.g., L2InnerProductFunctional for an example of what may be passed as argument ot L2Projection::operator() in a more concrete setting. However, any DiscreteLinearFunctional realization should do. E.g. for the DiracDistribution this projection also successfully computes an L2-Riesz representation. Any linear functional will do, as a FEM space is of finite dimension. However, if the underlying non-discrete functional is discontinuous, then it is unlikely that there will be a uniform bound for the L2-norm of the representative which is independent from mesh refinement.

Note
We cannot obey the Fem::Operator interface as we map DiscreteLinearFunctional instances, not Fem::Function instances, to Fem::DiscreteFunction instances.

References Dune::ACFem::ellipticFemScheme(), and Dune::ACFem::PDEModel::massModel().

◆ operator()()

template<class Model , class DomainFunction , class RangeFunction , class Constraints , template< class > class QuadratureTraits>
void Dune::ACFem::EllipticOperator< Model, DomainFunction, RangeFunction, Constraints, QuadratureTraits >::operator() ( const DomainFunctionType &  u,
RangeFunctionType &  w 
) const
virtual

application operator, works "on the fly"

[Compute skeleton terms: iterate over intersections]

Creative Commons License   |  Legal Statements / Impressum  |  Hosted by TU Dresden  |  generated with Hugo v0.80.0 (Apr 25, 22:37, 2024)