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...
|
| 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 > |
| |
| struct | ConcreteDofStateViewImpl |
| |
| struct | ConcreteDofStateViewImpl< dim, 1, number, StateType > |
| |
| struct | ConcreteDofValueAndGradientStateViewImpl |
| |
| struct | ConcreteDofValueAndGradientStateViewImpl< dim, 1, number, Value, Gradient > |
| |
| struct | ConcreteDofValueViewImpl |
| |
| struct | ConcreteDofValueViewImpl< dim, 1, StateType > |
| |
| struct | ConcreteFluxViewImpl |
| |
| struct | ConcreteFluxViewImpl< dim, 1, FluxType > |
| |
| 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 |
| | Operation that performs a full time step for the compressible Navier-Stokes. More...
|
| |
| class | DGOperatorBase |
| | Interface of the compressible flow operator interacting with the compressible flow operation. More...
|
| |
| 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...
|
| |
|
| 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 = typename ConcreteDofValueViewImpl< dim, n_species, StateType >::type |
| |
| template<int dim, int n_species, typename number , IsConservedStateCompatible< dim > StateType> |
| using | NSpeciesDofStateView = typename ConcreteDofStateViewImpl< dim, n_species, number, StateType >::type |
| |
| template<int dim, int n_species, typename number , IsConservedStateCompatible< dim > Value, IsConservedGradientCompatible< dim > Gradient> |
| using | NSpeciesDofValueAndGradientStateView = typename ConcreteDofValueAndGradientStateViewImpl< dim, n_species, number, Value, Gradient >::type |
| |
| template<int dim, int n_species, typename FluxType > |
| using | NSpeciesFluxView = typename ConcreteFluxViewImpl< dim, n_species, FluxType >::type |
| |
|
| | 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, bool is_viscous = true> |
| 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) |
| | 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, bool is_viscous = true> |
| 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) |
| | 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_viscous = true, 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) |
| | 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 DofViewType , typename VectorizedArrayType > |
| DEAL_II_ALWAYS_INLINE VectorizedArrayType | maximum_local_wave_speed (const DofViewType &u_m, const DofViewType &u_p) |
| |
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 operation solves the compressible Navier-Stokes equations, comprising the primary variables.
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.
- density (ρ)
- momentum (ρ u)
- volume-specific energy (ρ E)
It is an extension of deal.II step-67 and is based on the paper
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.
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.