MPI infrastructure for the radiation solver.
This module manages the parallel execution of the radiation transport solver. Unlike the flow solver which uses a replicated mesh, the radiation solver can be configured with its own communicator and task decomposition logic (e.g., distributing rays or discrete ordinates).
MPI context for radiation operations.
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| type(MPI_Comm), | public | :: | comm | = | MPI_COMM_NULL | ||
| integer, | public | :: | first_task | = | 0 | ||
| integer, | public | :: | last_task | = | -1 | ||
| integer, | public | :: | nlocal_tasks | = | 0 | ||
| integer, | public | :: | nprocs | = | 0 | ||
| integer, | public | :: | rank | = | -1 |
Releases radiation MPI resources.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(radiation_mpi_t), | intent(inout) | :: | rad |
Initializes the radiation MPI context by duplicating a parent communicator.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(radiation_mpi_t), | intent(inout) | :: | rad |
The radiation context to initialize. |
||
| type(MPI_Comm), | intent(in) | :: | comm_parent |
The parent communicator (usually MPI_COMM_WORLD). |
||
| integer, | intent(in), | optional | :: | n_tasks |
Optional total number of tasks to decompose immediately. |
Performs contiguous task decomposition for the radiation solver.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(radiation_mpi_t), | intent(inout) | :: | rad |
The radiation context to update. |
||
| integer, | intent(in) | :: | n_tasks |
Total number of discrete tasks (e.g., rays). |
Internal helper for MPI error checking.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(in) | :: | ierr | |||
| character(len=*), | intent(in) | :: | where |