Creates reshape plan
This function initializes the reshape plan by creating communicators for brick layouts, setting up grid decompositions, and allocating reshape operation plans.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(reshape_plan), | intent(inout) | :: | self |
Reshape plan to be initialized |
||
| type(dtfft_platform_t), | intent(in) | :: | platform |
Platform to create plan for (HOST or CUDA) |
||
| type(pencil_init), | intent(in) | :: | ipencil |
Pencil decomposition passed by user |
||
| type(pencil), | intent(in) | :: | pencils(:) |
Array of pencil decompositions for different layouts |
||
| type(MPI_Comm), | intent(in) | :: | comm |
Global MPI communicator |
||
| type(MPI_Comm), | intent(in) | :: | local_comms(:) |
Local MPI communicators for each dimension |
||
| type(MPI_Datatype), | intent(in) | :: | base_dtype |
Base MPI datatype for complex data |
||
| integer(kind=int64), | intent(in) | :: | base_storage |
Number of bytes needed to store single complex element |
||
| type(dtfft_effort_t), | intent(in) | :: | effort |
dtFFT planner effort level (ESTIMATE, MEASURE, PATIENT, EXHAUSTIVE) |
||
| type(dtfft_backend_t), | intent(in) | :: | backend |
Communication backend to use |
||
| type(MPI_Datatype), | intent(in) | :: | base_init_dtype |
Base MPI datatype for real data |
||
| integer(kind=int64), | intent(in) | :: | base_init_storage |
Number of bytes needed to store single real element |
||
| type(pencil), | intent(out) | :: | bricks(:) |
Pencils describing brick data distribution |
||
| logical, | intent(out) | :: | is_final_enabled |
Flag indicating if final reshape in Fourier space is enabled |
Error code: DTFFT_SUCCESS on success