CompressibleMultiphaseOperator< dim, number, is_viscous_gas, is_viscous_liquid > Class Template Reference
|
Developer Documentation
|
Operator for the matrix-free of a compressible multiphase flow cutDG formulation. More...
#include <multiphase_operator.hpp>
Public Member Functions | |
| CompressibleMultiphaseOperator (CompressibleFlow::MultiphaseOperationScratchData< dim, number > &multiphase_scratch_data, const MappingInfoType &mapping_info_interface_in, const MappingInfoVectorType &mapping_info_cells_in, const MappingInfoVectorType &mapping_info_faces_in) | |
| Constructor. | |
| void | local_apply_cell_rhs (const dealii::MatrixFree< dim, number > &matrix_free, VectorType &dst, const VectorType &src, const std::pair< unsigned int, unsigned int > &cell_range) const |
| Local applier for the cell integrals in the right-hand side evaluation. | |
| void | local_apply_face_rhs (const dealii::MatrixFree< dim, number > &matrix_free, VectorType &dst, const VectorType &src, const std::pair< unsigned int, unsigned int > &face_range) const |
| Local applier for the face integrals in the right-hand side evaluation. | |
| void | local_apply_boundary_face_rhs (const dealii::MatrixFree< dim, number > &matrix_free, VectorType &dst, const VectorType &src, const std::pair< unsigned int, unsigned int > &face_range) const |
| Local applier for the boundary face integral in the right-hand side evaluation. | |
| void | local_apply_cell_lhs (const dealii::MatrixFree< dim, number > &matrix_free, VectorType &dst, const VectorType &src, const std::pair< unsigned int, unsigned int > &cell_range) const |
| Local applier for the cell integrals in the left-hand side matrix-vector product evaluation. | |
| void | local_apply_face_lhs (const dealii::MatrixFree< dim, number > &matrix_free, VectorType &dst, const VectorType &src, const std::pair< unsigned int, unsigned int > &face_range) const |
| Local applier for the face integrals in the left-hand side matrix-vector product evaluation. | |
| void | local_apply_boundary_face_lhs (const dealii::MatrixFree< dim, number > &matrix_free, VectorType &dst, const VectorType &src, const std::pair< unsigned int, unsigned int > &face_range) const |
| Local applier for the boundary face integrals in the left-hand side matrix-vector product evaluation. | |
| void | create_rhs (const number &time, const number &time_step_in, VectorType &dst, const VectorType &src) const |
| Function for the matrix-free right-hand side vector evaluation. | |
| void | vmult (VectorType &dst, const VectorType &src) const |
| Function for the matrix-free matrix-vector product evaluation. | |
| void | set_current_time (const number ¤t_time_in) |
| Set the current time. | |
| void | add_external_force (std::shared_ptr< CompressibleFlow::ExternalFlowForce< dim, number > > external_force) |
| Add external fluid forces (e.g. gravity, ...). | |
Private Member Functions | |
| FECellIntegrator< dim, dim+2, number > | create_cell_integrator (const CutUtil::CellCategory category, const unsigned int offset=0) const |
| Wrapper for the generation of a FECellIntegrator object. | |
| FEFaceIntegrator< dim, dim+2, number > | create_face_integrator (const bool is_inner_face, const CutUtil::CellCategory category, const unsigned int offset=0) const |
| Wrapper for the generation of a FEFaceIntegrator object. | |
| std::pair< FEFaceIntegrator< dim, dim+2, number >, FEFaceIntegrator< dim, dim+2, number > > | create_face_integrators (const CutUtil::CellCategory category, const unsigned int offset=0) const |
| Wrapper for the generation of a pair of FEFaceIntegrator objects for the "interior" face and the "exterior" face. | |
Private Attributes | |
| CompressibleFlow::MultiphaseOperationScratchData< dim, number > & | multiphase_scratch_data |
| Scratch data for multiphase case. | |
| const MappingInfoType & | mapping_info_interface |
| Mapping information for integration over the phase interface. | |
| const MappingInfoVectorType & | mapping_info_cells |
| Mapping information for integration over cut cells. | |
| const MappingInfoVectorType & | mapping_info_faces |
| Mapping information for integration over cut faces. | |
| dealii::FESystem< dim > | fe_point_temp |
| FESystem object, required by FEPointEvaluation. | |
| const unsigned int | n_dofs_per_cell |
| Number of DoFs per cell. | |
| number | visc_ave_weight_phase_liquid |
| Weighting factors for Nitsche-type viscous interface flux. | |
| number | visc_ave_weight_phase_gas |
| std::vector< std::shared_ptr< CompressibleFlow::ExternalFlowForce< dim, number > > > | external_forces |
| number | time_step = 0. |
| Current time step size. | |
| number | inv_time_step = 0. |
| Inverse time step size. | |
| number | current_time = 0. |
| Current time. | |
| LevelSetAdvection< dim, number > | level_set_advection_operator |
| Object for the analytical advection of the level set field for 1D simulations. | |
| std::unique_ptr< Evaporation::EvaporationModelKnight< number > > | evaporation_model_knight |
| Pointer to the object for the evaluation of the Knight evaporation model. | |
Detailed Description
class MeltPoolDG::Multiphase::CompressibleMultiphaseOperator< dim, number, is_viscous_gas, is_viscous_liquid >
Operator for the matrix-free of a compressible multiphase flow cutDG formulation.
- Template Parameters
-
dim Dimension of the considered simulation case. number Floating point format type. is_viscous_gas Indicates whether the gas phase is viscous. is_viscous_liquid Indicates whether the liquid phase is viscous.
Member Typedef Documentation
◆ ConservedVariablesGradType
| using MeltPoolDG::Multiphase::CompressibleMultiphaseOperator< dim, number, is_viscous_gas, is_viscous_liquid >::ConservedVariablesGradType = CompressibleFlow::ConservedVariablesGradientType<dim, number> |
◆ ConservedVariablesType
| using MeltPoolDG::Multiphase::CompressibleMultiphaseOperator< dim, number, is_viscous_gas, is_viscous_liquid >::ConservedVariablesType = CompressibleFlow::ConservedVariablesType<dim, number> |
◆ ConvectionDiffusionOperator
| using MeltPoolDG::Multiphase::CompressibleMultiphaseOperator< dim, number, is_viscous_gas, is_viscous_liquid >::ConvectionDiffusionOperator = Utils::DGConvectionDiffusionOperator<dim, number, ConvectiveKernel, DiffusiveKernel> |
◆ ConvectionOperator
| using MeltPoolDG::Multiphase::CompressibleMultiphaseOperator< dim, number, is_viscous_gas, is_viscous_liquid >::ConvectionOperator = Utils::DGConvectionOperator<dim, number, ConvectiveKernel> |
◆ ConvectiveKernel
| using MeltPoolDG::Multiphase::CompressibleMultiphaseOperator< dim, number, is_viscous_gas, is_viscous_liquid >::ConvectiveKernel = CompressibleFlow:: ConvectiveFlux<dim, number, ConservedVariablesType, ConservedVariablesGradType> |
◆ DiffusiveKernel
| using MeltPoolDG::Multiphase::CompressibleMultiphaseOperator< dim, number, is_viscous_gas, is_viscous_liquid >::DiffusiveKernel = CompressibleFlow:: DiffusiveFlux<dim, number, ConservedVariablesType, ConservedVariablesGradType, FlowFluxType> |
◆ FlowFluxType
| using MeltPoolDG::Multiphase::CompressibleMultiphaseOperator< dim, number, is_viscous_gas, is_viscous_liquid >::FlowFluxType = CompressibleFlow::FluxType<dim, number> |
◆ FlowSourceType
| using MeltPoolDG::Multiphase::CompressibleMultiphaseOperator< dim, number, is_viscous_gas, is_viscous_liquid >::FlowSourceType = CompressibleFlow::SourceType<dim, number> |
◆ MappingInfoType
| using MeltPoolDG::Multiphase::CompressibleMultiphaseOperator< dim, number, is_viscous_gas, is_viscous_liquid >::MappingInfoType = CutUtil::MappingInfoType<dim, number> |
◆ MappingInfoVectorType
| using MeltPoolDG::Multiphase::CompressibleMultiphaseOperator< dim, number, is_viscous_gas, is_viscous_liquid >::MappingInfoVectorType = CutUtil::MappingInfoVectorType<dim, number> |
◆ VectorType
| using MeltPoolDG::Multiphase::CompressibleMultiphaseOperator< dim, number, is_viscous_gas, is_viscous_liquid >::VectorType = dealii::LinearAlgebra::distributed::Vector<number> |
Constructor & Destructor Documentation
◆ CompressibleMultiphaseOperator()
|
explicit |
Constructor.
Initializes the operators, integrators, and mapping objects needed to compute the matrix-free evaluation of a compressible multiphase cutDG formulation.
- Parameters
-
multiphase_scratch_data Flow scratch data object holding all relevant compressible flow data required by the operator. mapping_info_interface_in dealii::NonMatching::MappingInfo object, provides the mapping information computation and mapping data storage of the interface. mapping_info_cells_in Vector of dealii::NonMatching::MappingInfo objects, provides the mapping information computation and mapping data storage of the cells on the inner subdomain and the outer subdomain, respectively. mapping_info_faces_in Vector of dealii::NonMatching::MappingInfo objects, provides the mapping information computation and mapping data storage of the faces on the inner subdomain and the outer subdomain, respectively.
Member Function Documentation
◆ add_external_force()
| void MeltPoolDG::Multiphase::CompressibleMultiphaseOperator< dim, number, is_viscous_gas, is_viscous_liquid >::add_external_force | ( | std::shared_ptr< CompressibleFlow::ExternalFlowForce< dim, number > > | external_force | ) |
Add external fluid forces (e.g. gravity, ...).
- Parameters
-
external_force A provided shared pointer to an external force definition.
◆ create_cell_integrator()
|
inlineprivate |
Wrapper for the generation of a FECellIntegrator object.
- Parameters
-
category Category of the considered cell range (liquid/intersected/gas). offset Offset for the first selected component in a FESystem.
- Returns
- Generated FECellIntegrator object.
◆ create_face_integrator()
|
inlineprivate |
Wrapper for the generation of a FEFaceIntegrator object.
- Parameters
-
is_inner_face This selects which of the two cells of an internal face the current evaluator will be based upon. The interior face is the main face along which the normal vectors are oriented. category Category of the considered cell adjacent to the face (liquid/intersected/gas). offset Offset for the first selected component in a FESystem.
- Returns
- Generated FEFaceIntegrator object.
◆ create_face_integrators()
|
inlineprivate |
Wrapper for the generation of a pair of FEFaceIntegrator objects for the "interior" face and the "exterior" face.
The "interior" face is the main face along which the normal vectors are oriented.
- Parameters
-
category Category of the considered cell adjacent to the face (liquid/intersected/gas). offset Offset for the first selected component in a FESystem.
- Returns
- Pair of FEFaceIntegrator objects. The first one corresponds to the "interior" face and the second one to the "exterior" face.
◆ create_rhs()
| void MeltPoolDG::Multiphase::CompressibleMultiphaseOperator< dim, number, is_viscous_gas, is_viscous_liquid >::create_rhs | ( | const number & | time, |
| const number & | time_step_in, | ||
| VectorType & | dst, | ||
| const VectorType & | src | ||
| ) | const |
Function for the matrix-free right-hand side vector evaluation.
- Parameters
-
time Current simulation time. time_step_in Current time step size. dst Vector where the computed right-hand side rhs(src) is stored. src The solution vector at the current time.
◆ local_apply_boundary_face_lhs()
| void MeltPoolDG::Multiphase::CompressibleMultiphaseOperator< dim, number, is_viscous_gas, is_viscous_liquid >::local_apply_boundary_face_lhs | ( | const dealii::MatrixFree< dim, number > & | matrix_free, |
| VectorType & | dst, | ||
| const VectorType & | src, | ||
| const std::pair< unsigned int, unsigned int > & | face_range | ||
| ) | const |
Local applier for the boundary face integrals in the left-hand side matrix-vector product evaluation.
- Parameters
-
matrix_free Matrix-free object which contains all relevant data for matrix free evaluation. dst Destination vector, in which the result is written. src Source vector for the operator evaluation. face_range Considered face range.
◆ local_apply_boundary_face_rhs()
| void MeltPoolDG::Multiphase::CompressibleMultiphaseOperator< dim, number, is_viscous_gas, is_viscous_liquid >::local_apply_boundary_face_rhs | ( | const dealii::MatrixFree< dim, number > & | matrix_free, |
| VectorType & | dst, | ||
| const VectorType & | src, | ||
| const std::pair< unsigned int, unsigned int > & | face_range | ||
| ) | const |
Local applier for the boundary face integral in the right-hand side evaluation.
- Parameters
-
matrix_free Matrix-free object which contains all relevant data for matrix free evaluation. dst Destination vector, in which the result is written. src Source vector for the operator evaluation. face_range Considered face range.
◆ local_apply_cell_lhs()
| void MeltPoolDG::Multiphase::CompressibleMultiphaseOperator< dim, number, is_viscous_gas, is_viscous_liquid >::local_apply_cell_lhs | ( | const dealii::MatrixFree< dim, number > & | matrix_free, |
| VectorType & | dst, | ||
| const VectorType & | src, | ||
| const std::pair< unsigned int, unsigned int > & | cell_range | ||
| ) | const |
Local applier for the cell integrals in the left-hand side matrix-vector product evaluation.
- Parameters
-
matrix_free Matrix-free object which contains all relevant data for matrix free evaluation. dst Destination vector, in which the result is written. src Source vector for the operator evaluation. cell_range Considered cell range.
◆ local_apply_cell_rhs()
| void MeltPoolDG::Multiphase::CompressibleMultiphaseOperator< dim, number, is_viscous_gas, is_viscous_liquid >::local_apply_cell_rhs | ( | const dealii::MatrixFree< dim, number > & | matrix_free, |
| VectorType & | dst, | ||
| const VectorType & | src, | ||
| const std::pair< unsigned int, unsigned int > & | cell_range | ||
| ) | const |
Local applier for the cell integrals in the right-hand side evaluation.
- Parameters
-
matrix_free Matrix-free object which contains all relevant data for matrix free evaluation. dst Destination vector, in which the result is written. src Source vector for the operator evaluation. cell_range Considered cell range.
◆ local_apply_face_lhs()
| void MeltPoolDG::Multiphase::CompressibleMultiphaseOperator< dim, number, is_viscous_gas, is_viscous_liquid >::local_apply_face_lhs | ( | const dealii::MatrixFree< dim, number > & | matrix_free, |
| VectorType & | dst, | ||
| const VectorType & | src, | ||
| const std::pair< unsigned int, unsigned int > & | face_range | ||
| ) | const |
Local applier for the face integrals in the left-hand side matrix-vector product evaluation.
- Parameters
-
matrix_free Matrix-free object which contains all relevant data for matrix free evaluation. dst Destination vector, in which the result is written. src Source vector for the operator evaluation. face_range Considered face range.
◆ local_apply_face_rhs()
| void MeltPoolDG::Multiphase::CompressibleMultiphaseOperator< dim, number, is_viscous_gas, is_viscous_liquid >::local_apply_face_rhs | ( | const dealii::MatrixFree< dim, number > & | matrix_free, |
| VectorType & | dst, | ||
| const VectorType & | src, | ||
| const std::pair< unsigned int, unsigned int > & | face_range | ||
| ) | const |
Local applier for the face integrals in the right-hand side evaluation.
- Parameters
-
matrix_free Matrix-free object which contains all relevant data for matrix free evaluation. dst Destination vector, in which the result is written. src Source vector for the operator evaluation. face_range Considered face range.
◆ set_current_time()
|
inline |
Set the current time.
- Parameters
-
current_time_in Current time.
◆ vmult()
| void MeltPoolDG::Multiphase::CompressibleMultiphaseOperator< dim, number, is_viscous_gas, is_viscous_liquid >::vmult | ( | VectorType & | dst, |
| const VectorType & | src | ||
| ) | const |
Function for the matrix-free matrix-vector product evaluation.
- Parameters
-
dst Vector where the computed evaluated vector-matrix product is stored. src The solution vector at the current time.
Member Data Documentation
◆ current_time
|
mutableprivate |
Current time.
◆ evaporation_model_knight
|
private |
Pointer to the object for the evaluation of the Knight evaporation model.
◆ external_forces
|
private |
This pointer may hold an instance of an external fluid force contribution (e.g., gravity, body forces, or user - defined source terms)
◆ fe_point_temp
|
private |
FESystem object, required by FEPointEvaluation.
◆ inv_time_step
|
mutableprivate |
Inverse time step size.
◆ level_set_advection_operator
|
mutableprivate |
Object for the analytical advection of the level set field for 1D simulations.
◆ mapping_info_cells
|
private |
Mapping information for integration over cut cells.
◆ mapping_info_faces
|
private |
Mapping information for integration over cut faces.
◆ mapping_info_interface
|
private |
Mapping information for integration over the phase interface.
◆ multiphase_scratch_data
|
private |
Scratch data for multiphase case.
◆ n_dofs_per_cell
|
private |
Number of DoFs per cell.
◆ time_step
|
mutableprivate |
Current time step size.
◆ visc_ave_weight_phase_gas
|
private |
◆ visc_ave_weight_phase_liquid
|
private |
Weighting factors for Nitsche-type viscous interface flux.
The documentation for this class was generated from the following files:
- include/meltpooldg/compressible_flow/multiphase_operator.hpp
- source/compressible_flow/multiphase_operator.cpp
Generated by