StokesLawFluidForce< dim, number, ObstacleType > Struct Template Reference

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

#include <stokes_law.hpp>

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

Public Types

using ConservedVariablesType = CompressibleFlow::ConservedVariablesType< dim, number >
 
using VectorType = dealii::LinearAlgebra::distributed::Vector< number >
 

Public Member Functions

 StokesLawFluidForce (const VectorType &solution, ObstacleField< dim, number, ObstacleType > &obstacle_handler, const MatrixFreeContext< dim, number > &matrix_free, const number dynamic_viscosity)
 
ConservedVariablesType value (number time_step_size, 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 VectorTypesolution
 Solution of the flow field.
 
const number dynamic_viscosity
 Dynamic viscosity of the fluid.
 
const MatrixFreeContext< dim, number > matrix_free
 
ObstacleField< dim, number, ObstacleType > & obstacle_handler
 Reference to the obstacle handler managing obstacles in the domain.
 

Detailed Description

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

This class applies a penalty force to the fluid equations to account for the presence of particles. The penalty term is derived from Stokes' law and effectively introduces the Stokes drag as a forcing term within the fluid momentum equations.

The approach follows the method proposed by Chen et al. (https://doi.org/10.1016/j.actamat.2020.06.033) in the context of vapor–particle interactions during metal additive manufacturing.

Member Typedef Documentation

◆ ConservedVariablesType

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

◆ VectorType

template<int dim, typename number , typename ObstacleType >
using MeltPoolDG::StokesLawFluidForce< dim, number, ObstacleType >::VectorType = dealii::LinearAlgebra::distributed::Vector<number>

Constructor & Destructor Documentation

◆ StokesLawFluidForce()

template<int dim, typename number , typename ObstacleType >
MeltPoolDG::StokesLawFluidForce< dim, number, ObstacleType >::StokesLawFluidForce ( const VectorType solution,
ObstacleField< dim, number, ObstacleType > &  obstacle_handler,
const MatrixFreeContext< dim, number > &  matrix_free,
const number  dynamic_viscosity 
)

Constructor that stores relevant data internally.

Parameters
solutionReference to the solution of the flow field.
obstacle_handlerReference to the obstacle handler managing obstacles in the domain.
dynamic_viscosityDynamic viscosity of the fluid.

Member Function Documentation

◆ value()

template<int dim, typename number , typename ObstacleType >
auto MeltPoolDG::StokesLawFluidForce< 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 
)
override

This function computes the penalty term for the cells in the given cell batch. The method applied here restricts the penalty force to the cell that contains the corresponding particle center. Using Stokes' law, the hydrodynamic force on the particle and, by Newton’s third law, the equal and opposite force exerted on the fluid, is evaluated and incorporated as a penalty term in the fluid momentum equations.

Parameters
time_step_sizeThe current time-step size.
cell_batch_idThe ID of the cell batch for which to compute the penalty term.
q_pointCoordinates at which the penalty term is evaluated.
w_qConserved variables evaluated at the given coordinates.
Returns
The computed penalty term at the specified points.

Member Data Documentation

◆ dynamic_viscosity

template<int dim, typename number , typename ObstacleType >
const number MeltPoolDG::StokesLawFluidForce< dim, number, ObstacleType >::dynamic_viscosity
private

Dynamic viscosity of the fluid.

◆ matrix_free

template<int dim, typename number , typename ObstacleType >
const MatrixFreeContext<dim, number> MeltPoolDG::StokesLawFluidForce< dim, number, ObstacleType >::matrix_free
private

Data on the matrix free context associated with the compressible flow solver for which the penalty force is computed.

◆ obstacle_handler

template<int dim, typename number , typename ObstacleType >
ObstacleField<dim, number, ObstacleType>& MeltPoolDG::StokesLawFluidForce< dim, number, ObstacleType >::obstacle_handler
private

Reference to the obstacle handler managing obstacles in the domain.

◆ solution

template<int dim, typename number , typename ObstacleType >
const VectorType& MeltPoolDG::StokesLawFluidForce< dim, number, ObstacleType >::solution
private

Solution of the flow field.


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