1 #ifndef __NAVIER_STOKES__ 2 #define __NAVIER_STOKES__ 5 #include "parameters/parameters_navier_stokes.h" 11 template <
int dim,
int nspecies,
int nstate,
typename real>
32 const double gamma_gas,
76 template<
typename real2>
78 const std::array<real2,nstate> &primitive_soln,
79 const std::array<dealii::Tensor<1,dim,real2>,nstate> &primitive_soln_gradient)
const;
82 template<
typename real2>
84 const std::array<real2,nstate> &conservative_soln,
85 const dealii::Tensor<1,dim,real2> &normal_vector)
const;
88 template<
typename real2>
90 const std::array<real2,nstate> &conservative_soln,
91 const dealii::Tensor<1,dim,real2> &normal_vector)
const;
94 template<
typename real2>
96 const dealii::Tensor<1,dim,real2> &velocities_parallel_to_wall)
const;
99 template<
typename real2>
101 const std::array<real2,nstate> &conservative_soln,
102 const std::array<dealii::Tensor<1,dim,real2>,nstate> &conservative_soln_gradient,
103 const dealii::Tensor<1,dim,real2> &normal_vector)
const;
110 template<
typename real2>
118 template<
typename real2>
128 template<
typename real2>
138 template<
typename real2>
144 template<
typename real2>
150 template<
typename real2>
156 template<
typename real2>
158 const real2 scaled_viscosity_coefficient,
159 const double prandtl_number_input)
const;
164 template<
typename real2>
170 template<
typename real2>
172 const std::array<real2,nstate> &primitive_soln,
173 const std::array<dealii::Tensor<1,dim,real2>,nstate> &primitive_soln_gradient)
const;
178 template<
typename real2>
180 const real2 scaled_heat_conductivity,
181 const dealii::Tensor<1,dim,real2> &temperature_gradient)
const;
184 template<
typename real2>
186 const std::array<real2,nstate> &conservative_soln,
187 const std::array<dealii::Tensor<1,dim,real2>,nstate> &conservative_soln_gradient)
const;
191 const std::array<real,nstate> &conservative_soln,
192 const std::array<dealii::Tensor<1,dim,real>,nstate> &conservative_soln_gradient)
const;
196 const std::array<real,nstate> &conservative_soln,
197 const std::array<dealii::Tensor<1,dim,real>,nstate> &conservative_soln_gradient)
const;
204 const std::array<real,nstate> &conservative_soln,
205 const std::array<dealii::Tensor<1,dim,real>,nstate> &conservative_soln_gradient)
const;
209 const std::array<real,nstate> &conservative_soln,
210 const std::array<dealii::Tensor<1,dim,real>,nstate> &conservative_soln_gradient)
const;
214 const std::array<real,nstate> &conservative_soln,
215 const std::array<dealii::Tensor<1,dim,real>,nstate> &conservative_soln_gradient)
const;
219 const std::array<real,nstate> &conservative_soln,
220 const std::array<dealii::Tensor<1,dim,real>,3> &vorticity_gradient)
const;
230 const real integrated_enstrophy)
const;
238 const std::array<real,nstate> &conservative_soln,
239 const std::array<dealii::Tensor<1,dim,real>,nstate> &conservative_soln_gradient)
const;
244 const std::array<real,nstate> &conservative_soln,
245 const std::array<dealii::Tensor<1,dim,real>,nstate> &conservative_soln_gradient)
const;
250 const std::array<real,nstate> &conservative_soln,
251 const std::array<dealii::Tensor<1,dim,real>,nstate> &conservative_soln_gradient)
const;
257 const std::array<real,nstate> &conservative_soln,
258 const std::array<dealii::Tensor<1,dim,real>,nstate> &conservative_soln_gradient)
const;
264 const std::array<real,nstate> &conservative_soln,
265 const std::array<dealii::Tensor<1,dim,real>,nstate> &conservative_soln_gradient)
const;
270 template<
typename real2>
272 const std::array<real2,nstate> &conservative_soln,
273 const std::array<dealii::Tensor<1,dim,real2>,nstate> &conservative_soln_gradient)
const;
277 const std::array<real,nstate> &conservative_soln,
278 const std::array<dealii::Tensor<1,dim,real>,nstate> &conservative_soln_gradient)
const;
288 const real integrated_viscosity_times_deviatoric_strain_rate_tensor_magnitude_sqr)
const;
291 template<
typename real2>
292 dealii::Tensor<2,dim,real2>
294 const std::array<dealii::Tensor<1,dim,real2>,nstate> &primitive_soln_gradient)
const;
299 template<
typename real2>
300 dealii::Tensor<2,dim,real2>
302 const dealii::Tensor<2,dim,real2> &vel_gradient)
const;
306 const std::array<real,nstate> &conservative_soln,
307 const std::array<dealii::Tensor<1,dim,real>,nstate> &conservative_soln_gradient)
const;
316 const real integrated_viscosity_times_strain_rate_tensor_magnitude_sqr)
const;
321 template<
typename real2>
322 dealii::Tensor<2,dim,real2>
324 const real2 scaled_viscosity_coefficient,
325 const dealii::Tensor<2,dim,real2> &strain_rate_tensor)
const;
331 const std::array<real,nstate> &conservative_soln,
332 const std::array<dealii::Tensor<1,dim,real>,nstate> &conservative_soln_gradient)
const;
334 template<
typename real2>
335 dealii::Tensor<2,dim,real2>
336 compute_viscous_stress_tensor_from_conservative_templated (
337 const std::array<real2,nstate> &conservative_soln,
338 const std::array<dealii::Tensor<1,dim,real2>,nstate> &conservative_soln_gradient)
const;
343 template<
typename real2>
344 dealii::Tensor<2,dim,real2>
346 const std::array<real2,nstate> &primitive_soln,
347 const std::array<dealii::Tensor<1,dim,real2>,nstate> &primitive_soln_gradient)
const;
351 const dealii::Tensor<2,dim,real> &tensor1,
352 const dealii::Tensor<2,dim,real> &tensor2)
const;
358 const std::array<real,nstate> &conservative_soln)
const;
364 const std::array<real,nstate> &conservative_soln,
365 const std::array<dealii::Tensor<1,dim,real>,nstate> &conservative_soln_gradient)
const;
374 const std::array<real,nstate> &solution,
375 const std::array<dealii::Tensor<1,dim,real>,nstate> &solution_gradient,
376 const std::array<real,nstate> &filtered_solution,
377 const std::array<dealii::Tensor<1,dim,real>,nstate> &filtered_solution_gradient,
378 const bool on_boundary,
379 const dealii::types::global_dof_index cell_index,
380 const dealii::Tensor<1,dim,real> &normal,
381 const int boundary_type)
override;
391 const std::array<real,nstate> &solution,
392 const std::array<dealii::Tensor<1,dim,real>,nstate> &solution_gradient,
393 const std::array<real,nstate> &filtered_solution,
394 const std::array<dealii::Tensor<1,dim,real>,nstate> &filtered_solution_gradient,
395 const dealii::types::global_dof_index cell_index,
396 const dealii::Tensor<1,dim,real> &normal);
401 std::array<dealii::Tensor<1,dim,real>,nstate>
403 const std::array<real,nstate> &conservative_soln,
404 const std::array<dealii::Tensor<1,dim,real>,nstate> &solution_gradient)
const override;
410 const std::array<real,nstate> &primitive_soln,
411 const dealii::Tensor<1,dim,real> &temperature_gradient)
const;
418 const std::array<real,nstate> &conservative_soln,
419 const std::array<dealii::Tensor<1,dim,real>,nstate> &solution_gradient,
420 const dealii::Tensor<1,dim,real> &normal)
const;
427 const std::array<real,nstate> &conservative_soln,
428 const std::array<dealii::Tensor<1,dim,real>,nstate> &solution_gradient,
429 const dealii::Tensor<1,dim,real> &normal,
430 const int d_gradient)
const;
434 const dealii::Point<dim,real> &pos)
const;
438 const dealii::Point<dim,real> &pos,
439 const std::array<real,nstate> &conservative_soln,
440 const real current_time)
const override;
445 std::array<real,nstate> &conservative_soln,
446 const dealii::Tensor<1,dim,real> &normal)
const;
451 std::array<real,nstate> &conservative_soln)
const;
457 template<
typename real2>
458 std::array<dealii::Tensor<1,dim,real2>,nstate>
460 const dealii::Tensor<1,dim,real2> &vel,
461 const dealii::Tensor<2,dim,real2> &viscous_stress_tensor,
462 const dealii::Tensor<1,dim,real2> &heat_flux)
const;
469 template <
typename real2>
470 std::array<dealii::Tensor<1,dim,real2>,nstate>
472 const std::array<real2,nstate> &conservative_soln,
473 const std::array<dealii::Tensor<1,dim,real2>,nstate> &solution_gradient)
const;
477 const int boundary_type,
478 const dealii::Point<dim, real> &pos,
479 const dealii::Tensor<1,dim,real> &normal,
480 const std::array<real,nstate> &soln_int,
481 const std::array<dealii::Tensor<1,dim,real>,nstate> &soln_grad_int,
482 const std::array<real,nstate> &,
483 const std::array<dealii::Tensor<1,dim,real>,nstate> &,
484 std::array<real,nstate> &soln_bc,
485 std::array<dealii::Tensor<1,dim,real>,nstate> &soln_grad_bc)
const override;
492 const dealii::Tensor<1,dim,real> &normal_int,
493 const std::array<real,nstate> &soln_int,
494 const std::array<dealii::Tensor<1,dim,real>,nstate> &soln_grad_int,
495 std::array<real,nstate> &soln_bc,
496 std::array<dealii::Tensor<1,dim,real>,nstate> &soln_grad_bc)
const;
500 const dealii::Point<dim, real> &pos,
501 const dealii::Tensor<1,dim,real> &normal_int,
502 const std::array<real,nstate> &soln_int,
503 const std::array<dealii::Tensor<1,dim,real>,nstate> &soln_grad_int,
504 std::array<real,nstate> &soln_bc,
505 std::array<dealii::Tensor<1,dim,real>,nstate> &soln_grad_bc)
const override;
510 const dealii::Vector<double> &uh,
511 const std::vector<dealii::Tensor<1,dim> > &duh,
512 const std::vector<dealii::Tensor<2,dim> > &dduh,
513 const dealii::Tensor<1,dim> &normals,
514 const dealii::Point<dim> &evaluation_points)
const override;
535 template <
int dim,
int nspecies,
int nstate,
typename real>
545 const double gamma_gas,
553 const double reynolds_number_based_on_friction_velocity,
554 const double half_channel_height,
569 const dealii::Point<dim,real> &pos,
570 const std::array<real,nstate> &solution,
571 const std::array<dealii::Tensor<1,dim,real>,nstate> &solution_gradient,
572 const dealii::types::global_dof_index cell_index)
const override;
576 template <
typename real>
583 static const int NUMBER_OF_SAMPLE_POINTS = 38;
585 static constexpr std::array<double,NUMBER_OF_SAMPLE_POINTS> yData =
586 {{0.0, 3.0, 5.0, 8.0, 10.0, 20.0, 35.0, 50.0, 75.0, 100.0, 125.0, 150.0,
587 200.0, 250.0, 300.0, 350.0, 400.0, 500.0, 575.0, 650.0, 725.0, 800.0,
588 900.0, 1000.0, 1100.0, 1200.0, 1300.0, 1400.0, 1500.0, 1600.0, 1800.0,
589 2000.0, 2500.0, 3000.0, 3500.0, 4000.0, 4500.0, 5000.0}};
590 static constexpr std::array<double,NUMBER_OF_SAMPLE_POINTS> xData =
591 {{0.0000000000000e+00, 8.7652737082527e+00, 2.3294562921324e+01, 5.4184774233564e+01,
592 7.8809463502726e+01, 2.2429199943857e+02, 4.6798107411288e+02, 7.2296127461536e+02,
593 1.1658971129082e+03, 1.6286476514445e+03, 2.1076047703808e+03, 2.5997463219921e+03,
594 3.6154681137081e+03, 4.6644290903876e+03, 5.7398811747011e+03, 6.8373640504590e+03,
595 7.9537073133201e+03, 1.0234022966195e+04, 1.1979574602097e+04, 1.3750942900204e+04,
596 1.5545134905888e+04, 1.7359780637619e+04, 1.9807850068644e+04, 2.2285219477338e+04,
597 2.4788948528427e+04, 2.7316633948913e+04, 2.9866274540736e+04, 3.2436177975259e+04,
598 3.5024894352307e+04, 3.7631167553565e+04, 4.2892118831955e+04, 4.8211670442755e+04,
599 6.1730908478994e+04, 7.5515087179925e+04, 8.9519590674471e+04, 1.0371270861601e+05,
600 1.1807073118603e+05, 1.3257525485198e+05}};
607 real interpolate(
const real x,
const bool extrapolate )
const;
611 real get_wall_shear_stress_magnitude(
612 const real wall_parallel_velocity,
614 const real viscosity_coefficient,
620 template <
int dim,
int nspecies,
int nstate,
typename real>
630 const double gamma_gas,
638 const double reynolds_number_based_on_friction_velocity,
639 const double half_channel_height,
640 const double distance_from_wall_for_wall_model_input_velocity,
651 const double distance_from_wall_for_wall_model_input_velocity;
664 const std::array<real,nstate> &solution,
665 const std::array<dealii::Tensor<1,dim,real>,nstate> &solution_gradient,
666 const std::array<real,nstate> &filtered_solution,
667 const std::array<dealii::Tensor<1,dim,real>,nstate> &filtered_solution_gradient,
668 const dealii::types::global_dof_index cell_index,
669 const dealii::Tensor<1,dim,real> &normal)
override;
672 real get_velocity_component_parallel_to_wall_from_solution_and_normal_vector (
673 const std::array<real,nstate> &conservative_soln,
674 const dealii::Tensor<1,dim,real> &normal_vector)
const;
real compute_vorticity_magnitude(const std::array< real, nstate > &conservative_soln, const std::array< dealii::Tensor< 1, dim, real >, nstate > &conservative_soln_gradient) const
Evaluate vorticity magnitude from conservative variables and gradient of conservative variables...
const double sutherlands_temperature
Sutherland's temperature. Units: [K].
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) override
const thermal_boundary_condition_enum thermal_boundary_condition_type
Thermal boundary condition type (adiabatic or isothermal)
virtual std::array< real, nstate > physical_source_term(const dealii::Point< dim, real > &pos, const std::array< real, nstate > &solution, const std::array< dealii::Tensor< 1, dim, real >, nstate > &solution_gradient, const dealii::types::global_dof_index cell_index) const
Physical source term that does require differentiation.
const double angle_of_attack
Angle of attack.
real2 scale_viscosity_coefficient(const real2 viscosity_coefficient) const
const double constant_viscosity
Nondimensionalized constant viscosity.
real get_tensor_magnitude(const dealii::Tensor< 2, dim, real > &tensor) const
Returns the the magnitude of the tensor (i.e. the double dot product of a tensor with itself) ...
real compute_second_invariant(const std::array< real, nstate > &conservative_soln, const std::array< dealii::Tensor< 1, dim, real >, nstate > &conservative_soln_gradient) const
const double mach_inf
Farfield Mach number.
dealii::Tensor< 2, dim, real2 > compute_strain_rate_tensor_from_conservative_templated(const std::array< real2, nstate > &conservative_soln, const std::array< dealii::Tensor< 1, dim, real2 >, nstate > &conservative_soln_gradient) const
Base class from which Advection, Diffusion, ConvectionDiffusion, and Euler is derived.
dealii::Tensor< 1, dim, real2 > compute_wall_tangent_vector_from_velocities_parallel_to_wall(const dealii::Tensor< 1, dim, real2 > &velocities_parallel_to_wall) const
const two_point_num_flux_enum two_point_num_flux_type
Two point numerical flux type (for split form)
real2 compute_viscosity_coefficient(const std::array< real2, nstate > &primitive_soln) const
dealii::Tensor< 2, nstate, real > dissipative_flux_directional_jacobian_wrt_gradient_component(const std::array< real, nstate > &conservative_soln, const std::array< dealii::Tensor< 1, dim, real >, nstate > &solution_gradient, const dealii::Tensor< 1, dim, real > &normal, const int d_gradient) const
Manufactured solution used for grid studies to check convergence orders.
~NavierStokes_ChannelFlowConstantSourceTerm_WallModel()
Destructor.
dealii::Tensor< 1, dim, real2 > compute_heat_flux_given_scaled_heat_conductivity_and_temperature_gradient(const real2 scaled_heat_conductivity, const dealii::Tensor< 1, dim, real2 > &temperature_gradient) const
real compute_density_gradient_magnitude(const std::array< real, nstate > &conservative_soln, const std::array< dealii::Tensor< 1, dim, real >, nstate > &conservative_soln_gradient) const
real compute_incompressible_enstrophy(const std::array< real, nstate > &conservative_soln, const std::array< dealii::Tensor< 1, dim, real >, nstate > &conservative_soln_gradient) const
Evaluate incompressible enstrophy from conservative variables and gradient of conservative variables...
real get_tensor_product_magnitude_sqr(const dealii::Tensor< 2, dim, real > &tensor1, const dealii::Tensor< 2, dim, real > &tensor2) const
Tensor product magnitude squared.
dealii::Tensor< 2, dim, real2 > compute_strain_rate_tensor(const dealii::Tensor< 2, dim, real2 > &vel_gradient) const
real2 compute_scaled_heat_conductivity_given_scaled_viscosity_coefficient_and_prandtl_number(const real2 scaled_viscosity_coefficient, const double prandtl_number_input) const
real compute_enstrophy(const std::array< real, nstate > &conservative_soln, const std::array< dealii::Tensor< 1, dim, real >, nstate > &conservative_soln_gradient) const
Evaluate enstrophy from conservative variables and gradient of conservative variables.
Files for the baseline physics.
const bool has_nonzero_physical_source
Flag to signal that physical source term is non-zero.
Wall Model Look up table.
real2 compute_scaled_viscosity_coefficient(const std::array< real2, nstate > &primitive_soln) const
real2 compute_viscosity_coefficient_sutherlands_law(const std::array< real2, nstate > &primitive_soln) const
dealii::Tensor< 2, dim, real > compute_germano_identity_matrix_M_component(const std::array< real, nstate > &conservative_soln, const std::array< dealii::Tensor< 1, dim, real >, nstate > &conservative_soln_gradient) const
dealii::Tensor< 2, dim, real > compute_strain_rate_tensor_from_conservative(const std::array< real, nstate > &conservative_soln, const std::array< dealii::Tensor< 1, dim, real >, nstate > &conservative_soln_gradient) const
std::shared_ptr< ManufacturedSolutionFunction< dim, nspecies, real > > manufactured_solution_function
Manufactured solution function.
std::array< dealii::Tensor< 1, dim, real2 >, nstate > dissipative_flux_given_velocities_viscous_stress_tensor_and_heat_flux(const dealii::Tensor< 1, dim, real2 > &vel, const dealii::Tensor< 2, dim, real2 > &viscous_stress_tensor, const dealii::Tensor< 1, dim, real2 > &heat_flux) const
real compute_scaled_viscosity_coefficient_derivative_wrt_temperature_via_dfad(std::array< real, nstate > &conservative_soln) const
Main parameter class that contains the various other sub-parameter classes.
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 override
dealii::Tensor< 2, dim, real > compute_deviatoric_strain_rate_tensor(const std::array< real, nstate > &conservative_soln, const std::array< dealii::Tensor< 1, dim, real >, nstate > &conservative_soln_gradient) const
real compute_strain_rate_tensor_based_dissipation_rate_from_integrated_viscosity_times_strain_rate_tensor_magnitude_sqr(const real integrated_viscosity_times_strain_rate_tensor_magnitude_sqr) const
std::array< real, nstate > source_term(const dealii::Point< dim, real > &pos, const std::array< real, nstate > &conservative_soln, const real current_time) const override
Source term is zero or depends on manufactured solution.
~NavierStokes_ChannelFlowConstantSourceTerm()
Destructor.
real compute_vorticity_based_dissipation_rate_from_integrated_enstrophy(const real integrated_enstrophy) const
dealii::Tensor< 1, dim, real > compute_scaled_viscosity_gradient(const std::array< real, nstate > &primitive_soln, const dealii::Tensor< 1, dim, real > &temperature_gradient) const
NavierStokes(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=273.15, 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, const bool has_nonzero_physical_source=false)
Constructor.
TwoPointNumericalFlux
Two point numerical flux type for split form.
void boundary_manufactured_solution(const dealii::Point< dim, real > &pos, const dealii::Tensor< 1, dim, real > &normal_int, const std::array< real, nstate > &soln_int, const std::array< dealii::Tensor< 1, dim, real >, nstate > &soln_grad_int, std::array< real, nstate > &soln_bc, std::array< dealii::Tensor< 1, dim, real >, nstate > &soln_grad_bc) const override
Evaluate the manufactured solution boundary conditions.
std::vector< dealii::DataComponentInterpretation::DataComponentInterpretation > post_get_data_component_interpretation() const override
For post processing purposes, sets the interpretation of each computed quantity as either scalar or v...
real2 compute_viscosity_coefficient_sutherlands_law_from_temperature(const real2 temperature) const
const double isothermal_wall_temperature
Nondimensionalized isothermal wall temperature.
const double side_slip_angle
Sideslip angle.
real compute_pressure_dilatation(const std::array< real, nstate > &conservative_soln, const std::array< dealii::Tensor< 1, dim, real >, nstate > &conservative_soln_gradient) const
std::vector< std::string > post_get_names() const override
For post processing purposes, sets the base names (with no prefix or suffix) of the computed quantiti...
Euler equations. Derived from PhysicsBase.
const double x_momentum_constant_source_term
Nondimensional constant source term for x-momentum.
real compute_deviatoric_strain_rate_tensor_based_dissipation_rate_from_integrated_viscosity_times_deviatoric_strain_rate_tensor_magnitude_sqr(const real integrated_viscosity_times_deviatoric_strain_rate_tensor_magnitude_sqr) const
dealii::Tensor< 1, dim, real2 > compute_velocities_parallel_to_wall(const std::array< real2, nstate > &conservative_soln, const dealii::Tensor< 1, dim, real2 > &normal_vector) const
double temperature_inf
Non-dimensionalized temperature* at infinity. Should equal 1/density*(inf)
real2 compute_wall_shear_stress(const std::array< real2, nstate > &conservative_soln, const std::array< dealii::Tensor< 1, dim, real2 >, nstate > &conservative_soln_gradient, const dealii::Tensor< 1, dim, real2 > &normal_vector) const
const double reynolds_number_inf
Farfield (free stream) Reynolds number.
dealii::Tensor< 2, dim, real > compute_germano_idendity_matrix_L_component(const std::array< real, nstate > &conservative_soln) const
real compute_vorticity_magnitude_sqr(const std::array< real, nstate > &conservative_soln, const std::array< dealii::Tensor< 1, dim, real >, nstate > &conservative_soln_gradient) const
Evaluate vorticity magnitude squared from conservative variables and gradient of conservative variabl...
const double freestream_temperature
Freestream temperature. Units: [K].
void boundary_wall_viscous_flux(const dealii::Tensor< 1, dim, real > &normal_int, const std::array< real, nstate > &soln_int, const std::array< dealii::Tensor< 1, dim, real >, nstate > &soln_grad_int, std::array< real, nstate > &soln_bc, std::array< dealii::Tensor< 1, dim, real >, nstate > &soln_grad_bc) const
dealii::Tensor< 1, dim, real2 > compute_temperature_gradient(const std::array< real2, nstate > &primitive_soln, const std::array< dealii::Tensor< 1, dim, real2 >, nstate > &primitive_soln_gradient) const
const bool use_constant_viscosity
Flag to use constant viscosity instead of Sutherland's law of viscosity.
dealii::Tensor< 1, dim, real2 > compute_wall_tangent_vector(const std::array< real2, nstate > &conservative_soln, const dealii::Tensor< 1, dim, real2 > &normal_vector) const
dealii::Tensor< 2, nstate, real > convective_flux_directional_jacobian_via_dfad(std::array< real, nstate > &conservative_soln, const dealii::Tensor< 1, dim, real > &normal) const
const double ref_length
Reference length.
const double prandtl_number
Prandtl number.
virtual void boundary_face_values_viscous_flux(const int boundary_type, const dealii::Point< dim, real > &pos, const dealii::Tensor< 1, dim, real > &normal, const std::array< real, nstate > &soln_int, const std::array< dealii::Tensor< 1, dim, real >, nstate > &soln_grad_int, const std::array< real, nstate > &, const std::array< dealii::Tensor< 1, dim, real >, nstate > &, std::array< real, nstate > &soln_bc, std::array< dealii::Tensor< 1, dim, real >, nstate > &soln_grad_bc) const override
Boundary face values for viscous fluxes.
dealii::Tensor< 2, dim, real2 > compute_viscous_stress_tensor(const std::array< real2, nstate > &primitive_soln, const std::array< dealii::Tensor< 1, dim, real2 >, nstate > &primitive_soln_gradient) const
dealii::Vector< double > post_compute_derived_quantities_vector(const dealii::Vector< double > &uh, const std::vector< dealii::Tensor< 1, dim > > &duh, const std::vector< dealii::Tensor< 2, dim > > &dduh, const dealii::Tensor< 1, dim > &normals, const dealii::Point< dim > &evaluation_points) const override
For post processing purposes, computes all the quantities we write to the VTK files.
dealii::Tensor< 2, nstate, real > dissipative_flux_directional_jacobian(const std::array< real, nstate > &conservative_soln, const std::array< dealii::Tensor< 1, dim, real >, nstate > &solution_gradient, const dealii::Tensor< 1, dim, real > &normal) const
Navier-Stokes equations with constant physical source term for the turbulent channel flow case and wa...
dealii::Tensor< 1, 3, real2 > compute_vorticity(const std::array< real2, nstate > &conservative_soln, const std::array< dealii::Tensor< 1, dim, real2 >, nstate > &conservative_soln_gradient) const
Evaluate vorticity from conservative variables and gradient of conservative variables.
dealii::Tensor< 1, dim, real2 > compute_heat_flux(const std::array< real2, nstate > &primitive_soln, const std::array< dealii::Tensor< 1, dim, real2 >, nstate > &primitive_soln_gradient) const
real compute_incompressible_palinstrophy(const std::array< real, nstate > &conservative_soln, const std::array< dealii::Tensor< 1, dim, real >, 3 > &vorticity_gradient) const
Evaluate incompressible palinstrophy from conservative variables and gradient of vorticity.
real2 compute_viscosity_coefficient_from_temperature(const real2 temperature) const
dealii::UpdateFlags post_get_needed_update_flags() const override
For post processing purposes, updates the required flags for dealii.
real compute_dilatation(const std::array< real, nstate > &conservative_soln, const std::array< dealii::Tensor< 1, dim, real >, nstate > &conservative_soln_gradient) const
dealii::Tensor< 2, dim, real > compute_viscous_stress_tensor_from_conservative(const std::array< real, nstate > &conservative_soln, const std::array< dealii::Tensor< 1, dim, real >, nstate > &conservative_soln_gradient) const
real get_tensor_magnitude_sqr(const dealii::Tensor< 2, dim, real > &tensor) const
Returns the square of the magnitude of the tensor (i.e. the double dot product of a tensor with itsel...
ThermalBoundaryCondition
Types of thermal boundary conditions available.
real compute_viscosity_times_deviatoric_strain_rate_tensor_magnitude_sqr(const std::array< real, nstate > &conservative_soln, const std::array< dealii::Tensor< 1, dim, real >, nstate > &conservative_soln_gradient) const
Evaluate the square of the deviatoric strain-rate tensor magnitude (i.e. double dot product) from con...
dealii::Tensor< 2, dim, real2 > compute_viscous_stress_tensor_via_scaled_viscosity_and_strain_rate_tensor(const real2 scaled_viscosity_coefficient, const dealii::Tensor< 2, dim, real2 > &strain_rate_tensor) const
real compute_viscosity_times_strain_rate_tensor_magnitude_sqr(const std::array< real, nstate > &conservative_soln, const std::array< dealii::Tensor< 1, dim, real >, nstate > &conservative_soln_gradient) const
Evaluate the square of the strain-rate tensor magnitude (i.e. double dot product) from conservative v...
virtual std::array< real, nstate > dissipative_flux_dot_normal_on_adiabatic_boundary(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 dealii::types::global_dof_index cell_index, const dealii::Tensor< 1, dim, real > &normal)
std::unique_ptr< WallModelLookUpTable< real > > wall_model_look_up_table
Pointer to wall model look-up table object.
Navier-Stokes equations. Derived from Euler for the convective terms, which is derived from PhysicsBa...
real2 compute_scaled_heat_conductivity(const std::array< real2, nstate > &primitive_soln) const
const double temperature_ratio
Ratio of Sutherland's temperature to freestream temperature.
dealii::Tensor< 2, dim, real2 > extract_velocities_gradient_from_primitive_solution_gradient(const std::array< dealii::Tensor< 1, dim, real2 >, nstate > &primitive_soln_gradient) const
std::array< dealii::Tensor< 1, dim, real2 >, nstate > dissipative_flux_templated(const std::array< real2, nstate > &conservative_soln, const std::array< dealii::Tensor< 1, dim, real2 >, nstate > &solution_gradient) const
const double viscosity_coefficient_inf
Nondimensionalized viscosity coefficient at infinity.
std::array< real, nstate > dissipative_source_term(const dealii::Point< dim, real > &pos) const
Dissipative flux contribution to the source term.
Navier-Stokes equations with constant physical source term for the turbulent channel flow case...