IncompressibleNewtonianFluidEvaporationMaterial< dim, number > Class Template Reference

Developer Documentation: MeltPoolDG::Evaporation::IncompressibleNewtonianFluidEvaporationMaterial< dim, number > Class Template Reference
Developer Documentation
MeltPoolDG::Evaporation::IncompressibleNewtonianFluidEvaporationMaterial< dim, number > Class Template Reference

#include <incompressible_newtonian_evaporation_material.hpp>

Inheritance diagram for MeltPoolDG::Evaporation::IncompressibleNewtonianFluidEvaporationMaterial< dim, number >:
[legend]
Collaboration diagram for MeltPoolDG::Evaporation::IncompressibleNewtonianFluidEvaporationMaterial< dim, number >:
[legend]

Public Member Functions

 IncompressibleNewtonianFluidEvaporationMaterial (const ScratchData< dim, dim, number > &scratch_data, const std::function< const dealii::VectorizedArray< number > &(const unsigned int cell, const unsigned int q)> get_viscosity, const BlockVectorType &normal_vector, const dealii::LinearAlgebra::distributed::Vector< number > &heaviside, const unsigned int normal_dof_idx, const unsigned int ls_hanging_nodes_dof_idx, const unsigned int velocity_quad_idx)
 
void reinit (const dealii::Tensor< 2, dim, dealii::VectorizedArray< number > > &velocity_gradient, const unsigned int cell_idx, const unsigned int quad_idx) final
 
dealii::Tensor< 2, dim, dealii::VectorizedArray< number > > get_tau () final
 
dealii::Tensor< 2, dim, dealii::VectorizedArray< number > > get_vmult_d_tau_d_grad_vel () final
 
void update_ghost_values () final
 
void zero_out_ghost_values () final
 
- Public Member Functions inherited from MeltPoolDG::Flow::IncompressibleMaterialBase< dim, number >
virtual ~IncompressibleMaterialBase ()=default
 

Private Types

using BlockVectorType = dealii::LinearAlgebra::distributed::BlockVector< number >
 

Private Attributes

const ScratchData< dim, dim, number > & scratch_data
 
const std::function< const dealii::VectorizedArray< number > &(const unsigned int cell, const unsigned int q)> get_viscosity
 
const BlockVectorTypenormal_vector
 
const dealii::LinearAlgebra::distributed::Vector< number > & heaviside
 
const unsigned int normal_dof_idx
 
const unsigned int ls_hanging_nodes_dof_idx
 
const unsigned int velocity_quad_idx
 
FECellIntegrator< dim, dim, number > normal_vals
 
FECellIntegrator< dim, 1, number > ls_vals
 
dealii::Tensor< 2, dim, dealii::VectorizedArray< number > > grad_u
 
dealii::VectorizedArray< number > div_u
 
dealii::VectorizedArray< number > viscosity
 
dealii::Tensor< 1, dim, dealii::VectorizedArray< number > > normal
 
dealii::VectorizedArray< number > hs
 
unsigned int cell
 
bool ls_update_ghosts = true
 
bool normal_update_ghosts = true
 

Detailed Description

template<int dim, typename number>
class MeltPoolDG::Evaporation::IncompressibleNewtonianFluidEvaporationMaterial< dim, number >

Class for the shear stress computation of an incompressible vapor/liquid mixture, where the velocity field is not divergence-free in the interfacial region. The intention is to correct the rate-of-deformation tensor to be nearly deviatoric.

It is assumed that the stress computes as follows

σ = -p * I + 2 * μ * (D - tr(D) * n⊗ n)

with the Cauchy stress tensor σ, the pressure p, the second-order identity tensor I, the dynamic viscosity μ, the rate-of-deformation tensor

D = 0.5 * (∇u + (∇u)^T),

the interfacial unit normal vector n and the dyadic product ⊗ .

Member Typedef Documentation

◆ BlockVectorType

