1 #ifndef __NUMERICAL_FLUX_FACTORY__ 2 #define __NUMERICAL_FLUX_FACTORY__ 4 #include "physics/physics.h" 5 #include "dg/artificial_dissipation.h" 7 #include "convective_numerical_flux.hpp" 8 #include "viscous_numerical_flux.hpp" 11 namespace NumericalFlux {
14 template <
int dim,
int nspecies,
int nstate,
typename real>
19 static std::unique_ptr < NumericalFluxConvective<dim,nspecies,nstate,real> >
27 static std::unique_ptr < NumericalFluxDissipative<dim,nspecies,nstate,real> >
35 static std::unique_ptr< NumericalFluxConvective<dim,nspecies,nstate,real> >
Base class from which Advection, Diffusion, ConvectionDiffusion, and Euler is derived.
PartialDifferentialEquation
Possible Partial Differential Equations to solve.
Files for the baseline physics.
Creates a NumericalFluxConvective or NumericalFluxDissipative based on input.
ModelType
Types of models available.
static std::unique_ptr< NumericalFluxConvective< dim, nspecies, nstate, real > > create_convective_numerical_flux(const AllParam::ConvectiveNumericalFlux conv_num_flux_type, const AllParam::PartialDifferentialEquation pde_type, const AllParam::ModelType model_type, std::shared_ptr< Physics::PhysicsBase< dim, nspecies, nstate, real >> physics_input)
Creates convective numerical flux (baseline flux + upwind term) based on input.
DissipativeNumericalFlux
Possible dissipative numerical flux types.
ConvectiveNumericalFlux
Possible convective numerical flux types.
static std::unique_ptr< NumericalFluxDissipative< dim, nspecies, nstate, real > > create_dissipative_numerical_flux(const AllParam::DissipativeNumericalFlux diss_num_flux_type, std::shared_ptr< Physics::PhysicsBase< dim, nspecies, nstate, real >> physics_input, std::shared_ptr< ArtificialDissipationBase< dim, nspecies, nstate >> artificial_dissipation_input)
Creates dissipative numerical flux based on input.
static std::unique_ptr< NumericalFluxConvective< dim, nspecies, nstate, real > > create_euler_based_convective_numerical_flux(const AllParam::ConvectiveNumericalFlux conv_num_flux_type, const AllParam::PartialDifferentialEquation pde_type, const AllParam::ModelType model_type, std::shared_ptr< Physics::PhysicsBase< dim, nspecies, nstate, real >> physics_input)
Creates euler-based convective numerical flux (upwind term)
Class to add artificial dissipation with an option to add one of the 3 dissipation types: 1...