Mallard 0.8.0
Unstructured, GPU accelerated, high-order finite volume CFD solver
Mallard website
Loading...
Searching...
No Matches
mixture_flux.h File Reference

Convective fluxes of a gas mixture: the flow block through the Riemann solvers, the species by mass-flux upwinding. More...

#include <type_traits>
#include <Kokkos_Core.hpp>
#include "boundary.h"
#include "common.h"
#include "flux_functor.h"
#include "riemann_solver.h"
#include "scalar_reconstruction.h"
#include "state.h"

Go to the source code of this file.

Classes

struct  MixtureFluxFunctor< T_riemann_solver >
 Flow-block flux of a gas mixture over every face, as ConvectiveFluxFunctor, with the face thermodynamics [gamma, e0] of each side. Also stores the mass flux per unit area at each quadrature point, positive from cells_of_face(:, 0) to (:, 1), for the species fluxes. More...
 
struct  MixtureDoubleFluxFunctor< T_riemann_solver >
 Double-flux variant of MixtureFluxFunctor (Abgrall & Karni 2001; Billet & Abgrall 2003; Ma, Lv & Ihme 2017): each cell's energy update uses a flux computed with its own frozen [gamma, e0] on both sides of the face, so pressure and velocity stay exactly uniform across contacts between different gases. Mass and momentum use the mean of the two sides' fluxes, which stays conservative and equals both at such contacts: both estimate the wave speeds with each side's own [gamma, e0], which makes their mass fluxes there agree for every solver, HLL and Rusanov included. face_flux holds side 0's energy flux, face_energy_1 side 1's (both as the rate of change of side 0). More...
 
struct  DoubleFluxSumFunctor
 FaceFluxSumFunctor for double flux: the energy of a face's side-1 cell comes from face_energy_1. More...
 
struct  SpeciesSlotFunctor< Eval >
 Species fluxes by mass-flux upwinding (Larrouturou 1991), F_k = max(mdot, 0) Y_k^L + min(mdot, 0) Y_k^R, split by the side each part comes from: each cell writes, for each of its faces, the mass of each species leaving it through that face, slot(face, side, k) = A/2 sum_q w_q max(mdot_out, 0) Y_k(q), with Y_k from its own reconstruction (the evaluator Eval, see ScalarFaceValues); boundary faces also get the inflow from the exterior state in slot(face, 1, k). No two threads write the same slot. More...
 
struct  SpeciesSumFunctor
 Species RHS per unit volume: the inflow minus the outflow slots of each face of the cell, in faces_of_cell order. More...
 

Functions

KOKKOS_INLINE_FUNCTION void low_mach_correction (rtype *W_l, rtype *W_r, const rtype gamma_l, const rtype gamma_r, const rtype M_cut)
 The low-Mach correction of flux_functor.h with each side's own ratio of specific heats in its Mach number.
 

Detailed Description

Convective fluxes of a gas mixture: the flow block through the Riemann solvers, the species by mass-flux upwinding.

Author
Matthew Bonanni (mbona.nosp@m.nni0.nosp@m.01@gm.nosp@m.ail..nosp@m.com)
Version
0.3
Date
2026-10-02

Function Documentation

◆ low_mach_correction()

KOKKOS_INLINE_FUNCTION void low_mach_correction ( rtype *  W_l,
rtype *  W_r,
const rtype  gamma_l,
const rtype  gamma_r,
const rtype  M_cut 
)

The low-Mach correction of flux_functor.h with each side's own ratio of specific heats in its Mach number.