0.6.0
Loading...
Searching...
No Matches
type_levelset::t_levelset Type Reference
+ Inheritance diagram for type_levelset::t_levelset:

Public Member Functions

procedure construct (self, parameters)
 Construct/Initialize a level set with the given parameters Default values:
 
procedure destruct (self)
 Cleanly deconstruct a level set.
 
procedure copy (self, levelset_dest)
 Fill a copy of the level set.
 
procedure set (self, phi)
 Set the levelset to the supplied value.
 
procedure set_vf_bc (self, vf_boundary_condition)
 Specify new boundary conditions for the level set using VF values.
 
procedure apply_bc (self)
 Explicitely apply the boundary conditions.
 
procedure update_secondary_fields (self)
 Update secondary fields if needed.
 
procedure compute_band (self)
 Compute the band around the level set.
 
procedure compute_kinks_map levelset_compute_kinks_map
 
procedure reinitialize compute_levelset_reinitialization
 
procedure compute_initial_info (self)
 
procedure, pass allocate_band (my_levelset)
 Allocate the band array.
 
procedure, pass allocate_volume_fraction (my_levelset)
 Allocate the volume fraction array.
 
procedure, pass allocate_normal (my_levelset)
 Allocate the normal array.
 
procedure, pass allocate_gradient (my_levelset)
 Allocate the gradient array.
 
procedure, pass allocate_gradient_norm (my_levelset)
 Allocate the gradient norm array.
 
procedure, pass allocate_curvature (my_levelset)
 Allocate the curvature array.
 
procedure, pass allocate_kinks_map (my_levelset)
 Allocate the kinks map array.
 

Public Attributes

double precision, dimension(:,:,:), allocatable data
 