template<int dim, typename number >
using MeltPoolDG::Evaporation::IncompressibleNewtonianFluidEvaporationMaterial< dim, number >::BlockVectorType = dealii::LinearAlgebra::distributed::BlockVector<number>
private

Constructor & Destructor Documentation

◆ IncompressibleNewtonianFluidEvaporationMaterial()

template<int dim, typename number >
MeltPoolDG::Evaporation::IncompressibleNewtonianFluidEvaporationMaterial< dim, number >::IncompressibleNewtonianFluidEvaporationMaterial ( const ScratchData< dim, dim, number > &  scratch_data,
const std::function< const dealii::VectorizedArray< number > &(const unsigned int cell, const unsigned int q)>  get_viscosity,
const BlockVectorType normal_vector,
const dealii::LinearAlgebra::distributed::Vector< number > &  heaviside,
const unsigned int  normal_dof_idx,
const unsigned int  ls_hanging_nodes_dof_idx,
const unsigned int  velocity_quad_idx 
)
inline

Member Function Documentation

◆ get_tau()

template<int dim, typename number >
dealii::Tensor< 2, dim, dealii::VectorizedArray< number > > MeltPoolDG::Evaporation::IncompressibleNewtonianFluidEvaporationMaterial< dim, number >::get_tau ( )
inlinefinalvirtual

Return the deviatoric stress τ for the given velocity gradient ∇u, set by reinit()

τ(∇u) = 2 * μ * (D - tr(D) * n⊗ n)

with the dynamic viscosity μ, the rate-of-deformation tensor

D = 0.5 * (∇u + (∇u)^T)

the interfacial unit normal vector n and the dyadic product ⊗ .

Implements MeltPoolDG::Flow::IncompressibleMaterialBase< dim, number >.

◆ get_vmult_d_tau_d_grad_vel()

template<int dim, typename number >
dealii::Tensor< 2, dim, dealii::VectorizedArray< number > > MeltPoolDG::Evaporation::IncompressibleNewtonianFluidEvaporationMaterial< dim, number >::get_vmult_d_tau_d_grad_vel ( )
inlinefinalvirtual

Return the material tangent of the deviatoric stress and perform a vmult with the gradient of the nodal DoF values δu, set by reinit(),

∂ τ ---— * ∇N * δu ∂ ∇u |________| material tangent

with the shape functions N and the material tangent written in index notation

∂ τ --— = C = 2 * μ * (δ - δ * n n ) ∂ ∇u ijkl ijkl ij k l

with the Kronecker delta δ.

Implements MeltPoolDG::Flow::IncompressibleMaterialBase< dim, number >.

◆ reinit()

template<int dim, typename number >
void MeltPoolDG::Evaporation::IncompressibleNewtonianFluidEvaporationMaterial< dim, number >::reinit ( const dealii::Tensor< 2, dim, dealii::VectorizedArray< number > > &  velocity_gradient,
const unsigned int  cell_idx,
const unsigned int  quad_idx 
)
inlinefinalvirtual

Reinit function to be used to compute quadrature point variables (grad_u, div_u, viscosity, normal). The gradient of the velocity vector velocity_gradient, the current cell index cell_idx and the current quadrature point index quad_idx are known.

Implements MeltPoolDG::Flow::IncompressibleMaterialBase< dim, number >.

◆ update_ghost_values()

template<int dim, typename number >
void MeltPoolDG::Evaporation::IncompressibleNewtonianFluidEvaporationMaterial< dim, number >::update_ghost_values ( )
inlinefinalvirtual

Update ghost values of the vectors, to be used to compute the deviatoric stress.

Reimplemented from MeltPoolDG::Flow::IncompressibleMaterialBase< dim, number >.

◆ zero_out_ghost_values()

template<int dim, typename number >
void MeltPoolDG::Evaporation::IncompressibleNewtonianFluidEvaporationMaterial< dim, number >::zero_out_ghost_values ( )
inlinefinalvirtual

Zero out ghost values of the vectors, to be used to compute the deviatoric stress.

