BrinkmanPenalizationResidualContribution< dim, number, ObstacleType > Struct Template Reference

Developer Documentation: MeltPoolDG::BrinkmanPenalizationResidualContribution< dim, number, ObstacleType > Struct Template Reference
Developer Documentation
MeltPoolDG::BrinkmanPenalizationResidualContribution< dim, number, ObstacleType > Struct Template Referencefinal

#include <brinkman_penalization.hpp>

Inheritance diagram for MeltPoolDG::BrinkmanPenalizationResidualContribution< dim, number, ObstacleType >:
[legend]
Collaboration diagram for MeltPoolDG::BrinkmanPenalizationResidualContribution< dim, number, ObstacleType >:
[legend]

Public Types

using ConservedVariablesType = CompressibleFlow::ConservedVariablesType< dim, number >
 

Public Member Functions

 BrinkmanPenalizationResidualContribution (const BrinkmanPenalizationData< number > &brinkman_penalization_data, const std::shared_ptr< MatrixFreeCellBatchParticleCache< dim, number, ObstacleType > > &cell_cache)
 
ConservedVariablesType value (number time_step_size, const unsigned int cell_batch_id, const dealii::Point< dim, dealii::VectorizedArray< number > > &q_point, const ConservedVariablesType &w_q) override
 
- Public Member Functions inherited from MeltPoolDG::CompressibleFlow::ExternalFlowForce< dim, number, n_species >
virtual ~ExternalFlowForce ()=default
 
virtual ConservedVariablesType< dim, number, n_species > value (number time_step_size, unsigned int cell_batch_id, const dealii::Point< dim, dealii::VectorizedArray< number > > &points, const ConservedVariablesType< dim, number, n_species > &w)=0
 

Private Attributes

const BrinkmanPenalizationData< number > brinkman_penalization_data
 Brinkman penalization data.
 
const std::shared_ptr< MatrixFreeCellBatchParticleCache< dim, number, ObstacleType > > cell_cache
 Cache for storing the particles relevant to each cell batch in the matrix-free context.
 

Detailed Description

template<int dim, typename number, typename ObstacleType>
struct MeltPoolDG::BrinkmanPenalizationResidualContribution< dim, number, ObstacleType >

Implementation of the Brinkman penalization force for compressible flows advanced in time using explicit time integration.

The penalization force is computed as

\[ f^{vp}_\rho &= 0,\\ f^{vp}_\bm{m} &= \frac{\xi}{\eta} \left(\rho_f \mathbf{u}_s - \mathbf{m}_f \right), \\ f^{vp}_e &= \frac{\xi}{\eta} \left(\rho_f \mathbf{u}_s - \mathbf{m}_f \right)\frac{m_j}{\rho}, \\ \]

where:

  • \(\xi\) is the mask function,
  • \(\eta\) is the permeability,
  • \(\rho_f\) is the local fluid density,
  • \(\mathbf{u}_s\) is the local obstacle velocity,
  • \(\mathbf{m}_f\) is the current fluid momentum.

Member Typedef Documentation

◆ ConservedVariablesType

template<int dim, typename number , typename ObstacleType >
using MeltPoolDG::BrinkmanPenalizationResidualContribution< dim, number, ObstacleType >::ConservedVariablesType = CompressibleFlow::ConservedVariablesType<dim, number>

Constructor & Destructor Documentation

◆ BrinkmanPenalizationResidualContribution()

template<int dim, typename number , typename ObstacleType >
MeltPoolDG::BrinkmanPenalizationResidualContribution< dim, number, ObstacleType >::BrinkmanPenalizationResidualContribution ( const BrinkmanPenalizationData< number > &  brinkman_penalization_data,
const std::shared_ptr< MatrixFreeCellBatchParticleCache< dim, number, ObstacleType > > &  cell_cache 
)

Constructor that stores relevant data internally and uses the default mask function for the penalty term computation. The default mask function returns 1 for points inside the obstacle volume and 0 outside.

Parameters
brinkman_penalization_dataData required for computing the Brinkman penalization term.
cell_cacheCache for retrieving the particles relevant to each cell batch.

Member Function Documentation

◆ value()

template<int dim, typename number , typename ObstacleType >
auto MeltPoolDG::BrinkmanPenalizationResidualContribution< dim, number, ObstacleType >::value ( number  time_step_size,
const unsigned int  cell_batch_id,
const dealii::Point< dim, dealii::VectorizedArray< number > > &  q_point,
const ConservedVariablesType w_q 
)
override

This function evaluates the Brinkman penalty term at a set of vectorized points, typically quadrature points. Since successive calls often operate on the same set of cells, the function internally caches the obstacles relevant to the provided cells. The cache is updated automatically if the cell set differs from that used in the previous call.

Parameters
time_step_sizeCurrent time step size.
cell_batch_idID of the cell batch for which to compute the residual contribution.
q_pointCoordinates at which the penalty term is to be evaluated.
w_qConserved variables evaluated at the given coordinates.
Returns
The computed Brinkman penalty term at the specified points.

Member Data Documentation

◆ brinkman_penalization_data

template<int dim, typename number , typename ObstacleType >
const BrinkmanPenalizationData<number> MeltPoolDG::BrinkmanPenalizationResidualContribution< dim, number, ObstacleType >::brinkman_penalization_data
private

Brinkman penalization data.

◆ cell_cache

template<int dim, typename number , typename ObstacleType >
const std::shared_ptr<MatrixFreeCellBatchParticleCache<dim, number, ObstacleType> > MeltPoolDG::BrinkmanPenalizationResidualContribution< dim, number, ObstacleType >::cell_cache
private

Cache for storing the particles relevant to each cell batch in the matrix-free context.


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