DUNE-ACFEM (unstable)

Dune::ACFem::EllipticEstimator< DiscreteFunctionSpace, Model, Norm > Class Template Reference

An standard residual estimator for elliptic problems. More...

#include <dune/acfem/estimators/ellipticestimator.hh>

+ Collaboration diagram for Dune::ACFem::EllipticEstimator< DiscreteFunctionSpace, Model, Norm >:

Public Member Functions

template<class DiscreteFunctionType >
RangeFieldType estimate (const DiscreteFunctionType &uh)
 calculate estimator
 

Protected Member Functions

template<class DiscreteFunction >
void estimateLocal (const ElementType &entity, const DiscreteFunction &uh)
 caclulate error on element
 
template<class DiscreteFunctionType >
void estimateIntersection (const IntersectionType &intersection, const ElementType &inside, const DiscreteFunctionType &uh, const typename DiscreteFunctionType::LocalFunctionType &uInside)
 caclulate error on element boundary intersections
 
template<bool conforming, class LocalFunctionType >
RangeFieldType estimateIntersection (const IntersectionType &intersection, const ElementType &inside, const LocalFunctionType &uInside, const ElementType &outside, const LocalFunctionType &uOutside)
 Caclulate error on element intersections.
 
void communicateJumpContributions ()
 Helper function in order to add the jump contributions on inter-process boundaries.
 
template<class LocalFunctionType >
void estimateProcessorBoundary (const IntersectionType &intersection, const ElementType &inside, const LocalFunctionType &uInside)
 Compute the jump contribution to the estimator on process-boundaries. More...
 
template<bool conforming, class LocalFunctionType >
void estimateProcessorBoundary (const IntersectionType &intersection, const ElementType &inside, const LocalFunctionType &uInside)
 Helper function for estimateProcessorBoundary() in order to distinguish between conforming and non-conforming intersection (only that we could not use non-conforming intersection anyway).
 
template<class LocalFunctionType >
void estimateBoundary (const IntersectionType &intersection, const ElementType &inside, const LocalFunctionType &uLocal, const BoundaryConditionsType &active)
 calculate error over a boundary segment; yields zero for Dirichlet boundary values, otherwise computes More...
 

Detailed Description

template<class DiscreteFunctionSpace, class Model, enum FunctionSpaceNorm Norm = H1Norm>
class Dune::ACFem::EllipticEstimator< DiscreteFunctionSpace, Model, Norm >

An standard residual estimator for elliptic problems.

Member Function Documentation

◆ estimateBoundary()

template<class DiscreteFunctionSpace , class Model , enum FunctionSpaceNorm Norm = H1Norm>
template<class LocalFunctionType >
void Dune::ACFem::EllipticEstimator< DiscreteFunctionSpace, Model, Norm >::estimateBoundary ( const IntersectionType &  intersection,
const ElementType &  inside,
const LocalFunctionType &  uLocal,
const BoundaryConditionsType &  active 
)
inlineprotected

calculate error over a boundary segment; yields zero for Dirichlet boundary values, otherwise computes

\[ h\,||\nu\cdot(A\,\nabla u) + \alpha\,u - g_N||ˆ2 \]

References Dune::ACFem::Tensor::contractInner(), Dune::ACFem::PDEModel::ModelFacade< ModelImpl >::flux(), Dune::ACFem::hEstimate(), and Dune::ACFem::PDEModel::ModelFacade< ModelImpl >::robinFlux().

◆ estimateProcessorBoundary()

template<class DiscreteFunctionSpace , class Model , enum FunctionSpaceNorm Norm = H1Norm>
template<class LocalFunctionType >
void Dune::ACFem::EllipticEstimator< DiscreteFunctionSpace, Model, Norm >::estimateProcessorBoundary ( const IntersectionType &  intersection,
const ElementType &  inside,
const LocalFunctionType &  uInside 
)
inlineprotected

Compute the jump contribution to the estimator on process-boundaries.

Note
This is like estimateIntersection but can only compute one half of the estimate as
  • we currently only live on the InteriorBorderPartition
  • according to Robert K. ghost entities are still buggy for conforming meshes

In principle this is quite crappy in terms of code maintainabilitz because we have to duplicate the code for the computation of the jumps. Sad story.


The documentation for this class was generated from the following file:
Creative Commons License   |  Legal Statements / Impressum  |  Hosted by TU Dresden  |  generated with Hugo v0.111.3 (Dec 27, 23:30, 2024)