DGDiffusionOperator< dim, number, Kernel, VectorizedArrayType > Struct Template Reference

Developer Documentation: MeltPoolDG::Utils::DGDiffusionOperator< dim, number, Kernel, VectorizedArrayType > Struct Template Reference
Developer Documentation
MeltPoolDG::Utils::DGDiffusionOperator< dim, number, Kernel, VectorizedArrayType > Struct Template Reference

#include <dg_generic_convection_diffusion_worker.hpp>

Classes

struct  FaceFlux
 

Public Types

using ValueType = typename Kernel::ValueType
 
using GradientType = typename Kernel::GradientType
 

Static Public Member Functions

static GradientType cell (const ValueType &u, const GradientType &grad_u, const Kernel &kernel)
 
static FaceFlux face (const ValueType &u_m, const ValueType &u_p, const GradientType &grad_u_m, const GradientType &grad_u_p, const dealii::Tensor< 1, dim, VectorizedArrayType > &normal, const VectorizedArrayType penalty_parameter, const Kernel &kernel)
 

Detailed Description

template<int dim, typename number, DiffusionKernelType Kernel, typename VectorizedArrayType = dealii::VectorizedArray<number>>
struct MeltPoolDG::Utils::DGDiffusionOperator< dim, number, Kernel, VectorizedArrayType >

Generic discontinuous Galerkin operator for diffusion problems, based on the symmetric interior penalty method. The physical diffusive flux is defined by a user-provided kernel, which specifies how the flux depends on the local solution value and its gradient.

Member Typedef Documentation

◆ GradientType

template<int dim, typename number , DiffusionKernelType Kernel, typename VectorizedArrayType = dealii::VectorizedArray<number>>
using MeltPoolDG::Utils::DGDiffusionOperator< dim, number, Kernel, VectorizedArrayType >::GradientType = typename Kernel::GradientType

◆ ValueType

template<int dim, typename number , DiffusionKernelType Kernel, typename VectorizedArrayType = dealii::VectorizedArray<number>>
using MeltPoolDG::Utils::DGDiffusionOperator< dim, number, Kernel, VectorizedArrayType >::ValueType = typename Kernel::ValueType

Member Function Documentation

◆ cell()

template<int dim, typename number , DiffusionKernelType Kernel, typename VectorizedArrayType = dealii::VectorizedArray<number>>
static GradientType MeltPoolDG::Utils::DGDiffusionOperator< dim, number, Kernel, VectorizedArrayType >::cell ( const ValueType u,
const GradientType grad_u,
const Kernel &  kernel 
)
inlinestatic

Compute the diffusive flux contribution at a cell quadrature point using the provided kernel.

Parameters
uLocal values of the conserved variables at the quadrature point.
grad_uLocal gradients of the conserved variables at the quadrature point.
kernelUser-provided kernel defining how to compute the diffusive flux from the local solution values and gradients.
Returns
Diffusive flux contribution for the cell integral.

◆ face()

template<int dim, typename number , DiffusionKernelType Kernel, typename VectorizedArrayType = dealii::VectorizedArray<number>>
static FaceFlux MeltPoolDG::Utils::DGDiffusionOperator< dim, number, Kernel, VectorizedArrayType >::face ( const ValueType u_m,
const ValueType u_p,
const GradientType grad_u_m,
const GradientType grad_u_p,
const dealii::Tensor< 1, dim, VectorizedArrayType > &  normal,
const VectorizedArrayType  penalty_parameter,
const Kernel &  kernel 
)
inlinestatic

Compute the diffusive flux contribution at a face quadrature point using the symmetric interior penalty method based on the provided kernel.

Parameters
u_mLocal values of the conserved variables on the inner face.
u_pLocal values of the conserved variables on the outer face.
grad_u_mLocal gradients of the conserved variables on the inner face.
grad_u_pLocal gradients of the conserved variables on the outer face.
normalOuter facing normal vector at the face quadrature point.
penalty_parameterLocal value of the interior penalty parameter at the face quadrature point.
kernelUser-provided kernel defining how to compute the diffusive flux from the local solution values and gradients.
Returns
Diffusive flux contribution for the face integral, including both inner and outer face values and gradients.

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