hp2D::QuadEdgeBase Class Referenceabstract
Static class to construct an element hp1D::Element out of an hp2D::Quad. More...
#include <edge.hh>
Public Member Functions | |
template<class F > | |
std::pair< hp1D::Element< F > *, concepts::Edge2d * > | edge (const Quad< F > &elm, const ushort k, bool emptyElm=true, hp1D::Element< F > *edge=0) |
Returns the element and the geometrical cell as pair belonging to the k th edge in the quadrilateral element elm . More... | |
QuadEdgeBase (const concepts::EdgeNormalVectorRule &normalVectorRule=concepts::EdgeNormalVectorRule()) | |
Constructor. More... | |
Protected Member Functions | |
virtual std::ostream & | info (std::ostream &os) const |
Returns information in an output stream. More... | |
virtual Real | weight_ (bool first, Z2 dir) const =0 |
Returns the weight of the contribution of this cell to the edge. More... | |
Protected Attributes | |
std::unique_ptr< const concepts::EdgeNormalVectorRule > | normalVectorRule_ |
Rule for defining the direction of the normal vector for new edges. More... | |
Private Member Functions | |
bool | edgeDof_ (const ushort *p, const ushort k, const bool rho, const uint dofQuad, uint &dofEdge) |
Compute the index of a dof on an edge. More... | |
template<class F > | |
void | transferDof_ (const ushort *p, const ushort k, const bool rho, const bool first, const Z2 dir, const concepts::TMatrix< F > &T, hp1D::Element< F > &edge) |
Transfer the quad dof on the particular edge to edge dof. More... | |
Detailed Description
Static class to construct an element hp1D::Element out of an hp2D::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.
Constructor & Destructor Documentation
◆ QuadEdgeBase()
|
inline |
Member Function Documentation
◆ edge()
std::pair<hp1D::Element<F>*,concepts::Edge2d*> hp2D::QuadEdgeBase::edge | ( | const Quad< F > & | elm, |
const ushort | k, | ||
bool | emptyElm = true , |
||
hp1D::Element< 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
-
emptyElm Incorporate also empty elements (no dof). edge Element to which dof are added (adaptation of T-matrix)
◆ edgeDof_()
|
private |
Compute the index of a dof on an edge.
- Parameters
-
p polynomial degrees of quad k number of edge, 0 - lower, 1 - right, 2 - upper, 3 - left dofQuad index of dof inside quad dofEdge index of dof on edge (in local coordinate system of the edge)
- Returns
- true, if dof is on the particular edge
◆ info()
|
protectedvirtual |
Returns information in an output stream.
Reimplemented from concepts::OutputOperator.
Reimplemented in hp2D::QuadEdgeJump, hp2D::QuadEdgeMean, and hp2D::QuadEdgeFirst.
◆ transferDof_()
|
private |
Transfer the quad dof on the particular edge to edge dof.
- Parameters
-
p polynomial degrees of quad k number of edge, 0 - lower, 1 - right, 2 - upper, 3 - left rho orientation of the edge inside the quad dir direction of the normal vector looking from the cell dir = 0 : outwards pointing dir = 1 : inwards pointing first flag if this is first contribution for this edge T T-matrix of quad edge the element
◆ weight_()
|
protectedpure virtual |
Returns the weight of the contribution of this cell to the edge.
- Parameters
-
first flag if this is first contribution for this edge dir direction of the normal vector looking from the cell dir = 0 : outwards pointing dir = 1 : inwards pointing
Note, that in neighbouring cells the orientation of the edge is opposite.
Implemented in hp2D::QuadEdgeJump, hp2D::QuadEdgeMean, and hp2D::QuadEdgeFirst.
Member Data Documentation
◆ normalVectorRule_
|
protected |
The documentation for this class was generated from the following file:
- hp2D/edge.hh