hydrodynamic_variables.hpp
Go to the documentation of this file.
1 
5 #ifndef HYDRODYNAMIC_VARIABLES_HPP
6 #define HYDRODYNAMIC_VARIABLES_HPP 1
7 
8 #include "../../tessellation/geometry.hpp"
9 
11 class Conserved
12 {
13 public:
14 
16  Conserved(void);
17 
23  Conserved(double mass,
24  Vector2D const& momentum,
25  double energy);
26 
28  double Mass;
29 
32 
34  double Energy;
35 
40  Conserved& operator+=(Conserved const& f);
41 
46  Conserved& operator-=(Conserved const& c);
47 
52  Conserved& operator=(Conserved const&other);
53 
57  Conserved(const Conserved& other);
58 };
59 
61 class Primitive
62 {
63 public:
64 
66  enum {NUMBER_PRIMITIVE_VARIABLES=6};
67 
68  Primitive(void);
69 
77  Primitive(double density_i,
78  double pressure_i,
79  Vector2D const& velocity_i,
80  double energy_i,
81  double sound_speed_i);
82 
84  double Density;
85 
87  double Pressure;
88 
91 
93  double Energy;
94 
96  double SoundSpeed;
97 
100  int GetVarNo(void) const;
101 
106  Primitive& operator+=(Primitive const& p);
107 
119  double& operator[](int index);
120 
132  double operator[](int index) const;
133 
138  Primitive& operator=(Primitive const&other);
139 
143  Primitive(const Primitive& other);
144 };
145 
150 bool primitive_has_nan(Primitive const& p);
151 
157 Primitive operator+(Primitive const& p1, Primitive const& p2);
158 
164 Primitive operator-(Primitive const& p1, Primitive const& p2);
165 
171 Primitive operator/(Primitive const& p, double s);
172 
178 Primitive operator*(Primitive const& p, double s);
179 
185 Primitive operator*(double s, Primitive const& p);
186 
192 Conserved operator*(double d, Conserved const& c);
193 
199 Conserved operator+(Conserved const& c1, Conserved const& c2);
200 
206 Conserved operator-(Conserved const& c1, Conserved const& c2);
207 
213 Conserved operator/(Conserved const& c, double d);
214 
219 double TotalEnergyDensity(Primitive const& p);
220 
226 
232 Conserved Primitive2Conserved(Primitive const& p, double volume);
233 
239 Conserved Primitive2Flux(Primitive const& p, Vector2D const& n);
240 
241 #endif // HYDRODYNAMIC_VARIABLES_HPP
Set of conserved variables (extensive)
Vector2D Momentum
Momentum.
double Density
Density.
double SoundSpeed
Speed of sound.
bool primitive_has_nan(Primitive const &p)
Checks if on of the fields of Primitive is a nan.
Primitive operator-(Primitive const &p1, Primitive const &p2)
Term by term subtraction.
Conserved & operator-=(Conserved const &c)
subtraction of flux
Primitive operator*(Primitive const &p, double s)
Scalar multiplication on the right.
Vector2D Velocity
Velocity.
double Energy
Total energy (kinetic + thermal)
double TotalEnergyDensity(Primitive const &p)
Calculates the total energy density.
Conserved Primitive2Conserved(Primitive const &p)
Converts primitive variables to conserved intensive.
Conserved & operator+=(Conserved const &f)
Addition of flux.
Conserved Primitive2Flux(Primitive const &p, Vector2D const &n)
Converts primitive variables to flux.
Conserved & operator=(Conserved const &other)
Assigmnet operator.
Primitive operator/(Primitive const &p, double s)
Scalar division.
double Pressure
Pressure.
double Energy
Thermal energy per unit mass, entahalpy in relativistic case.
Primitive hydrodynamic variables.
2D Mathematical vector
Definition: geometry.hpp:15
Primitive operator+(Primitive const &p1, Primitive const &p2)
Term by term addition.
Conserved(void)
Null constructor (sets all members to zero)