Class documentation of Concepts

Loading...
Searching...
No Matches
shortestDist.hh
Go to the documentation of this file.
1
7#ifndef shortestDist_hh
8#define shortestDist_hh
9
10#include <cmath>
12#include "singularSet.hh"
13
14namespace hp3D {
15
16 // forward declarations
17 class Hexahedron;
18 using concepts::Real;
19
20 // ********************************************************* TrivialWeight **
21
27 public:
28 Real operator()(const SingularSet&, concepts::Real3d,
29 const Hexahedron*) const { return 1.0; }
30 };
31
32 std::ostream& operator<<(std::ostream& os, const TrivialWeight& p);
33
34 // ********************************************************** ShortestDist **
35
43 public:
52 Real operator()(const SingularSet& singularities,
53 concepts::Real3d point, const Hexahedron* elm) const;
54 };
55
56 std::ostream& operator<<(std::ostream& os, const ShortestDist& p);
57
58 // ***************************************************** PostprocessSquare **
59
65 public:
66 static Real post(Real x) { return x*x; }
67 };
68
69 std::ostream& operator<<(std::ostream& os, const PostprocessSquare& p);
70
71 // ******************************************************* PostprocessRoot **
72
78 public:
79 static Real post(Real x) { return std::sqrt(x); }
80 };
81
82 std::ostream& operator<<(std::ostream& os, const PostprocessRoot& p);
83
84 // ****************************************************** PostprocessRoot4 **
85
91 public:
92 static Real post(Real x) { return std::sqrt(std::sqrt(x)); }
93 };
94
95 std::ostream& operator<<(std::ostream& os, const PostprocessRoot4& p);
96
97 // ********************************************************* Postprocess34 **
98
104 public:
105 static Real post(Real x) { return std::pow(x, 0.75); }
106 };
107
108 std::ostream& operator<<(std::ostream& os, const Postprocess34& p);
109
110 // ********************************************************* Postprocess14 **
111
117 public:
118 static Real post(Real x) { return std::pow(x, 0.25); }
119 };
120
121 std::ostream& operator<<(std::ostream& os, const Postprocess14& p);
122
123 // ********************************************************** Postprocess4 **
124
130 public:
131 static Real post(Real x) { return x*x*x*x; }
132 };
133
134 std::ostream& operator<<(std::ostream& os, const Postprocess4& p);
135
136 // ********************************************************** Postprocess3 **
137
143 public:
144 static Real post(Real x) { return x*x*x; }
145 };
146
147 std::ostream& operator<<(std::ostream& os, const Postprocess3& p);
148
149 // ********************************************************** DistancePost **
150
160 template<typename DistClass, typename Function>
162 public:
166 Real operator()(const SingularSet& singularities,
167 concepts::Real3d point, const Hexahedron* elm) const {
168 return Function::post(dist_(singularities, point, elm));
169 }
170 private:
171 DistClass dist_;
172 };
173
174 template<typename DistClass, typename Function>
175 inline std::ostream& operator<<(std::ostream& os,
176 const DistancePost<DistClass, Function>& p) {
177 return os << Function() << '(' << DistClass() << ')';
178 }
179
180 // ********************************************************** ProductOfAll **
181
193 public:
194 Real operator()(const SingularSet& singularities,
195 concepts::Real3d point, const Hexahedron* elm) const;
196 };
197
198 std::ostream& operator<<(std::ostream& os, const ProductOfAll& p);
199
200 // *********************************************************** DaugeWeight **
201
230 public:
231 Real operator()(const SingularSet& singularities,
232 concepts::Real3d point, const Hexahedron* elm) const;
233 };
234
235 std::ostream& operator<<(std::ostream& os, const DaugeWeight& p);
236
237 // *************************************************** ShortestDistLimited **
238
247 public:
248 ShortestDistLimited() : shortestdist_() {}
257 Real operator()(const SingularSet& singularities,
258 concepts::Real3d point, const Hexahedron* elm) const {
259 return shortestdist_(singularities, point, elm);
260 }
261 private:
262 const ShortestDist shortestdist_;
263 };
264
265 std::ostream& operator<<(std::ostream& os, const ShortestDistLimited& p);
266
267} // namespace hp3D
268
269#endif // shortestDist_hh
Real operator()(const SingularSet &singularities, concepts::Real3d point, const Hexahedron *elm) const
Real operator()(const SingularSet &singularities, concepts::Real3d point, const Hexahedron *elm) const
Real operator()(const SingularSet &singularities, concepts::Real3d point, const Hexahedron *elm) const
double Real
Definition typedefs.hh:39
Definition meshDX.hh:23