version 0.6.0
Loading...
Searching...
No Matches

Volume fraction methods for level sets. More...

Topics

 Heaviside Volume Fraction
 Regularization tools.
 
 Min&Gibou Volume Fraction
 Volume fraction computation with sharp 'Min&Gibou' approach.
 
 Towers Volume Fraction
 Volume fraction computations with the Towers' Heaviside approach.
 

Namespaces

module  mod_lsm_geometry_dirac
 Dirac mass approximation.
 
module  mod_lsm_volume_fraction
 Wrappers for volume fraction computation.
 
module  mod_lsm_volume_fraction_bc
 Compute the volume fraction boundary conditions corresponding to the level set's bc.
 

Functions

subroutine mod_lsm_geometry_dirac::lsm_compute_dirac (self, dirac)
 Compute the dirac mass associated to the level set.
 
subroutine mod_lsm_volume_fraction::levelset_compute_volume_fraction_inline (levelset, vf_boundary_condition)
 Compute the volume fraction within the object.
 
subroutine mod_lsm_volume_fraction::levelset_compute_volume_fraction_outline (levelset, vf_boundary_condition, volume_fraction)
 Compute the volume fraction with a selected method.
 
subroutine mod_lsm_volume_fraction_bc::translate_vf_bc_to_ls_bc (phi, vf_boundary_condition, ls_boundary_condition)
 Translate VF boundary conditions to equivalent LS boundary conditions.
 

Detailed Description

The volume fraction (VF) can be computed from the LS with several strategies. We furnish 3 methods:

Function Documentation

◆ translate_vf_bc_to_ls_bc()

subroutine mod_lsm_volume_fraction_bc::translate_vf_bc_to_ls_bc ( double precision, dimension(:,:,:), intent(in) phi,
type(t_boundary_condition), intent(in) vf_boundary_condition,
type(t_boundary_condition), intent(inout) ls_boundary_condition )
Note
Dirichlet VF BNDC (called inlet in Notus) are given a value of 1 or 0. The associated LS BNDC is a bit tricky, as the inside/outside a phase is defined implicitly by the LS sign. To do so, we first extrapolate from the inside the LS towards the boundary and, depending on the sign, make sure that the LS BNDC is of the correct sign. Formulae:

\[ \begin{cases} max\left(\delta x,\phi_{e}\right) & \text{if \ensuremath{VF=0}}\\ min\left(-\delta x,\phi_{e}\right) & \text{if \ensuremath{VF=1}}\\ 0 & \text{otherwise} \end{cases} \]

where \( \phi_e \) is the extraplated value of the LS at the boundary.
The periodic/symmetric bndc are dealt with fill_ghost_nodes
Todo
MCO: deal with Neumann bndc (impose Dirichlet with distance function)
Note
The extrapolation of the normal component at the boundary is done at first order. This works ok for now, but we might consider higher order (geometrical) approximation. High order extrapolation doesn's seem to work well with reinitialization, so first order is used.