Creates and allocates all reshape operation plans
This subroutine allocates and initializes plans for all four reshape operations: - X_BRICKS_TO_PENCILS: brick to pencil in X dimension (real space) - X_PENCILS_TO_BRICKS: pencil to brick in X dimension (real space) - Z_PENCILS_TO_BRICKS: pencil to brick in Z dimension (Fourier space) - Z_BRICKS_TO_PENCILS: brick to pencil in Z dimension (Fourier space)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(reshape_container), | intent(inout), | allocatable | :: | plans(:) |
Array of reshape plan containers to be allocated and initialized |
|
| type(dtfft_backend_t), | intent(in) | :: | backend |
Communication backend to use for reshape operations |
||
| type(dtfft_platform_t), | intent(in) | :: | platform |
Execution platform (HOST or CUDA) |
||
| type(backend_helper), | intent(inout) | :: | helper |
Backend helper for communication setup |
||
| type(dtfft_effort_t), | intent(in) | :: | effort |
dtFFT planner effort level |
||
| logical, | intent(in) | :: | force_effort | |||
| type(MPI_Datatype), | intent(in) | :: | base_init_dtype |
Base MPI datatype for real space data |
||
| integer(kind=int64), | intent(in) | :: | base_init_storage |
Number of bytes needed to store single real element |
||
| type(MPI_Datatype), | intent(in) | :: | base_dtype |
Base MPI datatype for Fourier space data |
||
| integer(kind=int64), | intent(in) | :: | base_storage |
Number of bytes needed to store single complex element |
||
| type(pencil), | intent(in) | :: | bricks(:) |
Pencils describing brick data distribution |
||
| type(pencil), | intent(in) | :: | pencils(:) |
Array of pencil decompositions |