- K_hydrideK parameter for hydride inclusions. Equals initial yield stress if 'reference_strain_hydride' is greater than zero.
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:K parameter for hydride inclusions. Equals initial yield stress if 'reference_strain_hydride' is greater than zero.
- K_zircaloyK parameter for zirconium matrix. Equals initial yield stress if 'reference_strain_hydride' is greater than zero.
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:K parameter for zirconium matrix. Equals initial yield stress if 'reference_strain_hydride' is greater than zero.
- damage_strain_hydridereference normal strain for damage in hydride
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:reference normal strain for damage in hydride
- damage_strain_zircaloyreference normal strain for damage in zirconium
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:reference normal strain for damage in zirconium
- elastic_modulus_hydrideelastic modulus for hydride inclusions
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:elastic modulus for hydride inclusions
- hardening_exponent_hydridehardening exponent in plasticity model for hydride inclusions
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:hardening exponent in plasticity model for hydride inclusions
- hardening_exponent_zircaloyhardening exponent in plasticity model for zirconium matrix
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:hardening exponent in plasticity model for zirconium matrix
- poisson_ratio_hydridepoisson ratio for hydride inclusions
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:poisson ratio for hydride inclusions
ZircaloyDamage
Computes response of Zircaloy cladding subject to damage and the effect of hydrides.
Description
ZircaloyDamage is a model for the mechanical effect of hydrides in Zircaloy cladding. It is based on Rashid et al. (2009).
The model takes as inputs elastic-plastic properties for hydrides and Zircaloy, the volume fraction of radial and circumferential hydrides, and a damage strain parameter for both Zircaloy and hydride. A combined response is developed based on the behavior of each constituent subject to certain constraints. Hydrides may appear in the circumferential direction, the radial direction, or both.
The basic building block of the model is the arrangement described in Figure 1 with intact and damaged hydride platelet and matrix materials. The fraction of these materials is where is the fractional amount with subscripts , , 1, 2, 3, and 4 representing platelet, matrix, and domains 1 through 4 based on Figure 1. As damage develops, one or both of and are greater than zero.
Figure 1: Four domains in the damage model: 1, intact platelet; 2, intact matrix; 3, damaged platelet; and 4, damaged matrix. Based on Fig. 3 in Rashid et al. (2009).
Considering first the undamaged state, the two constituents are constrained to experience the same strains in the plane of the hydride and the same stresses out of the plane of the hydride. For undamaged platelet and matrix, where the prime indicates that the stress is oriented in the platelet's local coordinate frame.
More generally,
The model enforces zero stress across damaged hydride and damaged Zircaloy phases. Any load perpendicular to damaged material is carried by the undamaged material.
Damage is measured by tracking the strain normal to the platelet. Increased strain increases the damage. With increasing damage, more material (hydride and Zircaloy) is considered damaged and less considered undamaged.
The damage function used in the model depends on the maximum normal strain, , the damage parameter , a volume fraction, , and a damage fraction parameter, . Damage, , is given as where
When the volume fraction, , is one, with damage beginning at and ending at through a quadratic transition. With a smaller, more typical volume fraction, damage begins at the same point but reaches one at a larger strain.
Overall damage in the matrix is computed as the sum of the damage in the hydride squared and a separate damage calculation for the matrix. In this way, matrix damage is often lower than the hydride damage but reaches one when the hydride is fully damaged.
By considering radial hydrides alongside a matrix composed of Zircaloy with circumferential hydrides and also circumferential hydrides alongside a matrix composed of Zircaloy with radial hydrides, the interaction between all three is determined.
In this model, damage is driven purely by tensile strains in the radial and circumferential directions. With no tensile strain in these directions, no damage will be computed.
Note that this material is based on an elastic-plastic constitutive relationship and not on creep. The parameters reference_strain_hydride and reference_strain_zircaloy are expected to be greater than zero and default to 0.001. The yield stress is where is the yield stress, is the initial yield stress (initial_yield_stress_hydride or initial_yield_stress_zircaloy), is the equivalent plastic strain, is the reference strain, and is the hardening exponent.
For a complete description of the model, see Rashid et al. (2009).
Example Input Syntax
[Materials<<<{"href": "../../syntax/Materials/index.html"}>>>]
[ZircaloyDamage]
type = ZircaloyDamage<<<{"description": "Computes response of Zircaloy cladding subject to damage and the effect of hydrides.", "href": "ZircaloyDamage.html"}>>>
elastic_modulus_hydride<<<{"description": "elastic modulus for hydride inclusions"}>>> = 9.67e10
poisson_ratio_hydride<<<{"description": "poisson ratio for hydride inclusions"}>>> = 0.389
K_hydride<<<{"description": "K parameter for hydride inclusions. Equals initial yield stress if 'reference_strain_hydride' is greater than zero."}>>> = 411e6
reference_strain_hydride<<<{"description": "reference strain in plasticity model for hydride inclusions"}>>> = 1e-3
hardening_exponent_hydride<<<{"description": "hardening exponent in plasticity model for hydride inclusions"}>>> = 0
damage_strain_hydride<<<{"description": "reference normal strain for damage in hydride"}>>> = 0.004
K_zircaloy<<<{"description": "K parameter for zirconium matrix. Equals initial yield stress if 'reference_strain_hydride' is greater than zero."}>>> = 4e8
reference_strain_zircaloy<<<{"description": "reference strain in plasticity model for zirconium matrix"}>>> = 1e-3
hardening_exponent_zircaloy<<<{"description": "hardening exponent in plasticity model for zirconium matrix"}>>> = 0.05
damage_strain_zircaloy<<<{"description": "reference normal strain for damage in zirconium"}>>> = 0.035
volume_fraction_radial<<<{"description": "volume fraction of hydride platelets in the radial direction"}>>> = 0.005
volume_fraction_circumferential<<<{"description": "volume fraction of hydride platelets in the circumferential direction"}>>> = 0.067
scale_circumferential<<<{"description": "Whether to scale the distribution of circumferential hydrides, with fewer toward the inner radius and more toward the outer radius."}>>> = true
clad_inner_radius<<<{"description": "Inner cladding radius (m)"}>>> = 0.004125
clad_outer_radius<<<{"description": "Outer cladding radius (m)"}>>> = 0.004535
[]
[](test/tests/zircaloy_damage/burst_one_elem.i)Input Parameters
- base_nameOptional parameter that allows the user to define multiple mechanics material systems on the same block, i.e. for multiple phases
C++ Type:std::string
Controllable:No
Description:Optional parameter that allows the user to define multiple mechanics material systems on the same block, i.e. for multiple phases
- 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
- clad_inner_radius0Inner cladding radius (m)
Default:0
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Inner cladding radius (m)
- clad_outer_radius0Outer cladding radius (m)
Default:0
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Outer cladding radius (m)
- 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
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
- debug0Debugging output flag: 0 = no output (default), 1 = simple debugging output to console
Default:0
C++ Type:int
Controllable:No
Description:Debugging output flag: 0 = no output (default), 1 = simple debugging output to console
- 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.
- fuel_pin_geometryName of the UserObject that reads the pin geometry from the mesh.
C++ Type:UserObjectName
Controllable:No
Description:Name of the UserObject that reads the pin geometry from the mesh.
- normal_circumferential1 0 0unit normal for circumferential hydrides
Default:1 0 0
C++ Type:libMesh::VectorValue<double>
Unit:(no unit assumed)
Controllable:No
Description:unit normal for circumferential hydrides
- normal_radial0 0 1unit normal for radial hydrides
Default:0 0 1
C++ Type:libMesh::VectorValue<double>
Unit:(no unit assumed)
Controllable:No
Description:unit normal for radial hydrides
- reference_strain_hydride0.001reference strain in plasticity model for hydride inclusions
Default:0.001
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:reference strain in plasticity model for hydride inclusions
- reference_strain_zircaloy0.001reference strain in plasticity model for zirconium matrix
Default:0.001
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:reference strain in plasticity model for zirconium matrix
- scale_circumferentialFalseWhether to scale the distribution of circumferential hydrides, with fewer toward the inner radius and more toward the outer radius.
Default:False
C++ Type:bool
Controllable:No
Description:Whether to scale the distribution of circumferential hydrides, with fewer toward the inner radius and more toward the outer radius.
- volume_fraction_circumferentialvolume fraction of hydride platelets in the circumferential direction
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:volume fraction of hydride platelets in the circumferential direction
- volume_fraction_circumferential_propertymaterial property with volume fraction of hydride platelets in the circumferential direction
C++ Type:MaterialPropertyName
Unit:(no unit assumed)
Controllable:No
Description:material property with volume fraction of hydride platelets in the circumferential direction
- volume_fraction_cross0.05reference volume fraction for cross-damage in zirconium
Default:0.05
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:reference volume fraction for cross-damage in zirconium
- volume_fraction_radialvolume fraction of hydride platelets in the radial direction
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:volume fraction of hydride platelets in the radial direction
- volume_fraction_radial_propertymaterial property with volume fraction of hydride platelets in the radial direction
C++ Type:MaterialPropertyName
Unit:(no unit assumed)
Controllable:No
Description:material property with volume fraction of hydride platelets in the radial direction
- volume_fraction_self0.05reference volume fraction for self-damage in hydride
Default:0.05
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:reference volume fraction for self-damage in hydride
- zircaloy_modelOptional material model to use to compute the response of the Zircaloy matrix.
C++ Type:MaterialName
Controllable:No
Description:Optional material model to use to compute the response of the Zircaloy matrix.
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
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
- (test/tests/zircaloy_damage/plastic_independent.i)
- (test/tests/zircaloy_damage/radial_crack.i)
- (test/tests/zircaloy_damage/burst_one_elem.i)
- (test/tests/zircaloy_damage/elastic_rotation.i)
- (test/tests/zircaloy_damage/homogeneous_elastic.i)
- (test/tests/solid_mechanics/zry_creep/creep_sra_thermal_only_damage.i)
- (test/tests/zircaloy_damage/radial_crack_plus_y.i)
- (test/tests/zircaloy_damage/plastic.i)
- (test/tests/zircaloy_damage/elastic_patch.i)
- (test/tests/zircaloy_damage/homogeneous_elastic_2.i)
References
- Joe Rashid, Mark Rashid, Albert Machiels, and Robert Dunham.
A new material constitutive model for predicting cladding failure.
In Proceedings of Top Fuel 2009. Paris, France, September 6-10 2009.[BibTeX]