Class documentation of Concepts

Loading...
Searching...
No Matches
traces.hh
Go to the documentation of this file.
1
7#ifndef HP3D_TRACES_HH
8#define HP3D_TRACES_HH
9
10#include "space/space.hh"
12#include "hp2D/quad.hh"
13#include "hp3D/element.hh"
14
15namespace concepts {
16 // forward declarations
17 template <class F>
18 class Set;
19}
20
21namespace hp3D {
22
23 // forward declarations
24 class Hexahedron;
25 class HexahedronFaceBase;
26
27 using concepts::Real;
28
29 // ******************************************************** hp3D::TraceSpace **
30
35 class TraceSpace : public concepts::SpaceOnCells<Real> {
36 public:
39
40 enum traceTypes { FIRST, MEAN, JUMP };
41 // for the moment only FIRST available
42
50 const concepts::Set<uint> faceAttr,
51 enum traceTypes type = FIRST,
53 normalVectorRule = concepts::FaceNormalVectorRule());
54
55 virtual ~TraceSpace();
56
57 virtual uint dim() const { return dim_; }
58
60 virtual uint nelm() const { return nelm_; }
61
63 virtual Scan* scan() const
64 {
66 }
67
70 uelm(const concepts::Quad &quad) const
71 {
73 const_iterator i = uelm_.find(quad.key());
74 if( i == uelm_.end() )
76 return i->second;
77 }
78
81 {
82 return uelm_;
83 }
84
85 virtual void recomputeShapeFunctions();
86
89
90 protected:
91 virtual std::ostream& info(std::ostream& os) const;
92
93 private:
95 const uint dim_;
96
98 uint nelm_;
99
102
105
108
111 std::unique_ptr<HexahedronFaceBase> faceTransfer_;
112
113 void setType_(enum traceTypes type,
114 const concepts::FaceNormalVectorRule &normalVectorRule);
115
116 template<class F>
117 bool build_(const Hexahedron *elm, F condition);
118 };
119
120}
121
122#endif // HP3D_TRACES_HH
const Key & key() const
Returns the key of the connector.
Definition connector.hh:105
virtual uint nelm() const
Definition traces.hh:60
concepts::Set< uint > getDofIds() const
virtual std::ostream & info(std::ostream &os) const
Returns information in an output stream.
const concepts::HashMap< concepts::Sequence< UnderlyingElement > > uelm() const
Definition traces.hh:80
virtual uint dim() const
Returns the dimension of the space.
Definition traces.hh:57
virtual Scan * scan() const
Definition traces.hh:63
const concepts::Sequence< UnderlyingElement > uelm(const concepts::Quad &quad) const
Definition traces.hh:70
TraceSpace(const concepts::SpaceOnCells< Real > &spc, const concepts::Set< uint > faceAttr, enum traceTypes type=FIRST, const concepts::FaceNormalVectorRule &normalVectorRule=concepts::FaceNormalVectorRule())
double Real
Definition typedefs.hh:39
Set< F > makeSet(uint n, const F &first,...)
Definition set.hh:320
Definition meshDX.hh:23