#include <implicitEquilibratedAO.hh>

Inheritance diagram for hp2D::ImplicitEquilibratedA0< F >:
concepts::LocalEstimator< F > concepts::Estimator< F > concepts::PiecewiseFormulaBase< F > concepts::OutputOperator concepts::ElementFormula< F, concepts::Realtype< F >::type > concepts::Cloneable concepts::OutputOperator

Public Types

typedef HashMap< Real >::const_iterator const_iterator
 
typedef concepts::Realtype< F >::type G
 
typedef HashMap< Real >::iterator iterator
 
typedef F value_type
 

Public Member Functions

void addBillinearInfo (concepts::BilinearForm< F > &bform, const F scalar=1)
 
void addDirichletInfo (const concepts::Set< uint > &attrb)
 Adds Dirichletinfo. More...
 
void addInnerInfo (const concepts::Set< uint > &attrb)
 Add inner edges attribute info, if additional existing. More...
 
void addLinearformInfo (concepts::LinearForm< F > &form, const F scalar=1)
 Method to give Linearform residual information to the estimator. More...
 
void addNeumannInfo (concepts::ParsedFormula< F > &frm, const concepts::Set< uint > &attrb)
 Method to add boundary infos that are needed for the estimator. More...
 
iterator begin ()
 
const_iterator begin () const
 
virtual ImplicitEquilibratedA0clone () const
 Virtual constructor. More...
 
virtual ElementFormula< F, concepts::Realtype< F >::type > * clone () const=0
 Virtual copy constructor. More...
 
void compute ()
 
virtual F & dflt_value ()
 Gives default value. More...
 
virtual const F & dflt_value () const
 Gives default value. More...
 
iterator end ()
 
const_iterator end () const
 
const Real getGlobal () const
 
 ImplicitEquilibratedA0 (const concepts::SpaceOnCells< F > &spc, const concepts::Vector< F > &sol, concepts::LinearForm< F > &f, ushort loc_rule=2, const concepts::ElementFormula< F > *a=0)
 Constructor of the 2d implicit residual a posteriori Error estimator based on solving local Neumannproblems, with neumann boundary condition represented by so called Fluxes, which are constructed with the help of equilibrated moments. More...
 
void isunique (bool unique=true)
 
uint nelm () const
 
virtual F operator() (const Connector &cntr, const Real p, const Real t=0.0) const
 Gives the value in an particular cell on a particular point. More...
 
virtual F operator() (const Connector &cntr, const Real2d &p, const Real t=0.0) const
 
virtual F operator() (const Connector &cntr, const Real3d &p, const Real t=0.0) const
 
virtual F operator() (const ElementWithCell< concepts::Realtype< F >::type > &elm, const Real p, const Real t=0.0) const=0
 Evaluates the formula. More...
 
virtual F operator() (const ElementWithCell< concepts::Realtype< F >::type > &elm, const Real2d &p, const Real t=0.0) const=0
 Evaluates the formula. More...
 
virtual F operator() (const ElementWithCell< concepts::Realtype< F >::type > &elm, const Real3d &p, const Real t=0.0) const=0
 Evaluates the formula. More...
 
virtual F operator() (const ElementWithCell< G > &elm, const Real p, const Real t=0.0) const
 
virtual F operator() (const ElementWithCell< G > &elm, const Real2d &p, const Real t=0.0) const
 
virtual F operator() (const ElementWithCell< G > &elm, const Real3d &p, const Real t=0.0) const
 
const Real operator() (uint key) const
 Return the error on given local element, that belongs to the input key. More...
 
virtual ~ImplicitEquilibratedA0 ()
 

Protected Member Functions

virtual std::ostream & info (std::ostream &os) const
 Returns information in an output stream. More...
 

Protected Attributes

Real globError_
 
concepts::HashMap< Real > locError_
 
const concepts::Vector< F > & sol_
 
const concepts::SpaceOnCells< F > & spc_
 

Private Member Functions

void buildlocalA_ (const hp2D::hpAdaptiveSpaceH1 &spc_K, concepts::SparseMatrix< F > &A_K)
 
