|
[P]arallel [Hi]gh-order [Li]brary for [P]DEs
Latest
Parallel High-Order Library for PDEs through hp-adaptive Discontinuous Galerkin methods
|
Shear-improved Smagorinsky eddy viscosity model. Derived from LargeEddySimulation_Smagorinsky for only modifying compute_eddy_viscosity. More...
#include <large_eddy_simulation.h>
Public Types | |
| using | thermal_boundary_condition_enum = Parameters::NavierStokesParam::ThermalBoundaryCondition |
| using | two_point_num_flux_enum = Parameters::AllParameters::TwoPointNumericalFlux |
Public Types inherited from PHiLiP::Physics::LargeEddySimulation_Smagorinsky< dim, nspecies, nstate, real > | |
| using | thermal_boundary_condition_enum = Parameters::NavierStokesParam::ThermalBoundaryCondition |
| using | two_point_num_flux_enum = Parameters::AllParameters::TwoPointNumericalFlux |
Public Types inherited from PHiLiP::Physics::LargeEddySimulationBase< dim, nspecies, nstate, real > | |
| using | thermal_boundary_condition_enum = Parameters::NavierStokesParam::ThermalBoundaryCondition |
| using | two_point_num_flux_enum = Parameters::AllParameters::TwoPointNumericalFlux |
Public Member Functions | |
| LargeEddySimulation_ShearImprovedSmagorinsky (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 turbulent_prandtl_number, const double ratio_of_filter_width_to_cell_size, const double model_constant, 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 apply_low_reynolds_number_eddy_viscosity_correction=false) | |
| ~LargeEddySimulation_ShearImprovedSmagorinsky () | |
| Destructor. | |
| real | compute_eddy_viscosity (const std::array< real, nstate > &primitive_soln, const std::array< dealii::Tensor< 1, dim, real >, nstate > &primitive_soln_gradient, const dealii::types::global_dof_index cell_index) const override |
| FadType | compute_eddy_viscosity_fad (const std::array< FadType, nstate > &primitive_soln, const std::array< dealii::Tensor< 1, dim, FadType >, nstate > &primitive_soln_gradient, const dealii::types::global_dof_index cell_index) const override |
Public Member Functions inherited from PHiLiP::Physics::LargeEddySimulation_Smagorinsky< dim, nspecies, nstate, real > | |
| LargeEddySimulation_Smagorinsky (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 turbulent_prandtl_number, const double ratio_of_filter_width_to_cell_size, const double model_constant, 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 apply_low_reynolds_number_eddy_viscosity_correction=false) | |
| ~LargeEddySimulation_Smagorinsky () | |
| Destructor. | |
| void | set_unfiltered_conservative_solution (const std::array< real, nstate > &unfiltered_conservative_solution_) override |
| Setter for the unfiltered conservative solution (also sets the scaled_fluid_kinematic_viscosity_from_unfiltered_solution) | |
| virtual double | get_model_constant_times_filter_width (const dealii::types::global_dof_index cell_index) const |
| Returns the product of the eddy viscosity model constant and the filter width. | |
| virtual double | get_model_constant_times_filter_width_squared (const dealii::types::global_dof_index cell_index) const |
| Returns the product of the eddy viscosity model constant and the filter width squared. | |
| real | get_corrected_eddy_viscosity_low_reynolds_number (const real uncorrected_eddy_viscosity) const |
| Corrected eddy viscosity for low Reynolds number flows. | |
| FadType | get_corrected_eddy_viscosity_low_reynolds_number_fad (const FadType uncorrected_eddy_viscosity) const |
| Corrected eddy viscosity for low Reynolds number flows (Automatic Differentiation Type: FadType) | |
| real | get_scaled_fluid_kinematic_viscosity_from_unfiltered_solution () const |
| Scaled fluid kinematic viscosity from unfiltered solution. | |
| dealii::Tensor< 2, dim, real > | compute_SGS_stress_tensor (const std::array< real, nstate > &primitive_soln, const std::array< dealii::Tensor< 1, dim, real >, nstate > &primitive_soln_gradient, const dealii::types::global_dof_index cell_index) const |
| Nondimensionalized sub-grid scale (SGS) stress tensor, (tau^sgs)*. | |
| dealii::Tensor< 1, dim, real > | compute_SGS_heat_flux (const std::array< real, nstate > &primitive_soln, const std::array< dealii::Tensor< 1, dim, real >, nstate > &primitive_soln_gradient, const dealii::types::global_dof_index cell_index) const |
| Nondimensionalized sub-grid scale (SGS) heat flux, (q^sgs)*. | |
| dealii::Tensor< 2, dim, FadType > | compute_SGS_stress_tensor_fad (const std::array< FadType, nstate > &primitive_soln, const std::array< dealii::Tensor< 1, dim, FadType >, nstate > &primitive_soln_gradient, const dealii::types::global_dof_index cell_index) const |
| Nondimensionalized sub-grid scale (SGS) stress tensor, (tau^sgs)* (Automatic Differentiation Type: FadType) | |
| dealii::Tensor< 1, dim, FadType > | compute_SGS_heat_flux_fad (const std::array< FadType, nstate > &primitive_soln, const std::array< dealii::Tensor< 1, dim, FadType >, nstate > &primitive_soln_gradient, const dealii::types::global_dof_index cell_index) const |
| Nondimensionalized sub-grid scale (SGS) heat flux, (q^sgs)* (Automatic Differentiation Type: FadType) | |
Public Member Functions inherited from PHiLiP::Physics::LargeEddySimulationBase< dim, nspecies, nstate, real > | |
| LargeEddySimulationBase (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 turbulent_prandtl_number, const double ratio_of_filter_width_to_cell_size, 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. | |
| std::array< dealii::Tensor< 1, dim, real >, nstate > | convective_flux (const std::array< real, nstate > &conservative_soln) const |
| Convective flux: \( \mathbf{F}_{conv} \). | |
| 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: \( \mathbf{F}_{diss} \). | |
| 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: \( \mathbf{F}_{diss} \) dot normal vector. More... | |
| 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. More... | |
| real | max_convective_eigenvalue (const std::array< real, nstate > &soln) const |
| Maximum convective eigenvalue of the additional models' PDEs. More... | |
| 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. More... | |
| 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. | |
| double | get_filter_width (const dealii::types::global_dof_index cell_index) const |
| Compute the nondimensionalized filter width used by the SGS model given a cell index. More... | |
| double | get_filter_width_from_poly_degree (const dealii::types::global_dof_index cell_index, const int cell_poly_degree) const |
| Compute the nondimensionalized filter width used by the SGS model given a cell index. More... | |
| template<typename real2 > | |
| real2 | get_tensor_magnitude (const dealii::Tensor< 2, dim, real2 > &tensor) const |
| Returns the magnitude of the tensor. | |
Public Member Functions inherited from PHiLiP::Physics::ModelBase< dim, nspecies, nstate, real > | |
| ModelBase (std::shared_ptr< ManufacturedSolutionFunction< dim, nspecies, real > > manufactured_solution_function_input=nullptr) | |
| Constructor. | |
| virtual | ~ModelBase ()=default |
| Virtual destructor required for abstract classes. | |
| void | boundary_face_values (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, std::array< real, nstate > &soln_bc, std::array< dealii::Tensor< 1, dim, real >, nstate > &soln_grad_bc) const |
| Boundary condition handler. | |
| virtual dealii::Vector< double > | post_compute_derived_quantities_vector (const dealii::Vector< double > &uh, const std::vector< dealii::Tensor< 1, dim > > &, const std::vector< dealii::Tensor< 2, dim > > &, const dealii::Tensor< 1, dim > &, const dealii::Point< dim > &) const |
| Returns current vector solution to be used by PhysicsPostprocessor to output current solution. More... | |
| virtual std::vector< dealii::DataComponentInterpretation::DataComponentInterpretation > | post_get_data_component_interpretation () const |
| Returns DataComponentInterpretation of the solution to be used by PhysicsPostprocessor to output current solution. More... | |
| virtual std::vector< std::string > | post_get_names () const |
| Returns names of the solution to be used by PhysicsPostprocessor to output current solution. More... | |
Private Member Functions | |
| template<typename real2 > | |
| real2 | compute_eddy_viscosity_templated (const std::array< real2, nstate > &primitive_soln, const std::array< dealii::Tensor< 1, dim, real2 >, nstate > &primitive_soln_gradient, const dealii::types::global_dof_index cell_index) const |
Additional Inherited Members | |
Public Attributes inherited from PHiLiP::Physics::LargeEddySimulation_Smagorinsky< dim, nspecies, nstate, real > | |
| const double | model_constant |
| SGS model constant. | |
| const bool | apply_low_reynolds_number_eddy_viscosity_correction |
| Flag for applying the low Reynolds number eddy viscosity correction. | |
Public Attributes inherited from PHiLiP::Physics::LargeEddySimulationBase< dim, nspecies, nstate, real > | |
| const double | turbulent_prandtl_number |
| Turbulent Prandtl number. | |
| const double | ratio_of_filter_width_to_cell_size |
| Ratio of filter width to cell size. | |
| std::unique_ptr< NavierStokes< dim, nspecies, nstate, real > > | navier_stokes_physics |
| Pointer to Navier-Stokes physics object. | |
Public Attributes inherited from PHiLiP::Physics::ModelBase< dim, nspecies, nstate, real > | |
| std::shared_ptr< ManufacturedSolutionFunction< dim, nspecies, real > > | manufactured_solution_function |
| Manufactured solution function. | |
| dealii::LinearAlgebra::distributed::Vector< int > | cellwise_poly_degree |
| Cellwise polynomial degree. | |
| dealii::LinearAlgebra::distributed::Vector< double > | cellwise_volume |
| double | bulk_density |
| Bulk density, needed for channel flow case. | |
| double | bulk_mass_flow_rate |
| Bulk mass flow rate, needed for channel flow case. | |
| double | bulk_velocity |
| Bulk velocity, needed for channel flow case. | |
| double | domain_volume |
| Domain volume, needed for channel flow case. | |
| double | half_channel_height |
| Half channel height, needed for channel flow case. | |
| double | resultant_wall_shear_force |
| Resultant wall shear force, needed for channel flow case. | |
| double | time_step |
| Current time step. | |
| dealii::LinearAlgebra::distributed::Vector< double > | cellwise_mean_strain_rate_tensor_magnitude |
| dealii::LinearAlgebra::distributed::Vector< double > | dynamic_smagorinsky_model_constant_times_filter_width_sqr |
Protected Member Functions inherited from PHiLiP::Physics::LargeEddySimulation_Smagorinsky< dim, nspecies, nstate, real > | |
| template<typename real2 > | |
| dealii::Tensor< 2, dim, real2 > | compute_SGS_stress_tensor_templated (const std::array< real2, nstate > &primitive_soln, const std::array< dealii::Tensor< 1, dim, real2 >, nstate > &primitive_soln_gradient, const dealii::types::global_dof_index cell_index) const |
| Templated nondimensionalized sub-grid scale (SGS) stress tensor, (tau^sgs)*. | |
| template<typename real2 > | |
| dealii::Tensor< 1, dim, real2 > | compute_SGS_heat_flux_templated (const std::array< real2, nstate > &primitive_soln, const std::array< dealii::Tensor< 1, dim, real2 >, nstate > &primitive_soln_gradient, const dealii::types::global_dof_index cell_index) const |
| Templated nondimensionalized sub-grid scale (SGS) heat flux, (q^sgs)*. | |
| template<typename real2 > | |
| real2 | scale_eddy_viscosity_templated (const std::array< real2, nstate > &primitive_soln, const real2 eddy_viscosity) const |
| Templated scale nondimensionalized eddy viscosity for Smagorinsky model. | |
Protected Member Functions inherited from PHiLiP::Physics::LargeEddySimulationBase< dim, nspecies, nstate, real > | |
| template<typename real2 > | |
| real2 | get_tensor_magnitude_sqr (const dealii::Tensor< 2, dim, real2 > &tensor) const |
| Returns the square of the magnitude of the tensor (i.e. the double dot product of a tensor with itself) | |
| template<typename real2 > | |
| 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 dealii::types::global_dof_index cell_index) const |
| Templated dissipative (i.e. viscous) flux: \( \mathbf{F}_{diss} \). | |
| 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 dealii::types::global_dof_index cell_index) 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 dealii::types::global_dof_index cell_index) const |
| std::array< real, nstate > | get_manufactured_solution_value (const dealii::Point< dim, real > &pos) const |
| Get manufactured solution value (repeated from Euler) | |
| std::array< dealii::Tensor< 1, dim, real >, nstate > | get_manufactured_solution_gradient (const dealii::Point< dim, real > &pos) const |
| Get manufactured solution value (repeated from Euler) | |
| std::array< real, nstate > | dissipative_source_term (const dealii::Point< dim, real > &pos, const dealii::types::global_dof_index cell_index) const |
| Dissipative flux contribution to the source term (repeated from NavierStokes) More... | |
| std::array< real, nstate > | channel_flow_source_term (const std::array< real, nstate > &conservative_soln) const |
| Channel flow source term. More... | |
Protected Member Functions inherited from PHiLiP::Physics::ModelBase< dim, nspecies, nstate, real > | |
| virtual 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 |
| Evaluate the manufactured solution boundary conditions. | |
| virtual void | boundary_wall (std::array< real, nstate > &soln_bc, std::array< dealii::Tensor< 1, dim, real >, nstate > &soln_grad_bc) const |
| Wall boundary condition. | |
| virtual void | boundary_outflow (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 |
| Outflow Boundary Condition. | |
| virtual void | boundary_inflow (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 |
| Inflow boundary conditions. | |
| virtual void | boundary_farfield (std::array< real, nstate > &soln_bc) const |
| Farfield boundary conditions based on freestream values. | |
| virtual void | boundary_riemann (const dealii::Tensor< 1, dim, real > &normal_int, const std::array< real, nstate > &soln_int, std::array< real, nstate > &soln_bc) const |
| Riemann-based farfield boundary conditions based on freestream values. | |
| virtual void | boundary_slip_wall (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 |
| Slip wall boundary condition. | |
Protected Attributes inherited from PHiLiP::Physics::LargeEddySimulation_Smagorinsky< dim, nspecies, nstate, real > | |
| double | scaled_fluid_kinematic_viscosity_from_unfiltered_solution |
| Scaled fluid kinematic viscosity based on the unfiltered solution. | |
Protected Attributes inherited from PHiLiP::Physics::ModelBase< dim, nspecies, nstate, real > | |
| const MPI_Comm | mpi_communicator |
| MPI communicator. | |
| dealii::ConditionalOStream | pcout |
| Parallel std::cout that only outputs on mpi_rank==0. | |
| std::array< real, nstate > | unfiltered_conservative_solution |
| The unfiltered conservative solution. | |
Shear-improved Smagorinsky eddy viscosity model. Derived from LargeEddySimulation_Smagorinsky for only modifying compute_eddy_viscosity.
Definition at line 436 of file large_eddy_simulation.h.
| PHiLiP::Physics::LargeEddySimulation_ShearImprovedSmagorinsky< dim, nspecies, nstate, real >::LargeEddySimulation_ShearImprovedSmagorinsky | ( | 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 | turbulent_prandtl_number, | ||
| const double | ratio_of_filter_width_to_cell_size, | ||
| const double | model_constant, | ||
| 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 | apply_low_reynolds_number_eddy_viscosity_correction = false |
||
| ) |
Constructor for the sub-grid scale (SGS) model: Shear-improved Smagorinsky Reference 1: de la Llave Plata et al. (2019). "On the performance of a high-order multiscale DG approach to LES at increasing Reynolds number." Reference 2: E. Leveque, F. Toschi, L. Shao and J.-P. Bertoglio (2007, J. Fluid Mech.) "Shear-improved Smagorinsky model for large-eddy simulation of wall-bounded turbulent flows"
Definition at line 1094 of file large_eddy_simulation.cpp.
|
overridevirtual |
Nondimensionalized eddy viscosity for the Shear-improved Smagorinsky eddy viscosity model. Reference 1: de la Llave Plata et al. (2019). "On the performance of a high-order multiscale DG approach to LES at increasing Reynolds number." Reference 2: E. Leveque, F. Toschi, L. Shao and J.-P. Bertoglio (2007, J. Fluid Mech.) "Shear-improved Smagorinsky model for large-eddy simulation of wall-bounded turbulent flows"
Reimplemented from PHiLiP::Physics::LargeEddySimulation_Smagorinsky< dim, nspecies, nstate, real >.
Definition at line 1137 of file large_eddy_simulation.cpp.
|
overridevirtual |
Nondimensionalized eddy viscosity for the Shear-improved Smagorinsky eddy viscosity model. (Automatic Differentiation Type: FadType) Reference 1: de la Llave Plata et al. (2019). "On the performance of a high-order multiscale DG approach to LES at increasing Reynolds number." Reference 2: E. Leveque, F. Toschi, L. Shao and J.-P. Bertoglio (2007, J. Fluid Mech.) "Shear-improved Smagorinsky model for large-eddy simulation of wall-bounded turbulent flows"
Reimplemented from PHiLiP::Physics::LargeEddySimulation_Smagorinsky< dim, nspecies, nstate, real >.
Definition at line 1147 of file large_eddy_simulation.cpp.
|
private |
Templated nondimensionalized eddy viscosity for the Shear-improved Smagorinsky eddy viscosity model. Reference 1: de la Llave Plata et al. (2019). "On the performance of a high-order multiscale DG approach to LES at increasing Reynolds number." Reference 2: E. Leveque, F. Toschi, L. Shao and J.-P. Bertoglio (2007, J. Fluid Mech.) "Shear-improved Smagorinsky model for large-eddy simulation of wall-bounded turbulent flows" Equation (14) in reference 1, and equation (2.4) in the reference 2.
Definition at line 1158 of file large_eddy_simulation.cpp.