1#ifndef NS_SOLUTIONS_HPP 
    2#define NS_SOLUTIONS_HPP 
   10  namespace NavierStokesSolutions
 
   18                     double degen_param = 0.0);
 
   22      inline std::string 
name()
 const {
 
 
   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;
 
 
   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;
 
 
   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;
 
 
  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;
 
 
  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;
 
 
  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;
 
 
  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;
 
 
  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;
 
 
  181        return std::array<double, 2>{2. * 
x[0] - 0.5, 2. * 
x[1]};
 
 
  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;
 
 
  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;
 
 
  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;
 
 
  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;
 
 
  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;
 
 
  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;
 
 
  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;
 
 
 
Create grid points x
Definition generate_cartesian_mesh.m:22
 
std::function< std::array< double, 2 >(const std::array< double, 2 > &)> TransformationType
Definition MeshBuilder2D.hpp:174
 
Definition ddr-klplate.hpp:27
 
Definition ns-solutions.hpp:15
 
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
 
Definition ns-solutions.hpp:283
 
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
 
Definition ns-solutions.hpp:88
 
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
 
Definition ns-solutions.hpp:264
 
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
 
Definition ns-solutions.hpp:74
 
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
 
Definition ns-solutions.hpp:161
 
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
 
Definition ns-solutions.hpp:146
 
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
 
Definition ns-solutions.hpp:131
 
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
 
Definition ns-solutions.hpp:102
 
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
 
Definition ns-solutions.hpp:200
 
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
 
Definition ns-solutions.hpp:215
 
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
 
Definition ns-solutions.hpp:116
 
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