bool buildlocalRhs_ (const concepts::Quad &quad, const hp2D::hpAdaptiveSpaceH1 &spc_K, const hp2D::Fluxes &flux, const concepts::BoundaryConditions &bc, concepts::Vector< F > &rhs)
 
void buildnonUniquelocalRhs_ (const concepts::Quad &quad, const hp2D::hpAdaptiveSpaceH1 &spc_K, const hp2D::Fluxes &flux, const concepts::BoundaryConditions &bc, concepts::Vector< F > &rhs)
 
Real computeLocalError_2 (hp2D::hpAdaptiveSpaceH1 &spc_K, const concepts::Vector< F > &sol_K)
 

Private Attributes

concepts::Sequence< concepts::LinearForm< F > * > B_
 
concepts::Set< uint > dAttrbs_
 
dflt_value_
 default value More...
 
concepts::LinearForm< F > & f_
 
concepts::HashMap< uint > help_
 
concepts::Set< uint > iAttrbs_
 
concepts::Sequence< concepts::BilinearForm< F > * > L_
 
concepts::Sequence< concepts::Set< uint > > nAttrbs_
 
concepts::Sequence< concepts::ParsedFormula< F > > nfrms_
 
ushort rule_
 
concepts::Sequence< F > scalars_
 
concepts::Sequence< F > scalars_L
 
bool unique_
 

Detailed Description

template<class F>
class hp2D::ImplicitEquilibratedA0< F >

Definition at line 52 of file implicitEquilibratedAO.hh.

Member Typedef Documentation

◆ const_iterator

template<class F >
typedef HashMap<Real>::const_iterator concepts::LocalEstimator< F >::const_iterator
inherited

Definition at line 96 of file estimator.hh.

◆ G

template<typename F >
typedef concepts::Realtype<F>::type concepts::PiecewiseFormulaBase< F >::G
inherited

Definition at line 45 of file piecewiseFormula.hh.

◆ iterator

template<class F >
typedef HashMap<Real>::iterator concepts::LocalEstimator< F >::iterator
inherited

Definition at line 95 of file estimator.hh.

◆ value_type

typedef F concepts::ElementFormula< F, concepts::Realtype< F >::type >::value_type
inherited

Definition at line 37 of file elementFormula.hh.

Constructor & Destructor Documentation

◆ ImplicitEquilibratedA0()

template<class F >
hp2D::ImplicitEquilibratedA0< F >::ImplicitEquilibratedA0 ( const concepts::SpaceOnCells< F > &  spc,
const concepts::Vector< F > &  sol,
concepts::LinearForm< F > &  f,
ushort  loc_rule = 2,
const concepts::ElementFormula< F > *  a = 0 
)
inline

Constructor of the 2d implicit residual a posteriori Error estimator based on solving local Neumannproblems, with neumann boundary condition represented by so called Fluxes, which are constructed with the help of equilibrated moments.

These moments are represented in the class EquilibratedMomentsA0.

Parameters
spcThe FEM space
solthe solution vector representing the FEM solution
wresThe weak residual formula, wres = (f,v)-B(u_h,v) , where B is the billinearform of the problem
aThe coefficient function in the highest derivative operator div ( a * grad(.)) if no function a is given, by default a is const and therefore set to ONE.
loc_rulelocal polynomial degree set by rule max{quad.p()[0],quad.p()[1]} + loc_rule, by default local degree is +2 as it behaves well in numerical tests to have reliable estimator

f rhs over whole domain TODO: integration rule möglichkeiten setzen

Definition at line 75 of file implicitEquilibratedAO.hh.

◆ ~ImplicitEquilibratedA0()

template<class F >
virtual hp2D::ImplicitEquilibratedA0< F >::~ImplicitEquilibratedA0 ( )
inlinevirtual

Definition at line 91 of file implicitEquilibratedAO.hh.

Member Function Documentation

◆ addBillinearInfo()

template<class F >
void hp2D::ImplicitEquilibratedA0< F >::addBillinearInfo ( concepts::BilinearForm< F > &  bform,
const F  scalar = 1 
)
inline

Definition at line 109 of file implicitEquilibratedAO.hh.

◆ addDirichletInfo()

template<class F >
void hp2D::ImplicitEquilibratedA0< F >::addDirichletInfo ( const concepts::Set< uint > &  attrb)
inline

