Builds the trace space of a FE space consisting of hexahedral elements. More...

#include <traces.hh>

Inheritance diagram for hp3D::TraceSpace:
concepts::SpaceOnCells< Real > concepts::Space< Real >

Public Types

typedef concepts::Scan< hp2D::Element< Real > > Scan
 
typedef Scan< ElementWithCell< Real > > Scanner
 
enum  traceTypes { FIRST, MEAN, JUMP }
 
typedef ElementWithCell< Real > type
 
typedef concepts::ElementAndFacette< hp3D::Element< Real > > UnderlyingElement
 

Public Member Functions

virtual uint dim () const
 
virtual uint dim () const=0
 Returns the dimension of the space. More...
 
concepts::Set< uint > getDofIds () const
 Returns the DOF indices belonging to the trace space. More...
 
virtual uint getOutputDimension () const
 Returns the default output dimension, when we consider plotting a real-valued operator on this space. More...
 
virtual uint nelm () const
 Returns the number of elements in the space. More...
 
virtual uint nelm () const=0
 Returns the number of elements in the space. More...
 
virtual void recomputeShapeFunctions ()
 
virtual Scanscan () const
 Returns a scanner to iterate over the elements. More...
 
virtual Scannerscan () const=0
 Returns a scanner to iterate over the elements of the space. More...
 
 TraceSpace (const concepts::SpaceOnCells< Real > &spc, const concepts::Set< uint > faceAttr, enum traceTypes type=FIRST, const concepts::FaceNormalVectorRule &normalVectorRule=concepts::FaceNormalVectorRule())
 Constructor. More...
 
const concepts::HashMap< concepts::Sequence< UnderlyingElement > > uelm () const
 Returns the mapping to the underlying 3D elements. More...
 
const concepts::Sequence< UnderlyingElementuelm (const concepts::Quad &quad) const
 Returns the underlying 3D elements. More...
 
virtual ~TraceSpace ()
 

Protected Member Functions

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

Private Member Functions

template<class F >
bool build_ (const Hexahedron *elm, F condition)
 
void setType_ (enum traceTypes type, const concepts::FaceNormalVectorRule &normalVectorRule)
 

Private Attributes

const uint dim_
 Dimension of the FE space. More...
 
concepts::Joiner< hp2D::Element< Real > *, 1 > * elm_
 Linked list of the elements. More...
 
concepts::HashMap< hp2D::Quad< Real > * > faces_
 Map from key of (topological) face to the element. More...
 
std::unique_ptr< HexahedronFaceBasefaceTransfer_
 Handler for the transfer of dofs of the Hexahedron to the dofs of the face. More...
 
uint nelm_
 Number of elements currently active in the space. More...
 
concepts::HashMap< concepts::Sequence< UnderlyingElement > > uelm_
 Map from key of (topological) face to the underlying element. More...
 

Detailed Description

Builds the trace space of a FE space consisting of hexahedral elements.

Author
Philipp Kliewe, 2013

Definition at line 35 of file traces.hh.

Member Typedef Documentation

◆ Scan

Definition at line 37 of file traces.hh.

◆ 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

Member Enumeration Documentation

◆ traceTypes

Enumerator
FIRST 
MEAN 
JUMP 

Definition at line 40 of file traces.hh.

Constructor & Destructor Documentation

◆ TraceSpace()

hp3D::TraceSpace::TraceSpace ( const concepts::SpaceOnCells< Real > &  spc,
const concepts::Set< uint >  faceAttr,
enum traceTypes  type = FIRST,
const concepts::FaceNormalVectorRule normalVectorRule = concepts::FaceNormalVectorRule() 
)

Constructor.

Parameters
spcThe underlying space.
faceAttrSet of face attibutes which define the trace space.

◆ ~TraceSpace()

virtual hp3D::TraceSpace::~TraceSpace ( )
virtual

Member Function Documentation

◆ build_()

template<class F >
bool hp3D::TraceSpace::build_ ( const Hexahedron elm,
condition 
)
private

◆ dim() [1/2]

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

Definition at line 57 of file traces.hh.

◆ dim() [2/2]

virtual uint concepts::SpaceOnCells< Real >::dim ( ) const
pure virtualinherited

◆ getDofIds()

concepts::Set<uint> hp3D::TraceSpace::getDofIds ( ) const

Returns the DOF indices belonging to the trace space.

◆ getOutputDimension()

virtual uint concepts::Space< Real >::getOutputDimension ( ) const
inlinevirtualinherited

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

Definition at line 50 of file space.hh.

◆ info()

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

Reimplemented from concepts::SpaceOnCells< Real >.

◆ nelm() [1/2]

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

Returns the number of elements in the space.

Definition at line 60 of file traces.hh.

◆ nelm() [2/2]

virtual uint concepts::SpaceOnCells< Real >::nelm ( ) const
pure virtualinherited

Returns the number of elements in the space.

Implements concepts::Space< Real >.

Implemented in hp2D::hpAdaptiveSpace< Real >, hp3D::Space, hp2Dedge::Space, hp2D::Space, hp2D::hpAdaptiveSpace< Real >, and hp1D::Space.

◆ recomputeShapeFunctions()

virtual void hp3D::TraceSpace::recomputeShapeFunctions ( )
virtual

◆ scan() [1/2]

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

Returns a scanner to iterate over the elements.

Definition at line 63 of file traces.hh.

◆ scan() [2/2]

virtual Scanner* concepts::SpaceOnCells< Real >::scan ( ) const
pure virtualinherited

Returns a scanner to iterate over the elements of the space.

Implements concepts::Space< Real >.

Implemented in hp2D::hpAdaptiveSpace< Real >, hp3D::Space, hp2Dedge::Space, hp2D::Space, hp2D::hpAdaptiveSpace< Real >, and hp1D::Space.

◆ setType_()

void hp3D::TraceSpace::setType_ ( enum traceTypes  type,
const concepts::FaceNormalVectorRule normalVectorRule 
)
private

◆ uelm() [1/2]

const concepts::HashMap<concepts::Sequence<UnderlyingElement> > hp3D::TraceSpace::uelm ( ) const
inline

Returns the mapping to the underlying 3D elements.

Definition at line 80 of file traces.hh.

◆ uelm() [2/2]

const concepts::Sequence<UnderlyingElement> hp3D::TraceSpace::uelm ( const concepts::Quad quad) const
inline

Returns the underlying 3D elements.

Definition at line 70 of file traces.hh.

Member Data Documentation

◆ dim_

const uint hp3D::TraceSpace::dim_
private

Dimension of the FE space.

Definition at line 95 of file traces.hh.

◆ elm_

concepts::Joiner<hp2D::Element<Real>* , 1>* hp3D::TraceSpace::elm_
private

Linked list of the elements.

Definition at line 101 of file traces.hh.

◆ faces_

concepts::HashMap<hp2D::Quad<Real>*> hp3D::TraceSpace::faces_
private

Map from key of (topological) face to the element.

Definition at line 107 of file traces.hh.

◆ faceTransfer_

std::unique_ptr<HexahedronFaceBase> hp3D::TraceSpace::faceTransfer_
private

Handler for the transfer of dofs of the Hexahedron to the dofs of the face.

Definition at line 111 of file traces.hh.

◆ nelm_

uint hp3D::TraceSpace::nelm_
private

Number of elements currently active in the space.

Definition at line 98 of file traces.hh.

◆ uelm_

concepts::HashMap<concepts::Sequence<UnderlyingElement> > hp3D::TraceSpace::uelm_
private

Map from key of (topological) face to the underlying element.

Definition at line 104 of file traces.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