Class documentation of Concepts

Loading...
Searching...
No Matches
neumannTraceSpace.hh
Go to the documentation of this file.
1
7#ifndef hp2dntracespace_hh
8#define hp2dntracespace_hh
9
10#include "toolbox/sequence.hh"
11#include "formula/boundary.hh"
12#include "formula/exceptions.hh"
14#include "geometry/cellConditions.hh"
15#include "space/space.hh"
16#include "hp1D/element.hh"
17#include "hp2D/element.hh"
18#include "hp2D/edge.hh"
19#include "hp2D/gridInfo.hh"
22
24
25namespace hp2D {
26
27 using concepts::Real;
28
29 // forward declaration
30 template<typename F>
31 class Quad;
32
33
34 // ****************************************************** NeumannTraceSpace **
35
52 public:
56
80 const concepts::Set<uint> edgeAttr,
81 enum concepts::EdgeTraceType::traceTypes type = concepts::EdgeTraceType::FIRST,
82 const concepts::EdgeNormalVectorRule& normalVectorRule =
83 concepts::EdgeNormalVectorRule(), bool emptyElm = true);
84
85
93 NeumannTraceSpace(const GridInfo<Real>& gInfo, uint sDim,
94 enum concepts::EdgeTraceType::traceTypes type = concepts::EdgeTraceType::FIRST,
95 const concepts::EdgeNormalVectorRule& normalVectorRule =
96 concepts::EdgeNormalVectorRule(), bool emptyElm = true);
97
119 const concepts::EdgeTraceTypes& ettypes, bool emptyElm = true);
120
125
129 inline virtual uint dim() const {
130 return dim_;
131 }
132
136 inline virtual uint nelm() const {
137 return nelm_;
138 }
139
143 virtual Scan* scan() const {
145 }
146
151 const concepts::Edge edge) const {
152 auto i = edges_.find(edge.key());
153 if (i == edges_.end())
155 return i->second->uelm();
156 }
157
162
163
164 protected:
165 virtual std::ostream& info(std::ostream& os) const;
166 private:
168 const uint dim_;
169
171 uint nelm_;
172
175
176 //number of irregular builded elements
177 uint nIrrelm_;
178
179 //flag controlling elements with no dofs in the space
180 bool emptyElements_;
181
188
194
199
202
203 // Builds the NeumanntraceElements with Informations about the Underyling Elements
204 void build_regular_(const hp2D::GridInfo<Real>& gInfo);
205
206 //actually creates the irregular ELements with the help of the mappings
207 void build_irregular_(const hp2D::GridInfo<Real>& gInfo);
218 Real weight_(bool first, const Z2 dir, const uint nUelm,
219 const concepts::Attribute attrb) const;
220
221 };
222
223} // namespace hp2D
224
225#endif // hp2dntracespace_hh
const Key & key() const
Returns the key of the connector.
Definition connector.hh:105
NeumannTraceSpace(const concepts::SpaceOnCells< Real > &spc, const concepts::Set< uint > edgeAttr, enum concepts::EdgeTraceType::traceTypes type=concepts::EdgeTraceType::FIRST, const concepts::EdgeNormalVectorRule &normalVectorRule=concepts::EdgeNormalVectorRule(), bool emptyElm=true)
NeumannTraceSpace(const GridInfo< Real > &gInfo, uint sDim, enum concepts::EdgeTraceType::traceTypes type=concepts::EdgeTraceType::FIRST, const concepts::EdgeNormalVectorRule &normalVectorRule=concepts::EdgeNormalVectorRule(), bool emptyElm=true)
virtual Scan * scan() const
virtual void recomputeShapefunctions()
virtual std::ostream & info(std::ostream &os) const
Returns information in an output stream.
NeumannTraceSpace(concepts::SpaceOnCells< Real > &spc, const concepts::EdgeTraceTypes &ettypes, bool emptyElm=true)
virtual uint dim() const
virtual uint nelm() const
const concepts::Sequence< UnderlyingElement > uelm(const concepts::Edge edge) const
double Real
Definition typedefs.hh:39
Set< F > makeSet(uint n, const F &first,...)
Definition set.hh:320