Helper class taking care of all boundary condition related computations for the compressible flow solver.
More...
|
| void | update_boundary_conditions (number time) |
| | Update the boundary conditions.
|
| |
| void | set_boundary_conditions (const std::shared_ptr< SimulationCaseBase< dim, number > > &simulation_case, const std::string &operation_name) |
| | Set the compressible flow boundary conditions.
|
| |
| void | set_boundary_condition (BoundaryType boundary_condition, std::map< dealii::types::boundary_id, std::shared_ptr< dealii::Function< dim > > > boundary_condition_function={}) |
| | Set a specific boundary condition and store it internally.
|
| |
| BoundaryType | get_boundary_type (const dealii::types::boundary_id boundary_id) const |
| | Get the type of the boundary condition at a specific domain boundary.
|
| |
| dealii::VectorizedArray< number > | get_boundary_value (dealii::types::boundary_id boundary_id, BoundaryType boundary_condition, const dealii::Point< dim, dealii::VectorizedArray< number > > &location, unsigned component) const |
| | Compute the prescribed boundary value at a specific location on the boundary.
|
| |
| std::tuple< ConservedVariables, ConservedVariablesGradient > | get_boundary_face_value_and_gradient (const dealii::Point< dim, dealii::VectorizedArray< number > > &q_point, const dealii::Tensor< 1, dim, dealii::VectorizedArray< number > > &normal, dealii::types::boundary_id boundary_id, const ConservedVariables &w_m, const ConservedVariablesGradient &grad_w_m, const Material< dim, number > &material, bool is_gas_phase=true) const |
| | This function sets the corresponding values on the fictional outer face if the face is located at a boundary.
|
| |
| template<typename DofReadView , typename DofWriteView > |
| void | set_conserved_variables_boundary_value_and_gradient (const dealii::Point< dim, dealii::VectorizedArray< number > > &q_point, const dealii::Tensor< 1, dim, dealii::VectorizedArray< number > > &normal, dealii::types::boundary_id boundary_id, const DofReadView &w_m, const DofWriteView &w_p) const |
| |
| template<int n_species, typename DofReadView , typename DofWriteView > |
| void | set_partial_density_boundary_value_and_gradient (const dealii::Point< dim, dealii::VectorizedArray< number > > &q_point, dealii::types::boundary_id boundary_id, const DofReadView &w_m, const DofWriteView &w_p) const |
| |
| std::tuple< ConservedVariables, ConservedVariablesGradient, ConservedVariables, ConservedVariablesGradient > | get_jacobian_boundary_face_value_and_gradient (const dealii::Point< dim, dealii::VectorizedArray< number > > &q_point, const dealii::Tensor< 1, dim, dealii::VectorizedArray< number > > &normal, dealii::types::boundary_id boundary_id, const ConservedVariables &w_m, const ConservedVariables &delta_w_m, const ConservedVariablesGradient &grad_w_m, const ConservedVariablesGradient &grad_delta_w_m, number gamma) const |
| | Compute boundary values and gradients, as well as their linearizations for the Jacobian.
|
| |
|
| template<typename DofReadView , typename DofWriteView > |
| void | apply_slip_wall_boundary (DofReadView w_m, DofWriteView w_p, const dealii::Tensor< 1, dim, dealii::VectorizedArray< number > > &normal) const |
| |
| template<typename DofReadView , typename DofWriteView > |
| void | apply_no_slip_wall_boundary (DofReadView w_m, DofWriteView w_p) const |
| |
| template<typename DofReadView , typename DofWriteView , typename DirichletValueInterpretation = InflowValueInterpretation<dim>> |
| void | apply_inflow_boundary (const dealii::types::boundary_id boundary_id, const dealii::Point< dim, dealii::VectorizedArray< number > > &q_point, DofReadView w_m, DofWriteView w_p, const BoundaryType bc_value_type=BoundaryType::inflow) const |
| |
| template<typename DofReadView , typename DofWriteView > |
| void | apply_subsonic_outflow_with_fixed_pressure_boundary (const dealii::types::boundary_id boundary_id, const dealii::Point< dim, dealii::VectorizedArray< number > > &q_point, DofReadView w_m, DofWriteView w_p) const |
| |
| template<typename DofReadView , typename DofWriteView > |
| void | apply_subsonic_outflow_with_fixed_energy_boundary (const dealii::types::boundary_id boundary_id, const dealii::Point< dim, dealii::VectorizedArray< number > > &q_point, DofReadView w_m, DofWriteView w_p) const |
| |
| template<typename DofReadView , typename DofWriteView > |
| void | apply_combined_inflow_no_slip_wall_boundary (const dealii::types::boundary_id boundary_id, const dealii::Point< dim, dealii::VectorizedArray< number > > &q_point, DofReadView w_m, DofWriteView w_p) const |
| |
template<int dim, typename number>
class MeltPoolDG::CompressibleFlow::BoundaryConditions< dim, number >
Helper class taking care of all boundary condition related computations for the compressible flow solver.
This class provides an interface to set, manage, and evaluate a variety of physical boundary conditions that may arise in simulations of compressible Navier-Stokes flows.
Supported boundary condition types:
- Inflow
- Slip wall
- No-slip adiabatic wall
- Subsonic outflow with fixed pressure
- Subsonic outflow with fixed energy
- Combined inflow and no-slip wall boundary condition, which can be used to apply a free jet inflow.
template<int dim, typename number >
template<typename DofReadView , typename DofWriteView >
| void MeltPoolDG::CompressibleFlow::BoundaryConditions< dim, number >::apply_combined_inflow_no_slip_wall_boundary |
( |
const dealii::types::boundary_id |
boundary_id, |
|
|
const dealii::Point< dim, dealii::VectorizedArray< number > > & |
q_point, |
|
|
DofReadView |
w_m, |
|
|
DofWriteView |
w_p |
|
) |
| const |
|
private |
Apply the combined inflow and no-slip wall boundary condition by setting the corresponding values in w_p based on the values in w_m and the boundary function corresponding to the boundary. For points located in the inflow region of the boundary, the values are set based on the boundary function, while for points located in the wall region, the no-slip wall condition is applied.
- Parameters
-
| boundary_id | ID of the boundary at which the combined inflow and no-slip wall boundary condition is applied. |
| q_point | Coordinates at which the boundary function is evaluated. |
| w_m | View for the conserved variables on the inner face. |
| w_p | View for the conserved variables on the outer face, which shall be set by this function. |
template<int dim, typename number >
template<typename DofReadView , typename DofWriteView , typename DirichletValueInterpretation >
| void MeltPoolDG::CompressibleFlow::BoundaryConditions< dim, number >::apply_inflow_boundary |
( |
const dealii::types::boundary_id |
boundary_id, |
|
|
const dealii::Point< dim, dealii::VectorizedArray< number > > & |
q_point, |
|
|
DofReadView |
w_m, |
|
|
DofWriteView |
w_p, |
|
|
const BoundaryType |
bc_value_type = BoundaryType::inflow |
|
) |
| const |
|
private |
Apply the inflow boundary condition by setting the corresponding values in w_p based on the values in w_m and the boundary function corresponding to the inflow boundary with id boundary_id evaluated at the coordinates q_point.
- Parameters
-
| boundary_id | ID of the boundary at which the inflow boundary condition is applied. |
| q_point | Coordinates at which the boundary function is evaluated. |
| w_m | View for the conserved variables on the inner face. |
| w_p | View for the conserved variables on the outer face, which shall be set by this function. |
| bc_value_type | Type of the boundary condition, from which the Dirichlet boundary values are obtained. |
- Template Parameters
-
| DirichletValueInterpretation | A struct defining an enum to interpret the components of the vector returned by the boundary function. This allows to use the same function for different types of boundary conditions, where the interpretation of the returned vector can differ. |
template<int dim, typename number >
| auto MeltPoolDG::CompressibleFlow::BoundaryConditions< dim, number >::get_jacobian_boundary_face_value_and_gradient |
( |
const dealii::Point< dim, dealii::VectorizedArray< number > > & |
q_point, |
|
|
const dealii::Tensor< 1, dim, dealii::VectorizedArray< number > > & |
normal, |
|
|
dealii::types::boundary_id |
boundary_id, |
|
|
const ConservedVariables & |
w_m, |
|
|
const ConservedVariables & |
delta_w_m, |
|
|
const ConservedVariablesGradient & |
grad_w_m, |
|
|
const ConservedVariablesGradient & |
grad_delta_w_m, |
|
|
number |
gamma |
|
) |
| const |
Compute boundary values and gradients, as well as their linearizations for the Jacobian.
This function sets the corresponding values on the fictional outer face if the face is located at a boundary. It returns the values and the gradient of the boundary values as well as their linearized version required when for example computing the Jacobian in an implicit scheme.
- Parameters
-
| q_point | Coordinates of the quadrature point. |
| normal | Outer facing normal vector. |
| boundary_id | ID of the current boundary. |
| w_m | Primary variables on the inner face. |
| delta_w_m | Change in the primary variables on the inner face. |
| grad_w_m | Gradient of the primary variables on the inner face. |
| grad_delta_w_m | Gradient of the change in the primary variables on the inner face. |
| gamma | Heat capacity ratio of the flow field. |
- Returns
- Tuple containing the corresponding values on the outer face. The first value being the primary variables, the second the gradient of the primary variables, the third the change in the primary variables and the fourth the change in the primary variables.
template<int dim, typename number >
template<int n_species, typename DofReadView , typename DofWriteView >
| void MeltPoolDG::CompressibleFlow::BoundaryConditions< dim, number >::set_partial_density_boundary_value_and_gradient |
( |
const dealii::Point< dim, dealii::VectorizedArray< number > > & |
q_point, |
|
|
dealii::types::boundary_id |
boundary_id, |
|
|
const DofReadView & |
w_m, |
|
|
const DofWriteView & |
w_p |
|
) |
| const |
This function sets the values of partial density in the case of multi-component flows on the fictional outer face if the face is located at a boundary.
- Parameters
-
| q_point | Location of the quadrature points at which the values shall be computed. |
| boundary_id | ID of the boundary. |
| w_m | View for the conserved variables on the inner face. |
| w_p | View for the conserved variables on the outer face, which shall be set by this function. |