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 nstate,
typename real>
19 static std::unique_ptr < NumericalFluxConvective<dim,nstate,real> >
27 static std::unique_ptr < NumericalFluxDissipative<dim,nstate,real> >
35 static std::unique_ptr< NumericalFluxConvective<dim,nstate,real> >
static std::unique_ptr< NumericalFluxConvective< dim, 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, nstate, real >> physics_input)
Creates euler-based convective numerical flux (upwind term)
Base class from which Advection, Diffusion, ConvectionDiffusion, and Euler is derived.
static std::unique_ptr< NumericalFluxConvective< dim, 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, nstate, real >> physics_input)
Creates convective numerical flux (baseline flux + upwind term) based on input.
PartialDifferentialEquation
Possible Partial Differential Equations to solve.
Files for the baseline physics.
static std::unique_ptr< NumericalFluxDissipative< dim, nstate, real > > create_dissipative_numerical_flux(const AllParam::DissipativeNumericalFlux diss_num_flux_type, std::shared_ptr< Physics::PhysicsBase< dim, nstate, real >> physics_input, std::shared_ptr< ArtificialDissipationBase< dim, nstate >> artificial_dissipation_input)
Creates dissipative numerical flux based on input.
Creates a NumericalFluxConvective or NumericalFluxDissipative based on input.
ModelType
Types of models available.
DissipativeNumericalFlux
Possible dissipative numerical flux types.
ConvectiveNumericalFlux
Possible convective numerical flux types.
Class to add artificial dissipation with an option to add one of the 3 dissipation types: 1...