Adds Dirichletinfo.

Definition at line 129 of file implicitEquilibratedAO.hh.

◆ addInnerInfo()

template<class F >
void hp2D::ImplicitEquilibratedA0< F >::addInnerInfo ( const concepts::Set< uint > &  attrb)
inline

Add inner edges attribute info, if additional existing.

Definition at line 141 of file implicitEquilibratedAO.hh.

◆ addLinearformInfo()

template<class F >
void hp2D::ImplicitEquilibratedA0< F >::addLinearformInfo ( concepts::LinearForm< F > &  form,
const F  scalar = 1 
)
inline

Method to give Linearform residual information to the estimator.

For B(u_h, v ) = f(v), the estimator needs the information f(v)-B(u_h,v)

Since Linearforms have no operator+ it is needed to add information individual

B(u_h,v) = Riesz(u_h) + GradLinearForm( grad(u_h) )

one should add TODO: Maybe change scalar value just to build B(u_h,v) here rest is done in methods do sth const

Definition at line 104 of file implicitEquilibratedAO.hh.

◆ addNeumannInfo()

template<class F >
void hp2D::ImplicitEquilibratedA0< F >::addNeumannInfo ( concepts::ParsedFormula< F > &  frm,
const concepts::Set< uint > &  attrb 
)
inline

Method to add boundary infos that are needed for the estimator.

For Neumannboundary one needs the edge attribute and the corresponding edge formula.

Definition at line 120 of file implicitEquilibratedAO.hh.

◆ begin() [1/2]

template<class F >
iterator concepts::LocalEstimator< F >::begin ( )
inlineinherited

Definition at line 100 of file estimator.hh.

◆ begin() [2/2]

template<class F >
const_iterator concepts::LocalEstimator< F >::begin ( ) const
inlineinherited

Definition at line 104 of file estimator.hh.

◆ buildlocalA_()

template<class F >
void hp2D::ImplicitEquilibratedA0< F >::buildlocalA_ ( const hp2D::hpAdaptiveSpaceH1 spc_K,
concepts::SparseMatrix< F > &  A_K 
)
inlineprivate

Definition at line 570 of file implicitEquilibratedAO.hh.

◆ buildlocalRhs_()

template<class F >
bool hp2D::ImplicitEquilibratedA0< F >::buildlocalRhs_ ( const concepts::Quad quad,
const hp2D::hpAdaptiveSpaceH1 spc_K,
const hp2D::Fluxes flux,
const concepts::BoundaryConditions bc,
concepts::Vector< F > &  rhs 
)
inlineprivate

Definition at line 421 of file implicitEquilibratedAO.hh.

◆ buildnonUniquelocalRhs_()

template<class F >
void hp2D::ImplicitEquilibratedA0< F >::buildnonUniquelocalRhs_ ( const concepts::Quad quad,
const hp2D::hpAdaptiveSpaceH1 spc_K,
const hp2D::Fluxes flux,
const concepts::BoundaryConditions bc,
concepts::Vector< F > &  rhs 
)
inlineprivate

Definition at line 508 of file implicitEquilibratedAO.hh.

◆ clone() [1/2]

template<class F >
virtual ImplicitEquilibratedA0* hp2D::ImplicitEquilibratedA0< F >::clone ( ) const
inlinevirtual

Virtual constructor.

Returns a pointer to a copy of itself. The caller is responsible to destroy this copy.

Implements concepts::LocalEstimator< F >.

Definition at line 376 of file implicitEquilibratedAO.hh.

◆ clone() [2/2]

virtual ElementFormula<F,concepts::Realtype< F >::type >* concepts::ElementFormula< F, concepts::Realtype< F >::type >::clone ( ) const
pure virtualinherited

Virtual copy constructor.

◆ compute()

template<class F >
void hp2D::ImplicitEquilibratedA0< F >::compute ( )
inline

Definition at line 152 of file implicitEquilibratedAO.hh.

◆ computeLocalError_2()

template<class F >
Real hp2D::ImplicitEquilibratedA0< F >::computeLocalError_2 ( hp2D::hpAdaptiveSpaceH1 spc_K,
const concepts::Vector< F > &  sol_K 
)
inlineprivate

