Introduction
GLOW (Geometry Layout Oriented Workflow) is a Python package providing 2D unstructured geometries to the DRAGON5 lattice transport computer code for tracking calculations.
The DRAGON5 computer code provides several models, in terms of FORTRAN modules,
to simulate the neutronic behaviour of the fuel elements in a nuclear reactor
[3].
Among the available modules, the SALT: tracking module discretises the
spatial domain by generating integration lines used to solve the transport
equation by means of the following methods [1]:
the Method of Characteristics (MOC), an approach used to solve the neutron transport equation by tracing the paths (characteristics) of neutrons through a discretized geometry. It evaluates the neutron flux distribution by integrating the transport equation along the characteristics, which are straight lines in neutral particle transport, accounting for interactions with the material.
the Collision Probability Method (CPM), an approach that computes the probability of a neutron emitted in one region to have the first collision in another region. It generally assumes isotropic neutron emission.
the multicell surfacic approximation, where macro geometries are coupled using incoming and outgoing interface currents. This method is also known as the Interface Current method (IC).
Having a proper description of the geometry layout is essential to perform
tracking calculations in DRAGON5.
Geometries for fuel assemblies used in nuclear reactors are typically made of
several fuel pins arranged according to regular patterns to form Cartesian or
hexagonal lattices.
Even though the SALT: module can track any convex surface-oriented
geometry without empty concavities, DRAGON5 can only natively handle the
generation of simple geometries (i.e. structured geometries) built using a
small set of predefined operations available within the GEO: module.
The G2S: module converts the native geometry layout to a .dat description
file used by the SALT: module to perform the tracking [3].
This file is produced in a format similar to the input file used by the TDT
(Two- and Three-Dimensional Transport) solver of APOLLO2, one of the first
neutron transport lattice code to provide MOC capabilities [2]
[5].
More complex layouts, represented by unstructured geometries, made by combining
surface elements via Boolean operations (e.g., cut, union, intersection), cannot
be produced by DRAGON5 natively; external tools based on Constructive Solid
Geometry (CSG), a method for creating 2D/3D geometries from combinations of
simpler primitive shapes, are needed.
So far, several applications have been developed to address the generation of unstructured surface geometries, among the main ones we can cite SALOMON and ALAMOS [6]. SALOMON is a Python2-based application developed in 2001 by EDF that exploits the GEOM module of the SALOME platform, an open-source environment offering 2D/3D CAD modelling capabilities [4]. SALOMON relies on an XML-formatted input file with a specific structure containing the description of the lattice’s geometry layout in terms of cells and materials associated to each closed region of the lattice. It allows users to export the geometric description .dat file for the TDT solver of APOLLO2. Currently, SALOMON’s development seems no longer active, resulting in an obsolete tool. ALAMOS is an application based on a dedicated Graphical User Interface (GUI) developed by CEA for APOLLO3 that exploits the Python libraries offered by the SALOME platform [6]. In particular, it makes use of the MEDCoupling module of SALOME to build the geometries and apply meshes to them. The regions of the geometry can also be characterised in terms of material property maps. While ALAMOS can handle any kind of complex geometry layout, SALOMON can only deal with lattices made of Cartesian-type cells, thus greatly limiting its application. In addition, SALOMON does not provide any support to the construction of surface geometries by exploiting the most common Boolean operations, which, instead, are supported by ALAMOS. Unfortunately, ALAMOS, despite being a more complete tool than SALOMON, does not have an open-source distribution.
GLOW was developed by newcleo to offer an open-source alternative for the production of surface geometries through CSG functionalities provided by the Application Programming Interfaces (APIs) of the GEOM module of the SALOME platform. In GLOW, complex surface geometry layouts are easily generated by positioning and overlapping simple shapes, each associated with different types of property maps, to replicate the structure of cells and lattices, and even of the entire core. In addition, Boolean operations are automatically applied when a specific portion of the layout is extracted.
A GUI is essential to provide the best user-experience possible. In this sense, GLOW relies on the SALOME graphical user interface (via the GUI module) to display the built geometries in the available 3D viewer. In addition to the basic functionalities offered by GLOW, users can also make use of the geometry-building functionalities of the GEOM module directly from the GUI. Eventually, the GLOW and GEOM functionalities can be used from within a Python script that runs in the SALOME framework.
Since DRAGON5 relies on the .dat description file of the surface-oriented geometry, GLOW collects the geometric and property information from the built layout to generate the needed file.
This guide gives an overview of GLOW and of its main functionalities. The Tutorials section illustrates some use cases that highlight the usage of GLOW and guide users in the correct geometry modelling approaches.
GLOW is developed by the Codes & Methods Department of newcleo and it is released under the LGPL-2.1 License.
DISCLAIMER
The DRAGON5 lattice code is not distributed with GLOW. Please, refer to http://merlin.polymtl.ca/version5.htm for downloading the latest version and for the installation instructions.