Difference between revisions of "Domain decomposition"

From Serpent Wiki
Jump to: navigation, search
(Created page with "Domain decomposition is used for saving computer memory by spatially dividing large burnup calculation problems between multiple calculation nodes. Each node handles particle...")
 
Line 6: Line 6:
 
# geometry-based division into sectors and a central zone
 
# geometry-based division into sectors and a central zone
  
The method is illustrated by [[Domain decomposition example 1|full-core example]]
+
The method is illustrated by [[Domain decomposition example 1|full-core example]], where the depletion zone division and domain decomposition is defined by input lines:
  
  
Line 12: Line 12:
  
 
  <nowiki>
 
  <nowiki>
% ------------------------------------------------------------------------------
 
 
set title "Monte Carlo performance benchmark"
 
 
% Based on revision 1.2 (July 2011) of Monte Carlo performance benchmark:
 
%
 
% http://www.oecd-nea.org/dbprog/MonteCarloPerformanceBenchmark.htm
 
 
% -----------------------------------------------------------------------------
 
 
% --- Neutron population and criticality cycles:
 
 
set pop 5000 100 20
 
set opti 1
 
 
% --- Thermal flux / fission rate mesh:
 
 
mesh 2 996 904
 
mesh 3 996 996
 
 
% ------------------------------------------------------------------------------
 
% ----- Geometry ---------------------------------------------------------------
 
 
% --- Cross section library file path:
 
 
set acelib "sss_jeff31u.xsdata"
 
 
% --- Boundary between hot and cold:
 
 
surf  1 pz 0.0
 
 
% -- Water layers:
 
 
cell 31  3  cold_water  -1
 
cell 32  3  hot_water    1
 
 
% --- Fuel pin:
 
 
pin 1
 
fuel    0.41
 
clad    0.475
 
fill 3
 
 
% --- Guide tube:
 
 
pin 2
 
fill 3  0.56
 
clad    0.62
 
fill 3
 
 
% --- Pin lattice:
 
 
lat 110  1  0.0 0.0 17 17  1.26
 
 
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 2 1 1 2 1 1 2 1 1 1 1 1
 
1 1 1 2 1 1 1 1 1 1 1 1 1 2 1 1 1
 
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
 
1 1 2 1 1 2 1 1 2 1 1 2 1 1 2 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 2 1 1 2 1 1 2 1 1 2 1 1 2 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 2 1 1 2 1 1 2 1 1 2 1 1 2 1 1
 
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
 
1 1 1 2 1 1 1 1 1 1 1 1 1 2 1 1 1
 
1 1 1 1 1 2 1 1 2 1 1 2 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
 
 
% --- assembly data:
 
 
surf  1000  inf
 
 
cell 110  4  fill 110  -1000
 
 
% --- Radial reflector:
 
 
cell 51  5  lower_radial_refl  -1
 
cell 52  5  upper_radial_refl  1
 
 
% --- Core lattice:
 
 
lat 211  1  0.0 0.0 17 17  21.42
 
 
5 5 5 5 5 4 4 4 4 4 4 4 5 5 5 5 5
 
5 5 5 4 4 4 4 4 4 4 4 4 4 4 5 5 5
 
5 5 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5
 
5 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5
 
5 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5
 
4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
 
4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
 
4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
 
4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
 
4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
 
4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
 
4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
 
5 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5
 
5 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5
 
5 5 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5
 
5 5 5 4 4 4 4 4 4 4 4 4 4 4 5 5 5
 
5 5 5 5 5 4 4 4 4 4 4 4 5 5 5 5 5
 
 
surf 211 sqc 0.0 0.0 182.07
 
 
cell 211 210 fill 211          -211
 
cell 212 210 lower_radial_refl  211 -1
 
cell 213 210 upper_radial_refl  211  1
 
 
% --- Core geometry:
 
 
surf 11  pz -229.0
 
surf 12  pz -199.0
 
surf 13  pz -193.0
 
surf 14  pz -183.0
 
surf 15  pz  183.0
 
surf 16  pz  203.0
 
surf 17  pz  215.0
 
