High-burnup Structure Porosity¶
This model describes the evolution of the high-burnup structure (HBS) porosity
and related pore statistics (pore density, pore volume, pore radius, and xenon
inventory in pores). The model is activated through the input option
iHighBurnupStructurePorosity and follows the implementation in
Simulation::HighBurnupStructurePorosity().
Activation and option flag¶
The model is executed only if:
iHighBurnupStructurePorosity> 0
Option summary¶
0: not considered (HBS porosity forced to zero).
1: empirical porosity increase after a burnup threshold, capped at a maximum porosity.
Inputs¶
The model uses:
iHighBurnupStructurePorosity(input option)Burnup(sciantix variable, used to trigger porosity increase and as integration increment)Time step(physics variable, used for time integration of pore density and xenon inventory)
It also uses UO₂HBS matrix properties (via matrices["UO2HBS"]):
pore nucleation rate
pore resolution rate
pore trapping rate
State variables updated include:
HBS porosityHBS pore densityHBS pore volumeHBS pore radiusXe in HBS poresXe atoms per HBS poreXe in HBS pores - varianceXe atoms per HBS pore - variance
Model formulation (case 1)¶
Porosity evolution¶
For option 1, the porosity evolution is controlled by:
a burnup threshold \(B_{th} = 50\) (MWd/kg),
a constant porosity increment rate \(k = 1.3\times 10^{-3}\),
an upper porosity cap \(\phi_{max} = 0.15\).
If the current porosity is below \(\phi_{max}\) and burnup is below \(B_{th}\), the porosity increment is zero. Otherwise the increment is set to \(k\). If porosity exceeds the cap, it is limited to \(\phi_{max}\).
In the code, porosity is integrated with burnup increment:
where \(\Delta B\) is the burnup increment in the current step
(Burnup increment).
The porosity is finally limited to:
Pore density (nucleation and resolution)¶
If \(\phi > 0\), the pore number density is evolved with a decay-type equation (nucleation as source, resolution as decay):
where:
\(k_{res}\) is
matrices["UO2HBS"].getPoreResolutionRate()\(k_{nuc}\) is
matrices["UO2HBS"].getPoreNucleationRate()\(\Delta t\) is the current
Time step
If \(\phi = 0\), then HBS pore density is set to 0.
Pore volume and radius¶
When \(N_p > 0\), pore volume is obtained directly from porosity:
The pore radius is then computed from volume as:
Pore interconnection by impingement¶
The pore number density is further updated to account for pore interconnection by impingement. A limiting factor is computed as:
and the interconnection rate is defined as:
Pore density is then updated with a binary interaction law driven by the pore volume increment:
solver.BinaryInteraction(Np, k_int, ΔV_p)
After this update, pore volume and radius are recomputed consistently from the updated pore density.
Xenon in HBS pores¶
The xenon inventory in HBS pores (average concentration, at/m³) is integrated as:
implemented via solver.Integrator(...) with:
\(k_{nuc}\) =
UO2HBS.getPoreNucleationRate()\(k_{trap}\) =
UO2HBS.getPoreTrappingRate()\(k_{res}\) =
UO2HBS.getPoreResolutionRate()
If \(N_p > 0\), atoms per pore is:
Variance of xenon in pores¶
A variance-like quantity is also evolved and converted into a per-pore variance:
The source term used in the code includes trapping/resolution contributions and
a nucleation contribution proportional to
\((n_{Xe,p} - 2)^2\). The evolution is integrated with the time step using
solver.Integrator(...).
References¶
Spino et al. (2006), data basis for the empirical porosity evolution.