CompressibleFlow Namespace Reference
|
Developer Documentation
|
This file contains various functions that can be used to set and evaluate boundary conditions for the compressible flow solver. The functions can be directly used with the BoundaryConditions class, which provides an interface to manage and evaluate the different boundary conditions in the solver.
More...
Namespaces | |
| namespace | EOS |
Classes | |
| class | BoundaryConditions |
| Helper class taking care of all boundary condition related computations for the compressible flow solver. More... | |
| struct | CombinedInflowNoSlipWallValueInterpretation |
| struct | ConcreteConvectiveFluxImpl |
| struct | ConcreteConvectiveFluxImpl< dim, 1, number, Value, Flux > |
| struct | ConcreteDiffusiveFluxImpl |
| struct | ConcreteDiffusiveFluxImpl< dim, 1, number, Value, Gradient, Flux > |
| class | ConservativeVariablesFunction |
| struct | ConservedVariableIndex |
| class | ConservedVariablesPostProcessor |
| struct | ConvectiveFlux |
| struct | ConvectiveKernels |
| Convective kernel operations for compressible flow solvers. More... | |
| class | CutDGOperation |
| Operation that performs a full time step for the compressible single-phase Navier-Stokes equations in a cutDG context. More... | |
| class | CutDGOperator |
| Operator for the matrix-free evaluation of a compressible single-phase flow cutDG formulation. More... | |
| struct | CutSolverData |
| Collection of cut-related solver parameters required by the cut single-phase and multiphase compressible Navier-Stokes operators. More... | |
| class | DGOperation |
| class | DGOperatorExplicit |
| Operator for the matrix-free evaluation of a compressible single-phase flow cutDG formulation for explicit time integration. More... | |
| class | DGOperatorImplicit |
| Operator for the matrix-free evaluation of a compressible single-phase flow cutDG formulation for implicit time integration. More... | |
| class | DGOperatorImplicitExplicit |
| Operator for the matrix-free evaluation of a compressible single-phase flow cutDG formulation for implicit-explicit time integration. More... | |
| struct | DiffusiveFlux |
| struct | DofGradientMixin |
| struct | DofGradientView |
| struct | DofStateView |
| struct | DofValueAndGradientStateView |
| struct | DofValueMixin |
| struct | DofValueView |
| struct | EOSData |
| Collection of parameters related to the equation of state for a compressible or nearly incompressible fluid. More... | |
| struct | ExternalFlowForce |
| An abstract interface for defining external forces acting on the fluid that must be evaluated and incorporated during the cell loop of an explicit time integration scheme. More... | |
| struct | ExternalFlowForceJacobian |
| struct | FluxMixin |
| struct | FluxView |
| class | FreeJetInflow |
| class | FreeJetVelocityFunction |
| Enum for the type of velocity profile of a free jet inflow. More... | |
| struct | InflowValueInterpretation |
| struct | InputDefinedBoundaryCondition |
| struct | InputDefinedFreeJetInflow |
| struct | InputDefinedInitialCondition |
| struct | InputDefinedSubdividedHyperRectangleDomain |
| class | Material |
| A class which provides all relevant material properties for a specific phase. More... | |
| struct | MaterialMixin |
| struct | MaterialPhaseData |
| Collection of material parameters for a specific fluid phase. More... | |
| struct | MaterialSpeciesData |
| Collection of material parameters for a specific species. More... | |
| class | MaterialVariablesPostProcessor |
| struct | MaterialView |
| struct | MultiphaseOperationScratchData |
| Scratch data structure for compressible multiphase flow solvers. More... | |
| struct | MultiSpeciesDofStateView |
| struct | MultiSpeciesDofValueAndGradientStateView |
| struct | MultiSpeciesDofValueView |
| struct | MultiSpeciesFluxView |
| struct | MultiSpeciesMaterialMixin |
| struct | OperationData |
| Collection of parameters required by the compressible Navier-Stokes operator. More... | |
| struct | OperationScratchData |
| Scratch data structure for compressible single-phase flow solvers. More... | |
| class | OperationTypeErasure |
| Common interface class for compressible flow operation classes based on the type erasure idiom. More... | |
| struct | OutputManager |
| class | PrimitiveVariablesPostProcessor |
| struct | SpeciesTransportConvectiveFlux |
| struct | SpeciesTransportDiffusiveFlux |
| struct | ViscousKernels |
| Viscous kernel operations for compressible flow solvers. More... | |
Concepts | |
| concept | IsConservedStateCompatible |
| concept | IsConservedGradientCompatible |
| concept | IsConservedView |
| concept | IsPrimitiveView |
| concept | IsMaterialView |
| concept | IsValueView |
| concept | IsGradientView |
| concept | IsFluxKernel |
| concept | CellEvaluatorType |
| Concept to check whether a given type conforms to a valid cell evaluator interface. | |
| concept | FaceEvaluatorType |
| Concept to check whether a given type conforms to a valid face evaluator interface. | |
Typedefs | |
| template<int dim, typename number , int n_species = 1, typename VectorizedArrayType = dealii::VectorizedArray<number>> | |
| using | ConservedVariablesType = dealii::Tensor< 1, n_conserved_variables< dim, n_species >, VectorizedArrayType > |
| template<int dim, typename number , int n_species = 1, typename VectorizedArrayType = dealii::VectorizedArray<number>> | |
| using | ConservedVariablesGradientType = dealii::Tensor< 1, n_conserved_variables< dim, n_species >, dealii::Tensor< 1, dim, VectorizedArrayType > > |
| template<int dim, typename number , int n_species = 1> | |
| using | FluxType = dealii::Tensor< 1, n_conserved_variables< dim, n_species >, dealii::Tensor< 1, dim, dealii::VectorizedArray< number > > > |
| template<int dim, typename number , int n_species = 1> | |
| using | FaceFluxType = dealii::Tensor< 1, n_conserved_variables< dim, n_species >, dealii::VectorizedArray< number > > |
| template<int dim, typename number , int n_species = 1> | |
| using | FaceGradientFluxType = dealii::Tensor< 1, n_conserved_variables< dim, n_species >, dealii::Tensor< 1, dim, dealii::VectorizedArray< number > > > |
| template<int dim, typename number , int n_species = 1> | |
| using | SourceType = dealii::Tensor< 1, n_conserved_variables< dim, n_species >, dealii::VectorizedArray< number > > |
| template<int dim, int n_species, typename number , typename Value , typename Flux > | |
| using | NSpeciesConvectiveFlux = typename ConcreteConvectiveFluxImpl< dim, n_species, number, Value, Flux >::type |
| template<int dim, int n_species, typename number , typename Value , typename Gradient , typename Flux > | |
| using | NSpeciesDiffusiveFlux = typename ConcreteDiffusiveFluxImpl< dim, n_species, number, Value, Gradient, Flux >::type |
| template<int dim, int n_species, IsConservedStateCompatible< dim > StateType> | |
| using | NSpeciesDofValueView = std::conditional_t< n_species==1, DofValueView< dim, StateType >, MultiSpeciesDofValueView< dim, n_species, StateType > > |
| template<int dim, int n_species, typename number , IsConservedStateCompatible< dim > StateType> | |
| using | NSpeciesDofStateView = std::conditional_t< n_species==1, DofStateView< dim, number, StateType >, MultiSpeciesDofStateView< dim, n_species, number, StateType > > |
| template<int dim, int n_species, typename number , IsConservedStateCompatible< dim > Value, IsConservedGradientCompatible< dim > Gradient> | |
| using | NSpeciesDofValueAndGradientStateView = std::conditional_t< n_species==1, DofValueAndGradientStateView< dim, number, Value, Gradient >, MultiSpeciesDofValueAndGradientStateView< dim, n_species, number, Value, Gradient > > |
| template<int dim, int n_species, typename FluxType > | |
| using | NSpeciesFluxView = std::conditional_t< n_species==1, FluxView< dim, FluxType >, MultiSpeciesFluxView< dim, n_species, FluxType > > |
Functions | |
| BETTER_ENUM (RampUpType, char, none, linear, exponential, cosine) | |
| Enum for the type of ramp up function used for the velocity at an inflow boundary. | |
| BETTER_ENUM (BoundaryConditionType, char, combined_inflow_no_slip_wall, inflow, slip_wall, no_slip_wall, subsonic_outflow_fixed_energy, subsonic_outflow_fixed_pressure) | |
| template<int dim, typename number > | |
| void | add_hyper_rectangle_custom_boundary_condition_parameters (dealii::ParameterHandler &prm, std::array< InputDefinedBoundaryCondition< dim, number >, 2 *dim > &boundary_conditions) |
| template<int dim, typename number , CellEvaluatorType< dim, dim+2, number, dealii::VectorizedArray< number > > Integrator> | |
| DEAL_II_ALWAYS_INLINE std::tuple< ConservedVariablesType< dim, number >, ConservedVariablesGradientType< dim, number > > | rhs_cell_integral_kernel (const Integrator &evaluator, const unsigned int q, const dealii::Tensor< 1, dim, dealii::VectorizedArray< number > > *constant_body_force, const ConvectiveKernels< dim, number > &convective_terms, const ViscousKernels< dim, number > &viscous_terms, const std::unique_ptr< dealii::Function< dim > > &body_force, const bool is_viscous) |
| Computes the right-hand side cell integral kernels at a quadrature point. | |
| template<int dim, typename number , FaceEvaluatorType< dim, dim+2, number, dealii::VectorizedArray< number > > Integrator> | |
| DEAL_II_ALWAYS_INLINE std::tuple< ConservedVariablesType< dim, number >, ConservedVariablesType< dim, number >, ConservedVariablesGradientType< dim, number >, ConservedVariablesGradientType< dim, number > > | rhs_face_integral_kernel (const Integrator &evaluator_m, const Integrator &evaluator_p, const unsigned int q, dealii::VectorizedArray< number > penalty_parameter, const ConvectiveKernels< dim, number > &convective_terms, const ViscousKernels< dim, number > &viscous_terms, const bool is_viscous) |
| Computes the right-hand side face integral kernels at a face quadrature point. | |
| template<int dim, typename number , FaceEvaluatorType< dim, dim+2, number, dealii::VectorizedArray< number > > Integrator, bool is_gas_phase = true> | |
| DEAL_II_ALWAYS_INLINE std::tuple< ConservedVariablesType< dim, number >, ConservedVariablesGradientType< dim, number > > | rhs_boundary_face_integral_kernel (const Integrator &evaluator_m, const unsigned int q, const dealii::types::boundary_id boundary_id, const dealii::VectorizedArray< number > penalty_parameter, const ConvectiveKernels< dim, number > &convective_terms, const ViscousKernels< dim, number > &viscous_terms, const Material< dim, number > &material, const BoundaryConditions< dim, number > &boundary_conditions, const bool is_viscous) |
| Computes the right-hand side boundary face integral kernels at a boundary face quadrature point. | |
| template<int dim, typename ConservedVariablesView , typename WritableFluxView > | |
| DEAL_II_ALWAYS_INLINE void | convective_flux (const ConservedVariablesView &conserved_variables, const WritableFluxView &flux) |
| template<int dim, typename number > | |
| DEAL_II_ALWAYS_INLINE dealii::Tensor< 1, dim, dealii::Tensor< 1, dim, dealii::VectorizedArray< number > > > | viscous_stress_tensor (const dealii::Tensor< 1, dim, dealii::Tensor< 1, dim, dealii::VectorizedArray< number > > > &grad_velocity, const dealii::VectorizedArray< number > dynamic_viscosity) |
| template<int dim, typename VectorizedArrayType , typename DofStateView , typename WritableFluxView > | |
| DEAL_II_ALWAYS_INLINE void | diffusive_flux (const DofStateView &conserved_variables, const WritableFluxView &flux) |
| BETTER_ENUM (NumericalFluxType, char, lax_friedrichs_modified, lax_friedrichs_exact, harten_lax_vanleer) BETTER_ENUM(LinearizedConvectiveFluxJumpType | |
| BETTER_ENUM (JacobianType, char, exact, finite_difference) | |
| BETTER_ENUM (OutputType, char, conserved_variables, primitive_variables, material_quantities) | |
| BETTER_ENUM (Idx1D, char, density, momentum_x, energy) | |
| Index sets for the components of the compressible Navier-Stokes equations. | |
| BETTER_ENUM (Idx2D, char, density, momentum_x, momentum_y, energy) | |
| BETTER_ENUM (Idx3D, char, density, momentum_x, momentum_y, momentum_z, energy) | |
| template<int dim, typename number > | |
| DEAL_II_ALWAYS_INLINE dealii::Tensor< 1, dim, dealii::VectorizedArray< number > > | calculate_velocity (const ConservedVariablesType< dim, number > &conserved_variables) |
| Calculate the velocity from the conserved variables by computing u = (ρu)/ρ. | |
| template<int dim, typename number > | |
| DEAL_II_ALWAYS_INLINE dealii::Tensor< 2, dim, dealii::VectorizedArray< number > > | calculate_grad_velocity (const ConservedVariablesType< dim, number > &conserved_variables, const ConservedVariablesGradientType< dim, number > &grad_conserved_variables) |
| Calculate the velocity gradient. | |
| template<int dim, typename Number > | |
| void | calculate_penalty_parameter (dealii::AlignedVector< dealii::VectorizedArray< Number > > &array_penalty_parameter, const dealii::MatrixFree< dim, Number > &matrix_free, const std::string &domain_representation_type, const unsigned int dof_index=0, const Number scaling_factor=1.0) |
| This function computes the local values of the internal penalty parameter used in the viscous numerical flux. | |
| template<int dim, typename number > | |
| void | update_primitive_variables_solution (dealii::LinearAlgebra::distributed::Vector< number > &solution_primitive_variables, const dealii::LinearAlgebra::distributed::Vector< number > &solution, const ScratchData< dim, dim, number > &scratch_data, const unsigned int dof_idx, const unsigned int quad_idx, const Material< dim, number > *material_liquid, const Material< dim, number > *material_gas=nullptr) |
| Update the primitive variable solution according to the current solution vector. | |
| template<typename number , int n_species> | |
| bool | is_viscous_flow (const MaterialPhaseData< number > &material_data) |
| template<typename DofViewType , typename VectorizedArrayType > | |
| DEAL_II_ALWAYS_INLINE VectorizedArrayType | maximum_local_wave_speed (const DofViewType &u_m, const DofViewType &u_p) |
Variables | |
| template<int dim, int n_species = 1> | |
| constexpr unsigned int | n_conserved_variables = dim + 2 + (n_species - 1) |
| char | |
| analytic | |
| lambda_fd | |
| complete_fd | |
Detailed Description
This file contains various functions that can be used to set and evaluate boundary conditions for the compressible flow solver. The functions can be directly used with the BoundaryConditions class, which provides an interface to manage and evaluate the different boundary conditions in the solver.
Type definitions and helper functions for the compressible flow implementations.
A collection of helper functions that might be useful when solving the compressible Navier-Stokes equations with an explicit time stepping strategy.
This operator solves the compressible Navier-Stokes equations, comprising the primary variables.
Collection of convective term computations for the compressible Navier-Stokes equations.
- density (ρ)
- momentum (ρ u)
- volume-specific energy (ρ E) using the cutDG method for single-phase problems.
It is an extension of deal.II step-67 and is based on
Fehn, N., Wall, W. A., & Kronbichler, M. (2019). A matrix‐free high‐order discontinuous Galerkin compressible Navier‐Stokes solver: A performance comparison of compressible and incompressible formulations for turbulent incompressible flows. International Journal for Numerical Methods in Fluids, 89(3), 71-102.
and
Ritthaler, A. (2024). A matrix-free cutDG formulation for complex flows, Master's Thesis.
This file contains type aliases for the kernels used in the multi- and single-species compressible flow solver. The main purpose is that the type aliases automatically resolve to the correct kernel type depending on the number of species in the simulation. For example, for single-species simulations, the kernels resolve to the standard ConvectiveFlux and DiffusiveFlux, while for multi-species simulations, they resolve to the corresponding SpeciesTransportConvectiveFlux and SpeciesTransportDiffusiveFlux.
This file contains type aliases for the state views used in the multi- and single-species compressible flow solver. The main purpose is that the type aliases automatically resolve to the correct state view type depending on the number of species in the simulation. For example, for single-species simulations, the state views resolve to the standard DofStateView and DofValueAndGradientStateView, while for multi-species simulations, they resolve to the corresponding MultiSpeciesDofStateView and MultiSpeciesDofValueAndGradientStateView.
Typedef Documentation
◆ ConservedVariablesGradientType
| using MeltPoolDG::CompressibleFlow::ConservedVariablesGradientType = typedef dealii:: Tensor<1, n_conserved_variables<dim, n_species>, dealii::Tensor<1, dim, VectorizedArrayType> > |
Type alias for the gradient of the conserved variables in the compressible flow solver given at a vectorized set of coordinates.
◆ ConservedVariablesType
| using MeltPoolDG::CompressibleFlow::ConservedVariablesType = typedef dealii::Tensor<1, n_conserved_variables<dim, n_species>, VectorizedArrayType> |
Type alias for the conserved variables in the compressible flow solver given at a vectorized set of coordinates.
◆ FaceFluxType
| using MeltPoolDG::CompressibleFlow::FaceFluxType = typedef dealii::Tensor<1, n_conserved_variables<dim, n_species>, dealii::VectorizedArray<number> > |
Type alias for the fluxes at faces in the compressible flow solver given at a vectorized set of coordinates (contracted with normal vector). This includes both convective and diffusive fluxes.
◆ FaceGradientFluxType
| using MeltPoolDG::CompressibleFlow::FaceGradientFluxType = typedef dealii::Tensor<1, n_conserved_variables<dim, n_species>, dealii::Tensor<1, dim, dealii::VectorizedArray<number> >> |
◆ FluxType
| using MeltPoolDG::CompressibleFlow::FluxType = typedef dealii::Tensor<1, n_conserved_variables<dim, n_species>, dealii::Tensor<1, dim, dealii::VectorizedArray<number> >> |
Type alias for the fluxes in the compressible flow solver given at a vectorized set of coordinates. This includes both convective and diffusive fluxes.
◆ NSpeciesConvectiveFlux
| using MeltPoolDG::CompressibleFlow::NSpeciesConvectiveFlux = typedef typename ConcreteConvectiveFluxImpl<dim, n_species, number, Value, Flux>::type |
Type alias for the ConvectiveFlux for a specific number of species. This alias resolves to the appropriate kernel type depending on the number of species in the simulation.
◆ NSpeciesDiffusiveFlux
| using MeltPoolDG::CompressibleFlow::NSpeciesDiffusiveFlux = typedef typename ConcreteDiffusiveFluxImpl<dim, n_species, number, Value, Gradient, Flux>::type |
Type alias for the DiffusiveFlux for a specific number of species. This alias resolves to the appropriate kernel type depending on the number of species in the simulation.
◆ NSpeciesDofStateView
| using MeltPoolDG::CompressibleFlow::NSpeciesDofStateView = typedef std::conditional_t<n_species == 1, DofStateView<dim, number, StateType>, MultiSpeciesDofStateView<dim, n_species, number, StateType> > |
Type alias for the DofStateView for a specific number of species. This alias resolves to the appropriate state view type depending on the number of species in the simulation.
◆ NSpeciesDofValueAndGradientStateView
| using MeltPoolDG::CompressibleFlow::NSpeciesDofValueAndGradientStateView = typedef std::conditional_t< n_species == 1, DofValueAndGradientStateView<dim, number, Value, Gradient>, MultiSpeciesDofValueAndGradientStateView<dim, n_species, number, Value, Gradient> > |
Type alias for the DofValueAndGradientStateView for a specific number of species. This alias resolves to the appropriate state view type depending on the number of species in the simulation.
◆ NSpeciesDofValueView
| using MeltPoolDG::CompressibleFlow::NSpeciesDofValueView = typedef std::conditional_t<n_species == 1, DofValueView<dim, StateType>, MultiSpeciesDofValueView<dim, n_species, StateType> > |
Type alias for the DofValueView for a specific number of species. This alias resolves to the appropriate state view type depending on the number of species in the simulation.
◆ NSpeciesFluxView
| using MeltPoolDG::CompressibleFlow::NSpeciesFluxView = typedef std::conditional_t<n_species == 1, FluxView<dim, FluxType>, MultiSpeciesFluxView<dim, n_species, FluxType> > |
Type alias for the FluxView for a specific number of species. This alias resolves to the appropriate flux view type depending on the number of species in the simulation.
◆ SourceType
| using MeltPoolDG::CompressibleFlow::SourceType = typedef dealii::Tensor<1, n_conserved_variables<dim, n_species>, dealii::VectorizedArray<number> > |
Type alias for source terms in the compressible flow solver given at a vectorized set of coordinates.
Function Documentation
◆ add_hyper_rectangle_custom_boundary_condition_parameters()
| void MeltPoolDG::CompressibleFlow::add_hyper_rectangle_custom_boundary_condition_parameters | ( | dealii::ParameterHandler & | prm, |
| std::array< InputDefinedBoundaryCondition< dim, number >, 2 *dim > & | boundary_conditions | ||
| ) |
For a hyper-rectangular domain, this function adds the boundary condition parameters for all boundaries to the parameter handler. For this at each boundary the corresponding function of the boundary conditions object is called, which reads the parameters from the user input file and stores them in the corresponding boundary condition struct. The ordering in the passed array is the same as the boundary id provided by deal.II, i.e., for a 2D domain, the first two entries correspond to the boundaries with normal in x-direction (boundary ids 0 and 1), and the second two entries correspond to the boundaries with normal in y-direction (boundary ids 2 and 3). Subsequently, for 3D domains, the last two entries correspond to the boundaries with normal in z-direction (boundary ids 4 and 5).
- Parameters
-
prm Parameter handler to which the parameters will be added. boundary_conditions Array of boundary condition structs for all boundaries of the domain.
◆ BETTER_ENUM() [1/8]
| MeltPoolDG::CompressibleFlow::BETTER_ENUM | ( | BoundaryConditionType | , |
| char | , | ||
| combined_inflow_no_slip_wall | , | ||
| inflow | , | ||
| slip_wall | , | ||
| no_slip_wall | , | ||
| subsonic_outflow_fixed_energy | , | ||
| subsonic_outflow_fixed_pressure | |||
| ) |
An enum for the various boundary conditions supported by the compressible flow solver.
◆ BETTER_ENUM() [2/8]
| MeltPoolDG::CompressibleFlow::BETTER_ENUM | ( | Idx1D | , |
| char | , | ||
| density | , | ||
| momentum_x | , | ||
| energy | |||
| ) |
Index sets for the components of the compressible Navier-Stokes equations.
◆ BETTER_ENUM() [3/8]
| MeltPoolDG::CompressibleFlow::BETTER_ENUM | ( | Idx2D | , |
| char | , | ||
| density | , | ||
| momentum_x | , | ||
| momentum_y | , | ||
| energy | |||
| ) |
◆ BETTER_ENUM() [4/8]
| MeltPoolDG::CompressibleFlow::BETTER_ENUM | ( | Idx3D | , |
| char | , | ||
| density | , | ||
| momentum_x | , | ||
| momentum_y | , | ||
| momentum_z | , | ||
| energy | |||
| ) |
◆ BETTER_ENUM() [5/8]
| MeltPoolDG::CompressibleFlow::BETTER_ENUM | ( | JacobianType | , |
| char | , | ||
| exact | , | ||
| finite_difference | |||
| ) |
◆ BETTER_ENUM() [6/8]
| MeltPoolDG::CompressibleFlow::BETTER_ENUM | ( | NumericalFluxType | , |
| char | , | ||
| lax_friedrichs_modified | , | ||
| lax_friedrichs_exact | , | ||
| harten_lax_vanleer | |||
| ) |
◆ BETTER_ENUM() [7/8]
| MeltPoolDG::CompressibleFlow::BETTER_ENUM | ( | OutputType | , |
| char | , | ||
| conserved_variables | , | ||
| primitive_variables | , | ||
| material_quantities | |||
| ) |
◆ BETTER_ENUM() [8/8]
| MeltPoolDG::CompressibleFlow::BETTER_ENUM | ( | RampUpType | , |
| char | , | ||
| none | , | ||
| linear | , | ||
| exponential | , | ||
| cosine | |||
| ) |
Enum for the type of ramp up function used for the velocity at an inflow boundary.
◆ calculate_grad_velocity()
|
inline |
Calculate the velocity gradient.
Calculate the gradient of the velocity from the conserved variables and their gradients by computing grad(u) = 1/ρ * (grad(ρu) - u*grad(ρ)).
- Parameters
-
conserved_variables Current values of the conserved variables. grad_conserved_variables Current gradient of the conserved variables.
- Returns
- Current gradient of the velocity.
◆ calculate_penalty_parameter()
| void MeltPoolDG::CompressibleFlow::calculate_penalty_parameter | ( | dealii::AlignedVector< dealii::VectorizedArray< Number > > & | array_penalty_parameter, |
| const dealii::MatrixFree< dim, Number > & | matrix_free, | ||
| const std::string & | domain_representation_type, | ||
| const unsigned int | dof_index = 0, |
||
| const Number | scaling_factor = 1.0 |
||
| ) |
This function computes the local values of the internal penalty parameter used in the viscous numerical flux.
- Parameters
-
array_penalty_parameter Array in which the values of the penalty parameter are stored. matrix_free Matrix-free object providing the required geometrical data. domain_representation_type Numerical operator type (cut or fitted_mesh). dof_index Index of the relevant dof handler in the matrix-free object. scaling_factor Additional scaling factor to scale the penalty parameter.
◆ calculate_velocity()
|
inline |
Calculate the velocity from the conserved variables by computing u = (ρu)/ρ.
- Parameters
-
conserved_variables Current values of the conserved variables.
- Returns
- Current velocity.
◆ convective_flux()
|
inline |
Calculate the convective flux F_c for the compressible Navier-Stokes equations.
- Parameters
-
conserved_variables View on the local values of the conserved variables, providing convenient accessor functions for the quantities needed to compute the convective flux.
- Template Parameters
-
value_type Type of the conserved variables.
◆ diffusive_flux()
|
inline |
Calculate the diffusive (viscous) flux F_d for the compressible Navier-Stokes equations.
- Parameters
-
conserved_variables A view on the local values of the conserved variables and their gradients, providing convenient accessor functions for the quantities needed to compute the diffusive flux, such as velocity, velocity gradients, temperature gradients, dynamic viscosity, and thermal conductivity.
- Template Parameters
-
value_type Type of the conserved variables. gradient_type Type of the gradients of the conserved variables.
◆ is_viscous_flow()
|
inline |
This function checks whether the flow is viscous or not. This is done by checking the dynamic viscosity of all species in the material data. If any species has a non-zero dynamic viscosity, the flow is considered viscous.
- Parameters
-
material_data Material data struct containing the properties of the fluid.
- Returns
- True if the flow is viscous, false otherwise.
◆ maximum_local_wave_speed()
|
inline |
◆ rhs_boundary_face_integral_kernel()
|
inline |
Computes the right-hand side boundary face integral kernels at a boundary face quadrature point.
Kernel of the local boundary face applier for the right-hand side function. This function computes the face integral contribution of boundary faces to the right hand side for the quadrature point index and the corresponding FE evaluator.
- Parameters
-
evaluator_m FE-evaluator object reinitialized on the current (inner) face batch. q Index of the quadrature point. boundary_id Boundary ID of the considered boundary face. penalty_parameter Value of the symmetric interior penalty parameter on the face. convective_terms Collection of convective term computations for the compressible Navier-Stokes equations. viscous_terms Collection of viscous term computations for the compressible Navier-Stokes equations. material Class providing material data and calculations of thermodynamic relations. boundary_conditions Class providing boundary condition related computations for the compressible flow solver is_viscous Boolean flag indicating whether the flow is viscous or not.
- Returns
- Tuple, containing the flux for the boundary face, weighted with the value of the test function, as first argument, and the flux for the boundary face, weighted with the gradient of the test function, as second argument.
◆ rhs_cell_integral_kernel()
|
inline |
Computes the right-hand side cell integral kernels at a quadrature point.
Kernel of the local cell applier for the right-hand side function. This function computes the cell integral contribution to the right hand side for the quadrature point index and the corresponding FE evaluator.
- Parameters
-
evaluator FE-evaluator object reinitialized on the current cell batch. q Index of the quadrature point. constant_body_force Value of the body force. If the body force is not constant the pointer must be set to nullptr. convective_terms Collection of convective term computations for the compressible Navier-Stokes equations. viscous_terms Collection of viscous term computations for the compressible Navier-Stokes equations. body_force Pointer to a body force function. is_viscous Boolean flag indicating whether the flow is viscous or not.
- Returns
- Tuple, containing the flux, weighted with the value of the test function, as first argument, and the flux, weighted with the gradient of the test function, as second argument.
◆ rhs_face_integral_kernel()
|
inline |
Computes the right-hand side face integral kernels at a face quadrature point.
Kernel of the local inner face applier for the right-hand side function. This function computes the face integral contribution of inner faces to the right hand side for the quadrature point index and the corresponding FE evaluator.
- Parameters
-
evaluator_m FE-evaluator object reinitialized on the current (inside) face batch. evaluator_p FE-evaluator object reinitialized on the current (outside) face batch. q Index of the quadrature point. penalty_parameter Value of the symmetric interior penalty parameter on the face. convective_terms Collection of convective term computations for the compressible Navier-Stokes equations. viscous_terms Collection of viscous term computations for the compressible Navier-Stokes equations. is_viscous Boolean flag indicating whether the flow is viscous or not.
- Returns
- Tuple, which containing the fluxes for the inside and outside faces, weighted with the value of the test functions, as first two arguments, and the fluxes for the inside and outside faces, weighted with the gradient of the test functions, as the third and fourth argument.
◆ update_primitive_variables_solution()
| void MeltPoolDG::CompressibleFlow::update_primitive_variables_solution | ( | dealii::LinearAlgebra::distributed::Vector< number > & | solution_primitive_variables, |
| const dealii::LinearAlgebra::distributed::Vector< number > & | solution, | ||
| const ScratchData< dim, dim, number > & | scratch_data, | ||
| const unsigned int | dof_idx, | ||
| const unsigned int | quad_idx, | ||
| const Material< dim, number > * | material_liquid, | ||
| const Material< dim, number > * | material_gas = nullptr |
||
| ) |
Update the primitive variable solution according to the current solution vector.
- Parameters
-
solution_primitive_variables Vector where the solution in primitive variables is stored. solution Current solution vector in conservative variable formulation. dof_idx Index of the relevant dof handler in the matrix-free object. quad_idx Relevant quadrature index of the flow solver. material_liquid Pointer to the material object for liquid phase. material_gas Pointer to the material object for the gas phase.
- Note
- The second material object is only required for the two-phase case.
◆ viscous_stress_tensor()
|
inline |
Calculate the viscous stress tensor for the compressible Navier-Stokes equations.
- Parameters
-
grad_velocity Gradient of the velocity field. dynamic_viscosity Dynamic viscosity of the fluid.
Variable Documentation
◆ analytic
| MeltPoolDG::CompressibleFlow::analytic |
◆ char
| MeltPoolDG::CompressibleFlow::char |
◆ complete_fd
| MeltPoolDG::CompressibleFlow::complete_fd |
◆ lambda_fd
| MeltPoolDG::CompressibleFlow::lambda_fd |
◆ n_conserved_variables
|
constexpr |
Number of independent conserved variables for the compressible Navier-Stokes equations in dim dimensions.
Generated by