estimator::ImplicitResidual< F > Class Template Referenceabstract

Abstract class representing the implicit residual a posteriori error estimator. More...

#include <implicitResidual.hh>

Inheritance diagram for estimator::ImplicitResidual< F >:
estimator::ImplicitResidual2D< F >

Public Member Functions

void addBoundaryData (const concepts::Set< uint > &nSet, const concepts::ElementFormula< F > &g)
 Add boundary informations (i.e. More...
 
void addBoundaryData (const concepts::Set< uint > &rSet, const concepts::ElementFormula< F > &h1, const concepts::ElementFormula< F > &h2)
 Add boundary informations (i.e. More...
 
virtual ImplicitResidual< F > * clone () const =0
 

Protected Member Functions

 ImplicitResidual (const concepts::SpaceOnCells< F > &spc, const concepts::Vector< F > &sol)
 Constructur of the explicit residual a posteriori error estimator. More...
 
virtual std::ostream & info (std::ostream &os) const
 

Protected Attributes

concepts::Set< uint > eAttrbs_
 
concepts::Sequence< const concepts::ElementFormula< F > * > g_
 
concepts::Sequence< concepts::Set< uint > > gAttrbs_
 

Detailed Description

template<class F>
class estimator::ImplicitResidual< F >

Abstract class representing the implicit residual a posteriori error estimator.

At the moment just one underlying space is supported, i.e. with that robin conditions cannot be handeled for the residuals, atm

This uses the flux approximation proposed by Bank and Weise, that is

n_k \cdot [\mathcal{A} Grad(u)] = 0.5 \cdot n_K ( \mathcal{A}Grad[u_h]_{|K} + \mathcal{A}Grad[u_h]_{K'} )

where n_k is the outer normal on a cell K, and (K, K') are neighboured Elements.

Definition at line 37 of file implicitResidual.hh.

Constructor & Destructor Documentation

◆ ImplicitResidual()

template<class F >
estimator::ImplicitResidual< F >::ImplicitResidual ( const concepts::SpaceOnCells< F > &  spc,
const concepts::Vector< F > &  sol 
)
inlineprotected

Constructur of the explicit residual a posteriori error estimator.

The input residual is builded outside the class. For given elliptic PDE Lu = f, res = f - L(u_h), where u_h is the FEM approximation.

Example: L = -Laplace + c(x)*ID, use hp2D::Functions as Laplacian, Value and ParsedFormulas

Parameters
spcUnderlying 2d Space, i.e. a AdaptiveSpace
solsolution vector of the approximated FEM solution
resstrong Residual.

Definition at line 125 of file implicitResidual.hh.

Member Function Documentation

◆ addBoundaryData() [1/2]

template<class F >
void estimator::ImplicitResidual< F >::addBoundaryData ( const concepts::Set< uint > &  nSet,
const concepts::ElementFormula< F > &  g 
)
inline

Add boundary informations (i.e.

on point/edge/face) to build boundary residuals on a given requested set of edges through edge attributes.

This applicates i.e for Neumann b.c. :

Let the boundary condition be of the form :

 n^T * [A*Grad(u)] = g

Then the L2 edge residual representation has the form :

\[ || g - n_e^T * [A*Grad(u_{hp})] ||_{L^2(e)} \]

where n_e is the outward pointing normal vector, that comes from the underlying element that has edge e.

Definition at line 64 of file implicitResidual.hh.

◆ addBoundaryData() [2/2]

template<class F >
void estimator::ImplicitResidual< F >::addBoundaryData ( const concepts::Set< uint > &  rSet,
const concepts::ElementFormula< F > &  h1,
const concepts::ElementFormula< F > &  h2 
)
inline

Add boundary informations (i.e.

on point/edge/face) to build boundary residuals of the form

\[ h2 + h1 * u_{hp} \]

on a given set of edge attributes, where u_{hp} is the trace of the hp-fem solution on the requested edges. This applicates i.e. for Robin b.c. :

Let the boundary condition be of the form :

n^T * [A*Grad(u)] = h1 * u + h2

Then the L2 edge residual representation has the form :

\[ || h1 * u_{hp} + h2 - n_e^T * [A*Grad(u_{hp})] ||_{L^2(e)} \]

where n_e is the outward pointing normal vector, that comes from the underlying element that has edge e.

Definition at line 98 of file implicitResidual.hh.

◆ clone()

template<class F >
virtual ImplicitResidual<F>* estimator::ImplicitResidual< F >::clone ( ) const
pure virtual

◆ info()

template<class F >
virtual std::ostream& estimator::ImplicitResidual< F >::info ( std::ostream &  os) const
inlineprotectedvirtual

Reimplemented in estimator::ImplicitResidual2D< F >.

Definition at line 129 of file implicitResidual.hh.

Member Data Documentation

◆ eAttrbs_

template<class F >
concepts::Set<uint> estimator::ImplicitResidual< F >::eAttrbs_
protected

Definition at line 148 of file implicitResidual.hh.

◆ g_

template<class F >
concepts::Sequence<const concepts::ElementFormula<F>* > estimator::ImplicitResidual< F >::g_
protected

Definition at line 142 of file implicitResidual.hh.

◆ gAttrbs_

template<class F >
concepts::Sequence<concepts::Set<uint> > estimator::ImplicitResidual< F >::gAttrbs_
protected

Definition at line 144 of file implicitResidual.hh.


The documentation for this class was generated from the following file:
Page URL: http://wiki.math.ethz.ch/bin/view/Concepts/WebHome
21 August 2020
© 2020 Eidgenössische Technische Hochschule Zürich