ConvectiveKernels< dim, number > Struct Template Reference

Developer Documentation: MeltPoolDG::CompressibleFlow::ConvectiveKernels< dim, number > Struct Template Reference
Developer Documentation
MeltPoolDG::CompressibleFlow::ConvectiveKernels< dim, number > Struct Template Reference

Convective kernel operations for compressible flow solvers. More...

#include <convective_kernels.hpp>

Public Types

using ConservedVariables = ConservedVariablesType< dim, number >
 
using ConservedVariablesGradient = ConservedVariablesGradientType< dim, number >
 

Public Member Functions

 ConvectiveKernels (const OperationData< number > &flow_data, const Material< dim, number > &material)
 Constructor initializing the convective kernel with flow and material properties.
 
DEAL_II_ALWAYS_INLINE ConservedVariablesGradient calculate_convective_flux (const ConservedVariables &conserved_variables) const
 Calculate the convective flux F_c.
 
DEAL_II_ALWAYS_INLINE ConservedVariables calculate_convective_numerical_flux (const ConservedVariables &u_m, const ConservedVariables &u_p, const dealii::Tensor< 1, dim, dealii::VectorizedArray< number > > &normal) const
 Calculate the convective numerical flux F_c^*.
 
DEAL_II_ALWAYS_INLINE ConservedVariablesGradient calculate_jacobian_convective_numerical_flux (const std::pair< ConservedVariables, ConservedVariables > &w_q, const std::pair< ConservedVariables, ConservedVariables > &delta_w_q, const dealii::Tensor< 1, dim, dealii::VectorizedArray< number > > &normal) const
 Compute the linearization of the convective numerical flux with respect to the primary variables.
 
DEAL_II_ALWAYS_INLINE ConservedVariablesGradient calculate_jacobian_convective_flux (const ConservedVariables &w_q, const ConservedVariables &delta_w_q) const
 Compute the linearization of the convective flux with respect to the primary variables.
 

Private Member Functions

ConservedVariablesGradient calculate_jacobian_convective_numerical_flux_jump_term (const std::pair< ConservedVariables, ConservedVariables > &w_q, const std::pair< ConservedVariables, ConservedVariables > &delta_w_q, const dealii::Tensor< 1, dim, dealii::VectorizedArray< number > > &normal) const
 Compute the jump term in the convective numerical flux.
 

Private Attributes

const OperationData< number > & flow_data
 Flow-related parameters.
 
const Material< dim, number > & material
 Material-related parameters.
 
number rs_div_c
 precomputed constant
 

Detailed Description

template<int dim, typename number>
struct MeltPoolDG::CompressibleFlow::ConvectiveKernels< dim, number >

Convective kernel operations for compressible flow solvers.

This struct implements the evaluation of convective 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

template<int dim, typename number >
using MeltPoolDG::CompressibleFlow::ConvectiveKernels< dim, number >::ConservedVariables = ConservedVariablesType<dim, number>

◆ ConservedVariablesGradient

template<int dim, typename number >
using MeltPoolDG::CompressibleFlow::ConvectiveKernels< dim, number >::ConservedVariablesGradient = ConservedVariablesGradientType<dim, number>

Constructor & Destructor Documentation

◆ ConvectiveKernels()

template<int dim, typename number >
MeltPoolDG::CompressibleFlow::ConvectiveKernels< dim, number >::ConvectiveKernels ( const OperationData< number > &  flow_data,
const Material< dim, number > &  material 
)
explicit

Constructor initializing the convective kernel with flow and material properties.

Parameters
flow_dataReference to the flow data object containing simulation-specific parameters.
materialReference to the material model providing thermodynamic properties.

Member Function Documentation

◆ calculate_convective_flux()

template<int dim, typename number >
DEAL_II_ALWAYS_INLINE auto MeltPoolDG::CompressibleFlow::ConvectiveKernels< dim, number >::calculate_convective_flux ( const ConservedVariables conserved_variables) const
inline

Calculate the convective flux F_c.

Parameters
conserved_variablesCurrent values of the conserved variables.
Returns
Convective flux.

◆ calculate_convective_numerical_flux()

template<int dim, typename number >
DEAL_II_ALWAYS_INLINE auto MeltPoolDG::CompressibleFlow::ConvectiveKernels< dim, number >::calculate_convective_numerical_flux ( const ConservedVariables u_m,
const ConservedVariables u_p,
const dealii::Tensor< 1, dim, dealii::VectorizedArray< number > > &  normal 
) const
inline

Calculate the convective numerical flux F_c^*.

Parameters
u_mCurrent values of the conserved variables on the inner face.
u_pCurrent values of the conserved variables on the outer type.
normalOuter facing normal vector.
Returns
Convective numerical flux.

◆ calculate_jacobian_convective_flux()

template<int dim, typename number >
DEAL_II_ALWAYS_INLINE auto MeltPoolDG::CompressibleFlow::ConvectiveKernels< dim, number >::calculate_jacobian_convective_flux ( const ConservedVariables w_q,
const ConservedVariables delta_w_q 
) const
inline

Compute the linearization of the convective flux with respect to the primary variables.

Parameters
w_qPrimary variables.
delta_w_qChange in the primary variables.
Returns
Linearized convective flux.

◆ calculate_jacobian_convective_numerical_flux()

template<int dim, typename number >
DEAL_II_ALWAYS_INLINE auto MeltPoolDG::CompressibleFlow::ConvectiveKernels< dim, number >::calculate_jacobian_convective_numerical_flux ( const std::pair< ConservedVariables, ConservedVariables > &  w_q,
const std::pair< ConservedVariables, ConservedVariables > &  delta_w_q,
const dealii::Tensor< 1, dim, dealii::VectorizedArray< number > > &  normal 
) const
inline

Compute the linearization of the convective numerical flux with respect to the primary variables.

Parameters
w_qPrimary variables on the inner (first) and outer (second) face.
delta_w_qChange in the primary variables n the inner (first) and outer (second) face.
normalOuter facing normal vector.
Returns
Linearized convective numerical flux.

◆ calculate_jacobian_convective_numerical_flux_jump_term()

template<int dim, typename number >
DEAL_II_ALWAYS_INLINE auto MeltPoolDG::CompressibleFlow::ConvectiveKernels< dim, number >::calculate_jacobian_convective_numerical_flux_jump_term ( const std::pair< ConservedVariables, ConservedVariables > &  w_q,
const std::pair< ConservedVariables, ConservedVariables > &  delta_w_q,
const dealii::Tensor< 1, dim, dealii::VectorizedArray< number > > &  normal 
) const
inlineprivate

Compute the jump term in the convective numerical flux.

For the used Lax-Friedrichs flux the jump term is given by lambda/2 times the jump in the primary variables.

Parameters
w_qPrimary variables on the inner (first) and outer (second) face.
delta_w_qChange in the primary variables n the inner (first) and outer (second) face.
normalOuter facing normal vector.
Returns
Jump term of the Lax-Friedrichs flux.

Member Data Documentation

◆ flow_data

template<int dim, typename number >
const OperationData<number>& MeltPoolDG::CompressibleFlow::ConvectiveKernels< dim, number >::flow_data
private

Flow-related parameters.

◆ material

template<int dim, typename number >
const Material<dim, number>& MeltPoolDG::CompressibleFlow::ConvectiveKernels< dim, number >::material
private

Material-related parameters.

◆ rs_div_c

template<int dim, typename number >
number MeltPoolDG::CompressibleFlow::ConvectiveKernels< dim, number >::rs_div_c
private

precomputed constant


The documentation for this struct was generated from the following file: