collision_obj_SetupCollisionBlock2 Subroutine

private subroutine collision_obj_SetupCollisionBlock2(this, ds, ngc, block)

Uses

  • proc~~collision_obj_setupcollisionblock2~~UsesGraph proc~collision_obj_setupcollisionblock2 collision_obj%collision_obj_SetupCollisionBlock2 module~leapblock leapBlock proc~collision_obj_setupcollisionblock2->module~leapblock module~leapkinds leapKinds module~leapblock->module~leapkinds module~leapparallel leapParallel module~leapblock->module~leapparallel mpi_f08 mpi_f08 module~leapblock->mpi_f08 iso_fortran_env iso_fortran_env module~leapkinds->iso_fortran_env module~leapparallel->module~leapkinds module~leapparallel->mpi_f08 module~leapparser leapParser module~leapparallel->module~leapparser module~leapparser->module~leapkinds module~leapcli leapCli module~leapparser->module~leapcli module~leapcli->module~leapkinds

Initializes cblock to handle collisions. This extra block is expected to be coarser than the simulation block, but larger than the maximum object size. It is used to expedite neighbor searches.

With this subroutine, each MPI rank owns a LOCAL view of the collision block.

Type Bound

collision_obj

Arguments

Type IntentOptional Attributes Name
class(collision_obj), intent(inout) :: this
real(kind=wp), intent(in) :: ds

Target grid spacing

integer, intent(in) :: ngc

Number of ghost cells for collision block

type(block_obj), intent(in), optional :: block

Optional block to conform to


Calls

proc~~collision_obj_setupcollisionblock2~~CallsGraph proc~collision_obj_setupcollisionblock2 collision_obj%collision_obj_SetupCollisionBlock2 none~initialize~8 block_obj%Initialize proc~collision_obj_setupcollisionblock2->none~initialize~8 none~updategridghostcells block_obj%UpdateGridGhostCells proc~collision_obj_setupcollisionblock2->none~updategridghostcells proc~axis_obj_final axis_obj%axis_obj_Final proc~collision_obj_setupcollisionblock2->proc~axis_obj_final proc~block_obj_getowningcell block_obj%block_obj_GetOwningCell proc~collision_obj_setupcollisionblock2->proc~block_obj_getowningcell proc~block_obj_setconveniencepointers block_obj%block_obj_SetConveniencePointers proc~collision_obj_setupcollisionblock2->proc~block_obj_setconveniencepointers proc~block_obj_setperiodicity block_obj%block_obj_SetPeriodicity proc~collision_obj_setupcollisionblock2->proc~block_obj_setperiodicity proc~block_obj_setupmpitypes block_obj%block_obj_SetupMPITypes proc~collision_obj_setupcollisionblock2->proc~block_obj_setupmpitypes proc~block_obj_setupuniformgrid block_obj%block_obj_SetupUniformGrid proc~collision_obj_setupcollisionblock2->proc~block_obj_setupuniformgrid proc~block_obj_updatemidpoints block_obj%block_obj_UpdateMidPoints proc~collision_obj_setupcollisionblock2->proc~block_obj_updatemidpoints proc~block_obj_updatespacing block_obj%block_obj_UpdateSpacing proc~collision_obj_setupcollisionblock2->proc~block_obj_updatespacing proc~block_obj_init block_obj%block_obj_Init none~initialize~8->proc~block_obj_init proc~block_obj_init2 block_obj%block_obj_Init2 none~initialize~8->proc~block_obj_init2 proc~block_obj_updategridghostcells block_obj%block_obj_UpdateGridGhostCells none~updategridghostcells->proc~block_obj_updategridghostcells proc~block_obj_updategridghostcells2 block_obj%block_obj_UpdateGridGhostCells2 none~updategridghostcells->proc~block_obj_updategridghostcells2 mpi_type_commit mpi_type_commit proc~block_obj_setupmpitypes->mpi_type_commit mpi_type_free mpi_type_free proc~block_obj_setupmpitypes->mpi_type_free mpi_type_vector mpi_type_vector proc~block_obj_setupmpitypes->mpi_type_vector proc~block_obj_setupuniformgrid->none~updategridghostcells proc~block_obj_setupuniformgrid->proc~block_obj_setconveniencepointers proc~block_obj_setupuniformgrid->proc~block_obj_setupmpitypes proc~block_obj_setupuniformgrid->proc~block_obj_updatemidpoints proc~block_obj_setupuniformgrid->proc~block_obj_updatespacing proc~axis_obj_init axis_obj%axis_obj_Init proc~block_obj_setupuniformgrid->proc~axis_obj_init proc~block_obj_init2->proc~block_obj_setupuniformgrid mpi_irecv mpi_irecv proc~block_obj_updategridghostcells->mpi_irecv mpi_isend mpi_isend proc~block_obj_updategridghostcells->mpi_isend mpi_wait mpi_wait proc~block_obj_updategridghostcells->mpi_wait mpi_waitall mpi_waitall proc~block_obj_updategridghostcells->mpi_waitall proc~block_obj_updateextents block_obj%block_obj_UpdateExtents proc~block_obj_updategridghostcells->proc~block_obj_updateextents proc~block_obj_updategridghostcells2->mpi_irecv proc~block_obj_updategridghostcells2->mpi_isend proc~block_obj_updategridghostcells2->mpi_waitall proc~block_obj_updateextents->proc~axis_obj_init