Class Simulation
Defined in File Simulation.h
Class Documentation
-
class Simulation
Derived class that orchestrates the overall simulation process combining various models and solvers.
The Simulation class inherits from Solver and Model classes to utilize their functionalities for simulating complex interactions and processes based on the provided models.
- Author
G. Zullo
- Author
F. Bastien
Public Functions
-
inline ~Simulation()
Destructor for the Simulation class.
-
void setVariables(int Sciantix_options[], double Sciantix_history[], double Sciantix_variables[], double Sciantix_scaling_factors[], double Sciantix_diffusion_modes[])
-
void setGas()
-
void setMatrix()
-
void setSystem()
-
void setGPVariables(int Sciantix_options[], double Sciantix_history[], double Sciantix_variables[])
-
void initialize(int Sciantix_options[], double Sciantix_history[], double Sciantix_variables[], double Sciantix_scaling_factors[], double Sciantix_diffusion_modes[])
-
void execute()
-
void update(double Sciantix_variables[], double Sciantix_diffusion_modes[])
-
void output()
-
void Burnup()
Burnup() calculates the local burnup from fission rate and fuel density.
This function calculates the local burnup in MWd/kgUO2 from fission rate and fuel density. In addition, the function calculates also the irradiation time and the burnup in FIMA.
- Author
D. Pizzocri
- Author
T. Barani
- Author
G. Zullo
-
void EffectiveBurnup()
EffectiveBurnup () calculates the local effective burnup of the fuel.
The local effective burnup is calculated if the local temperature is lower than a temperature threshold,
G. Khvostov et al., WRFPM-2005, Kyoto, Japan, 2005.
- Author
D. Pizzocri
- Author
T. Barani
- Author
G. Zullo
-
void GasProduction()
GasProduction computes the gas produced from the production rate.
- Author
D. Pizzocri
- Author
T. Barani
- Author
G. Zullo
-
void GasDecay()
Calculates the decayed amount of radioactive gases.
- Author
G. Zullo
-
void GasRelease()
Calculates the gas released to the rod free volume.
- Author
E. Cappellari
-
void GasDiffusion()
Handles the intragranular gas diffusion problem.
- Author
D. Pizzocri
- Author
T. Barani
- Author
G. Zullo
-
void GrainGrowth()
Grain growth based on specific model parameters affecting the system’s materials.
- Author
D. Pizzocri
- Author
T. Barani
- Author
G. Zullo
-
void IntraGranularBubbleBehavior()
Evolution models for intra-granular bubbles in fuel grains based on the value of iIntraGranularBubbleBehavior.
iIntraGranularBubbleBehavior == 1: The evolution of small intra-granular bubbles in fuel grains is controlled by bubble nucleation, gas atom trapping, and irradiation-induced gas atom re-solution back into the lattice. Description of the model in Pizzocri et al., JNM, 502 (2018) 323-330.
iIntraGranularBubbleBehavior == 2: The evolution of intra-granular bubbles is modeled by temperature-driven correlations. Description of the model in White, Tucker, Journal of Nuclear Materials, 118 (1983), 1-38.
iIntraGranularBubbleBehavior == 3: The evolution of intra-granular bubble concentration, radius, and atoms per bubble is described through the similarity ratio, based on the evolution of intra-granular gas concentration in bubbles.
- Author
D. Pizzocri
- Author
T. Barani
- Author
G. Zullo
- Parameters:
intragranular_bubble_concentration – [out] The concentration of intra-granular bubbles.
intragranular_bubble_radius – [out] The radius of intra-granular bubbles.
local_fuel_temperature – [in] The local temperature of the fuel affecting bubble evolution.
-
void InterGranularBubbleBehavior()
The model considers one-off nucleation, growth of lenticular bubbles by vacancy absorption and coalescence of bubbles.
White, JNM, 325 (2004) 61-77 Pastore, NED, (2013) Cappellari, JNM (2025, under review)
- Author
D. Pizzocri
- Author
T. Barani
- Author
G. Zullo
- Author
E. Cappellari
-
void GrainBoundarySweeping()
Calculates the sweeping of grain boundaries, particularly how it affects intragranular gas concentrations.
- Author
D. Pizzocri
- Author
T. Barani
- Author
G. Zullo
-
void GrainBoundaryMicroCracking()
Calculates the fraction of cracked/healed grain-boundary faces after temperature transients, and the corresponding fission gas released.
- Author
D. Pizzocri
- Author
T. Barani
- Author
G. Zullo
- Author
E. Cappellari
-
void Densification()
Calculates the fuel densification.
- Author
A. Pagani
- Author
E. Cappellari
-
void GrainBoundaryVenting()
Calculates the amount of gas released due to venting processes.
- Author
D. Pizzocri
- Author
T. Barani
- Author
G. Zullo
- Author
E. Cappellari
-
double openPorosity(double fabrication_porosity)
Calculates the open porosity of the fuel.
- Author
A. Pagani
- Author
E. Cappellari
- Parameters:
fabrication_porosity – the as-fabricated porosity which decreases during irradiation due to densification.
- Returns:
the open porosity, i.e. the system of percolated networks framing the grain.
-
double athermalVentingFactor(double open_porosity, double theta, double porosity, double grain_edge_lenght, double burnup, double temperature, double fission_rate)
Calculates a corrective factor for the athermal fission gas release.
- Author
A. Pagani
- Author
E. Cappellari
- Parameters:
open_porosity – the open porosity of the fuel.
theta – the grain-edge inclination angle.
porosity – the as-fabricated porosity.
grain_edge_lenght – the grain-edge lenght.
burnup – the fuel burn-up.
temperature – the fuel temperature given as input.
fission_rate – the fission rate given as input.
- Returns:
the athermal venting factor to correct athermal release for the real shape of gas flux within the grain including its dependency on the grain-edge inclination angle.
-
void HighBurnupStructureFormation()
Calculates the formation of high burnup structures within the nuclear fuel.
- Author
G. Zullo
- Author
A. Magni
- Author
E. Redaelli
-
void HighBurnupStructurePorosity()
Models the porosity changes within high burnup structures, influencing material properties.
- Author
A. Magni
- Author
E. Redaelli
- Author
G. Zullo
-
void StoichiometryDeviation()
Evaluates the deviation in stoichiometry within the nuclear material and its effects.
- Author
G. Petrosillo
- Author
G. Zullo
-
void GapPartialPressure()
GapPartialPressure() Calculates the oxygen partial pressure in the gap based on a thermo-chemical equilibrium model.
The equilibrium constant is calculated using the law of mass action for water vapor decomposition. The gap oxygen partial pressure is then calculated using this equilibrium constant and the steam pressure. The final value is set in the
Gap oxygen partial pressurevariable.- Author
G. Petrosillo
- Author
G. Zullo
Morel et al., CEA, Report NT/DTP/SECC no. DR94-55 (1994) Lewis et al. JNM 227 (1995) 83-109, D.R. Olander, Nucl. Technol. 74 (1986) 215.
-
void UO2Thermochemistry()
Conducts detailed thermochemical calculations for UO2 under specific conditions.
- Author
G. Petrosillo
- Author
G. Zullo
-
void ChromiumSolubility()
This function defines the Sciantix model ChromiumSolubility.
The model ChromiumSolubility is used to evaluate the chromium solubility accordingly to the temperature and the oxygen content. Then the number of oxide chromium atoms is evaluated, accordingly to the oxygen content of the system.
Solubility of Chromium is evaluated as log10(y_Cr) = p*log10(P_O2) + V + U/T Coefficients U and V came from experimental fitting, in this way the Gibbs Potential is approximated as a function of 1/T Metallic chromium shows two different phases with threshold temperature of 1651 °C CrO is expected to be negligible, accordingly to Cr - O phase diagram The exchange between Cr-metal phase and Cr-oxide phase is described accordingly to the empirical expression: oxide_fraction = 1 - exp(C1 * T - C1*C2)
Nicodemo G. et al (2024). Journal of Nuclear Materials, 601, 155301.
- Author
G. Nicodemo
-
void Microstructure()
The model Microstructure is used to evaluate the lattice parameter and the theoretical density, accordingly to chromium content.
T. Cardinaels et al (2012), Journal of Nuclear Materials, 424 252-260.
- Author
G. Nicodemo
-
inline double *getDiffusionModes(std::string gas_name)
This method returns a pointer to the array of diffusion modes corresponding to the specified gas.
- Parameters:
gas_name – The name of the gas for which diffusion modes are required.
- Returns:
A pointer to the array of diffusion modes for the specified gas, or nullptr for invalid gas names.
-
inline double *getDiffusionModesSolution(std::string gas_name)
Retrieves diffusion modes related to solutions for a specified gas.
- Parameters:
gas_name – Name of the gas.
- Returns:
Pointer to the array of diffusion modes for solutions, or nullptr for invalid gas names.
-
inline double *getDiffusionModesBubbles(std::string gas_name)
Retrieves diffusion modes related to bubbles for a specified gas.
- Parameters:
gas_name – Name of the gas.
- Returns:
Pointer to the array of diffusion modes for bubbles, or nullptr for invalid gas names.
Public Static Functions
-
static Simulation *getInstance()