Home | Doxygen Documentation | Tutorials | Developer Tools (restricted)

Public Member Functions | Protected Member Functions | Private Member Functions
hp2D::QuadEdgeBase Class Reference

Static class to construct an element hp2D::Edge out of an hp2D::Quad. More...

#include <edge.hh>

Inheritance diagram for hp2D::QuadEdgeBase:
Inheritance graph
[legend]
Collaboration diagram for hp2D::QuadEdgeBase:
Collaboration graph
[legend]

List of all members.

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.

Protected Member Functions

virtual std::ostream & info (std::ostream &os) const
 Returns information in an output stream.
virtual Real weight_ (bool first, bool rho) const =0
 Returns the weight of the contribution of this cell to the edge.

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.
template<class F >
void transferDof_ (const ushort *p, const ushort k, const bool rho, const bool first, const concepts::TMatrix< F > &T, hp1D::Element< F > &edge)
 Transfer the quad dof on the particular edge to edge dof.

Detailed Description

Static class to construct an element hp2D::Edge 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.

Author:
Kersten Schmidt, 2006

Definition at line 46 of file edge.hh.


Member Function Documentation

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 
)

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)
bool hp2D::QuadEdgeBase::edgeDof_ ( const ushort *  p,
const ushort  k,
const bool  rho,
const uint  dofQuad,
uint &  dofEdge 
) [private]

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 in edge
Returns:
true, if dof is on the particular edge
virtual std::ostream& hp2D::QuadEdgeBase::info ( std::ostream &  os) const [protected, virtual]

Returns information in an output stream.

Reimplemented from concepts::OutputOperator.

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

template<class F >
void hp2D::QuadEdgeBase::transferDof_ ( const ushort *  p,
const ushort  k,
const bool  rho,
const bool  first,
const concepts::TMatrix< F > &  T,
hp1D::Element< F > &  edge 
) [private]

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
firstflag if this is first contribution for this edge
TT-matrix of quad
edgethe element
virtual Real hp2D::QuadEdgeBase::weight_ ( bool  first,
bool  rho 
) const [protected, pure virtual]

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

Parameters:
firstflag if this is first contribution for this edge
rhoorientation of the edge inside the quad (rho=1: clockwise)

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

Implemented in hp2D::QuadEdgeFirst, hp2D::QuadEdgeMean, and hp2D::QuadEdgeJump.


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

Home | Doxygen Documentation | Tutorials | Developer Tools (restricted)