WARPXM v1.10.0
Loading...
Searching...
No Matches
imhd.h
Go to the documentation of this file.
1#pragma once
2
3#include <cmath>
4
5#include "warpxm/warpxm_config.h"
7
8
9real max_wave_speed(const real gas_gamma,
10 const real* q,
11 const real rho_min = std::numeric_limits<real>::epsilon(),
12 const real press_min = std::numeric_limits<real>::epsilon());
13
15 const real gas_gamma,
16 const real* q,
17 const real rho_min = std::numeric_limits<real>::epsilon(),
18 const real press_min = std::numeric_limits<real>::epsilon());
19
21 const real* q,
22 const real rho_min = std::numeric_limits<real>::epsilon(),
23 const real press_min = std::numeric_limits<real>::epsilon());
24
26 const real* q,
27 const real rho_min = std::numeric_limits<real>::epsilon(),
28 const real press_min = std::numeric_limits<real>::epsilon());
29
31 const real* q,
32 const real rho_min = std::numeric_limits<real>::epsilon(),
33 const real press_min = std::numeric_limits<real>::epsilon());
34
48 const real gas_gamma,
49 const real* q,
50 real* c,
51 const real rho_min = std::numeric_limits<real>::epsilon(),
52 const real press_min = std::numeric_limits<real>::epsilon());
53
54real rusanov_flux(const real gas_gamma,
55 const real* ql,
56 const real* qr,
57 const real* F_L,
58 const real* F_R,
59 real* F_num,
60 const real rho_min = std::numeric_limits<real>::epsilon(),
61 const real press_min = std::numeric_limits<real>::epsilon());
62
63real hll_flux(const real gas_gamma,
64 const real* ql,
65 const real* qr,
66 const real* F_L,
67 const real* F_R,
68 real* F_num,
69 const real rho_min = std::numeric_limits<real>::epsilon(),
70 const real press_min = std::numeric_limits<real>::epsilon());
71
72real hlld_flux(const real gas_gamma,
73 const real* ql,
74 const real* qr,
75 const real* F_L,
76 const real* F_R,
77 real* F_num,
78 const real rho_min = std::numeric_limits<real>::epsilon(),
79 const real press_min = std::numeric_limits<real>::epsilon());
80
82
83real get_delta_lambda_k(const real lambda_k_R, const real lambda_k_L);
84
85real get_lambda_k_star(const real lambda_k_roe,
86 const real lambda_k_R,
87 const real lambda_k_L);
88
89real roe_flux(const real gas_gamma,
90 const real* ql,
91 const real* qr,
92 const real* F_L,
93 const real* F_R,
94 real* F_num,
95 const real rho_min = std::numeric_limits<real>::epsilon(),
96 const real press_min = std::numeric_limits<real>::epsilon());
97
126 const real gas_gamma,
127 const real* q,
128 real* f,
129 const real rho_min = std::numeric_limits<real>::epsilon(),
130 const real press_min = std::numeric_limits<real>::epsilon());
131
157 const real* q_l,
158 const real* q_r,
159 const real* aux_l,
160 const real* aux_r,
161 const solverVariables_t* pFV,
162 const std::string& flux_type,
163 real* numericalFlux,
164 const real rho_min = std::numeric_limits<real>::epsilon(),
165 const real press_min = std::numeric_limits<real>::epsilon());
166
179void imhd_internal_flux(const real gas_gamma,
180 const solverVariables_t* pSV,
181 const real* q,
182 std::vector<std::vector<real>>& internalFlux,
183 const real rho_min = std::numeric_limits<real>::epsilon(),
184 const real press_min = std::numeric_limits<real>::epsilon());
185
193void CtoNC_MHD(const real gas_gamma,
194 const real QC[8],
195 real QNC[8],
196 const real rho_min = std::numeric_limits<real>::epsilon(),
197 const real press_min = std::numeric_limits<real>::epsilon());
198
205void NCtoC_MHD(const real gas_gamma,
206 const real QNC[8],
207 real QC[8],
208 const real rho_min = std::numeric_limits<real>::epsilon());
209
210void dqdw_MHD(const real gas_gamma,
211 const real Q[8],
212 real dqdw[][8],
213 const real rho_min = std::numeric_limits<real>::epsilon(),
214 const real press_min = std::numeric_limits<real>::epsilon());
215
216void dwdq_MHD(const real gas_gamma,
217 const real Q[8],
218 real dwdq[][8],
219 const real rho_min = std::numeric_limits<real>::epsilon(),
220 const real press_min = std::numeric_limits<real>::epsilon());
221
222void conducting_wall_noslip(const real gas_gamma,
223 const solverVariables_t* pFV,
224 const real* QC,
225 const real vx_w,
226 const real vy_w,
227 const real vz_w,
228 real* QC_w,
229 const real rho_min = std::numeric_limits<real>::epsilon(),
230 const real press_min = std::numeric_limits<real>::epsilon());
231
233 const real gas_gamma,
234 const solverVariables_t* pFV,
235 const real* QC,
236 const real vx_w,
237 const real vy_w,
238 const real vz_w,
239 real* QC_w,
240 const real rho_min = std::numeric_limits<real>::epsilon(),
241 const real press_min = std::numeric_limits<real>::epsilon());
242
244 const real gas_gamma,
245 const solverVariables_t* pFV,
246 const real* QC,
247 real* QC_w,
248 const real rho_min = std::numeric_limits<real>::epsilon(),
249 const real press_min = std::numeric_limits<real>::epsilon());
250
252 const real gas_gamma,
253 const solverVariables_t* pFV,
254 const real* QC,
255 real* QC_w,
256 const real rho_min = std::numeric_limits<real>::epsilon(),
257 const real press_min = std::numeric_limits<real>::epsilon());
258
260 const real gas_gamma,
261 const solverVariables_t* pFV,
262 const real* QC,
263 const real* aux_in,
264 const real* aux_out,
265 real* QC_w,
266 const real rho_min = std::numeric_limits<real>::epsilon(),
267 const real press_min = std::numeric_limits<real>::epsilon());
268
269void twofluid_to_imhd(const real* QC,
270 const solverVariables_t* pSV,
271 real oc_sd,
272 real* QC_w);
273
274void copyout(const real* QC, real* QC_w);
275
276void copyout_gradients(const real* grad_QC, real* grad_QC_w);
277
279 const real gas_gamma,
280 const solverVariables_t* pFV,
281 const real* QC,
282 real* QC_w,
283 const real rho_min = std::numeric_limits<real>::epsilon(),
284 const real press_min = std::numeric_limits<real>::epsilon());
285
302 const real* q_l,
303 const real* q_r,
304 real* numericalFlux);
real imhd_numerical_flux(const real gas_gamma, const real *q_l, const real *q_r, const real *aux_l, const real *aux_r, const solverVariables_t *pFV, const std::string &flux_type, real *numericalFlux, const real rho_min=std::numeric_limits< real >::epsilon(), const real press_min=std::numeric_limits< real >::epsilon())
IMHD numerical flux vector calculated in global frame.
real get_avg(real a, real b)
void freeslipWallCondition_imhd(const real gas_gamma, const solverVariables_t *pFV, const real *QC, real *QC_w, const real rho_min=std::numeric_limits< real >::epsilon(), const real press_min=std::numeric_limits< real >::epsilon())
real min_wave_speed(real gas_gamma, const real *q, const real rho_min=std::numeric_limits< real >::epsilon(), const real press_min=std::numeric_limits< real >::epsilon())
real rusanov_flux(const real gas_gamma, const real *ql, const real *qr, const real *F_L, const real *F_R, real *F_num, const real rho_min=std::numeric_limits< real >::epsilon(), const real press_min=std::numeric_limits< real >::epsilon())
void conducting_wall_freeslip_gradients(const real gas_gamma, const solverVariables_t *pFV, const real *QC, const real *aux_in, const real *aux_out, real *QC_w, const real rho_min=std::numeric_limits< real >::epsilon(), const real press_min=std::numeric_limits< real >::epsilon())
void conducting_wall_noslip_gradients(const real gas_gamma, const solverVariables_t *pFV, const real *QC, real *QC_w, const real rho_min=std::numeric_limits< real >::epsilon(), const real press_min=std::numeric_limits< real >::epsilon())
void imhd_internal_flux(const real gas_gamma, const solverVariables_t *pSV, const real *q, std::vector< std::vector< real > > &internalFlux, const real rho_min=std::numeric_limits< real >::epsilon(), const real press_min=std::numeric_limits< real >::epsilon())
IMHD internal flux tensor calculated in global frame.
void dwdq_MHD(const real gas_gamma, const real Q[8], real dwdq[][8], const real rho_min=std::numeric_limits< real >::epsilon(), const real press_min=std::numeric_limits< real >::epsilon())
real calc_fast_magnetosonic(real gas_gamma, const real *q, const real rho_min=std::numeric_limits< real >::epsilon(), const real press_min=std::numeric_limits< real >::epsilon())
real calc_slow_magnetosonic(real gas_gamma, const real *q, const real rho_min=std::numeric_limits< real >::epsilon(), const real press_min=std::numeric_limits< real >::epsilon())
void CtoNC_MHD(const real gas_gamma, const real QC[8], real QNC[8], 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.
void imhd_numerical_flux_local_frame(const real gas_gamma, const real *q, real *f, const real rho_min=std::numeric_limits< real >::epsilon(), const real press_min=std::numeric_limits< real >::epsilon())
IMHD numerical flux vector calculated in frame rotated to element boundary.
void NCtoC_MHD(const real gas_gamma, const real QNC[8], real QC[8], const real rho_min=std::numeric_limits< real >::epsilon())
Converts nonconserved (primitive) variables to conserved variables.
real roe_flux(const real gas_gamma, const real *ql, const real *qr, const real *F_L, const real *F_R, real *F_num, const real rho_min=std::numeric_limits< real >::epsilon(), const real press_min=std::numeric_limits< real >::epsilon())
void copyout_gradients(const real *grad_QC, real *grad_QC_w)
real max_wave_speed_magnitude(const real gas_gamma, const real *q, const real rho_min=std::numeric_limits< real >::epsilon(), const real press_min=std::numeric_limits< real >::epsilon())
void calc_magnetosonic_speeds(const real gas_gamma, const real *q, real *c, const real rho_min=std::numeric_limits< real >::epsilon(), const real press_min=std::numeric_limits< real >::epsilon())
Calculate magnetosonic speeds in local frame, normal to element boundary.
void dqdw_MHD(const real gas_gamma, const real Q[8], real dqdw[][8], const real rho_min=std::numeric_limits< real >::epsilon(), const real press_min=std::numeric_limits< real >::epsilon())
void conducting_wall_noslip_old(const real gas_gamma, const solverVariables_t *pFV, const real *QC, const real vx_w, const real vy_w, const real vz_w, real *QC_w, const real rho_min=std::numeric_limits< real >::epsilon(), const real press_min=std::numeric_limits< real >::epsilon())
void twofluid_to_imhd(const real *QC, const solverVariables_t *pSV, real oc_sd, real *QC_w)
real max_wave_speed(const real gas_gamma, const real *q, const real rho_min=std::numeric_limits< real >::epsilon(), const real press_min=std::numeric_limits< real >::epsilon())
real hll_flux(const real gas_gamma, const real *ql, const real *qr, const real *F_L, const real *F_R, real *F_num, const real rho_min=std::numeric_limits< real >::epsilon(), const real press_min=std::numeric_limits< real >::epsilon())
void copyout(const real *QC, real *QC_w)
real get_delta_lambda_k(const real lambda_k_R, const real lambda_k_L)
real get_lambda_k_star(const real lambda_k_roe, const real lambda_k_R, const real lambda_k_L)
void conducting_wall_freeslip(const real gas_gamma, const solverVariables_t *pFV, const real *QC, real *QC_w, const real rho_min=std::numeric_limits< real >::epsilon(), const real press_min=std::numeric_limits< real >::epsilon())
void conducting_wall_noslip(const real gas_gamma, const solverVariables_t *pFV, const real *QC, const real vx_w, const real vy_w, const real vz_w, real *QC_w, const real rho_min=std::numeric_limits< real >::epsilon(), const real press_min=std::numeric_limits< real >::epsilon())
void applyLdgPenaltyEta(const solverVariables_t *pFV, const real *q_l, const real *q_r, real *numericalFlux)
Apply LDG eta penalty to numerical flux.
real hlld_flux(const real gas_gamma, const real *ql, const real *qr, const real *F_L, const real *F_R, real *F_num, const real rho_min=std::numeric_limits< real >::epsilon(), const real press_min=std::numeric_limits< real >::epsilon())
Definition: wmapplication.h:38
#define real
Definition: wmoclunstructuredreconstruction.h:11