Work partitioning for externally distributed dispersion calculations
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| type(work_partition), | public, | parameter | :: | serial_work_partition | = | work_partition() |
Complete work of an ordinary serial calculation, equivalent to omitting the partition entirely |
Cyclic partition of the work of a dispersion calculation.
Communication backend of a partitioned calculation.
| procedure(reduce_interface), public, deferred :: reduce |
Whether this part owns a one-dimensional unit of work
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(work_partition), | intent(in), | optional | :: | partition |
Work partition, absent selects the complete work |
|
| integer, | intent(in) | :: | idx |
One-based index of the unit of work |
Whether this part owns the unit of work
Whether this part owns a symmetry-reduced atom pair
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(work_partition), | intent(in), | optional | :: | partition |
Work partition, absent selects the complete work |
|
| integer, | intent(in) | :: | iat |
Atom indices of the pair, with jat <= iat |
||
| integer, | intent(in) | :: | jat |
Atom indices of the pair, with jat <= iat |
Whether this part owns the pair
Create a work partition
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(error_type), | intent(out), | allocatable | :: | error |
Error handling |
|
| type(work_partition), | intent(out) | :: | partition |
New work partition |
||
| integer, | intent(in) | :: | part |
Zero-based index of this part |
||
| integer, | intent(in) | :: | nparts |
Total number of parts |