Definition at line 582 of file implicitEquilibratedAO.hh.

◆ dflt_value() [1/2]

template<typename F >
virtual F& concepts::PiecewiseFormulaBase< F >::dflt_value ( )
inlinevirtualinherited

Gives default value.

Definition at line 83 of file piecewiseFormula.hh.

◆ dflt_value() [2/2]

template<typename F >
virtual const F& concepts::PiecewiseFormulaBase< F >::dflt_value ( ) const
inlinevirtualinherited

Gives default value.

Definition at line 81 of file piecewiseFormula.hh.

◆ end() [1/2]

template<class F >
iterator concepts::LocalEstimator< F >::end ( )
inlineinherited

Definition at line 108 of file estimator.hh.

◆ end() [2/2]

template<class F >
const_iterator concepts::LocalEstimator< F >::end ( ) const
inlineinherited

Definition at line 112 of file estimator.hh.

◆ getGlobal()

template<typename F >
const Real concepts::Estimator< F >::getGlobal ( ) const
inlineinherited

Definition at line 22 of file estimator.hh.

◆ info()

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

Returns information in an output stream.

Implements concepts::LocalEstimator< F >.

Definition at line 380 of file implicitEquilibratedAO.hh.

◆ isunique()

template<class F >
void hp2D::ImplicitEquilibratedA0< F >::isunique ( bool  unique = true)
inline

Definition at line 146 of file implicitEquilibratedAO.hh.

◆ nelm()

template<class F >
uint concepts::LocalEstimator< F >::nelm ( ) const
inlineinherited

Definition at line 116 of file estimator.hh.

◆ operator()() [1/10]

template<class F >
virtual F concepts::LocalEstimator< F >::operator() ( const Connector cntr,
const Real  p,
const Real  t = 0.0 
) const
inlinevirtualinherited

Gives the value in an particular cell on a particular point.

Parameters
celltopological cell
pphysical coordinates
ttime

Implements concepts::PiecewiseFormulaBase< F >.

Definition at line 132 of file estimator.hh.

◆ operator()() [2/10]

template<class F >
virtual F concepts::LocalEstimator< F >::operator() ( const Connector cntr,
const Real2d p,
const Real  t = 0.0 
) const
inlinevirtualinherited

Implements concepts::PiecewiseFormulaBase< F >.

Definition at line 135 of file estimator.hh.

◆ operator()() [3/10]

template<class F >
virtual F concepts::LocalEstimator< F >::operator() ( const Connector cntr,
const Real3d p,
const Real  t = 0.0 
) const
inlinevirtualinherited

Implements concepts::PiecewiseFormulaBase< F >.

Definition at line 138 of file estimator.hh.

◆ operator()() [4/10]

virtual F concepts::ElementFormula< F, concepts::Realtype< F >::type >::operator() ( const ElementWithCell< G > &  elm,
const Real  p,
const Real  t = 0.0 
) const
pure virtualinherited

Evaluates the formula.

Parameters
elmElement
pPoint in space in local element coordinates
tPoint in time

◆ operator()() [5/10]

virtual F concepts::ElementFormula< F, concepts::Realtype< F >::type >::operator() ( const ElementWithCell< G > &  elm,
const Real2d p,
const Real  t = 0.0 
) const
pure virtualinherited

Evaluates the formula.

Parameters
elmElement
pPoint in space in local element coordinates
tPoint in time

◆ operator()() [6/10]

virtual F concepts::ElementFormula< F, concepts::Realtype< F >::type >::operator() ( const ElementWithCell< G > &  elm,
const Real3d p,
const Real  t = 0.0 
) const
pure virtualinherited

Evaluates the formula.

Parameters
elmElement
pPoint in space in local element coordinates
tPoint in time

◆ operator()() [7/10]

template<typename F >
virtual F concepts::PiecewiseFormulaBase< F >::operator() ( const ElementWithCell< G > &  elm,
const Real  p,
const Real  t = 0.0 
) const
inlinevirtualinherited

Definition at line 52 of file piecewiseFormula.hh.

◆ operator()() [8/10]

