#include <edge.hh>

Inheritance diagram for hp2D::QuadEdgeFirst:
hp2D::QuadEdgeBase concepts::OutputOperator

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...
 
 QuadEdgeFirst (const concepts::EdgeNormalVectorRule &normalVectorRule=concepts::EdgeNormalVectorRule())
 

Protected Member Functions

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

Protected Attributes

std::unique_ptr< const concepts::EdgeNormalVectorRulenormalVectorRule_
 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...
 
virtual Real weight_ (bool first, Z2 dir) const
 Returns the weight of the contribution of this cell to the edge. More...
 

Detailed Description

Definition at line 131 of file edge.hh.

Constructor & Destructor Documentation

◆ QuadEdgeFirst()

hp2D::QuadEdgeFirst::QuadEdgeFirst ( const concepts::EdgeNormalVectorRule normalVectorRule = concepts::EdgeNormalVectorRule())
inline

Definition at line 133 of file edge.hh.

Member Function Documentation

◆ edge()

template<class F >
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 
)
inherited

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)

◆ edgeDof_()

bool hp2D::QuadEdgeBase::edgeDof_ ( const ushort *  p,
const ushort  k,
const bool  rho,
const uint  dofQuad,
uint &  dofEdge 
)
privateinherited

Compute the index of a dof on an edge.

Parameters
ppolynomial degrees of quad
knumber of edge, 0 - lower, 1 - right, 2 - upper, 3 - left
dofQuadindex of dof inside quad
dofEdgeindex of dof on edge (in local coordinate system of the edge)
Returns
true, if dof is on the particular edge

◆ info()

virtual std::ostream& hp2D::QuadEdgeFirst::info ( std::ostream &  os) const
protectedvirtual

Returns information in an output stream.

Reimplemented from hp2D::QuadEdgeBase.

◆ transferDof_()

template<class F >
void hp2D::QuadEdgeBase::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 
)
privateinherited

Transfer the quad dof on the particular edge to edge dof.

Parameters
ppolynomial degrees of quad
knumber of edge, 0 - lower, 1 - right, 2 - upper, 3 - left
rhoorientation of the edge inside the quad
dirdirection of the normal vector looking from the cell dir = 0 : outwards pointing dir = 1 : inwards pointing
firstflag if this is first contribution for this edge
TT-matrix of quad
edgethe element

◆ weight_()

virtual Real hp2D::QuadEdgeFirst::weight_ ( bool  first,
Z2  dir 
) const
privatevirtual

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 : outwards pointing dir = 1 : inwards pointing

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

Implements hp2D::QuadEdgeBase.

Member Data Documentation

◆ normalVectorRule_

std::unique_ptr<const concepts::EdgeNormalVectorRule> hp2D::QuadEdgeBase::normalVectorRule_
protectedinherited

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

Definition at line 85 of file edge.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