Class Matrix

Inheritance Relationships

Base Type

Class Documentation

class Matrix : public virtual Material

Represents the fuel matrix material such as UO2, UO2-HBS, or MOX, derived from the Material class.

This class extends the Material class to incorporate properties specific to nuclear fuel matrices, including physical and nuclear properties like lattice parameters, grain boundary properties, and fission fragment characteristics.

Author

G. Zullo

Public Functions

inline void setTheoreticalDensity(double m)

Sets the theoretical density of the matrix.

Parameters:

m – The density to set (kg/m3).

inline double getTheoreticalDensity()

Retrieves the theoretical density of the matrix.

Returns:

A double that is the density of the matrix (kg/m3).

inline void setLatticeParameter(double m)

Sets the lattice parameter of the matrix.

Parameters:

m – The lattice parameter to set.

inline double getLatticeParameter()

Retrieves the lattice parameter of the matrix.

Returns:

The lattice parameter of the matrix.

inline void setSurfaceTension(double r)

Sets the surface tension of the matrix material.

Parameters:

r – The surface tension to set (N/m).

inline double getSurfaceTension()

Retrieves the surface tension of the matrix material.

Returns:

The surface tension of the matrix (N/m).

inline void setSchottkyVolume(double v)

Sets the volume of a Schottky defect in the matrix.

Parameters:

v – The volume of the Schottky defect to set (m3).

inline double getSchottkyVolume()

Retrieves the volume of a Schottky defect in the matrix.

Returns:

The volume of the Schottky defect (m3).

inline void setOctahedralInterstitialSite(double v)

Sets the volume of an octahedral interstitial site in the matrix.

Parameters:

v – The volume to set (m3).

inline double getOctahedralInterstitialSite()

Retrieves the volume of an octahedral interstitial site in the matrix.

Returns:

The volume of the OIS (m3).

void setGrainBoundaryMobility(int input_value, SciantixArray<SciantixVariable> &history_variable)

Sets the grain boundary mobility based on the selected model.

Parameters:

input_value – The model selection for grain boundary mobility.

inline double getGrainBoundaryMobility()

Retrieves the mobility of the grain boundaries of the matrix.

Returns:

The grain boundary mobility.

inline void setFissionFragmentRange(double r)

Sets the average range of the fission fragments in the matrix.

Parameters:

r – The range to set (m).

inline double getFissionFragmentRange()

Retrieves the average range of the fission fragments in the matrix.

Returns:

The range of the fission fragments (m).

inline void setFissionFragmentInfluenceRadius(double r)

Sets the radius of influence of the fission fragment track.

Parameters:

r – The radius to set (m).

inline double getFissionFragmentInfluenceRadius()

Retrieves the radius of influence of the fission fragment track.

Returns:

The radius of influence (m).

inline void setSemidihedralAngle(double sda)

Sets the semidihedral angle.

Parameters:

sda – The semidihedral angle to set.

inline double getSemidihedralAngle()

Retrieves the semidihedral angle.

Returns:

The semidihedral angle.

inline void setGrainBoundaryThickness(double gbt)

Sets the thickness of the grain boundary.

Parameters:

gbt – The thickness to set (m).

inline double getGrainBoundaryThickness()

Retrieves the thickness of the grain boundary.

Returns:

The thickness of the grain boundary (m).

void setGrainBoundaryVacancyDiffusivity(int input_value, SciantixArray<SciantixVariable> &history_variable)

Sets the diffusivity of vacancies on the grain boundaries based on the input model.

Parameters:

input_value – The model selection for grain boundary vacancy diffusivity.

inline double getGrainBoundaryVacancyDiffusivity()

Retrieves the vacancy diffusivity on the grain boundaries.

Returns:

The grain boundary vacancy diffusivity.

inline void setLenticularShapeFactor(double lsf)

Sets the lenticular shape factor.

Parameters:

lsf – The lenticular shape factor to set (/).

inline double getLenticularShapeFactor()

Retrieves the lenticular shape factor.

Returns:

The lenticular shape factor (/).

inline void setNucleationRate(double n)

Sets the nucleation rate under irradiation.

Parameters:

n – The nucleation rate to set (1/s).

inline double getNucleationRate()

Retrieves the nucleation rate under irradiation.

Returns:

The nucleation rate (1/s).

void setPoreNucleationRate(SciantixArray<SciantixVariable> &sciantix_variable)

Sets the nucleation rate of pores in high burnup structures (HBS).

Calculates the nucleation rate based on current simulation parameters and a predefined model. The model used is defined by Barani T. et al (2022). Journal of Nuclear Materials, 563, 153627.

inline double getPoreNucleationRate()

Retrieves the nucleation rate of pores.

The model used is defined by Barani T. et al (2022). Journal of Nuclear Materials, 563, 153627.

Returns:

The pore nucleation rate (1/s).

void setPoreResolutionRate(SciantixArray<SciantixVariable> &sciantix_variable, SciantixArray<SciantixVariable> &history_variable)

Sets the resolution rate of gas atoms from HBS pores.

The re-solution rate is calculated based on current simulation parameters and a model from Barani et al., JNM 563 (2022) 153627.

inline double getPoreResolutionRate()

Retrieves the resolution rate of gas atoms from pores.

Returns:

The pore resolution rate (1/s).

void setPoreTrappingRate(SciantixArray<Matrix> &matrices, SciantixArray<SciantixVariable> &sciantix_variable)

Sets the trapping rate of gas atoms in HBS pores.

The trapping rate is calculated based on current simulation parameters and a model from Barani et al., JNM 563 (2022) 153627.

inline double getPoreTrappingRate()

Retrieves the trapping rate of gas atoms in pores.

Returns:

The pore trapping rate (1/s).

inline void setGrainRadius(double gr)

Sets the grain radius of the matrix.

Parameters:

gr – The grain radius to set.

inline double getGrainRadius()

Retrieves the grain radius of the matrix.

Returns:

The grain radius.

inline void setHealingTemperatureThreshold(double t)

Sets the temperature limit for complete healing of extended defects in the fuel matrix.

Parameters:

t – The temperature threshold to set (K).

inline double getHealingTemperatureThreshold()

Retrieves the temperature limit for complete healing of extended defects.

Returns:

The healing temperature threshold (K).

inline void setChromiumContent(double cc)
inline double getChromiumContent()
inline void setChromiumSolubility(double cs)
inline double getChroimumSolubility()
inline void setChromiaSolubility(double crs)
inline double getChromiaSolubility()
inline void setChromiumSolution(double cr_sol)
inline double getChromiumSolution()
inline void setChromiumPrecipitate(double cr_p)
inline double getChromiumPrecipitate()
inline void setChromiaSolution(double chromia_sol)
inline double getChromiaSolution()
inline void setChromiaPrecipitate(double chromia_p)
inline double getChromiaPrecipitate()
inline void setElasticModulus(double e)
inline double getElasticModulus()
inline void setPoissonRatio(double v)
inline double getPoissonRatio()
inline void setGrainBoundaryFractureEnergy(double v)
inline double getGrainBoundaryFractureEnergy()
inline void setShearModulus(double g)
inline double getShearModulus()
inline Matrix()

Constructor.

inline ~Matrix()

Destructor.

Public Members

double matrix_density
double lattice_parameter
double grain_boundary_mobility
double ff_range
double ff_influence_radius
double surface_tension
double schottky_defect_volume
double ois_volume
double grain_boundary_thickness
double grain_boundary_diffusivity
double semidihedral_angle
double lenticular_shape_factor
double grain_radius
double healing_temperature_threshold
double nucleation_rate
double pore_nucleation_rate
double pore_resolution_rate
double pore_trapping_rate
double chromium_content
double chromium_solubility
double Cr2O3_solubility
double chromium_solution
double chromium_precipitate
double chromia_solution
double chromia_precipitate
double elastic_modulus
double poisson_ratio
double grain_boundary_fracture_energy
double shear_modulus