Indexing object containing local and global indexing rules
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
logical, | public | :: | userDefined | = | .false. |
True only if user explicitly sets it to true |
|
integer(kind=ik), | private, | allocatable, dimension(:) | :: | procDoFs |
Number of degrees of freedom for each processor |
||
integer(kind=ik), | private, | allocatable, dimension(:,:) | :: | varOffset |
For indices (i,k) gives offset of variable k in local spatial chunk of processor i |
||
integer(kind=ik), | private, | allocatable, dimension(:) | :: | xDoFs |
Degrees of freedom in the x-direction for each processor |
||
integer(kind=ik), | private | :: | numV |
Number of velocity cells in grid |
|||
integer(kind=ik), | private | :: | numX |
Total number of spatial cells in grid |
|||
integer(kind=ik), | private | :: | numH |
Total numbe of harmonics in grid |
|||
type(Partition), | private | :: | part |
Associated partition object |
|||
type(VariableList), | private | :: | varList |
Associated implicit variable list |
|||
integer(kind=ik), | private | :: | xHaloWidth |
Halo width in x-direction - only used for periodic indexing |
|||
logical, | private | :: | periodicIndexing |
Used to make sure that local indexing is correct in periodic case |
Getter for userDefined
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(Object), | intent(in) | :: | this |
Set userDefined to .true.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(Object), | intent(inout) | :: | this |
Set userDefined to .false.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(Object), | intent(inout) | :: | this |
Getter for procDoFs
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(Indexing), | intent(in) | :: | this |
Return index of degree of freedom associated with variable with given name and with coordinates given by xInd,hInd,vInd If local is true return index in the local implicit vector
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(Indexing), | intent(in) | :: | this | |||
character(len=*), | intent(in) | :: | name | |||
integer(kind=ik), | intent(in) | :: | xInd | |||
integer(kind=ik), | intent(in), | optional | :: | hInd | ||
integer(kind=ik), | intent(in), | optional | :: | vInd | ||
logical, | intent(in), | optional | :: | local |
Getter for numX
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(Indexing), | intent(in) | :: | this |
Getter for numV
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(Indexing), | intent(in) | :: | this |
Getter for numH
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(Indexing), | intent(in) | :: | this |
Returns all local indices corresponding to variable with a given index on given processor
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(Indexing), | intent(in) | :: | this | |||
integer(kind=ik), | intent(in) | :: | varInd | |||
integer(kind=ik), | intent(in) | :: | procRank |
Return linear index of distribution corresponding to xInd,hInd,vInd - if allH is true return indexing assuming all harmonics are indexed locally. If present locXInd is used to identify the processor
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(Indexing), | intent(in) | :: | this | |||
integer(kind=ik), | intent(in) | :: | xInd | |||
integer(kind=ik), | intent(in) | :: | hInd | |||
integer(kind=ik), | intent(in) | :: | vInd | |||
logical, | intent(in) | :: | allH | |||
integer(kind=ik), | intent(in), | optional | :: | locXInd |
Return local non-distribution variable index corresponding to xInd,if present, locXInd is used to identify the processor
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(Indexing), | intent(in) | :: | this | |||
integer(kind=ik), | intent(in) | :: | xInd | |||
integer(kind=ik), | intent(in), | optional | :: | locXInd |
Returns list of global indices associated with all possible combinations of inputIndices (IntArray of size 1 or 3) and given variable name
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(Indexing), | intent(in) | :: | this | |||
character(len=*), | intent(in) | :: | name | |||
type(IntArray), | intent(in), | dimension(:) | :: | inputIndices |
Indexing object initialization routine
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(Indexing), | intent(inout) | :: | this | |||
type(Partition), | intent(in) | :: | part |
Partition component of initialized Indexing object |
||
type(Grid), | intent(in) | :: | gridData |
Grid object used to initialize Indexing |
||
type(VariableList), | intent(in) | :: | varList |
Implicit variable list |
||
integer(kind=ik), | intent(in), | optional | :: | xHaloWidth |
Width of halo in x-direction - if passed will assume the x-grid is periodic |