Mallard 0.8.0
Unstructured, GPU accelerated, high-order finite volume CFD solver
Mallard website
Loading...
Searching...
No Matches
MixtureDoubleFluxFunctor< T_riemann_solver > Struct Template Reference

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...

#include <mixture_flux.h>

Public Member Functions

KOKKOS_INLINE_FUNCTION void operator() (const uint32_t i_face) const
 

Public Attributes

Kokkos::View< rtype *[N_DIM]> normals
 
Kokkos::View< rtype * > face_area
 
Kokkos::View< int32_t *[2]> cells_of_face
 
Kokkos::View< rtype * > quad_weights
 
Kokkos::View< rtype ** > face_weights
 
Kokkos::View< rtype **[2][N_CONSERVATIVE]> face_solution
 
BoundaryData boundaries
 
Kokkos::View< rtype *[N_CONSERVATIVE]> W_cells
 
Kokkos::View< rtype *[2]> frozen
 
Kokkos::View< rtype **[2][2]> face_thermo
 
Kokkos::View< rtype **, Kokkos::LayoutStride > cell_thermo
 
Kokkos::View< rtype *[N_CONSERVATIVE]> face_flux
 
Kokkos::View< rtype * > face_energy_1
 
Kokkos::View< rtype ** > face_mdot
 
rtype low_mach_cutoff
 
Kokkos::View< rtype * > upwind
 
Kokkos::View< rtype *** > quad_normals
 

Detailed Description

template<typename T_riemann_solver>
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).

Member Function Documentation

◆ operator()()

Member Data Documentation

◆ boundaries

◆ cell_thermo

Kokkos::View<rtype **, Kokkos::LayoutStride> MixtureDoubleFluxFunctor< T_riemann_solver >::cell_thermo

◆ cells_of_face

Kokkos::View<int32_t *[2]> MixtureDoubleFluxFunctor< T_riemann_solver >::cells_of_face

◆ face_area

Kokkos::View<rtype *> MixtureDoubleFluxFunctor< T_riemann_solver >::face_area

◆ face_energy_1

Kokkos::View<rtype *> MixtureDoubleFluxFunctor< T_riemann_solver >::face_energy_1

◆ face_flux

◆ face_mdot

Kokkos::View<rtype **> MixtureDoubleFluxFunctor< T_riemann_solver >::face_mdot

◆ face_solution

Kokkos::View<rtype **[2][N_CONSERVATIVE]> MixtureDoubleFluxFunctor< T_riemann_solver >::face_solution

◆ face_thermo

Kokkos::View<rtype **[2][2]> MixtureDoubleFluxFunctor< T_riemann_solver >::face_thermo

◆ face_weights

Kokkos::View<rtype **> MixtureDoubleFluxFunctor< T_riemann_solver >::face_weights

◆ frozen

Kokkos::View<rtype *[2]> MixtureDoubleFluxFunctor< T_riemann_solver >::frozen

◆ low_mach_cutoff

◆ normals

◆ quad_normals

Kokkos::View<rtype ***> MixtureDoubleFluxFunctor< T_riemann_solver >::quad_normals

◆ quad_weights

Kokkos::View<rtype *> MixtureDoubleFluxFunctor< T_riemann_solver >::quad_weights

◆ upwind

◆ W_cells


The documentation for this struct was generated from the following file: