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
This subroutine initializes the geometry increment.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
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. |
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 | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
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 |
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.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
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 |
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
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
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 |
Construct the propagation stencil for each element
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(mus_scheme_type), | intent(inout) | :: | scheme | scheme information |
||
integer, | intent(in) | :: | iLevel | current level |
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
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer(kind=long_k) | :: | property | ||||
type(mus_geomIncrHead_type), | intent(in) | :: | geomIncr |