Class documentation of Concepts

Loading...
Searching...
No Matches

#include <edge.hh>

Inheritance diagram for hp2Dedge::QuadEdgeBase:
concepts::OutputOperator hp2Dedge::QuadEdgeFirst hp2Dedge::QuadEdgeJump hp2Dedge::QuadEdgeMean

Public Member Functions

 QuadEdgeBase (const concepts::EdgeNormalVectorRule &normalVectorRule=concepts::EdgeNormalVectorRule())
 
template<class F >
std::pair< hp1D::LegendreElement< F > *, concepts::Edge2d * > edge (const Quad< F > &elm, const ushort k, bool emptyElm=true, hp1D::LegendreElement< F > *edge=0)
 

Protected Member Functions

virtual std::ostream & info (std::ostream &os) const
 Returns information in an output stream.
 
virtual Real weight_ (bool first, Z2 dir) const =0
 

Protected Attributes

std::unique_ptr< const concepts::EdgeNormalVectorRulenormalVectorRule_
 Rule for defining the direction of the normal vector for new edges.
 

Detailed Description

Static class to construct an element hp1D::LegendreElement out of an hp2Dedge::Quad.

The basis functions over the edge might be discontinuous. In derived classes the actual action can be specified, like taken the mean or the jump between the right and left side w.r.t. to the direction of the edge.

Author
Kersten Schmidt, 2023

Definition at line 49 of file edge.hh.

Constructor & Destructor Documentation

◆ QuadEdgeBase()

hp2Dedge::QuadEdgeBase::QuadEdgeBase ( const concepts::EdgeNormalVectorRule normalVectorRule = concepts::EdgeNormalVectorRule())
inline

Constructor

Parameters
normalVectorRuleRule for defining the direction of the normal vector for new edges

Definition at line 56 of file edge.hh.

Member Function Documentation

◆ edge()

template<class F >
std::pair< hp1D::LegendreElement< F > *, concepts::Edge2d * > hp2Dedge::QuadEdgeBase::edge ( const Quad< F > &  elm,
const ushort  k,
bool  emptyElm = true,
hp1D::LegendreElement< F > *  edge = 0 
)

Returns the element and the geometrical cell as pair belonging to the k th edge in the quadrilateral element elm. The polynomial degree and the T matrix are set properly.

The geometrical cell is included in the element as reference, so it has to be deleted after deletion of the element.

If edge is given than degrees of freedom are added by adapting the T-matrix. This is the case when taking trace from both sides of an edge (e.g., mean or jump). In that case the cell is not returned in the pair, i.e., the returned pointer to the cell (Edge2d) is 0.

Parameters
emptyElmIncorporate also empty elements (no dof).
edgeElement to which dof are added (adaptation of T-matrix)

◆ info()

virtual std::ostream & hp2Dedge::QuadEdgeBase::info ( std::ostream &  os) const
protectedvirtual

Returns information in an output stream.

Reimplemented from concepts::OutputOperator.

Reimplemented in hp2Dedge::QuadEdgeFirst, hp2Dedge::QuadEdgeMean, and hp2Dedge::QuadEdgeJump.

◆ weight_()

virtual Real hp2Dedge::QuadEdgeBase::weight_ ( bool  first,
Z2  dir 
) const
protectedpure virtual

Returns the weight of the contribution of this cell to the edge

Parameters
firstflag if this is first contribution for this edge
dirdirection of the normal vector looking from the cell dir = 0 : inwards pointing dir = 1 : outwards pointing

Note, that in neighbouring cells the orientation of the edge is opposite.

Member Data Documentation

◆ normalVectorRule_

std::unique_ptr<const concepts::EdgeNormalVectorRule> hp2Dedge::QuadEdgeBase::normalVectorRule_
protected

Rule for defining the direction of the normal vector for new edges.

Definition at line 86 of file edge.hh.


The documentation for this class was generated from the following file: