1 #ifndef __NAVIER_STOKES_MODEL__ 2 #define __NAVIER_STOKES_MODEL__ 5 #include "navier_stokes.h" 12 template <
int dim,
int nspecies,
int nstate,
typename real>
21 const double ref_length,
22 const double gamma_gas,
23 const double mach_inf,
24 const double angle_of_attack,
25 const double side_slip_angle,
26 const double prandtl_number,
27 const double reynolds_number_inf,
28 const bool use_constant_viscosity,
29 const double constant_viscosity,
30 const double temperature_inf,
32 const double isothermal_wall_temperature = 1.0,
47 const std::array<real,nstate> &conservative_soln)
const;
51 const std::array<real,nstate> &conservative_soln,
52 const std::array<dealii::Tensor<1,dim,real>,nstate> &solution_gradient,
53 const dealii::types::global_dof_index cell_index)
const;
57 const std::array<real,nstate> &solution,
58 const std::array<dealii::Tensor<1,dim,real>,nstate> &solution_gradient,
59 const std::array<real,nstate> &filtered_solution,
60 const std::array<dealii::Tensor<1,dim,real>,nstate> &filtered_solution_gradient,
61 const bool on_boundary,
62 const dealii::types::global_dof_index cell_index,
63 const dealii::Tensor<1,dim,real> &normal,
64 const int boundary_type)
const;
69 const std::array<real,nstate> &,
70 const dealii::Tensor<1,dim,real> &)
const override;
79 const std::array<real,nstate> &soln,
80 const dealii::Tensor<1,dim,real> &normal)
const;
84 const dealii::Point<dim,real> &pos,
85 const std::array<real,nstate> &solution,
86 const real current_time,
87 const dealii::types::global_dof_index cell_index)
const;
91 const dealii::Point<dim,real> &pos,
92 const std::array<real,nstate> &conservative_solution,
93 const std::array<dealii::Tensor<1,dim,real>,nstate> &solution_gradient,
94 const dealii::types::global_dof_index cell_index)
const override;
105 const std::array<real,nstate> &conservative_soln)
const;
Manufactured solution used for grid studies to check convergence orders.
std::array< real, nstate > dissipative_flux_dot_normal(const std::array< real, nstate > &solution, const std::array< dealii::Tensor< 1, dim, real >, nstate > &solution_gradient, const std::array< real, nstate > &filtered_solution, const std::array< dealii::Tensor< 1, dim, real >, nstate > &filtered_solution_gradient, const bool on_boundary, const dealii::types::global_dof_index cell_index, const dealii::Tensor< 1, dim, real > &normal, const int boundary_type) const
Dissipative (i.e. viscous) flux: dot normal vector.
Files for the baseline physics.
std::array< real, nstate > source_term(const dealii::Point< dim, real > &pos, const std::array< real, nstate > &solution, const real current_time, const dealii::types::global_dof_index cell_index) const
Source term for manufactured solution functions.
std::array< real, nstate > physical_source_term(const dealii::Point< dim, real > &pos, const std::array< real, nstate > &conservative_solution, const std::array< dealii::Tensor< 1, dim, real >, nstate > &solution_gradient, const dealii::types::global_dof_index cell_index) const override
Physical source term.
Physics model additional terms and equations to the baseline physics.
std::array< real, nstate > convective_eigenvalues(const std::array< real, nstate > &, const dealii::Tensor< 1, dim, real > &) const override
Convective eigenvalues of the additional models' PDEs.
Main parameter class that contains the various other sub-parameter classes.
std::array< real, nstate > channel_flow_source_term(const std::array< real, nstate > &conservative_soln) const
Channel flow source term.
TwoPointNumericalFlux
Two point numerical flux type for split form.
std::array< dealii::Tensor< 1, dim, real >, nstate > dissipative_flux(const std::array< real, nstate > &conservative_soln, const std::array< dealii::Tensor< 1, dim, real >, nstate > &solution_gradient, const dealii::types::global_dof_index cell_index) const
Dissipative (i.e. viscous) flux: .
std::unique_ptr< NavierStokes< dim, nspecies, nstate, real > > navier_stokes_physics
Pointer to Navier-Stokes physics object.
std::array< dealii::Tensor< 1, dim, real >, nstate > zero_tensor_array
Tensor array of zeros.
const double relaxation_coefficient
Relaxation coefficient for the channel flow source term.
Navier Stokes equations with model source term.
std::array< real, nstate > zero_array
Array of zeros.
real max_convective_normal_eigenvalue(const std::array< real, nstate > &soln, const dealii::Tensor< 1, dim, real > &normal) const
Maximum convective normal eigenvalue (used in Lax-Friedrichs) of the additional models' PDEs...
ThermalBoundaryCondition
Types of thermal boundary conditions available.
~NavierStokesWithModelSourceTerms()
Destructor.
std::array< dealii::Tensor< 1, dim, real >, nstate > convective_flux(const std::array< real, nstate > &conservative_soln) const
Convective flux: .
std::shared_ptr< ManufacturedSolutionFunction< dim, nspecies, real > > manufactured_solution_function
Manufactured solution function.
NavierStokesWithModelSourceTerms(const Parameters::AllParameters *const parameters_input, const double ref_length, const double gamma_gas, const double mach_inf, const double angle_of_attack, const double side_slip_angle, const double prandtl_number, const double reynolds_number_inf, const bool use_constant_viscosity, const double constant_viscosity, const double temperature_inf, const double relaxation_coefficient, const double isothermal_wall_temperature=1.0, const thermal_boundary_condition_enum thermal_boundary_condition_type=thermal_boundary_condition_enum::adiabatic, std::shared_ptr< ManufacturedSolutionFunction< dim, nspecies, real > > manufactured_solution_function=nullptr, const two_point_num_flux_enum two_point_num_flux_type=two_point_num_flux_enum::KG)
Constructor.
real max_convective_eigenvalue(const std::array< real, nstate > &soln) const
Maximum convective eigenvalue of the additional models' PDEs.