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()
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
-
Functional The Domain type, has to satisfiy the DiscreteLinearFunctional interface. DiscreteFunction The 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()()
|
virtual |
application operator, works "on the fly"
[Compute skeleton terms: iterate over intersections]