type(t_boundary_conditionls_boundary_condition
 Boundary conditions.
 
type(t_boundary_conditionvf_boundary_condition
 
integer, dimension(:,:,:), allocatable band
 
double precision, dimension(:,:,:), allocatable volume_fraction
 
double precision, dimension(:,:,:,:), allocatable normal
 The normal is stored as (nx,ny,nz,nd)
 
double precision, dimension(:,:,:,:), allocatable gradient_t
 The gradient is stored as (nx,ny,nz,nd) (not like the gradient)
 
double precision, dimension(:,:,:), allocatable gradient_norm
 
double precision, dimension(:,:,:), allocatable curvature
 
integer, dimension(:,:,:), allocatable kinks_map
 
logical need_to_update_secondary_fields = .true.
 
type(t_levelset_parametersparameters
 
type(t_fv_fluxflux_type = default_flux_lw
 
type(t_fv_fluxsee
 
type(t_fv_fluxmod_fv_fluxes
 
type(t_particle_listparticles_list
 
double precision initial_volume
 
double precision the
 
double precision initial
 
double precision total
 
double precision volume
 
double precision initial_surface
 
double precision surface
 

Private Member Functions

procedure, private set_ls_bc (self, ls_boundary_condition)
 Specify new boundary conditions for the level set.
 

Member Function/Subroutine Documentation

◆ allocate_band()

procedure, pass type_levelset::t_levelset::allocate_band ( class(t_levelset), intent(inout) my_levelset)

Allocate the band array.

◆ allocate_curvature()

procedure, pass type_levelset::t_levelset::allocate_curvature ( class(t_levelset), intent(inout) my_levelset)

Allocate the curvature array.

◆ allocate_gradient()

procedure, pass type_levelset::t_levelset::allocate_gradient ( class(t_levelset), intent(inout) my_levelset)

Allocate the gradient array.

◆ allocate_gradient_norm()

procedure, pass type_levelset::t_levelset::allocate_gradient_norm ( class(t_levelset), intent(inout) my_levelset)

Allocate the gradient norm array.

◆ allocate_kinks_map()

procedure, pass type_levelset::t_levelset::allocate_kinks_map ( class(t_levelset), intent(inout) my_levelset)

Allocate the kinks map array.

◆ allocate_normal()

procedure, pass type_levelset::t_levelset::allocate_normal ( class(t_levelset), intent(inout) my_levelset)

Allocate the normal array.

◆ allocate_volume_fraction()

procedure, pass type_levelset::t_levelset::allocate_volume_fraction ( class(t_levelset), intent(inout) my_levelset)

Allocate the volume fraction array.

◆ apply_bc()

procedure type_levelset::t_levelset::apply_bc ( class(t_levelset), intent(inout) self)

Explicitely apply the boundary conditions.

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

◆ compute_band()

procedure type_levelset::t_levelset::compute_band ( class(t_levelset), intent(inout) self)

Compute the band around the level set.

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.

◆ compute_initial_info()

procedure type_levelset::t_levelset::compute_initial_info ( class(t_levelset), intent(inout) self)

◆ compute_kinks_map()

procedure type_levelset::t_levelset::compute_kinks_map

◆ construct()

procedure type_levelset::t_levelset::construct ( class(t_levelset), intent(inout) self,
type(t_levelset_parameters), intent(in) parameters )

Construct/Initialize a level set with the given parameters Default values:

  • Boundary conditions: homogeneous Neumann
    Todo
    Treat periodic boundaries

◆ copy()

procedure type_levelset::t_levelset::copy ( class(t_levelset), intent(in) self,
class(t_levelset), intent(inout) levelset_dest )

Fill a copy of the level set.

◆ destruct()

procedure type_levelset::t_levelset::destruct ( class(t_levelset), intent(inout), target self)

Cleanly deconstruct a level set.

Todo
MCO: with modern Fortran, it is no more necessary to unallocate the various arrays

◆ reinitialize()

procedure type_levelset::t_levelset::reinitialize

◆ set()

procedure type_levelset::t_levelset::set ( class(t_levelset), intent(inout) self,
double precision, dimension(:,:,:), intent(in) phi )

Set the levelset to the supplied value.

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!

◆ set_ls_bc()

procedure, private type_levelset::t_levelset::set_ls_bc ( class(t_levelset), intent(inout) self,
class(t_boundary_condition), intent(in) ls_boundary_condition )
private

Specify new boundary conditions for the level set.

This should only be called internaly

See also
levelset_set_vf_bc is the principal routine to use

◆ set_vf_bc()

procedure type_levelset::t_levelset::set_vf_bc ( class(t_levelset), intent(inout) self,
class(t_boundary_condition), intent(in) vf_boundary_condition )

Specify new boundary conditions for the level set using VF values.

Warning
the boundary conditions, here, are the one of a volume fraction! (hence, 0 or 1 for Dirichlet type)

◆ update_secondary_fields()

procedure type_levelset::t_levelset::update_secondary_fields ( class(t_levelset), intent(inout) self)

Update secondary fields if needed.

Parameters
[in,out]selfthe element

Member Data Documentation

◆ band

integer, dimension(:,:,:), allocatable type_levelset::t_levelset::band

◆ curvature

double precision, dimension(:,:,:), allocatable type_levelset::t_levelset::curvature

◆ data

double precision, dimension(:,:,:), allocatable type_levelset::t_levelset::data

◆ flux_type

type(t_fv_flux) type_levelset::t_levelset::flux_type = default_flux_lw

◆ gradient_norm

double precision, dimension(:,:,:), allocatable type_levelset::t_levelset::gradient_norm

◆ gradient_t

double precision, dimension(:,:,:,:), allocatable type_levelset::t_levelset::gradient_t

The gradient is stored as (nx,ny,nz,nd) (not like the gradient)

◆ initial

double precision type_levelset::t_levelset::initial

◆ initial_surface

double precision type_levelset::t_levelset::initial_surface

◆ initial_volume

double precision type_levelset::t_levelset::initial_volume

◆ kinks_map

integer, dimension(:,:,:), allocatable type_levelset::t_levelset::kinks_map

◆ ls_boundary_condition

type(t_boundary_condition) type_levelset::t_levelset::ls_boundary_condition

Boundary conditions.

◆ mod_fv_fluxes

type(t_fv_flux) type_levelset::t_levelset::mod_fv_fluxes

◆ need_to_update_secondary_fields

logical type_levelset::t_levelset::need_to_update_secondary_fields = .true.

◆ normal

double precision, dimension(:,:,:,:), allocatable type_levelset::t_levelset::normal

The normal is stored as (nx,ny,nz,nd)

◆ parameters

type(t_levelset_parameters) type_levelset::t_levelset::parameters

◆ particles_list

type(t_particle_list) type_levelset::t_levelset::particles_list

◆ see

type(t_fv_flux) type_levelset::t_levelset::see

◆ surface

double precision type_levelset::t_levelset::surface

◆ the

double precision type_levelset::t_levelset::the

◆ total

double precision type_levelset::t_levelset::total

◆ vf_boundary_condition

type(t_boundary_condition) type_levelset::t_levelset::vf_boundary_condition

◆ volume

double precision type_levelset::t_levelset::volume

◆ volume_fraction

double precision, dimension(:,:,:), allocatable type_levelset::t_levelset::volume_fraction

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