| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| integer, | public, | pointer, dimension(:) | :: | elemToRank | |||
| type(c_ptr), | public | :: | elemToRank_gpu | ||||
| logical, | public | :: | halo_built | = | .false. | ||
| integer, | public | :: | halo_nnbr | = | 0 | ||
| integer, | public | :: | halo_nsides | = | 0 | ||
| integer, | public, | allocatable | :: | halo_offset(:) | |||
| integer, | public, | allocatable | :: | halo_rank(:) | |||
| type(c_ptr), | public | :: | halo_sides_gpu | = | c_null_ptr | ||
| logical, | public | :: | initialized | = | .false. | ||
| integer, | public | :: | maxMsg | ||||
| integer, | public | :: | mpiComm | ||||
| logical, | public | :: | mpiEnabled | = | .false. | ||
| integer, | public | :: | mpiPrec | ||||
| integer, | public | :: | msgCount | ||||
| integer, | public | :: | nElem | ||||
| integer, | public | :: | nRanks | ||||
| integer, | public, | pointer, dimension(:) | :: | offSetElem | |||
| integer, | public | :: | rankId | ||||
| integer, | public, | allocatable | :: | requests(:) | |||
| integer, | public, | allocatable | :: | stats(:,:) |
| procedure, public :: BuildHaloExchange => BuildHaloExchange_DomainDecomposition | |
| procedure, public :: FinalizeMPIExchangeAsync | |
| procedure, public :: Free => Free_DomainDecomposition | |
| procedure, public :: GenerateDecomposition => GenerateDecomposition_DomainDecomposition_t | |
| procedure, public :: Init => Init_DomainDecomposition | |
| procedure, public :: SetElemToRank => SetElemToRank_DomainDecomposition |
Build the aggregated halo exchange tables for the mesh this domain decomposition belongs to.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(DomainDecomposition), | intent(inout) | :: | this | |||
| integer, | intent(in) | :: | sideInfo(1:5,1:nSidesPerElem,1:nElem) | |||
| integer, | intent(in) | :: | nElem | |||
| integer, | intent(in) | :: | nSidesPerElem |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(DomainDecomposition), | intent(inout) | :: | this |
Heap sort of the halo side list by ascending 64-bit key, permuting the companion arrays alongside the keys. O(n log n), in place; the relative order of equal keys is irrelevant because global side ids are unique.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int64), | intent(inout) | :: | keys(1:n) | |||
| integer, | intent(inout) | :: | elems(1:n) | |||
| integer, | intent(inout) | :: | sides(1:n) | |||
| integer, | intent(inout) | :: | flips(1:n) | |||
| integer, | intent(inout) | :: | ranks(1:n) | |||
| integer, | intent(in) | :: | n |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int64), | intent(inout) | :: | keys(:) | |||
| integer, | intent(inout) | :: | elems(:) | |||
| integer, | intent(inout) | :: | sides(:) | |||
| integer, | intent(inout) | :: | flips(:) | |||
| integer, | intent(inout) | :: | ranks(:) | |||
| integer, | intent(in) | :: | start | |||
| integer, | intent(in) | :: | last |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int64), | intent(inout) | :: | keys(:) | |||
| integer, | intent(inout) | :: | elems(:) | |||
| integer, | intent(inout) | :: | sides(:) | |||
| integer, | intent(inout) | :: | flips(:) | |||
| integer, | intent(inout) | :: | ranks(:) | |||
| integer, | intent(in) | :: | i | |||
| integer, | intent(in) | :: | j |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(DomainDecomposition), | intent(inout) | :: | this |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(DomainDecomposition), | intent(inout) | :: | this | |||
| integer, | intent(in) | :: | nElem |