- fecral_material_typeThe FeCrAl alloy being used for the cladding material. Choices are: APMT C06M C35M C36M MA956 PM2000 FECRALLOY
C++ Type:MooseEnum
Controllable:No
Description:The FeCrAl alloy being used for the cladding material. Choices are: APMT C06M C35M C36M MA956 PM2000 FECRALLOY
FeCrAlCreepUpdate
Computes the thermal and irradiation creep behavior of FeCrAl cladding alloys. This material must be run in conjunction with ComputeMultipleInelasticStress.
Description
Thermal and irradiation creep of FeCrAl alloys is calculated by the FeCrAlCreepUpdate model. Seven alloy options exist including the commercial alloys Kanthal APMT, MA956, PM2000, and Fecralloy as well as the Oak Ridge National Laboratory alloys C06M, C35M, and C36M. This model must be run in conjunction with ComputeMultipleInelasticStress.
Thermal Creep of APMT, PM2000, C06M, and C36M
No specific thermal creep model exists for these alloys. However, the FeCrAl handbook has reported a creep law generalized for all alloys given by:
where is the effectives tress in Pa and is the temperature in K.
Thermal Creep of MA956
The thermal creep rate of MA956 is calculated by a Norton creep law as proposed by Seiler et al. (2011): where Q is the activation energy, n is the creep exponent and an additional factor. The creep behavior of MA956 is characterized by three regimes with independent sets of creep parameters. The transition from one regime to another takes place at the critical stress and . These critical stresses are calculated during the simulation by equating two equations with the different creep parameters in the two regimes. For example the first critical stress is defined as where and are parameters in the range , and and are parameters in the range , respectively. Table 1 below lists the creep parameters of MA956 for the various stress regimes.
Table 1: Creep parameters of MA956 (Seiler et al., 2011)
| (MPas) | n (-) | Q (kJ/mol) | (K) | |
|---|---|---|---|---|
| 11.3e-6 | 4.9827 | 453 | 0.0 | |
| 41.0 | 453 | 0.1 | ||
| 11.9e-6 | 5.2911 | 486 | -0.0122 |
Thermal Creep of Fecralloy
The model for thermal creep of Fecralloy is in the form of a Norton creep law as proposed by Saunders et al. (1997). The coefficient in the Norton law is in the form of an Arrhenius equation. where is the effective stress in Pa and T is the temperature in K.
Thermal Creep of C35M
The model for thermal creep of C35M is in the form of a Norton creep law. As proposed by Terrani et al. (2016), below 873.15 K the following correlation for thermal creep is adopted while above 873.15 K, the correlation proposed by Saunders et al. (1997) for Fecralloy is employed. is the creep rate (s), the effective stress (Pa) and T (K) is the temperature.
Irradiation Creep
The model incorporated into BISON for irradiation creep of FeCrAl alloys is taken from Terrani et al. (2016). The coefficient for irradiation creep recommended is per MPa per dpa. Utilizing the following conversion factor: n/m = 0.9 dpa, a correlation for irradiation creep can be derived. where is the effective stress in MPa and is the fast neutron flux in n/m-s.
Example Input Syntax
[Materials<<<{"href": "../../../syntax/Materials/index.html"}>>>]
[fecralcreep]
type = FeCrAlCreepUpdate<<<{"description": "Computes the thermal and irradiation creep behavior of FeCrAl cladding alloys. This material must be run in conjunction with ComputeMultipleInelasticStress.", "href": "FeCrAlCreepUpdate.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = 1
temperature<<<{"description": "The coupled temperature (K)"}>>> = temp
fast_neutron_flux<<<{"description": "The fast neutron flux"}>>> = fast_neutron_flux
fecral_material_type<<<{"description": "The FeCrAl alloy being used for the cladding material. Choices are: APMT C06M C35M C36M MA956 PM2000 FECRALLOY"}>>> = C35M
model_irradiation_creep<<<{"description": "Set true to activate irradiation induced creep"}>>> = true
model_thermal_creep<<<{"description": "Set true to activate steady state thermal creep"}>>> = false
[]
[](test/tests/solid_mechanics/fecral_creep/irradiation_creep.i)FeCrAlCreepUpdate must be run in conjunction with the inelastic strain return mapping stress calculator as shown below:
[Materials<<<{"href": "../../../syntax/Materials/index.html"}>>>]
[stress]
type = ComputeMultipleInelasticStress<<<{"description": "Compute state (stress and internal parameters such as plastic strains and internal parameters) using an iterative process. Combinations of creep models and plastic models may be used.", "href": "../ComputeMultipleInelasticStress.html"}>>>
tangent_operator<<<{"description": "Type of tangent operator to return. 'elastic': return the elasticity tensor. 'nonlinear': return the full, general consistent tangent operator."}>>> = elastic
inelastic_models<<<{"description": "The material objects to use to calculate stress and inelastic strains. Note: specify creep models first and plasticity models second."}>>> = 'fecralcreep'
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = 1
[]
[](test/tests/solid_mechanics/fecral_creep/irradiation_creep.i)Input Parameters
- absolute_tolerance1e-11Absolute convergence tolerance for Newton iteration
Default:1e-11
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Absolute convergence tolerance for Newton iteration
- acceptable_multiplier10Factor applied to relative and absolute tolerance for acceptable convergence if iterations are no longer making progress
Default:10
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Factor applied to relative and absolute tolerance for acceptable convergence if iterations are no longer making progress
- adaptive_substeppingFalseUse adaptive substepping, where the number of substeps is successively doubled until the return mapping model successfully converges or the maximum number of substeps is reached.
Default:False
C++ Type:bool
Controllable:No
Description:Use adaptive substepping, where the number of substeps is successively doubled until the return mapping model successfully converges or the maximum number of substeps is reached.
- automatic_differentiation_return_mappingFalseWhether to use automatic differentiation to compute the derivative.
Default:False
C++ Type:bool
Controllable:No
Description:Whether to use automatic differentiation to compute the derivative.
- base_nameOptional parameter that defines a prefix for all material properties related to this stress update model. This allows for multiple models of the same type to be used without naming conflicts.
C++ Type:std::string
Controllable:No
Description:Optional parameter that defines a prefix for all material properties related to this stress update model. This allows for multiple models of the same type to be used without naming conflicts.
- 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
- 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
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.
- fast_neutron_fluxThe fast neutron flux
C++ Type:std::vector<VariableName>
Unit:(no unit assumed)
Controllable:No
Description:The fast neutron flux
- max_inelastic_increment0.0001The maximum inelastic strain increment allowed in a time step
Default:0.0001
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:The maximum inelastic strain increment allowed in a time step
- maximum_number_substeps25The maximum number of substeps allowed before cutting the time step.
Default:25
C++ Type:unsigned int
Controllable:No
Description:The maximum number of substeps allowed before cutting the time step.
- model_irradiation_creepTrueSet true to activate irradiation induced creep
Default:True
C++ Type:bool
Controllable:No
Description:Set true to activate irradiation induced creep
- model_thermal_creepTrueSet true to activate steady state thermal creep
Default:True
C++ Type:bool
Controllable:No
Description:Set true to activate steady state thermal creep
- relative_tolerance1e-08Relative convergence tolerance for Newton iteration
Default:1e-08
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Relative convergence tolerance for Newton iteration
- temperatureThe coupled temperature (K)
C++ Type:std::vector<VariableName>
Unit:(no unit assumed)
Controllable:No
Description:The coupled temperature (K)
- use_substep_integration_errorFalseIf true, it establishes a substep size that will yield, at most,the creep numerical integration error given by substep_strain_tolerance.
Default:False
C++ Type:bool
Controllable:No
Description:If true, it establishes a substep size that will yield, at most,the creep numerical integration error given by substep_strain_tolerance.
- use_substeppingNONEWhether and how to use substepping
Default:NONE
C++ Type:MooseEnum
Controllable:No
Description:Whether and how to use substepping
Optional Parameters
- activation_energy_scale_factor1Scale factor to be applied to the thermal creep activation energy. Used for calibration and sensitivity studies.
Default:1
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Scale factor to be applied to the thermal creep activation energy. Used for calibration and sensitivity studies.
- exponential_constant_scale_factor1Scale factor to be applied to the thermal creep exponential constant in the MA956 model. Used for calibration and sensitivity studies.
Default:1
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Scale factor to be applied to the thermal creep exponential constant in the MA956 model. Used for calibration and sensitivity studies.
- irradiation_creep_scale_factor1Scale factor to be applied to irradiation creep strain rate. Used for calibration and sensitivity studies.
Default:1
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Scale factor to be applied to irradiation creep strain rate. Used for calibration and sensitivity studies.
- pre_exponential_scale_factor1Scale factor to be applied to the thermal creep exponential prefactor. Used for calibration and sensitivity studies.
Default:1
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Scale factor to be applied to the thermal creep exponential prefactor. Used for calibration and sensitivity studies.
- stress_exponent_scale_factor1Scale factor to be applied to the thermal creep stress exponent. Used for calibration and sensitivity studies.
Default:1
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Scale factor to be applied to the thermal creep stress exponent. Used for calibration and sensitivity studies.
Advanced: Scaling Factors Parameters
- apply_strainTrueFlag to apply strain. Used for testing.
Default:True
C++ Type:bool
Controllable:No
Description:Flag to apply strain. Used for testing.
- 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.
- effective_inelastic_strain_nameeffective_creep_strainName of the material property that stores the effective inelastic strain
Default:effective_creep_strain
C++ Type:std::string
Controllable:No
Description:Name of the material property that stores the effective inelastic strain
- 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
- substep_strain_tolerance0.1Maximum ratio of the initial elastic strain increment at start of the return mapping solve to the maximum inelastic strain allowable in a single substep. Reduce this value to increase the number of substeps
Default:0.1
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Maximum ratio of the initial elastic strain increment at start of the return mapping solve to the maximum inelastic strain allowable in a single substep. Reduce this value to increase the number of substeps
- 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
- internal_solve_full_iteration_historyFalseSet true to output full internal Newton iteration history at times determined by `internal_solve_output_on`. If false, only a summary is output.
Default:False
C++ Type:bool
Controllable:No
Description:Set true to output full internal Newton iteration history at times determined by `internal_solve_output_on`. If false, only a summary is output.
- internal_solve_output_onon_errorWhen to output internal Newton solve information
Default:on_error
C++ Type:MooseEnum
Controllable:No
Description:When to output internal Newton solve information
Debug 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
- (test/tests/solid_mechanics/fecral_creep/irradiation_creep.i)
- (test/tests/solid_mechanics/fecral_creep/C35M.i)
- (test/tests/solid_mechanics/fecral_creep/fecralloy.i)
- (test/tests/solid_mechanics/fecral_creep/handbook.i)
- (examples/accident_tolerant_fuel/uo2_fecral/uo2_fecral.i)
- (test/tests/solid_mechanics/fecral_creep/MA956.i)
- (test/tests/solid_mechanics/fecral_creep/creep_dt.i)
References
- S. R. J. Saunders, H. E. Evans, M. Li, D. D. Gohil, and S. Osgerby.
Oxidation growth stresses in an alumina-forming ferritic steel measured by creep deflection.
Oxidation of Metals, 48:189–200, 1997.[BibTeX]
- P. Seiler, M. Bäker, and J. Rösler.
Variation of creep properties and interfacial roughness in thermal barrier coating systems.
Advanced Ceramic Coatings and Materials for Extreme Environments, 32:129–136, 2011.[BibTeX]
- K. A. Terrani, T. M. Karlsen, and Y. Yamamoto.
Input correlations for irradiation creep of FeCrAl and SiC based on in-pile Halden test results.
Technical Report ORNL/TM-2016/191, ORNL, May 2016.[BibTeX]