surf 18  pz  223.0
 
 
surf 20 cyl 0.0 0.0 187.6
 
surf 21 cyl 0.0 0.0 209.0
 
surf 22 cyl 0.0 0.0 229.0
 
surf 23 cyl 0.0 0.0 249.0
 
 
cell 1  0  bottom_plate      -22      11 -12
 
cell 2  0  bottom_nozzle    -20      12 -13
 
cell 3  0  bottom_fa        -20      13 -14
 
cell 4  0  lower_radial_refl  20 -21  12 -14
 
cell 5  0  fill 210          -21      14 -15
 
cell 6  0  upper_radial_refl  20 -21  15 -17 
 
cell 7  0  top_fa            -20      15 -16
 
cell 8  0  top_nozzle        -20      16 -17
 
cell 9  0  cold_water        21 -22  12 -17
 
cell 10  0  top_plate        -22      17 -18
 
cell 11  0  vessel            22 -23  11 -18
 
 
cell 666 0 outside            23      11 -18
 
cell 667 0 outside            -11
 
cell 668 0 outside            18
 
 
% ------------------------------------------------------------------------------
 
% --- Materials ----------------------------------------------------------------
 
 
mat fuel  -10.062
 
 
92234.03c  4.9476E-6
 
92235.03c  4.8218E-4
 
92236.03c  9.0402E-5
 
92238.03c  2.1504E-2
 
93237.03c  7.3733E-6
 
94238.03c  1.5148E-6
 
94239.03c  1.3955E-4
 
94240.03c  3.4405E-5
 
94241.03c  2.1439E-5
 
94242.03c  3.7422E-6
 
95241.03c  4.5041E-7
 
95242.03c  9.2301E-9
 
95243.03c  4.7878E-7
 
96242.03c  1.0485E-7
 
96243.03c  1.4268E-9
 
96244.03c  8.8756E-8
 
96245.03c  3.5285E-9
 
42095.03c  2.6497E-5
 
43099.03c  3.2772E-5
 
44101.03c  3.0742E-5
 
44103.03c  2.3505E-6
 
47109.03c  2.0009E-6
 
54135.03c  1.0801E-8
 
55133.03c  3.4612E-5
 
60143.03c  2.6078E-5
 
60145.03c  1.9898E-5
 
62147.03c  1.6128E-6
 
62149.03c  1.1627E-7
 
62150.03c  7.1727E-6
 
62151.03c  5.4947E-7
 
62152.03c  3.0221E-6
 
63153.03c  2.6209E-6
 
64155.03c  1.5369E-9
 
8016.03c  4.5737E-2
 
 
mat clad -5.77 rgb  100 100 100
 
 
40000.03c  1.0
 
 
mat cold_water -0.74  moder lwtr 1001 rgb 100 150 200
 
 
1001.03c  2.000
 
8016.03c  1.000
 
5010.03c  6.490E-4
 
5011.03c  2.689E-3
 
 
mat hot_water -0.66  moder lwtr 1001  rgb 100 150 200
 
 
1001.03c  2.000
 
8016.03c  1.000
 
5010.03c  6.490E-4
 
5011.03c  2.689E-3
 
 
mat vessel -7.9  rgb  50 50 50
 
 
26000.03c  -96.3
 
28000.03c  -1.0
 
25055.03c  -1.0
 
42000.03c  -0.6
 
14000.03c  -0.4
 
24000.03c  -0.25
 
6000.03c  -0.25
 
29000.03c  -0.2
 
 
mat lower_radial_refl -4.32  moder lwtr 1001  rgb  100 100 100
 
 
1001.03c  -0.0095661
 
8016.03c  -0.0759107
 
5010.03c  -3.08409E-4
 
5011.03c  -1.40499E-5
 
26000.03c  -0.6309028
 
28000.03c  -0.0822917
 
25055.03c  -0.0182870
 
14000.03c  -0.0091435
 
24000.03c  -0.1737269
 
 
mat upper_radial_refl -4.28  moder lwtr 1001  rgb  100 100 100
 
 
1001.03c  -0.0086117
 
8016.03c  -0.0683369
 
5010.03c  -2.77638E-5
 
