FINIX fuel behavior module
Contents
About FINIX
FINIX is a novel light-weight fuel behavior code designed specifically for coupled calculations by T. Ikonen at VTT[1]. FINIX solves both the temperature distribution in the fuel rod and the heat flux from cladding to coolant allowing two-way couplings with both neutronics and thermal-hydraulics solvers. While the current capabilities of FINIX are specifically directed to calculating the fuel rods' thermal response in fast transient scenarios, FINIX can also be used to calculate steady state conditions.
The correlations used in FINIX are publicly available. The fuel rod is modeled in FINIX as consisting of separate axial zones that are coupled via the gas gap pressure. The thermal and mechanical models in each of the axial zones are coupled via the gas gap pressure and heat conductance.
FINIX uses the so-called 1.5 dimensional geometry model dividing the active length of the fuel rod into multiple axial zones. In each axial zone the fuel pellet and the cladding are divided into multiple concentric radial rings. The axial coupling between the different zones comes from the coolant temperature boundary condition and rod internal pressure.
Coupling with Serpent
FINIX is coupled with Serpent 2 at the source code level. The internal coupling works with direct memory access between Serpent and FINIX simplifying the solution transfer and use.
Obtaining FINIX
FINIX can be licensed from VTT for research & education (non-commercial) purposes. One license agreement per organization is enough. ...
Finally, contact Ville Valtavirta to obtain the latest version of FINIX to add to your Serpent source code.
Compiling Serpent with FINIX
The source code for FINIX should be located in the Serpent source code folder in a subfolder called FINIX.
<sss_source_code_folder>/FINIX/
To complile Serpent with FINIX, uncomment two lines from the Makefile:
... # Compilation with FINIX: #OBJS += $(FOBJS) #CFLAGS += -DFINIX ...
is uncommented to
... # Compilation with FINIX: OBJS += $(FOBJS) CFLAGS += -DFINIX ...
Running the make-command for the uncommented Makefile will compile Serpent with FINIX-capabilities. Any errors encountered in the compilation process should be reported to Ville Valtavirta.
Input
The geometries for FINIX simulations have to be three dimensional and the fuel rods to be solved by FINIX have to be defined using the pin geometry card. Several things have to be added to the basic Serpent input of the case to run coupled calculations:
- FINIX input files have to be linked to the Serpent input.
- Power binnings to be used to tally the fission power have to be defined.
- FINIX solvers have to be created for the fuel rods.
- TMS temperature treatment limits have to be defined for the materials in the fuel rods.
- The iteration scheme used for the coupled solution has to be defined (number of iterations etc.)
Linking FINIX input files
The FINIX fuel behavior solver has three different input-file types (see Section 7.6 in the FINIX manual[2]). Each input-file can contain definitions for multiple fuel rods for multiple different scenarios. The input-file libraries are
- The options file, containing information such as the radial and axial nodalization for the solver, boundary condition type to be used and options for different physical models.
- The fuel rod file, containing the physical definition of the fuel rod (geometry, materials etc.).
- The scenario file, containing the boundary condition to be used in the calculation as well as things required for standalone FINIX calculation such as power history of the transient to be simulated.
These library files containing the options, rod and scenario definitions can be linked to the Serpent input:
set finoptionsfile <options_file> set finrodfile <rod_file> set finscenariofile <scenario_file>
After linking the files to the input, the definitions can be used for the FINIX solvers in the Serpent simulation.
Creating power binning to be used with FINIX solvers
The detail of the power-distribution tallied by Serpent and relayed to the FINIX solvers has to be set up before the simulation. The "finbin" input-card can be used to set up the power binning for the FINIX fuel rods:
finbin <name> <rmin> <rmax> <nr> <zmin> <zmax> <n>
Input values:
<rmin> | : minimum radial coordinate (cm) |
<rmax> | : maximum radial coordinate (cm) |
<nr> | : number of radial zones |
<zmin> | : minimum axial coordinate (cm) |
<zmax> | : maximum axial coordinate (cm) |
<nz> | : number of axial zones |
The radial division is equal area. The axial division should be the same as in the FINIX rod options.
Creating FINIX solvers for Serpent pins
The FINIX solver can be used with the pin-definitions in the Serpent input. Each pin definition can be associated with a single FINIX solver. The input syntax for a single solver is
finrod <pin_name> <fin_rod_name> <fin_opti_name> <fin_scen_name> <finbin_name> [nrods <nrod>]
where
<pin_name> | : name of the pin definition to be linked to this solver. |
<fin_rod_name> | : name of the FINIX rod definition to be used for this solver. |
<fin_opti_name> | : name of the FINIX options definition to be used for this solver. |
<fin_scen_name> | : name of the FINIX scenario definition to be used for this solver. |
<finbin_name> | : name of the #finbin (FINIX power binning definition)|powerbinning definition to be used with this solver. |
<nrod> | : (optional) The number of physical fuel rods, this solver corresponds to. |
Notes:
- The <fin_*_name> have to correspond to a block name in the FINIX library files linked to the input with the set finoptionsfile, set finrodfile and the set finscenariofile options.
- The number of physical rods that each pin represents should be automatically deduced by Serpent. In some cases (such as boundary conditions cutting out parts of rods) this may differ from the actual number of rods, in these cases the nrods option should be used.
Modifying material TMS temperature limits
Linking Serpent pins with FINIX solvers sets on the on-the-fly TMS temperature treatment for the cross section data. The TMS method uses estimates for minimum and maximum temperatures of the materials it handles to increase the performance of the rejection sampling it uses. When a static multi-physics interface is linked to the main input the TMS limits are set to the minimum and maximum temperatures found in the interface, but in a typical coupled multi-physics calculation, the minimum and maximum temperature of each material is not known beforehand. In this case, the TMS limits must be set before the beginning of the calculation by using the "tft" switch in the material card:
mat <name> <density> tft <Tmin> <Tmax> [...]
Setting a tighter temperature interval for the material increases the sampling efficiency in the TMS-routines. The tradeoff is that, in case the material temperatures go beyond the preset interval the simulation is terminated (as the sampling would become unphysical). One should thus set wide enough a temperature interval to cover the whole temperature interval that is expected to be present in the material. One should also take in account that due to the stochastic nature of Monte Carlo simulations the power distribution during individual iterations will contain statistical variations leading to increased power production in some rods and reduced power production in others.
Notes:
- If the TMS limits are defined to a material, the temperature distribution of that material should be given by either an interface definition or the FINIX solver for the whole geometry. If the same material is found in the geometry both in interface/FINIX included parts and separately at a constant temperature, separate material definitions are required for the two materials. This is the case typically with cladding materials that often exist both in the fuel rods (for which the temperature might be given by FINIX) and structural materials (which might be modeled as being in constant temperature).
Setting up the iteration scheme
In coupled multi-physics calculations with Monte Carlo neutronics the self-consistent solution between two (or more) solvers has to be obtained by subsequently iterating the solvers in turn. This means several independent transport solutions are required. In coupled calculations, the simulation population defined by the set pop option defines the population simulated for a single iteration/transport solution. The number of iterations to be calculated can be defined by the set ccmaxiter option.
Serpent relaxes the power distribution calculated in the iterations using the stochastic approximation based method, where the power distribution at iteration is calculated by
where is the unrelaxed power distribution tallied on iteration , is the relaxed power distribution after the previous iteration, is the active neutron population simulated on iteration and is an underrelaxation factor that can be defined by the set relfactor option.
Output
Coupled calculations with FINIX will produce an additional MATLAB-executable output file:
<input>_fin.m
This file contains the following arrays
Array name | Array size | Description | Notes |
---|---|---|---|
t | nt | simulation times corresponding to the printed distributions | |
ROD_<name>_T | nt x nz x nr | temperature distribution in the fuel rod. | |
ROD_<name>_P | nt x nz x nr | power density distribution in the fuel rod. | the average power density over the time-interval |
ROD_<name>_RC | nt x nz x nr | cold radial position of each node. | |
ROD_<name>_RH | nt x nz x nr | hot radial position of each node. | |
ROD_<name>_HFlux | nt x nz | axial heat flux from cladding to coolant. | Will be zero, if the heat flux is not calculated by FINIX (depends on the boundary condition). |
References
- ^ T. Ikonen, V. Tulkki, E. Syrjälahti, V. Valtavirta and J. Leppänen, "FINIX - Fuel Behavior Model and Interface for Multiphysics Applications", In proc. TopFuel 2013, Charlotte, NC, Sept. 15-19, 2013.
- ^ Ikonen T., Kättö J. and Loukusa H. "FINIX - Fuel behavior model and interface for multiphysics applications - Code documentation for version 0.15.6", Research report, VTT-R-02988-15 (2015)