Element on an edge representing the normal derivative of neighbouring elements, especially their mean or jump. More...

#include <neumannTrace.hh>

Inheritance diagram for hp2D::NTElement_BA< F >:
concepts::ElementWithCell< Real > hp1D::IntegrableElm concepts::IntegrationCell

Classes

class  ShapeFunction
 

Public Types

enum  intFormType { ZERO, ONE, TWO, THREE }
 Integration form, which determines terms coming from integration over reference element. More...
 
typedef Real type
 
typedef concepts::ElementAndFacette< hp2D::Element< F > > UnderlyingElement
 

Public Member Functions

void addElement (const hp2D::Quad< Real > &quad, uint k, Real weight=1.0)
 Adds the contribution to the Neumann trace from the element on one of the (at most two) sides. More...
 
void appendT (concepts::TColumn< F > *T)
 Appends the T columns to the T matrix. More...
 
virtual const concepts::Edge2dcell () const
 
virtual const Cell & cell () const=0
 Returns the cell on which the element is built. More...
 
const concepts::Real3d chi (const Real x) const
 Computes the element map. More...
 
Real3d elemMap (const Real coord_local) const
 
Real3d elemMap (const Real2d &coord_local) const
 
Real3d elemMap (const Real3d &coord_local) const
 
const concepts::QuadratureRule1dintegration () const
 Returns the integration rule. More...
 
Real jacobianDeterminant (const Real x) const
 Computes the determinant of the Jacobian. More...
 
const concepts::Z2 mapRho () const
 Returns the orientation of the MappingEdge2d corresponding to the quad. More...
 
 NTElement_BA (const concepts::Edge2d &cell)
 Constructor. More...
 
ushort p () const
 
virtual bool quadraturePoint (uint i, intPoint &p, intFormType form=ZERO, bool localCoord=false) const
 Delivers a quadrature point. More...
 
void recomputeShapefunctions ()
 Recompute shape functions, e.g. More...
 
const concepts::ShapeFunction1D< Real > * shpfct () const
 Returns the shape functions. More...
 
const concepts::ShapeFunction1D< Real > * shpfctD () const
 Returns the derivatives of the shape functions. More...
 
virtual const concepts::Edgesupport () const
 
virtual const concepts::TMatrix< F > & T () const
 
virtual const TMatrixBase< Real > & T () const=0
 Returns the T matrix of the element. More...
 
const concepts::Sequence< UnderlyingElement > & uelm () const
 Returns the Underlying Element(s) More...
 
virtual concepts::Real3d vertex (uint i) const
 
virtual ~NTElement_BA ()
 

Static Public Member Functions

static concepts::QuadRuleFactoryrule ()
 Access to the quadrature rule, which is valid for all elements of this type (hp1D::IntegrableElm). More...
 

Protected Member Functions

virtual std::ostream & info (std::ostream &os) const
 

Protected Attributes

std::unique_ptr< concepts::QuadratureRule1dint_
 The integration rule. More...
 
concepts::TMatrix< Real > T_
 T matrix of the element. More...
 

Static Protected Attributes

static concepts::QuadRuleFactory rule_
 

Private Attributes

const concepts::Edge2dcell_
 The cell. More...
 
concepts::Sequence< uint > dim_
 Local number of shape functions coming from one side. More...
 
concepts::Z2 mapRho_
 
concepts::Sequence< uint > p_
 Polynomial degree along the edge for each side. More...
 
std::unique_ptr< concepts::ShapeFunction1D< Real > > shpfct_
 The shape functions, precomputed on quadrature points. More...
 
std::unique_ptr< concepts::ShapeFunction1D< Real > > shpfctD_
 The derivatives of the shape functions. More...
 
concepts::Sequence< UnderlyingElementuelm_
 
concepts::Array< Real > values_
 The actual storage of the values of the shape functions and their derivatives along the edge. More...
 
concepts::Array< Real > valuesD_
 
concepts::Sequence< Real > weights_
 Weight for each side. More...
 

Detailed Description

template<class F = Real>
class hp2D::NTElement_BA< F >

Element on an edge representing the normal derivative of neighbouring elements, especially their mean or jump.

The number of shape functions are the sum of the number of shape functions of the two neighbouring 2D elements.

Author
Kersten Schmidt, 2010, Robert Gruhlke 2012

Definition at line 39 of file neumannTrace.hh.

Member Typedef Documentation

◆ type

typedef Real concepts::ElementWithCell< Real >::type
inherited

Definition at line 81 of file element.hh.

◆ UnderlyingElement

Definition at line 42 of file neumannTrace.hh.

