|
Mallard 0.8.0
Unstructured, GPU accelerated, high-order finite volume CFD solver
Mallard website |
Convective flux functor. More...
Go to the source code of this file.
Classes | |
| struct | UpwindSensorFunctor |
| Upwind fraction of each cell for the hybrid convective flux: 1 where the Ducros sensor restricted to compressions (Ducros et al. 1999; Bhagatwala & Lele 2009), theta = (div u)^2 / ((div u)^2 + |omega|^2) for div u < 0, exceeds the threshold (shocks), else the floor. gradients(c, 1 + k, i) = d u_k / d x_i. More... | |
| struct | ConvectiveFluxFunctor< T_riemann_solver > |
| Integrates the convective flux over every face into face_flux, the rate of change it causes in cells_of_face(:, 0) (cells_of_face(:, 1) receives its negative). Boundary faces use the boundary ghost state as the right state. Characteristic boundaries take the low-Mach correction like interior faces: without it, the different dissipation of the boundary cell's two sides holds the outlet pressure of a steady shear flow away from its target. More... | |
| struct | FaceFluxSumFunctor |
| Sums the face fluxes of each cell into its RHS in faces_of_cell order, so that the result does not depend on thread scheduling. More... | |
Functions | |
| KOKKOS_INLINE_FUNCTION void | low_mach_correction (rtype *W_l, rtype *W_r, const rtype gamma, const rtype M_cut) |
| Low-Mach correction of Thornber et al. (J. Comput. Phys. 227, 2008): scales the jump of the reconstructed velocity across a face by z = min(1, max(M_L, M_R, M_cut)), keeping its mean. Upwind fluxes otherwise damp velocity jumps at the sound speed, a dissipation that does not vanish as M -> 0; with the correction it scales with the flow speed. The cutoff M_cut keeps some acoustic damping in gas nearly at rest, like the cutoff Mach number of preconditioned all-speed schemes (Weiss & Smith, AIAA J. 33(11), 1995). Supersonic faces (z = 1) are untouched. | |
| KOKKOS_INLINE_FUNCTION const rtype * | quad_normal (const Kokkos::View< rtype *** > &quad_normals, const uint32_t f, const uint8_t q, const rtype *n_face, rtype *n_q) |
| Unit normal at quadrature point q of face f: the point's own on curved meshes (quad_normals, (face, q, dim)), else the face's n_face. | |
| KOKKOS_INLINE_FUNCTION rtype | face_upwind_fraction (const Kokkos::View< rtype * > &upwind, const BoundaryData &boundaries, const int32_t c0, const int32_t c1, const uint32_t i_face) |
| Upwind fraction of a face of the hybrid convective flux: the larger of its cells' (boundary faces other than walls and symmetry planes, whose mirror states make the central flux exact, take the Riemann flux). | |
Convective flux functor.
| KOKKOS_INLINE_FUNCTION rtype face_upwind_fraction | ( | const Kokkos::View< rtype * > & | upwind, |
| const BoundaryData & | boundaries, | ||
| const int32_t | c0, | ||
| const int32_t | c1, | ||
| const uint32_t | i_face | ||
| ) |
Upwind fraction of a face of the hybrid convective flux: the larger of its cells' (boundary faces other than walls and symmetry planes, whose mirror states make the central flux exact, take the Riemann flux).
| KOKKOS_INLINE_FUNCTION void low_mach_correction | ( | rtype * | W_l, |
| rtype * | W_r, | ||
| const rtype | gamma, | ||
| const rtype | M_cut | ||
| ) |
Low-Mach correction of Thornber et al. (J. Comput. Phys. 227, 2008): scales the jump of the reconstructed velocity across a face by z = min(1, max(M_L, M_R, M_cut)), keeping its mean. Upwind fluxes otherwise damp velocity jumps at the sound speed, a dissipation that does not vanish as M -> 0; with the correction it scales with the flow speed. The cutoff M_cut keeps some acoustic damping in gas nearly at rest, like the cutoff Mach number of preconditioned all-speed schemes (Weiss & Smith, AIAA J. 33(11), 1995). Supersonic faces (z = 1) are untouched.
| KOKKOS_INLINE_FUNCTION const rtype * quad_normal | ( | const Kokkos::View< rtype *** > & | quad_normals, |
| const uint32_t | f, | ||
| const uint8_t | q, | ||
| const rtype * | n_face, | ||
| rtype * | n_q | ||
| ) |
Unit normal at quadrature point q of face f: the point's own on curved meshes (quad_normals, (face, q, dim)), else the face's n_face.