Pd Source Material

Calculates Pd production rate density using simplified one-group approximations to account for fuel burnout and breeding.

Description

The PdSourceMaterial class is used to model Pd production in tri-structural isotropic (TRISO) particle fuel kernels. It applies one-group approximations and simplified transmutation chains to account for the effects of fuel burnout and breeding on the production rate density of Pd.

The transmutation chain relevant to Pd production is shown below: (1) TRISO particle irradiations are typically on the order of months to years. and have short half-lives on the order of minutes and days, respectively. Conversely, the Pu isotopes have long half-lives on the order of tens of years to tens of thousands of years. Comparing the TRISO irradiation time scale to the half-lives of the radioactive nuclides allows the transmutation chain to be simplified considerably: (2)

Assuming that there is initially no Pu present, and given the initial fuel density , mass fraction of U in the fuel , and initial enrichment , the initial number densities of and are calculated using: (3) where is Avogadro's number, and are the molar masses of the nuclides.

PdSourceMaterial then uses a provided fission rate density and the microscopic cross sections for fission and neutron capture to explicitly model evolution of the , , , , and number densities over time. At each time step, a representative flux is calculated using: (4) where is the number of fissile/fertile nuclides being considered (5), and are number densities evaluated at the previous time step.

The represenative flux is then used to calculate fission densities , capture densities , and production densities : (5) (6) (7) where is the time step size. Finally, the number densities at the current time step are calculated using: (8) Cross sections are taken from NEA (1985) and calibrated to cumulative specific fission density calculations performed for Advanced Gas Reactor (AGR) experiments 3/4 Sterbentz (2015).

The number densities are then used to weight nuclide-specific Pd fission yields taken from IAEA (2023). For each fissile/fertile nuclide, its total Pd yield is taken to be the sum of its yields for all stable and long-lived Pd isotopes (, , , , , , and ). The total Pd yield is calculated using: (9) where is an optional constant that can be applied to scale the total Pd yield. Finally, the Pd production rate density (in mol/ms) is calculated using: (10)

Note that while this model accounts for the effects of fuel burnout and breeding to deliver reasonable Pd production rate densities for prototypic TRISO geometries and operating conditions, it employs numerous assumptions and simplifications and relies on parameters calibrated to a limited dataset. The represenative flux, cross sections, and number densities associated with this model should be used with caution if applied to analyses outside the scope of Pd production in prototypic TRISO fuels. This model is not intended to take the place of proper neutronic and depletion calculations performed with realistic transmutation chains, energy-resolved flux spectra, and appropriate multi-group cross sections.

Example Input Syntax

[Materials<<<{"href": "../../syntax/Materials/index.html"}>>>]
  [pd_source]
    type = ADPdSourceMaterial<<<{"description": "Calculates Pd production rate density using simplified one-group approximations to account for fuel burnout and breeding.", "href": "PdSourceMaterial.html"}>>>
    energy_per_fission<<<{"description": "The energy per fission in J"}>>> = 3.20435e-11
    fission_rate<<<{"description": "The fission rate density in 1/m^3-s"}>>> = fission_rate
    initial_enrichment<<<{"description": "The initial U-235 enrichment in kg/kg"}>>> = 0.19717
    initial_fuel_density<<<{"description": "The initial density of the fuel in kg/m^3"}>>> = 10400
    mass_fraction_of_U_in_fuel<<<{"description": "The initial mass fraction of U in the fuel in kg/kg"}>>> = 0.885
    scaling_factor<<<{"description": "The Pd production scaling factor"}>>> = 1
    outputs<<<{"description": "Vector of output names where you would like to restrict the output of variables(s) associated with this object"}>>> = all
  []
[]
(test/tests/pd_source_material/ad.i)

Input Parameters

  • initial_enrichmentThe initial U-235 enrichment in kg/kg

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:The initial U-235 enrichment in kg/kg

  • initial_fuel_densityThe initial density of the fuel in kg/m^3

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:The initial density of the fuel in kg/m^3

  • mass_fraction_of_U_in_fuelThe initial mass fraction of U in the fuel in kg/kg

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:The initial mass fraction of U in the fuel in kg/kg