Member Enumeration Documentation

◆ intFormType

Integration form, which determines terms coming from integration over reference element.

Enumerator
ZERO 
ONE 
TWO 
THREE 

Definition at line 29 of file integral.hh.

Constructor & Destructor Documentation

◆ NTElement_BA()

template<class F = Real>
hp2D::NTElement_BA< F >::NTElement_BA ( const concepts::Edge2d cell)

Constructor.

Creates the Neumann trace from the element on one side.

◆ ~NTElement_BA()

template<class F = Real>
virtual hp2D::NTElement_BA< F >::~NTElement_BA ( )
virtual

Member Function Documentation

◆ addElement()

template<class F = Real>
void hp2D::NTElement_BA< F >::addElement ( const hp2D::Quad< Real > &  quad,
uint  k,
Real  weight = 1.0 
)

Adds the contribution to the Neumann trace from the element on one of the (at most two) sides.

◆ appendT()

template<class F = Real>
void hp2D::NTElement_BA< F >::appendT ( concepts::TColumn< F > *  T)
inline

Appends the T columns to the T matrix.

Definition at line 123 of file neumannTrace.hh.

◆ cell() [1/2]

template<class F = Real>
virtual const concepts::Edge2d& hp2D::NTElement_BA< F >::cell ( ) const
inlinevirtual

Definition at line 76 of file neumannTrace.hh.

◆ cell() [2/2]

virtual const Cell& concepts::ElementWithCell< Real >::cell
pure virtualinherited

Returns the cell on which the element is built.

Implemented in hp3D::Element< Real >, hp2D::Element< Real >, and hp1D::BaseElement< Real >.

◆ chi()

const concepts::Real3d hp1D::IntegrableElm::chi ( const Real  x) const
inlineinherited

Computes the element map.

The reference element is [0,1].

Definition at line 40 of file element.hh.

◆ elemMap() [1/3]

Real3d concepts::ElementWithCell< Real >::elemMap ( const Real  coord_local) const
inlineinherited

Definition at line 86 of file element.hh.

◆ elemMap() [2/3]

Real3d concepts::ElementWithCell< Real >::elemMap ( const Real2d coord_local) const
inlineinherited

Definition at line 90 of file element.hh.

◆ elemMap() [3/3]

Real3d concepts::ElementWithCell< Real >::elemMap ( const Real3d coord_local) const
inlineinherited

Definition at line 94 of file element.hh.

◆ info()

template<class F = Real>
virtual std::ostream& hp2D::NTElement_BA< F >::info ( std::ostream &  os) const
protectedvirtual

◆ integration()

const concepts::QuadratureRule1d* hp1D::IntegrableElm::integration ( ) const
inlineinherited

Returns the integration rule.

Definition at line 51 of file element.hh.

◆ jacobianDeterminant()

Real hp1D::IntegrableElm::jacobianDeterminant ( const Real  x) const
inlineinherited

Computes the determinant of the Jacobian.

Definition at line 45 of file element.hh.

◆ mapRho()

template<class F = Real>
const concepts::Z2 hp2D::NTElement_BA< F >::mapRho ( ) const
inline

Returns the orientation of the MappingEdge2d corresponding to the quad.

Analogue to understand like topological orientations. I.e. this method just makes sense after adding a quad TODO: For 2 Quads make sequence<concepts::Z2> datatype returns : 0 if mapping is counter-clockwise 1 if mapping is clock-wise

Definition at line 113 of file neumannTrace.hh.

◆ p()

template<class F = Real>
ushort hp2D::NTElement_BA< F >::p ( ) const
inline

Definition at line 127 of file neumannTrace.hh.

◆ quadraturePoint()

virtual bool hp1D::IntegrableElm::quadraturePoint ( uint  i,
intPoint p,
intFormType  form = ZERO,
bool  localCoord = false 
) const
virtualinherited

Delivers a quadrature point.

Quadrature point consists of coordinates (for evaluation of formulas) and intermediate data, consisting of the weight and term coming from mapping.

Returns false, if the number of quadrature points is overstepped.

Parameters
inumber of quadrature point
intPointdata given back
formIntegration form
localCoordIf true, local coordinates are returned. Else physical coordinates.

Implements concepts::IntegrationCell.

◆ recomputeShapefunctions()

template<class F = Real>
void hp2D::NTElement_BA< F >::recomputeShapefunctions ( )

Recompute shape functions, e.g.

for other abscissas redefined through IntegrableElm::rule().set(...)

◆ rule()

static concepts::QuadRuleFactory& hp1D::IntegrableElm::rule ( )
inlinestaticinherited

