Difference between revisions of "Automated depletion zone division"
(→Sub-division and geometry levels) |
(Update Serpent 1 manual address) |
||
(29 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 == | ||
+ | |||
+ | 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."'' [https://serpent.vtt.fi/serpent/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 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: | + | [[File:div1.png]] |
=== Simple cell-based division === | === Simple cell-based division === | ||
− | Defining a div | + | 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: | + | [[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 | + | 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 | + | 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: | + | [[File:div3.png]] |
− | |||
− | If necessary, the fuel pins can be further sub-divided into angular sectors using the subs | + | 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: | + | [[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 | + | 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 === | ||
Line 74: | Line 77: | ||
#pin universes | #pin universes | ||
− | The | + | 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: | 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 | + | #Cube containing the pebbles, and the outside world |
#Pebble distribution | #Pebble distribution | ||
#Pebble universes | #Pebble universes | ||
Line 86: | Line 89: | ||
With | With | ||
− | <nowiki>div sep 1</nowiki> | + | <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: | 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]] | [[File:Divsep1_131224.png|500px]] | ||
− | |||
With | With | ||
− | <nowiki>div sep 3</nowiki> | + | <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: | 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: | ||
Line 101: | Line 103: | ||
[[File:Divsep3_131224.png|500px]] | [[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]] | ||
+ | |||
+ | and then apply a symmetry card on the lattice universe (here 10): | ||
+ | |||
+ | <nowiki>set usym 10 3 2 0.0 0.0 225 180</nowiki> | ||
+ | |||
+ | to cover the remaining positions: | ||
+ | |||
+ | [[File: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 [[Defining material volumes|manually]], because automated volume calculation <u>will always fail</u> in this type of structures. | ||
+ | |||
+ | == References == | ||
− | + | <references/> | |
− | + | [[Category:Input]] | |
+ | [[Category:Tutorials]] |
Latest revision as of 06:56, 9 October 2024
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.
Contents
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:
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:
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:
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:
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:
- 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 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:
- Cube containing the pebbles, and the outside world
- Pebble distribution
- Pebble universes
- Particle distributions
- 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:
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:
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:
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:
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
- ^ Leppänen, J. "Serpent – a Continuous-energy Monte Carlo Reactor Physics Burnup Calculation Code." User manual, June 18, 2015.