1#ifndef NS_SOLUTIONS_HPP
2#define NS_SOLUTIONS_HPP
10 namespace NSASolutions
20 inline std::string
name()
const {
38 virtual Eigen::Vector2d
velocity(
const Eigen::Vector2d &
x,
const double & t = 0)
const = 0;
39 virtual double pressure(
const Eigen::Vector2d &
x,
const double & t = 0)
const = 0;
40 virtual Eigen::Matrix2d
velocityGradient(
const Eigen::Vector2d &
x,
const double & t = 0)
const = 0;
41 virtual Eigen::Vector2d
pressureGradient(
const Eigen::Vector2d &
x,
const double & t = 0)
const = 0;
42 virtual double volumicFraction(
const Eigen::Vector2d &
x,
const double & t = 0)
const = 0;
55 Linear(
const int & stokes);
60 Eigen::Vector2d
velocity(
const Eigen::Vector2d &
x,
const double & t = 0)
const;
61 double pressure(
const Eigen::Vector2d &
x,
const double & t = 0)
const;
62 Eigen::Matrix2d
velocityGradient(
const Eigen::Vector2d &
x,
const double & t = 0)
const;
63 Eigen::Vector2d
pressureGradient(
const Eigen::Vector2d &
x,
const double & t = 0)
const;
64 double volumicFraction(
const Eigen::Vector2d &
x,
const double & t = 0)
const;
80 Eigen::Vector2d
velocity(
const Eigen::Vector2d &
x,
const double & t = 0)
const;
81 double pressure(
const Eigen::Vector2d &
x,
const double & t = 0)
const;
82 Eigen::Matrix2d
velocityGradient(
const Eigen::Vector2d &
x,
const double & t = 0)
const;
83 Eigen::Vector2d
pressureGradient(
const Eigen::Vector2d &
x,
const double & t = 0)
const;
84 double volumicFraction(
const Eigen::Vector2d &
x,
const double & t = 0)
const;
99 Eigen::Vector2d
velocity(
const Eigen::Vector2d &
x,
const double & t = 0)
const;
100 double pressure(
const Eigen::Vector2d &
x,
const double & t = 0)
const;
101 Eigen::Matrix2d
velocityGradient(
const Eigen::Vector2d &
x,
const double & t = 0)
const;
102 Eigen::Vector2d
pressureGradient(
const Eigen::Vector2d &
x,
const double & t = 0)
const;
103 double volumicFraction(
const Eigen::Vector2d &
x,
const double & t = 0)
const;
118 Eigen::Vector2d
velocity(
const Eigen::Vector2d &
x,
const double & t = 0)
const;
119 double pressure(
const Eigen::Vector2d &
x,
const double & t = 0)
const;
120 Eigen::Matrix2d
velocityGradient(
const Eigen::Vector2d &
x,
const double & t = 0)
const;
121 Eigen::Vector2d
pressureGradient(
const Eigen::Vector2d &
x,
const double & t = 0)
const;
122 double volumicFraction(
const Eigen::Vector2d &
x,
const double & t = 0)
const;
137 Eigen::Vector2d
velocity(
const Eigen::Vector2d &
x,
const double & t = 0)
const;
138 double pressure(
const Eigen::Vector2d &
x,
const double & t = 0)
const;
139 Eigen::Matrix2d
velocityGradient(
const Eigen::Vector2d &
x,
const double & t = 0)
const;
140 Eigen::Vector2d
pressureGradient(
const Eigen::Vector2d &
x,
const double & t = 0)
const;
141 double volumicFraction(
const Eigen::Vector2d &
x,
const double & t = 0)
const;
154 const double & rho_max,
168 Eigen::Vector2d
velocity(
const Eigen::Vector2d &
x,
const double & t = 0)
const;
169 double pressure(
const Eigen::Vector2d &
x,
const double & t = 0)
const;
170 Eigen::Matrix2d
velocityGradient(
const Eigen::Vector2d &
x,
const double & t = 0)
const;
171 Eigen::Vector2d
pressureGradient(
const Eigen::Vector2d &
x,
const double & t = 0)
const;
172 double volumicFraction(
const Eigen::Vector2d &
x,
const double & t = 0)
const;
189 const double & rho_max,
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 double volumicFraction(
const Eigen::Vector2d &
x,
const double & t = 0)
const;
Create grid points x
Definition generate_cartesian_mesh.m:22
size_t L
Definition HHO_DiffAdvecReac.hpp:46
Definition ddr-klplate.hpp:27
Definition nsa-solutions.hpp:93
Eigen::Vector2d momentumForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Definition nsa-solutions.cpp:219
Eigen::Vector2d velocity(const Eigen::Vector2d &x, const double &t=0) const
Definition nsa-solutions.cpp:184
double volumicFraction(const Eigen::Vector2d &x, const double &t=0) const
Definition nsa-solutions.cpp:213
double densityForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Definition nsa-solutions.cpp:237
double pressure(const Eigen::Vector2d &x, const double &t=0) const
Definition nsa-solutions.cpp:202
Eigen::Vector2d pressureGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition nsa-solutions.cpp:207
Eigen::Matrix2d velocityGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition nsa-solutions.cpp:192
double compressibilityForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Definition nsa-solutions.cpp:232
Definition nsa-solutions.hpp:186
Eigen::Vector2d velocity(const Eigen::Vector2d &x, const double &t=0) const
Definition nsa-solutions.cpp:464
double pressure(const Eigen::Vector2d &x, const double &t=0) const
Definition nsa-solutions.cpp:479
Eigen::Matrix2d velocityGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition nsa-solutions.cpp:469
Eigen::Vector2d pressureGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition nsa-solutions.cpp:484
double densityForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Definition nsa-solutions.cpp:513
double compressibilityForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Definition nsa-solutions.cpp:508
double volumicFraction(const Eigen::Vector2d &x, const double &t=0) const
Definition nsa-solutions.cpp:490
Eigen::Vector2d momentumForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Definition nsa-solutions.cpp:503
Definition nsa-solutions.hpp:112
Eigen::Matrix2d velocityGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition nsa-solutions.cpp:261
Eigen::Vector2d momentumForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Definition nsa-solutions.cpp:290
double pressure(const Eigen::Vector2d &x, const double &t=0) const
Definition nsa-solutions.cpp:272
double volumicFraction(const Eigen::Vector2d &x, const double &t=0) const
Definition nsa-solutions.cpp:284
double compressibilityForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Definition nsa-solutions.cpp:295
Eigen::Vector2d velocity(const Eigen::Vector2d &x, const double &t=0) const
Definition nsa-solutions.cpp:253
Eigen::Vector2d pressureGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition nsa-solutions.cpp:278
double densityForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Definition nsa-solutions.cpp:300
Definition nsa-solutions.hpp:15
double viscosity() const
Return the viscosity.
Definition nsa-solutions.hpp:31
virtual Eigen::Vector2d momentumForcingTerm(const Eigen::Vector2d &x, const double &t=0) const =0
virtual Eigen::Matrix2d velocityGradient(const Eigen::Vector2d &x, const double &t=0) const =0
std::string name() const
Return the solution name.
Definition nsa-solutions.hpp:20
virtual ~IExactSolution()
Definition nsa-solutions.cpp:30
virtual double pressure(const Eigen::Vector2d &x, const double &t=0) const =0
virtual Eigen::Vector2d velocity(const Eigen::Vector2d &x, const double &t=0) const =0
double m_viscosity
Definition nsa-solutions.hpp:48
std::string m_name
Definition nsa-solutions.hpp:46
bool isStokes() const
Definition nsa-solutions.hpp:26
virtual Eigen::Vector2d pressureGradient(const Eigen::Vector2d &x, const double &t=0) const =0
bool m_is_stokes
Definition nsa-solutions.hpp:47
virtual double compressibilityForcingTerm(const Eigen::Vector2d &x, const double &t=0) const =0
virtual double volumicFraction(const Eigen::Vector2d &x, const double &t=0) const =0
virtual double densityForcingTerm(const Eigen::Vector2d &x, const double &t=0) const =0
Definition nsa-solutions.hpp:131
double pressure(const Eigen::Vector2d &x, const double &t=0) const
Definition nsa-solutions.cpp:335
Eigen::Matrix2d velocityGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition nsa-solutions.cpp:325
double densityForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Definition nsa-solutions.cpp:368
Eigen::Vector2d velocity(const Eigen::Vector2d &x, const double &t=0) const
Definition nsa-solutions.cpp:316
Eigen::Vector2d momentumForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Definition nsa-solutions.cpp:358
Eigen::Vector2d pressureGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition nsa-solutions.cpp:340
double volumicFraction(const Eigen::Vector2d &x, const double &t=0) const
Definition nsa-solutions.cpp:346
double compressibilityForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Definition nsa-solutions.cpp:363
Definition nsa-solutions.hpp:54
double compressibilityForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Definition nsa-solutions.cpp:90
Eigen::Vector2d pressureGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition nsa-solutions.cpp:65
Eigen::Vector2d momentumForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Definition nsa-solutions.cpp:77
double pressure(const Eigen::Vector2d &x, const double &t=0) const
Definition nsa-solutions.cpp:60
Eigen::Matrix2d velocityGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition nsa-solutions.cpp:52
double volumicFraction(const Eigen::Vector2d &x, const double &t=0) const
Definition nsa-solutions.cpp:71
double densityForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Definition nsa-solutions.cpp:95
Eigen::Vector2d velocity(const Eigen::Vector2d &x, const double &t=0) const
Definition nsa-solutions.cpp:46
Definition nsa-solutions.hpp:150
double densityForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Definition nsa-solutions.cpp:438
Eigen::Matrix2d velocityGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition nsa-solutions.cpp:400
Eigen::Vector2d pressureGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition nsa-solutions.cpp:415
double pressure(const Eigen::Vector2d &x, const double &t=0) const
Definition nsa-solutions.cpp:410
double compressibilityForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Definition nsa-solutions.cpp:433
Eigen::Vector2d momentumForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
A function to transform the unit domain to .
Definition nsa-solutions.cpp:428
double volumicFraction(const Eigen::Vector2d &x, const double &t=0) const
Definition nsa-solutions.cpp:421
static double s_L
Definition nsa-solutions.hpp:151
Eigen::Vector2d velocity(const Eigen::Vector2d &x, const double &t=0) const
Definition nsa-solutions.cpp:395
Definition nsa-solutions.hpp:74
Eigen::Vector2d pressureGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition nsa-solutions.cpp:135
Eigen::Vector2d velocity(const Eigen::Vector2d &x, const double &t=0) const
Definition nsa-solutions.cpp:111
double compressibilityForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Definition nsa-solutions.cpp:163
double volumicFraction(const Eigen::Vector2d &x, const double &t=0) const
Definition nsa-solutions.cpp:141
double densityForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Definition nsa-solutions.cpp:168
double pressure(const Eigen::Vector2d &x, const double &t=0) const
Definition nsa-solutions.cpp:130
Eigen::Vector2d momentumForcingTerm(const Eigen::Vector2d &x, const double &t=0) const
Definition nsa-solutions.cpp:147
Eigen::Matrix2d velocityGradient(const Eigen::Vector2d &x, const double &t=0) const
Definition nsa-solutions.cpp:119