tem_build_face_info Subroutine

public subroutine tem_build_face_info(tree, boundary, commPattern, proc, faces, nEligibleChildren)

This routine builds a description of the faces on each level. The resulting array of tem_face_type ranges from the minimal level of the mesh to the maximal level of the mesh.

\todo Remove all the unnecessary faces from the face descriptor

\todo JZ: this is very memory consuming since we store them in different arrays several times.

Arguments

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

Tree representation of the mesh to buid the faces for.

type(tem_BC_prop_type), intent(in) :: boundary

The boundaries of your simulation domain.

type(tem_commPattern_type), intent(in) :: commPattern

The communication pattern you use for the buffer.

type(tem_comm_env_type), intent(in) :: proc

Process description to use.

type(tem_face_type), intent(out), allocatable:: faces(:)

The created face descriptors (one for each level).

integer, intent(in) :: nEligibleChildren

The number of eligible children for the vertical face dependency


Calls

proc~~tem_build_face_info~~CallsGraph proc~tem_build_face_info tem_build_face_info proc~tem_build_facelists tem_build_faceLists proc~tem_build_face_info->proc~tem_build_facelists proc~tem_extend_remoteprp tem_extend_remotePrp proc~tem_build_face_info->proc~tem_extend_remoteprp proc~tem_collect_faces tem_collect_faces proc~tem_build_face_info->proc~tem_collect_faces proc~tem_build_facebuffers tem_build_faceBuffers proc~tem_build_face_info->proc~tem_build_facebuffers proc~tem_dimbydim_construction tem_dimByDim_construction proc~tem_build_face_info->proc~tem_dimbydim_construction proc~tem_facedep_vertical tem_faceDep_vertical proc~tem_build_face_info->proc~tem_facedep_vertical proc~tem_build_fromfinerlist tem_build_fromFinerList proc~tem_build_facelists->proc~tem_build_fromfinerlist proc~tem_build_computelist tem_build_computeList proc~tem_build_facelists->proc~tem_build_computelist proc~tem_extend_commfromfinerprp tem_extend_commFromFinerPrp proc~tem_extend_remoteprp->proc~tem_extend_commfromfinerprp proc~tem_extend_commfromcoarserprp tem_extend_commFromCoarserPrp proc~tem_extend_remoteprp->proc~tem_extend_commfromcoarserprp proc~tem_get_faces tem_get_faces proc~tem_collect_faces->proc~tem_get_faces proc~tem_build_facesendbuffers tem_build_faceSendBuffers proc~tem_build_facebuffers->proc~tem_build_facesendbuffers proc~tem_build_facerecvbuffers tem_build_faceRecvBuffers proc~tem_build_facebuffers->proc~tem_build_facerecvbuffers interface~tem_stencil_dump tem_stencil_dump proc~tem_dimbydim_construction->interface~tem_stencil_dump proc~tem_create_leveldesc tem_create_levelDesc proc~tem_dimbydim_construction->proc~tem_create_leveldesc proc~tem_define_dimstencil tem_define_dimStencil proc~tem_dimbydim_construction->proc~tem_define_dimstencil proc~tem_init_facedep tem_init_faceDep proc~tem_facedep_vertical->proc~tem_init_facedep proc~tem_facedep_verticalup tem_faceDep_verticalUp proc~tem_facedep_vertical->proc~tem_facedep_verticalup proc~tem_facedep_verticaldown tem_faceDep_verticalDown proc~tem_facedep_vertical->proc~tem_facedep_verticaldown

Called by

proc~~tem_build_face_info~~CalledByGraph proc~tem_build_face_info tem_build_face_info proc~check_serial_multilevel_facedesc check_serial_multilevel_faceDesc proc~check_serial_multilevel_facedesc->proc~tem_build_face_info proc~check_parallel_singlelevel_facedesc check_parallel_singlelevel_faceDesc proc~check_parallel_singlelevel_facedesc->proc~tem_build_face_info proc~check_serial_singlelevel_facedesc check_serial_singlelevel_faceDesc proc~check_serial_singlelevel_facedesc->proc~tem_build_face_info program~tem_face_test~3 tem_face_test program~tem_face_test~3->proc~check_parallel_singlelevel_facedesc program~tem_face_test tem_face_test program~tem_face_test->proc~check_serial_singlelevel_facedesc program~tem_face_test~2 tem_face_test program~tem_face_test~2->proc~check_serial_multilevel_facedesc

Contents


Variables

TypeVisibilityAttributesNameInitial
type(tem_levelDesc_type), private :: levelDesc(1:3,tree%global%minLevel:tree%global%maxLevel)
type(tem_levelDesc_type), private, allocatable:: levelDescX(:)
type(tem_levelDesc_type), private, allocatable:: levelDescY(:)
type(tem_levelDesc_type), private, allocatable:: levelDescZ(:)
integer, private :: iLevel