4#include "warpxm/warpxm_config.h"
47 const real rho_min = std::numeric_limits<real>::epsilon());
71 const real rho_min = std::numeric_limits<real>::epsilon(),
72 const real press_min = std::numeric_limits<real>::epsilon());
101 const real rho_min = std::numeric_limits<real>::epsilon(),
102 const real press_min = std::numeric_limits<real>::epsilon());
129 const real rho_min = std::numeric_limits<real>::epsilon(),
130 const real press_min = std::numeric_limits<real>::epsilon());
135 const real QNC_center[5],
137 const real QC_center[5],
171 const real rho_min = std::numeric_limits<real>::epsilon(),
172 const real press_min = std::numeric_limits<real>::epsilon());
190 const real rho_min = std::numeric_limits<real>::epsilon(),
191 const real press_min = std::numeric_limits<real>::epsilon());
204 const real rho_min = std::numeric_limits<real>::epsilon());
210 const real wave[][3],
213 const real rho_min = std::numeric_limits<real>::epsilon(),
214 const real press_min = std::numeric_limits<real>::epsilon());
236 const real press_min),
238 const real rho_min = std::numeric_limits<real>::epsilon(),
239 const real press_min = std::numeric_limits<real>::epsilon());
264 const real press_min),
265 real numericalFlux[5],
266 const real rho_min = std::numeric_limits<real>::epsilon(),
267 const real press_min = std::numeric_limits<real>::epsilon());
285 const real rho_min = std::numeric_limits<real>::epsilon(),
286 const real press_min = std::numeric_limits<real>::epsilon());
294 const real rho_min = std::numeric_limits<real>::epsilon(),
295 const real press_min = std::numeric_limits<real>::epsilon());
310 real numericalFlux[5],
311 const real rho_min = std::numeric_limits<real>::epsilon(),
312 const real press_min = std::numeric_limits<real>::epsilon());
325 std::vector<std::vector<real>>& internalFlux,
326 const real rho_min = std::numeric_limits<real>::epsilon(),
327 const real press_min = std::numeric_limits<real>::epsilon());
331 const real* grad_rho,
332 const real* grad_p[3],
339 std::vector<std::vector<real>>& flux_tensor);
348 const real* grad_u[3],
350 const real grad_T[3],
351 std::vector<std::vector<real>>& internal_flux,
352 const real rho_min = std::numeric_limits<real>::epsilon());
358 const real viscosity,
359 const real thermal_conductivity,
364 real* numerical_flux,
365 const real rho_min = std::numeric_limits<real>::epsilon(),
366 const real press_min = std::numeric_limits<real>::epsilon());
374 const real rho_min = std::numeric_limits<real>::epsilon(),
375 const real press_min = std::numeric_limits<real>::epsilon());
392 const real rho_min = std::numeric_limits<real>::epsilon(),
393 const real press_min = std::numeric_limits<real>::epsilon());
397 const real rho_min = std::numeric_limits<real>::epsilon());
402 const real rho_min = std::numeric_limits<real>::epsilon());
406 const bool is_neutral,
407 const real collision_coefficient,
408 const real minimum_frequency,
409 const real diffusivity_min,
410 const real diffusivity_max,
411 const bool is_const_mu,
413 const bool is_const_k,
417 const real rho_min = std::numeric_limits<real>::epsilon(),
418 const real press_min = std::numeric_limits<real>::epsilon());
451 const real rho_min = std::numeric_limits<real>::epsilon());
498 const real rho_min = std::numeric_limits<real>::epsilon());
507 real skin_depth_norm,
517 real skin_depth_norm,
real pressure_5moment(const constants_5moment_t *pC, const real QC[5])
Soon to be deprecated.
void freeslipWallCondition_gradients_yu(const constants_5moment_t *pC, const solverVariables_t *pSV, const real *QC, real *QC_w)
void noslipWallCondition_gradients(const constants_5moment_t *pC, const solverVariables_t *pSV, const real *QC, real *QC_w)
void freeslipWallCondition(const solverVariables_t *pSV, const real *QC, real *QC_w)
void noslipWallCondition(const constants_5moment_t *pC, const solverVariables_t *pSV, const real *QC, const real vx_w, const real vy_w, const real vz_w, real *QC_w)
void imhd_to_twofluid_consistent_assumption(const real *QC, const solverVariables_t *pSV, real Ai, real Ae, real Zi, real Ze, real ztheta_ba, real skin_depth_norm, real *QC_w)
void axisBoundaryCondition(const constants_5moment_t *pC, const solverVariables_t *pSV, const real *QC, real *QC_w)
void copyoutBoundaryCondition(const real *QC, real *QC_w)
void axisBoundaryCondition_gradients(const constants_5moment_t *pC, const solverVariables_t *pSV, const real *QC, real *QC_w, const real rho_min=std::numeric_limits< real >::epsilon())
void imhd_to_twofluid_bc(const real *QC, const solverVariables_t *pSV, real Aa, real Ab, real Za, real Zb, real ztheta_ba, real skin_depth_norm, real *QC_w)
void freeslipWallCondition_yu(const constants_5moment_t *pC, const solverVariables_t *pSV, const real *QC, real *QC_w)
void navier_stokes_viscous_flux_tensor(const real *q, const solverVariables_t *pSV, const real pi[][3], const real h[3], std::vector< std::vector< real > > &flux_tensor)
void navier_stokes_anisotropic_pressure_tensor(const real viscosity, const real *q, const real *grad_rho, const real *grad_p[3], real pi[3][3])
real eulerNumericalFlux(const constants_5moment_t *pC, const solverVariables_t *pSV, const real QC_l[5], const real QC_r[5], void(*numerical_flux_scheme)(const constants_5moment_t *pC, const real QC_l[5], const real QC_r[5], real *s, real amdq[5], real apdq[5], const real rho_min, const real press_min), real numericalFlux[5], const real rho_min=std::numeric_limits< real >::epsilon(), const real press_min=std::numeric_limits< real >::epsilon())
Calculates the Numerical Flux for the Euler fluid equations using Roe's Method as given by Leveque in...
void eulerRoeAverages(const constants_5moment_t *pC, const real ql[5], const real qr[5], const real &pl, const real &pr, real &rho, real &u, real &v, real &w, real &enth, real &a, const real rho_min=std::numeric_limits< real >::epsilon())
real navier_stokes_numerical_flux(constants_5moment_t *pC, const solverVariables_t *pSV, const real viscosity, const real thermal_conductivity, const real *q_l, const real *q_r, const real *aux_l, const real *aux_r, real *numerical_flux, const real rho_min=std::numeric_limits< real >::epsilon(), const real press_min=std::numeric_limits< real >::epsilon())
real getTemperatureFloored(const real *q, const real gas_gamma, const real A=1.0, const real rho_min=std::numeric_limits< real >::epsilon(), const real press_min=std::numeric_limits< real >::epsilon())
Get the temperature from Euler (5-moment) variables using floors for pressure and density.
void eulerHLLEFluxSolver(const constants_5moment_t *pC, const real QC_l[5], const real QC_r[5], real *s, real amdq[5], real apdq[5], const real rho_min=std::numeric_limits< real >::epsilon(), const real press_min=std::numeric_limits< real >::epsilon())
Calculates the HLLE flux for the Euler fluid equations.
void antirotateVector(const real Rv[5], const solverVariables_t *pSV, real v[5])
Rotates a 5-moment variable set from local frame to world frame.
real eulerNumericalFlux_x(const constants_5moment_t *pC, const real QC_l[5], const real QC_r[5], void(*numerical_flux_scheme)(const constants_5moment_t *pC, const real QC_l[5], const real QC_r[5], real *s, real amdq[5], real apdq[5], const real rho_min, const real press_min), real flux[5], const real rho_min=std::numeric_limits< real >::epsilon(), const real press_min=std::numeric_limits< real >::epsilon())
Calculates the Euler Numerical flux given a scheme along the x-axis which is to be used as a numerica...
void calcGradT(const constants_5moment_t *pC, const real *q, const real *aux, const real *grad_u, real *grad_T, const real rho_min=std::numeric_limits< real >::epsilon(), const real press_min=std::numeric_limits< real >::epsilon())
Computes temperature gradients from 5 moment conserved variable gradients/values.
void NCtoC(const constants_5moment_t *pC, const real QNC[5], real QC[5])
Converts nonconserved (primitive) variables to conserved variables.
real getRhoFloored(const real *q, const real rho_min=std::numeric_limits< real >::epsilon())
Get the floored mass density.
real positivity_preserving_source_dt(const real *q, const real *dqdt, real lambda, const real rho_min=std::numeric_limits< real >::epsilon())
Computes the maximum allowable dt for a source term to preserve positivity for the positivity-preserv...
void calcGradU(const real *q, const real *aux, real *grad_u[3], const real rho_min=std::numeric_limits< real >::epsilon())
void eulerFlux(const constants_5moment_t *pC, const real QC[5], real flux[5], const real rho_min=std::numeric_limits< real >::epsilon(), const real press_min=std::numeric_limits< real >::epsilon())
Flux along x-axis for Euler fluid equations using conserved variables.
void CtoNC(const constants_5moment_t *pC, const real QC[5], real QNC[5], const real rho_min=std::numeric_limits< real >::epsilon(), const real press_min=std::numeric_limits< real >::epsilon())
Converts conserved variables to nonconserved (primitive) variables.
real eulerRusanovFlux(const constants_5moment_t *pC, const solverVariables_t *pSV, const real QC_l[5], const real QC_r[5], real numericalFlux[5], const real rho_min=std::numeric_limits< real >::epsilon(), const real press_min=std::numeric_limits< real >::epsilon())
Calculates the Rusanov flux for the Euler fluid equations directly.
void navier_stokes_internal_flux(const constants_5moment_t *pC, const solverVariables_t *pSV, const real mu, const real k, const real *q, const real u[3], const real *grad_u[3], const real div_u, const real grad_T[3], std::vector< std::vector< real > > &internal_flux, const real rho_min=std::numeric_limits< real >::epsilon())
void hartenHymanEntropyFix(const constants_5moment_t *pC, const real ql[5], const real qr[5], const real s[3], const real wave[][3], real amdq[5], real apdq[5], const real rho_min=std::numeric_limits< real >::epsilon(), const real press_min=std::numeric_limits< real >::epsilon())
void eulerRoeFluxSolver(const constants_5moment_t *pC, const real QC_l[5], const real QC_r[5], real *s, real amdq[5], real apdq[5], const real rho_min=std::numeric_limits< real >::epsilon(), const real press_min=std::numeric_limits< real >::epsilon())
Solves the full Roe decomposition for the euler fluid problem using conserved variables - assumes an ...
void get_mu_and_k(const constants_5moment_t *pC, const real *q, const bool is_neutral, const real collision_coefficient, const real minimum_frequency, const real diffusivity_min, const real diffusivity_max, const bool is_const_mu, const real const_mu, const bool is_const_k, const real const_k, real &mu, real &k, const real rho_min=std::numeric_limits< real >::epsilon(), const real press_min=std::numeric_limits< real >::epsilon())
real interspeciesCollisions(const real nu_ab, const constants_5moment_t *pC_a, const constants_5moment_t *pC_b, const real *q_a, const real *q_b, real *source, const real rho_min=std::numeric_limits< real >::epsilon(), const real press_min=std::numeric_limits< real >::epsilon())
real eulerInternalFlux(const constants_5moment_t *pC, const solverVariables_t *pSV, const real QC[5], std::vector< std::vector< real > > &internalFlux, const real rho_min=std::numeric_limits< real >::epsilon(), const real press_min=std::numeric_limits< real >::epsilon())
Calculates the internal euler flux at a given point.
real getPressureFloored(const real *q, const real gas_gamma, const real rho_min=std::numeric_limits< real >::epsilon(), const real press_min=std::numeric_limits< real >::epsilon())
Get the pressure from Euler (5-moment) variables using floors for pressure and density.
real calcDivU(const real *q, const real *aux, const real rho_min=std::numeric_limits< real >::epsilon())
void rotateVector(const real v[5], const solverVariables_t *pSV, real Rv[5])
Rotates a 5-moment variable set from world frame to local frame.
void eulerHLLECFluxSolver(const constants_5moment_t *pC, const real QC_l[5], const real QC_r[5], real *s, real amdq[5], real apdq[5], const real rho_min=std::numeric_limits< real >::epsilon(), const real press_min=std::numeric_limits< real >::epsilon())
void NCtoCDifferential(const constants_5moment_t *pC, const real QNC_center[5], const real dQNC[5], const real QC_center[5], real dQC[5])
This currently isn't used anywhere.
Base namespace for everything not included in the global namespace.
Definition: field_source.h:8
Structure for holding constants used in the 5moment solvers.
Definition: 5-moment_base.h:17
real gas_gamma
Definition: 5-moment_base.h:18
real density_min
Definition: 5-moment_base.h:20
real mass
Definition: 5-moment_base.h:19
real pressure_min
Definition: 5-moment_base.h:21
bool entropy_fix
Definition: 5-moment_base.h:22
Definition: wmapplication.h:38
#define real
Definition: wmoclunstructuredreconstruction.h:11