mus_geomIncr_module Module

This module provides functionality to perform geometry change depending on the flow properties. Fluidify/Solidify, proximity condition variable are supplied in the lua file. Checks are performed against those parameters and geometry is accordingly changed (an element solidified or fluidified)

Geometry Increment module


Used by

  • module~~mus_geomincr_module~~UsedByGraph module~mus_geomincr_module mus_geomIncr_module module~mus_aux_module mus_aux_module module~mus_aux_module->module~mus_geomincr_module module~mus_control_module mus_control_module module~mus_control_module->module~mus_aux_module program~musubi musubi program~musubi->module~mus_aux_module program~musubi->module~mus_control_module module~mus_program_module mus_program_module program~musubi->module~mus_program_module module~mus_program_module->module~mus_aux_module module~mus_program_module->module~mus_control_module



public subroutine mus_init_geomIncr(me, varSys, dt, reqInt)

This subroutine initializes the geometry increment.


type(mus_geomIncrHead_type), intent(inout) :: me(:)

geometry increment type

type(tem_varSys_type), intent(in) :: varSys

Global variable system

real(kind=rk), intent(in) :: dt

dt of maxlevel or smallest dt

integer, intent(in) :: reqInt

Required interval, in which the update MUST occur. This is required for the musubi multilevel, where the time step should only be determined active, when the end of the largest cycle is reached.

public subroutine mus_geomIncr(geometry, scheme, commPattern, general)

This subroutine checks for various conditions defined in the geomIncr table within the lua file, calculates the requested macroscpoic variables and then compares them against the specified threshold. Accordingly then solidification or fluidification of elements is performed.


type(mus_geom_type) :: geometry
type(mus_scheme_type), intent(inout) :: scheme
type(tem_commPattern_type), intent(in) :: commPattern
type(tem_general_type), intent(in) :: general

global parameters

public subroutine proximity(scheme, geometry, iGInc, pot_nElems, pot_lp, pot_lp_tree)

A subroutine which checks the proximity condition and generates a new treeID list of potential target elements which can then be checked against various thresholds as defined in the lua configuration file.

Read more…


type(mus_scheme_type), intent(inout) :: scheme

scheme information

type(mus_geom_type), intent(in) :: geometry

scheme information

integer, intent(in) :: iGInc

Geomtry icrement

integer, intent(inout) :: pot_nElems

number of potential elements found

integer, intent(inout) :: pot_lp(:)

level pointer of potential elements

integer, intent(inout) :: pot_lp_tree(:)

position of potential elements in the treeID list

public subroutine prepare_target_elem_list(nComp, elemoff, nChunkElems, res, LPList, nElems_gi, pntTreeID, target_ielem_list, scheme, tree, geomIncr)

This routine compares the macroscopic quantity obtained for an element against specified threshold and populates the list of target elements which participate in geometry change. In addition it sets the property bit(s) of target elements to fluidify in case of solidification and clears this bit in case of fluidification

Read more…


integer, intent(in) :: nComp

total number of components

integer, intent(in) :: elemoff

offset of elements in chunk

integer, intent(in) :: nChunkElems

number of elements in chunk

real(kind=rk), intent(in) :: res(:)

result from condition variable

integer, intent(in) :: LPList(:)

list of level pointers

integer, intent(inout) :: nElems_gi

number of final elements

integer, intent(in) :: pntTreeID(:)

element position in global treeID list tree%treeID

integer, intent(inout) :: target_ielem_list(:)

target element list for second iGInc to reduce computation effort

type(mus_scheme_type), intent(inout) :: scheme

scheme information

type(treelmesh_type), intent(inout) :: tree

fluid tree from mesh, element property bits are set to solidify if condition variable is 1

type(mus_geomIncrHead_type), intent(inout) :: geomIncr

current geometry increment

private subroutine update_connectivity(scheme, iLevel)

Construct the propagation stencil for each element

Read more…


type(mus_scheme_type), intent(inout) :: scheme

scheme information

integer, intent(in) :: iLevel

current level

private subroutine mus_setProp(property, geomIncr)

This routine updates the propertybits of an element If solidify == true, set prp_fluidify and set prp_solid If fluidify == treu, clean prp_fluidify and set prp_fluid


integer(kind=long_k) :: property
type(mus_geomIncrHead_type), intent(in) :: geomIncr