#include <edge.hh>
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::EdgeNormalVectorRule > | normalVectorRule_ |
Rule for defining the direction of the normal vector for new edges. | |
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.
|
inline |
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.
emptyElm | Incorporate also empty elements (no dof). |
edge | Element to which dof are added (adaptation of T-matrix) |
|
protectedvirtual |
Returns information in an output stream.
Reimplemented from concepts::OutputOperator.
Reimplemented in hp2Dedge::QuadEdgeFirst, hp2Dedge::QuadEdgeMean, and hp2Dedge::QuadEdgeJump.
|
protectedpure virtual |
Returns the weight of the contribution of this cell to the edge
first | flag if this is first contribution for this edge |
dir | direction 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.
|
protected |