| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| integer, | public | :: | N | = | 0 | Polynomial degree of the solution |
|
| real(kind=prec), | public, | pointer, contiguous, dimension(:,:) | :: | downInverse | => | null() | At^{-1} in the same convention |
| type(c_ptr), | public | :: | downInverse_gpu | = | c_null_ptr | ||
| type(SEMHex), | public, | pointer | :: | geometry | => | null() | |
| type(Lagrange), | public, | pointer | :: | interp | => | null() | |
| logical, | public | :: | lobatto | = | .false. | True when the control nodes are Gauss-Lobatto, which the sweeps require |
|
| integer, | public | :: | nColumns | = | 0 | Rank-local columns, which is the rank-local element count of the surface mesh |
|
| integer, | public | :: | nElem | = | 0 | Rank-local 3-D elements, nLayers*nColumns |
|
| integer, | public | :: | nLayers | = | 0 | Layers per column, nz |
|
| real(kind=prec), | public, | pointer, contiguous, dimension(:,:) | :: | upInverse | => | null() | A^{-1} in SELF's matrix convention: (A^{-1} r)_l = sum_m upInverse(m,l) r_m |
| type(c_ptr), | public | :: | upInverse_gpu | = | c_null_ptr |
Device version of Broadcast_ColumnOperators3D_t
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ColumnOperators3D), | intent(in) | :: | this | |||
| class(Scalar2D), | intent(in) | :: | qbar | |||
| class(Scalar3D), | intent(inout) | :: | q |
Device version of ColumnIntegral_ColumnOperators3D_t
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ColumnOperators3D), | intent(in) | :: | this | |||
| class(Scalar3D), | intent(in) | :: | q | |||
| class(Scalar2D), | intent(inout) | :: | qbar |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ColumnOperators3D), | intent(inout) | :: | this |
Init_ColumnOperators3D_t, followed by a copy of the two sweep inverses to the device
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ColumnOperators3D), | intent(out) | :: | this | |||
| type(Lagrange), | intent(in), | target | :: | interp | ||
| type(Mesh3D), | intent(in) | :: | mesh | |||
| type(SEMHex), | intent(in), | target | :: | geometry |
Device version of VerticalSweepDown_ColumnOperators3D_t
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ColumnOperators3D), | intent(in) | :: | this | |||
| class(Scalar3D), | intent(in) | :: | r | |||
| class(Scalar2D), | intent(in) | :: | qTop | |||
| class(Scalar3D), | intent(inout) | :: | q |
Device version of VerticalSweepUp_ColumnOperators3D_t
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ColumnOperators3D), | intent(in) | :: | this | |||
| class(Scalar3D), | intent(in) | :: | r | |||
| class(Scalar2D), | intent(in) | :: | qBottom | |||
| class(Scalar3D), | intent(inout) | :: | q |
type,extends(ColumnOperators3D_t),public :: ColumnOperators3D
type(c_ptr) :: upInverse_gpu = c_null_ptr
type(c_ptr) :: downInverse_gpu = c_null_ptr
contains
procedure,public :: Init => Init_ColumnOperators3D
procedure,public :: Free => Free_ColumnOperators3D
procedure,public :: ColumnIntegral => ColumnIntegral_ColumnOperators3D
procedure,public :: Broadcast => Broadcast_ColumnOperators3D
procedure,public :: VerticalSweepUp => VerticalSweepUp_ColumnOperators3D
procedure,public :: VerticalSweepDown => VerticalSweepDown_ColumnOperators3D
endtype ColumnOperators3D