mus_hvs_construct Subroutine

public subroutine mus_hvs_construct(scheme, geometry, params)

Initialize Musubi data strucutres based on data provided by Treelm

Load the mesh and boundary conditions for this process from disk. Get the level-wise treeID lists and create the required ghost and halo elements.

This is achieved by a two-folded identification of elements.

-# the theoretically required elements are collected based on mus_scheme_layout_type "stencil information" The tem_construction_module "find neighbor routine" performs this task for compute fluid elements. For boundaries which require information from neighbor elements, these required tem_topology_module "treeIDs" are collected into the mus_bc_header_module "boundary element type" -# All required elements are created in the tem_construction_module "Level Descriptor creation routine"

Additional Tasks

  • receive tem_construction_module "horizontal" (within a level for the element updates)
  • and tem_construction "vertical" dependencies (between levels for ghost-interpolations).
  • The main state vector and the neighbor lists on which the kernel then acts is created
  • The MPI buffers are created.
  • For each mus_scheme_module "Scheme", the tem_levelDesc_type "Level Descriptor" is created

Result

After this routine, all data structures for starting the main loop of the solver are allocated and ready.

Only difference between this routine and mus_construct is then creating of boundary elements and its stencil are omitted for harvesting

Arguments

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

scheme information including fluid, boundary and flow information

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

geometric information

type(mus_param_type), intent(inout) :: params

run-time Parameters


Calls

proc~~mus_hvs_construct~~CallsGraph proc~mus_hvs_construct mus_hvs_construct proc~tem_find_allelements tem_find_allElements proc~mus_hvs_construct->proc~tem_find_allelements proc~my_status_int my_status_int proc~mus_hvs_construct->proc~my_status_int proc~tem_gettimerval tem_getTimerVal proc~mus_hvs_construct->proc~tem_gettimerval proc~tem_horizontalspacer tem_horizontalSpacer proc~mus_hvs_construct->proc~tem_horizontalspacer proc~tem_stoptimer tem_stopTimer proc~mus_hvs_construct->proc~tem_stoptimer proc~tem_debug_horizontaldependencies tem_debug_HorizontalDependencies proc~mus_hvs_construct->proc~tem_debug_horizontaldependencies proc~tem_starttimer tem_startTimer proc~mus_hvs_construct->proc~tem_starttimer proc~mus_pdf_allocate mus_pdf_allocate proc~mus_hvs_construct->proc~mus_pdf_allocate proc~tem_dumptreeidlists tem_dumpTreeIDlists proc~mus_hvs_construct->proc~tem_dumptreeidlists proc~tem_init_elemlevels tem_init_elemLevels proc~mus_hvs_construct->proc~tem_init_elemlevels proc~calculate_nelems calculate_nElems proc~mus_hvs_construct->proc~calculate_nelems proc~tem_build_horizontaldependencies tem_build_horizontalDependencies proc~mus_hvs_construct->proc~tem_build_horizontaldependencies proc~mus_calc_nelems mus_calc_nElems proc~mus_hvs_construct->proc~mus_calc_nelems interface~destroy~4 destroy proc~mus_hvs_construct->interface~destroy~4 proc~mus_finalize_layout mus_finalize_layout proc~mus_hvs_construct->proc~mus_finalize_layout proc~calculate_nelems->proc~tem_horizontalspacer mpi_allreduce mpi_allreduce proc~calculate_nelems->mpi_allreduce interface~destroy~2 destroy proc~mus_finalize_layout->interface~destroy~2 mpi_gather mpi_gather proc~mus_finalize_layout->mpi_gather mpi_type_contiguous mpi_type_contiguous proc~mus_finalize_layout->mpi_type_contiguous interface~truncate truncate proc~mus_finalize_layout->interface~truncate mpi_gatherv mpi_gatherv proc~mus_finalize_layout->mpi_gatherv interface~append append proc~mus_finalize_layout->interface~append mpi_type_commit mpi_type_commit proc~mus_finalize_layout->mpi_type_commit

Called by

proc~~mus_hvs_construct~~CalledByGraph proc~mus_hvs_construct mus_hvs_construct program~mus_harvesting mus_harvesting program~mus_harvesting->proc~mus_hvs_construct

Contents


Variables

TypeVisibilityAttributesNameInitial
integer, private :: iLevel
integer, private :: minLevel
integer, private :: maxLevel
integer, private :: hwmVal
integer, private :: ii