Difference between revisions of "Automated depletion zone division"

From Serpent Wiki
Jump to: navigation, search
(Sub-division and geometry levels)
(Sub-division and geometry levels)
 
(46 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 
Serpent 2 has the capability to perform automated depletion zone division for materials in burnup calculation. There are two options:
 
Serpent 2 has the capability to perform automated depletion zone division for materials in burnup calculation. There are two options:
*The number of radial regions in 2D pin-type objects can be entered directly in the [[Input syntax manual#mat (material definition)|material card]] ("Serpent 1" type division).
+
*The number of radial regions in 2D pin-type objects can be entered directly in the [[Input syntax manual#mat (material definition)|material card]] ("Serpent 1" type division). This option should no longer be used.
*The [[Input syntax manual#div (divisor definition)|div card]] can be used to perform 3D depletion zone division.
+
*The [[Input syntax manual#div (divisor definition)|div card]] can be used to perform both 2D and 3D depletion zone division.
Both approaches are discussed below. With automated depletion zone division it important to always check the volumes using the [[Monte Carlo based volume checker routine]], and if necessary, define the volumes [[Defining material volumes|manually]].
+
Both approaches are discussed below. With automated depletion zone division it is important to always check the volumes using the [[Installing and running Serpent#Monte Carlo volume calculation routine|Monte Carlo based volume checker routine]], and if necessary, define the volumes [[Defining material volumes|manually]].
 
+
  
 
== Division with material card ==
 
== Division with material card ==
 +
 +
This option should no longer be used.
 +
 +
For description, see Sec. 8.2 in Serpent 1 input manual.<ref name="manual">Leppänen, J.
 +
''"Serpent – a Continuous-energy Monte Carlo Reactor Physics Burnup Calculation Code."'' [http://montecarlo.vtt.fi/download/Serpent_manual.pdf User manual], June 18, 2015.</ref>
  
 
== Division with divisor card ==
 
== Division with divisor card ==
  
 
The [[Input syntax manual#div (divisor definition)|div card]] can be used to separate each cell into its own depletion zone, and further sub-divide pin-type objects into axial-, radial and angular sub-zones.
 
The [[Input syntax manual#div (divisor definition)|div card]] can be used to separate each cell into its own depletion zone, and further sub-divide pin-type objects into axial-, radial and angular sub-zones.
The division takes into account the universe-based geometry structure, so the same cell in two different univeses is treated as two separate cells. For fuel assembly geometries, for example, each pin can be treated as a separate material. If the assembly is put in a core lattice, the same pin in two different assembly positions can be treated separately and so on.  
+
The division takes into account the universe-based geometry structure, so same cells in two different universes are treated separately. For fuel assembly geometries, for example, each pin can be treated as a separate material. If the assembly is put in a core lattice, the same pin in two different assembly positions can be treated separately and so on.  
  
The basic methodology is best illustrated by an example involving a BWR fuel assembly geometry consisting of a 10 x 10 lattice of fuel pins with 13 different fuel types (fuel1, fuel2, ... fuel13):
+
The basic methodology is best illustrated by an example involving a BWR fuel assembly geometry consisting of a 10 x 10 lattice of fuel pins with 13 different fuel types (fuel1, fuel2, ... fuel13). The different materials are plotted in different colors:
  
[[File:bwr1_120608.png]]
+
[[File:div1.png]]
  
 
=== Simple cell-based division ===
 
=== Simple cell-based division ===
  
Defining a div-card for each fuel composition:
+
Defining a [[Input syntax manual#div (divisor definition)|div card]] for each fuel composition:
 
   
 
   
 
  <nowiki>
 
  <nowiki>
Line 28: Line 32:
 
divides identical compositions into different depletion zones:
 
divides identical compositions into different depletion zones:
  
[[File:Bwr2_120608.png]]
+
[[File:div2.png]]
  
 +
Some of the colors in the plot may appear similar, but each regions now contains a different material. The value after the '''sep''' entry defines the geometry level at which the division is performed. Value 1 refers to the last level, which essentially means that all cells in the geometry are handled separately. The use of the sep entry is revisited at the end of this example.
  
Some of the colors in the plot may appear similar, but each regions now contains a different material. The value after the sep-entry defines the geometry level at which the division is performed. Value 1 refers to the last level, which essentially means that all cells in the geometry are handled separately. The use of the sep entry is revisited at the end of this example.
+
=== Sub-division by Cartesian or cylindrical mesh ===
  
=== Radial, angular and axial sub-division ===
+
Accounting for the depletion of burnable absorber requires radial sub-division, which for pin-type material regions can be done automatically. If it is assumed that the absorber is mixed in fuel types 9-13, sub-division into 10 rings can be done using the '''subr''' entry:  
 
+
Accounting for the depletion of burnable absorber requires radial sub-division, which for pin-type material regions can be done automatically. If it is assumed that the absorber is mixed in fuel types 9-13, sub-division into 10 rings can be done using the subr-entry:  
+
  
 
  <nowiki>
 
  <nowiki>
Line 46: Line 49:
 
The division is made between 0 and 0.438 cm into 10 rings with equal cross-sectional area:
 
The division is made between 0 and 0.438 cm into 10 rings with equal cross-sectional area:
  
[[File:Bwr3_120608.png]]
+
[[File:div3.png]]
  
 
+
If necessary, the fuel pins can be further sub-divided into angular sectors using the '''subs''' entry, for example:
If necessary, the fuel pins can be further sub-divided into angular sectors using the subs-entry, for example:
+
  
 
  <nowiki>
 
  <nowiki>
Line 59: Line 61:
 
The pins are divided into 4 sectors and tilted by 45 degrees:
 
The pins are divided into 4 sectors and tilted by 45 degrees:
  
[[File:Bwr4_120608.png]] [[File:Bwr5_120608.png]]
+
[[File:div4.png]]
  
 +
The axial division works in a similar manner using the '''subz''' entry, taking the number of axial zones and minimum and maximum coordinate as the input values. Radial, angular and axial sub-division are limited to pin-type material regions, but the cell-based division applies to any type of geometry.
  
The axial division works in a similar manner using the subz-enetry, taking the number of axial zones and minimum and maximum coordinate as the input values. Radial, angular and axial sub-division are limited to pin-type material regions, but the cell-based division applies to any type of geometry.
+
The sub-division can also be done using a Cartesian mesh, by providing the mesh size in x-, y- and z-directions.
  
 
=== Sub-division and geometry levels ===
 
=== Sub-division and geometry levels ===
  
In large complex geometries it may not be possible to handle every cell as a separate depletion zone. In such case the sep-entry can be used, for example, to sub-divide the fuel in a large LWR core into separate depletion zones on assembly-, instead of pin-basis. Another example is an HGTR geometry consisting of millions of individual fuel kernels. Instead of handling each kernel as a separate depletion zone, the division can be done based on compacts or pebbles. The following example is based on a pebble-bed HTGR geometry.
+
In large complex geometries it may not be possible to handle every cell as a separate depletion zone. In such case the sep-entry can be used, for example, to sub-divide the fuel in a large LWR core into separate depletion zones on assembly-, instead of pin-basis. Another example is an HGTR geometry consisting of millions of individual fuel kernels. Instead of handling each kernel as a separate depletion zone, the division can be done based on compacts or pebbles.
 +
 
 +
The concept of a geometry level may be a bit difficult to understand, but basically it means that whenever there is a cell, lattice, or any other geometry structure filled with another universe, it adds a new level in the geometry. What makes things a bit more complicated is that regular structures, such as lattices, also form a new level. So in a typlical BWR assembly geometry, for example, the levels would be:
 +
 
 +
#Structures defining channel box wall, moderator channels, etc. and the outside world
 +
#Lattice of fuel pins
 +
#pin universes
 +
 
 +
The parameter ''LVL'' following the '''sep''' entry determines the number of levels counted <u>backwards</u> from the last one (''LVL'' = 1 being the last).
 +
 
 +
Consider another example, consisting of 4 HTGR fuel pebbles, each filled with 50 TRISO particles. The geometry consits of 5 levels:
 +
 
 +
#Cube containing the pebbles, and the outside world
 +
#Pebble distribution
 +
#Pebble universes
 +
#Particle distributions
 +
#Particle universes
 +
 
 +
With
 +
 
 +
<nowiki>div fuel sep 1</nowiki>
 +
 
 +
the division is based on particle universes (level 5, last of the geometry levels), and each particle in each pebble is handled as a separate depletion zone, resulting in a total of 200 burnable materials. A geometry plot shows each fuel kernel in different color:
 +
 
 +
[[File:Divsep1_131224.png|500px]]
 +
 
 +
With
 +
 
 +
<nowiki>div fuel sep 3</nowiki>
 +
 
 +
the division is based on the pebble universe (level 2, the third universe counted backwards from the end), and the number of depletion zones is reduced to 4, one for each pebble:
 +
 
 +
[[File:Divsep3_131224.png|500px]]
 +
 
 +
When the number of pebbles and fuel kernels per pebble increases to several thousand, this makes a huge difference for the total number of depletion zones.
 +
 
 +
The way the division works is not always very intuitive. In the example above, ''LVL'' = 2 results in the same division as ''LVL'' = 1, and ''LVL'' = 4 in the same divison as ''LVL'' = 3. Usually the best way is to try different values and look at the geometry plotter for the result (note that setting rgb values in the [[Input syntax manual#mat (material definition)|material cards]] fixes the color scheme and doesn't show the sub-division).
 +
 
 +
== Division with symmetries ==
 +
 
 +
The automated depletion zone division can be used with universe symmetries (defined by the [[Input syntax manual#set usym|set usym card]]) to reduce the number of depletion zones. For the previous BWR fuel assembly geometry this could be done to account for the 1/2 symmetry of the pin layout. The trick is to define only the pins that will be included in the geometry:
 +
 
 +
[[File:div5.png]]
  
The concept of a geometry level may be a bit difficult to understand, but basically it means that whenever there is a cell, lattice, or any other geometry structure filled with another universe, it adds a new level in the geometry. What makes things a bit more complicated is that lattices and pbed-structures themselves form a single level, so in a typlical BWR assembly geometry, for example, the levels are:
+
and then apply a symmetry card on the lattice universe (here 10):
  
0: Structures defining channel box wall, moderator channels, etc. and the outside world
+
<nowiki>set usym 10 3 2 0.0 0.0 225 180</nowiki>
1: Lattice of fuel pins
+
2: pin universes
+
  
The number "<lvl>" following the "sep" entry determines the number of levels counted backwards from the last one (<lvl> = 1 being the last). I decided to go with this approach instead counting forwards because in complicated geometries the different levels may be difficult to see, and it might be easier to start with <lvl> = 1 and increase the number until the geometry plotter shows the desired result.
+
to cover the remaining positions:
  
Consider another example, consisting of 4 HTGR-type fuel pebbles filled with 50 TRISO particles each. The geometry consits of 5 levels:
+
[[File:div6.png]]
  
0: a cube containing the pebbles
+
It is important to note that the positions that are overlapped by the symmetry should remain empty, because Serpent will process all pins included in the lattice card, regardless of whether they end up in the final geometry or not. The program will for example use excess memory if the pins are defined for the overlapped parts of the geometry. It is also important do define the volumes of the depletion zones [[Defining material volumes|manually]], because automated volume calculation <u>will always fail</u> in this type of structures.
1: pebble distribution
+
2: pebble universes
+
3: particle distributions
+
4: particle universes
+
  
With "div sep 1", the division is based on particle universes (level 4), and each particle in each pebble is handled as a separate depletion zone, resulting in a total of 200 burnable materials. A geometry plot shows each fuel kernel in different color:
+
== References ==
  
=== Things to note ===
+
<references/>
  
*When the divisor card is used, Serpent tries to calculate the sub-zone volumes automatically. Since this may fail, it is always a good idea to check the volumes using the [[Monte Carlo based volume checker routine]], and if necessary, define the them [[Defining material volumes|manually]].
+
[[Category:Input]]
 +
[[Category:Tutorials]]

Latest revision as of 15:29, 2 October 2022

Serpent 2 has the capability to perform automated depletion zone division for materials in burnup calculation. There are two options:

  • The number of radial regions in 2D pin-type objects can be entered directly in the material card ("Serpent 1" type division). This option should no longer be used.
  • The div card can be used to perform both 2D and 3D depletion zone division.

Both approaches are discussed below. With automated depletion zone division it is important to always check the volumes using the Monte Carlo based volume checker routine, and if necessary, define the volumes manually.

Division with material card

This option should no longer be used.

For description, see Sec. 8.2 in Serpent 1 input manual.[1]

Division with divisor card

The div card can be used to separate each cell into its own depletion zone, and further sub-divide pin-type objects into axial-, radial and angular sub-zones. The division takes into account the universe-based geometry structure, so same cells in two different universes are treated separately. For fuel assembly geometries, for example, each pin can be treated as a separate material. If the assembly is put in a core lattice, the same pin in two different assembly positions can be treated separately and so on.

The basic methodology is best illustrated by an example involving a BWR fuel assembly geometry consisting of a 10 x 10 lattice of fuel pins with 13 different fuel types (fuel1, fuel2, ... fuel13). The different materials are plotted in different colors:

Div1.png

Simple cell-based division

Defining a div card for each fuel composition:

div fuel1 sep 1
div fuel2 sep 1
...
div fuel13 sep 1

divides identical compositions into different depletion zones:

Div2.png

Some of the colors in the plot may appear similar, but each regions now contains a different material. The value after the sep entry defines the geometry level at which the division is performed. Value 1 refers to the last level, which essentially means that all cells in the geometry are handled separately. The use of the sep entry is revisited at the end of this example.

Sub-division by Cartesian or cylindrical mesh

Accounting for the depletion of burnable absorber requires radial sub-division, which for pin-type material regions can be done automatically. If it is assumed that the absorber is mixed in fuel types 9-13, sub-division into 10 rings can be done using the subr entry:

div fuel9  sep 1 subr 10 0.0 4.38E-01
div fuel10 sep 1 subr 10 0.0 4.38E-01
div fuel11 sep 1 subr 10 0.0 4.38E-01
div fuel12 sep 1 subr 10 0.0 4.38E-01
div fuel13 sep 1 subr 10 0.0 4.38E-01

The division is made between 0 and 0.438 cm into 10 rings with equal cross-sectional area:

Div3.png

If necessary, the fuel pins can be further sub-divided into angular sectors using the subs entry, for example:

div fuel1 sep 1 subs 4 45.0
div fuel2 sep 1 subs 4 45.0
...
div fuel13 sep 1 subr 10 0.0 4.38E-01 subs 4 45.0

The pins are divided into 4 sectors and tilted by 45 degrees:

Div4.png

The axial division works in a similar manner using the subz entry, taking the number of axial zones and minimum and maximum coordinate as the input values. Radial, angular and axial sub-division are limited to pin-type material regions, but the cell-based division applies to any type of geometry.

The sub-division can also be done using a Cartesian mesh, by providing the mesh size in x-, y- and z-directions.

Sub-division and geometry levels

In large complex geometries it may not be possible to handle every cell as a separate depletion zone. In such case the sep-entry can be used, for example, to sub-divide the fuel in a large LWR core into separate depletion zones on assembly-, instead of pin-basis. Another example is an HGTR geometry consisting of millions of individual fuel kernels. Instead of handling each kernel as a separate depletion zone, the division can be done based on compacts or pebbles.

The concept of a geometry level may be a bit difficult to understand, but basically it means that whenever there is a cell, lattice, or any other geometry structure filled with another universe, it adds a new level in the geometry. What makes things a bit more complicated is that regular structures, such as lattices, also form a new level. So in a typlical BWR assembly geometry, for example, the levels would be:

  1. Structures defining channel box wall, moderator channels, etc. and the outside world
  2. Lattice of fuel pins
  3. pin universes

The parameter LVL following the sep entry determines the number of levels counted backwards from the last one (LVL = 1 being the last).

Consider another example, consisting of 4 HTGR fuel pebbles, each filled with 50 TRISO particles. The geometry consits of 5 levels:

  1. Cube containing the pebbles, and the outside world
  2. Pebble distribution
  3. Pebble universes
  4. Particle distributions
  5. Particle universes

With

div fuel sep 1

the division is based on particle universes (level 5, last of the geometry levels), and each particle in each pebble is handled as a separate depletion zone, resulting in a total of 200 burnable materials. A geometry plot shows each fuel kernel in different color:

Divsep1 131224.png

With

div fuel sep 3

the division is based on the pebble universe (level 2, the third universe counted backwards from the end), and the number of depletion zones is reduced to 4, one for each pebble:

Divsep3 131224.png

When the number of pebbles and fuel kernels per pebble increases to several thousand, this makes a huge difference for the total number of depletion zones.

The way the division works is not always very intuitive. In the example above, LVL = 2 results in the same division as LVL = 1, and LVL = 4 in the same divison as LVL = 3. Usually the best way is to try different values and look at the geometry plotter for the result (note that setting rgb values in the material cards fixes the color scheme and doesn't show the sub-division).

Division with symmetries

The automated depletion zone division can be used with universe symmetries (defined by the set usym card) to reduce the number of depletion zones. For the previous BWR fuel assembly geometry this could be done to account for the 1/2 symmetry of the pin layout. The trick is to define only the pins that will be included in the geometry:

Div5.png

and then apply a symmetry card on the lattice universe (here 10):

set usym 10 3 2 0.0 0.0 225 180

to cover the remaining positions:

Div6.png

It is important to note that the positions that are overlapped by the symmetry should remain empty, because Serpent will process all pins included in the lattice card, regardless of whether they end up in the final geometry or not. The program will for example use excess memory if the pins are defined for the overlapped parts of the geometry. It is also important do define the volumes of the depletion zones manually, because automated volume calculation will always fail in this type of structures.

References

  1. ^ Leppänen, J. "Serpent – a Continuous-energy Monte Carlo Reactor Physics Burnup Calculation Code." User manual, June 18, 2015.