Reimplemented from MeltPoolDG::Flow::IncompressibleMaterialBase< dim, number >.

Member Data Documentation

◆ cell

template<int dim, typename number >
unsigned int MeltPoolDG::Evaporation::IncompressibleNewtonianFluidEvaporationMaterial< dim, number >::cell
private

◆ div_u

template<int dim, typename number >
dealii::VectorizedArray<number> MeltPoolDG::Evaporation::IncompressibleNewtonianFluidEvaporationMaterial< dim, number >::div_u
private

◆ get_viscosity

template<int dim, typename number >
const std::function<const dealii::VectorizedArray<number> &(const unsigned int cell, const unsigned int q)> MeltPoolDG::Evaporation::IncompressibleNewtonianFluidEvaporationMaterial< dim, number >::get_viscosity
private

◆ grad_u

template<int dim, typename number >
dealii::Tensor<2, dim, dealii::VectorizedArray<number> > MeltPoolDG::Evaporation::IncompressibleNewtonianFluidEvaporationMaterial< dim, number >::grad_u
private

◆ heaviside

template<int dim, typename number >
const dealii::LinearAlgebra::distributed::Vector<number>& MeltPoolDG::Evaporation::IncompressibleNewtonianFluidEvaporationMaterial< dim, number >::heaviside
private

◆ hs

template<int dim, typename number >
dealii::VectorizedArray<number> MeltPoolDG::Evaporation::IncompressibleNewtonianFluidEvaporationMaterial< dim, number >::hs
private

◆ ls_hanging_nodes_dof_idx

template<int dim, typename number >
const unsigned int MeltPoolDG::Evaporation::IncompressibleNewtonianFluidEvaporationMaterial< dim, number >::ls_hanging_nodes_dof_idx
private

◆ ls_update_ghosts

template<int dim, typename number >
bool MeltPoolDG::Evaporation::IncompressibleNewtonianFluidEvaporationMaterial< dim, number >::ls_update_ghosts = true
mutableprivate

◆ ls_vals

template<int dim, typename number >
FECellIntegrator<dim, 1, number> MeltPoolDG::Evaporation::IncompressibleNewtonianFluidEvaporationMaterial< dim, number >::ls_vals
private

◆ normal

template<int dim, typename number >
dealii::Tensor<1, dim, dealii::VectorizedArray<number> > MeltPoolDG::Evaporation::IncompressibleNewtonianFluidEvaporationMaterial< dim, number >::normal
private

◆ normal_dof_idx

template<int dim, typename number >
const unsigned int MeltPoolDG::Evaporation::IncompressibleNewtonianFluidEvaporationMaterial< dim, number >::normal_dof_idx
private

◆ normal_update_ghosts

template<int dim, typename number >
bool MeltPoolDG::Evaporation::IncompressibleNewtonianFluidEvaporationMaterial< dim, number >::normal_update_ghosts = true
mutableprivate

◆ normal_vals

template<int dim, typename number >
FECellIntegrator<dim, dim, number> MeltPoolDG::Evaporation::IncompressibleNewtonianFluidEvaporationMaterial< dim, number >::normal_vals
private

◆ normal_vector

template<int dim, typename number >
const BlockVectorType& MeltPoolDG::Evaporation::IncompressibleNewtonianFluidEvaporationMaterial< dim, number >::normal_vector
private

◆ scratch_data

template<int dim, typename number >
const ScratchData<dim, dim, number>& MeltPoolDG::Evaporation::IncompressibleNewtonianFluidEvaporationMaterial< dim, number >::scratch_data
private

◆ velocity_quad_idx

template<int dim, typename number >
const unsigned int MeltPoolDG::Evaporation::IncompressibleNewtonianFluidEvaporationMaterial< dim, number >::velocity_quad_idx
private

◆ viscosity

template<int dim, typename number >
dealii::VectorizedArray<number> MeltPoolDG::Evaporation::IncompressibleNewtonianFluidEvaporationMaterial< dim, number >::viscosity
private

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