Class documentation of Concepts

Loading...
Searching...
No Matches

#include <neumannTraceSpace3d.hh>

Inheritance diagram for hp3D::NeumannTraceSpace3d:
concepts::SpaceOnCells< Real > concepts::Space< F > concepts::OutputOperator

Public Types

typedef concepts::Scan< hp2D::Element< Real > > Scan
 
typedef concepts::ElementAndFacette< hp3D::Element< Real > > UnderlyingElement
 
typedef concepts::ElementAndFacette< concepts::QuadUnderlyingQuad
 
typedef ElementWithCell< Real > type
 
typedef Scan< ElementWithCell< Real > > Scanner
 

Public Member Functions

 NeumannTraceSpace3d (const concepts::SpaceOnCells< Real > &spc, const concepts::Set< uint > faceAttr, concepts::FacetteTraceType< concepts::FaceNormalVectorRule >::traceTypes=concepts::FacetteTraceType< concepts::FaceNormalVectorRule >::FIRST, const concepts::FaceNormalVectorRule &normalVectorRule=concepts::FaceNormalVectorRule(), bool emptyElm=true)
 
 NeumannTraceSpace3d (concepts::SpaceOnCells< Real > &spc, const concepts::FacetteTraceTypes< concepts::FaceNormalVectorRule > &fttypes, bool emptyElm=true)
 
virtual ~NeumannTraceSpace3d ()
 
virtual uint dim () const
 
virtual uint nelm () const
 
virtual Scanscan () const
 
virtual uint getOutputDimension () const
 Returns the default output dimension, when we consider plotting a real-valued operator on this space.
 

Protected Member Functions

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

Detailed Description

A the NeumannTrace space of a given 3D - Finite Element space.

The elements are from type hp3D::Face.

One can restrict the trace operation by EdgeTraceTypes or via Attributes and a EdgeNormalVectorRule.

If the FE space is rebuild, one has to construct the NeumannTraceSpace again.

Additonally a map from the topological edge to the set of the underlying elements is stored.

Author
Gruhlke, Robert, 2013, Goette, Michael 2015

Definition at line 61 of file neumannTraceSpace3d.hh.

Member Typedef Documentation

◆ Scan

◆ Scanner

typedef Scan<ElementWithCell<Real > > concepts::SpaceOnCells< Real >::Scanner
inherited

Definition at line 84 of file space.hh.

◆ type

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

Definition at line 83 of file space.hh.

◆ UnderlyingElement

◆ UnderlyingQuad

Constructor & Destructor Documentation

◆ NeumannTraceSpace3d() [1/2]

hp3D::NeumannTraceSpace3d::NeumannTraceSpace3d ( const concepts::SpaceOnCells< Real > &  spc,
const concepts::Set< uint >  faceAttr,
concepts::FacetteTraceType< concepts::FaceNormalVectorRule >::traceTypes  = concepts::FacetteTraceTypeconcepts::FaceNormalVectorRule >::FIRST,
const concepts::FaceNormalVectorRule normalVectorRule = concepts::FaceNormalVectorRule(),
bool  emptyElm = true 
)

Constructor

This builds a NeumannTraceSpace only for edges with attributes that are requested.

The EdgeTraceType can be FIRST, MEAN, JUMP or PLUS and MINUS. Since the EdgeNormalVectorRule in a sense is constant for all requested edges, you have to think about the Meaning of these Traces then, since they are also defined with the help of the first underlying Element. Alternativly one uses the second Constructor.

This Constructor may easy applicate for Boundary Elements with a FIRST neumanntrace, since these elements only have up to one underlying Element.

Additional a Flag for empty Elements is given, that controls the build up of Elements with no degrees of freedoms on it. This might be used for graphical Output.

@param spc underlying Finite Element Space
@param edgeAttr  set of requested edge attributes
@param traceTypes the type of NeumannTrace, i.e. FIRST,MEAN,JUMP,PLUS,MINUS
@param normalVectorRule Given rule for the Normalvector behaviour
@param emptyElm Flag to control build of empty Elements

◆ NeumannTraceSpace3d() [2/2]

hp3D::NeumannTraceSpace3d::NeumannTraceSpace3d ( concepts::SpaceOnCells< Real > &  spc,
const concepts::FacetteTraceTypes< concepts::FaceNormalVectorRule > &  fttypes,
bool  emptyElm = true 
)

Constructor

This builds a NeumannTraceSpace for edgesthat are requested in the EdgeTraceTypes semantic.

The EdgeTraceType can be FIRST, MEAN, JUMP or PLUS and MINUS for different edges with different attributes. In opposite to the first constructor the EdgeNormalVectorRule is not constant, since they can vary for each Attribute. This is controlled with the EdgeTraceTypes variable.

This constructor may is the choice when building a NeumannTraceSpace on a Finite Element Space with different material attributes.

Additional a Flag for empty Elements is given, that controls the build up of Elements with no degrees of freedoms on it. This might be used for graphical Output.

@param spc underlying Finite Element Space
@param edgeAttr  set of requested edge attributes
@param traceTypes the type of NeumannTrace, i.e. FIRST,MEAN,JUMP,PLUS,MINUS
@param normalVectorRule Given rule for the Normalvector behaviour
@param emptyElm Flag to control build of empty Elements

◆ ~NeumannTraceSpace3d()

virtual hp3D::NeumannTraceSpace3d::~NeumannTraceSpace3d ( )
virtual

Deconstructor

Member Function Documentation

◆ dim()

virtual uint hp3D::NeumannTraceSpace3d::dim ( ) const
inlinevirtual

Returns the dimension of the underlying Finite Element Space

Implements concepts::SpaceOnCells< Real >.

Definition at line 193 of file neumannTraceSpace3d.hh.

◆ getOutputDimension()

template<class F >
virtual uint concepts::Space< F >::getOutputDimension ( ) const
inlinevirtualinherited

Returns the default output dimension, when we consider plotting a real-valued operator on this space.

Reimplemented in hp2D::hpAdaptiveSpaceHCurl, and hp2Dedge::Space.

Definition at line 50 of file space.hh.

◆ info()

virtual std::ostream & hp3D::NeumannTraceSpace3d::info ( std::ostream &  os) const
protectedvirtual

Returns the underlying 3D elements of the given edge if existing. Recompute shape functions, e.g. for other abscissas redefined through setIntegrationRule

Reimplemented from concepts::SpaceOnCells< Real >.

◆ nelm()

virtual uint hp3D::NeumannTraceSpace3d::nelm ( ) const
inlinevirtual

Returns the number of NeumannTraceElements in the Space

Implements concepts::SpaceOnCells< Real >.

Definition at line 198 of file neumannTraceSpace3d.hh.

◆ scan()

virtual Scan * hp3D::NeumannTraceSpace3d::scan ( ) const
inlinevirtual

Returns a scanner to iterate over the elements of the space TODO: why is this not working

Implements concepts::SpaceOnCells< Real >.

Definition at line 203 of file neumannTraceSpace3d.hh.


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