rizer.cantera_ext
C++ Cantera 1-D plasma extension (custom Domain1D models and solvers)
Loading...
Searching...
No Matches
EulerFlux.h
Go to the documentation of this file.
1
48
49#ifndef RIZER_EULER_FLUX_H
50#define RIZER_EULER_FLUX_H
51
52#include <algorithm>
53#include <cmath>
54
55namespace rizer
56{
57 namespace numeric
58 {
59
67 inline double maxWaveSpeed(double u_left, double c_left, double u_right,
68 double c_right)
69 {
70 return std::max(std::abs(u_left) + c_left, std::abs(u_right) + c_right);
71 }
72
93 inline double rusanovScalarFlux(double r_face, double phi_left, double phi_right,
94 double u_left, double u_right, double wave_speed)
95 {
96 const double average = 0.5 * (u_left * phi_left + u_right * phi_right);
97 const double dissipation = 0.5 * wave_speed * (phi_right - phi_left);
98 return r_face * (average - dissipation);
99 }
100
123 inline double rusanovMomentumFlux(double r_face, double rho_left, double u_left,
124 double p_left, double rho_right,
125 double u_right, double p_right,
126 double wave_speed)
127 {
128 const double flux_left = rho_left * u_left * u_left + p_left;
129 const double flux_right = rho_right * u_right * u_right + p_right;
130 const double average = 0.5 * (flux_left + flux_right);
131 const double dissipation =
132 0.5 * wave_speed * (rho_right * u_right - rho_left * u_left);
133 return r_face * (average - dissipation);
134 }
135
170 inline double rusanovEnergyFlux(double r_face, double E_left, double p_left,
171 double u_left, double E_right, double p_right,
172 double u_right, double wave_speed)
173 {
174 const double average =
175 0.5 * (u_left * (E_left + p_left) + u_right * (E_right + p_right));
176 const double dissipation = 0.5 * wave_speed * (E_right - E_left);
177 return r_face * (average - dissipation);
178 }
179
199 inline double faceVelocityFlux(double r_face, double u_left, double u_right)
200 {
201 return r_face * 0.5 * (u_left + u_right);
202 }
203
226 inline double momentumGeometricSourceIntegral(double p, double dr)
227 {
228 return p * dr;
229 }
230
231 } // namespace numeric
232} // namespace rizer
233
234#endif // RIZER_EULER_FLUX_H
double rusanovScalarFlux(double r_face, double phi_left, double phi_right, double u_left, double u_right, double wave_speed)
Rusanov face flux for any node-centred conserved scalar – and each .
Definition EulerFlux.h:93
double maxWaveSpeed(double u_left, double c_left, double u_right, double c_right)
Rusanov dissipation coefficient at a face: the fastest wave speed that can reach it from either side,...
Definition EulerFlux.h:67
double momentumGeometricSourceIntegral(double p, double dr)
Cell-integrated cylindrical momentum source, the second term of NUMERICS.md equation (13):
Definition EulerFlux.h:226
double faceVelocityFlux(double r_face, double u_left, double u_right)
Face velocity flux , whose difference gives the electron-pool compression source of NUMERICS....
Definition EulerFlux.h:199
double rusanovMomentumFlux(double r_face, double rho_left, double u_left, double p_left, double rho_right, double u_right, double p_right, double wave_speed)
Pressure-inclusive Rusanov face flux for the radial momentum row, NUMERICS.md equation (12):
Definition EulerFlux.h:123
double rusanovEnergyFlux(double r_face, double E_left, double p_left, double u_left, double E_right, double p_right, double u_right, double wave_speed)
Pressure-inclusive Rusanov face flux for the total energy row, NUMERICS.md equation (14a) – the face ...
Definition EulerFlux.h:170