template<typename F >
virtual F concepts::PiecewiseFormulaBase< F >::operator() ( const ElementWithCell< G > &  elm,
const Real2d p,
const Real  t = 0.0 
) const
inlinevirtualinherited

Definition at line 57 of file piecewiseFormula.hh.

◆ operator()() [9/10]

template<typename F >
virtual F concepts::PiecewiseFormulaBase< F >::operator() ( const ElementWithCell< G > &  elm,
const Real3d p,
const Real  t = 0.0 
) const
inlinevirtualinherited

Definition at line 63 of file piecewiseFormula.hh.

◆ operator()() [10/10]

template<class F >
const Real concepts::LocalEstimator< F >::operator() ( uint  key) const
inlineinherited

Return the error on given local element, that belongs to the input key.

Definition at line 123 of file estimator.hh.

Member Data Documentation

◆ B_

template<class F >
concepts::Sequence<concepts::LinearForm<F>* > hp2D::ImplicitEquilibratedA0< F >::B_
private

Definition at line 387 of file implicitEquilibratedAO.hh.

◆ dAttrbs_

template<class F >
concepts::Set<uint> hp2D::ImplicitEquilibratedA0< F >::dAttrbs_
private

Definition at line 413 of file implicitEquilibratedAO.hh.

◆ dflt_value_

template<typename F >
F concepts::PiecewiseFormulaBase< F >::dflt_value_
privateinherited

default value

Definition at line 88 of file piecewiseFormula.hh.

◆ f_

template<class F >
concepts::LinearForm<F>& hp2D::ImplicitEquilibratedA0< F >::f_
private

Definition at line 391 of file implicitEquilibratedAO.hh.

◆ globError_

template<typename F >
Real concepts::Estimator< F >::globError_
protectedinherited

Definition at line 37 of file estimator.hh.

◆ help_

template<class F >
concepts::HashMap<uint> hp2D::ImplicitEquilibratedA0< F >::help_
private

Definition at line 411 of file implicitEquilibratedAO.hh.

◆ iAttrbs_

template<class F >
concepts::Set<uint> hp2D::ImplicitEquilibratedA0< F >::iAttrbs_
private

Definition at line 415 of file implicitEquilibratedAO.hh.

◆ L_

template<class F >
concepts::Sequence<concepts::BilinearForm<F>* > hp2D::ImplicitEquilibratedA0< F >::L_
private

Definition at line 394 of file implicitEquilibratedAO.hh.

◆ locError_

template<class F >
concepts::HashMap<Real> concepts::LocalEstimator< F >::locError_
protectedinherited

Definition at line 151 of file estimator.hh.

◆ nAttrbs_

template<class F >
concepts::Sequence<concepts::Set<uint> > hp2D::ImplicitEquilibratedA0< F >::nAttrbs_
private

Definition at line 409 of file implicitEquilibratedAO.hh.

◆ nfrms_

template<class F >
concepts::Sequence<concepts::ParsedFormula<F> > hp2D::ImplicitEquilibratedA0< F >::nfrms_
private

Definition at line 407 of file implicitEquilibratedAO.hh.

◆ rule_

template<class F >
ushort hp2D::ImplicitEquilibratedA0< F >::rule_
private

Definition at line 404 of file implicitEquilibratedAO.hh.

◆ scalars_

template<class F >
concepts::Sequence<F> hp2D::ImplicitEquilibratedA0< F >::scalars_
private

Definition at line 389 of file implicitEquilibratedAO.hh.

◆ scalars_L

template<class F >
concepts::Sequence<F> hp2D::ImplicitEquilibratedA0< F >::scalars_L
private

Definition at line 395 of file implicitEquilibratedAO.hh.

◆ sol_

template<typename F >
const concepts::Vector<F>& concepts::Estimator< F >::sol_
protectedinherited

Definition at line 35 of file estimator.hh.

◆ spc_

template<typename F >
const concepts::SpaceOnCells<F>& concepts::Estimator< F >::spc_
protectedinherited

Definition at line 33 of file estimator.hh.

◆ unique_

template<class F >
bool hp2D::ImplicitEquilibratedA0< F >::unique_
private

Definition at line 402 of file implicitEquilibratedAO.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