Difference between revisions of "FINIX fuel behavior module"
(→Output) |
m |
||
(42 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
== About FINIX == | == About FINIX == | ||
− | FINIX | + | FINIX<ref name="FINIXmanual">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)</ref> <ref name="IkonenTF13">Ikonen, T., Tulkki, V., Syrjälahti, E., Valtavirta, V. and Leppänen, J. "''FINIX - Fuel Behavior Model and Interface for Multiphysics Applications''", In proc. ''TopFuel 2013'', Charlotte, NC, Sept. 15-19, 2013.</ref> <ref name="IkonenANE15"> Ikonen, T., Loukusa, H., Syrjälahti, E., Valtavirta, V., Leppänen, J., and Tulkki, V. "''Module for thermomechanical modeling of LWR fuel in multiphysics simulations''", Ann. Nucl. |
+ | Energy, [http://www.sciencedirect.com/science/article/pii/S0306454914005842 84 (2015) 111-121]</ref> <ref name="LoukusaVTT13"> Loukusa, H. "''Validation of the FINIX fuel behavior code version 0.13.9''", Technical report, VTT Technical Research Centre of Finland, 2013 </ref> is a general purpose fuel module developed at VTT Technical Research Centre of Finland. FINIX is built especially for multi-physics simulations such as coupled reactor physics – fuel performance, or thermal hydraulics – fuel performance simulations. The interested reader is directed to the [http://virtual.vtt.fi/virtual/montecarlo/download/VTT-R-06563-13.pdf FINIX-manual]. | ||
− | + | FINIX simulates the time-dependent thermal and mechanical behavior of the rod, taking into account the dependence of material properties such as thermal conductivity, thermal expansion, Young’s modulus, etc., on various parameters, including temperature and burnup. The thermal and mechanical solutions are coupled via the gas pressure and conductance of the pellet-cladding gap. The numerical models have been chosen to be computationally inexpensive, but on par with other currently employed one dimensional fuel performance codes. | |
− | FINIX | + | Current capabilities of FINIX concentrate on the simulation of transient behavior. The time-dependent temperature distribution is computed taking into account radial heat transfer in the pellet, gap, cladding, and into the coolant. Thermal expansion of the pellet and the cladding, and the elastic response of the cladding is calculated, as well as their influence on the gap conductivity. Plastic deformation and oxidation of the cladding and release of fission gases into the gap are yet to be included in FINIX. Consequently, effects of accumulating burnup during steady state irradiation cannot be simulated, but a transient for a non-fresh fuel can be modeled if the initial state is known. Currently initialization for non-zero burnup can be done, e.g., from a FRAPCON simulation. Additional initialization methods are under development. |
+ | |||
+ | FINIX has been validated against the FRAPTRAN fuel performance code as well as experimental Halden reactor data<ref name="IkonenANE15" /> <ref name="LoukusaVTT13" />. The comparison shows very good agreement, especially for the temperature distribution, which is the most relevant output for coupled neutronics simulations. | ||
== Coupling with Serpent == | == 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 | + | 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. |
== Obtaining FINIX == | == Obtaining FINIX == | ||
− | FINIX can be licensed from VTT for research & education (non-commercial) purposes. One license agreement per organization is enough. ... | + | FINIX can be licensed from VTT for research & education (non-commercial) purposes. One license agreement per organization is enough. ... Licensing instructions will be added here. |
− | + | ||
− | + | ||
== Compiling Serpent with FINIX == | == Compiling Serpent with FINIX == | ||
Line 55: | Line 56: | ||
=== Linking FINIX input files === | === Linking FINIX input files === | ||
− | The FINIX fuel behavior solver has three different input-file types (see Section 7.6 in the FINIX manual<ref | + | The FINIX fuel behavior solver has three different input-file types (see Section 7.6 in the FINIX manual<ref name="FINIXmanual" />). Each input-file can contain definitions for multiple fuel rods for multiple different reactors/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 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. | ||
Line 67: | Line 68: | ||
set finscenariofile <scenario_file></nowiki> | set finscenariofile <scenario_file></nowiki> | ||
− | After linking the files to the input, the definitions can be | + | After linking the files to the input, the definitions can be accessed by the FINIX solvers in the Serpent simulation. |
=== Creating power binning to be used with FINIX solvers === | === Creating power binning to be used with FINIX solvers === | ||
Line 98: | Line 99: | ||
|} | |} | ||
− | The radial division is equal area. The axial division should be the same as in the FINIX | + | The radial division is equal area. The axial division should be the same as in that defined in the FINIX options file. |
=== Creating FINIX solvers for Serpent pins === | === Creating FINIX solvers for Serpent pins === | ||
Line 122: | Line 123: | ||
|- | |- | ||
| <finbin_name> | | <finbin_name> | ||
− | | : name of the [[Input syntax manual | + | | : name of the [[Input syntax manual#finbin (FINIX power binning definition)|powerbinning]] definition to be used with this solver. |
|- | |- | ||
| <nrod> | | <nrod> | ||
Line 157: | Line 158: | ||
== Output == | == Output == | ||
+ | |||
+ | === ''<input>_fin.m'' === | ||
Coupled calculations with FINIX will produce an additional MATLAB-executable output file: | Coupled calculations with FINIX will produce an additional MATLAB-executable output file: | ||
Line 169: | Line 172: | ||
! Description | ! Description | ||
! Notes | ! Notes | ||
+ | |- | ||
+ | | t | ||
+ | | nt | ||
+ | | simulation times corresponding to the printed distributions | ||
+ | | in criticality source simulation, this is set to [[Definitions, units and constants#Constants|INFTY]] | ||
|- | |- | ||
| ROD_<name>_T | | ROD_<name>_T | ||
− | | | + | | nt x nz x nr |
| temperature distribution in the fuel rod. | | temperature distribution in the fuel rod. | ||
| | | | ||
|- | |- | ||
| ROD_<name>_P | | ROD_<name>_P | ||
− | | | + | | nt x nz x nr |
| power density distribution in the fuel rod. | | power density distribution in the fuel rod. | ||
− | | | + | | the average power density over the time-interval |
|- | |- | ||
| ROD_<name>_RC | | ROD_<name>_RC | ||
− | | | + | | nt x nz x nr |
| cold radial position of each node. | | cold radial position of each node. | ||
| | | | ||
|- | |- | ||
| ROD_<name>_RH | | ROD_<name>_RH | ||
− | | | + | | nt x nz x nr |
| hot radial position of each node. | | hot radial position of each node. | ||
| | | | ||
|- | |- | ||
| ROD_<name>_HFlux | | ROD_<name>_HFlux | ||
− | | | + | | nt x nz |
| axial heat flux from cladding to coolant. | | axial heat flux from cladding to coolant. | ||
− | | | + | | will be zero, if the heat flux is not calculated by FINIX (depends on the boundary condition). |
|- | |- | ||
|} | |} | ||
+ | |||
+ | Here nt, is the number of time intervals in the simulation, nz is the number of axial segments in the rod and nr is the number of radial nodes. The smallest axial bins correspond to the lowest axial elevation. | ||
+ | |||
+ | === ''<input>_Pconv<bstep>.m'' and ''<input>_Tconv<bstep>.m'' === | ||
+ | |||
+ | Contains convergence criteria calculated from the power distributions tallied by Serpent and temperature distributions calculated by FINIX. The convergence criteria are based either on the [[Coupled_multi-physics_calculations#Power_relaxation|relaxed]] <math>P^i_{\mathrm{rel}}</math> or the momentary <math>P^i</math> power distributions. For distribution <math>q</math> on iteration <math>i</math> using indices <math>n</math>, <math>m</math> and <math>l</math> for rod, axial segment and radial node, the different convergence criteria are calculated by | ||
+ | |||
+ | {|class="wikitable" style="text-align: left;" | ||
+ | ! Name of array | ||
+ | ! Contents | ||
+ | |- | ||
+ | |<q<nowiki/>>_eps | ||
+ | |<math> \max_{n,m,l} \frac{|q^{i}_{n,m,l} - q^{i-1}_{n,m,l}|}{q^{i}_{n,m,l}} </math> | ||
+ | |- | ||
+ | |<q<nowiki/>>_delta | ||
+ | |<math> \max_{n,m,l} |q^{i}_{n,m,l} - q^{i-1}_{n,m,l}| </math> | ||
+ | |- | ||
+ | |<q<nowiki/>>_L2 | ||
+ | |<math> \left\| q^{i}_{n,m,l} - q^{i-1}_{n,m,l}\right\| _2 </math> | ||
+ | |- | ||
+ | |<q<nowiki/>>_L2rel | ||
+ | |<math> \left\|\frac{q^{i}_{n,m,l} - q^{i-1}_{n,m,l}}{q^{i}_{n,m,l}}\right\|_2 </math> | ||
+ | |- | ||
+ | |<q<nowiki/>>_L2rel2 | ||
+ | |<math> \frac{\left\| q^{i}_{n,m,l} - q^{i-1}_{n,m,l}\right \|_2}{\left\| q^{i}_{n,m,l}\right\|_2} </math> | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | Here <q<nowiki/>> can be any of the following: P, relaxedP or T. The array size corresponds to the number of iterations calculated <math>i</math>. | ||
+ | |||
+ | == Examples == | ||
+ | |||
+ | * [[FINIX PB2 example input|Peach bottom 2 assembly level case]] | ||
== References == | == References == | ||
<references/> | <references/> | ||
+ | |||
+ | [[Category:External programs and scripts]] |
Latest revision as of 15:58, 29 November 2017
Contents
About FINIX
FINIX[1] [2] [3] [4] is a general purpose fuel module developed at VTT Technical Research Centre of Finland. FINIX is built especially for multi-physics simulations such as coupled reactor physics – fuel performance, or thermal hydraulics – fuel performance simulations. The interested reader is directed to the FINIX-manual.
FINIX simulates the time-dependent thermal and mechanical behavior of the rod, taking into account the dependence of material properties such as thermal conductivity, thermal expansion, Young’s modulus, etc., on various parameters, including temperature and burnup. The thermal and mechanical solutions are coupled via the gas pressure and conductance of the pellet-cladding gap. The numerical models have been chosen to be computationally inexpensive, but on par with other currently employed one dimensional fuel performance codes.
Current capabilities of FINIX concentrate on the simulation of transient behavior. The time-dependent temperature distribution is computed taking into account radial heat transfer in the pellet, gap, cladding, and into the coolant. Thermal expansion of the pellet and the cladding, and the elastic response of the cladding is calculated, as well as their influence on the gap conductivity. Plastic deformation and oxidation of the cladding and release of fission gases into the gap are yet to be included in FINIX. Consequently, effects of accumulating burnup during steady state irradiation cannot be simulated, but a transient for a non-fresh fuel can be modeled if the initial state is known. Currently initialization for non-zero burnup can be done, e.g., from a FRAPCON simulation. Additional initialization methods are under development.
FINIX has been validated against the FRAPTRAN fuel performance code as well as experimental Halden reactor data[3] [4]. The comparison shows very good agreement, especially for the temperature distribution, which is the most relevant output for coupled neutronics simulations.
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.
Obtaining FINIX
FINIX can be licensed from VTT for research & education (non-commercial) purposes. One license agreement per organization is enough. ... Licensing instructions will be added here.
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[1]). Each input-file can contain definitions for multiple fuel rods for multiple different reactors/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 accessed by 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 that defined in the FINIX options file.
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 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
<input>_fin.m
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 | in criticality source simulation, this is set to INFTY |
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). |
Here nt, is the number of time intervals in the simulation, nz is the number of axial segments in the rod and nr is the number of radial nodes. The smallest axial bins correspond to the lowest axial elevation.
<input>_Pconv<bstep>.m and <input>_Tconv<bstep>.m
Contains convergence criteria calculated from the power distributions tallied by Serpent and temperature distributions calculated by FINIX. The convergence criteria are based either on the relaxed or the momentary
power distributions. For distribution
on iteration
using indices
,
and
for rod, axial segment and radial node, the different convergence criteria are calculated by
Name of array | Contents |
---|---|
<q>_eps | ![]() |
<q>_delta | ![]() |
<q>_L2 | ![]() |
<q>_L2rel | ![]() |
<q>_L2rel2 | ![]() |
Here <q> can be any of the following: P, relaxedP or T. The array size corresponds to the number of iterations calculated .
Examples
References
- ^ 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)
- ^ Ikonen, T., Tulkki, V., Syrjälahti, E., Valtavirta, V. and Leppänen, J. "FINIX - Fuel Behavior Model and Interface for Multiphysics Applications", In proc. TopFuel 2013, Charlotte, NC, Sept. 15-19, 2013.
- ^ Ikonen, T., Loukusa, H., Syrjälahti, E., Valtavirta, V., Leppänen, J., and Tulkki, V. "Module for thermomechanical modeling of LWR fuel in multiphysics simulations", Ann. Nucl. Energy, 84 (2015) 111-121
- ^ Loukusa, H. "Validation of the FINIX fuel behavior code version 0.13.9", Technical report, VTT Technical Research Centre of Finland, 2013