mus_balance Subroutine

private subroutine mus_balance(tree, minLevel, maxLevel, levelDesc, nBCs, globBC, general, sparta)

This routine performs the load balancing for multilevel simulations. The weights are calculated on the basis of levelwise run time, which are then fed to sparta for calculation of splitting positions. Restart files are saved and the simulation is restarted with the newly distributed mesh

Arguments

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

geometry infomation

integer, intent(in) :: minLevel

min level and max level

integer, intent(in) :: maxLevel

min level and max level

type(tem_levelDesc_type), intent(in) :: levelDesc(minLevel:maxLevel)

Level descriptor

integer, intent(in) :: nBCs

global IBM type Number of boundary conditions

type(glob_boundary_type), intent(in) :: globBC(nBCs)

BC elements information

type(tem_general_type), intent(in) :: general

global parameters

type(tem_sparta_type), intent(inout) :: sparta

Sparta data type


Calls

proc~~mus_balance~~CallsGraph proc~mus_balance mus_balance proc~mus_dumpweights mus_dumpWeights proc~mus_balance->proc~mus_dumpweights proc~tem_time_sim_stamp tem_time_sim_stamp proc~mus_balance->proc~tem_time_sim_stamp proc~tem_balance_sparta tem_balance_sparta proc~mus_balance->proc~tem_balance_sparta proc~mus_getweights mus_getWeights proc~mus_balance->proc~mus_getweights proc~tem_dump_weights tem_dump_weights proc~mus_dumpweights->proc~tem_dump_weights proc~tem_create_endiansuffix tem_create_EndianSuffix proc~mus_dumpweights->proc~tem_create_endiansuffix none~assign_bc_weights assign_bc_weights proc~mus_getweights->none~assign_bc_weights none~assign_level_weights assign_level_weights proc~mus_getweights->none~assign_level_weights globbc globbc none~assign_bc_weights->globbc interface~get_boundarytime get_boundaryTime none~assign_bc_weights->interface~get_boundarytime interface~get_bcbuffertime get_bcBufferTime none~assign_bc_weights->interface~get_bcbuffertime leveldesc leveldesc none~assign_bc_weights->leveldesc interface~get_computetime get_computeTime none~assign_level_weights->interface~get_computetime interface~get_intpfromcoarsertime get_intpFromCoarserTime none~assign_level_weights->interface~get_intpfromcoarsertime proc~tem_levelof tem_LevelOf none~assign_level_weights->proc~tem_levelof interface~get_intpfromfinertime get_intpFromFinerTime none~assign_level_weights->interface~get_intpfromfinertime none~assign_level_weights->leveldesc proc~get_computetime_total get_computeTime_total interface~get_computetime->proc~get_computetime_total proc~get_computetime_atlevel get_computeTime_atLevel interface~get_computetime->proc~get_computetime_atlevel proc~get_intpfromcoarsertime_atlevel get_intpFromCoarserTime_atLevel interface~get_intpfromcoarsertime->proc~get_intpfromcoarsertime_atlevel proc~get_intpfromcoarsertime_total get_intpFromCoarserTime_total interface~get_intpfromcoarsertime->proc~get_intpfromcoarsertime_total proc~get_boundarytime_byid get_boundaryTime_byID interface~get_boundarytime->proc~get_boundarytime_byid proc~get_boundarytime_total get_boundaryTime_total interface~get_boundarytime->proc~get_boundarytime_total proc~get_bcbuffertime_total get_bcBufferTime_total interface~get_bcbuffertime->proc~get_bcbuffertime_total proc~get_bcbuffertime_atlevel get_bcBufferTime_atLevel interface~get_bcbuffertime->proc~get_bcbuffertime_atlevel proc~get_intpfromfinertime_total get_intpFromFinerTime_total interface~get_intpfromfinertime->proc~get_intpfromfinertime_total proc~get_intpfromfinertime_atlevel get_intpFromFinerTime_atLevel interface~get_intpfromfinertime->proc~get_intpfromfinertime_atlevel

Called by

proc~~mus_balance~~CalledByGraph proc~mus_balance mus_balance proc~mus_perform_dynloadbal mus_perform_dynLoadBal proc~mus_perform_dynloadbal->proc~mus_balance none~do_balance do_balance none~do_balance->proc~mus_perform_dynloadbal proc~mus_solve mus_solve proc~mus_solve->none~do_balance program~musubi musubi program~musubi->proc~mus_solve

Contents


Variables

TypeVisibilityAttributesNameInitial
character(len=PathLen), private :: basename
character(len=labelLen), private :: timestamp
real(kind=rk), private, allocatable:: weights(:)