DomainDecomposition Derived Type

type, public, extends(DomainDecomposition_t) :: DomainDecomposition


Inherits

type~~domaindecomposition~2~~InheritsGraph type~domaindecomposition~2 DomainDecomposition type~domaindecomposition_t DomainDecomposition_t type~domaindecomposition~2->type~domaindecomposition_t

Contents

Source Code


Components

TypeVisibilityAttributesNameInitial
integer, public, pointer, dimension(:):: elemToRank
logical, public :: initialized =.false.
integer, public :: maxMsg
integer, public :: mpiComm =MPI_COMM_NULL
logical, public :: mpiEnabled =.false.
integer, public :: mpiPrec
integer, public :: msgCount
integer, public :: nElem
integer, public :: nRanks
integer, public, pointer, dimension(:):: offSetElem
logical, public :: ownsMpi =.false.
integer, public :: rankId
integer, public, allocatable:: requests(:)
integer, public, allocatable:: stats(:,:)

Type-Bound Procedures

procedure, public :: CountRemoteMortarSides => CountRemoteMortarSides_DomainDecomposition_t

  • public function CountRemoteMortarSides_DomainDecomposition_t(this, mortarInfo, nMortars, nSub) result(nRemote)

    Counts the mortar sub-sides this rank exchanges over MPI: those where exactly one of the big side and the sub-side is owned by this rank. A mortar entirely on one rank is served from memory, and one entirely on other ranks is not this rank's to carry.

    Read more…

    Arguments

    TypeIntentOptionalAttributesName
    class(DomainDecomposition_t), intent(in) :: this
    integer, intent(in), pointer:: mortarInfo(:,:)
    integer, intent(in) :: nMortars
    integer, intent(in) :: nSub

    Return Value integer

procedure, public :: CountRemoteSides => CountRemoteSides_DomainDecomposition_t

  • public function CountRemoteSides_DomainDecomposition_t(this, sideInfo, nElem, nSidesPerElem) result(nRemote)

    Counts the conforming sides of the local elements whose neighbor element is owned by another rank -- the sides an exchange sends and receives over MPI.

    Read more…

    Arguments

    TypeIntentOptionalAttributesName
    class(DomainDecomposition_t), intent(in) :: this
    integer, intent(in) :: sideInfo(1:5,1:nSidesPerElem,1:nElem)
    integer, intent(in) :: nElem
    integer, intent(in) :: nSidesPerElem

    Return Value integer

procedure, public :: FinalizeMPIExchangeAsync

procedure, public :: Free => Free_DomainDecomposition_t

procedure, public :: GenerateDecomposition => GenerateDecomposition_DomainDecomposition_t

procedure, public :: GenerateDecompositionFromOffsets => GenerateDecompositionFromOffsets_DomainDecomposition_t

  • public subroutine GenerateDecompositionFromOffsets_DomainDecomposition_t(this, offsetElem, maxMsg)

    Builds the decomposition from a prescribed contiguous partition rather than from the balanced one GenerateDecomposition computes. Rank r-1 (r = 1..nRanks) owns global elements offsetElem(r)+1 .. offsetElem(r+1), and the global element count is offsetElem(nRanks+1).

    Read more…

    Arguments

    TypeIntentOptionalAttributesName
    class(DomainDecomposition_t), intent(inout) :: this
    integer, intent(in) :: offsetElem(1:this%nRanks+1)
    integer, intent(in) :: maxMsg

procedure, public :: Init => Init_DomainDecomposition_t

procedure, public :: ReserveMessages => ReserveMessages_DomainDecomposition_t

procedure, public :: SetElemToRank => SetElemToRank_DomainDecomposition_t

Source Code

  type,extends(DomainDecomposition_t) :: DomainDecomposition
  endtype DomainDecomposition