HArD::Core2D
Hybrid Arbitrary Degree::Core 2D - Library to implement 2D schemes with edge and cell polynomials as unknowns
Loading...
Searching...
No Matches
ns-solutions.hpp
Go to the documentation of this file.
1#ifndef NS_SOLUTIONS_HPP
2#define NS_SOLUTIONS_HPP
3
4#include <Eigen/Dense>
5
6#include "MeshBuilder2D.hpp"
7
8namespace HArDCore2D
9{
10 namespace NavierStokesSolutions
11 {
12 //------------------------------------------------------------------------------
13 // Interface for exact solutions
14
16 IExactSolution(std::string name, bool is_stokes, double viscosity,
17 bool isNonNewtonian = false, double flow_index = 2.0,
18 double degen_param = 0.0);
19 virtual ~IExactSolution();
20
22 inline std::string name() const {
23 return m_name;
24 }
25
28 inline bool isStokes() const {
29 return m_is_stokes;
30 }
31
33 inline double viscosity() const {
34 return m_viscosity;
35 }
36
38 // if true, the fluid is assumed to be Carreau-Yasuda and the
39 // user should additionally specify the flow index and
40 // degeneracy parameter
41 inline bool isNonNewtonian() const {
42 return m_is_nonnewtonian;
43 }
44
46 inline double flowIndex() const {
47 return m_flow_index;
48 }
49
51 inline double degenParam() const {
52 return m_degen_param;
53 }
54
55 virtual Eigen::Vector2d momentumForcingTerm(const Eigen::Vector2d & x, const double & t = 0) const = 0;
56 virtual double compressibilityForcingTerm(const Eigen::Vector2d & x, const double & t = 0) const = 0;
57 virtual Eigen::Vector2d velocity(const Eigen::Vector2d & x, const double & t = 0) const = 0;
58 virtual double pressure(const Eigen::Vector2d & x, const double & t = 0) const = 0;
59 virtual Eigen::Matrix2d velocityGradient(const Eigen::Vector2d & x, const double & t = 0) const = 0;
60 virtual Eigen::Vector2d pressureGradient(const Eigen::Vector2d & x, const double & t = 0) const = 0;
61
62 protected:
63 std::string m_name;
69 };
70
71 //------------------------------------------------------------------------------
72 // Linear velocity
73
76
77 Eigen::Vector2d momentumForcingTerm(const Eigen::Vector2d & x, const double & t = 0) const;
78 double compressibilityForcingTerm(const Eigen::Vector2d & x, const double & t = 0) const;
79 Eigen::Vector2d velocity(const Eigen::Vector2d & x, const double & t = 0) const;
80 double pressure(const Eigen::Vector2d & x, const double & t = 0) const;
81 Eigen::Matrix2d velocityGradient(const Eigen::Vector2d & x, const double & t = 0) const;
82 Eigen::Vector2d pressureGradient(const Eigen::Vector2d & x, const double & t = 0) const;
83 };
84
85 //------------------------------------------------------------------------------
86 // Linear pressure
87
90
91 Eigen::Vector2d momentumForcingTerm(const Eigen::Vector2d & x, const double & t = 0) const;
92 double compressibilityForcingTerm(const Eigen::Vector2d & x, const double & t = 0) const;
93 Eigen::Vector2d velocity(const Eigen::Vector2d & x, const double & t = 0) const;
94 double pressure(const Eigen::Vector2d & x, const double & t = 0) const;
95 Eigen::Matrix2d velocityGradient(const Eigen::Vector2d & x, const double & t = 0) const;
96 Eigen::Vector2d pressureGradient(const Eigen::Vector2d & x, const double & t = 0) const;
97 };
98
99 //------------------------------------------------------------------------------
100 // Quadratic velocity
101
104
105 Eigen::Vector2d momentumForcingTerm(const Eigen::Vector2d & x, const double & t = 0) const;
106 double compressibilityForcingTerm(const Eigen::Vector2d & x, const double & t = 0) const;
107 Eigen::Vector2d velocity(const Eigen::Vector2d & x, const double & t = 0) const;
108 double pressure(const Eigen::Vector2d & x, const double & t = 0) const;
109 Eigen::Matrix2d velocityGradient(const Eigen::Vector2d & x, const double & t = 0) const;
110 Eigen::Vector2d pressureGradient(const Eigen::Vector2d & x, const double & t = 0) const;
111 };
112
113 //------------------------------------------------------------------------------
114 // Trigonometric
115
118
119 Eigen::Vector2d momentumForcingTerm(const Eigen::Vector2d & x, const double & t = 0) const;
120 double compressibilityForcingTerm(const Eigen::Vector2d & x, const double & t = 0) const;
121 Eigen::Vector2d velocity(const Eigen::Vector2d & x, const double & t = 0) const;
122 double pressure(const Eigen::Vector2d & x, const double & t = 0) const;
123 Eigen::Matrix2d velocityGradient(const Eigen::Vector2d & x, const double & t = 0) const;
124 Eigen::Vector2d pressureGradient(const Eigen::Vector2d & x, const double & t = 0) const;
125 };
126
127 //------------------------------------------------------------------------------
128 // A viscosity-dependent solution of the Stokes problem to test
129 // pressure-robustness
130
132 PressureRobustStokes(const double & viscosity);
133
134 Eigen::Vector2d momentumForcingTerm(const Eigen::Vector2d & x, const double & t = 0) const;
135 double compressibilityForcingTerm(const Eigen::Vector2d & x, const double & t = 0) const;
136 Eigen::Vector2d velocity(const Eigen::Vector2d & x, const double & t = 0) const;
137 double pressure(const Eigen::Vector2d & x, const double & t = 0) const;
138 Eigen::Matrix2d velocityGradient(const Eigen::Vector2d & x, const double & t = 0) const;
139 Eigen::Vector2d pressureGradient(const Eigen::Vector2d & x, const double & t = 0) const;
140 };
141
142 //------------------------------------------------------------------------------
143 // A viscosity-dependent solution of the Navier-Stokes problem to test
144 // pressure-robustness
145
148
149 Eigen::Vector2d momentumForcingTerm(const Eigen::Vector2d & x, const double & t = 0) const;
150 double compressibilityForcingTerm(const Eigen::Vector2d & x, const double & t = 0) const;
151 Eigen::Vector2d velocity(const Eigen::Vector2d & x, const double & t = 0) const;
152 double pressure(const Eigen::Vector2d & x, const double & t = 0) const;
153 Eigen::Matrix2d velocityGradient(const Eigen::Vector2d & x, const double & t = 0) const;
154 Eigen::Vector2d pressureGradient(const Eigen::Vector2d & x, const double & t = 0) const;
155 };
156
157 //------------------------------------------------------------------------------
158 // A solution with zero velocity and non-zero pressure to test
159 // pressure-robustness
160
161 struct OnlyPressure : public IExactSolution {
162 OnlyPressure(const double & viscosity);
163
164 Eigen::Vector2d momentumForcingTerm(const Eigen::Vector2d & x, const double & t = 0) const;
165 double compressibilityForcingTerm(const Eigen::Vector2d & x, const double & t = 0) const;
166 Eigen::Vector2d velocity(const Eigen::Vector2d & x, const double & t = 0) const;
167 double pressure(const Eigen::Vector2d & x, const double & t = 0) const;
168 Eigen::Matrix2d velocityGradient(const Eigen::Vector2d & x, const double & t = 0) const;
169 Eigen::Vector2d pressureGradient(const Eigen::Vector2d & x, const double & t = 0) const;
170 };
171
172 //------------------------------------------------------------------------------
173 // Kovasznay
174
175 struct Kovasznay : public IExactSolution {
177 Kovasznay(const double & viscosity, std::ostream & output = std::cout);
178
180 static inline Mesh2D::MeshBuilder::TransformationType domain_transformation = [](const std::array<double, 2> & x) {
181 return std::array<double, 2>{2. * x[0] - 0.5, 2. * x[1]};
182 };
183
184 Eigen::Vector2d momentumForcingTerm(const Eigen::Vector2d & x, const double & t = 0) const;
185 double compressibilityForcingTerm(const Eigen::Vector2d & x, const double & t = 0) const;
186 Eigen::Vector2d velocity(const Eigen::Vector2d & x, const double & t = 0) const;
187 double pressure(const Eigen::Vector2d & x, const double & t = 0) const;
188 Eigen::Matrix2d velocityGradient(const Eigen::Vector2d & x, const double & t = 0) const;
189 Eigen::Vector2d pressureGradient(const Eigen::Vector2d & x, const double & t = 0) const;
190
191 private:
192 double m_Re;
193 double m_lambda;
194 };
195
196 //------------------------------------------------------------------------------
197 // A time-dependent solution of the Navier-Stokes problem to test
198 // time-stepping routines
199
201 TimeDependentNavierStokes(const double & viscosity);
202
203 Eigen::Vector2d momentumForcingTerm(const Eigen::Vector2d & x, const double & t = 0) const;
204 double compressibilityForcingTerm(const Eigen::Vector2d & x, const double & t = 0) const;
205 Eigen::Vector2d velocity(const Eigen::Vector2d & x, const double & t = 0) const;
206 double pressure(const Eigen::Vector2d & x, const double & t = 0) const;
207 Eigen::Matrix2d velocityGradient(const Eigen::Vector2d & x, const double & t = 0) const;
208 Eigen::Vector2d pressureGradient(const Eigen::Vector2d & x, const double & t = 0) const;
209 };
210
211 //------------------------------------------------------------------------------
212 // A time-dependent solution of the Navier-Stokes problem to test
213 // time-stepping routines
214
216 TimeDependentStokes(const double & viscosity);
217
218 Eigen::Vector2d momentumForcingTerm(const Eigen::Vector2d & x, const double & t = 0) const;
219 double compressibilityForcingTerm(const Eigen::Vector2d & x, const double & t = 0) const;
220 Eigen::Vector2d velocity(const Eigen::Vector2d & x, const double & t = 0) const;
221 double pressure(const Eigen::Vector2d & x, const double & t = 0) const;
222 Eigen::Matrix2d velocityGradient(const Eigen::Vector2d & x, const double & t = 0) const;
223 Eigen::Vector2d pressureGradient(const Eigen::Vector2d & x, const double & t = 0) const;
224 };
225
226 //------------------------------------------------------------------------------
227 // A divergence-free sinusoidal solution with time dependence to test timestepping
228 // implementations
229
230 struct TrigTimeDep : public IExactSolution {
231 TrigTimeDep(const double & viscosity);
232
233 Eigen::Vector2d momentumForcingTerm(const Eigen::Vector2d & x, const double & t = 0) const;
234 double compressibilityForcingTerm(const Eigen::Vector2d & x, const double & t = 0) const;
235 Eigen::Vector2d velocity(const Eigen::Vector2d & x, const double & t = 0) const;
236 double pressure(const Eigen::Vector2d & x, const double & t = 0) const;
237 Eigen::Matrix2d velocityGradient(const Eigen::Vector2d & x, const double & t = 0) const;
238 Eigen::Vector2d pressureGradient(const Eigen::Vector2d & x, const double & t = 0) const;
239
240 private:
241 double m_param;
242 };
243
244 //------------------------------------------------------------------------------
245 // A solution with only time-dependence to check time-stepping routine
246
247 struct OnlyTimeDep : public IExactSolution {
248 OnlyTimeDep(const double & viscosity);
249
250 Eigen::Vector2d momentumForcingTerm(const Eigen::Vector2d & x, const double & t = 0) const;
251 double compressibilityForcingTerm(const Eigen::Vector2d & x, const double & t = 0) const;
252 Eigen::Vector2d velocity(const Eigen::Vector2d & x, const double & t = 0) const;
253 double pressure(const Eigen::Vector2d & x, const double & t = 0) const;
254 Eigen::Matrix2d velocityGradient(const Eigen::Vector2d & x, const double & t = 0) const;
255 Eigen::Vector2d pressureGradient(const Eigen::Vector2d & x, const double & t = 0) const;
256
257 private:
258 double m_param;
259 };
260
261 //------------------------------------------------------------------------------
262 // A solution with linear dependence in space and time
263
265 LinearTemporal(const double & viscosity);
266
267 Eigen::Vector2d momentumForcingTerm(const Eigen::Vector2d & x, const double & t = 0) const;
268 double compressibilityForcingTerm(const Eigen::Vector2d & x, const double & t = 0) const;
269 Eigen::Vector2d velocity(const Eigen::Vector2d & x, const double & t = 0) const;
270 double pressure(const Eigen::Vector2d & x, const double & t = 0) const;
271 Eigen::Matrix2d velocityGradient(const Eigen::Vector2d & x, const double & t = 0) const;
272 Eigen::Vector2d pressureGradient(const Eigen::Vector2d & x, const double & t = 0) const;
273
274 private:
275 double m_param;
276 };
277
278 //------------------------------------------------------------------------------
279 // A lid-driven cavity test problem
280 // Note: an exact solution does not exist - this test exists only to set initial
281 // and boundary conditions
282
285
286 Eigen::Vector2d momentumForcingTerm(const Eigen::Vector2d & x, const double & t = 0) const;
287 double compressibilityForcingTerm(const Eigen::Vector2d & x, const double & t = 0) const;
288 Eigen::Vector2d velocity(const Eigen::Vector2d & x, const double & t = 0) const;
289 double pressure(const Eigen::Vector2d & x, const double & t = 0) const;
290 Eigen::Matrix2d velocityGradient(const Eigen::Vector2d & x, const double & t = 0) const;
291 Eigen::Vector2d pressureGradient(const Eigen::Vector2d & x, const double & t = 0) const;
292 };
293
294 } // namespace NavierStokesSolutions
295
296} // namespace HArDCore2D
297#endif
std::function< std::array< double, 2 >(const std::array< double, 2 > &)> TransformationType
Definition MeshBuilder2D.hpp:174
Definition ddr-klplate.hpp:27
double viscosity() const
Return the viscosity.
Definition ns-solutions.hpp:33
bool isStokes() const
Definition ns-solutions.hpp:28
bool m_is_stokes
Definition ns-solutions.hpp:64
virtual ~IExactSolution()
Definition ns-solutions.cpp:29
double m_flow_index
Definition ns-solutions.hpp:67
double degenParam() const
Return the Carreau-Yasuda degeneracy parameter.
Definition ns-solutions.hpp:51
virtual double pressure(const Eigen::Vector2d &x, const double &t=0) const =0
std::string name() const
Return the solution name.
Definition ns-solutions.hpp:22
bool isNonNewtonian() const
Return true if the fluid is assumed to be non-Newtonian;.
Definition ns-solutions.hpp:41
virtual Eigen::Vector2d momentumForcingTerm(const Eigen::Vector2d &x, const double &t=0) const =0
virtual double compressibilityForcingTerm(const Eigen::Vector2d &x, const double &t=0) const =0
double m_viscosity
Definition ns-solutions.hpp:65
double m_degen_param
Definition ns-solutions.hpp:68
double flowIndex() const
Return the Carreau-Yasuda flow index.
Definition ns-solutions.hpp:46
bool m_is_nonnewtonian
Definition ns-solutions.hpp:66
std::string m_name
Definition ns-solutions.hpp:63
virtual Eigen::Vector2d pressureGradient(const Eigen::Vector2d &x, const double &t=0) const =0
virtual Eigen::Vector2d velocity(const Eigen::Vector2d &x, const double &t=0) const =0
virtual Eigen::Matrix2d velocityGradient(const Eigen::Vector2d &x, const double &t=0) const =0
Definition ns-solutions.hpp:175
Eigen::Vector2d momentumForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:390
Eigen::Vector2d pressureGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:385
double pressure(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:380
Eigen::Vector2d velocity(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:362
Eigen::Matrix2d velocityGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:370
static Mesh2D::MeshBuilder::TransformationType domain_transformation
A function to transform the unit domain to .
Definition ns-solutions.hpp:180
double compressibilityForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:395
double pressure(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:764
Eigen::Matrix2d velocityGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:759
LidDrivenCavity()
Definition ns-solutions.cpp:743
Eigen::Vector2d velocity(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:749
Eigen::Vector2d momentumForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:774
Eigen::Vector2d pressureGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:769
double compressibilityForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:779
Eigen::Vector2d pressureGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:101
double pressure(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:96
Eigen::Matrix2d velocityGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:91
Eigen::Vector2d velocity(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:85
LinearPressure()
Definition ns-solutions.cpp:79
double compressibilityForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:113
Eigen::Vector2d momentumForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:108
double pressure(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:718
Eigen::Vector2d pressureGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:723
LinearTemporal()
Definition ns-solutions.cpp:75
double compressibilityForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:733
Eigen::Vector2d momentumForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:728
Eigen::Matrix2d velocityGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:711
Eigen::Vector2d velocity(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:706
double compressibilityForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:71
double pressure(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:56
Eigen::Vector2d velocity(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:43
LinearVelocity()
Definition ns-solutions.cpp:37
Eigen::Vector2d momentumForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:66
Eigen::Matrix2d velocityGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:49
Eigen::Vector2d pressureGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:61
Eigen::Matrix2d velocityGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:325
Eigen::Vector2d momentumForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:341
double pressure(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:330
Eigen::Vector2d pressureGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:335
double compressibilityForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:346
Eigen::Vector2d velocity(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:320
Definition ns-solutions.hpp:247
Eigen::Matrix2d velocityGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:664
Eigen::Vector2d velocity(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:659
double compressibilityForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:691
double pressure(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:671
Eigen::Vector2d pressureGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:677
Eigen::Vector2d momentumForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:684
double pressure(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:291
Eigen::Vector2d pressureGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:296
Eigen::Vector2d momentumForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:301
Eigen::Vector2d velocity(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:272
double compressibilityForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:306
Eigen::Matrix2d velocityGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:280
Eigen::Matrix2d velocityGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:229
Eigen::Vector2d velocity(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:221
Eigen::Vector2d momentumForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:250
double pressure(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:240
Eigen::Vector2d pressureGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:245
double compressibilityForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:258
Eigen::Vector2d velocity(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:127
double compressibilityForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:160
Eigen::Matrix2d velocityGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:136
double pressure(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:145
QuadraticVelocity()
Definition ns-solutions.cpp:121
Eigen::Vector2d momentumForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:155
Eigen::Vector2d pressureGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:150
Eigen::Vector2d momentumForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:483
Eigen::Vector2d pressureGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:469
Eigen::Matrix2d velocityGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:433
Eigen::Vector2d velocity(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:415
double pressure(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:454
double compressibilityForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:513
Eigen::Matrix2d velocityGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:536
Eigen::Vector2d momentumForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:563
Eigen::Vector2d pressureGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:554
Eigen::Vector2d velocity(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:527
double pressure(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:549
double compressibilityForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:578
Definition ns-solutions.hpp:230
Eigen::Matrix2d velocityGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:603
Eigen::Vector2d velocity(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:593
double pressure(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:619
Eigen::Vector2d momentumForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:631
double compressibilityForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:645
Eigen::Vector2d pressureGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:624
Eigen::Vector2d pressureGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:197
Eigen::Vector2d velocity(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:174
double compressibilityForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:207
Trigonometric()
Definition ns-solutions.cpp:168
double pressure(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:192
Eigen::Vector2d momentumForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:202
Eigen::Matrix2d velocityGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:182