.. _section_eng_domain_decomp: 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** \ . Domain Decomposition Input Option ------------------------------------- .. code-block:: none DomainDecomposition Expand 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: .. code-block:: none DomainDecomposition Expand 0 Domain cell = < cell_1 cell_2 ... cell_n> Or written as: .. code-block:: none DomainDecomposition Domain cell = < cell_11 cell_12 ... cell_1n> Domain 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: .. code-block:: none DomainDecomposition Expand 1 AxialLevel = RadialLevel = AxialUniv = RadialUniv = AxialDomain = < id_1 id_2 ... id_n> RadialDomain = < id_1 id_2 ... id_n > Or written as: .. code-block:: none DomainDecomposition Expand AxialLevel = RadialLevel = AxialUniv = RadialUniv = 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. Domain Decomposition Examples ----------------------------------- Input example for the first method: .. code-block:: none DomainDecomposition Domain 1 cell = 1 > 1: 136 > 3 Domain 2 cell = 1 > 137:289 > 3 Input example for the second method (simplified input): .. code-block:: none 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