Milonga is a free computer code that solves the steady-state multigroup neutron diffusion equation using either a finite-volumes or a finite-differences scheme. Not only is it designed to cope with common reactor geometries but also to parametrically study the effect of one or more parameters in order to optimize some aspect of the reactor design. The code is especially designed emphasizing flexibility in the way the geometry and the cross-sections distributions are entered, including dependence on arbitrary parameters such as temperatures, burn-up, poisons, etc. This information can be entered as algebraic expressions, multidimensional interpolated tables or from data given by external codes trough shared memory objects. Milonga can handle a wide variety of one, two and three-dimensional cases, from simple idealized problems up to common reactor configurations, including xenon effects and coupled calculations with thermal-hydraulics and control-logic codes. For example, milonga can be used to solve a case with analytical solution using its built-in algebraic and differential functions, and then easily compare it to the discrete solution along with the corresponding CPU times as a function of the number of spatial cells. The code output is completely defined by the user through the input. The eigenvalue problem is solved by the SLEPc+PETSc libraries, so the computational implementation can be scaled virtually up to the limit of current available hardware, and hopefully for many years to come. Moreover, not only can milonga utilize user-provided ad-hoc numerical routines, but it is also released under the GNU Public License so further scalability and improvements may be introduced at will.
Milonga's documentation is comprised of a single document that is contained in every package of the download section. Anyway, it may be downloaded separately as a PDF document. The document details the equations milonga solves, how to construct inputs, a bunch of examples and installation instructions.
Current version is 0.1. It is the very first public release, aimed at colleagues in the nuclear industry and academia to get feedback in order to develop an improved 0.9 version. First serious version 1.0 should be releases afterwards. There are some limitations in this version. Please refer to the documentation for further information.
Although portability per-se is not into milonga's design basis, it is expected on the one hand to be able to run the code in a reasonable spectrum of digital computers and on the other hand to be able to scale up with both software and hardware developments during a reasonable time frame. Thus, even though GNU/Linux is selected as the development platform, the code is expected to run into other operating systems and architectures of interest.
The recommended package is the source distribution. Nevertheless, binary packages that hopefully avoids the task of compiling GSL, PETSc and SLEPc are also included.
The execution of milonga in Windows-based architectures is highly discouraged! The binary and its related libraries are not designed to run natively, and thus their performance is very poor. Microsoft Windows is not designed to run engineering codes as milonga. And besides, it is not free software. Please try to run milonga in GNU/Linux or other unix-based architectures.
Links to required libraries:
Milonga's documentation has plenty of examples. Chapter 4 gives 29 examples, ordered in increasingly complexity and grouped into:
As a brief illustration, consider the following three figures.
- cases with analytical solution
- general problems
- parametric problems
- non-linear problems
- coupled calculations
|Continuous 2D distribution of macroscopic cross sections
||The resulting flux distribution
Milonga's main feature is the ability to handle arbitrary parameter and cross-section spatial distribution, even given as algebraic expressions, multidimensional interpolation from data files or a combination of both:
Another example included in the documentation is the classical IAEA PWR benchmark, although only the 2D case is covered by this version.
Also, see the related paper Solution of the 2D IAEA PWR Benchmark with the neutronic code milonga.
Milonga is released under the GNU General Public License version 3. Needed libraries are released either also under free licenses. Binary windows versions were generated with cygwin, released under a slightly modified GPL.