Abstract class for a 3D FEM element. More...

#include <element.hh>

Inheritance diagram for hp3D::Element< F >:
concepts::ElementWithCell< F >

Public Types

typedef F type
 

Public Member Functions

void appendT (concepts::TColumn< Real > *T)
 Appends the T columns to the T matrix. More...
 
virtual const concepts::Cell3cell () const =0
 Returns the cell on which the element is built. More...
 
 Element (concepts::TColumn< Real > *T, const ushort *p)
 Constructor. More...
 
 Element (concepts::TColumn< Real > *T, uint p)
 Constructor. More...
 
Real3d elemMap (const Real coord_local) const
 
Real3d elemMap (const Real2d &coord_local) const
 
Real3d elemMap (const Real3d &coord_local) const
 
virtual bool operator< (const Element< F > &elm) const =0
 Comparison operator for elements. More...
 
const ushort * p () const
 Returns the polynomial degree. More...
 
virtual const concepts::Connector3support () const =0
 Returns the topolgical support of the element. More...
 
virtual const concepts::TMatrix< Real > & T () const
 Returns the T matrix of the element. More...
 
virtual concepts::Real3d vertex (uint i) const =0
 Returns the coordinates of the ith vertex of this element. More...
 

Protected Member Functions

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

Protected Attributes

concepts::TMatrix< Real > T_
 T matrix of the element. More...
 

Private Attributes

ushort p_ [3]
 Polynomial degree. More...
 

Detailed Description

template<class F>
class hp3D::Element< F >

Abstract class for a 3D FEM element.

All FEM elements have to be derived from this class. It prescribes the interface for querying the support of the element and it has a polynomial degree (ie. hp).

Author
Philipp Frauenfelder, 2001

Definition at line 29 of file element.hh.

Member Typedef Documentation

◆ type

template<typename F >
typedef F concepts::ElementWithCell< F >::type
inherited

Definition at line 81 of file element.hh.

Constructor & Destructor Documentation

◆ Element() [1/2]

template<class F >
hp3D::Element< F >::Element ( concepts::TColumn< Real > *  T,
uint  p 
)
inline

Constructor.

This constructor initializes an isotropic polynomial degree.

Parameters
TList of T columns for this element
pPolynomial degree of this element

Definition at line 36 of file element.hh.

◆ Element() [2/2]

template<class F >
hp3D::Element< F >::Element ( concepts::TColumn< Real > *  T,
const ushort *  p 
)
inline

Constructor.

This constructor can initialize an anisotropic polynomial degree.

Parameters
TList of T columns for this element
pPolynomial degree in the three spatial directions

Definition at line 45 of file element.hh.

Member Function Documentation

◆ appendT()

template<class F >
void hp3D::Element< F >::appendT ( concepts::TColumn< Real > *  T)
inline

Appends the T columns to the T matrix.

Definition at line 62 of file element.hh.

◆ cell()

template<class F >
virtual const concepts::Cell3& hp3D::Element< F >::cell ( ) const
pure virtual

Returns the cell on which the element is built.

Possible are tetrahedrons, hexahedron, prims and pyramids.

Implements concepts::ElementWithCell< F >.

◆ elemMap() [1/3]

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

Definition at line 86 of file element.hh.

◆ elemMap() [2/3]

template<typename F >
Real3d concepts::ElementWithCell< F >::elemMap ( const Real2d coord_local) const
inlineinherited

Definition at line 90 of file element.hh.

◆ elemMap() [3/3]

template<typename F >
Real3d concepts::ElementWithCell< F >::elemMap ( const Real3d coord_local) const
inlineinherited

Definition at line 94 of file element.hh.

◆ info()

template<class F >
virtual std::ostream& hp3D::Element< F >::info ( std::ostream &  os) const
protectedvirtual

Reimplemented in hp3D::Hexahedron.

◆ operator<()

template<class F >
virtual bool hp3D::Element< F >::operator< ( const Element< F > &  elm) const
pure virtual

Comparison operator for elements.

Implemented in hp3D::Hexahedron.

◆ p()

template<class F >
const ushort* hp3D::Element< F >::p ( ) const
inline

Returns the polynomial degree.

The returned array has 3 elements.

Definition at line 51 of file element.hh.

◆ support()

template<class F >
virtual const concepts::Connector3& hp3D::Element< F >::support ( ) const
pure virtual

Returns the topolgical support of the element.

Possible supports for an element are hexahedrons, tetrahedrons, prisms and pyramids.

◆ T()

template<class F >
virtual const concepts::TMatrix<Real>& hp3D::Element< F >::T ( ) const
inlinevirtual

Returns the T matrix of the element.

Implements concepts::ElementWithCell< F >.

Definition at line 59 of file element.hh.

◆ vertex()

template<class F >
virtual concepts::Real3d hp3D::Element< F >::vertex ( uint  i) const
pure virtual

Returns the coordinates of the ith vertex of this element.

Parameters
iIndex of the vertex

Implemented in hp3D::Hexahedron.

Member Data Documentation

◆ p_

template<class F >
ushort hp3D::Element< F >::p_[3]
private

Polynomial degree.

Definition at line 84 of file element.hh.

◆ T_

template<class F >
concepts::TMatrix<Real> hp3D::Element< F >::T_
protected

T matrix of the element.

Definition at line 81 of file element.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