The neutron diffusion equation is often used to perform core-level neutronic calculations. It consists of a set of second-order partial differential equations over the spatial coordinates that are, both in the academia and in the industry, usually solved by discretizing the neutron leakage term using a structured grid. This work introduces the alternatives that unstructured grids can provide to aid the engineers to solve the neutron diffusion problem and gives a brief overview of the variety of possibilities they offer. It is by understanding the basic mathematics that lie beneath the equations that model real physical systems; better technical decisions can be made. It is in this spirit that this paper is written, giving a first introduction to the basic concepts which can be incorporated into core-level neutron flux computations. A simple two-dimensional homogeneous circular reactor is solved using a coarse unstructured grid in order to illustrate some basic differences between the finite volumes and the finite elements method. Also, the classic 2D IAEA PWR benchmark problem is solved for eighty combinations of symmetries, meshing algorithms, basic geometric entities, discretization schemes, and characteristic grid lengths, giving even more insight into the peculiarities that arise when solving the neutron diffusion equation using unstructured grids.
The better we engineers are able to solve the equations that model the real physical plants we design and build, the better services we can provide to our customers, and thus, general people can be benefited with better nuclear facilities and installations. The Boltzmann neutron transport equation describes how neutrons move and interact with matter. It involves continuous energy and space-dependent macroscopic cross-sections that should be known beforehand and gives an integrodifferential equation for the vectorial flux as a function of seven independent scalar variables, namely, three spatial coordinates, two angular directions, energy, and time. It represents a balance that holds at every point in space and at every instant in time. Such an equation may be tackled using a variety of approaches; one of them is a simplification that leads to the so-called neutron diffusion approximation that states that the neutron current is proportional to the gradient of the neutron flux by means of a diffusion coefficient, which is a function of the macroscopic transport cross-section. When this approximation—which is analogous to Fick’s law in species diffusion and to the Fourier expression of the heat flux—is replaced into the transport equation, a partial differential equation of second order on the spatial coordinates is obtained. Formally, the neutron diffusion equation may be derived from the transport equation by expanding the angular dependance of the vectorial neutron flux in a spherical harmonics series and retaining both the zero and one-moment terms, neglecting the contributions of higher moments [
The energy domain is usually divided into a finite number of groups, thus transforming one partial differential equation over space and energy into several coupled equations—one for each group—containing differential operators applied only over the spatial coordinates. This resulting set of second-order PDEs is known as the multigroup neutron diffusion equation and is usually used to model, design, and analyze nuclear reactor cores by the so-called core-level calculation codes. These programs take homogenized macroscopic cross-sections (which may depend on the spatial coordinates through changes of fuel burnup, materials temperature or other properties) computed by lattice-level codes as an input and solve the diffusion equation to obtain the flux (and its related quantities such as power, xenon, etc.) distribution within the core.
Given a certain spatial distribution of materials and its properties inside a reactor core, chances are that the resulting reactor will not be critical. That is to say, in general, the rate of absorptions and leakages will not exactly overcome the neutrons born by fissions sources, and some kind of feedback—either through an external control system or by means of an inherent stability mechanism of the core [
Core-level codes traditionally use regular grids to discretize the differential operators over the space. Depending on the characteristics and symmetry of the reactor core, either squares or hexagons are used as the basic shape of the mesh. Usual discretization schemes involve cell-centered finite differences or two-step coarse-mesh/coupling coefficient methods [
This way, unstructured grids may be used to study, analyze, and understand the numerical errors introduced by the discretization of the leakage operator with a difference-based scheme over a coarse structured grid by successively refining the mesh whilst comparing the solutions with the structured one, as depicted in Figure
Discretization of a homogenized PHWR array of fuel channels for a core-level diffusion computation. Each square is a lattice-level cell comprising one fuel channel and the surrounding moderator.
Coarse structured grid commonly used in diffusion codes such as in [
Discretization of the lattice cell using a fine unstructured grid as proposed in this work
Further refinement of the unstructured grid
When a continuous domain (a) is meshed with an unstructured grid, there appears a geometric condition known as the staircase effect (b). For the same number of nodes, unstructured grids reproduce the original geometry better (c).
Continuous two-dimensional domain
Structured grid
Unstructured grid
Cross section of a hypothetical reactor in which the control rods enter into the core from above with a certain attack angle with respect to the vertical direction.
In the present work, we take the steady-state multigroup neutron diffusion equation for granted. That is to say, we focus on the mathematical aspects of the eigenvalue problem and make no further reference to its derivation from the transport equation nor to the validity of its application to reactor problems, as these subjects that are extensively discussed in the classic literature [
The differential formulation of the steady-state multigroup neutron diffusion equation over an
If the cross sections depend only in an explicit way on the spatial coordinate
It should be noted that, if at least one of the diffusion coefficients
When transforming the strong formulation into a weak formulation—not just into an integral formulation—both (
These
In any case, both formulations involve the computation of there is a unique real positive eigenvalue greater in magnitude than any other eigenvalue, all the elements of the eigenvector corresponding to that eigenvalue are real and positive, all other eigenvectors either have some elements that are zero or have elements that differ in sign from each other.
Being a differential equation over space, the neutron diffusion equation needs proper boundary conditions to conform a properly defined mathematical problem. These can be imposed flux (Dirichlet), imposed current (Neumann), or a linear combination (Robin). However, due to the fact that in the linear problem in absence of external sources—such as (
One way of solving the neutron diffusion equation—and in general any partial differential equation over space—is by discretizing the differential operators with some kind of scheme that is applied over a certain spatial grid. Given an
Almost all of the grid-based schemes—which are known as nodal schemes, which are to be differentiated from modal schemes based on series expansions—are based in either the finite differences, volumes, or elements method. Finite differences schemes provide the most simple and basic approach to replace differential (i.e., continuous) operators by difference (i.e., discrete) approximations. However, they are not suitable for unstructured meshes and may introduce convergence problems with parameters that are discontinuous in space, which is the case for any reactor core composed of at least two different materials. Moreover, boundary conditions are hard to incorporate and usually give rise to incorrect results.
Methods of the finite volumes family involve the integration of the differential equation over each elementary entity, applying the divergence theorem to transform volume integrals into surface integrals and providing a mean to estimate the fluxes through the entity’s surface using information contained in its neighbors. In this context, each elementary entity is called a cell, and finite volumes methods give the mean value of each of the group fluxes
Finally, finite elements methods rely on a weak formulation of the differential problem similar to (
The same unstructured grid may be used either for the finite volumes or for the finite elements method. In the first case, the unknowns are the mean value of the fluxes over each cell, whilst in the latter the unknowns are the fluxes evaluated at each node. Therefore, the number of unknowns
The finite volumes method computes the unknown flux in the cell centers (squares), whilst the finite elements method computes the fluxes at the nodes (circles).
We now proceed to show two illustrative results that are to be taken as an overview of the possibilities that unstructured grids can provide in order to tackle the multigroup neutron diffusion problem. The examples are two-dimensional problems, as they contain some of the complexities a real three-dimensional reactor posse, yet the reported results are not so complicated as to be easily understood and analyzed. In particular, we state some basic differences between the finite volumes and the finite elements methods by solving a two-group homogeneous bare reactor with the Robin boundary conditions over the very same grid, although a rather coarse one, so the differences can be observed directly into the resulting figures. We then solve the classical two-dimensional LWR problem, also known as the 2D IAEA PWR benchmark. Not only do we show again the differences between the finite volumes and elements formulation but also we solve the problem using different combinations of meshing algorithms, basic shapes, and characteristic lengths of the mesh.
To solve the two examples shown below, we employed the milonga code, which was written from scratch by the author of this paper and is currently still under development within his ongoing PhD thesis. There exists a first public release [
It works by first reading an input file that, using plain-text English keywords and arguments, defines the number
Figures
A bare homogeneous circle solved with finite volumes (184 unknowns).
Fast flux distribution
Fast flux unknowns
Matrix
Matrix
A bare homogeneous circle solved with finite elements (218 unknowns).
Fast flux distribution
Fast flux unknowns
Matrix
Matrix
In case a part of the domain contained a nonmultiplicative material such as a reflector, then there would appear sections of the fission matrix with null values in both methods, rendering
As the two-group neutron diffusion equation with uniform cross sections over a circle subject to null-flux boundary conditions has an analytical solution, it is adequate to compare how the two proposed numerical schemes relate to it. In the studied problem, we ignored upscattering and fast fissions. Then, the analytical effective multiplication factor is
Figure
The effective multiplication factor of a two-group bare circular reactor of radius
We may draw two other conclusions from Figure
Absolute value of the error committed in the computation of
This is a classical two-group neutron diffusion problem, first designed in the early 1970s and taken as a reference benchmark for computational codes. A number of codes were used to solve either this problem or its three-dimensional formulation [
Macroscopic cross-sections (units are not stated in the original reference, but they are assumed to be in cm−1 or cm as appropriate).
|
|
|
|
|
|
Material | |
---|---|---|---|---|---|---|---|
1 | 1.5 | 0.4 | 0.02 | 0.01 | 0.080 | 0.135 | Fuel 1 |
2 | 1.5 | 0.4 | 0.02 | 0.01 | 0.085 | 0.135 | Fuel 2 |
3 | 1.5 | 0.4 | 0.02 | 0.01 | 0.130 | 0.135 | Fuel 2 + rod |
4 | 2.0 | 0.3 | 0.04 | 0 | 0.010 | 0 | Reflector |
The 2D IAEA PWR benchmark geometry.
The expected results are as follows. Maximum eigenvalue. Fundamental flux distributions: Radial flux traverses Note: the fluxes shall be normalized such that
Value and location of maximum power density. This corresponds to maximum of Average subassembly powers where Number of unknowns in the problem, number of iterations, and total and outer. Total computing time, iteration time, IO-time, and computer used. Type and numerical values of convergence criteria. Table of average group fluxes for a square mesh grid of 20 Dependence of results on mesh spacing.
Even though the original problem is based on a quarter-core situation, the problem has an eighth-core symmetry which cannot be taken into account by structured grids which are the main target of the benchmark. However, nonstructured grids can take into consideration any kind of symmetry almost without loss of accuracy and at the same time reducing roughly the number of unknowns by a half and the associated computational effort needed to solve the problem by a factor of four. Answers to items
Taking advantage of milonga’s capability of reading and parsing command-line arguments, the selection of the core geometry (quarter or eighth), the meshing algorithm (delaunay [
Results of the 2D IAEA PWR Benchmark problem obtained with the milonga code for the eighty proposed combinations of symmetry, meshing algorithm, basic shape, discretization scheme, and characteristic element/cell length. The reference solution is
Case no. | Symmetry | Mesh algorithm | Basic shape | Solution method |
|
|
|
Total unknowns | Outer iter. | Linear iter. | Inner iter. | Residual norm | Relative error | Error estimate | Memory (Mb) | Page faults |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | 1/4 | Delaunay |
|
Volumes | 4.0 |
|
11.45 | 8264 | 3 | 32 | 1033 |
|
|
|
34 | 9470 |
2 | 1/4 | Delaunay |
|
Volumes | 3.0 | 8.5 | 11.35 | 15740 | 3 | 32 | 1967 |
|
|
|
48 | 13401 |
3 | 1/4 | Delaunay |
|
Volumes | 2.0 | 19.7 | 11.24 | 31188 | 3 | 32 | 3898 |
|
|
|
76 | 21932 |
4 | 1/4 | Delaunay |
|
Volumes | 1.0 | 15.3 | 11.23 | 127476 | 3 | 32 | 15934 |
|
|
|
273 | 81886 |
5 | 1/4 | Delaunay |
|
Volumes | 0.5 | 18.7 | 11.19 | 510676 | 3 | 32 | 63834 |
|
|
|
1148 | 352261 |
6 | 1/4 | Delaunay |
|
Elements | 4.0 | 17.3 | 11.00 | 4308 | 3 | 32 | 538 |
|
|
|
31 | 8794 |
7 | 1/4 | Delaunay |
|
Elements | 3.0 | 11.7 | 11.07 | 8108 | 3 | 32 | 1013 |
|
|
|
47 | 12946 |
8 | 1/4 | Delaunay |
|
Elements | 2.0 | 8.4 | 11.12 | 15936 | 3 | 32 | 1992 |
|
|
|
73 | 21347 |
9 | 1/4 | Delaunay |
|
Elements | 1.0 | 6.2 | 11.16 | 64478 | 3 | 32 | 8059 |
|
|
|
262 | 77105 |
10 | 1/4 | Delaunay |
|
Elements | 0.5 | 5.8 | 11.17 | 256700 | 3 | 32 | 32087 |
|
|
|
1091 | 331969 |
11 | 1/4 | Delaunay | □ | Volumes | 4.0 | 5.3 | 11.49 | 5042 | 3 | 32 | 630 |
|
|
|
28 | 8007 |
12 | 1/4 | Delaunay | □ | Volumes | 3.0 | 34.6 | 11.33 | 8560 | 3 | 32 | 1070 |
|
|
|
39 | 10895 |
13 | 1/4 | Delaunay | □ | Volumes | 2.0 | 30.8 | 11.31 | 15576 | 3 | 32 | 1947 |
|
|
|
54 | 15645 |
14 | 1/4 | Delaunay | □ | Volumes | 1.0 | 17.7 | 11.22 | 60774 | 3 | 32 | 7596 |
|
|
|
167 | 50115 |
15 | 1/4 | Delaunay | □ | Volumes | 0.5 | 19.9 | 11.20 | 244936 | 3 | 32 | 30617 |
|
|
|
698 | 215678 |
16 | 1/4 | Delaunay | □ | Elements | 4.0 | 19.6 | 11.00 | 5222 | 3 | 32 | 652 |
|
|
|
47 | 13098 |
17 | 1/4 | Delaunay | □ | Elements | 3.0 | 12.3 | 11.07 | 8810 | 3 | 32 | 1101 |
|
|
|
69 | 18598 |
18 | 1/4 | Delaunay | □ | Elements | 2.0 | 9.0 | 11.12 | 15922 | 3 | 32 | 1990 |
|
|
|
107 | 30591 |
19 | 1/4 | Delaunay | □ | Elements | 1.0 | 6.3 | 11.16 | 61456 | 3 | 32 | 7682 |
|
|
|
389 | 113237 |
20 | 1/4 | Delaunay | □ | Elements | 0.5 | 5.8 | 11.17 | 246332 | 3 | 32 | 30791 |
|
|
|
1676 | 498192 |
21 | 1/4 | Delquad |
|
Volumes | 4.0 |
|
11.44 | 6228 | 3 | 32 | 778 |
|
|
|
30 | 8495 |
22 | 1/4 | Delquad |
|
Volumes | 3.0 | 57.0 | 11.53 | 11820 | 3 | 32 | 1477 |
|
|
|
40 | 10879 |
23 | 1/4 | Delquad |
|
Volumes | 2.0 | 45.9 | 11.03 | 24100 | 3 | 32 | 3012 |
|
|
|
62 | 17715 |
24 | 1/4 | Delquad |
|
Volumes | 1.0 | 51.2 | 11.04 | 96400 | 3 | 32 | 12050 |
|
|
|
207 | 61714 |
25 | 1/4 | Delquad |
|
Volumes | 0.5 | 52.8 | 11.06 | 385600 | 3 | 32 | 48200 |
|
|
|
838 | 255735 |
26 | 1/4 | Delquad |
|
Elements | 4.0 | 22.0 | 10.93 | 3288 | 3 | 32 | 411 |
|
|
|
30 | 8495 |
27 | 1/4 | Delquad |
|
Elements | 3.0 | 14.0 | 11.04 | 6148 | 3 | 32 | 768 |
|
|
|
39 | 11000 |
28 | 1/4 | Delquad |
|
Elements | 2.0 | 8.2 | 11.10 | 12392 | 3 | 32 | 1549 |
|
|
|
61 | 17067 |
29 | 1/4 | Delquad |
|
Elements | 1.0 | 6.3 | 11.15 | 48882 | 3 | 32 | 6110 |
|
|
|
197 | 58046 |
30 | 1/4 | Delquad |
|
Elements | 0.5 | 5.8 | 11.16 | 194162 | 3 | 32 | 24270 |
|
|
|
790 | 238769 |
31 | 1/4 | Delquad | □ | Volumes | 4.0 |
|
11.74 | 3132 | 3 | 32 | 391 |
|
|
|
26 | 7322 |
32 | 1/4 | Delquad | □ | Volumes | 3.0 |
|
11.51 | 5922 | 3 | 32 | 740 |
|
|
|
31 | 8779 |
33 | 1/4 | Delquad | □ | Volumes | 2.0 |
|
11.39 | 12050 | 3 | 32 | 1506 |
|
|
|
44 | 12239 |
34 | 1/4 | Delquad | □ | Volumes | 1.0 |
|
11.26 | 48200 | 3 | 32 | 6025 |
|
|
|
122 | 36094 |
35 | 1/4 | Delquad | □ | Volumes | 0.5 |
|
11.23 | 192800 | 3 | 32 | 24100 |
|
|
|
464 | 140228 |
36 | 1/4 | Delquad | □ | Elements | 4.0 | 22.4 | 10.93 | 3294 | 3 | 32 | 411 |
|
|
|
35 | 9852 |
37 | 1/4 | Delquad | □ | Elements | 3.0 | 14.1 | 11.04 | 6144 | 3 | 32 | 768 |
|
|
|
51 | 14018 |
38 | 1/4 | Delquad | □ | Elements | 2.0 | 9.2 | 11.11 | 12392 | 3 | 32 | 1549 |
|
|
|
81 | 22526 |
39 | 1/4 | Delquad | □ | Elements | 1.0 | 6.5 | 11.15 | 48882 | 3 | 32 | 6110 |
|
|
|
276 | 78431 |
40 | 1/4 | Delquad | □ | Elements | 0.5 | 5.9 | 11.17 | 194162 | 3 | 32 | 24270 |
|
|
|
1104 | 318967 |
41 | 1/8 | Delaunay |
|
Volumes | 4.0 |
|
11.39 | 4228 | 3 | 32 | 528 |
|
|
|
35 | 9630 |
42 | 1/8 | Delaunay |
|
Volumes | 3.0 | 5.0 | 11.32 | 7712 | 3 | 32 | 964 |
|
|
|
42 | 11578 |
43 | 1/8 | Delaunay |
|
Volumes | 2.0 | 17.7 | 11.20 | 15776 | 3 | 32 | 1972 |
|
|
|
55 | 15436 |
44 | 1/8 | Delaunay |
|
Volumes | 1.0 | 14.2 | 11.18 | 63902 | 3 | 32 | 7987 |
|
|
|
160 | 46691 |
45 | 1/8 | Delaunay |
|
Volumes | 0.5 | 17.6 | 11.15 | 254612 | 3 | 32 | 31826 |
|
|
|
555 | 168526 |
46 | 1/8 | Delaunay |
|
Elements | 4.0 | 18.3 | 10.96 | 2252 | 3 | 32 | 281 |
|
|
|
35 | 9589 |
47 | 1/8 | Delaunay |
|
Elements | 3.0 | 11.9 | 11.04 | 4040 | 2 | 24 | 505 |
|
|
|
41 | 11437 |
48 | 1/8 | Delaunay |
|
Elements | 2.0 | 8.5 | 11.08 | 8156 | 3 | 32 | 1019 |
|
|
|
55 | 15053 |
49 | 1/8 | Delaunay |
|
Elements | 1.0 | 6.3 | 11.12 | 32480 | 3 | 32 | 4060 |
|
|
|
151 | 43671 |
50 | 1/8 | Delaunay |
|
Elements | 0.5 | 5.8 | 11.13 | 128358 | 3 | 32 | 16044 |
|
|
|
527 | 157581 |
51 | 1/8 | Delaunay | □ | Volumes | 4.0 | 3.7 | 11.44 | 2380 | 2 | 24 | 297 |
|
|
|
53 | 14173 |
52 | 1/8 | Delaunay | □ | Volumes | 3.0 | 21.8 | 11.20 | 4194 | 3 | 32 | 524 |
|
|
|
36 | 10034 |
53 | 1/8 | Delaunay | □ | Volumes | 2.0 | 34.5 | 11.10 | 7960 | 3 | 32 | 995 |
|
|
|
47 | 12879 |
54 | 1/8 | Delaunay | □ | Volumes | 1.0 | 16.5 | 11.17 | 30652 | 3 | 32 | 3831 |
|
|
|
100 | 28851 |
55 | 1/8 | Delaunay | □ | Volumes | 0.5 | 19.1 | 11.17 | 122066 | 2 | 24 | 15258 |
|
|
|
343 | 103825 |
56 | 1/8 | Delaunay | □ | Elements | 4.0 | 17.5 | 10.97 | 2526 | 3 | 32 | 315 |
|
|
|
60 | 16159 |
57 | 1/8 | Delaunay | □ | Elements | 3.0 | 11.4 | 11.04 | 4386 | 3 | 32 | 548 |
|
|
|
50 | 13768 |
58 | 1/8 | Delaunay | □ | Elements | 2.0 | 9.0 | 11.08 | 8234 | 3 | 32 | 1029 |
|
|
|
73 | 20094 |
59 | 1/8 | Delaunay | □ | Elements | 1.0 | 6.2 | 11.12 | 31186 | 2 | 24 | 3898 |
|
|
|
208 | 59589 |
60 | 1/8 | Delaunay | □ | Elements | 0.5 | 5.8 | 11.13 | 123122 | 2 | 24 | 15390 |
|
|
|
807 | 236670 |
61 | 1/8 | Delquad |
|
Volumes | 4.0 |
|
11.68 | 3224 | 3 | 32 | 403 |
|
|
|
43 | 11784 |
62 | 1/8 | Delquad |
|
Volumes | 3.0 | 36.9 | 11.50 | 6000 | 3 | 32 | 750 |
|
|
|
50 | 13502 |
63 | 1/8 | Delquad |
|
Volumes | 2.0 | 31.2 | 11.04 | 12316 | 3 | 32 | 1539 |
|
|
|
60 | 16395 |
64 | 1/8 | Delquad |
|
Volumes | 1.0 | 44.0 | 10.94 | 48714 | 3 | 32 | 6089 |
|
|
|
118 | 34441 |
65 | 1/8 | Delquad |
|
Volumes | 0.5 | 53.4 | 10.81 | 193980 | 3 | 32 | 24247 |
|
|
|
423 | 126768 |
66 | 1/8 | Delquad |
|
Elements | 4.0 | 24.0 | 10.90 | 1750 | 3 | 32 | 218 |
|
|
|
43 | 11786 |
67 | 1/8 | Delquad |
|
Elements | 3.0 | 15.0 | 11.00 | 3184 | 3 | 32 | 398 |
|
|
|
50 | 13509 |
68 | 1/8 | Delquad |
|
Elements | 2.0 | 8.9 | 11.06 | 6426 | 3 | 32 | 803 |
|
|
|
59 | 16047 |
69 | 1/8 | Delquad |
|
Elements | 1.0 | 6.4 | 11.11 | 24886 | 3 | 32 | 3110 |
|
|
|
113 | 32788 |
70 | 1/8 | Delquad |
|
Elements | 0.5 | 5.9 | 11.13 | 98052 | 2 | 24 | 12256 |
|
|
|
398 | 118153 |
71 | 1/8 | Delquad | □ | Volumes | 4.0 |
|
11.72 | 1650 | 3 | 32 | 206 |
|
|
|
36 | 9907 |
72 | 1/8 | Delquad | □ | Volumes | 3.0 |
|
11.46 | 3058 | 3 | 32 | 382 |
|
|
|
34 | 9349 |
73 | 1/8 | Delquad | □ | Volumes | 2.0 |
|
11.36 | 6228 | 2 | 24 | 778 |
|
|
|
40 | 10930 |
74 | 1/8 | Delquad | □ | Volumes | 1.0 |
|
11.23 | 24536 | 2 | 24 | 3067 |
|
|
|
78 | 22716 |
76 | 1/8 | Delquad | □ | Elements | 4.0 | 23.7 | 10.90 | 1752 | 3 | 32 | 219 |
|
|
|
41 | 11213 |
77 | 1/8 | Delquad | □ | Elements | 3.0 | 14.5 | 11.01 | 3184 | 3 | 32 | 398 |
|
|
|
43 | 11811 |
78 | 1/8 | Delquad | □ | Elements | 2.0 | 9.4 | 11.07 | 6426 | 3 | 32 | 803 |
|
|
|
60 | 16220 |
79 | 1/8 | Delquad | □ | Elements | 1.0 | 6.5 | 11.11 | 24874 | 3 | 32 | 3109 |
|
|
|
156 | 44000 |
80 | 1/8 | Delquad | □ | Elements | 0.5 | 5.9 | 11.13 | 98042 | 2 | 24 | 12255 |
|
|
|
567 | 162168 |
(a) Mesh and thermal flux distribution. (b) Power and fluxes. (c) Flux distribution
(a) Mesh and thermal flux distribution. (b) Power and fluxes. (c) Flux distribution
(a) Mesh and thermal flux distribution. (b) Power and fluxes. (c) Flux distribution
(a) Mesh and thermal flux distribution. (b) Power and fluxes. (c) Flux distribution
(a) Mesh and thermal flux distribution. (b) Power and fluxes. (c) Flux distribution
(a) Mesh and thermal flux distribution. (b) Power and fluxes. (c) Flux distribution
(a) Mesh and thermal flux distribution. (b) Power and fluxes. (c) Flux distribution
(a) Mesh and thermal flux distribution. (b) Power and fluxes. (c) Flux distribution
(a) Mesh and thermal flux distribution. (b) Power and fluxes. (c) Flux distribution
As the milonga code is still under development, its numerical routines are not yet fully optimized nor designed for parallel computation. Therefore, the reported times are only rough estimates and should be taken with care. The solution comprises five steps: generate the grid with the requested geometry, meshing algorithm, basic shape, and characteristic length by calling to gmsh; read the generated mesh; build the matrices; solve the eigenvalue problem; compute the requested results.
The CPU time reported in Figures
The reported residual norm and relative error are
When using a finite volumes-based scheme over an unstructured mesh, the solver has to gather information about which cells are neighbors and which are not. Currently gmsh does not write this kind of lists in its output files, so milonga has to explicitly solve the neighbors problem. Performing a linear search is an
The Delaunay algorithm is a standard method for generating two-dimensional grids [
Figure
Static reactivity versus number of unknowns. The four original solutions as published in 1977 [
Total wall time versus number of unknowns.
Time needed to mesh the geometry versus number of unknowns.
Time needed to read the mesh versus number of unknowns.
Time needed to build the matrices versus number of unknowns.
Time needed to solve the eigenvalue problem versus number of unknowns.
It can be seen that finite elements produce a much smaller dispersion of eigenvalues
Unstructured grids provide the cognizant engineer with a wide variety of possibilities to deal with the design or analysis of nuclear reactor cores. These kinds of grids can successfully reproduce continuous geometries commonly found in reactor cores such as cylinders, and therefore, not only can the diffusion equation be better approximated inside the domain of definition but also the fulfillment of boundary conditions is improved. A free computer code was written from scratch that is able to completely solve the 2D IAEA PWR Benchmark using unstructured grids for sixteen combinations of geometry, meshing algorithm, basic shape, and discretization scheme plus any value of the grid’s characteristic length by using a single input file. The complete set of input files and code—executable and source—is available either online or upon request, with comments, experiences, suggestions, and corrections being more than welcome. Further development should include tackling full three-dimensional geometries with complete thermal hydraulic feedback in order to analyze how the solutions of the coupled neutronic-thermal problem depend on the spatial discretization scheme of the neutron leakage term. Parallelization of the computation and assembly of the matrices and of the solution of the eigenvalue problem and its implementation using GPUs are also desired features to implement. A problem with direct applications that the future versions of milonga ought to solve is the analysis of how the geometry of the absorbing materials should be taken into account in structured coarse grids in order to mitigate effects such as the rod-cusp problem.
Suitable schemes for approximating the continuous differential operators by discrete matrix expressions include finite volumes and finite elements families. Finite volumes methods compute cell mean values, whilst finite elements give functional values at the grid’s nodes. In general, finite elements are less sensitive to changes in the mesh so the results they provide do not change significantly for different meshing algorithms or elementary shapes. Small problems are best solved by finite volumes as the neighbor-finding problem is faster than the process of building and assembling the eigenvalue-problem matrices. For a large number of unknowns, the process of finding which cell is neighbor of which—even based on a