fgrSCIANTIX
Description
This class integrates the 0-D SCIANTIX code (developed at Polimi) into OFFBEAT as the fission gas release (FGR) model. The coupling process between OFFBEAT and SCIANTIX proceeds as follows:
-
At each outer iteration and for every cell of fuel-type materials (such as
UO2), OFFBEAT passes the necessary data to SCIANTIX for calculations. This data set includes:- History variables, i.e., local oldTime and current stresses, temperature, and fission rate.
- Previous time step values of the SCIANTIX variables for the specific cell.
-
Using the previous time step values as initial conditions, SCIANTIX computes the updated values for its internal variables.
-
At the end of each outer iterations, certain updated values calculated by SCIANTIX, such as the FGR fraction or gaseous swelling, are passed to OFFBEAT.
-
At the end of each time step, steps 1, 2, and 3 are repeated. This final pass stores the updated local SCIANTIX variables into the corresponding OFFBEAT fields, completing the synchronization process.
Options
The fgrSCIANTIX model requires the user to specify a few additional parameters in
the fgrOptions sub-dictionary located inside the solverDict. Additionally,
SCIANTIX requires the user to set the specific SCIANTIX input settings. See the next
section for more information or consult SCIANTIX documentation.
Warning
There are two ways to provide SCIANTIX input settings when using OFFBEAT.
One option is to define these settings in the input_settings.txt file within
the OFFBEAT case folder (i.e., at the same level as the constant or
system folders). However, note that if OFFBEAT is launched from outside the
case folder using the -case argument, SCIANTIX assumes the input_settings.txt
file path is the same as the folder from which the execution command is launched.
To address this, a new input reading option has been added to OFFBEAT. SCIANTIX
input settings can now be defined in a sub-dictionary of fgrOptions within solverDict.
If the code detects this dictionary, it reads the input from there; otherwise,
it defaults to the original approach, reading from the input_settings.txt file.
In both cases, an input_check.txt file is created for input validation. An example
of the new input format can be found in Cases/testCases/generic_pwr_1D_newSCIANTIXinput/.
Parameters in fgrOptions:
| relax | Relaxation factor applied to inter/intra-gaseous swelling and fgr fraction. It can improve convergence when dealing with strongly coupled simulations. It is set to 1 by default. |
| nFrequency | An integer defining how many outer iteration to skip before updating the OFFBEAT/SCIANTIX coupling. It can speed up the simulation (i.e. less SCIANTIX runs) but it should not be too large, as one risks not attaining proper convergence. It is set to 1 by default. |
| addToRegistry | Keyword to switch on/off the creation of the SCIANTIX fields as separate volumetric fields. It is set to off by default.
|
Note
To minimize the creation of multiple volumetric fields (such as volScalarFields
or volVectorFields), SCIANTIX fields are, by default, defined as standard fields
(scalarFields or vectorFields). This is achieved using a template function located
in globalFields.H.
Typically, these fields are read from a regIOObject named SCIANTIXfields, which
is saved at each write time step. At the top of this dictionary, a summary of the
current fission gas release (FGR) is included. If a specific field is missing from the
dictionary, it is initialized with a default value. However, if an IOObject
corresponding to one of these fields exists in the initial time step folder, the
field is read from that file. This approach can be helpful when performing advanced
operations, such as using OpenFOAM’s mapping routines.
In certain scenarios, adding fields to the registry is necessary for specific tasks,
such as visualization in ParaFoam, probing, or mapping. This behavior is controlled by
the addToRegistry keyword in the FGR options dictionary, enabling users to specify
whether fields should be registered as volumetric fields.
Usage
Here is an example of (part of) the solverDict file to be used to activate the
coupling between OFFBEAT and SCIANTIX .
fgr SCIANTIX;
fgrOptions
{
//- relax is 1 by default
relax 1;
//- nFrequency is 1 by default
nFrequency 1;
//- addToRegistry is off by default
addToRegistry off;
}
//... other physics subdictionaries
materials
{
fuel
{
type UO2;
//... other material specific options
rGrain 5e-6;
}
//... remaining material subdictionaries
}
Additionally, the code SCIANTIX requires its own set of inputs to be
properly set. One way to set the SCIANTIX parameters is to properly define in the
case folder the input_settings.txt file (see SCIANTIX documentation for more details):
0 # verification (0 = no verification)
1 # grain growth (0 = none; 1 = ainscough)
1 # inert gas behavior (0 = none; 1 = do IGB)
1 # gas diff coeff (0 = 0 coeff (trial); 1 = Turnbull, 2 = Matzke (with small
OFFBEAT custom addition) )
1 # intra bbl evo (1 = Pizzocri et al., 2018; 2 = White, Tucker 1983)
1 # intra bubble_radius (1 = Olander&Wongy, 2006, 2= Ronchi 1972; 3 = Dollings
1977; 4 = Losonen 2002; 5 = Spino 2005; )
1 # re-solution (1 = Turnbull 1971; 2 = Oldanter 1976)
1 # trapping (1 = Ham 1958)
1 # nucleation (1 = Baker 1971)
1 # DiffSolver (1 = SDA, Pizzocri, 2 = FORMAS)
1 # format_out (1 = output.txt, values separated by tabs)
1 # gb vac diff coeff (1 = Reynolds and Burton, 1979; 2 = Pastore 2015)
1 # gb behavior (1 = Pastore et al., 2013; Barani et al., 2017)
0 # gb micro-cracking (0 = none; 1 = Barani et al., 2017)
0 # hbs formation (0 = non active)
0 # fuel/reactor couple for burnup calculations (0 = UO2/PWR)
1 # gas effective (=0) or single atom (=1) diffusion coefficient - OFFBEAT
custom addition
0 # add boundary gas sweeping (1=on) - OFFBEAT custom addition
0 # micro cracking model span parameter (0 = default value of 10; 1 = original
value SCIANTIX of 10; 2 = Value from MOOSE of 5)
An alternative (which take priority in OFFBEAT) is to define the SCIANTIX
options directly in the fgrOptions dictionary.
fgrOptions
{
nFrequency 1;
relax 1;
SCIANTIX
{
iverification 0; // (0= no verification)
igrain_growth 1; // (1 = ainscough)
iinert_gas_behavior 1; // (1= do IGB)
igas_diffusion_coefficient 1; // (1= Turnbull et al., 1988)
iintra_bubble_evolution 1; // (1=Pizzocri et al., 2018)
ibubble_radius 1; // (1= Olander&Wongy, 2006)
iresolution_rate 1; // (1=Turnbull 1971)
itrapping_rate 1; // (1= Ham 1958)
inucleation_rate 1; // (1= Baker 1971)
isolver 1; // (1= SDA, Pizzocri et al., 2019)
iformat_output 1; // (1 = output.txt, values separated by tabs)
igrain_boundary_vacancy_diffusion_coefficient 1; // (1= Reynolds and Burton, 1979)
igrain_boundary_behaviour 1; // (1= do InterGranularGasBehavior - Pastore et al., 2013; Barani et al., 2017)
igrain_boundary_micro_cracking 1; // (1 = Barani et al., 2017)
igrain_recrystallization 0; // (0 = non active)
ifuel_reactor_type 0; // (0=UO2/PWR)
igas_effective_coefficient 1; // gas effective (=0) or single atom (=1)
igas_sweeping 1; // add boundary gas sweeping
}
}