BrinkmanPenalizationJacobianContribution< dim, number, ObstacleType > Struct Template Reference

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

#include <brinkman_penalization.hpp>

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

Public Types

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

Public Member Functions

 BrinkmanPenalizationJacobianContribution (const BrinkmanPenalizationData< number > &brinkman_penalization_data, const std::shared_ptr< MatrixFreeCellBatchParticleCache< dim, number, ObstacleType > > &cell_cache)
 
ConservedVariablesType value (number time_step_size, unsigned int cell_batch_id, const dealii::Point< dim, dealii::VectorizedArray< number > > &q_point, const ConservedVariablesType &w_q, const ConservedVariablesType &delta_w_q) override
 
- Public Member Functions inherited from MeltPoolDG::CompressibleFlow::ExternalFlowForceJacobian< dim, number, n_species >
virtual ~ExternalFlowForceJacobian ()=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, const ConservedVariablesType< dim, number, n_species > &delta_w)=0
 

Private Attributes

const BrinkmanPenalizationData< number > brinkman_penalization_data
 Brinkman penalization data.
 
const std::shared_ptr< MatrixFreeCellBatchParticleCache< dim, number, ObstacleType > > cell_cache
 Cached cell data for computing Brinkman penalty term.
 

Detailed Description

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

Implementation of the Brinkman penalization force Jacobian for compressible flows.

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::BrinkmanPenalizationJacobianContribution< dim, number, ObstacleType >::ConservedVariablesType = CompressibleFlow::ConservedVariablesType<dim, number>

Constructor & Destructor Documentation

◆ BrinkmanPenalizationJacobianContribution()

template<int dim, typename number , typename ObstacleType >
MeltPoolDG::BrinkmanPenalizationJacobianContribution< dim, number, ObstacleType >::BrinkmanPenalizationJacobianContribution ( 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::BrinkmanPenalizationJacobianContribution< dim, number, ObstacleType >::value ( number  time_step_size,
unsigned int  cell_batch_id,
const dealii::Point< dim, dealii::VectorizedArray< number > > &  q_point,
const ConservedVariablesType w_q,
const ConservedVariablesType delta_w_q 
)
override

This function evaluates the Jacobian of 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 Jacobian contribution.
q_pointCoordinates at which the penalty term is to be evaluated.
w_qConserved variables evaluated at the given coordinates.
delta_w_qChange in conserved variables 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::BrinkmanPenalizationJacobianContribution< 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::BrinkmanPenalizationJacobianContribution< dim, number, ObstacleType >::cell_cache
private

Cached cell data for computing Brinkman penalty term.


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