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

Type IntentOptional Attributes Name
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~my_status_int my_status_int proc~mus_hvs_construct->proc~my_status_int proc~tem_starttimer tem_startTimer proc~mus_hvs_construct->proc~tem_starttimer 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~tem_debug_horizontaldependencies tem_debug_HorizontalDependencies proc~mus_hvs_construct->proc~tem_debug_horizontaldependencies proc~mus_calc_nelems mus_calc_nElems proc~mus_hvs_construct->proc~mus_calc_nelems proc~destroy~3 destroy proc~mus_hvs_construct->proc~destroy~3 proc~tem_stoptimer tem_stopTimer proc~mus_hvs_construct->proc~tem_stoptimer proc~tem_horizontalspacer tem_horizontalSpacer proc~mus_hvs_construct->proc~tem_horizontalspacer proc~mus_finalize_layout mus_finalize_layout proc~mus_hvs_construct->proc~mus_finalize_layout proc~tem_find_allelements tem_find_allElements proc~mus_hvs_construct->proc~tem_find_allelements proc~tem_build_horizontaldependencies tem_build_horizontalDependencies proc~mus_hvs_construct->proc~tem_build_horizontaldependencies calculate_nelems calculate_nelems proc~mus_hvs_construct->calculate_nelems proc~mus_pdf_allocate mus_pdf_allocate proc~mus_hvs_construct->proc~mus_pdf_allocate proc~tem_gettimerval tem_getTimerVal proc~mus_hvs_construct->proc~tem_gettimerval mpi_gather mpi_gather proc~mus_finalize_layout->mpi_gather mpi_type_contiguous mpi_type_contiguous proc~mus_finalize_layout->mpi_type_contiguous proc~destroy~2 destroy proc~mus_finalize_layout->proc~destroy~2 mpi_gatherv mpi_gatherv proc~mus_finalize_layout->mpi_gatherv proc~truncate~2 truncate proc~mus_finalize_layout->proc~truncate~2 mpi_type_commit mpi_type_commit proc~mus_finalize_layout->mpi_type_commit proc~append~4 append proc~mus_finalize_layout->proc~append~4

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