19. Domain Decomposition (Enterprise Version Only)¶
RMC supports domain decomposition parallel model.
Note: The module input card must be defined after the burnup module input card, and the number of MPI processes used for parallel computation must be a multiple of the number of domains .
19.1. Domain Decomposition Input Option¶
DomainDecomposition
Expand <flag>
Among them,
- DomainDecomposition is the keyword for the domain decomposition module;
- Expand is the keyword to determine which input method to use. 0 is the default value, where users specify each domain themselves, while 1 is a simplified input method. A recommended approach is for users to specify each domain themselves by using the first input method.
RMC supports two input methods for domain decomposition.
The input format for the first method is:
DomainDecomposition
Expand 0 Domain <id> cell = < cell_1 cell_2 ... cell_n>
Or written as:
DomainDecomposition
Domain <id_1> cell = < cell_11 cell_12 ... cell_1n>
Domain <id_2> cell = < cell_21 cell_22 ... cell_2n>
Among them,
- DomainDecomposition is the keyword for the domain decomposition module;
- Expand is the keyword to determine which input method to use, 0 (default value) indicates using the first input method;
- Domain is the keyword for the sequence number of each domain and the cells it contains, id is the sequence number of the domain;
- Cell is the cell number contained in the domain, the input format is consistent with Cell in the CellTally input card.
The input format for the second method (simplified input) is:
DomainDecomposition
Expand 1 AxialLevel = <level> RadialLevel = <level>
AxialUniv = <univ> RadialUniv = <univ>
AxialDomain = < id_1 id_2 ... id_n> RadialDomain = < id_1 id_2 ... id_n >
Or written as:
DomainDecomposition
Expand AxialLevel = <level> RadialLevel = <level>
AxialUniv = <univ> RadialUniv = <univ>
AxialDomain = < id_1 id_2 ... id_n> RadialDomain = < id_1 id_2 ... id_n >
Among them,
- DomainDecomposition is the keyword for the domain decomposition module;
- Expand is the keyword to determine which input method to use, 1 indicates using the second input method, i.e., the simplified input method;
- AxialLevel is the keyword for the geometric level of the Universe for axial domain division, level is the sequence number of the geometric level;
- RadialLevel is the keyword for the geometric level of the Universe for radial domain division, level is the sequence number of the geometric level;
- AxialUniv is the Universe for axial domain division, univ is the sequence number of the repeated structure Universe being divided;
- RadialUniv is the Universe for radial domain division, univ is the sequence number of the repeated structure Universe being divided;
- AxialDomain is the domain number divided in the axial Universe, id is the sequence number of the domain, 0 is the public domain;
- RadialDomain is the domain number divided in the radial Universe, id is the sequence number of the domain, 0 is the public domain;
It should be noted that domain decomposition currently only decomposes burnup domains, and other zones are set as public domains. In the input card, the Domain decomposition input option needs to be located prior to the tally card . In this way, the output file generated by each domain will only contain the tallies of the domain it belongs to and the public domain, but the tally results of MeshTally will only be output for the main core.
19.2. Domain Decomposition Examples¶
Input example for the first method:
DomainDecomposition
Domain 1 cell = 1 > 1: 136 > 3
Domain 2 cell = 1 > 137:289 > 3
Input example for the second method (simplified input):
DomainDecomposition
Expand AXIALLEVEL=0 RADIALLEVEL=1 AXIALUNIV=0 RADIALUNIV=8 AXIALDOMAIN=1 RADIALDOMAIN=
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 0 1 1 0 1 1 0 1 1 1 1 1
1 1 1 0 1 1 1 1 1 1 1 1 1 0 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
2 2 0 2 2 0 2 2 0 2 2 0 2 2 0 2 2
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
2 2 0 2 2 0 2 2 0 2 2 0 2 2 0 2 2
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
2 2 2 0 2 2 2 2 2 2 2 2 2 0 2 2 2
2 2 2 2 2 0 2 2 0 2 2 0 2 2 2 2 2
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2