Builds the trace space of an FE space. More...
#include <traces.hh>


Public Types | |
| typedef concepts::Scan < hp1D::Element< Real > > | Scan |
| typedef Scan< ElementWithCell < Real > > | Scanner |
| enum | traceTypes { FIRST, MEAN, JUMP } |
| typedef concepts::ElementAndFacette < hp2D::Element< Real > > | UnderlyingElement |
Public Member Functions | |
| virtual uint | dim () const |
| Returns the dimension of the space. | |
| virtual uint | nelm () const |
| Returns the number of elements in the space. | |
| virtual void | recomputeShapefunctions () |
| Recompute shape functions, e.g. | |
| virtual Scan * | scan () const |
| Returns a scanner to iterate over the elements of the space. | |
| TraceSpace (concepts::SpaceOnCells< Real > &spc, const concepts::CellConditions *cc=0, enum traceTypes type=FIRST) | |
| Constructor. | |
| TraceSpace (const concepts::SpaceOnCells< Real > &spc, const concepts::Set< uint > edgeAttr, enum traceTypes type=FIRST) | |
| Constructor. | |
| TraceSpace (const concepts::SpaceOnCells< Real > &spc, const concepts::CellConditions *cc=0, enum traceTypes type=FIRST) | |
| const concepts::Sequence < UnderlyingElement > | uelm (const concepts::Edge edge) const |
| Returns the underlying 2D elements. | |
| const concepts::HashMap < concepts::Sequence < UnderlyingElement > > | uelm () const |
| Returns the mapping from the key of (topological) edge to the underlying 2D elements. | |
| virtual | ~TraceSpace () |
Protected Member Functions | |
| virtual std::ostream & | info (std::ostream &os) const |
| Returns information in an output stream. | |
Private Member Functions | |
| template<class F > | |
| bool | build_ (const Quad< Real > *elm, F condition) |
| Builds elements for the edges w.r.t. | |
| void | constructType_ (enum traceTypes type) |
| template<class F > | |
| void | test_ (const concepts::ElementWithCell< Real > &elm, F condition) |
| Test if not implemented elements have edges w.r.t. | |
Private Attributes | |
| const uint | dim_ |
| Dimension of the FE space. | |
| concepts::HashMap < hp1D::Element< Real > * > | edges_ |
| Map from key of (topological) edge to the element. | |
| concepts::Joiner < hp1D::Element< Real > *, 1 > * | elm_ |
| Linked list of the elements. | |
| uint | nelm_ |
| Number of elements currently active in the mesh. | |
| std::auto_ptr< QuadEdgeBase > | quadEdge_ |
| concepts::HashMap < concepts::Sequence < UnderlyingElement > > | uelm_ |
| Map from key of (topological) edge to the underlying 2D elements. | |
| bool | warn_edgeBuildMissElem_ |
Builds the trace space of an FE space.
The elements are from type hp2D::Edge.
One can restrict the trace operation by cell conditions.
If the FE space is rebuild, one has to construct the trace space again.
Additonally a map from the topological edge to the set of the underlying elements is stored.
BGT_0.cc, exactDtN.cc, inhomDirichletBCsLagrange.cc, inhomNeumannBCs.cc, and RobinBCs.cc.
| typedef concepts::Scan<hp1D::Element<Real> > hp2D::TraceSpace::Scan |
typedef Scan<ElementWithCell<Real > > concepts::SpaceOnCells< Real >::Scanner [inherited] |
Reimplemented from concepts::Space< Real >.
Reimplemented in linDG3D::FvdgSpace.
| hp2D::TraceSpace::TraceSpace | ( | const concepts::SpaceOnCells< Real > & | spc, |
| const concepts::Set< uint > | edgeAttr, | ||
| enum traceTypes | type = FIRST |
||
| ) |
Constructor.
| spc | underlying space |
| edgeAttr | set of edge attributes |
| hp2D::TraceSpace::TraceSpace | ( | concepts::SpaceOnCells< Real > & | spc, |
| const concepts::CellConditions * | cc = 0, |
||
| enum traceTypes | type = FIRST |
||
| ) |
Constructor.
| spc | underlying space |
| cc | build trace space w.r.t. cell conditions |
If no cell conditions are given, the trace to all edges in the mesh is taken.
| hp2D::TraceSpace::TraceSpace | ( | const concepts::SpaceOnCells< Real > & | spc, |
| const concepts::CellConditions * | cc = 0, |
||
| enum traceTypes | type = FIRST |
||
| ) |
| virtual hp2D::TraceSpace::~TraceSpace | ( | ) | [virtual] |
| bool hp2D::TraceSpace::build_ | ( | const Quad< Real > * | elm, |
| F | condition | ||
| ) | [private] |
Builds elements for the edges w.r.t.
to condition of the element elm, if it is a hp2D::Quad.
| void hp2D::TraceSpace::constructType_ | ( | enum traceTypes | type | ) | [private] |
| virtual uint hp2D::TraceSpace::dim | ( | ) | const [inline, virtual] |
Returns the dimension of the space.
Implements concepts::Space< Real >.
| virtual std::ostream& hp2D::TraceSpace::info | ( | std::ostream & | os | ) | const [protected, virtual] |
Returns information in an output stream.
Reimplemented from concepts::SpaceOnCells< Real >.
| virtual uint hp2D::TraceSpace::nelm | ( | ) | const [inline, virtual] |
Returns the number of elements in the space.
Implements concepts::Space< Real >.
| virtual void hp2D::TraceSpace::recomputeShapefunctions | ( | ) | [virtual] |
Recompute shape functions, e.g.
for other abscissas redefined through setIntegrationRule
| virtual Scan* hp2D::TraceSpace::scan | ( | ) | const [inline, virtual] |
Returns a scanner to iterate over the elements of the space.
Implements concepts::SpaceOnCells< Real >.
| void hp2D::TraceSpace::test_ | ( | const concepts::ElementWithCell< Real > & | elm, |
| F | condition | ||
| ) | [private] |
Test if not implemented elements have edges w.r.t.
to condition and throws an exception in that case.
| const concepts::Sequence<UnderlyingElement> hp2D::TraceSpace::uelm | ( | const concepts::Edge | edge | ) | const [inline] |
| const concepts::HashMap<concepts::Sequence<UnderlyingElement> > hp2D::TraceSpace::uelm | ( | ) | const [inline] |
const uint hp2D::TraceSpace::dim_ [private] |
concepts::HashMap<hp1D::Element<Real>* > hp2D::TraceSpace::edges_ [private] |
concepts::Joiner<hp1D::Element<Real>*, 1>* hp2D::TraceSpace::elm_ [private] |
uint hp2D::TraceSpace::nelm_ [private] |
std::auto_ptr<QuadEdgeBase> hp2D::TraceSpace::quadEdge_ [private] |
bool hp2D::TraceSpace::warn_edgeBuildMissElem_ [private] |