Continuous extension of a formula on edges, e.g. More...

#include <formula.hh>

Inheritance diagram for hp2D::H1Extension< F >:
concepts::ElementFormula< F > concepts::Cloneable concepts::OutputOperator

Public Types

typedef F value_type
 

Public Member Functions

virtual H1Extension< F > * clone () const
 Virtual copy constructor. More...
 
virtual ElementFormula< F, typename Realtype< F >::type > * clone () const=0
 Virtual copy constructor. More...
 
 H1Extension (const concepts::ElementFormula< F > &frm)
 Constructor for extension from formula on edges. More...
 
 H1Extension (const concepts::ElementFormula< F > &frm, const concepts::Set< concepts::Attribute > attributes)
 Constructor. More...
 
virtual F operator() (const concepts::ElementWithCell< Real > &elm, const concepts::Real3d &p, const Real t=0.0) const
 
virtual F operator() (const concepts::ElementWithCell< Real > &elm, const Real p, const Real t=0.0) const
 
virtual F operator() (const concepts::ElementWithCell< Real > &elm, const Real2d &p, const Real t=0.0) const
 
virtual F operator() (const ElementWithCell< typename Realtype< F >::type > &elm, const Real p, const Real t=0.0) const=0
 Evaluates the formula. More...
 
virtual F operator() (const ElementWithCell< typename Realtype< F >::type > &elm, const Real2d &p, const Real t=0.0) const=0
 Evaluates the formula. More...
 
virtual F operator() (const ElementWithCell< typename Realtype< F >::type > &elm, const Real3d &p, const Real t=0.0) const=0
 Evaluates the formula. More...
 
virtual ~H1Extension ()
 

Protected Member Functions

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

Private Member Functions

void clear_ () const
 Clear the temporary information (elmEdges_, cellEdges_). More...
 
bool compute_ (const hp2D::Quad< Real > *quad, const Real2d &p, const Real t, F &val) const
 

Private Attributes

const concepts::Set< concepts::Attributeattributes_
 Attributes of the cells taken into account. More...
 
concepts::Sequence< concepts::Edge2d * > cellEdges_
 List of the generated cells on the edges. More...
 
concepts::HashMap< const concepts::Edge * > edges_
 The last used edges. More...
 
const concepts::ElementWithCell< Real > * elm_
 The last used element. More...
 
concepts::Array< concepts::ElementWithCell< Real > * > elmEdges_
 The last used elements on the edges of elm_. More...
 
std::unique_ptr< const concepts::ElementFormula< F > > frm_
 The formula on the edges. More...
 
concepts::HashMap< F > vtxValues_
 Values on the vertices. More...
 

Detailed Description

template<class F>
class hp2D::H1Extension< F >

Continuous extension of a formula on edges, e.g.

boundary or interface edges, to the interior.

The user has to ensure, that the data on the edges is given continuously. The name H1Extension is not fully appropiate, since the data on the edges could be continuous given, but need not be in

\[H^{1/2}(\Gamma)\]

.

Author
Kersten Schmidt, 2007

Definition at line 67 of file formula.hh.

Member Typedef Documentation

◆ value_type

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

Definition at line 37 of file elementFormula.hh.

Constructor & Destructor Documentation

◆ H1Extension() [1/2]

template<class F >
hp2D::H1Extension< F >::H1Extension ( const concepts::ElementFormula< F > &  frm)

Constructor for extension from formula on edges.

Example of such an (element) formula is a the Dirichlet data.

Extension is continuous, if the mesh has no hanging nodes in the first layer around the edges of the given formula.

Parameters
frmelement formula on edges (hp2D::Edge)
See also
hp2D::TraceSpace
concepts::DirichletElementFormula
concepts::ElementFormulaVector

◆ H1Extension() [2/2]

template<class F >
hp2D::H1Extension< F >::H1Extension ( const concepts::ElementFormula< F > &  frm,
const concepts::Set< concepts::Attribute attributes 
)

Constructor.

Parameters
frmelement formula on edges (hp2D::Edge)
attributesattributes of the cells taken into account

◆ ~H1Extension()

template<class F >
virtual hp2D::H1Extension< F >::~H1Extension ( )
virtual

Member Function Documentation

◆ clear_()

template<class F >
void hp2D::H1Extension< F >::clear_ ( ) const
private

Clear the temporary information (elmEdges_, cellEdges_).

◆ clone() [1/2]

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

Virtual copy constructor.

Implements concepts::Cloneable.

Definition at line 101 of file formula.hh.

◆ clone() [2/2]

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

Virtual copy constructor.

◆ compute_()

template<class F >
bool hp2D::H1Extension< F >::compute_ ( const hp2D::Quad< Real > *  quad,
const Real2d &  p,
const Real  t,
F &  val 
) const
private

◆ info()

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

Returns information in an output stream.

Reimplemented from concepts::OutputOperator.

◆ operator()() [1/6]

template<class F >
virtual F hp2D::H1Extension< F >::operator() ( const concepts::ElementWithCell< Real > &  elm,
const concepts::Real3d p,
const Real  t = 0.0 
) const
virtual

◆ operator()() [2/6]

template<class F >
virtual F hp2D::H1Extension< F >::operator() ( const concepts::ElementWithCell< Real > &  elm,
const Real  p,
const Real  t = 0.0 
) const
virtual

◆ operator()() [3/6]

template<class F >
virtual F hp2D::H1Extension< F >::operator() ( const concepts::ElementWithCell< Real > &  elm,
const Real2d &  p,
const Real  t = 0.0 
) const
virtual

◆ operator()() [4/6]

virtual F concepts::ElementFormula< F, typename 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/6]

virtual F concepts::ElementFormula< F, typename 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/6]

virtual F concepts::ElementFormula< F, typename 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

Member Data Documentation

◆ attributes_

template<class F >
const concepts::Set<concepts::Attribute> hp2D::H1Extension< F >::attributes_
private

Attributes of the cells taken into account.

No attributes means, that all cells are taken.

Definition at line 112 of file formula.hh.

◆ cellEdges_

template<class F >
concepts::Sequence<concepts::Edge2d*> hp2D::H1Extension< F >::cellEdges_
mutableprivate

List of the generated cells on the edges.

Definition at line 118 of file formula.hh.

◆ edges_

template<class F >
concepts::HashMap<const concepts::Edge*> hp2D::H1Extension< F >::edges_
mutableprivate

The last used edges.

Definition at line 120 of file formula.hh.

◆ elm_

template<class F >
const concepts::ElementWithCell<Real>* hp2D::H1Extension< F >::elm_
mutableprivate

The last used element.

Definition at line 114 of file formula.hh.

◆ elmEdges_

template<class F >
concepts::Array<concepts::ElementWithCell<Real>*> hp2D::H1Extension< F >::elmEdges_
mutableprivate

The last used elements on the edges of elm_.

Definition at line 116 of file formula.hh.

◆ frm_

template<class F >
std::unique_ptr<const concepts::ElementFormula<F> > hp2D::H1Extension< F >::frm_
private

The formula on the edges.

Definition at line 108 of file formula.hh.

◆ vtxValues_

template<class F >
concepts::HashMap<F> hp2D::H1Extension< F >::vtxValues_
mutableprivate

Values on the vertices.

Definition at line 122 of file formula.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