Required Parameters

  • blockThe list of blocks (ids or names) that this object will be applied

    C++ Type:std::vector<SubdomainName>

    Controllable:No

    Description:The list of blocks (ids or names) that this object will be applied

  • boundaryThe list of boundaries (ids or names) from the mesh where this object applies

    C++ Type:std::vector<BoundaryName>

    Controllable:No

    Description:The list of boundaries (ids or names) from the mesh where this object applies

  • computeTrueWhen false, MOOSE will not call compute methods on this material. The user must call computeProperties() after retrieving the MaterialBase via MaterialBasePropertyInterface::getMaterialBase(). Non-computed MaterialBases are not sorted for dependencies.

    Default:True

    C++ Type:bool

    Controllable:No

    Description:When false, MOOSE will not call compute methods on this material. The user must call computeProperties() after retrieving the MaterialBase via MaterialBasePropertyInterface::getMaterialBase(). Non-computed MaterialBases are not sorted for dependencies.

  • constant_onNONEWhen ELEMENT, MOOSE will only call computeQpProperties() for the 0th quadrature point, and then copy that value to the other qps.When SUBDOMAIN, MOOSE will only call computeQpProperties() for the 0th quadrature point, and then copy that value to the other qps. Evaluations on element qps will be skipped

    Default:NONE

    C++ Type:MooseEnum

    Options:NONE, ELEMENT, SUBDOMAIN

    Controllable:No

    Description:When ELEMENT, MOOSE will only call computeQpProperties() for the 0th quadrature point, and then copy that value to the other qps.When SUBDOMAIN, MOOSE will only call computeQpProperties() for the 0th quadrature point, and then copy that value to the other qps. Evaluations on element qps will be skipped

  • declare_suffixAn optional suffix parameter that can be appended to any declared properties. The suffix will be prepended with a '_' character.

    C++ Type:MaterialPropertyName

    Unit:(no unit assumed)

    Controllable:No

    Description:An optional suffix parameter that can be appended to any declared properties. The suffix will be prepended with a '_' character.

  • energy_per_fission3.20435e-11The energy per fission in J

    Default:3.20435e-11

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:The energy per fission in J

  • fission_ratefission_rateThe fission rate density in 1/m^3-s

    Default:fission_rate

    C++ Type:MaterialPropertyName

    Unit:(no unit assumed)

    Controllable:No

    Description:The fission rate density in 1/m^3-s

  • scaling_factor1The Pd production scaling factor

    Default:1

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:The Pd production scaling factor

Optional Parameters

  • control_tagsAdds user-defined labels for accessing object parameters via control logic.

    C++ Type:std::vector<std::string>

    Controllable:No

    Description:Adds user-defined labels for accessing object parameters via control logic.

  • enableTrueSet the enabled status of the MooseObject.

    Default:True

    C++ Type:bool

    Controllable:Yes

    Description:Set the enabled status of the MooseObject.

  • implicitTrueDetermines whether this object is calculated using an implicit or explicit form

    Default:True

    C++ Type:bool

    Controllable:No

    Description:Determines whether this object is calculated using an implicit or explicit form

  • seed0The seed for the master random number generator

    Default:0

    C++ Type:unsigned int

    Controllable:No

    Description:The seed for the master random number generator

  • use_displaced_meshFalseWhether or not this object should use the displaced mesh for computation. Note that in the case this is true but no displacements are provided in the Mesh block the undisplaced mesh will still be used.

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Whether or not this object should use the displaced mesh for computation. Note that in the case this is true but no displacements are provided in the Mesh block the undisplaced mesh will still be used.

Advanced Parameters

  • output_propertiesList of material properties, from this material, to output (outputs must also be defined to an output type)

    C++ Type:std::vector<std::string>

    Controllable:No

    Description:List of material properties, from this material, to output (outputs must also be defined to an output type)

  • outputsnone Vector of output names where you would like to restrict the output of variables(s) associated with this object

    Default:none

    C++ Type:std::vector<OutputName>

    Controllable:No

    Description:Vector of output names where you would like to restrict the output of variables(s) associated with this object

Outputs Parameters

  • prop_getter_suffixAn optional suffix parameter that can be appended to any attempt to retrieve/get material properties. The suffix will be prepended with a '_' character.

    C++ Type:MaterialPropertyName

    Unit:(no unit assumed)

    Controllable:No

    Description:An optional suffix parameter that can be appended to any attempt to retrieve/get material properties. The suffix will be prepended with a '_' character.

  • use_interpolated_stateFalseFor the old and older state use projected material properties interpolated at the quadrature points. To set up projection use the ProjectedStatefulMaterialStorageAction.

    Default:False

    C++ Type:bool

    Controllable:No

    Description:For the old and older state use projected material properties interpolated at the quadrature points. To set up projection use the ProjectedStatefulMaterialStorageAction.

Material Property Retrieval Parameters

Input Files

References

  1. International Atomic Energy Agency IAEA. Live chart of nuclides - nuclear structure and decay data. https://www-nds.iaea.org/relnsd/vcharthtml/VChartHTML.html, 2023.[BibTeX]
  2. Nuclear Energy Agency Data Bank NEA. JEF report 3 - table of simple integral neutron cross-section data from JEF-1, ENDF/B-V, ENDL-82, JENDL-2, KEDAK-4, RCN-3. https://www.oecd-nea.org/dbdata/nds_jefreports/jefreport-3.pdf, 1985.[BibTeX]
  3. J. Sterbentz. JMOCUP as-run daily physics depletion calculation for AGR-3/4 TRISO particle experiment in ATR northeast flux trap. Technical Report TEM-10200-1 Revision 6, Idaho National Laboratory, June 2015.[BibTeX]