mus_geom_type Derived Type

type, public :: mus_geom_type

Geometric information and definitions


type~~mus_geom_type~~InheritsGraph type~mus_geom_type mus_geom_type type~tem_bc_prop_type tem_BC_prop_type type~mus_geom_type->type~tem_bc_prop_type boundary type~mus_ibm_globtype mus_IBM_globType type~mus_geom_type->type~mus_ibm_globtype globIBM type~treelmesh_type treelmesh_type type~mus_geom_type->type~treelmesh_type tree type~mus_geomincrhead_type mus_geomIncrHead_type type~mus_geom_type->type~mus_geomincrhead_type geomIncr type~tem_logging_type tem_logging_type type~mus_ibm_globtype->type~tem_logging_type logIBM type~mus_ibm_type mus_IBM_type type~mus_ibm_globtype->type~mus_ibm_type IBM type~tem_timecontrol_type tem_timeControl_type type~mus_geomincrhead_type->type~tem_timecontrol_type timeControl type~tem_spacetime_fun_type tem_spacetime_fun_type type~mus_ibm_type->type~tem_spacetime_fun_type movement, velocity type~dyn_intarray_type dyn_intarray_type type~mus_ibm_type->type~dyn_intarray_type neighs_Xk type~tem_surfdata_type tem_surfData_type type~mus_ibm_type->type~tem_surfdata_type surfData type~mus_ibm_tmpdata_type mus_IBM_tmpData_type type~mus_ibm_type->type~mus_ibm_tmpdata_type IBMData type~tem_labeledtimer_type tem_labeledtimer_type type~mus_ibm_type->type~tem_labeledtimer_type timings type~grw_intarray_type grw_intarray_type type~mus_ibm_tmpdata_type->type~grw_intarray_type neighs_x, posXk, treeIDs type~grw_realarray_type grw_realarray_type type~mus_ibm_tmpdata_type->type~grw_realarray_type inaDelta_X type~tem_communication_type tem_communication_type type~mus_ibm_tmpdata_type->type~tem_communication_type IBMSend_Xk, IBMRecv_Xk, IBMSend_X, IBMRecv_X, IBMSend_X_pdf, IBMRecv_X_pdf

Inherited by

type~~mus_geom_type~~InheritedByGraph type~mus_geom_type mus_geom_type type~mus_varsys_solverdata_type mus_varSys_solverData_type type~mus_varsys_solverdata_type->type~mus_geom_type geometry type~mus_varsys_data_type mus_varSys_data_type type~mus_varsys_data_type->type~mus_varsys_solverdata_type solverData



type(treelmesh_type), private :: tree

tree data type

type(tem_BC_prop_type), private :: boundary

boundary information as stored on disk

type(mus_geomIncrHead_type), private, allocatable:: geomIncr(:)

The header type containing all the geometry increase information

logical, private :: dynamicGeom =.false.

Logical to define whether geometry increase is active or not

integer, private, allocatable:: posInBndID(:)

Tree element position in the boundary_ID( nDir, nElems) in bc_prop_type it has a size of tree%nElems How to use: do iElem = 1, tree%nElems posInBndID = posInBndID( iElem ) ! current element has boundary only if posInBndID>0 ! else posInBndID = -1 if (posInBnd > 0 ) bnd_ID(1:nDir) = bc_prop%boundary_ID( 1:nDir, posInBndID ) end if end do

integer, private, allocatable:: posInQVal(:)

Tree element position in the qVal( nDir, nElems) in bc_prop_type it has a size of tree%nElems How to use: do iElem = 1, tree%nElems posInQVal = posInQVal( iElem ) ! current element has qVal if posInQVal>0 else posInQVal = -1 if (posInQVal > 0 ) qVal(1:nDir) = bc_prop%qVal( 1:nDir, posInQVal ) end if end do

integer, private, allocatable:: levelPointer(:)

tree element position in level descriptor total list it has a size of tree%nElems How to use: do iElem = 1, tree%nElems treeID = tree%treeID( iElem ) level = tem_levelOf( treeID ) posInTotal = levelPointer( iElem ) treeID = LevelDesc( iLevel )%total( posInTotal ) end do

integer, private, allocatable:: bcLevelPointer(:)

Boundary element poisition in the levelwise globBC%elemLvl(:)%elem%val It has a size of geometry%boundary%property%nElems. It is used in tracking to extract value stored in boundary types. Hot to use this access normal direction of boundary element: do iElem = 1, tree%nElems level = tem_levelOf( treeID ) posInBndID = posInBndID(iElem) if (posInBndID > 0) then BCIDs = bc_prop%boundary_ID(:, posInBndID) minBCID = minval(BCIDs, BCIDs > 0) posInBcElem = bcLevelPointer(posInBndID) normal = globBC%elemLvl(iLevel)%normal(posInBcElem) end if end do

integer, private, allocatable:: minBcID(:)

Minimum bcID for each boundary element. if a element has more than one boundary then use minBcID which depends on boundary order in seeder configuration.

type(mus_IBM_globType), private :: globIBM

immersed boundary data

real(kind=rk), private, allocatable:: bndForce(:,:)

Contains Forces on boundary elements computed using momentum exchange method. This will be used to derive_bndForce routine to compute force of certain boundaries. Forces are stored in level-independent fashion as geometry%boundaryID loaded from mesh files. Dim1: geometry%boundaryi%property%nElems Dim2: 3