version 0.6.0
type_levelset Module Reference

The level set type.

Functions/Subroutines

subroutine levelset_constructor (self, parameters)
 Construct/Initialize a level set with the given parameters Default values: More...
 
subroutine levelset_set (self, phi)
 Set the levelset to the supplied value. More...
 
subroutine levelset_update_secondary_fields (self)
 Update secondary fields if needed. More...
 
subroutine levelset_compute_band (self)
 Compute the band around the level set. More...
 
subroutine levelset_destructor (self)
 Cleanly deconstruct a level set. More...
 
subroutine levelset_copy (self, levelset_dest)
 Fill a copy of the level set.
 
subroutine levelset_allocate_band (my_levelset)
 Allocate the band array.
 
subroutine levelset_allocate_kinks_map (my_levelset)
 Allocate the kinks map array.
 
subroutine levelset_allocate_volume_fraction (my_levelset)
 Allocate the volume fraction array.
 
subroutine levelset_allocate_normal (my_levelset)
 Allocate the normal array.
 
subroutine levelset_allocate_gradient (my_levelset)
 Allocate the gradient array.
 
subroutine levelset_allocate_gradient_norm (my_levelset)
 Allocate the gradient norm array.
 
subroutine levelset_allocate_curvature (my_levelset)
 Allocate the curvature array.
 
subroutine levelset_apply_bc (self)
 Explicitely apply the boundary conditions. More...
 
subroutine levelset_set_ls_bc (self, ls_boundary_condition)
 Specify new boundary conditions for the level set. More...
 
subroutine levelset_set_vf_bc (self, vf_boundary_condition)
 Specify new boundary conditions for the level set using VF values. More...
 
subroutine levelset_compute_initial_info (self)
 

Function/Subroutine Documentation

◆ levelset_apply_bc()

subroutine type_levelset::levelset_apply_bc ( class(t_levelset), intent(inout)  self)

This routine is, everytime, updating the ls boundary conditions based on the vf boundary conditions, as the ls is implicitly defined.

◆ levelset_compute_band()

subroutine type_levelset::levelset_compute_band ( class(t_levelset), intent(inout)  self)
Parameters
[in,out]selfThe levelset
Note
the band is defined as 1 in the first band width (see parametersband_width), 2 in the second band width and 0 elsewhere.

◆ levelset_constructor()

subroutine type_levelset::levelset_constructor ( class(t_levelset), intent(inout)  self,
type(t_levelset_parameters), intent(in)  parameters 
)
  • Boundary conditions: homogeneous Neumann
    Todo:
    Treat periodic boundaries

◆ levelset_destructor()

subroutine type_levelset::levelset_destructor ( class(t_levelset), intent(inout), target  self)
Todo:
MCO: with modern Fortran, it is no more necessary to unallocate the various arrays

◆ levelset_set()

subroutine type_levelset::levelset_set ( class(t_levelset), intent(inout)  self,
double precision, dimension(:,:,:), intent(in)  phi 
)
Parameters
[in,out]selfthe element
[in]phithe supplied level set
Note
At the same time, compute the levelset band! @TODO MCO: the function compute_initial_info() is not callable before the phase_advection_grid_volume is initialized, hence we cannot call it here when the LS is set by the UI!

◆ levelset_set_ls_bc()

subroutine type_levelset::levelset_set_ls_bc ( class(t_levelset), intent(inout)  self,
class(t_boundary_condition), intent(in)  ls_boundary_condition 
)

This should only be called internaly

See also
levelset_set_vf_bc is the principal routine to use

◆ levelset_set_vf_bc()

subroutine type_levelset::levelset_set_vf_bc ( class(t_levelset), intent(inout)  self,
class(t_boundary_condition), intent(in)  vf_boundary_condition 
)
Warning
the boundary conditions, here, are the one of a volume fraction! (hence, 0 or 1 for Dirichlet type)

◆ levelset_update_secondary_fields()

subroutine type_levelset::levelset_update_secondary_fields ( class(t_levelset), intent(inout)  self)
Parameters
[in,out]selfthe element