Access to the quadrature rule, which is valid for all elements of this type (hp1D::IntegrableElm).

Change of the quadrature rule is put into practice for newly created elements and for already created elements by precomputing the integration points and shape functions on them.

Definition at line 62 of file element.hh.

◆ shpfct()

template<class F = Real>
const concepts::ShapeFunction1D<Real>* hp2D::NTElement_BA< F >::shpfct ( ) const
inline

Returns the shape functions.

Definition at line 86 of file neumannTrace.hh.

◆ shpfctD()

template<class F = Real>
const concepts::ShapeFunction1D<Real>* hp2D::NTElement_BA< F >::shpfctD ( ) const
inline

Returns the derivatives of the shape functions.

TODO: implementation.

Definition at line 92 of file neumannTrace.hh.

◆ support()

template<class F = Real>
virtual const concepts::Edge& hp2D::NTElement_BA< F >::support ( ) const
inlinevirtual

Definition at line 73 of file neumannTrace.hh.

◆ T() [1/2]

template<class F = Real>
virtual const concepts::TMatrix<F>& hp2D::NTElement_BA< F >::T ( ) const
inlinevirtual

Definition at line 78 of file neumannTrace.hh.

◆ T() [2/2]

virtual const TMatrixBase<Real >& concepts::ElementWithCell< Real >::T ( ) const
pure virtualinherited

Returns the T matrix of the element.

Implemented in hp3D::Element< Real >, and hp2D::Element< Real >.

◆ uelm()

template<class F = Real>
const concepts::Sequence<UnderlyingElement>& hp2D::NTElement_BA< F >::uelm ( ) const
inline

Returns the Underlying Element(s)

Definition at line 101 of file neumannTrace.hh.

◆ vertex()

template<class F = Real>
virtual concepts::Real3d hp2D::NTElement_BA< F >::vertex ( uint  i) const
virtual

Member Data Documentation

◆ cell_

template<class F = Real>
const concepts::Edge2d& hp2D::NTElement_BA< F >::cell_
private

The cell.

Definition at line 142 of file neumannTrace.hh.

◆ dim_

template<class F = Real>
concepts::Sequence<uint> hp2D::NTElement_BA< F >::dim_
private

Local number of shape functions coming from one side.

Definition at line 155 of file neumannTrace.hh.

◆ int_

std::unique_ptr<concepts::QuadratureRule1d> hp1D::IntegrableElm::int_
protectedinherited

The integration rule.

Definition at line 72 of file element.hh.

◆ mapRho_

template<class F = Real>
concepts::Z2 hp2D::NTElement_BA< F >::mapRho_
private

Definition at line 162 of file neumannTrace.hh.

◆ p_

template<class F = Real>
concepts::Sequence<uint> hp2D::NTElement_BA< F >::p_
private

Polynomial degree along the edge for each side.

Definition at line 157 of file neumannTrace.hh.

◆ rule_

concepts::QuadRuleFactory hp1D::IntegrableElm::rule_
staticprotectedinherited

Definition at line 74 of file element.hh.

◆ shpfct_

template<class F = Real>
std::unique_ptr<concepts::ShapeFunction1D<Real> > hp2D::NTElement_BA< F >::shpfct_
private

The shape functions, precomputed on quadrature points.

Definition at line 147 of file neumannTrace.hh.

◆ shpfctD_

template<class F = Real>
std::unique_ptr<concepts::ShapeFunction1D<Real> > hp2D::NTElement_BA< F >::shpfctD_
private

The derivatives of the shape functions.

Definition at line 149 of file neumannTrace.hh.

◆ T_

template<class F = Real>
concepts::TMatrix<Real> hp2D::NTElement_BA< F >::T_
protected

T matrix of the element.

Definition at line 139 of file neumannTrace.hh.

◆ uelm_

template<class F = Real>
concepts::Sequence<UnderlyingElement> hp2D::NTElement_BA< F >::uelm_
private

Definition at line 144 of file neumannTrace.hh.

◆ values_

template<class F = Real>
concepts::Array<Real> hp2D::NTElement_BA< F >::values_
private

The actual storage of the values of the shape functions and their derivatives along the edge.

Definition at line 153 of file neumannTrace.hh.

◆ valuesD_

template<class F = Real>
concepts::Array<Real> hp2D::NTElement_BA< F >::valuesD_
private

Definition at line 153 of file neumannTrace.hh.

◆ weights_

template<class F = Real>
concepts::Sequence<Real> hp2D::NTElement_BA< F >::weights_
private

Weight for each side.

Definition at line 159 of file neumannTrace.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