ViscousKernels< dim, number > Struct Template Reference
|
Developer Documentation
|
Viscous kernel operations for compressible flow solvers. More...
#include <viscous_kernels.hpp>
Public Types | |
| using | ConservedVariables = ConservedVariablesType< dim, number > |
| using | ConservedVariablesGradient = ConservedVariablesGradientType< dim, number > |
Public Member Functions | |
| ViscousKernels (const Material< dim, number > &material_in) | |
| DEAL_II_ALWAYS_INLINE dealii::Tensor< 2, dim, dealii::VectorizedArray< number > > | calculate_viscous_stress_tensor (const dealii::Tensor< 2, dim, dealii::VectorizedArray< number > > &grad_u) const |
| Calculate the viscous stress tensor. | |
| DEAL_II_ALWAYS_INLINE ConservedVariablesGradient | calculate_viscous_flux (const ConservedVariables &conserved_variables, const ConservedVariablesGradient &grad_conserved_variables) const |
| Calculate the viscous flux F_v, i.e. F_v(u, grad(u)). | |
| DEAL_II_ALWAYS_INLINE ConservedVariables | calculate_viscous_numerical_flux (const ConservedVariables &u_m, const ConservedVariables &u_p, const ConservedVariablesGradient &grad_u_m, const ConservedVariablesGradient &grad_u_p, const dealii::Tensor< 1, dim, dealii::VectorizedArray< number > > &normal, dealii::VectorizedArray< number > penalty_parameter) const |
| Calculate the viscous numerical flux F_v^* using the symmetric interior penalty method. | |
| DEAL_II_ALWAYS_INLINE std::pair< ConservedVariablesGradient, ConservedVariablesGradient > | calculate_viscous_numerical_flux_gradient (const ConservedVariables &u_m, const ConservedVariables &u_p, const dealii::Tensor< 1, dim, dealii::VectorizedArray< number > > &normal) const |
| Calculate the visocus flux, where jump(u) instead of grad(u) is used resulting in the F_v(u, jump(u)). | |
| ConservedVariablesGradient | calculate_jacobian_viscous_numerical_flux (const std::pair< ConservedVariables, ConservedVariables > &w_q, const std::pair< ConservedVariablesGradient, ConservedVariablesGradient > &grad_w_q, const std::pair< ConservedVariables, ConservedVariables > &delta_w_q, const std::pair< ConservedVariablesGradient, ConservedVariablesGradient > &grad_delta_w_q, const dealii::Tensor< 1, dim, dealii::VectorizedArray< number > > &normal, dealii::VectorizedArray< number > penalty_parameter) const |
| Compute the linearization of the viscous numerical flux with respect to the primary variables. | |
| ConservedVariablesGradient | calculate_jacobian_viscous_flux (const ConservedVariables &w_q, const ConservedVariablesGradient &grad_w_q, const ConservedVariables &delta_w_q, const ConservedVariablesGradient &grad_delta_w_q) const |
| Compute the linearization of the viscous flux with respect to the primary variables. | |
| ConservedVariablesGradient | calculate_jacobian_viscous_numerical_flux_jump_term (const std::pair< ConservedVariables, ConservedVariables > &delta_w_q, const dealii::Tensor< 1, dim, dealii::VectorizedArray< number > > &normal, dealii::VectorizedArray< number > penalty_parameter) const |
| Compute the linearization of the viscous numerical flux jump term. | |
Private Attributes | |
| const Material< dim, number > & | material |
| Object which provides all relevant material properties for a specific phase. | |
| number | lambda_div_c |
| precomputed constant | |
Detailed Description
struct MeltPoolDG::CompressibleFlow::ViscousKernels< dim, number >
Viscous kernel operations for compressible flow solvers.
This struct implements the evaluation of viscous fluxes and their linearizations for compressible flow governed by the Euler or Navier–Stokes equations. It supports flux evaluation on both volume cells and faces.
It also provides functionality to compute the Jacobian (linearized form) of these fluxes, which is required for implicit schemes.
Member Typedef Documentation
◆ ConservedVariables
| using MeltPoolDG::CompressibleFlow::ViscousKernels< dim, number >::ConservedVariables = ConservedVariablesType<dim, number> |
◆ ConservedVariablesGradient
| using MeltPoolDG::CompressibleFlow::ViscousKernels< dim, number >::ConservedVariablesGradient = ConservedVariablesGradientType<dim, number> |
Constructor & Destructor Documentation
◆ ViscousKernels()
|
explicit |
Member Function Documentation
◆ calculate_jacobian_viscous_flux()
|
inline |
Compute the linearization of the viscous flux with respect to the primary variables.
- Parameters
-
w_q Primary variables. grad_w_q Gradient of the primary variables. delta_w_q Change in the primary variables. grad_delta_w_q Gradient of the change in the primary variables.
- Returns
- Linearized viscous flux.
◆ calculate_jacobian_viscous_numerical_flux()
|
inline |
Compute the linearization of the viscous numerical flux with respect to the primary variables.
- Parameters
-
w_q Primary variables on the inner (first) and outer (second) face. grad_w_q Gradient of the primary variables on the inner (first) and outer (second) face. delta_w_q Change in the primary variables n the inner (first) and outer (second) face. grad_delta_w_q Gradient of the change in the primary variables on inner (first) and outer (second) face. normal Outer facing normal vector. penalty_parameter Value of the symmetric interior penalty parameter.
- Returns
- Linearized viscous numerical flux.
◆ calculate_jacobian_viscous_numerical_flux_jump_term()
|
inline |
Compute the linearization of the viscous numerical flux jump term.
Compute the Jacobian of the jump term in the viscous numerical flux. For the used symmetric interior penalty approach the jump therm is given by the penalty parameter multiplied with the jump in the primary variables.
- Parameters
-
delta_w_q Change in the primary variables n the inner (first) and outer (second) face. normal Outer facing normal vector. penalty_parameter Value of the symmetric interior penalty parameter.
- Returns
- Linearized jump term of the viscous numerical flux jump term.
◆ calculate_viscous_flux()
|
inline |
Calculate the viscous flux F_v, i.e. F_v(u, grad(u)).
- Parameters
-
conserved_variables Current values of the conserved variables. grad_conserved_variables Current gradient of the conserved variables.
- Returns
- Viscous flux F_v(u, grad(u)).
◆ calculate_viscous_numerical_flux()
|
inline |
Calculate the viscous numerical flux F_v^* using the symmetric interior penalty method.
- Parameters
-
u_m Current values of the conserved variables on the inner face. u_p Current values of the conserved variables on the outer type. grad_u_m Current values of the gradient of the conserved variables on the inner face. grad_u_p Current values of the gradient of the conserved variables on the outer face. normal Outer facing normal vector. penalty_parameter Symmetric interior penalty parameter.
- Returns
- Visocus numerical flux.
◆ calculate_viscous_numerical_flux_gradient()
|
inline |
Calculate the visocus flux, where jump(u) instead of grad(u) is used resulting in the F_v(u, jump(u)).
- Parameters
-
u_m Current values of the conserved variables on the inner face. u_p Current values of the conserved variables on the outer type. normal Outer facing normal vector.
- Returns
- Viscous flux F_v(u, jump(u)).
◆ calculate_viscous_stress_tensor()
|
inline |
Calculate the viscous stress tensor.
Calculate the viscous stress tensor τ given by τ = μ*(grad(u)+grad(u)^T-2/3*(grad*u)*I), where μ is the dynamic viscosity and I representing the identity matrix.
- Parameters
-
grad_u Current gradient of the velocity field.
- Returns
- Viscous stress tensor τ.
Member Data Documentation
◆ lambda_div_c
|
private |
precomputed constant
◆ material
|
private |
Object which provides all relevant material properties for a specific phase.
The documentation for this struct was generated from the following file:
- include/meltpooldg/compressible_flow/viscous_kernels.hpp
Generated by