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
15 struct IExactSolution {
16 IExactSolution(std::string name, bool fluid_magnetic_coupling, bool is_stokes, bool steady_fluid_equation,
18 virtual ~IExactSolution();
19
21 inline std::string name() const {
22 return m_name;
23 }
24
26 inline bool fluid_magnetic_coupling() const {
28 }
29
30
33 inline bool isStokes() const {
34 return m_is_stokes;
35 }
36
38 inline bool steady_fluid_equation() const {
40 }
41
43 inline bool steady_magnetic_equation() const {
45 }
46
48 inline double viscosity() const {
49 return m_viscosity;
50 }
51
53 inline double magnetic_diffusivity() const {
55 }
56
57 virtual Eigen::Vector2d momentumForcingTerm(const Eigen::Vector2d & x, const double & t = 0) const = 0;
58 virtual Eigen::Vector2d magneticForcingTerm(const Eigen::Vector2d & x, const double & t = 0) const = 0;
59 virtual double compressibilityForcingTerm(const Eigen::Vector2d & x, const double & t = 0) const = 0;
60
61 virtual Eigen::Vector2d velocity(const Eigen::Vector2d & x, const double & t = 0) const = 0;
62 virtual double pressure(const Eigen::Vector2d & x, const double & t = 0) const = 0;
63 virtual Eigen::Matrix2d velocityGradient(const Eigen::Vector2d & x, const double & t = 0) const = 0;
64 virtual Eigen::Vector2d pressureGradient(const Eigen::Vector2d & x, const double & t = 0) const = 0;
65
66 virtual Eigen::Vector2d magnetic_field(const Eigen::Vector2d & x, const double & t = 0) const = 0;
67 virtual double magnetic_pressure(const Eigen::Vector2d & x, const double & t = 0) const = 0;
68 virtual Eigen::Matrix2d magnetic_fieldGradient(const Eigen::Vector2d & x, const double & t = 0) const = 0;
69 virtual Eigen::Vector2d magnetic_pressureGradient(const Eigen::Vector2d & x, const double & t = 0) const = 0;
70
71
72 protected:
73 std::string m_name;
75 bool m_is_stokes;
78 double m_viscosity;
80 };
81
82 //------------------------------------------------------------------------------
83 // Linear velocity
84
85 struct LinearVelocity : public IExactSolution {
87
88 Eigen::Vector2d momentumForcingTerm(const Eigen::Vector2d & x, const double & t = 0) const;
89 Eigen::Vector2d magneticForcingTerm(const Eigen::Vector2d & x, const double & t = 0) const;
90 double compressibilityForcingTerm(const Eigen::Vector2d & x, const double & t = 0) const;
91
92 Eigen::Vector2d velocity(const Eigen::Vector2d & x, const double & t = 0) const;
93 double pressure(const Eigen::Vector2d & x, const double & t = 0) const;
94 Eigen::Matrix2d velocityGradient(const Eigen::Vector2d & x, const double & t = 0) const;
95 Eigen::Vector2d pressureGradient(const Eigen::Vector2d & x, const double & t = 0) const;
96
97 Eigen::Vector2d magnetic_field(const Eigen::Vector2d & x, const double & t = 0) const;
98 double magnetic_pressure(const Eigen::Vector2d & x, const double & t = 0) const;
99 Eigen::Matrix2d magnetic_fieldGradient(const Eigen::Vector2d & x, const double & t = 0) const;
100 Eigen::Vector2d magnetic_pressureGradient(const Eigen::Vector2d & x, const double & t = 0) const;
101 };
102
103 //------------------------------------------------------------------------------
104 // Linear magnetic field
105
108
109 Eigen::Vector2d momentumForcingTerm(const Eigen::Vector2d & x, const double & t = 0) const;
110 Eigen::Vector2d magneticForcingTerm(const Eigen::Vector2d & x, const double & t = 0) const;
111 double compressibilityForcingTerm(const Eigen::Vector2d & x, const double & t = 0) const;
112
113 Eigen::Vector2d velocity(const Eigen::Vector2d & x, const double & t = 0) const;
114 double pressure(const Eigen::Vector2d & x, const double & t = 0) const;
115 Eigen::Matrix2d velocityGradient(const Eigen::Vector2d & x, const double & t = 0) const;
116 Eigen::Vector2d pressureGradient(const Eigen::Vector2d & x, const double & t = 0) const;
117
118 Eigen::Vector2d magnetic_field(const Eigen::Vector2d & x, const double & t = 0) const;
119 double magnetic_pressure(const Eigen::Vector2d & x, const double & t = 0) const;
120 Eigen::Matrix2d magnetic_fieldGradient(const Eigen::Vector2d & x, const double & t = 0) const;
121 Eigen::Vector2d magnetic_pressureGradient(const Eigen::Vector2d & x, const double & t = 0) const;
122 };
123
124
125 //------------------------------------------------------------------------------
126 // Linear pressure
127
128 struct LinearPressure : public IExactSolution {
130
131 Eigen::Vector2d momentumForcingTerm(const Eigen::Vector2d & x, const double & t = 0) const;
132 Eigen::Vector2d magneticForcingTerm(const Eigen::Vector2d & x, const double & t = 0) const;
133 double compressibilityForcingTerm(const Eigen::Vector2d & x, const double & t = 0) const;
134
135 Eigen::Vector2d velocity(const Eigen::Vector2d & x, const double & t = 0) const;
136 double pressure(const Eigen::Vector2d & x, const double & t = 0) const;
137 Eigen::Matrix2d velocityGradient(const Eigen::Vector2d & x, const double & t = 0) const;
138 Eigen::Vector2d pressureGradient(const Eigen::Vector2d & x, const double & t = 0) const;
139
140 Eigen::Vector2d magnetic_field(const Eigen::Vector2d & x, const double & t = 0) const;
141 double magnetic_pressure(const Eigen::Vector2d & x, const double & t = 0) const;
142 Eigen::Matrix2d magnetic_fieldGradient(const Eigen::Vector2d & x, const double & t = 0) const;
143 Eigen::Vector2d magnetic_pressureGradient(const Eigen::Vector2d & x, const double & t = 0) const;
144 };
145
146 //------------------------------------------------------------------------------
147 // Linear magnetic pressure
148
151
152 Eigen::Vector2d momentumForcingTerm(const Eigen::Vector2d & x, const double & t = 0) const;
153 Eigen::Vector2d magneticForcingTerm(const Eigen::Vector2d & x, const double & t = 0) const;
154 double compressibilityForcingTerm(const Eigen::Vector2d & x, const double & t = 0) const;
155
156 Eigen::Vector2d velocity(const Eigen::Vector2d & x, const double & t = 0) const;
157 double pressure(const Eigen::Vector2d & x, const double & t = 0) const;
158 Eigen::Matrix2d velocityGradient(const Eigen::Vector2d & x, const double & t = 0) const;
159 Eigen::Vector2d pressureGradient(const Eigen::Vector2d & x, const double & t = 0) const;
160
161 Eigen::Vector2d magnetic_field(const Eigen::Vector2d & x, const double & t = 0) const;
162 double magnetic_pressure(const Eigen::Vector2d & x, const double & t = 0) const;
163 Eigen::Matrix2d magnetic_fieldGradient(const Eigen::Vector2d & x, const double & t = 0) const;
164 Eigen::Vector2d magnetic_pressureGradient(const Eigen::Vector2d & x, const double & t = 0) const;
165 };
166
167 //------------------------------------------------------------------------------
168 // Quadratic velocity
169
170 struct QuadraticVelocity : public IExactSolution {
172
173 Eigen::Vector2d momentumForcingTerm(const Eigen::Vector2d & x, const double & t = 0) const;
174 Eigen::Vector2d magneticForcingTerm(const Eigen::Vector2d & x, const double & t = 0) const;
175 double compressibilityForcingTerm(const Eigen::Vector2d & x, const double & t = 0) const;
176
177 Eigen::Vector2d velocity(const Eigen::Vector2d & x, const double & t = 0) const;
178 double pressure(const Eigen::Vector2d & x, const double & t = 0) const;
179 Eigen::Matrix2d velocityGradient(const Eigen::Vector2d & x, const double & t = 0) const;
180 Eigen::Vector2d pressureGradient(const Eigen::Vector2d & x, const double & t = 0) const;
181
182 Eigen::Vector2d magnetic_field(const Eigen::Vector2d & x, const double & t = 0) const;
183 double magnetic_pressure(const Eigen::Vector2d & x, const double & t = 0) const;
184 Eigen::Matrix2d magnetic_fieldGradient(const Eigen::Vector2d & x, const double & t = 0) const;
185 Eigen::Vector2d magnetic_pressureGradient(const Eigen::Vector2d & x, const double & t = 0) const;
186 };
187
188 //------------------------------------------------------------------------------
189 // Quadratic magnetic field
190
193
194 Eigen::Vector2d momentumForcingTerm(const Eigen::Vector2d & x, const double & t = 0) const;
195 Eigen::Vector2d magneticForcingTerm(const Eigen::Vector2d & x, const double & t = 0) const;
196 double compressibilityForcingTerm(const Eigen::Vector2d & x, const double & t = 0) const;
197
198 Eigen::Vector2d velocity(const Eigen::Vector2d & x, const double & t = 0) const;
199 double pressure(const Eigen::Vector2d & x, const double & t = 0) const;
200 Eigen::Matrix2d velocityGradient(const Eigen::Vector2d & x, const double & t = 0) const;
201 Eigen::Vector2d pressureGradient(const Eigen::Vector2d & x, const double & t = 0) const;
202
203 Eigen::Vector2d magnetic_field(const Eigen::Vector2d & x, const double & t = 0) const;
204 double magnetic_pressure(const Eigen::Vector2d & x, const double & t = 0) const;
205 Eigen::Matrix2d magnetic_fieldGradient(const Eigen::Vector2d & x, const double & t = 0) const;
206 Eigen::Vector2d magnetic_pressureGradient(const Eigen::Vector2d & x, const double & t = 0) const;
207 };
208
209
210 //------------------------------------------------------------------------------
211 // Trigonometric velocity field
212
215
216 Eigen::Vector2d momentumForcingTerm(const Eigen::Vector2d & x, const double & t = 0) const;
217 Eigen::Vector2d magneticForcingTerm(const Eigen::Vector2d & x, const double & t = 0) const;
218 double compressibilityForcingTerm(const Eigen::Vector2d & x, const double & t = 0) const;
219
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 Eigen::Vector2d magnetic_field(const Eigen::Vector2d & x, const double & t = 0) const;
226 double magnetic_pressure(const Eigen::Vector2d & x, const double & t = 0) const;
227 Eigen::Matrix2d magnetic_fieldGradient(const Eigen::Vector2d & x, const double & t = 0) const;
228 Eigen::Vector2d magnetic_pressureGradient(const Eigen::Vector2d & x, const double & t = 0) const;
229 };
230
231 //------------------------------------------------------------------------------
232 // Trigonometric magnetic field
233
236
237 Eigen::Vector2d momentumForcingTerm(const Eigen::Vector2d & x, const double & t = 0) const;
238 Eigen::Vector2d magneticForcingTerm(const Eigen::Vector2d & x, const double & t = 0) const;
239 double compressibilityForcingTerm(const Eigen::Vector2d & x, const double & t = 0) const;
240
241 Eigen::Vector2d velocity(const Eigen::Vector2d & x, const double & t = 0) const;
242 double pressure(const Eigen::Vector2d & x, const double & t = 0) const;
243 Eigen::Matrix2d velocityGradient(const Eigen::Vector2d & x, const double & t = 0) const;
244 Eigen::Vector2d pressureGradient(const Eigen::Vector2d & x, const double & t = 0) const;
245
246 Eigen::Vector2d magnetic_field(const Eigen::Vector2d & x, const double & t = 0) const;
247 double magnetic_pressure(const Eigen::Vector2d & x, const double & t = 0) const;
248 Eigen::Matrix2d magnetic_fieldGradient(const Eigen::Vector2d & x, const double & t = 0) const;
249 Eigen::Vector2d magnetic_pressureGradient(const Eigen::Vector2d & x, const double & t = 0) const;
250 };
251
252 //------------------------------------------------------------------------------
253 // Pressure-robust Stokes on velocity
254
255 struct PressureRobustStokes : public IExactSolution {
257
258 Eigen::Vector2d momentumForcingTerm(const Eigen::Vector2d & x, const double & t = 0) const;
259 Eigen::Vector2d magneticForcingTerm(const Eigen::Vector2d & x, const double & t = 0) const;
260 double compressibilityForcingTerm(const Eigen::Vector2d & x, const double & t = 0) const;
261
262 Eigen::Vector2d velocity(const Eigen::Vector2d & x, const double & t = 0) const;
263 double pressure(const Eigen::Vector2d & x, const double & t = 0) const;
264 Eigen::Matrix2d velocityGradient(const Eigen::Vector2d & x, const double & t = 0) const;
265 Eigen::Vector2d pressureGradient(const Eigen::Vector2d & x, const double & t = 0) const;
266
267 Eigen::Vector2d magnetic_field(const Eigen::Vector2d & x, const double & t = 0) const;
268 double magnetic_pressure(const Eigen::Vector2d & x, const double & t = 0) const;
269 Eigen::Matrix2d magnetic_fieldGradient(const Eigen::Vector2d & x, const double & t = 0) const;
270 Eigen::Vector2d magnetic_pressureGradient(const Eigen::Vector2d & x, const double & t = 0) const;
271 };
272
273 //------------------------------------------------------------------------------
274 // Magnetic Pressure-robust Stokes on velocity
275
278
279 Eigen::Vector2d momentumForcingTerm(const Eigen::Vector2d & x, const double & t = 0) const;
280 Eigen::Vector2d magneticForcingTerm(const Eigen::Vector2d & x, const double & t = 0) const;
281 double compressibilityForcingTerm(const Eigen::Vector2d & x, const double & t = 0) const;
282
283 Eigen::Vector2d velocity(const Eigen::Vector2d & x, const double & t = 0) const;
284 double pressure(const Eigen::Vector2d & x, const double & t = 0) const;
285 Eigen::Matrix2d velocityGradient(const Eigen::Vector2d & x, const double & t = 0) const;
286 Eigen::Vector2d pressureGradient(const Eigen::Vector2d & x, const double & t = 0) const;
287
288 Eigen::Vector2d magnetic_field(const Eigen::Vector2d & x, const double & t = 0) const;
289 double magnetic_pressure(const Eigen::Vector2d & x, const double & t = 0) const;
290 Eigen::Matrix2d magnetic_fieldGradient(const Eigen::Vector2d & x, const double & t = 0) const;
291 Eigen::Vector2d magnetic_pressureGradient(const Eigen::Vector2d & x, const double & t = 0) const;
292 };
293
294
295
296
297 //------------------------------------------------------------------------------
298 // A viscosity-dependent solution of the Navier-Stokes problem to test
299 // pressure-robustness
300
303
304 Eigen::Vector2d momentumForcingTerm(const Eigen::Vector2d & x, const double & t = 0) const;
305 Eigen::Vector2d magneticForcingTerm(const Eigen::Vector2d & x, const double & t = 0) const;
306 double compressibilityForcingTerm(const Eigen::Vector2d & x, const double & t = 0) const;
307
308 Eigen::Vector2d velocity(const Eigen::Vector2d & x, const double & t = 0) const;
309 double pressure(const Eigen::Vector2d & x, const double & t = 0) const;
310 Eigen::Matrix2d velocityGradient(const Eigen::Vector2d & x, const double & t = 0) const;
311 Eigen::Vector2d pressureGradient(const Eigen::Vector2d & x, const double & t = 0) const;
312
313 Eigen::Vector2d magnetic_field(const Eigen::Vector2d & x, const double & t = 0) const;
314 double magnetic_pressure(const Eigen::Vector2d & x, const double & t = 0) const;
315 Eigen::Matrix2d magnetic_fieldGradient(const Eigen::Vector2d & x, const double & t = 0) const;
316 Eigen::Vector2d magnetic_pressureGradient(const Eigen::Vector2d & x, const double & t = 0) const;
317
318 };
319
320 //------------------------------------------------------------------------------
321 // Kovasznay
322
323 struct Kovasznay : public IExactSolution {
325 Kovasznay(const double & viscosity, std::ostream & output = std::cout);
326
328 static inline Mesh2D::MeshBuilder::TransformationType domain_transformation = [](const std::array<double, 2> & x) {
329 return std::array<double, 2>{2. * x[0] - 0.5, 2. * x[1]};
330 };
331
332 Eigen::Vector2d momentumForcingTerm(const Eigen::Vector2d & x, const double & t = 0) const;
333 Eigen::Vector2d magneticForcingTerm(const Eigen::Vector2d & x, const double & t = 0) const;
334 double compressibilityForcingTerm(const Eigen::Vector2d & x, const double & t = 0) const;
335
336 Eigen::Vector2d velocity(const Eigen::Vector2d & x, const double & t = 0) const;
337 double pressure(const Eigen::Vector2d & x, const double & t = 0) const;
338 Eigen::Matrix2d velocityGradient(const Eigen::Vector2d & x, const double & t = 0) const;
339 Eigen::Vector2d pressureGradient(const Eigen::Vector2d & x, const double & t = 0) const;
340
341 Eigen::Vector2d magnetic_field(const Eigen::Vector2d & x, const double & t = 0) const;
342 double magnetic_pressure(const Eigen::Vector2d & x, const double & t = 0) const;
343 Eigen::Matrix2d magnetic_fieldGradient(const Eigen::Vector2d & x, const double & t = 0) const;
344 Eigen::Vector2d magnetic_pressureGradient(const Eigen::Vector2d & x, const double & t = 0) const;
345
346 private:
347 double m_Re;
348 double m_lambda;
349 };
350
351 //------------------------------------------------------------------------------
352 // Steady Linear-Quadratic Coupled solution
353
355 SteadyLinearQuadraticCoupled(const double & viscosity, const double & magnetic_diffusivity);
356
357 Eigen::Vector2d momentumForcingTerm(const Eigen::Vector2d & x, const double & t = 0) const;
358 Eigen::Vector2d magneticForcingTerm(const Eigen::Vector2d & x, const double & t = 0) const;
359 double compressibilityForcingTerm(const Eigen::Vector2d & x, const double & t = 0) const;
360
361 Eigen::Vector2d velocity(const Eigen::Vector2d & x, const double & t = 0) const;
362 double pressure(const Eigen::Vector2d & x, const double & t = 0) const;
363 Eigen::Matrix2d velocityGradient(const Eigen::Vector2d & x, const double & t = 0) const;
364 Eigen::Vector2d pressureGradient(const Eigen::Vector2d & x, const double & t = 0) const;
365
366 Eigen::Vector2d magnetic_field(const Eigen::Vector2d & x, const double & t = 0) const;
367 double magnetic_pressure(const Eigen::Vector2d & x, const double & t = 0) const;
368 Eigen::Matrix2d magnetic_fieldGradient(const Eigen::Vector2d & x, const double & t = 0) const;
369 Eigen::Vector2d magnetic_pressureGradient(const Eigen::Vector2d & x, const double & t = 0) const;
370
371 };
372
373
374 //------------------------------------------------------------------------------
375 // Steady Sinusoidal Coupled solution
376
378 SteadySinusoidalCoupled(const double & viscosity,const double & magnetic_diffusivity);
379
380 Eigen::Vector2d momentumForcingTerm(const Eigen::Vector2d & x, const double & t = 0) const;
381 Eigen::Vector2d magneticForcingTerm(const Eigen::Vector2d & x, const double & t = 0) const;
382 double compressibilityForcingTerm(const Eigen::Vector2d & x, const double & t = 0) const;
383
384 Eigen::Vector2d velocity(const Eigen::Vector2d & x, const double & t = 0) const;
385 double pressure(const Eigen::Vector2d & x, const double & t = 0) const;
386 Eigen::Matrix2d velocityGradient(const Eigen::Vector2d & x, const double & t = 0) const;
387 Eigen::Vector2d pressureGradient(const Eigen::Vector2d & x, const double & t = 0) const;
388
389 Eigen::Vector2d magnetic_field(const Eigen::Vector2d & x, const double & t = 0) const;
390 double magnetic_pressure(const Eigen::Vector2d & x, const double & t = 0) const;
391 Eigen::Matrix2d magnetic_fieldGradient(const Eigen::Vector2d & x, const double & t = 0) const;
392 Eigen::Vector2d magnetic_pressureGradient(const Eigen::Vector2d & x, const double & t = 0) const;
393
394 private:
395 double U;
396 double B;
397 };
398
399
400
401 //------------------------------------------------------------------------------
402 // A time-dependent solution of the Velocity Stokes problem
403
406
407 Eigen::Vector2d momentumForcingTerm(const Eigen::Vector2d & x, const double & t = 0) const;
408 Eigen::Vector2d magneticForcingTerm(const Eigen::Vector2d & x, const double & t = 0) const;
409 double compressibilityForcingTerm(const Eigen::Vector2d & x, const double & t = 0) const;
410
411 Eigen::Vector2d velocity(const Eigen::Vector2d & x, const double & t = 0) const;
412 double pressure(const Eigen::Vector2d & x, const double & t = 0) const;
413 Eigen::Matrix2d velocityGradient(const Eigen::Vector2d & x, const double & t = 0) const;
414 Eigen::Vector2d pressureGradient(const Eigen::Vector2d & x, const double & t = 0) const;
415
416 Eigen::Vector2d magnetic_field(const Eigen::Vector2d & x, const double & t = 0) const;
417 double magnetic_pressure(const Eigen::Vector2d & x, const double & t = 0) const;
418 Eigen::Matrix2d magnetic_fieldGradient(const Eigen::Vector2d & x, const double & t = 0) const;
419 Eigen::Vector2d magnetic_pressureGradient(const Eigen::Vector2d & x, const double & t = 0) const;
420 };
421
422 //------------------------------------------------------------------------------
423 // A time-dependent solution of the Magnetic Stokes problem
424
427
428 Eigen::Vector2d momentumForcingTerm(const Eigen::Vector2d & x, const double & t = 0) const;
429 Eigen::Vector2d magneticForcingTerm(const Eigen::Vector2d & x, const double & t = 0) const;
430 double compressibilityForcingTerm(const Eigen::Vector2d & x, const double & t = 0) const;
431
432 Eigen::Vector2d velocity(const Eigen::Vector2d & x, const double & t = 0) const;
433 double pressure(const Eigen::Vector2d & x, const double & t = 0) const;
434 Eigen::Matrix2d velocityGradient(const Eigen::Vector2d & x, const double & t = 0) const;
435 Eigen::Vector2d pressureGradient(const Eigen::Vector2d & x, const double & t = 0) const;
436
437 Eigen::Vector2d magnetic_field(const Eigen::Vector2d & x, const double & t = 0) const;
438 double magnetic_pressure(const Eigen::Vector2d & x, const double & t = 0) const;
439 Eigen::Matrix2d magnetic_fieldGradient(const Eigen::Vector2d & x, const double & t = 0) const;
440 Eigen::Vector2d magnetic_pressureGradient(const Eigen::Vector2d & x, const double & t = 0) const;
441 };
442
443
444 //------------------------------------------------------------------------------
445 // A time-dependent solution of the Navier-Stokes problem
446
449
450 Eigen::Vector2d momentumForcingTerm(const Eigen::Vector2d & x, const double & t = 0) const;
451 Eigen::Vector2d magneticForcingTerm(const Eigen::Vector2d & x, const double & t = 0) const;
452 double compressibilityForcingTerm(const Eigen::Vector2d & x, const double & t = 0) const;
453
454 Eigen::Vector2d velocity(const Eigen::Vector2d & x, const double & t = 0) const;
455 double pressure(const Eigen::Vector2d & x, const double & t = 0) const;
456 Eigen::Matrix2d velocityGradient(const Eigen::Vector2d & x, const double & t = 0) const;
457 Eigen::Vector2d pressureGradient(const Eigen::Vector2d & x, const double & t = 0) const;
458
459 Eigen::Vector2d magnetic_field(const Eigen::Vector2d & x, const double & t = 0) const;
460 double magnetic_pressure(const Eigen::Vector2d & x, const double & t = 0) const;
461 Eigen::Matrix2d magnetic_fieldGradient(const Eigen::Vector2d & x, const double & t = 0) const;
462 Eigen::Vector2d magnetic_pressureGradient(const Eigen::Vector2d & x, const double & t = 0) const;
463 };
464
465
467 VelocityTrigTimeDep(const double & viscosity);
468
469 Eigen::Vector2d momentumForcingTerm(const Eigen::Vector2d & x, const double & t = 0) const;
470 Eigen::Vector2d magneticForcingTerm(const Eigen::Vector2d & x, const double & t = 0) const;
471 double compressibilityForcingTerm(const Eigen::Vector2d & x, const double & t = 0) const;
472
473 Eigen::Vector2d velocity(const Eigen::Vector2d & x, const double & t = 0) const;
474 double pressure(const Eigen::Vector2d & x, const double & t = 0) const;
475 Eigen::Matrix2d velocityGradient(const Eigen::Vector2d & x, const double & t = 0) const;
476 Eigen::Vector2d pressureGradient(const Eigen::Vector2d & x, const double & t = 0) const;
477
478 Eigen::Vector2d magnetic_field(const Eigen::Vector2d & x, const double & t = 0) const;
479 double magnetic_pressure(const Eigen::Vector2d & x, const double & t = 0) const;
480 Eigen::Matrix2d magnetic_fieldGradient(const Eigen::Vector2d & x, const double & t = 0) const;
481 Eigen::Vector2d magnetic_pressureGradient(const Eigen::Vector2d & x, const double & t = 0) const;
482
483 private:
484 double m_param;
485 };
486
487
488 //------------------------------------------------------------------------------
489 // Unsteady Sinusoidal Coupled solution
490
492 UnsteadySinusoidalCoupled(const double & viscosity,const double & magnetic_diffusivity);
493
494 Eigen::Vector2d momentumForcingTerm(const Eigen::Vector2d & x, const double & t = 0) const;
495 Eigen::Vector2d magneticForcingTerm(const Eigen::Vector2d & x, const double & t = 0) const;
496 double compressibilityForcingTerm(const Eigen::Vector2d & x, const double & t = 0) const;
497
498 Eigen::Vector2d velocity(const Eigen::Vector2d & x, const double & t = 0) const;
499 double pressure(const Eigen::Vector2d & x, const double & t = 0) const;
500 Eigen::Matrix2d velocityGradient(const Eigen::Vector2d & x, const double & t = 0) const;
501 Eigen::Vector2d pressureGradient(const Eigen::Vector2d & x, const double & t = 0) const;
502
503 Eigen::Vector2d magnetic_field(const Eigen::Vector2d & x, const double & t = 0) const;
504 double magnetic_pressure(const Eigen::Vector2d & x, const double & t = 0) const;
505 Eigen::Matrix2d magnetic_fieldGradient(const Eigen::Vector2d & x, const double & t = 0) const;
506 Eigen::Vector2d magnetic_pressureGradient(const Eigen::Vector2d & x, const double & t = 0) const;
507
508 private:
509 double U;
510 double m_u_param;
511 double B;
512 double m_b_param;
513 };
514
515
516 } // namespace NavierStokesSolutions
517
518} // namespace HArDCore2D
519#endif
std::function< std::array< double, 2 >(const std::array< double, 2 > &)> TransformationType
Definition MeshBuilder2D.hpp:174
Definition ddr-klplate.hpp:27
virtual Eigen::Vector2d magnetic_pressureGradient(const Eigen::Vector2d &x, const double &t=0) const =0
double viscosity() const
Return the viscosity.
Definition ns-solutions.hpp:33
bool isStokes() const
Definition ns-solutions.hpp:33
bool m_is_stokes
Definition ns-solutions.hpp:64
double magnetic_diffusivity() const
Return the magnetic diffusivity.
Definition ns-solutions.hpp:53
double m_magnetic_diffusivity
Definition ns-solutions.hpp:79
virtual double pressure(const Eigen::Vector2d &x, const double &t=0) const =0
bool m_steady_magnetic_equation
Definition ns-solutions.hpp:77
std::string name() const
Return the solution name.
Definition ns-solutions.hpp:22
bool fluid_magnetic_coupling() const
Return true if the fluid and magnetic field are oupled in the two equations.
Definition ns-solutions.hpp:26
bool steady_magnetic_equation() const
Return true if the magnetic field is steady, false if unsteady!
Definition ns-solutions.hpp:43
bool steady_fluid_equation() const
Return true if the fluid field is steady, false if unsteady!
Definition ns-solutions.hpp:38
virtual Eigen::Vector2d momentumForcingTerm(const Eigen::Vector2d &x, const double &t=0) const =0
bool m_fluid_magnetic_coupling
Definition ns-solutions.hpp:74
virtual double compressibilityForcingTerm(const Eigen::Vector2d &x, const double &t=0) const =0
bool m_steady_fluid_equation
Definition ns-solutions.hpp:76
double m_viscosity
Definition ns-solutions.hpp:65
virtual double magnetic_pressure(const Eigen::Vector2d &x, const double &t=0) const =0
virtual Eigen::Vector2d magneticForcingTerm(const Eigen::Vector2d &x, const double &t=0) const =0
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::Vector2d magnetic_field(const Eigen::Vector2d &x, const double &t=0) const =0
virtual Eigen::Matrix2d magnetic_fieldGradient(const Eigen::Vector2d &x, const double &t=0) const =0
IExactSolution(std::string name, bool is_stokes, double viscosity, bool isNonNewtonian=false, double flow_index=2.0, double degen_param=0.0)
Definition ns-solutions.cpp:17
virtual Eigen::Matrix2d velocityGradient(const Eigen::Vector2d &x, const double &t=0) const =0
Definition ns-solutions.hpp:175
double pressure(const Eigen::Vector2d &x, const double &t=0) const
double magnetic_pressure(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:886
Eigen::Vector2d momentumForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
double compressibilityForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Eigen::Vector2d magnetic_field(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:865
Eigen::Vector2d velocity(const Eigen::Vector2d &x, const double &t=0) const
Eigen::Vector2d pressureGradient(const Eigen::Vector2d &x, const double &t=0) const
Eigen::Matrix2d velocityGradient(const Eigen::Vector2d &x, const double &t=0) const
Eigen::Matrix2d magnetic_fieldGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:870
Eigen::Vector2d magnetic_pressureGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:891
static Mesh2D::MeshBuilder::TransformationType domain_transformation
A function to transform the unit domain to .
Definition ns-solutions.hpp:180
Eigen::Vector2d magneticForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:901
Kovasznay(const double &viscosity, std::ostream &output=std::cout)
Construct the class given the Reynolds number.
double pressure(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:199
LinearMagneticField()
Definition ns-solutions.cpp:182
Eigen::Matrix2d magnetic_fieldGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:215
Eigen::Vector2d magnetic_pressureGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:227
Eigen::Vector2d momentumForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:233
Eigen::Vector2d velocity(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:188
Eigen::Matrix2d velocityGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:194
Eigen::Vector2d pressureGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:204
Eigen::Vector2d magneticForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:238
double magnetic_pressure(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:222
Eigen::Vector2d magnetic_field(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:209
double compressibilityForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:243
Eigen::Vector2d magnetic_pressureGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:294
Eigen::Vector2d pressureGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:273
Eigen::Vector2d magnetic_field(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:278
double pressure(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:268
LinearMagneticPressure()
Definition ns-solutions.cpp:251
Eigen::Vector2d velocity(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:257
double compressibilityForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:311
double magnetic_pressure(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:289
Eigen::Matrix2d magnetic_fieldGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:283
Eigen::Matrix2d velocityGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:263
Eigen::Vector2d magneticForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:306
Eigen::Vector2d momentumForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:301
Eigen::Matrix2d velocityGradient(const Eigen::Vector2d &x, const double &t=0) const
double magnetic_pressure(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:151
Eigen::Vector2d magnetic_pressureGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:156
Eigen::Vector2d magnetic_field(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:139
Eigen::Vector2d velocity(const Eigen::Vector2d &x, const double &t=0) const
double pressure(const Eigen::Vector2d &x, const double &t=0) const
Eigen::Matrix2d magnetic_fieldGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:145
Eigen::Vector2d pressureGradient(const Eigen::Vector2d &x, const double &t=0) const
Eigen::Vector2d momentumForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Eigen::Vector2d magneticForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:167
double compressibilityForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Eigen::Vector2d magnetic_field(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:69
double compressibilityForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Eigen::Matrix2d velocityGradient(const Eigen::Vector2d &x, const double &t=0) const
Eigen::Vector2d magnetic_pressureGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:86
double pressure(const Eigen::Vector2d &x, const double &t=0) const
Eigen::Vector2d pressureGradient(const Eigen::Vector2d &x, const double &t=0) const
Eigen::Vector2d velocity(const Eigen::Vector2d &x, const double &t=0) const
Eigen::Matrix2d magnetic_fieldGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:75
Eigen::Vector2d momentumForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
double magnetic_pressure(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:81
Eigen::Vector2d magneticForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:97
Eigen::Vector2d pressureGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:726
Eigen::Matrix2d magnetic_fieldGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:710
Eigen::Matrix2d velocityGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:697
Eigen::Vector2d momentumForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:741
double compressibilityForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:754
double magnetic_pressure(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:731
Eigen::Vector2d magneticForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:746
Eigen::Vector2d magnetic_pressureGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:736
double pressure(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:721
Eigen::Vector2d velocity(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:692
Eigen::Vector2d magnetic_field(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:702
double pressure(const Eigen::Vector2d &x, const double &t=0) const
Eigen::Matrix2d magnetic_fieldGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:792
Eigen::Vector2d velocity(const Eigen::Vector2d &x, const double &t=0) const
double magnetic_pressure(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:807
double compressibilityForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Eigen::Vector2d pressureGradient(const Eigen::Vector2d &x, const double &t=0) const
Eigen::Vector2d momentumForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Eigen::Vector2d magnetic_field(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:787
Eigen::Vector2d magneticForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:823
Eigen::Matrix2d velocityGradient(const Eigen::Vector2d &x, const double &t=0) const
Eigen::Vector2d magnetic_pressureGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:812
double magnetic_pressure(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:654
double compressibilityForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Eigen::Matrix2d velocityGradient(const Eigen::Vector2d &x, const double &t=0) const
Eigen::Vector2d magnetic_pressureGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:659
Eigen::Matrix2d magnetic_fieldGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:639
Eigen::Vector2d momentumForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Eigen::Vector2d magneticForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:672
Eigen::Vector2d pressureGradient(const Eigen::Vector2d &x, const double &t=0) const
double pressure(const Eigen::Vector2d &x, const double &t=0) const
Eigen::Vector2d velocity(const Eigen::Vector2d &x, const double &t=0) const
Eigen::Vector2d magnetic_field(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:634
double compressibilityForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:455
Eigen::Matrix2d magnetic_fieldGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:426
Eigen::Vector2d magnetic_pressureGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:440
double pressure(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:408
Eigen::Vector2d magnetic_field(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:418
Eigen::Vector2d magneticForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:450
Eigen::Matrix2d velocityGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:403
double magnetic_pressure(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:435
Eigen::Vector2d momentumForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:445
Eigen::Vector2d pressureGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:413
Eigen::Vector2d velocity(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:398
QuadraticMagneticField()
Definition ns-solutions.cpp:392
Eigen::Vector2d pressureGradient(const Eigen::Vector2d &x, const double &t=0) const
Eigen::Vector2d velocity(const Eigen::Vector2d &x, const double &t=0) const
double magnetic_pressure(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:363
Eigen::Vector2d magneticForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:378
double pressure(const Eigen::Vector2d &x, const double &t=0) const
Eigen::Vector2d magnetic_pressureGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:368
Eigen::Vector2d momentumForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Eigen::Matrix2d magnetic_fieldGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:357
double compressibilityForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Eigen::Matrix2d velocityGradient(const Eigen::Vector2d &x, const double &t=0) const
Eigen::Vector2d magnetic_field(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:352
double compressibilityForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:995
Eigen::Vector2d magneticForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:983
Eigen::Matrix2d magnetic_fieldGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:941
Eigen::Vector2d momentumForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:970
Eigen::Vector2d magnetic_field(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:933
Eigen::Vector2d pressureGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:955
Eigen::Vector2d magnetic_pressureGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:965
Eigen::Matrix2d velocityGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:926
double pressure(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:950
Eigen::Vector2d velocity(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:921
double magnetic_pressure(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:960
double magnetic_pressure(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:1061
Eigen::Vector2d momentumForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:1075
Eigen::Matrix2d velocityGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:1021
double pressure(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:1048
Eigen::Vector2d velocity(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:1013
Eigen::Vector2d magnetic_field(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:1030
Eigen::Vector2d magneticForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:1088
Eigen::Matrix2d magnetic_fieldGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:1038
Eigen::Vector2d magnetic_pressureGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:1066
Eigen::Vector2d pressureGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:1053
double compressibilityForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:1102
Eigen::Vector2d magnetic_field(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:1220
double magnetic_pressure(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:1252
double pressure(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:1242
Eigen::Vector2d pressureGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:1247
Eigen::Vector2d magnetic_pressureGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:1257
Eigen::Vector2d momentumForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:1266
Eigen::Vector2d magneticForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:1271
Eigen::Vector2d velocity(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:1210
double compressibilityForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:1285
Eigen::Matrix2d velocityGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:1215
Eigen::Matrix2d magnetic_fieldGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:1229
double compressibilityForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Eigen::Vector2d magneticForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:1425
Eigen::Vector2d velocity(const Eigen::Vector2d &x, const double &t=0) const
double magnetic_pressure(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:1385
double pressure(const Eigen::Vector2d &x, const double &t=0) const
Eigen::Matrix2d velocityGradient(const Eigen::Vector2d &x, const double &t=0) const
Eigen::Vector2d magnetic_field(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:1345
Eigen::Matrix2d magnetic_fieldGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:1350
Eigen::Vector2d magnetic_pressureGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:1390
Eigen::Vector2d pressureGradient(const Eigen::Vector2d &x, const double &t=0) const
Eigen::Vector2d momentumForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Eigen::Vector2d magneticForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:1189
Eigen::Matrix2d magnetic_fieldGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:1146
Eigen::Vector2d magnetic_field(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:1141
Eigen::Vector2d velocity(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:1119
Eigen::Vector2d pressureGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:1156
Eigen::Vector2d magnetic_pressureGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:1170
double pressure(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:1151
Eigen::Matrix2d velocityGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:1128
double magnetic_pressure(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:1165
double compressibilityForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:1195
Eigen::Vector2d momentumForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:1175
Eigen::Vector2d magnetic_field(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:552
Eigen::Vector2d velocity(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:542
Eigen::Matrix2d magnetic_fieldGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:560
double magnetic_pressure(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:581
Eigen::Vector2d pressureGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:576
Eigen::Matrix2d velocityGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:547
double pressure(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:571
TrigonometricMagnetic()
Definition ns-solutions.cpp:536
double compressibilityForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:601
Eigen::Vector2d momentumForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:591
Eigen::Vector2d magneticForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:596
Eigen::Vector2d magnetic_pressureGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:586
double compressibilityForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:528
Eigen::Vector2d magnetic_pressureGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:512
Eigen::Vector2d momentumForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:518
TrigonometricVelocity()
Definition ns-solutions.cpp:463
double pressure(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:497
Eigen::Vector2d magnetic_field(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:487
Eigen::Matrix2d magnetic_fieldGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:492
Eigen::Vector2d magneticForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:523
Eigen::Vector2d velocity(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:469
Eigen::Vector2d pressureGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:502
Eigen::Matrix2d velocityGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:477
double magnetic_pressure(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:507
Eigen::Matrix2d velocityGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:1554
Eigen::Vector2d magneticForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:1636
Eigen::Vector2d pressureGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:1594
double magnetic_pressure(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:1604
Eigen::Vector2d magnetic_pressureGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:1611
double compressibilityForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:1650
Eigen::Vector2d momentumForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:1622
double pressure(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:1587
Eigen::Matrix2d magnetic_fieldGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:1575
Eigen::Vector2d velocity(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:1544
Eigen::Vector2d magnetic_field(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:1565
Eigen::Vector2d pressureGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:1488
Eigen::Matrix2d magnetic_fieldGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:1478
double compressibilityForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:1524
Eigen::Vector2d magnetic_field(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:1473
Eigen::Matrix2d velocityGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:1457
Eigen::Vector2d magneticForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:1519
Eigen::Vector2d magnetic_pressureGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:1500
double magnetic_pressure(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:1495
double pressure(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:1483
Eigen::Vector2d momentumForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:1505
Eigen::Vector2d velocity(const Eigen::Vector2d &x, const double &t=0) const
Definition ns-solutions.cpp:1447