5011.03c  -1.26481E-4
 
26000.03c  -0.6367991
 
28000.03c  -0.0830607
 
25055.03c  -0.0184579
 
14000.03c  -0.0092290
 
24000.03c  -0.1753505
 
 
mat bottom_plate -7.184  moder lwtr 1001
 
 
1001.03c  -0.0011505
 
8016.03c  -0.0091296
 
5010.03c  -3.70915E-6
 
5011.03c  -1.68974E-5
 
26000.03c  -0.6828925
 
28000.03c  -0.0890729
 
25055.03c  -0.0197940
 
14000.03c  -0.0098970
 
24000.03c  -0.1880429
 
 
mat bottom_nozzle -2.53  moder lwtr 1001
 
 
1001.03c  -0.0245014
 
8016.03c  -0.1944274
 
5010.03c  -7.89917E-5
 
5011.03c  -3.59854E-4
 
26000.03c  -0.5386364
 
28000.03c  -0.0702569
 
25055.03c  -0.0156126
 
14000.03c  -0.0078063
 
24000.03c  -0.1483202
 
 
mat top_nozzle -1.746  moder lwtr 1001
 
 
1001.03c  -0.0358870
 
8016.03c  -0.2847761
 
5010.03c  -1.15699E-4
 
5011.03c  -5.27075E-4
 
26000.03c  -0.4682990
 
28000.03c  -0.0610825
 
25055.03c  -0.0135739
 
14000.03c  -0.0067869
 
24000.03c  -0.1289519
 
 
mat top_plate -4.28  moder lwtr 1001
 
 
1001.03c  -0.0086117
 
8016.03c  -0.0683369
 
5010.03c  -2.77638E-5
 
5011.03c  -1.26481E-4
 
26000.03c  -0.6367991
 
28000.03c  -0.0830607
 
25055.03c  -0.0184579
 
14000.03c  -0.0092290
 
24000.03c  -0.1753505
 
 
mat bottom_fa -3.044  moder lwtr 1001
 
 
1001.03c  -0.0162913
 
8016.03c  -0.1292776
 
5010.03c  -5.25228E-5
 
5011.03c  -2.39272E-4
 
40000.03c  -0.8541393
 
 
mat top_fa -1.762  moder lwtr 1001
 
 
1001.03c  -0.0292856
 
8016.03c  -0.2323919
 
5010.03c  -9.44159E-5
 
5011.03c  -4.30120E-4
 
40000.03c  -0.7377980
 
 
% --- Thermal scattering data
 
 
therm lwtr lwj3.00t
 
 
% ------------------------------------------------------------------------------
 
 
% --- Domain decomposition -----------------------------------------------------
 
% --- Domain decomposition -----------------------------------------------------
  

Revision as of 11:46, 16 May 2019

Domain decomposition is used for saving computer memory by spatially dividing large burnup calculation problems between multiple calculation nodes. Each node handles particle transport only within its own domain, and particles crossing the domain boundaries are sent to another node to complete the history. The implementation in Serpent relies on a collision-based approach, i.e. the transfer is invoked when the particle undergoes a collision in a material which belongs to another domain. The decomposition affects only burnable materials divided into depletion zones using the div sep option. The most typical domain decomposition case is a full-core burnup calculation, in which the fuel is decomposed into separate domains to save memory. Interaction data for the other materials is shared by all parallel tasks.

The current implementation in Serpent 2 is relatively simple, and mainly designed for reactor cores. The number of domains is determined by the number of MPI tasks, and the division using the set dd input option. There are three division types:

  1. simple, based on depletion zone index
  2. geometry-based division into sectors
  3. geometry-based division into sectors and a central zone

The method is illustrated by full-core example, where the depletion zone division and domain decomposition is defined by input lines:


The following full-core example illustrates the divisions.

% --- Domain decomposition -----------------------------------------------------

% --- Divide fuel into depletion zones:

div fuel sep 1

% --- Plot:

plot 3 1000 1000 0 -187.6 187.6 -187.6 187.6

% -- Domain decomposition (1 = simple, 2 = sector, 3 = sector + center)

set dd 3

% ------------------------------------------------------------------------------