TRISOFailureEvaluation

Computes particle failure based on Weibull statistical theory. It returns either 1 or 0, indicating fails or not fail.

Description

TRISOFailureEvaluation checks failure of the IPyC, SiC and OPyC layers in a TRISO fuel particle at each time step. Failure of these individual layers is checked using other Postprocesors, which the present Postprocessor depends on. The names of these other Postprocessors (which are typically of the WeibullFailureOutputUsingCorrelation and the PdPenetrationFailureIndicator) are required input parameters to this model.

A failure type can be specified, which includes SIC_FAILURE_OVERALL, SIC_FAILURE_DUE_TO_PRESSURE, SIC_FAILURE_DUE_TO_IPYC_CRACKING, SIC_FAILURE_DUE_TO_OPYC_CRACKING, IPYC_CRACKING , OPYC_CRACKING, PD_PENETRATION, IPYC_SIC_DEBONDING, SIC_FAILURE_DUE_TO_DEBONDING KERNEL_MIGRATION. The Postprocessor returns a value of 1 if failure of a specified failure type occurs.

Example Input Syntax

[Postprocessors<<<{"href": "../../syntax/Postprocessors/index.html"}>>>]
  [dt]
    type = TimestepSize<<<{"description": "Reports the timestep size", "href": "TimestepSize.html"}>>>
  []
  [burnup]
    type = ElementExtremeValue<<<{"description": "Finds either the min or max elemental value of a variable over the domain.", "href": "ElementExtremeValue.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = fuel
    variable<<<{"description": "The name of the variable that this postprocessor operates on"}>>> = burnup
  []
  [fis_gas_produced]
    type = ElementIntegralFisGasGeneratedSifgrs<<<{"description": "Reports the fission gas that is produced in moles.  To be used in combination with the Sifgrs model.", "href": "ElementIntegralFisGasGeneratedSifgrs.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = fuel
  []
  [fis_gas_released]
    type = ElementIntegralFisGasReleasedSifgrs<<<{"description": "Reports the fission gas that is released to the plenum in moles.  To be used in combination with the Sifgrs model.", "href": "ElementIntegralFisGasReleasedSifgrs.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = fuel
  []
  [volumeTotal]
    type = InternalVolume<<<{"description": "Computes the volume of an enclosed area by performing an integral over a user-supplied boundary.", "href": "InternalVolume.html"}>>>
    boundary<<<{"description": "The list of boundary IDs from the mesh where this object applies"}>>> = exterior
  []
  [volumeFuel]
    type = InternalVolume<<<{"description": "Computes the volume of an enclosed area by performing an integral over a user-supplied boundary.", "href": "InternalVolume.html"}>>>
    boundary<<<{"description": "The list of boundary IDs from the mesh where this object applies"}>>> = fuel_outer_boundary
  []
  [volumeGas]
    type = InternalVolume<<<{"description": "Computes the volume of an enclosed area by performing an integral over a user-supplied boundary.", "href": "InternalVolume.html"}>>>
    boundary<<<{"description": "The list of boundary IDs from the mesh where this object applies"}>>> = 'fuel_outer_boundary IPyC_inner_boundary'
    addition<<<{"description": "An additional volume to be included in the internal volume calculation. A time-dependent function is expected."}>>> = -5.53e-11
    execute_on<<<{"description": "The list of flag(s) indicating when this object should be executed. For a description of each flag, see https://mooseframework.inl.gov/source/interfaces/SetupInterface.html."}>>> = 'initial timestep_end'
  []
  [volumeBufferShell]
    type = InternalVolume<<<{"description": "Computes the volume of an enclosed area by performing an integral over a user-supplied boundary.", "href": "InternalVolume.html"}>>>
    boundary<<<{"description": "The list of boundary IDs from the mesh where this object applies"}>>> = buffer_IPyC_boundary
  []
  [ave_temp_interior]
    type = SideAverageValue<<<{"description": "Computes the average value of a variable on a sideset. Note that this cannot be used on the centerline of an axisymmetric model.", "href": "SideAverageValue.html"}>>>
    boundary<<<{"description": "The list of boundary IDs from the mesh where this object applies"}>>> = buffer_IPyC_boundary
    variable<<<{"description": "The name of the variable which this postprocessor integrates"}>>> = temperature
    execute_on<<<{"description": "The list of flag(s) indicating when this object should be executed. For a description of each flag, see https://mooseframework.inl.gov/source/interfaces/SetupInterface.html."}>>> = 'initial timestep_end'
  []
  # Postprocessors for CO production
  [total_fission_rate]
    type = ElementIntegralPower<<<{"description": "Computes the power given the fission rate and energy per fission.", "href": "ElementIntegralPower.html"}>>>
    variable<<<{"description": "The name of the variable that this object operates on"}>>> = temperature
    fission_rate<<<{"description": "Coupled fission rate"}>>> = fission_rate
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = fuel
    energy_per_fission<<<{"description": "Energy released per fission (J/fission)"}>>> = 1.0
  []
  [total_fissions]
    type = TimeIntegratedPostprocessor<<<{"description": "Integrate a Postprocessor value over time using trapezoidal rule.", "href": "TimeIntegratedPostprocessor.html"}>>>
    value<<<{"description": "The name of the postprocessor"}>>> = total_fission_rate
  []
  [avg_surface_temperature]
    type = SideAverageValue<<<{"description": "Computes the average value of a variable on a sideset. Note that this cannot be used on the centerline of an axisymmetric model.", "href": "SideAverageValue.html"}>>>
    variable<<<{"description": "The name of the variable which this postprocessor integrates"}>>> = temperature
    boundary<<<{"description": "The list of boundary IDs from the mesh where this object applies"}>>> = exterior
  []
  [time_int_surf_temperature]
    type = TimeIntegratedPostprocessor<<<{"description": "Integrate a Postprocessor value over time using trapezoidal rule.", "href": "TimeIntegratedPostprocessor.html"}>>>
    value<<<{"description": "The name of the postprocessor"}>>> = avg_surface_temperature
  []
  [co_production]
    type = CarbonMonoxideProduction<<<{"description": "Computes CO production in oxide fuel based on the Proksch or GA correlation.", "href": "CarbonMonoxideProduction.html"}>>>
    total_fissions<<<{"description": "The name of the postprocessor containing the total fissions."}>>> = total_fissions
    time_integrated_triso_temperature<<<{"description": "The name of the postprocessor containing the time integrated TRISO surface temperature (for Proksch)."}>>> = time_int_surf_temperature
    initial_enrichment<<<{"description": "initial enrichment fraction of U235 (wt%)"}>>> = 0.14029
  []
  [tang_SiC]
    type = ElementalVariableValue<<<{"description": "Outputs an elemental variable value at a particular location", "href": "ElementalVariableValue.html"}>>>
    variable<<<{"description": "The variable to be monitored"}>>> = stress_yy
    elementid<<<{"description": "The ID of the element where we monitor"}>>> = 18
  []
  [strength_SiC]
    type = WeibullEffectiveMeanStrength<<<{"description": "Computes Weibull effective mean strength, which is used by the WeibullFailureOutputUsingCorrelation Postprocessor.", "href": "WeibullEffectiveMeanStrength.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = SiC
    weibull_modulus<<<{"description": ",Weibull modulus"}>>> = 6
  []
  [failure_indicator_SiC]
    type = WeibullFailureOutputUsingCorrelation<<<{"description": "Computes failure indicator of a TRISO layer using a correlation function.", "href": "WeibullFailureOutputUsingCorrelation.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = SiC
    weibull_modulus<<<{"description": ",Weibull modulus"}>>> = 6
    stress_name<<<{"description": "Name of the stress property."}>>> = max_principal_stress
    effective_mean_strength<<<{"description": "The name of the postprocessor calculating the effective mean strength."}>>> = strength_SiC
  []
  [strength_IPyC]
    type = WeibullEffectiveMeanStrength<<<{"description": "Computes Weibull effective mean strength, which is used by the WeibullFailureOutputUsingCorrelation Postprocessor.", "href": "WeibullEffectiveMeanStrength.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = IPyC
    weibull_modulus<<<{"description": ",Weibull modulus"}>>> = 6
  []
  [failure_indicator_IPyC]
    type = WeibullFailureOutputUsingCorrelation<<<{"description": "Computes failure indicator of a TRISO layer using a correlation function.", "href": "WeibullFailureOutputUsingCorrelation.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = IPyC
    weibull_modulus<<<{"description": ",Weibull modulus"}>>> = 6
    stress_name<<<{"description": "Name of the stress property."}>>> = max_principal_stress
    effective_mean_strength<<<{"description": "The name of the postprocessor calculating the effective mean strength."}>>> = strength_IPyC
  []
  [failure_indicator_debonding]
    type = TRISODebondingFailureIndicator<<<{"description": "Computes debonding failure indicator of TRISO layers.", "href": "TRISODebondingFailureIndicator.html"}>>>
    boundary<<<{"description": "The list of boundary IDs from the mesh where this object applies"}>>> = IPyC_outer_boundary
    bond_strength<<<{"description": "bond strength is treated as a parameter having a Gaussian distribution with a specific mean value and standard deviation."}>>> = 1e5
    stress_name<<<{"description": "Name of the stress property."}>>> = radial_stress
  []
  [strength_OPyC]
    type = WeibullEffectiveMeanStrength<<<{"description": "Computes Weibull effective mean strength, which is used by the WeibullFailureOutputUsingCorrelation Postprocessor.", "href": "WeibullEffectiveMeanStrength.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = OPyC
    weibull_modulus<<<{"description": ",Weibull modulus"}>>> = 6
  []
  [failure_indicator_OPyC]
    type = WeibullFailureOutputUsingCorrelation<<<{"description": "Computes failure indicator of a TRISO layer using a correlation function.", "href": "WeibullFailureOutputUsingCorrelation.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = OPyC
    weibull_modulus<<<{"description": ",Weibull modulus"}>>> = 6
    stress_name<<<{"description": "Name of the stress property."}>>> = max_principal_stress
    effective_mean_strength<<<{"description": "The name of the postprocessor calculating the effective mean strength."}>>> = strength_OPyC
  []
  [failure_indicator_SiC_crackedIPyC]
    type = WeibullFailureOutputUsingCorrelation<<<{"description": "Computes failure indicator of a TRISO layer using a correlation function.", "href": "WeibullFailureOutputUsingCorrelation.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = SiC
    weibull_modulus<<<{"description": ",Weibull modulus"}>>> = 6
    stress_name<<<{"description": "Name of the stress property."}>>> = max_principal_stress
    high_fidelity_analysis_strength<<<{"description": "The effective mean strength obtained from a high-fidelity analysis."}>>> = 'high_fidelity_strength_crackedIPyC'
    stress_correlation_function<<<{"description": "The stress correlation function obtained from a high-fidelity analysis."}>>> = 'stress_correlation_crackedIPyC'
  []
  [failure_indicator_SiC_crackedOPyC]
    type = WeibullFailureOutputUsingCorrelation<<<{"description": "Computes failure indicator of a TRISO layer using a correlation function.", "href": "WeibullFailureOutputUsingCorrelation.html"}>>>
    block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = SiC
    weibull_modulus<<<{"description": ",Weibull modulus"}>>> = 6
    stress_name<<<{"description": "Name of the stress property."}>>> = max_principal_stress
    high_fidelity_analysis_strength<<<{"description": "The effective mean strength obtained from a high-fidelity analysis."}>>> = 'high_fidelity_strength_crackedIPyC'
    stress_correlation_function<<<{"description": "The stress correlation function obtained from a high-fidelity analysis."}>>> = 'stress_correlation_crackedOPyC'
  []
  [triso_failure]
    type = TRISOFailureEvaluation<<<{"description": "Computes particle failure based on Weibull statistical theory. It returns either 1 or 0, indicating fails or not fail.", "href": "TRISOFailureEvaluation.html"}>>>
    IPyC_failure<<<{"description": "The name of the postprocessor calculating the IPyC failure."}>>> = failure_indicator_IPyC
    OPyC_failure<<<{"description": "The name of the postprocessor calculating the OPyC failure."}>>> = failure_indicator_OPyC
    SiC_failure<<<{"description": "The name of the postprocessor calculating the SiC failure."}>>> = failure_indicator_SiC
    SiC_failure_crackedIPyC<<<{"description": "The name of the postprocessor calculating the SiC failure due to cracked IPyC."}>>> = failure_indicator_SiC_crackedIPyC
    SiC_failure_crackedOPyC<<<{"description": "The name of the postprocessor calculating the SiC failure due to cracked OPyC."}>>> = failure_indicator_SiC_crackedOPyC
    SiC_failure_debonding<<<{"description": "The name of the postprocessor calculating the SiC failure due to IPyC-SiC debonding."}>>> = failure_indicator_debonding
  []
[]
(test/tests/triso_failure/triso_1d_failure.i)

Input Parameters

  • SiC_failureThe name of the postprocessor calculating the SiC failure.

    C++ Type:PostprocessorName

    Unit:(no unit assumed)

    Controllable:No

    Description:The name of the postprocessor calculating the SiC failure.

Required Parameters

  • IPyC_SiC_debonding0The name of the postprocessor calculating the IPyC-SiC debonding.

    Default:0

    C++ Type:PostprocessorName

    Unit:(no unit assumed)

    Controllable:No

    Description:The name of the postprocessor calculating the IPyC-SiC debonding.

  • IPyC_failure0The name of the postprocessor calculating the IPyC failure.

    Default:0

    C++ Type:PostprocessorName

    Unit:(no unit assumed)

    Controllable:No

    Description:The name of the postprocessor calculating the IPyC failure.

  • OPyC_failure0The name of the postprocessor calculating the OPyC failure.

    Default:0

    C++ Type:PostprocessorName

    Unit:(no unit assumed)

    Controllable:No

    Description:The name of the postprocessor calculating the OPyC failure.

  • SiC_failure_crackedIPyC0The name of the postprocessor calculating the SiC failure due to cracked IPyC.

    Default:0

    C++ Type:PostprocessorName

    Unit:(no unit assumed)

    Controllable:No

    Description:The name of the postprocessor calculating the SiC failure due to cracked IPyC.

  • SiC_failure_crackedOPyC0The name of the postprocessor calculating the SiC failure due to cracked OPyC.

    Default:0

    C++ Type:PostprocessorName

    Unit:(no unit assumed)

    Controllable:No

    Description:The name of the postprocessor calculating the SiC failure due to cracked OPyC.

  • SiC_failure_debonding0The name of the postprocessor calculating the SiC failure due to IPyC-SiC debonding.

    Default:0

    C++ Type:PostprocessorName

    Unit:(no unit assumed)

    Controllable:No

    Description:The name of the postprocessor calculating the SiC failure due to IPyC-SiC debonding.

  • SiC_failure_kernel_migration0The name of the postprocessor calculating the SiC failure due to kernel migration.

    Default:0

    C++ Type:PostprocessorName

    Unit:(no unit assumed)

    Controllable:No

    Description:The name of the postprocessor calculating the SiC failure due to kernel migration.

  • SiC_failure_pd_penetration0The name of the postprocessor calculating the SiC failure due to palladium penetration.

    Default:0

    C++ Type:PostprocessorName

    Unit:(no unit assumed)

    Controllable:No

    Description:The name of the postprocessor calculating the SiC failure due to palladium penetration.

  • 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

  • failure_typeSIC_FAILURE_OVERALLThe TRISO failure type

    Default:SIC_FAILURE_OVERALL

    C++ Type:MooseEnum

    Options:SIC_FAILURE_OVERALL, SIC_FAILURE_DUE_TO_PRESSURE, SIC_FAILURE_DUE_TO_IPYC_CRACKING, SIC_FAILURE_DUE_TO_OPYC_CRACKING, IPYC_CRACKING, OPYC_CRACKING, PD_PENETRATION, IPYC_SIC_DEBONDING, SIC_FAILURE_DUE_TO_DEBONDING, KERNEL_MIGRATION

    Controllable:No

    Description:The TRISO failure type

Optional Parameters

  • allow_duplicate_execution_on_initialFalseIn the case where this UserObject is depended upon by an initial condition, allow it to be executed twice during the initial setup (once before the IC and again after mesh adaptivity (if applicable).

    Default:False

    C++ Type:bool

    Controllable:No

    Description:In the case where this UserObject is depended upon by an initial condition, allow it to be executed twice during the initial setup (once before the IC and again after mesh adaptivity (if applicable).

  • execute_onTIMESTEP_ENDThe list of flag(s) indicating when this object should be executed. For a description of each flag, see https://mooseframework.inl.gov/source/interfaces/SetupInterface.html.

    Default:TIMESTEP_END

    C++ Type:ExecFlagEnum

    Options:XFEM_MARK, NONE, INITIAL, LINEAR, NONLINEAR_CONVERGENCE, NONLINEAR, POSTCHECK, TIMESTEP_END, TIMESTEP_BEGIN, MULTIAPP_FIXED_POINT_END, MULTIAPP_FIXED_POINT_BEGIN, FINAL, CUSTOM, TRANSFER

    Controllable:No

    Description:The list of flag(s) indicating when this object should be executed. For a description of each flag, see https://mooseframework.inl.gov/source/interfaces/SetupInterface.html.

  • execution_order_group0Execution order groups are executed in increasing order (e.g., the lowest number is executed first). Note that negative group numbers may be used to execute groups before the default (0) group. Please refer to the user object documentation for ordering of user object execution within a group.

    Default:0

    C++ Type:int

    Controllable:No

    Description:Execution order groups are executed in increasing order (e.g., the lowest number is executed first). Note that negative group numbers may be used to execute groups before the default (0) group. Please refer to the user object documentation for ordering of user object execution within a group.

  • force_postauxFalseForces the UserObject to be executed in POSTAUX

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Forces the UserObject to be executed in POSTAUX

  • force_preauxFalseForces the UserObject to be executed in PREAUX

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Forces the UserObject to be executed in PREAUX

  • force_preicFalseForces the UserObject to be executed in PREIC during initial setup

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Forces the UserObject to be executed in PREIC during initial setup

Execution Scheduling 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

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

    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

  • 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

  • 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