- temperatureCoupled Temperature
C++ Type:std::vector<VariableName>
Unit:(no unit assumed)
Controllable:No
Description:Coupled Temperature
MonolithicSiCThermal
Computes thermal conductivity and specific heat of monolithic silicon carbide.
Description
The MonolithicSiCThermal model is appropriate for silicon carbide produced through chemical vapor deposition.
Thermal Conductivity
Three models exist for thermal conductivity of monolithic SiC: Snead, Stone, and Miller.
Snead Model
Snead et al. (2007) developed a model that applies to both irradiated and unirradiated monolithic SiC. The unirradiated thermal conductivity (W/m-K) is given by Koyanagi et al. (2021): where is the thermal conductivity (W/m-K) and is the temperature (K). The increase in thermal resistance with irradiation is considered by the following equation:
where is the volumetric swelling strain (unitless). The thermal conductivity of irradiated material is expressed as:
Stone Model
Stone et al. (2015) used a model that also applies to both irradiated and unirradiated monolithic SiC. The unirradiated thermal conductivity (W/m-K) is given by: where is the temperature in K. Note that the coefficient is different than the value reported in Stone et al. (2015) as it appears to be a typo as per Freeman et al. (2018). Irradiation effects are taken into account by assuming a resistance network where the total thermal conductivity is given by: where is the resistance due to irradiation effects given by: where is the total volumetric swelling strain calculated by CompositeSiCVolumetricSwellingEigenstrain.
Miller Model
The thermal conductivity used in the PARFUME code is given by Miller et al. (2018).
where (W/m-K) is the thermal conductivity and is in Kelvin.
Specific Heat Capacity
The correlation for specific heat (J/kg-K) is given by Snead et al. (2007): where is the temperature in Kelvin.
Range of Applicability and Uncertainty
Thermal Conductivity
Snead model is applicable in the point defect regime for which the temperature range is 423 - 1273 K (Koyanagi et al., 2021). The uncertainty associated with this model is not available.
The Stone model was derived from a 4th order polymonial fit from temperatures 273 - 1573 K. The uncertainty in the calculation was not published.
The Miller model is valid for all operating temperatures. The uncertainty in the model has not been published.
Specific Heat
The model used for the specific heat applies to temperatures 200 - 2400 K with uncertainty of 7% for 200 T 1000 K, and 4% for 1000 T 2400 K.
Example Input Syntax
An example of using the Snead model is given by:
[Materials<<<{"href": "../../syntax/Materials/index.html"}>>>]
[MonolithicSiCThermal]
type = MonolithicSiCThermal<<<{"description": "Computes thermal conductivity and specific heat of monolithic silicon carbide.", "href": "MonolithicSiCThermal.html"}>>>
temperature<<<{"description": "Coupled Temperature"}>>> = temperature
thermal_conductivity_model<<<{"description": "Options for the correlation used to calculate thermal conductivity"}>>> = SNEAD
[]
[](test/tests/monolithicSiCThermal/thermal_snead.i)An example of using the Stone model is given by:
[Materials<<<{"href": "../../syntax/Materials/index.html"}>>>]
[MonolithicSiCThermal]
type = MonolithicSiCThermal<<<{"description": "Computes thermal conductivity and specific heat of monolithic silicon carbide.", "href": "MonolithicSiCThermal.html"}>>>
temperature<<<{"description": "Coupled Temperature"}>>> = temperature
thermal_conductivity_model<<<{"description": "Options for the correlation used to calculate thermal conductivity"}>>> = STONE # This is the default
[]
[](test/tests/monolithicSiCThermal/thermal_stone_irradiated.i)An example of using the Miller model is given by:
[Materials<<<{"href": "../../syntax/Materials/index.html"}>>>]
[thermal]
type = MonolithicSiCThermal<<<{"description": "Computes thermal conductivity and specific heat of monolithic silicon carbide.", "href": "MonolithicSiCThermal.html"}>>>
temperature<<<{"description": "Coupled Temperature"}>>> = temperature
thermal_conductivity_model<<<{"description": "Options for the correlation used to calculate thermal conductivity"}>>> = MILLER
[]
[](test/tests/monolithicSiCThermal/thermal_miller.i)Input 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.
- thermal_conductivity_modelSTONEOptions for the correlation used to calculate thermal conductivity
Default:STONE
C++ Type:MooseEnum
Options:SNEAD, STONE, MILLER
Controllable:No
Description:Options for the correlation used to calculate thermal conductivity
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
- specific_heat_scale_factor1Scale factor to be applied to the specific heat. 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 specific heat. Used for calibration and sensitivity studies
- thermal_conductivity_scale_factor1Scale factor to be applied to the thermal conducitivity. 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 conducitivity. Used for calibration and sensitivity studies
Advanced: Scaling Factors Parameters
Input Files
- (examples/TRISO/failure_probability_direct_integration/asphericity.i)
- (test/tests/solid_mechanics/monolithicSiC_mechanics/elasticity_snead.i)
- (examples/TRISO/failure_probability_direct_integration/ipyc_cracking.i)
- (test/tests/triso_failure/triso_failure_diffusivity.i)
- (test/tests/triso_failure/triso_1d_kernel_migration.i)
- (examples/TRISO/pebble/triso_1d.i)
- (test/tests/monolithicSiCThermal/thermal_miller.i)
- (examples/TRISO/failure_probability_monte_carlo/triso_1d_constant.i)
- (test/tests/triso_pebble/triso_1d.i)
- (examples/TRISO/pebble/triso_1d_failed.i)
- (examples/accident_tolerant_fuel/u3si2_sic/u3si2_outer_monolith_1.5D.i)
- (examples/TRISO/correlation_function/h_asphericity/triso_1d.i)
- (examples/TRISO/correlation_function/h_ipyc_cracking/triso_cracking.i)
- (examples/TRISO/correlation_function/h_ipyc_sic_debonding/triso_debonding.i)
- (test/tests/solid_mechanics/monolithicSiC_mechanics/elasticity_miller.i)
- (assessment/TRISO/validation/AGR-2/AGR-2_base.i)
- (test/tests/monolithicSiCThermal/thermal_stone_irradiated.i)
- (test/tests/solid_mechanics/monolithicSiC_mechanics/elasticity_snead_ad.i)
- (examples/TRISO/failure_probability_monte_carlo/triso_1d_function.i)
- (test/tests/triso_failure/higher_order_correlation.i)
- (assessment/TRISO/validation/AGR-34/Compacts/AGR-34_base.i)
- (examples/TRISO/parfume/parfume.i)
- (test/tests/monolithicSiCThermal/thermal_stone_unirradiated.i)
- (assessment/TRISO/validation/AGR-1/AGR-1_base.i)
- (test/tests/triso/kernel_migration/kernel_migration_distance.i)
- (test/tests/triso/mesh/ipyc_crack.i)
- (test/tests/monolithicSiCThermal/thermal_snead.i)
- (assessment/TRISO/validation/AGR-34/SharedFiles/capsule_driver.i)
- (test/tests/triso_failure/triso_1d_ipyc_weibull_probability.i)
- (test/tests/SiCPdPenetration/palladium_penetration.i)
- (examples/TRISO/correlation_function/h_asphericity/triso_asphericity_mortar.i)
- (test/tests/solid_mechanics/monolithicSiC_mechanics/elasticity_miller_ad.i)
- (test/tests/monolithicSiCThermal/thermal_miller_ad.i)
- (test/tests/triso_failure/ad_triso_1d_ipyc_weibull_probability.i)
- (examples/TRISO/correlation_function/h_asphericity/triso_asphericity.i)
- (examples/TRISO/parfume/parfume_un.i)
- (examples/TRISO/failure_probability_direct_integration/triso_1d.i)
References
- R. A. Freeman, T. Martin, E. Roberts, and T. W. Knight.
Analysis of thermal creep for uranium silicide fuel using Bison.
In Proceedings of the 2018 International Congress on Advances in Nuclear Power Plants (ICAPP 18). Charlotte, NC, 2018.[BibTeX]
@inproceedings{freeman2018, author = "Freeman, R. A. and Martin, T. and Roberts, E. and Knight, T. W.", title = "Analysis of thermal creep for uranium silicide fuel using {B}ison", year = "2018", booktitle = "Proceedings of the 2018 International Congress on Advances in Nuclear Power Plants (ICAPP 18)", address = "Charlotte, NC" } - Takaaki Koyanagi, Hsin Wang, Christian M Petrie, Christian P Deck, Weon-Ju Kim, Daejong Kim, Cédric Sauder, James Braun, Yutai Katoh, and others.
Thermal diffusivity and thermal conductivity of sic composite tubes: the effects of microstructure and irradiation.
Journal of Nuclear Materials, 557:153217, 2021.
doi:10.1016/j.jnucmat.2021.153217.[BibTeX]
@article{KOYANAGI2021153217, author = "Koyanagi, Takaaki and Wang, Hsin and Petrie, Christian M and Deck, Christian P and Kim, Weon-Ju and Kim, Daejong and Sauder, C{\'e}dric and Braun, James and Katoh, Yutai and others", title = "Thermal diffusivity and thermal conductivity of SiC composite tubes: the effects of microstructure and irradiation", journal = "Journal of Nuclear Materials", volume = "557", pages = "153217", year = "2021", doi = "10.1016/j.jnucmat.2021.153217", publisher = "Elsevier" } - G.K. Miller, D.A. Petti, J.T. Maki, D.L. Knudson, and W.F. Skerjanc.
PARFUME Theory and Model Basis Report.
Report INL/EXT-08-14497 (Rev.1), Idaho National Laboratory, September 2018.[BibTeX]
@techreport{Miller2018, author = "Miller, G.K. and Petti, D.A. and Maki, J.T. and Knudson, D.L. and Skerjanc, W.F.", title = "{PARFUME Theory and Model Basis Report}", institution = "Idaho National Laboratory", year = "2018", month = "September", number = "INL/EXT-08-14497 (Rev.1)", type = "Report" } - L. L. Snead, T. Nozawa, Y. Katoh, T.-S. Byun, S. Kondo, and D. A. Petti.
Handbook of sic properties for fuel performance modeling.
Journal of Nuclear Materials, 371:329–377, 2007.[BibTeX]
@article{snead2007, author = "Snead, L. L. and Nozawa, T. and Katoh, Y. and Byun, T.-S. and Kondo, S. and Petti, D. A.", title = "Handbook of SiC properties for fuel performance modeling", journal = "Journal of Nuclear Materials", volume = "371", year = "2007", pages = "329-377" } - J. G. Stone, R. Schleicher, C. P. Deck, G. M. Jacobsen, H. E. Khalifa, and C. A. Back.
Stress analysis and probabilistic assessment of multi-layer sic-based accident tolerant nuclear fuel cladding.
Journal of Nuclear Materials, 466:682–697, 2015.[BibTeX]
@article{stone2015, author = "Stone, J. G. and Schleicher, R. and Deck, C. P. and Jacobsen, G. M. and H. E. Khalifa and Back, C. A.", title = "Stress analysis and probabilistic assessment of multi-layer SiC-based accident tolerant nuclear fuel cladding", journal = "Journal of Nuclear Materials", volume = "466", pages = "682-697", year = "2015", publisher = "Elsevier" }
(test/tests/monolithicSiCThermal/thermal_snead.i)
# The mesh is a 1x1x1 cube (single element).
# The temperature is ramped on all faces of the cube from 300 K to 1800 K
# over 15 s.
#
# Thermal conductivity and specific heat capacity are computed using the
# correlations from:
#
# L. L. Snead, T. Nozawa, Y. Katoh, T-S. Byun, S. Kondo, D. A. Petti,
# "Handbook of SiC propeties for fuel performance modeling," Journal of Nuclear
# Materials, 371, 2007, p. 329-377.
#
# The thermal conductivity and specific heat computed by BISON for the
# temperatures and swelling are shown below and also compared with analytical solutions.
#
#+----------------+----------------+----------------+----------------+--------------------+----------------+--------------------+
#| time | avg_swelling | avg_temperature| sp_heat_BISON | sp_heat_analytical | th_cond_BISON | th_cond_analytical |
#+----------------+----------------+----------------+----------------+--------------------+----------------+--------------------+
#: : : : : : : :
#| 1.000000e+00 | 1.666667e-03 | 4.000000e+02 | 8.641861e+02 | 8.641861e+02 | 6.465517e+01 | 6.465517e+01 |
#| 2.000000e+00 | 3.333333e-03 | 5.000000e+02 | 9.666513e+02 | 9.666513e+02 | 3.740648e+01 | 3.740648e+01 |
#| 3.000000e+00 | 5.000000e-03 | 6.000000e+02 | 1.034698e+03 | 1.034698e+03 | 2.631579e+01 | 2.631579e+01 |
#| 4.000000e+00 | 6.666667e-03 | 7.000000e+02 | 1.085657e+03 | 1.085657e+03 | 2.029770e+01 | 2.029770e+01 |
#| 5.000000e+00 | 8.333333e-03 | 8.000000e+02 | 1.126769e+03 | 1.126769e+03 | 1.651982e+01 | 1.651982e+01 |
#| 6.000000e+00 | 1.000000e-02 | 9.000000e+02 | 1.161491e+03 | 1.161491e+03 | 1.392758e+01 | 1.392758e+01 |
#| 7.000000e+00 | 1.166667e-02 | 1.000000e+03 | 1.191645e+03 | 1.191645e+03 | 1.203852e+01 | 1.203852e+01 |
#| 8.000000e+00 | 1.333333e-02 | 1.100000e+03 | 1.218265e+03 | 1.218265e+03 | 1.060071e+01 | 1.060071e+01 |
#| 9.000000e+00 | 1.500000e-02 | 1.200000e+03 | 1.241972e+03 | 1.241972e+03 | 9.469697e+00 | 9.469697e+00 |
#| 1.000000e+01 | 1.666667e-02 | 1.300000e+03 | 1.263159e+03 | 1.263159e+03 | 8.556760e+00 | 8.556760e+00 |
#| 1.100000e+01 | 1.833333e-02 | 1.400000e+03 | 1.282083e+03 | 1.282083e+03 | 7.804370e+00 | 7.804370e+00 |
#| 1.200000e+01 | 2.000000e-02 | 1.500000e+03 | 1.298919e+03 | 1.298919e+03 | 7.173601e+00 | 7.173601e+00 |
#| 1.300000e+01 | 2.166667e-02 | 1.600000e+03 | 1.313788e+03 | 1.313788e+03 | 6.637168e+00 | 6.637168e+00 |
#| 1.400000e+01 | 2.333333e-02 | 1.700000e+03 | 1.326778e+03 | 1.326778e+03 | 6.175381e+00 | 6.175381e+00 |
#| 1.500000e+01 | 2.500000e-02 | 1.800000e+03 | 1.337951e+03 | 1.337951e+03 | 5.773672e+00 | 5.773672e+00 |
#+----------------+----------------+----------------+----------------+--------------------+----------------+--------------------+ 1337.951
[Mesh]
[mesh]
type = GeneratedMeshGenerator
dim = 3
[]
[]
[Variables]
[temperature]
order = FIRST
family = LAGRANGE
initial_condition = 300.0
[]
[]
[AuxVariables]
[specific_heat]
order = CONSTANT
family = MONOMIAL
[]
[thermal_conductivity]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temperature
[]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temperature
[]
[]
[AuxKernels]
[thermal_conductivity]
type = MaterialRealAux
variable = thermal_conductivity
property = thermal_conductivity
block = 0
execute_on = 'initial linear'
[]
[specific_heat]
type = MaterialRealAux
variable = specific_heat
property = specific_heat
block = 0
execute_on = 'initial linear'
[]
[]
[Functions]
[temp_ramp]
type = PiecewiseLinear
x = '0.0 15.0'
y = '300 1800'
[]
[swelling_func]
type = PiecewiseLinear
x = '0.0 15.0'
y = '0.0 2.5e-2'
[]
[]
[BCs]
[temperature_all]
type = FunctionDirichletBC
boundary = 'left right front back bottom top' # All cube faces
variable = temperature
function = temp_ramp
[]
[]
[Materials]
[MonolithicSiCThermal]
type = MonolithicSiCThermal
temperature = temperature
thermal_conductivity_model = SNEAD
[]
[density]
type = ParsedMaterial
block = 0
property_name = density
expression = 3210.0
[]
[swelling]
type = GenericFunctionMaterial
prop_names = swelling
prop_values = swelling_func
outputs = all
[]
[]
[Executioner]
type = Transient
solve_type = PJFNK
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart'
petsc_options_value = '101'
line_search = 'none'
l_max_its = 100
nl_max_its = 100
nl_rel_tol = 1e-6
nl_abs_tol = 1e-10
l_tol = 1e-5
start_time = 0.0
num_steps = 15
dt = 1.0
[]
[Postprocessors]
[avg_temperature]
type = SideAverageValue
boundary = 'left right top bottom front back'
execute_on = 'initial timestep_end'
variable = temperature
[]
[avg_swelling]
type = SideAverageValue
boundary = 'left right top bottom front back'
execute_on = 'initial timestep_end'
variable = swelling
[]
[avg_th_cond]
type = ElementAverageValue
block = 0
variable = thermal_conductivity
execute_on = 'initial timestep_end'
[]
[avg_sp_heat]
type = ElementAverageValue
block = 0
variable = specific_heat
execute_on = 'initial timestep_end'
[]
[th_cond_analytical]
type = ParsedPostprocessor
pp_names = 'avg_temperature avg_swelling'
expression = '1/(-0.0003 + 1.05e-5 * avg_temperature + 0.00135 + 6.13 * avg_swelling)'
[]
[sp_heat_analytical]
type = ParsedPostprocessor
pp_names = 'avg_temperature'
expression = '925.65 + 0.3772 * avg_temperature - 7.9259e-5 * avg_temperature^2 -
3.1946e7 / avg_temperature^2'
[]
[th_cond_diff]
type = ParsedPostprocessor
pp_names = 'th_cond_analytical avg_th_cond'
expression = '(avg_th_cond - th_cond_analytical) / avg_th_cond'
[]
[sp_heat_diff]
type = ParsedPostprocessor
pp_names = 'sp_heat_analytical avg_sp_heat'
expression = '(avg_sp_heat - sp_heat_analytical) / avg_sp_heat'
[]
[]
[Outputs]
exodus = true
[]
(test/tests/monolithicSiCThermal/thermal_stone_irradiated.i)
# The mesh is a 1x1 square (single element).
# The temperature is held constant at 1073.15 K with a varying fast fluence
# from 0 to 1e25 n/m^2 over 1 second. The swelling is calculated by the Katoh
# volumetric swelling model. At 1073.15 K the calculated unirradiated thermal
# conductivity using the model of:
#
# J. G. Stone, R. Schleicher, C. P. Deck, G. M. Jacobsen, H. E. Khalifa, C. A.
# Back, "Stress analysis and probablistic assessment of multi-layer SiC-based
# accident tolerant nuclear fuel cladding," Journal of Nuclear Materials, 466,
# 2015, p. 682-697.
#
# is 44.7072 W/m-K. Then, the degradation due to swelling for monolithic silicon
# carbide is given by:
#
# 1 / k_irradiated = R_0 + R_irr
#
# where R_0 = 1 / k_unirradiated and R_irr = 6.08 * S where S is the swelling
# strain. The BISON results are compared to the analytical using the BISON
# values for swelling.
#
# Fluence Swelling Monolithic SiC k Monolithic SiC k
# (dpa) Strain (-) BISON(W/m-K) analytical(W/m-K)
# 1.0 5.91955e-3 17.1354 17.1354
# 2.0 7.20081e-3 15.1175 15.1175
# 3.0 7.70534e-3 14.4475 14.4475
# 4.0 7.90061e-3 14.2039 14.2039
# 5.0 7.97852e-3 14.1089 14.1089
[GlobalParams]
displacements = 'disp_x disp_y'
order = FIRST
family = LAGRANGE
[]
[Mesh]
[mesh]
type = GeneratedMeshGenerator
dim = 2
[]
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[temperature]
initial_condition = 1073.15
[]
[]
[AuxVariables]
[fast_neutron_fluence]
[]
[swell]
order = CONSTANT
family = MONOMIAL
[]
[thermal_conductivity]
order = CONSTANT
family = MONOMIAL
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[square]
block = 0
add_variables = false
strain = FINITE
eigenstrain_names = 'swelling_strain'
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temperature
[]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temperature
[]
[]
[AuxKernels]
[thermal_conductivity]
type = MaterialRealAux
variable = thermal_conductivity
property = thermal_conductivity
block = 0
execute_on = 'initial linear'
[]
[fast_neutron_fluence]
type = FunctionAux
variable = fast_neutron_fluence
function = fast_neutron_fluence
block = 0
execute_on = 'timestep_begin'
[]
[total_swelling]
type = MaterialRealAux
variable = swell
property = swelling
block = 0
[]
[]
[Functions]
[fast_neutron_fluence]
type = PiecewiseLinear
x = '0 1.0'
y = '0 5e25'
[]
[]
[BCs]
[temperature_all]
type = DirichletBC
boundary = 'left right bottom top'
variable = temperature
value = 1073.15
[]
[leftX]
type = DirichletBC
variable = disp_x
boundary = 'left'
value = 0.0
[]
[bottomY]
type = DirichletBC
variable = disp_y
boundary = 'bottom'
value = 0.0
[]
[]
[Materials]
[MonolithicSiCThermal]
type = MonolithicSiCThermal
temperature = temperature
thermal_conductivity_model = STONE # This is the default
[]
[density]
type = ParsedMaterial
block = 0
property_name = density
expression = 3210.0
[]
[swelling]
type = CompositeSiCVolumetricSwellingEigenstrain
block = 0
temperature = temperature
swelling_model = KATOH
number_of_substeps = 100
fast_neutron_fluence = fast_neutron_fluence
eigenstrain_name = swelling_strain
[]
[elasticity_tensor] # isotropic elasticity tensor
type = ComputeIsotropicElasticityTensor
block = 0
youngs_modulus = 3e11
poissons_ratio = 0.17
[]
[elastic_stress]
type = ComputeFiniteStrainElasticStress
block = 0
[]
[]
[Executioner]
type = Transient
solve_type = PJFNK
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart'
petsc_options_value = '101'
line_search = 'none'
nl_rel_tol = 1e-5
nl_abs_tol = 1e-10
l_tol = 1e-5
start_time = 0.0
dt = 0.01
end_time = 1.0
[]
[Postprocessors]
[avg_temperature]
type = SideAverageValue
boundary = 'left right top bottom'
execute_on = 'initial timestep_end'
variable = temperature
[]
[avg_th_cond]
type = ElementAverageValue
block = 0
variable = thermal_conductivity
execute_on = 'initial timestep_end'
[]
[swelling_out]
type = ElementAverageValue
variable = swell
execute_on = 'initial timestep_end'
block = 0
[]
[]
[Outputs]
exodus = true
[]
(test/tests/monolithicSiCThermal/thermal_miller.i)
# The mesh is a 1x1x1 cube (single element).
# The temperature is ramped on all faces of the cube from 300 K to 1800 K
# over 15 s.
#
# Thermal conductivity and specific heat capacity are computed using the
# correlations from:
#
# G. K. Miller, D. A. Petti, J. T. Maki, D. L. Knudson, and
# W. F. Skerjanc, "PARFUME Theory and Model Basis Report",
# Report INL/EXT-08-14497 Rev. 1, Idaho National Laboratory, September 2018
#
# The correlation for specific heat is identical to the that used in the Snead
# and stone models and are tested elsewhere. Here the thermal conductivity
# computed by BISON for the temperatures shown below are compared with analytical solutions.
# The results are as follows:
#
# SiC k SiC k
# Temp(K) BISON(W/m-K) analytical(W/m-K)
# 300 61.6167 61.6167
# 600 31.8083 31.8083
# 900 21.8722 21.8722
# 1200 16.9042 16.9042
# 1500 13.9233 13.9233
# 1800 11.9361 11.9361
#
[Mesh]
[generated_mesh]
type = GeneratedMeshGenerator
dim = 3
[]
[]
[Variables]
[temperature]
order = FIRST
family = LAGRANGE
initial_condition = 300.0
[]
[]
[AuxVariables]
[thermal_conductivity]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temperature
[]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temperature
[]
[]
[AuxKernels]
[thermal_conductivity]
type = MaterialRealAux
variable = thermal_conductivity
property = thermal_conductivity
block = 0
execute_on = 'initial linear'
[]
[]
[Functions]
[temp_ramp]
type = PiecewiseLinear
x = '0.0 15.0'
y = '300 1800'
[]
[]
[BCs]
[temperature_all]
type = FunctionDirichletBC
boundary = 'left right front back bottom top'
variable = temperature
function = temp_ramp
[]
[]
[Materials]
[thermal]
type = MonolithicSiCThermal
temperature = temperature
thermal_conductivity_model = MILLER
[]
[density]
type = ParsedMaterial
block = 0
property_name = density
expression = 3210.0
[]
[]
[Executioner]
type = Transient
solve_type = PJFNK
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package -ksp_gmres_restart'
petsc_options_value = 'lu superlu_dist 51'
line_search = 'none'
nl_rel_tol = 1e-10
nl_abs_tol = 1e-10
l_tol = 1e-5
start_time = 0.0
num_steps = 15
dt = 1.0
[]
[Postprocessors]
[avg_temperature]
type = SideAverageValue
boundary = 'left right top bottom front back'
execute_on = 'initial timestep_end'
variable = temperature
[]
[avg_th_cond]
type = ElementAverageValue
block = 0
variable = thermal_conductivity
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
csv = true
[]
(examples/TRISO/failure_probability_direct_integration/asphericity.i)
kernel_radius = 213.35e-6
buffer_thickness = 98.9e-6
IPyC_thickness = 40.4e-6
SiC_thickness = 35.2e-6
OPyC_thickness = 43.4e-6
aspect_ratio = 1.04
coordinates1 = '${fparse kernel_radius}'
coordinates2 = '${fparse coordinates1+buffer_thickness}'
coordinates3 = '${fparse coordinates2+IPyC_thickness}'
coordinates4 = '${fparse coordinates3+SiC_thickness}'
coordinates5 = '${fparse coordinates4+OPyC_thickness}'
initial_fuel_density = 10966
[GlobalParams]
order = FIRST
family = LAGRANGE
displacements = 'disp_x disp_y'
initial_enrichment = 0.14029 # [wt-]
flux_conversion_factor = 1.0 # convert E>0.10 to E>0.18 MeV
stress_free_temperature = 481 # used for thermal expansion
energy_per_fission = 3.204e-11 # [J/fission]
O_U = 1.428 # Initial Oxygen to Uranium atom ratio
C_U = 0.392 # Initial Carbon to Uranium atom ratio
[]
[Mesh]
coord_type = RZ
[gen]
type = TRISO2DMeshGenerator
elem_type = quad4
coordinates = '0 ${coordinates1} ${coordinates2} ${coordinates2} ${coordinates3} ${coordinates4} '
'${coordinates5}'
mesh_density = '20 8 0 4 4 4'
block_names = 'fuel buffer IPyC SiC OPyC'
num_sectors = 60
aspect_ratio = ${aspect_ratio}
[]
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[UserObjects]
[particle_geometry]
type = TRISOGeometry
outer_OPyC = OPyC_outer_boundary
outer_SiC = SiC_outer_boundary
outer_IPyC = IPyC_outer_boundary
inner_IPyC = IPyC_inner_boundary
outer_buffer = buffer_outer_boundary
outer_kernel = fuel_outer_boundary
include_particle = true
include_pebble = false
mesh_generator = 'gen'
[]
[]
[Variables]
[temperature]
initial_condition = 481
[]
[]
[AuxVariables]
[fission_rate]
order = CONSTANT
family = MONOMIAL
[]
[burnup]
order = CONSTANT
family = MONOMIAL
[]
[fast_neutron_flux]
order = CONSTANT
family = MONOMIAL
[]
[fast_neutron_fluence]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[temp_bc]
type = PiecewiseLinear
data_file = outer_temp.csv
x_index_in_file = 0
y_index_in_file = 1
format = columns
[]
[fission_rate]
type = ConstantFunction
value = 5.75e19
[]
[]
[Physics/SolidMechanics/QuasiStatic]
generate_output = 'stress_xx stress_yy stress_zz strain_xx strain_yy strain_zz '
'max_principal_stress'
add_variables = true
strain = FINITE
incremental = true
[fuel]
block = fuel
eigenstrain_names = 'UCO_swelling_eigenstrain UCO_TE_strain'
extra_vector_tags = 'ref'
[]
[buffer]
block = buffer
eigenstrain_names = 'Buffer_IIDC_strain Buffer_TE_strain'
extra_vector_tags = 'ref'
[]
[IPyC]
block = IPyC
eigenstrain_names = 'IPyC_IIDC_strain IPyC_TE_strain'
extra_vector_tags = 'ref'
[]
[SiC]
block = SiC
eigenstrain_names = 'SiC_thermal_eigenstrain'
extra_vector_tags = 'ref'
[]
[OPyC]
block = OPyC
eigenstrain_names = 'OPyC_IIDC_strain OPyC_TE_strain'
extra_vector_tags = 'ref'
[]
[]
[Kernels]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temperature
extra_vector_tags = 'ref'
[]
[heat]
type = HeatConduction
variable = temperature
extra_vector_tags = 'ref'
[]
[heat_source]
type = NeutronHeatSource
variable = temperature
block = fuel
fission_rate = fission_rate
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[fissionrate]
type = MaterialRealAux
variable = fission_rate
property = fission_rate
block = fuel
execute_on = timestep_begin
[]
[burnup]
type = MaterialRealAux
variable = burnup
property = burnup
block = fuel
execute_on = timestep_begin
[]
[fast_neutron_flux]
type = MaterialRealAux
variable = fast_neutron_flux
property = fast_neutron_flux
execute_on = timestep_begin
[]
[fast_neutron_fluence]
type = MaterialRealAux
variable = fast_neutron_fluence
property = fast_neutron_fluence
execute_on = timestep_begin
[]
[]
[ThermalContact]
[thermal_contact]
type = GasGapHeatTransfer
variable = temperature
primary = IPyC_inner_boundary
secondary = buffer_outer_boundary
initial_moles = initial_moles
gas_released = 'fis_gas_released'
released_gas_types = 'Kr Xe'
released_fractions = '0.185 0.815'
tangential_tolerance = 1e-6
quadrature = false
min_gap = 1e-7
max_gap = 50e-6
gap_geometry_type = sphere
sphere_origin = '0 0 0'
[]
[]
[BCs]
[no_disp_x]
type = DirichletBC
variable = disp_x
boundary = xzero
value = 0.0
[]
[no_disp_y]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[]
[freesurf_temp]
type = FunctionDirichletBC
variable = temperature
function = temp_bc
boundary = exterior
[]
[Pressure]
[exterior]
boundary = exterior
factor = 0.1e6
[]
[]
[PlenumPressure]
[plenumPressure]
boundary = buffer_IPyC_boundary
startup_time = 1e4
initial_pressure = 0
R = 8.3145
output_initial_moles = initial_moles
temperature = ave_gas_temp
volume = 'gap_volume buffer_void_volume kernel_void_volume'
material_input = 'fis_gas_released'
output = gas_pressure
[]
[]
[]
[Materials]
[fission_rate]
type = GenericFunctionMaterial
prop_names = fission_rate
prop_values = fission_rate
block = fuel
[]
[fast_neutron_flux]
type = FastNeutronFlux
calculate_fluence = true
factor = 6.2425e+17
[]
[UCO_burnup]
type = TRISOBurnup
initial_density = ${initial_fuel_density}
block = fuel
[]
[UCO_thermal]
type = UCOThermal
block = fuel
temperature = temperature
[]
[UCO_elasticity_tensor]
type = UCOElasticityTensor
block = fuel
temperature = temperature
[]
[UCO_stress]
type = ComputeFiniteStrainElasticStress
block = fuel
[]
[UCO_VolumetricSwellingEigenstrain]
type = UCOVolumetricSwellingEigenstrain
block = fuel
eigenstrain_name = UCO_swelling_eigenstrain
[]
[fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = fuel
thermal_expansion_coeff = 10.0e-6
temperature = temperature
eigenstrain_name = UCO_TE_strain
[]
[UCO_density]
type = StrainAdjustedDensity
block = fuel
strain_free_density = ${initial_fuel_density}
[]
[fission_gas_release]
type = UCOFGR
block = fuel
average_grain_radius = 10e-6
temperature = temperature
triso_geometry = particle_geometry
cutoff_neutron_flux = 0.0
[]
[BAF_IPyC]
type = BaconAnisotropyFactor
initial_BAF = 1.0465
block = IPyC
[]
[BAF_OPyC]
type = BaconAnisotropyFactor
initial_BAF = 1.0429
block = OPyC
[]
[buffer_elasticity_tensor]
type = BufferElasticityTensor
block = buffer
temperature = temperature
[]
[buffer_stress]
type = BufferCEGACreep
block = buffer
temperature = temperature
[]
[buffer_thermal]
type = BufferThermal
block = buffer
initial_density = 1050.0
[]
[buffer_density]
type = StrainAdjustedDensity
block = buffer
strain_free_density = 1050.0
[]
[buffer_TE]
type = BufferThermalExpansionEigenstrain
block = buffer
eigenstrain_name = Buffer_TE_strain
temperature = temperature
[]
[buffer_IIDC]
type = BufferCEGAIrradiationEigenstrain
block = buffer
eigenstrain_name = Buffer_IIDC_strain
temperature = temperature
[]
[IPyC_elasticity_tensor]
type = PyCElasticityTensor
block = IPyC
temperature = temperature
[]
[IPyC_stress]
type = PyCCEGACreep
block = IPyC
creep_rate_scale_factor = 1
temperature = temperature
[]
[IPyC_thermal]
type = HeatConductionMaterial
block = IPyC
thermal_conductivity = 4.0
specific_heat = 720.0
[]
[IPyC_density]
type = GenericConstantMaterial
block = IPyC
prop_names = 'density'
prop_values = 1890
[]
[normal_vectors_triso]
type = NormalVectorsTRISO
block = 'buffer IPyC OPyC'
triso_geometry = particle_geometry
[]
[IPyC_IIDC]
type = PyCCEGAIrradiationEigenstrain
block = IPyC
eigenstrain_name = IPyC_IIDC_strain
temperature = temperature
irradiation_eigenstrain_scale_factor = 1
[]
[IPyC_TE]
type = PyCThermalExpansionEigenstrain
block = IPyC
eigenstrain_name = IPyC_TE_strain
temperature = temperature
[]
[SiC_elasticity_tensor]
type = MonolithicSiCElasticityTensor
block = SiC
temperature = temperature
elastic_modulus_model = miller
[]
[SiC_stress]
type = ComputeFiniteStrainElasticStress
block = SiC
[]
[SiC_thermal]
type = MonolithicSiCThermal
block = SiC
temperature = temperature
thermal_conductivity_model = miller
[]
[SiC_density]
type = StrainAdjustedDensity
block = SiC
strain_free_density = 3200.0
[]
[SiC_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = SiC
thermal_expansion_coeff = 4.9e-6
temperature = temperature
eigenstrain_name = SiC_thermal_eigenstrain
[]
[OPyC_elasticity_tensor]
type = PyCElasticityTensor
block = OPyC
temperature = temperature
initial_BAF = 1.0
[]
[OPyC_stress]
type = PyCCEGACreep
block = OPyC
creep_rate_scale_factor = 1
temperature = temperature
[]
[OPyC_thermal_conductivity]
type = HeatConductionMaterial
block = OPyC
thermal_conductivity = 4.0
specific_heat = 720.0
[]
[OPyC_density]
type = GenericConstantMaterial
block = OPyC
prop_names = 'density'
prop_values = 1900
[]
[OPyC_IIDC]
type = PyCCEGAIrradiationEigenstrain
block = OPyC
eigenstrain_name = OPyC_IIDC_strain
temperature = temperature
irradiation_eigenstrain_scale_factor = 1
[]
[OPyC_TE]
type = PyCThermalExpansionEigenstrain
block = OPyC
eigenstrain_name = OPyC_TE_strain
temperature = temperature
[]
[characteristic_strength_SiC]
type = GenericConstantMaterial
prop_values = '9640000'
block = SiC
prop_names = 'characteristic_strength'
[]
[characteristic_strength_PyC]
type = PyCCharacteristicStrength
temperature = temperature
X = 1.02
block = 'IPyC OPyC'
[]
[]
[Dampers]
[temp]
type = MaxIncrement
variable = temperature
max_increment = 100
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
nl_rel_tol = 5e-8
nl_abs_tol = 1e-8
nl_max_its = 20
l_tol = 1e-4
l_max_its = 50
start_time = 0.0
end_time = 4.831315e7
# For testing, we only run 20 time steps
num_steps = 20
dtmin = 1e-4
dt = 6e5
[]
[Postprocessors]
[ave_gas_temp]
type = ElementAverageValue
block = buffer
variable = temperature
execute_on = 'initial timestep_end'
[]
[fis_gas_released]
type = ElementIntegralMaterialProperty
mat_prop = fis_gas_released
block = fuel
use_displaced_mesh = false
execute_on = 'initial timestep_end'
[]
[gap_volume]
type = InternalVolume
boundary = buffer_IPyC_boundary
execute_on = 'initial linear'
use_displaced_mesh = true
[]
[buffer_void_volume]
type = VoidVolume
block = buffer
theoretical_density = 2250
execute_on = 'initial timestep_end'
use_displaced_mesh = true
[]
[kernel_th_density]
type = UCOTheoreticalDensity
execute_on = initial
[]
[kernel_void_volume]
type = VoidVolume
block = fuel
theoretical_density = kernel_th_density
execute_on = 'initial timestep_end'
use_displaced_mesh = true
[]
[particle_power]
type = ElementIntegralPower
variable = temperature
use_material_fission_rate = true
fission_rate_material = fission_rate
block = fuel
execute_on = 'initial timestep_end'
[]
[max_fluence]
type = ElementExtremeValue
variable = fast_neutron_fluence
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[max_burnup]
type = ElementExtremeValue
variable = burnup
block = fuel
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[SiC_stress]
type = ElementExtremeMaterialProperty
block = SiC
value_type = max
mat_prop = max_principal_stress
[]
[strength_SiC]
type = WeibullEffectiveMeanStrength
block = SiC
weibull_modulus = 6
[]
[weibull_failure_probability_SiC]
type = WeibullFailureProbability
block = SiC
weibull_modulus = 6
characteristic_strength = characteristic_strength
[]
[weibull_failure_probability_IPyC]
type = WeibullFailureProbability
block = IPyC
weibull_modulus = 9.5
characteristic_strength = characteristic_strength
[]
[]
[Outputs]
print_linear_residuals = false
time_step_interval = 1
csv = false
perf_graph = true
exodus = false
[]
(test/tests/solid_mechanics/monolithicSiC_mechanics/elasticity_snead.i)
# This test case is prepared to test the elastic moduli of monolithic (CVD) SiC
# using the correlation provided in:
#
# L. L. Snead, T. Nozawa, Y. Katoh, T-S. Byun, S. Kondo, D. A. Petti,
# "Handbook of SiC propeties for fuel performance modeling," Journal of Nuclear
# Materials, 371, 2007, p. 329-377.
#
# The geometry represents a ring of monolothic SiC with inner radius of 0.005 m,
# outer radius of 0.0055 m, and a height of 0.01 m.
#
# An axial load is applied to the top of the ring with a value of -100 MPa.
# The strain in the radial direction can be calculated using the Young's modulus
# and the Poisson's ratio from the applied 100.0 MPa pressure.
#
# epsilon_{rr} = nu * sigma_{axial} / E
#
# The Young's modulus (E) for monolithic SiC is calculated via:
#
# E = E_o - BT * exp(-T_o / T)
#
# where E_o = 460e9 Pa, B = 0.04e9 Pa/K, T_o = 962.0 K, and T is the temperature
# in K.
#
# The Poisson's ratio of monolithic (CVD) SiC is taken as 0.21.
#
# The results of BISON compared to the analytical solution for an increase in
# temperature under constant pressure are summarized:
#
# BISON Analytical
# Temperature (K) strain_rr (m/m) strain_rr (m/m)
# 450 4.5864e-5 4.5864e-5
# 600 4.6137e-5 4.6137e-5
# 750 4.6493e-5 4.6493e-5
# 900 4.6913e-5 4.6913e-5
# 1050 4.7383e-5 4.7383e-5
# 1200 4.7894e-5 4.7894e-5
# 1350 4.8441e-5 4.8441e-5
# 1500 4.9012e-5 4.9012e-5
# 1650 4.9627e-5 4.9627e-5
# 1800 5.0262e-5 5.0262e-5
[Mesh]
coord_type = RZ
[generated_mesh]
type = GeneratedMeshGenerator
dim = 2
xmin = 0.005
xmax = 0.0055
ymin = 0
ymax = 0.01
[]
[]
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Variables]
[temperature]
order = FIRST
family = LAGRANGE
initial_condition = 300.0
[]
[]
[Physics]
[SolidMechanics]
[QuasiStatic]
[all]
strain = FINITE
add_variables = true
generate_output = 'elastic_strain_xx'
[]
[]
[]
[]
[Functions]
[temperature_function]
type = PiecewiseLinear
x = '0 10'
y = '300 1800'
[]
[pressure_function]
type = PiecewiseLinear
x = '0 10'
y = '1 1'
[]
[swelling_func]
type = ConstantFunction
value = 0.0
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temperature
[]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temperature
[]
[]
[BCs]
[top_pressure] #Simplified BC to apply pressure in only disp_y
type = Pressure
boundary = top
variable = disp_y
function = pressure_function
factor = 100e6
[]
[u_bottom_fix]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[]
[temp_bc]
type = FunctionDirichletBC
variable = temperature
boundary = 'bottom top left right'
function = temperature_function
[]
[]
[Materials]
[elasticity_tensor]
type = MonolithicSiCElasticityTensor
temperature = temperature
[]
[stress]
type = ComputeFiniteStrainElasticStress
[]
[clad_density]
type = StrainAdjustedDensity
strain_free_density = 3210.0
[]
[thermal]
type = MonolithicSiCThermal
temperature = temperature
thermal_conductivity_model = SNEAD
[]
[swelling]
type = GenericFunctionMaterial
prop_names = swelling
prop_values = swelling_func
outputs = all
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart'
petsc_options_value = '101'
line_search = 'none'
l_max_its = 100
nl_max_its = 100
nl_rel_tol = 1e-8
nl_abs_tol = 1e-8
l_tol = 1e-8
start_time = 0.0
end_time = 10
dt = 1
[]
[Postprocessors]
[elastic_strain_rr]
type = ElementAverageValue
variable = elastic_strain_xx
[]
[temp]
type = AverageNodalVariableValue
variable = temperature
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
csv = true
[]
(examples/TRISO/failure_probability_direct_integration/ipyc_cracking.i)
kernel_radius = 213.35e-6
buffer_thickness = 98.9e-6
IPyC_thickness = 40.4e-6
SiC_thickness = 35.2e-6
OPyC_thickness = 43.4e-6
aspect_ratio = 1.04
coordinates1 = '${fparse kernel_radius}'
coordinates2 = '${fparse coordinates1+buffer_thickness}'
coordinates3 = '${fparse coordinates2+IPyC_thickness}'
coordinates4 = '${fparse coordinates3+SiC_thickness}'
coordinates5 = '${fparse coordinates4+OPyC_thickness}'
initial_fuel_density = 10966
[GlobalParams]
order = FIRST
family = LAGRANGE
displacements = 'disp_x disp_y'
initial_enrichment = 0.14029 # [wt-]
flux_conversion_factor = 1.0 # convert E>0.10 to E>0.18 MeV
stress_free_temperature = 481 # used for thermal expansion
energy_per_fission = 3.204e-11 # [J/fission]
O_U = 1.428 # Initial Oxygen to Uranium atom ratio
C_U = 0.392 # Initial Carbon to Uranium atom ratio
[]
[Mesh]
coord_type = RZ
[gen]
type = TRISO2DMeshGenerator
elem_type = quad4
coordinates = '0 ${coordinates1} ${coordinates2} ${coordinates2} ${coordinates3} ${coordinates4} '
'${coordinates5}'
mesh_density = '20 8 0 4 4 4'
block_names = 'fuel buffer IPyC SiC OPyC'
num_sectors = 60
aspect_ratio = ${aspect_ratio}
all_bottom_left = true
[]
[]
[XFEM]
qrule = volfrac
output_cut_plane = true
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[UserObjects]
[ipyc_crack]
type = LineSegmentCutUserObject
cut_data = '0.0000 0.0 0.001 0.0'
#cut_data = '0 0 0.00174 -0.00257'
time_start_cut = 0.0
time_end_cut = 0.0
block = IPyC
[]
[particle_geometry]
type = TRISOGeometry
outer_OPyC = OPyC_outer_boundary
outer_SiC = SiC_outer_boundary
outer_IPyC = IPyC_outer_boundary
inner_IPyC = IPyC_inner_boundary
outer_buffer = buffer_outer_boundary
outer_kernel = fuel_outer_boundary
include_particle = true
include_pebble = false
mesh_generator = 'gen'
[]
[]
[Variables]
[temperature]
initial_condition = 481
[]
[]
[AuxVariables]
[fission_rate]
order = CONSTANT
family = MONOMIAL
[]
[burnup]
order = CONSTANT
family = MONOMIAL
[]
[fast_neutron_flux]
order = CONSTANT
family = MONOMIAL
[]
[fast_neutron_fluence]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[temp_bc]
type = PiecewiseLinear
data_file = outer_temp.csv
x_index_in_file = 0
y_index_in_file = 1
format = columns
[]
[fission_rate]
type = ConstantFunction
value = 5.75e19
[]
[]
[Physics/SolidMechanics/QuasiStatic]
generate_output = 'stress_xx stress_yy stress_zz strain_xx strain_yy strain_zz '
'max_principal_stress'
add_variables = true
strain = FINITE
incremental = true
[fuel]
block = fuel
eigenstrain_names = 'UCO_swelling_eigenstrain UCO_TE_strain'
extra_vector_tags = 'ref'
[]
[buffer]
block = buffer
eigenstrain_names = 'Buffer_IIDC_strain Buffer_TE_strain'
extra_vector_tags = 'ref'
[]
[IPyC]
block = IPyC
eigenstrain_names = 'IPyC_IIDC_strain IPyC_TE_strain'
extra_vector_tags = 'ref'
[]
[SiC]
block = SiC
eigenstrain_names = 'SiC_thermal_eigenstrain'
extra_vector_tags = 'ref'
[]
[OPyC]
block = OPyC
eigenstrain_names = 'OPyC_IIDC_strain OPyC_TE_strain'
extra_vector_tags = 'ref'
[]
[]
[Kernels]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temperature
extra_vector_tags = 'ref'
[]
[heat]
type = HeatConduction
variable = temperature
extra_vector_tags = 'ref'
[]
[heat_source]
type = NeutronHeatSource
variable = temperature
block = fuel
fission_rate = fission_rate
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[fissionrate]
type = MaterialRealAux
variable = fission_rate
property = fission_rate
block = fuel
execute_on = timestep_begin
[]
[burnup]
type = MaterialRealAux
variable = burnup
property = burnup
block = fuel
execute_on = timestep_begin
[]
[fast_neutron_flux]
type = MaterialRealAux
variable = fast_neutron_flux
property = fast_neutron_flux
execute_on = timestep_begin
[]
[fast_neutron_fluence]
type = MaterialRealAux
variable = fast_neutron_fluence
property = fast_neutron_fluence
execute_on = timestep_begin
[]
[]
[ThermalContact]
[thermal_contact]
type = GasGapHeatTransfer
variable = temperature
primary = IPyC_inner_boundary
secondary = buffer_outer_boundary
initial_moles = initial_moles
gas_released = 'fis_gas_released'
released_gas_types = 'Kr Xe'
released_fractions = '0.185 0.815'
tangential_tolerance = 5e-6
quadrature = false
min_gap = 1e-7
max_gap = 50e-6
gap_geometry_type = sphere
sphere_origin = '0 0 0'
[]
[]
[BCs]
[no_disp_x]
type = DirichletBC
variable = disp_x
boundary = xzero
value = 0.0
[]
[no_disp_y]
type = DirichletBC
variable = disp_y
boundary = '2001 2002 2004 2005'
value = 0.0
[]
[freesurf_temp]
type = FunctionDirichletBC
variable = temperature
function = temp_bc
boundary = exterior
[]
[Pressure]
[exterior]
boundary = exterior
factor = 0.1e6
[]
[]
[PlenumPressure]
[plenumPressure]
boundary = buffer_IPyC_boundary
startup_time = 1e4
initial_pressure = 0
R = 8.3145
output_initial_moles = initial_moles
temperature = ave_gas_temp
volume = 'gap_volume buffer_void_volume kernel_void_volume'
material_input = 'fis_gas_released'
output = gas_pressure
[]
[]
[]
[Materials]
[fission_rate]
type = GenericFunctionMaterial
prop_names = fission_rate
prop_values = fission_rate
block = fuel
[]
[fast_neutron_flux]
type = FastNeutronFlux
calculate_fluence = true
factor = 6.2425e+17
[]
[UCO_burnup]
type = TRISOBurnup
initial_density = ${initial_fuel_density}
block = fuel
[]
[UCO_thermal]
type = UCOThermal
block = fuel
temperature = temperature
[]
[UCO_elasticity_tensor]
type = UCOElasticityTensor
block = fuel
temperature = temperature
[]
[UCO_stress]
type = ComputeFiniteStrainElasticStress
block = fuel
[]
[UCO_VolumetricSwellingEigenstrain]
type = UCOVolumetricSwellingEigenstrain
block = fuel
eigenstrain_name = UCO_swelling_eigenstrain
[]
[fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = fuel
thermal_expansion_coeff = 10.0e-6
temperature = temperature
eigenstrain_name = UCO_TE_strain
[]
[UCO_density]
type = StrainAdjustedDensity
block = fuel
strain_free_density = ${initial_fuel_density}
[]
[fission_gas_release]
type = UCOFGR
block = fuel
average_grain_radius = 10e-6
temperature = temperature
triso_geometry = particle_geometry
cutoff_neutron_flux = 0.0
[]
[BAF_IPyC]
type = BaconAnisotropyFactor
initial_BAF = 1.0465
block = IPyC
[]
[BAF_OPyC]
type = BaconAnisotropyFactor
initial_BAF = 1.0429
block = OPyC
[]
[buffer_elasticity_tensor]
type = BufferElasticityTensor
block = buffer
temperature = temperature
[]
[buffer_stress]
type = BufferCEGACreep
block = buffer
temperature = temperature
[]
[buffer_thermal]
type = BufferThermal
block = buffer
initial_density = 1050.0
[]
[buffer_density]
type = StrainAdjustedDensity
block = buffer
strain_free_density = 1050.0
[]
[buffer_TE]
type = BufferThermalExpansionEigenstrain
block = buffer
eigenstrain_name = Buffer_TE_strain
temperature = temperature
[]
[buffer_IIDC]
type = BufferCEGAIrradiationEigenstrain
block = buffer
eigenstrain_name = Buffer_IIDC_strain
temperature = temperature
[]
[IPyC_elasticity_tensor]
type = PyCElasticityTensor
block = IPyC
temperature = temperature
[]
[IPyC_stress]
type = PyCCEGACreep
block = IPyC
creep_rate_scale_factor = 1
temperature = temperature
[]
[IPyC_thermal]
type = HeatConductionMaterial
block = IPyC
thermal_conductivity = 4.0
specific_heat = 720.0
[]
[IPyC_density]
type = GenericConstantMaterial
block = IPyC
prop_names = 'density'
prop_values = 1890
[]
[normal_vectors_triso]
type = NormalVectorsTRISO
block = 'buffer IPyC OPyC'
triso_geometry = particle_geometry
[]
[IPyC_IIDC]
type = PyCCEGAIrradiationEigenstrain
block = IPyC
eigenstrain_name = IPyC_IIDC_strain
temperature = temperature
irradiation_eigenstrain_scale_factor = 1
[]
[IPyC_TE]
type = PyCThermalExpansionEigenstrain
block = IPyC
eigenstrain_name = IPyC_TE_strain
temperature = temperature
[]
[SiC_elasticity_tensor]
type = MonolithicSiCElasticityTensor
block = SiC
temperature = temperature
elastic_modulus_model = miller
[]
[SiC_stress]
type = ComputeFiniteStrainElasticStress
block = SiC
[]
[SiC_thermal]
type = MonolithicSiCThermal
block = SiC
temperature = temperature
thermal_conductivity_model = miller
[]
[SiC_density]
type = StrainAdjustedDensity
block = SiC
strain_free_density = 3200.0
[]
[SiC_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = SiC
thermal_expansion_coeff = 4.9e-6
temperature = temperature
eigenstrain_name = SiC_thermal_eigenstrain
[]
[OPyC_elasticity_tensor]
type = PyCElasticityTensor
block = OPyC
temperature = temperature
initial_BAF = 1.0
[]
[OPyC_stress]
type = PyCCEGACreep
block = OPyC
creep_rate_scale_factor = 1
temperature = temperature
[]
[OPyC_thermal_conductivity]
type = HeatConductionMaterial
block = OPyC
thermal_conductivity = 4.0
specific_heat = 720.0
[]
[OPyC_density]
type = GenericConstantMaterial
block = OPyC
prop_names = 'density'
prop_values = 1900
[]
[OPyC_IIDC]
type = PyCCEGAIrradiationEigenstrain
block = OPyC
eigenstrain_name = OPyC_IIDC_strain
temperature = temperature
irradiation_eigenstrain_scale_factor = 1
[]
[OPyC_TE]
type = PyCThermalExpansionEigenstrain
block = OPyC
eigenstrain_name = OPyC_TE_strain
temperature = temperature
[]
[characteristic_strength_SiC]
type = GenericConstantMaterial
prop_values = '9640000'
block = SiC
prop_names = 'characteristic_strength'
[]
[characteristic_strength_PyC]
type = PyCCharacteristicStrength
temperature = temperature
X = 1.02
block = 'IPyC OPyC'
[]
[]
[Dampers]
[temp]
type = MaxIncrement
variable = temperature
max_increment = 100
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
nl_rel_tol = 1e-11
nl_abs_tol = 1e-11
nl_max_its = 20
l_tol = 1e-4
l_max_its = 50
start_time = 0.0
end_time = 4.831315e7
# For testing, we only run 20 time steps
num_steps = 20
dtmin = 1e-4
dt = 6e5
[]
[Postprocessors]
[ave_gas_temp]
type = ElementAverageValue
block = buffer
variable = temperature
execute_on = 'initial timestep_end'
[]
[fis_gas_released]
type = ElementIntegralMaterialProperty
mat_prop = fis_gas_released
block = fuel
use_displaced_mesh = false
execute_on = 'initial timestep_end'
[]
[gap_volume]
type = InternalVolume
boundary = buffer_IPyC_boundary
execute_on = 'initial linear'
use_displaced_mesh = true
[]
[buffer_void_volume]
type = VoidVolume
block = buffer
theoretical_density = 2250
execute_on = 'initial timestep_end'
use_displaced_mesh = true
[]
[kernel_th_density]
type = UCOTheoreticalDensity
execute_on = initial
[]
[kernel_void_volume]
type = VoidVolume
block = fuel
theoretical_density = kernel_th_density
execute_on = 'initial timestep_end'
use_displaced_mesh = true
[]
[particle_power]
type = ElementIntegralPower
variable = temperature
use_material_fission_rate = true
fission_rate_material = fission_rate
block = fuel
execute_on = 'initial timestep_end'
[]
[max_fluence]
type = ElementExtremeValue
variable = fast_neutron_fluence
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[max_burnup]
type = ElementExtremeValue
variable = burnup
block = fuel
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[SiC_stress]
type = ElementExtremeMaterialProperty
block = SiC
value_type = max
mat_prop = max_principal_stress
[]
[strength_SiC]
type = WeibullEffectiveMeanStrength
block = SiC
weibull_modulus = 6
[]
[weibull_failure_probability_SiC_crackedIPyC]
type = WeibullFailureProbability
block = SiC
weibull_modulus = 6
characteristic_strength = characteristic_strength
[]
[]
[Outputs]
print_linear_residuals = false
time_step_interval = 1
csv = false
perf_graph = true
exodus = false
[]
(test/tests/triso_failure/triso_failure_diffusivity.i)
kernel_radius = 213.35e-6
buffer_thickness = 98.9e-6
IPyC_thickness = 40.4e-6
SiC_thickness = 35.2e-6
OPyC_thickness = 43.4e-6
coordinates1 = '${fparse kernel_radius}'
coordinates2 = '${fparse coordinates1+buffer_thickness}'
coordinates3 = '${fparse coordinates2+IPyC_thickness}'
coordinates4 = '${fparse coordinates3+SiC_thickness}'
coordinates5 = '${fparse coordinates4+OPyC_thickness}'
[GlobalParams]
order = FIRST
family = LAGRANGE
displacements = 'disp_x'
initial_enrichment = 0.14029 # [wt-]
flux_conversion_factor = 1.0 # convert E>0.10 to E>0.18 MeV
stress_free_temperature = 481 # used for thermal expansion
energy_per_fission = 3.204e-11 # [J/fission]
O_U = 1.428 # Initial Oxygen to Uranium atom ratio
C_U = 0.392 # Initial Carbon to Uranium atom ratio
[]
[Mesh]
coord_type = RSPHERICAL
[mesh]
type = TRISO1DMeshGenerator
elem_type = EDGE2
coordinates = '0 ${coordinates1} ${coordinates2} ${coordinates2} ${coordinates3} ${coordinates4} ${coordinates5}'
mesh_density = '18 14 0 12 16 16'
block_names = 'fuel buffer IPyC SiC OPyC'
[]
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[Physics/SolidMechanics/QuasiStatic]
generate_output = 'stress_xx stress_yy stress_zz strain_xx strain_yy strain_zz max_principal_stress'
add_variables = true
strain = FINITE
incremental = true
[fuel]
block = fuel
eigenstrain_names = 'UCO_swelling_eigenstrain UCO_TE_strain'
extra_vector_tags = 'ref'
[]
[buffer]
block = buffer
eigenstrain_names = 'Buffer_IIDC_strain Buffer_TE_strain'
extra_vector_tags = 'ref'
[]
[IPyC]
block = IPyC
eigenstrain_names = 'IPyC_IIDC_strain IPyC_TE_strain'
extra_vector_tags = 'ref'
[]
[SiC]
block = SiC
eigenstrain_names = 'SiC_thermal_eigenstrain'
extra_vector_tags = 'ref'
[]
[OPyC]
block = OPyC
eigenstrain_names = 'OPyC_IIDC_strain OPyC_TE_strain'
extra_vector_tags = 'ref'
[]
[]
[UserObjects]
[particle_geometry]
type = TRISOGeometry
outer_OPyC = OPyC_outer_boundary
outer_SiC = SiC_outer_boundary
outer_IPyC = IPyC_outer_boundary
inner_IPyC = IPyC_inner_boundary
outer_buffer = buffer_outer_boundary
outer_kernel = fuel_outer_boundary
include_particle = true
include_pebble = false
IPyC_thickness_mean = ${IPyC_thickness}
SiC_thickness_mean = ${SiC_thickness}
OPyC_thickness_mean = ${OPyC_thickness}
[]
[]
[Variables]
[temperature]
initial_condition = 873.15
[]
[conc_Ag]
initial_condition = 0.0
scaling = 1e12
[]
[]
[AuxVariables]
[bounds_dummy]
order = FIRST
family = LAGRANGE
[]
[fission_rate]
order = CONSTANT
family = MONOMIAL
[]
[burnup]
order = CONSTANT
family = MONOMIAL
[]
[fast_neutron_flux]
order = CONSTANT
family = MONOMIAL
[]
[fast_neutron_fluence]
order = CONSTANT
family = MONOMIAL
[]
[fis_gas_produced]
order = CONSTANT
family = MONOMIAL
[]
[fis_gas_released]
order = CONSTANT
family = MONOMIAL
[]
[Ag_diff_coef]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[power_history]
type = PiecewiseLinear
x = '0 76e6'
y = '1 1'
[]
[fission_rate]
type = LinearCombinationFunction
functions = power_history
w = 7.78e19
[]
[high_fidelity_strength_crackedIPyC]
type = ConstantFunction
value = '1403604095.5707'
[]
[stress_correlation_crackedIPyC]
type = TRISOStressCorrelationFunction
triso_geometry = particle_geometry
polynomial_coefficients_IPyC = '1 0 0'
polynomial_coefficients_SiC = '1 0 0'
polynomial_coefficients_OPyC = '1 0 0'
correlation_factor = -4.0
[]
[high_fidelity_strength_asphericity]
type = ConstantFunction
value = '1371700766.8875'
[]
[stress_correlation_asphericity]
type = TRISOStressCorrelationFunction
triso_geometry = particle_geometry
polynomial_coefficients_IPyC = '1 0 0'
polynomial_coefficients_SiC = '1 0 0'
polynomial_coefficients_OPyC = '1 0 0'
correlation_factor = 1.5191967987843993
[]
[stress_change_correlation_asphericity]
type = TRISOStressCorrelationFunction
triso_geometry = particle_geometry
polynomial_coefficients_IPyC = '1 0 0'
polynomial_coefficients_SiC = '1 0 0'
polynomial_coefficients_OPyC = '1 0 0'
correlation_factor = 1.391516859626456
[]
[d_gap]
type = PiecewiseLinear
x = '1500 2100'
y = '1e-14 1e-12'
[]
[ag_d1]
type = ParsedFunction
symbol_values = 'sic_failure_overall'
symbol_names = 'failure'
expression = 'if(failure > 0.5,1e-6,3.6e-9)'
[]
[ag_q1]
type = ParsedFunction
symbol_values = 'sic_failure_overall'
symbol_names = 'failure'
expression = 'if(failure > 0.5,0,215e3)'
[]
[]
[Kernels]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temperature
extra_vector_tags = 'ref'
[]
[heat]
type = HeatConduction
variable = temperature
extra_vector_tags = 'ref'
[]
[heat_source]
type = NeutronHeatSource
variable = temperature
block = fuel
fission_rate = fission_rate
extra_vector_tags = 'ref'
[]
[mass_Ag_dt]
type = TimeDerivative
variable = conc_Ag
[]
[mass_Ag]
type = ArrheniusDiffusion
variable = conc_Ag
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
extra_vector_tags = 'ref'
[]
[mass_source_Ag]
type = SpeciesSourceRate
variable = conc_Ag
property_name = Ag_generation
block = fuel
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[fissionrate]
type = MaterialRealAux
variable = fission_rate
property = fission_rate
block = fuel
execute_on = timestep_begin
[]
[burnup]
type = MaterialRealAux
variable = burnup
property = burnup
block = fuel
execute_on = timestep_begin
[]
[fast_neutron_flux]
type = MaterialRealAux
variable = fast_neutron_flux
property = fast_neutron_flux
execute_on = timestep_begin
[]
[fast_neutron_fluence]
type = MaterialRealAux
variable = fast_neutron_fluence
property = fast_neutron_fluence
execute_on = timestep_begin
[]
[Ag_diff_coef]
type = MaterialRealAux
variable = Ag_diff_coef
property = arrhenius_diffusion_coef_Ag
execute_on = timestep_end
[]
[]
[BCs]
[freesurf_temp]
type = FunctionDirichletBC
variable = temperature
function = 873.15
boundary = exterior
[]
[freesurf_conc_Ag]
type = DirichletBC
variable = conc_Ag
boundary = exterior
value = 0.0
[]
[no_disp_x]
type = DirichletBC
variable = disp_x
boundary = xzero
value = 0.0
[]
[exterior_pressure_x]
type = Pressure
variable = disp_x
boundary = exterior
factor = 0.1e6
[]
[PlenumPressure]
[plenumPressure]
boundary = buffer_IPyC_boundary
startup_time = 1e4
initial_pressure = 0
output_initial_moles = initial_moles
temperature = ave_gas_temp
volume = 'gap_volume buffer_void_volume kernel_void_volume'
material_input = 'fis_gas_released'
output = gas_pressure
[]
[]
[]
[Controls]
[ag_d1]
type = RealFunctionControl
parameter = 'Materials/SiC_conc_Ag/d1'
function = 'ag_d1'
execute_on = 'INITIAL TIMESTEP_BEGIN'
[]
[ag_q1]
type = RealFunctionControl
parameter = 'Materials/SiC_conc_Ag/q1'
function = 'ag_q1'
execute_on = 'INITIAL TIMESTEP_BEGIN'
[]
[]
[Materials]
[fission_rate]
type = GenericFunctionMaterial
prop_names = fission_rate
prop_values = fission_rate
#block = fuel
[]
[fast_neutron_flux]
type = FastNeutronFlux
calculate_fluence = true
flux_function = power_history
factor = 1.16e18
[]
# Arrhenius diffusion coefficients for kernel, PyC, and SiC
# come from IAEA TECDOC-978, French parameters.
[fuel_conc_Ag]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 6.7e-9 # m^2/s
q1 = 165e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[mass_source_Ag_property]
type = SpeciesSourceMaterial
property_name = Ag_generation
kind = Ag
block = fuel
[]
### Buffer Properties
[buffer_conc_Ag]
type = ArrheniusDiffusionCoef
block = buffer
d1 = 1e-8 # m^2/s
q1 = 0.0
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
### IPyC properties
[IPyC_conc_Ag]
type = ArrheniusDiffusionCoef
block = IPyC
d1 = 5.3e-9 # m^2/s
q1 = 154e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
### SiC properties
[SiC_conc_Ag]
type = ArrheniusDiffusionCoef
block = SiC
d1 = 3.6e-9 # m^2/s
q1 = 215e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
### OPyC properties
[OPyC_conc_Ag]
type = ArrheniusDiffusionCoef
block = OPyC
d1 = 5.3e-9 # m^2/s
q1 = 154e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[UCO_burnup]
type = TRISOBurnup
initial_density = 10966
block = fuel
[]
[UCO_thermal]
type = UCOThermal
block = fuel
temperature = temperature
[]
[UCO_elasticity_tensor]
type = UCOElasticityTensor
block = fuel
temperature = temperature
[]
[UCO_stress]
type = ComputeFiniteStrainElasticStress
block = fuel
[]
[UCO_VolumetricSwellingEigenstrain]
type = UCOVolumetricSwellingEigenstrain
block = fuel
eigenstrain_name = UCO_swelling_eigenstrain
[]
[fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = fuel
thermal_expansion_coeff = 10.0e-6
temperature = temperature
eigenstrain_name = UCO_TE_strain
[]
[UCO_density]
type = StrainAdjustedDensity
block = fuel
strain_free_density = 10966
[]
[fission_gas_release]
type = UCOFGR
block = fuel
average_grain_radius = 10e-6
temperature = temperature
triso_geometry = particle_geometry
cutoff_neutron_flux = 0.0
[]
[normal_vectors_triso]
type = NormalVectorsTRISO
block = 'buffer IPyC OPyC'
[]
[BAF_IPyC]
type = BaconAnisotropyFactor
initial_BAF = 1.0465
block = IPyC
[]
[BAF_OPyC]
type = BaconAnisotropyFactor
initial_BAF = 1.0429
block = OPyC
[]
[buffer_elasticity_tensor]
type = BufferElasticityTensor
block = buffer
temperature = temperature
[]
[buffer_stress]
type = BufferCEGACreep
block = buffer
temperature = temperature
[]
[buffer_thermal]
type = BufferThermal
block = buffer
initial_density = 1050.0
[]
[buffer_density]
type = StrainAdjustedDensity
block = buffer
strain_free_density = 1050.0
[]
[buffer_TE]
type = BufferThermalExpansionEigenstrain
block = buffer
eigenstrain_name = Buffer_TE_strain
temperature = temperature
[]
[buffer_IIDC]
type = BufferCEGAIrradiationEigenstrain
block = buffer
eigenstrain_name = Buffer_IIDC_strain
temperature = temperature
[]
[IPyC_elasticity_tensor]
type = PyCElasticityTensor
block = IPyC
temperature = temperature
[]
[IPyC_stress]
type = PyCCEGACreep
block = IPyC
creep_rate_scale_factor = 1
temperature = temperature
[]
[IPyC_thermal]
type = HeatConductionMaterial
block = IPyC
thermal_conductivity = 4.0
specific_heat = 720.0
[]
[IPyC_density]
type = GenericConstantMaterial
block = IPyC
prop_names = 'density'
prop_values = 1890
[]
[IPyC_IIDC]
type = PyCCEGAIrradiationEigenstrain
block = IPyC
eigenstrain_name = IPyC_IIDC_strain
temperature = temperature
irradiation_eigenstrain_scale_factor = 1
[]
[IPyC_TE]
type = PyCThermalExpansionEigenstrain
block = IPyC
eigenstrain_name = IPyC_TE_strain
temperature = temperature
[]
[SiC_elasticity_tensor]
type = MonolithicSiCElasticityTensor
block = SiC
temperature = temperature
elastic_modulus_model = miller
[]
[SiC_stress]
type = ComputeFiniteStrainElasticStress
block = SiC
[]
[SiC_thermal]
type = MonolithicSiCThermal
block = SiC
temperature = temperature
thermal_conductivity_model = miller
[]
[SiC_density]
type = StrainAdjustedDensity
block = SiC
strain_free_density = 3200.0
[]
[SiC_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = SiC
thermal_expansion_coeff = 4.9e-6
temperature = temperature
eigenstrain_name = SiC_thermal_eigenstrain
[]
[OPyC_elasticity_tensor]
type = PyCElasticityTensor
block = OPyC
temperature = temperature
initial_BAF = 1.0
[]
[OPyC_stress]
type = PyCCEGACreep
block = OPyC
creep_rate_scale_factor = 1
temperature = temperature
[]
[OPyC_thermal_conductivity]
type = HeatConductionMaterial
block = OPyC
thermal_conductivity = 4.0
specific_heat = 720.0
[]
[OPyC_density]
type = GenericConstantMaterial
block = OPyC
prop_names = 'density'
prop_values = 1900
[]
[OPyC_IIDC]
type = PyCCEGAIrradiationEigenstrain
block = OPyC
eigenstrain_name = OPyC_IIDC_strain
temperature = temperature
irradiation_eigenstrain_scale_factor = 1
[]
[OPyC_TE]
type = PyCThermalExpansionEigenstrain
block = OPyC
eigenstrain_name = OPyC_TE_strain
temperature = temperature
[]
[characteristic_strength_SiC]
type = GenericConstantMaterial
prop_values = '9640000'
block = SiC
prop_names = 'characteristic_strength'
[]
[characteristic_strength_PyC]
type = PyCCharacteristicStrength
temperature = temperature
X = 1.02
block = 'IPyC OPyC'
[]
[]
[ThermalContact]
[thermal_contact]
type = GasGapHeatTransfer
variable = temperature
primary = IPyC_inner_boundary
secondary = buffer_outer_boundary
initial_moles = initial_moles # coupling to a postprocessor which supplies the initial plenum/gap gas mass
initial_gas_types = 'Kr Xe'
initial_fractions = '0.185 0.815'
gas_released = 'fis_gas_released'
released_gas_types = 'Kr Xe'
released_fractions = '0.185 0.815'
tangential_tolerance = 1e-6
roughness_primary = 0e-6
roughness_secondary = 0e-6
jumpdistance_primary = 0
jumpdistance_secondary = 0
quadrature = true
emissivity_secondary = 0.0
emissivity_primary = 0.0
min_gap = 1e-7
max_gap = 50e-6
gap_geometry_type = sphere
[]
[conc_Ag]
type = GapHeatTransfer
variable = conc_Ag
primary = IPyC_inner_boundary
secondary = buffer_outer_boundary
tangential_tolerance = 1e-6
gap_conductivity_function = d_gap
gap_conductivity_function_variable = temperature
appended_property_name = _conc_Ag
quadrature = true
gap_geometry_type = sphere
emissivity_primary = 0.0
emissivity_secondary = 0.0
min_gap = 1e-7
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
line_search = 'none'
nl_rel_tol = 1e-7
nl_abs_tol = 1e-7
nl_max_its = 20
l_tol = 1e-4
l_max_its = 50
start_time = 0.0
end_time = 4.831315e7
dtmin = 1e-4
[TimeStepper]
type = IterationAdaptiveDT
dt = 20
growth_factor = 1.5
optimal_iterations = 8 #6
linear_iteration_ratio = 100
time_t = '0 76e6 76.001e6 84.641e6 84.6482e6'
time_dt = '20 20 20 20 20'
[]
[]
[Postprocessors]
[ave_gas_temp]
type = ElementAverageValue
block = buffer
variable = temperature
execute_on = 'initial timestep_end'
[]
[gap_volume]
type = InternalVolume
boundary = buffer_IPyC_boundary
execute_on = 'initial linear'
use_displaced_mesh = true
[]
[buffer_void_volume]
type = VoidVolume
block = buffer
theoretical_density = 2250
execute_on = 'initial timestep_end'
use_displaced_mesh = true
[]
[kernel_th_density]
type = UCOTheoreticalDensity
execute_on = initial
[]
[kernel_void_volume]
type = VoidVolume
block = fuel
theoretical_density = kernel_th_density
execute_on = 'initial timestep_end'
use_displaced_mesh = true
[]
[release_heat_inc]
type = SideIntegralMassFlux
variable = temperature
boundary = exterior
arrhenius_prpty_name = thermal_conductivity
execute_on = 'initial timestep_end'
[]
[release_Ag_inc]
type = SideIntegralMassFlux
variable = conc_Ag
boundary = exterior
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
execute_on = 'initial timestep_end'
[]
[released_Ag]
type = TimeIntegratedPostprocessor # computes time integration of value
value = release_Ag_inc
execute_on = 'initial timestep_end'
[]
[total_Ag]
type = ElementIntegralMaterialProperty
mat_prop = Ag_generation_total
block = fuel
execute_on = 'initial timestep_end'
[]
[x_Ag_released]
type = FractionalRelease
released = released_Ag
total = total_Ag
[]
[retained_Ag]
type = ElementIntegralVariablePostprocessor
variable = conc_Ag
[]
[fis_gas_produced]
type = ElementIntegralMaterialProperty
mat_prop = fis_gas_produced
block = fuel
execute_on = 'initial timestep_end'
[]
[fis_gas_released]
type = ElementIntegralMaterialProperty
mat_prop = fis_gas_released
block = fuel
execute_on = 'initial linear timestep_end'
[]
### Postprocessors for CO production
[total_fission_rate]
type = ElementIntegralPower
variable = temperature
fission_rate = fission_rate
block = fuel
energy_per_fission = 1.0
execute_on = 'initial timestep_end'
[]
[total_fissions]
type = TimeIntegratedPostprocessor
value = total_fission_rate
execute_on = 'initial timestep_end'
[]
##### irradiation conditions
[particle_power]
type = ElementIntegralPower
variable = temperature
use_material_fission_rate = true
fission_rate_material = fission_rate
block = fuel
execute_on = 'initial timestep_end'
[]
[max_fluence]
type = ElementExtremeValue
variable = fast_neutron_fluence
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[max_burnup]
type = ElementExtremeValue
variable = burnup
block = fuel
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[SiC_stress]
type = ElementExtremeMaterialProperty
block = SiC
value_type = min
mat_prop = stress_yy
[]
[strength_SiC]
type = WeibullEffectiveMeanStrength
block = SiC
weibull_modulus = 6
[]
[failure_indicator_SiC]
type = WeibullFailureOutputUsingCorrelation
block = SiC
weibull_modulus = 6
stress_name = stress_yy
high_fidelity_analysis_strength = 'high_fidelity_strength_asphericity'
stress_correlation_function = 'stress_correlation_asphericity'
stress_change_correlation_function = 'stress_change_correlation_asphericity'
[]
[strength_IPyC]
type = WeibullEffectiveMeanStrength
block = IPyC
weibull_modulus = 9.5
[]
[failure_indicator_IPyC]
type = WeibullFailureOutputUsingCorrelation
block = IPyC
weibull_modulus = 9.5
stress_name = max_principal_stress
effective_mean_strength = strength_IPyC
[]
[failure_indicator_SiC_crackedIPyC]
type = WeibullFailureOutputUsingCorrelation
block = SiC
weibull_modulus = 6
stress_name = stress_yy
high_fidelity_analysis_strength = 'high_fidelity_strength_crackedIPyC'
stress_correlation_function = 'stress_correlation_crackedIPyC'
[]
[sic_failure_overall]
type = TRISOFailureEvaluation
IPyC_failure = failure_indicator_IPyC
SiC_failure_crackedIPyC = failure_indicator_SiC_crackedIPyC
SiC_failure = failure_indicator_SiC
SiC_failure_pd_penetration = failure_indicator_pd_penetration
failure_type = SIC_FAILURE_OVERALL
[]
[ipyc_cracking]
type = TRISOFailureEvaluation
IPyC_failure = failure_indicator_IPyC
SiC_failure_crackedIPyC = failure_indicator_SiC_crackedIPyC
SiC_failure = failure_indicator_SiC
failure_type = IPYC_CRACKING
[]
[sic_failure_due_to_pressure]
type = TRISOFailureEvaluation
IPyC_failure = failure_indicator_IPyC
SiC_failure_crackedIPyC = failure_indicator_SiC_crackedIPyC
SiC_failure = failure_indicator_SiC
failure_type = SIC_FAILURE_DUE_TO_PRESSURE
[]
[sic_failure_due_to_ipyc_cracking]
type = TRISOFailureEvaluation
IPyC_failure = failure_indicator_IPyC
SiC_failure_crackedIPyC = failure_indicator_SiC_crackedIPyC
SiC_failure = failure_indicator_SiC
failure_type = SIC_FAILURE_DUE_TO_IPYC_CRACKING
[]
[weibull_failure_probability_IPyC]
type = WeibullFailureProbability
block = IPyC
weibull_modulus = 9.5
characteristic_strength = characteristic_strength
[]
[weibull_failure_probability_SiC]
type = WeibullFailureProbability
block = SiC
weibull_modulus = 6
characteristic_strength = characteristic_strength
[]
[pd_penetration]
type = PdPenetration
boundary = SiC_inner_boundary
variable = temperature
execute_on = 'initial timestep_end'
[]
[failure_indicator_pd_penetration]
type = PdPenetrationFailureIndicator
triso_geometry = particle_geometry
pd_penetration = pd_penetration
[]
[]
[Outputs]
csv = true
[]
(test/tests/triso_failure/triso_1d_kernel_migration.i)
kernel_radius = 213.35e-6
buffer_thickness = 98.9e-6
IPyC_thickness = 40.4e-6
SiC_thickness = 35.2e-6
OPyC_thickness = 43.4e-6
coordinates1 = '${fparse kernel_radius}'
coordinates2 = '${fparse coordinates1+buffer_thickness}'
coordinates3 = '${fparse coordinates2+IPyC_thickness}'
coordinates4 = '${fparse coordinates3+SiC_thickness}'
coordinates5 = '${fparse coordinates4+OPyC_thickness}'
[GlobalParams]
order = FIRST
family = LAGRANGE
displacements = 'disp_x'
initial_enrichment = 0.14029 # [wt-]
flux_conversion_factor = 1.0 # convert E>0.10 to E>0.18 MeV
stress_free_temperature = 1573 # used for thermal expansion
energy_per_fission = 3.204e-11 # [J/fission]
O_U = 1.428 # Initial Oxygen to Uranium atom ratio
C_U = 0.392 # Initial Carbon to Uranium atom ratio
[]
[Mesh]
coord_type = RSPHERICAL
[mesh]
type = TRISO1DMeshGenerator
elem_type = EDGE2
coordinates = '0 ${coordinates1} ${coordinates2} ${coordinates2} ${coordinates3} ${coordinates4} '
'${coordinates5}'
mesh_density = '20 8 0 4 4 4'
block_names = 'fuel buffer IPyC SiC OPyC'
[]
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[UserObjects]
[particle_geometry]
type = TRISOGeometry
outer_OPyC = OPyC_outer_boundary
outer_SiC = SiC_outer_boundary
outer_IPyC = IPyC_outer_boundary
inner_IPyC = IPyC_inner_boundary
outer_buffer = buffer_outer_boundary
outer_kernel = fuel_outer_boundary
include_particle = true
include_pebble = false
execute_on = 'INITIAL TIMESTEP_END'
[]
[]
[Variables]
[temperature]
initial_condition = 1573
[]
[]
[AuxVariables]
[fission_rate]
order = CONSTANT
family = MONOMIAL
[]
[burnup]
order = CONSTANT
family = MONOMIAL
[]
[fast_neutron_flux]
order = CONSTANT
family = MONOMIAL
[]
[fast_neutron_fluence]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[fission_rate]
type = ConstantFunction
value = 5.75e19
[]
[high_fidelity_strength_crackedIPyC]
type = PiecewiseLinear
x = '0 1.0e11'
y = '1000000 1000000'
[]
[high_fidelity_strength_crackedOPyC]
type = PiecewiseLinear
x = '0 1.0e11'
y = '1000000 1000000'
[]
[stress_correlation_crackedOPyC]
type = PiecewiseLinear
x = '0 1.0e11'
y = '1 1'
[]
[stress_correlation_crackedIPyC]
type = PiecewiseLinear
x = '0 1.0e11'
y = '100 100'
[]
[]
[Physics/SolidMechanics/QuasiStatic]
generate_output = 'stress_xx stress_yy stress_zz strain_xx strain_yy strain_zz '
'max_principal_stress'
add_variables = true
strain = FINITE
incremental = true
[fuel]
block = fuel
eigenstrain_names = 'UCO_swelling_eigenstrain UCO_TE_strain'
extra_vector_tags = 'ref'
[]
[buffer]
block = buffer
eigenstrain_names = 'Buffer_IIDC_strain Buffer_TE_strain'
extra_vector_tags = 'ref'
[]
[IPyC]
block = IPyC
eigenstrain_names = 'IPyC_IIDC_strain IPyC_TE_strain'
extra_vector_tags = 'ref'
[]
[SiC]
block = SiC
eigenstrain_names = 'SiC_thermal_eigenstrain'
extra_vector_tags = 'ref'
[]
[OPyC]
block = OPyC
eigenstrain_names = 'OPyC_IIDC_strain OPyC_TE_strain'
extra_vector_tags = 'ref'
[]
[]
[Kernels]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temperature
extra_vector_tags = 'ref'
[]
[heat]
type = HeatConduction
variable = temperature
extra_vector_tags = 'ref'
[]
[heat_source]
type = NeutronHeatSource
variable = temperature
block = fuel
fission_rate = fission_rate
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[fissionrate]
type = MaterialRealAux
variable = fission_rate
property = fission_rate
block = fuel
execute_on = timestep_begin
[]
[burnup]
type = MaterialRealAux
variable = burnup
property = burnup
block = fuel
execute_on = timestep_begin
[]
[fast_neutron_flux]
type = MaterialRealAux
variable = fast_neutron_flux
property = fast_neutron_flux
execute_on = timestep_begin
[]
[fast_neutron_fluence]
type = MaterialRealAux
variable = fast_neutron_fluence
property = fast_neutron_fluence
execute_on = timestep_begin
[]
[]
[ThermalContact]
[thermal_contact]
type = GasGapHeatTransfer
variable = temperature
primary = IPyC_inner_boundary
secondary = buffer_outer_boundary
initial_moles = initial_moles
gas_released = 'fis_gas_released'
released_gas_types = 'Kr Xe'
released_fractions = '0.185 0.815'
tangential_tolerance = 1e-6
quadrature = false
min_gap = 1e-7
max_gap = 50e-6
gap_geometry_type = sphere
[]
[]
[BCs]
[no_disp_x]
type = DirichletBC
variable = disp_x
boundary = xzero
value = 0.0
[]
[freesurf_temp]
type = DirichletBC
variable = temperature
value = 1573
boundary = exterior
[]
[exterior_pressure_x]
type = Pressure
variable = disp_x
boundary = exterior
factor = 0.1e6
[]
[PlenumPressure]
[plenumPressure]
boundary = buffer_IPyC_boundary
startup_time = 1e4
initial_pressure = 0
output_initial_moles = initial_moles
temperature = ave_gas_temp
volume = 'gap_volume buffer_void_volume kernel_void_volume'
material_input = 'fis_gas_released'
output = gas_pressure
[]
[]
[]
[Materials]
[fission_rate]
type = GenericFunctionMaterial
prop_names = fission_rate
prop_values = fission_rate
block = fuel
[]
[fast_neutron_flux]
type = FastNeutronFlux
calculate_fluence = true
factor = 6.2425e+17
[]
[UCO_burnup]
type = TRISOBurnup
initial_density = 10966
block = fuel
[]
[UCO_thermal]
type = UCOThermal
block = fuel
temperature = temperature
[]
[UCO_elasticity_tensor]
type = UCOElasticityTensor
block = fuel
temperature = temperature
[]
[UCO_stress]
type = ComputeFiniteStrainElasticStress
block = fuel
[]
[UCO_VolumetricSwellingEigenstrain]
type = UCOVolumetricSwellingEigenstrain
block = fuel
eigenstrain_name = UCO_swelling_eigenstrain
[]
[fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = fuel
thermal_expansion_coeff = 10.0e-6
temperature = temperature
eigenstrain_name = UCO_TE_strain
[]
[UCO_density]
type = StrainAdjustedDensity
block = fuel
strain_free_density = 10966
[]
[fission_gas_release]
type = UCOFGR
block = fuel
average_grain_radius = 10e-6
temperature = temperature
triso_geometry = particle_geometry
cutoff_neutron_flux = 0.0
[]
[normal_vectors_triso]
type = NormalVectorsTRISO
block = 'buffer IPyC OPyC'
[]
[BAF_IPyC]
type = BaconAnisotropyFactor
initial_BAF = 1.0465
block = IPyC
[]
[BAF_OPyC]
type = BaconAnisotropyFactor
initial_BAF = 1.0429
block = OPyC
[]
[buffer_elasticity_tensor]
type = BufferElasticityTensor
block = buffer
temperature = temperature
[]
[buffer_stress]
type = BufferCEGACreep
block = buffer
temperature = temperature
[]
[buffer_thermal]
type = BufferThermal
block = buffer
initial_density = 1050.0
[]
[buffer_density]
type = StrainAdjustedDensity
block = buffer
strain_free_density = 1050.0
[]
[buffer_TE]
type = BufferThermalExpansionEigenstrain
block = buffer
eigenstrain_name = Buffer_TE_strain
temperature = temperature
[]
[buffer_IIDC]
type = BufferCEGAIrradiationEigenstrain
block = buffer
eigenstrain_name = Buffer_IIDC_strain
temperature = temperature
[]
[IPyC_elasticity_tensor]
type = PyCElasticityTensor
block = IPyC
temperature = temperature
[]
[IPyC_stress]
type = PyCCEGACreep
block = IPyC
creep_rate_scale_factor = 1
temperature = temperature
[]
[IPyC_thermal]
type = HeatConductionMaterial
block = IPyC
thermal_conductivity = 4.0
specific_heat = 720.0
[]
[IPyC_density]
type = GenericConstantMaterial
block = IPyC
prop_names = 'density'
prop_values = 1890
[]
[IPyC_IIDC]
type = PyCCEGAIrradiationEigenstrain
block = IPyC
eigenstrain_name = IPyC_IIDC_strain
temperature = temperature
irradiation_eigenstrain_scale_factor = 1
[]
[IPyC_TE]
type = PyCThermalExpansionEigenstrain
block = IPyC
eigenstrain_name = IPyC_TE_strain
temperature = temperature
[]
[SiC_elasticity_tensor]
type = MonolithicSiCElasticityTensor
block = SiC
temperature = temperature
elastic_modulus_model = miller
[]
[SiC_stress]
type = ComputeFiniteStrainElasticStress
block = SiC
[]
[SiC_thermal]
type = MonolithicSiCThermal
block = SiC
temperature = temperature
thermal_conductivity_model = miller
[]
[SiC_density]
type = StrainAdjustedDensity
block = SiC
strain_free_density = 3200.0
[]
[SiC_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = SiC
thermal_expansion_coeff = 4.9e-6
temperature = temperature
eigenstrain_name = SiC_thermal_eigenstrain
[]
[OPyC_elasticity_tensor]
type = PyCElasticityTensor
block = OPyC
temperature = temperature
initial_BAF = 1.0
[]
[OPyC_stress]
type = PyCCEGACreep
block = OPyC
creep_rate_scale_factor = 1
temperature = temperature
[]
[OPyC_thermal_conductivity]
type = HeatConductionMaterial
block = OPyC
thermal_conductivity = 4.0
specific_heat = 720.0
[]
[OPyC_density]
type = GenericConstantMaterial
block = OPyC
prop_names = 'density'
prop_values = 1900
[]
[OPyC_IIDC]
type = PyCCEGAIrradiationEigenstrain
block = OPyC
eigenstrain_name = OPyC_IIDC_strain
temperature = temperature
irradiation_eigenstrain_scale_factor = 1
[]
[OPyC_TE]
type = PyCThermalExpansionEigenstrain
block = OPyC
eigenstrain_name = OPyC_TE_strain
temperature = temperature
[]
[characteristic_strength_SiC]
type = GenericConstantMaterial
prop_values = '9640000'
block = SiC
prop_names = 'characteristic_strength'
[]
[characteristic_strength_PyC]
type = PyCCharacteristicStrength
temperature = temperature
X = 1.02
block = 'IPyC OPyC'
[]
[]
[Dampers]
[temp]
type = MaxIncrement
variable = temperature
max_increment = 100
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
nl_rel_tol = 5e-6
nl_abs_tol = 1e-8
nl_max_its = 20
l_tol = 1e-4
l_max_its = 50
start_time = 0.0
num_steps = 10
dtmin = 1e-4
dt = 1e4
[]
[Postprocessors]
[ave_gas_temp]
type = ElementAverageValue
block = buffer
variable = temperature
execute_on = 'initial timestep_end'
[]
[fis_gas_released]
type = ElementIntegralMaterialProperty
mat_prop = fis_gas_released
block = fuel
use_displaced_mesh = false
execute_on = 'initial timestep_end'
[]
[gap_volume]
type = InternalVolume
boundary = buffer_IPyC_boundary
execute_on = 'initial linear'
use_displaced_mesh = true
[]
[buffer_void_volume]
type = VoidVolume
block = buffer
theoretical_density = 2250
execute_on = 'initial timestep_end'
use_displaced_mesh = true
[]
[kernel_th_density]
type = UCOTheoreticalDensity
execute_on = initial
[]
[kernel_void_volume]
type = VoidVolume
block = fuel
theoretical_density = kernel_th_density
execute_on = 'initial timestep_end'
use_displaced_mesh = true
[]
[particle_power]
type = ElementIntegralPower
variable = temperature
use_material_fission_rate = true
fission_rate_material = fission_rate
block = fuel
execute_on = 'initial timestep_end'
[]
[max_fluence]
type = ElementExtremeValue
variable = fast_neutron_fluence
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[max_burnup]
type = ElementExtremeValue
variable = burnup
block = fuel
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[SiC_stress_max]
type = ElementExtremeMaterialProperty
block = SiC
value_type = max
mat_prop = stress_yy
[]
[SiC_stress_min]
type = ElementExtremeMaterialProperty
block = SiC
value_type = min
mat_prop = stress_yy
[]
[strength_SiC]
type = WeibullEffectiveMeanStrength
block = SiC
weibull_modulus = 6
[]
[kernel_migration_distance]
type = KernelMigrationDistance
block = 'fuel buffer IPyC SiC OPyC'
variable = temperature
temperature_gradient = 15000
kernel_type = UO2
[]
[failure_indicator_kernel_migration]
type = KernelMigrationFailureIndicator
kernel_migration_distance = kernel_migration_distance
triso_geometry = particle_geometry
[]
[failure_indicator_SiC]
type = WeibullFailureOutputUsingCorrelation
block = SiC
weibull_modulus = 6
stress_name = max_principal_stress
effective_mean_strength = strength_SiC
[]
[strength_IPyC]
type = WeibullEffectiveMeanStrength
block = IPyC
weibull_modulus = 6
[]
[failure_indicator_IPyC]
type = WeibullFailureOutputUsingCorrelation
block = IPyC
weibull_modulus = 6
stress_name = max_principal_stress
effective_mean_strength = strength_IPyC
[]
[strength_OPyC]
type = WeibullEffectiveMeanStrength
block = OPyC
weibull_modulus = 6
[]
[failure_indicator_OPyC]
type = WeibullFailureOutputUsingCorrelation
block = OPyC
weibull_modulus = 6
stress_name = max_principal_stress
effective_mean_strength = strength_OPyC
[]
[pd_penetration]
type = PdPenetration
boundary = SiC_inner_boundary
variable = temperature
execute_on = 'initial timestep_end'
[]
[failure_indicator_pd_penetration]
type = PdPenetrationFailureIndicator
triso_geometry = particle_geometry
pd_penetration = pd_penetration
[]
[failure_indicator_SiC_crackedIPyC]
type = WeibullFailureOutputUsingCorrelation
block = SiC
weibull_modulus = 6
stress_name = max_principal_stress
high_fidelity_analysis_strength = 'high_fidelity_strength_crackedIPyC'
stress_correlation_function = 'stress_correlation_crackedIPyC'
[]
[failure_indicator_SiC_crackedOPyC]
type = WeibullFailureOutputUsingCorrelation
block = SiC
weibull_modulus = 6
stress_name = max_principal_stress
high_fidelity_analysis_strength = 'high_fidelity_strength_crackedIPyC'
stress_correlation_function = 'stress_correlation_crackedOPyC'
[]
[triso_failure]
type = TRISOFailureEvaluation
IPyC_failure = failure_indicator_IPyC
OPyC_failure = failure_indicator_OPyC
SiC_failure = failure_indicator_SiC
SiC_failure_crackedIPyC = failure_indicator_SiC_crackedIPyC
SiC_failure_crackedOPyC = failure_indicator_SiC_crackedOPyC
SiC_failure_pd_penetration = failure_indicator_pd_penetration
SiC_failure_kernel_migration = failure_indicator_kernel_migration
[]
[]
[Outputs]
show = 'kernel_migration_distance failure_indicator_kernel_migration triso_failure '
print_linear_residuals = false
time_step_interval = 1
csv = true
perf_graph = true
[]
(examples/TRISO/pebble/triso_1d.i)
kernel_radius = 213.35e-6
buffer_thickness = 98.9e-6
IPyC_thickness = 40.4e-6
SiC_thickness = 35.2e-6
OPyC_thickness = 43.4e-6
coordinates1 = '${fparse kernel_radius}'
coordinates2 = '${fparse coordinates1+buffer_thickness}'
coordinates3 = '${fparse coordinates2+IPyC_thickness}'
coordinates4 = '${fparse coordinates3+SiC_thickness}'
coordinates5 = '${fparse coordinates4+OPyC_thickness}'
[GlobalParams]
order = SECOND
family = LAGRANGE
initial_enrichment = 0.14029 # [wt-]
energy_per_fission = 3.204e-11 # [J/fission]
O_U = 1.428 # Initial Oxygen to Uranium atom ratio
C_U = 0.392 # Initial Carbon to Uranium atom ratio
[]
[Mesh]
coord_type = RSPHERICAL
[mesh]
type = TRISO1DMeshGenerator
elem_type = EDGE3
coordinates = '0 ${coordinates1} ${coordinates2} ${coordinates3} ${coordinates4} ${coordinates5}'
mesh_density = '18 14 12 16 16'
block_names = 'fuel buffer IPyC SiC OPyC'
[]
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[UserObjects]
[particle_geometry]
type = TRISOGeometry
outer_OPyC = OPyC_outer_boundary
outer_SiC = SiC_outer_boundary
outer_IPyC = IPyC_outer_boundary
inner_IPyC = IPyC_inner_boundary
outer_buffer = buffer_outer_boundary
outer_kernel = fuel_outer_boundary
include_particle = true
include_pebble = false
[]
[]
[Variables]
[temperature]
initial_condition = 773.15
[]
[conc_Cs]
initial_condition = 0.0
scaling = 1e18
[]
[]
[AuxVariables]
[fission_rate]
order = CONSTANT
family = MONOMIAL
[]
[burnup]
order = CONSTANT
family = MONOMIAL
[]
[fast_neutron_flux]
order = CONSTANT
family = MONOMIAL
[]
[fast_neutron_fluence]
order = CONSTANT
family = MONOMIAL
[]
[fis_gas_produced]
order = CONSTANT
family = MONOMIAL
[]
[fis_gas_released]
order = CONSTANT
family = MONOMIAL
[]
[Cs_diff_coef]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[power_history]
type = PiecewiseLinear
x = '0 1e3 4.51008e7' #change time (s) for desired EFPD
y = '0 1 1'
[]
[fission_rate]
type = LinearCombinationFunction
functions = power_history
w = 2.927e18
[]
[temp_bc_func]
type = ParsedFunction
value = temp_bc
symbol_names = temp_bc
symbol_values = temp_bc
[]
[]
[Kernels]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temperature
extra_vector_tags = 'ref'
[]
[heat]
type = HeatConduction
variable = temperature
extra_vector_tags = 'ref'
[]
[heat_source]
type = NeutronHeatSource
variable = temperature
block = fuel
fission_rate = fission_rate
extra_vector_tags = 'ref'
[]
[mass_Cs_dt]
type = TimeDerivative
variable = conc_Cs
[]
[mass_Cs]
type = ArrheniusDiffusion
variable = conc_Cs
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
extra_vector_tags = 'ref'
[]
[mass_source_Cs]
type = SpeciesSourceRate
variable = conc_Cs
property_name = Cs_generation
block = fuel
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[fissionrate]
type = MaterialRealAux
variable = fission_rate
property = fission_rate
block = fuel
execute_on = timestep_begin
[]
[burnup]
type = MaterialRealAux
variable = burnup
property = burnup
block = fuel
execute_on = timestep_begin
[]
[fast_neutron_flux]
type = MaterialRealAux
variable = fast_neutron_flux
property = fast_neutron_flux
execute_on = timestep_begin
[]
[fast_neutron_fluence]
type = MaterialRealAux
variable = fast_neutron_fluence
property = fast_neutron_fluence
execute_on = timestep_begin
[]
[Cs_diff_coef]
type = MaterialRealAux
variable = Cs_diff_coef
property = arrhenius_diffusion_coef_Cs
execute_on = timestep_end
[]
[]
[BCs]
[freesurf_temp]
type = FunctionDirichletBC
variable = temperature
function = temp_bc_func
boundary = exterior
[]
[freesurf_conc_Cs]
type = DirichletBC
variable = conc_Cs
boundary = exterior
value = 0.0
[]
[]
[Materials]
[fission_rate]
type = GenericFunctionMaterial
prop_names = fission_rate
prop_values = fission_rate
[]
[fast_neutron_flux]
type = FastNeutronFlux
calculate_fluence = true
flux_function = power_history
factor = 1.109e18
[]
[UCO_burnup]
type = TRISOBurnup
initial_density = 10966.0
[]
[UCO_thermal]
type = UCOThermal
block = fuel
temperature = temperature
[]
[UCO_density]
type = StrainAdjustedDensity
block = fuel
strain_free_density = 10966.0
[]
[fission_gas_release]
type = UCOFGR
block = fuel
average_grain_radius = 10e-6
temperature = temperature
triso_geometry = particle_geometry
[]
# Arrhenius diffusion coefficients for kernel, PyC, and SiC
# come from IAEA TECDOC-978, French parameters.
[fuel_conc_Cs]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 5.6e-8 # m^2/s
q1 = 209e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[mass_source_Cs_property]
type = SpeciesSourceMaterial
property_name = Cs_generation
kind = Cs
block = fuel
[]
### Buffer Properties
[buffer_thermal]
type = BufferThermal
block = buffer
initial_density = 1050.0
[]
[Buffer_density]
type = StrainAdjustedDensity
block = buffer
strain_free_density = 1050.0
[]
[buffer_conc_Cs]
type = ArrheniusDiffusionCoef
block = buffer
d1 = 1e-8 # m^2/s
q1 = 0.0
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
### IPyC properties
[IPyC_thermal]
type = HeatConductionMaterial
block = IPyC
thermal_conductivity = 4.0
specific_heat = 720.0
[]
[IPyC_density]
type = StrainAdjustedDensity
block = IPyC
strain_free_density = 1907.0
[]
[IPyC_conc_Cs]
type = ArrheniusDiffusionCoef
block = IPyC
d1 = 6.3e-8 # m^2/s
q1 = 222e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
### SiC properties
[SiC_thermal]
type = MonolithicSiCThermal
block = SiC
temperature = temperature
thermal_conductivity_model = miller
[]
[SiC_density]
type = StrainAdjustedDensity
block = SiC
strain_free_density = 3200.0
[]
[SiC_conc_Cs]
type = ArrheniusDiffusionCoef
block = SiC
d1 = 5.5e-14 # m^2/s
q1 = 125e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
### OPyC properties
[OPyC_thermal_conductivity]
type = HeatConductionMaterial
block = OPyC
thermal_conductivity = 4.0
specific_heat = 720.0
[]
[OPyC_density]
type = StrainAdjustedDensity
block = OPyC
strain_free_density = 1907.0
[]
[OPyC_conc_Cs]
type = ArrheniusDiffusionCoef
block = OPyC
d1 = 6.3e-8 # m^2/s
q1 = 222e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
line_search = 'none'
nl_rel_tol = 1e-8
nl_abs_tol = 1e-6
nl_max_its = 20
l_tol = 1e-4
l_max_its = 50
dt = 500000
num_steps = 10
[]
[Postprocessors]
[temp_bc]
type = Receiver
[]
[release_heat_inc]
type = SideIntegralMassFlux
variable = temperature
boundary = exterior
arrhenius_prpty_name = thermal_conductivity
execute_on = 'initial timestep_end'
[]
[release_Cs_inc]
type = SideIntegralMassFlux
variable = conc_Cs
boundary = exterior
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
execute_on = 'initial timestep_end'
[]
[released_Cs]
type = TimeIntegratedPostprocessor
value = release_Cs_inc
execute_on = 'initial timestep_end'
[]
[total_Cs]
type = ElementIntegralMaterialProperty
mat_prop = Cs_generation_total
block = fuel
execute_on = 'initial timestep_end'
[]
[x_Cs_released]
type = FractionalRelease
released = released_Cs
total = total_Cs
[]
[retained_Cs]
type = ElementIntegralVariablePostprocessor
variable = conc_Cs
[]
[fis_gas_produced]
type = ElementIntegralMaterialProperty
mat_prop = fis_gas_produced
block = fuel
execute_on = 'initial timestep_end'
[]
[fis_gas_released]
type = ElementIntegralMaterialProperty
mat_prop = fis_gas_released
block = fuel
execute_on = 'initial timestep_end'
[]
### Postprocessors for CO production
[total_fission_rate]
type = ElementIntegralPower
variable = temperature
fission_rate = fission_rate
block = fuel
energy_per_fission = 1.0
execute_on = 'initial timestep_end'
[]
[total_fissions]
type = TimeIntegratedPostprocessor
value = total_fission_rate
execute_on = 'initial timestep_end'
[]
##### irradiation conditions
[particle_power]
type = ElementIntegralPower
variable = temperature
use_material_fission_rate = true
fission_rate_material = fission_rate
block = fuel
execute_on = 'initial timestep_end'
[]
[max_fluence]
type = ElementExtremeValue
variable = fast_neutron_fluence
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[max_burnup]
type = ElementExtremeValue
variable = burnup
block = fuel
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[aver_temp_exterior]
type = SideAverageValue
variable = temperature
boundary = exterior
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
print_linear_converged_reason = false
print_nonlinear_converged_reason = false
[]
(test/tests/monolithicSiCThermal/thermal_miller.i)
# The mesh is a 1x1x1 cube (single element).
# The temperature is ramped on all faces of the cube from 300 K to 1800 K
# over 15 s.
#
# Thermal conductivity and specific heat capacity are computed using the
# correlations from:
#
# G. K. Miller, D. A. Petti, J. T. Maki, D. L. Knudson, and
# W. F. Skerjanc, "PARFUME Theory and Model Basis Report",
# Report INL/EXT-08-14497 Rev. 1, Idaho National Laboratory, September 2018
#
# The correlation for specific heat is identical to the that used in the Snead
# and stone models and are tested elsewhere. Here the thermal conductivity
# computed by BISON for the temperatures shown below are compared with analytical solutions.
# The results are as follows:
#
# SiC k SiC k
# Temp(K) BISON(W/m-K) analytical(W/m-K)
# 300 61.6167 61.6167
# 600 31.8083 31.8083
# 900 21.8722 21.8722
# 1200 16.9042 16.9042
# 1500 13.9233 13.9233
# 1800 11.9361 11.9361
#
[Mesh]
[generated_mesh]
type = GeneratedMeshGenerator
dim = 3
[]
[]
[Variables]
[temperature]
order = FIRST
family = LAGRANGE
initial_condition = 300.0
[]
[]
[AuxVariables]
[thermal_conductivity]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temperature
[]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temperature
[]
[]
[AuxKernels]
[thermal_conductivity]
type = MaterialRealAux
variable = thermal_conductivity
property = thermal_conductivity
block = 0
execute_on = 'initial linear'
[]
[]
[Functions]
[temp_ramp]
type = PiecewiseLinear
x = '0.0 15.0'
y = '300 1800'
[]
[]
[BCs]
[temperature_all]
type = FunctionDirichletBC
boundary = 'left right front back bottom top'
variable = temperature
function = temp_ramp
[]
[]
[Materials]
[thermal]
type = MonolithicSiCThermal
temperature = temperature
thermal_conductivity_model = MILLER
[]
[density]
type = ParsedMaterial
block = 0
property_name = density
expression = 3210.0
[]
[]
[Executioner]
type = Transient
solve_type = PJFNK
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package -ksp_gmres_restart'
petsc_options_value = 'lu superlu_dist 51'
line_search = 'none'
nl_rel_tol = 1e-10
nl_abs_tol = 1e-10
l_tol = 1e-5
start_time = 0.0
num_steps = 15
dt = 1.0
[]
[Postprocessors]
[avg_temperature]
type = SideAverageValue
boundary = 'left right top bottom front back'
execute_on = 'initial timestep_end'
variable = temperature
[]
[avg_th_cond]
type = ElementAverageValue
block = 0
variable = thermal_conductivity
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
csv = true
[]
(examples/TRISO/failure_probability_monte_carlo/triso_1d_constant.i)
initial_fuel_density = 5
[GlobalParams]
order = FIRST
family = LAGRANGE
displacements = 'disp_x'
initial_enrichment = 0.14029 # [wt-]
flux_conversion_factor = 1.0 # convert E>0.10 to E>0.18 MeV
stress_free_temperature = 481 # used for thermal expansion
energy_per_fission = 3.204e-11 # [J/fission]
O_U = 1.428 # Initial Oxygen to Uranium atom ratio
C_U = 0.392 # Initial Carbon to Uranium atom ratio
[]
[Mesh]
coord_type = RSPHERICAL
[gen]
type = TRISO1DFiveLayerMeshGenerator
elem_type = EDGE3
kernel_radius = 213.35e-6
buffer_thickness = 98.9e-6
IPyC_thickness = 40.4e-6
SiC_thickness = 35.2e-6
OPyC_thickness = 43.4e-6
kernel_mesh_density = ${initial_fuel_density}
buffer_mesh_density = 3
IPyC_mesh_density = 5
SiC_mesh_density = 3
OPyC_mesh_density = 4
[]
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[UserObjects]
[particle_geometry]
type = TRISOGeometry
outer_OPyC = OPyC_outer_boundary
outer_SiC = SiC_outer_boundary
outer_IPyC = IPyC_outer_boundary
inner_IPyC = IPyC_inner_boundary
outer_buffer = buffer_outer_boundary
outer_kernel = fuel_outer_boundary
include_particle = true
include_pebble = false
IPyC_thickness_mean = 40.4e-6
SiC_thickness_mean = 35.2e-6
OPyC_thickness_mean = 43.4e-6
execute_on = 'INITIAL TIMESTEP_END'
[]
[sic_failure_terminator]
type = Terminator
expression = 'sic_failure_overall > 0'
[]
[]
[Variables]
[temperature]
initial_condition = 481
[]
[]
[AuxVariables]
[fission_rate]
order = CONSTANT
family = MONOMIAL
[]
[burnup]
order = CONSTANT
family = MONOMIAL
[]
[fast_neutron_flux]
order = CONSTANT
family = MONOMIAL
[]
[fast_neutron_fluence]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[temp_bc]
type = PiecewiseLinear
data_file = outer_temp.csv
x_index_in_file = 0
y_index_in_file = 1
format = columns
[]
[fission_rate]
type = ConstantFunction
value = 5.75e19
[]
[high_fidelity_strength_crackedIPyC]
type = ConstantFunction
value = '1403604095.5707'
[]
[stress_correlation_crackedIPyC]
type = TRISOStressCorrelationFunction
triso_geometry = particle_geometry
polynomial_coefficients_IPyC = '1 0 0'
polynomial_coefficients_SiC = '1 0 0'
polynomial_coefficients_OPyC = '1 0 0'
correlation_factor = -1.2447543103484047
[]
[high_fidelity_strength_debonding]
type = ConstantFunction
value = '1705800293.3578'
[]
[stress_correlation_debonding]
type = TRISOStressCorrelationFunction
triso_geometry = particle_geometry
polynomial_coefficients_IPyC = '1 0 0'
polynomial_coefficients_SiC = '1 0 0'
polynomial_coefficients_OPyC = '1 0 0'
correlation_factor = -0.14916368684964607
[]
[high_fidelity_strength_asphericity]
type = ConstantFunction
value = '1371700766.8875'
[]
[stress_correlation_asphericity]
type = TRISOStressCorrelationFunction
triso_geometry = particle_geometry
polynomial_coefficients_IPyC = '1 0 0'
polynomial_coefficients_SiC = '1 0 0'
polynomial_coefficients_OPyC = '1 0 0'
correlation_factor = 1.5191967987843993
[]
[stress_change_correlation_asphericity]
type = TRISOStressCorrelationFunction
triso_geometry = particle_geometry
polynomial_coefficients_IPyC = '1 0 0'
polynomial_coefficients_SiC = '1 0 0'
polynomial_coefficients_OPyC = '1 0 0'
correlation_factor = 1.391516859626456
[]
[sic_crackedipyc_stress_strength]
type = ParsedFunction
expression = 'a-b'
symbol_names = 'a b'
symbol_values = 'stress_SiC_crackedIPyC actual_strength_SiC_crackedIPyC'
[]
[]
[Physics/SolidMechanics/QuasiStatic]
generate_output = 'stress_xx stress_yy stress_zz strain_xx strain_yy strain_zz max_principal_stress'
add_variables = true
strain = FINITE
incremental = true
[fuel]
block = fuel
eigenstrain_names = 'UCO_swelling_eigenstrain UCO_TE_strain'
extra_vector_tags = 'ref'
[]
[buffer]
block = buffer
eigenstrain_names = 'Buffer_IIDC_strain Buffer_TE_strain'
extra_vector_tags = 'ref'
[]
[IPyC]
block = IPyC
eigenstrain_names = 'IPyC_IIDC_strain IPyC_TE_strain'
extra_vector_tags = 'ref'
[]
[SiC]
block = SiC
eigenstrain_names = 'SiC_thermal_eigenstrain'
extra_vector_tags = 'ref'
[]
[OPyC]
block = OPyC
eigenstrain_names = 'OPyC_IIDC_strain OPyC_TE_strain'
extra_vector_tags = 'ref'
[]
[]
[Kernels]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temperature
extra_vector_tags = 'ref'
[]
[heat]
type = HeatConduction
variable = temperature
extra_vector_tags = 'ref'
[]
[heat_source]
type = NeutronHeatSource
variable = temperature
block = fuel
fission_rate = fission_rate
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[fissionrate]
type = MaterialRealAux
variable = fission_rate
property = fission_rate
block = fuel
execute_on = timestep_begin
[]
[burnup]
type = MaterialRealAux
variable = burnup
property = burnup
block = fuel
execute_on = timestep_begin
[]
[fast_neutron_flux]
type = MaterialRealAux
variable = fast_neutron_flux
property = fast_neutron_flux
execute_on = timestep_begin
[]
[fast_neutron_fluence]
type = MaterialRealAux
variable = fast_neutron_fluence
property = fast_neutron_fluence
execute_on = timestep_begin
[]
[]
[ThermalContact]
[thermal_contact]
type = GasGapHeatTransfer
variable = temperature
primary = IPyC_inner_boundary
secondary = buffer_outer_boundary
initial_moles = initial_moles
gas_released = 'fis_gas_released'
released_gas_types = 'Kr Xe'
released_fractions = '0.185 0.815'
tangential_tolerance = 1e-6
quadrature = false
min_gap = 1e-7
max_gap = 50e-6
gap_geometry_type = sphere
[]
[]
[BCs]
[no_disp_x]
type = DirichletBC
variable = disp_x
boundary = xzero
value = 0.0
[]
[freesurf_temp]
type = FunctionDirichletBC
variable = temperature
function = temp_bc
boundary = exterior
[]
[exterior_pressure_x]
type = Pressure
variable = disp_x
boundary = exterior
factor = 0.1e6
[]
[PlenumPressure]
[plenumPressure]
boundary = buffer_IPyC_boundary
startup_time = 1e4
initial_pressure = 0
R = 8.3145
output_initial_moles = initial_moles
temperature = ave_gas_temp
volume = 'gap_volume buffer_void_volume kernel_void_volume'
material_input = 'fis_gas_released'
output = gas_pressure
[]
[]
[]
[Materials]
[radial_stress]
type = RankTwoCylindricalComponent
rank_two_tensor = stress
cylindrical_axis_point1 = '0 0 0'
cylindrical_axis_point2 = '0 0 1'
cylindrical_component = RadialStress
property_name = radial_stress
outputs = all
[]
[fission_rate]
type = GenericFunctionMaterial
prop_names = fission_rate
prop_values = fission_rate
block = fuel
[]
[fast_neutron_flux]
type = FastNeutronFlux
calculate_fluence = true
factor = 6.2425e+17
[]
[UCO_burnup]
type = TRISOBurnup
initial_density = 10966
block = fuel
[]
[UCO_thermal]
type = UCOThermal
block = fuel
temperature = temperature
[]
[UCO_elasticity_tensor]
type = UCOElasticityTensor
block = fuel
temperature = temperature
[]
[UCO_stress]
type = ComputeFiniteStrainElasticStress
block = fuel
[]
[UCO_VolumetricSwellingEigenstrain]
type = UCOVolumetricSwellingEigenstrain
block = fuel
eigenstrain_name = UCO_swelling_eigenstrain
[]
[fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = fuel
thermal_expansion_coeff = 10.0e-6
temperature = temperature
eigenstrain_name = UCO_TE_strain
[]
[UCO_density]
type = StrainAdjustedDensity
block = fuel
strain_free_density = 10966
[]
[fission_gas_release]
type = UCOFGR
block = fuel
average_grain_radius = 10e-6
temperature = temperature
triso_geometry = particle_geometry
cutoff_neutron_flux = 0.0
[]
[normal_vectors_triso]
type = NormalVectorsTRISO
block = 'buffer IPyC OPyC'
[]
[BAF_IPyC]
type = BaconAnisotropyFactor
initial_BAF = 1.0465
block = IPyC
[]
[BAF_OPyC]
type = BaconAnisotropyFactor
initial_BAF = 1.0429
block = OPyC
[]
[buffer_elasticity_tensor]
type = BufferElasticityTensor
block = buffer
temperature = temperature
[]
[buffer_stress]
type = BufferCEGACreep
block = buffer
temperature = temperature
[]
[buffer_thermal]
type = BufferThermal
block = buffer
initial_density = 1050.0
[]
[buffer_density]
type = StrainAdjustedDensity
block = buffer
strain_free_density = 1050.0
[]
[buffer_TE]
type = BufferThermalExpansionEigenstrain
block = buffer
eigenstrain_name = Buffer_TE_strain
temperature = temperature
[]
[buffer_IIDC]
type = BufferCEGAIrradiationEigenstrain
block = buffer
eigenstrain_name = Buffer_IIDC_strain
temperature = temperature
[]
[IPyC_elasticity_tensor]
type = PyCElasticityTensor
block = IPyC
temperature = temperature
[]
[IPyC_stress]
type = PyCCEGACreep
block = IPyC
creep_rate_scale_factor = 1
temperature = temperature
[]
[IPyC_thermal]
type = HeatConductionMaterial
block = IPyC
thermal_conductivity = 4.0
specific_heat = 720.0
[]
[IPyC_density]
type = GenericConstantMaterial
block = IPyC
prop_names = 'density'
prop_values = 1890
[]
[IPyC_IIDC]
type = PyCCEGAIrradiationEigenstrain
block = IPyC
eigenstrain_name = IPyC_IIDC_strain
temperature = temperature
irradiation_eigenstrain_scale_factor = 1
[]
[IPyC_TE]
type = PyCThermalExpansionEigenstrain
block = IPyC
eigenstrain_name = IPyC_TE_strain
temperature = temperature
[]
[SiC_elasticity_tensor]
type = MonolithicSiCElasticityTensor
block = SiC
temperature = temperature
elastic_modulus_model = miller
[]
[SiC_stress]
type = ComputeFiniteStrainElasticStress
block = SiC
[]
[SiC_thermal]
type = MonolithicSiCThermal
block = SiC
temperature = temperature
thermal_conductivity_model = miller
[]
[SiC_density]
type = StrainAdjustedDensity
block = SiC
strain_free_density = 3200.0
[]
[SiC_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = SiC
thermal_expansion_coeff = 4.9e-6
temperature = temperature
eigenstrain_name = SiC_thermal_eigenstrain
[]
[OPyC_elasticity_tensor]
type = PyCElasticityTensor
block = OPyC
temperature = temperature
initial_BAF = 1.0
[]
[OPyC_stress]
type = PyCCEGACreep
block = OPyC
creep_rate_scale_factor = 1
temperature = temperature
[]
[OPyC_thermal_conductivity]
type = HeatConductionMaterial
block = OPyC
thermal_conductivity = 4.0
specific_heat = 720.0
[]
[OPyC_density]
type = GenericConstantMaterial
block = OPyC
prop_names = 'density'
prop_values = 1900
[]
[OPyC_IIDC]
type = PyCCEGAIrradiationEigenstrain
block = OPyC
eigenstrain_name = OPyC_IIDC_strain
temperature = temperature
irradiation_eigenstrain_scale_factor = 1
[]
[OPyC_TE]
type = PyCThermalExpansionEigenstrain
block = OPyC
eigenstrain_name = OPyC_TE_strain
temperature = temperature
[]
[characteristic_strength_SiC]
type = GenericConstantMaterial
prop_values = '9640000'
block = SiC
prop_names = 'characteristic_strength'
[]
[characteristic_strength_PyC]
type = PyCCharacteristicStrength
temperature = temperature
X = 1.02
block = 'IPyC OPyC'
[]
[]
[Dampers]
[temp]
type = MaxIncrement
variable = temperature
max_increment = 100
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
nl_rel_tol = 5e-6
nl_abs_tol = 1e-8
nl_max_its = 20
l_tol = 1e-4
l_max_its = 50
start_time = 0.0
end_time = 4.831315e7
dtmin = 1e-4
dt = 5e5
[]
[Postprocessors]
[ave_gas_temp]
type = ElementAverageValue
block = buffer
variable = temperature
execute_on = 'initial timestep_end'
[]
[fis_gas_released]
type = ElementIntegralMaterialProperty
mat_prop = fis_gas_released
block = fuel
use_displaced_mesh = false
execute_on = 'initial timestep_end'
[]
[gap_volume]
type = InternalVolume
boundary = buffer_IPyC_boundary
execute_on = 'initial linear'
use_displaced_mesh = true
[]
[buffer_void_volume]
type = VoidVolume
block = buffer
theoretical_density = 2250
execute_on = 'initial timestep_end'
use_displaced_mesh = true
[]
[kernel_th_density]
type = UCOTheoreticalDensity
execute_on = initial
[]
[kernel_void_volume]
type = VoidVolume
block = fuel
theoretical_density = kernel_th_density
execute_on = 'initial timestep_end'
use_displaced_mesh = true
[]
[particle_power]
type = ElementIntegralPower
variable = temperature
use_material_fission_rate = true
fission_rate_material = fission_rate
block = fuel
execute_on = 'initial timestep_end'
[]
[max_fluence]
type = ElementExtremeValue
variable = fast_neutron_fluence
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[max_burnup]
type = ElementExtremeValue
variable = burnup
block = fuel
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[SiC_stress]
type = ElementExtremeMaterialProperty
block = SiC
value_type = min
mat_prop = stress_yy
[]
[strength_SiC]
type = WeibullEffectiveMeanStrength
block = SiC
weibull_modulus = 6
[]
[failure_indicator_SiC]
type = WeibullFailureOutputUsingCorrelation
block = SiC
weibull_modulus = 6
stress_name = stress_yy
high_fidelity_analysis_strength = 'high_fidelity_strength_asphericity'
stress_correlation_function = 'stress_correlation_asphericity'
stress_change_correlation_function = 'stress_change_correlation_asphericity'
[]
[strength_IPyC]
type = WeibullEffectiveMeanStrength
block = IPyC
weibull_modulus = 9.5
[]
[failure_indicator_IPyC]
type = WeibullFailureOutputUsingCorrelation
block = IPyC
weibull_modulus = 9.5
stress_name = max_principal_stress
effective_mean_strength = strength_IPyC
[]
[failure_indicator_SiC_crackedIPyC]
type = WeibullFailureOutputUsingCorrelation
block = SiC
weibull_modulus = 6
stress_name = stress_yy
high_fidelity_analysis_strength = 'high_fidelity_strength_crackedIPyC'
stress_correlation_function = 'stress_correlation_crackedIPyC'
[]
[failure_indicator_debonding]
type = TRISODebondingFailureIndicator
boundary = IPyC_outer_boundary
bond_strength = 10e6
stress_name = radial_stress
[]
[failure_indicator_SiC_debonding]
type = WeibullFailureOutputUsingCorrelation
block = SiC
weibull_modulus = 6
stress_name = stress_yy
high_fidelity_analysis_strength = 'high_fidelity_strength_debonding'
stress_correlation_function = 'stress_correlation_debonding'
[]
[sic_failure_overall]
type = TRISOFailureEvaluation
IPyC_failure = failure_indicator_IPyC
SiC_failure_crackedIPyC = failure_indicator_SiC_crackedIPyC
SiC_failure = failure_indicator_SiC
SiC_failure_pd_penetration = failure_indicator_pd_penetration
SiC_failure_kernel_migration = failure_indicator_kernel_migration
failure_type = SIC_FAILURE_OVERALL
[]
[ipyc_cracking]
type = TRISOFailureEvaluation
IPyC_failure = failure_indicator_IPyC
SiC_failure_crackedIPyC = failure_indicator_SiC_crackedIPyC
SiC_failure = failure_indicator_SiC
failure_type = IPYC_CRACKING
[]
[sic_failure_due_to_pressure]
type = TRISOFailureEvaluation
IPyC_failure = failure_indicator_IPyC
SiC_failure_crackedIPyC = failure_indicator_SiC_crackedIPyC
SiC_failure = failure_indicator_SiC
failure_type = SIC_FAILURE_DUE_TO_PRESSURE
[]
[sic_failure_due_to_ipyc_cracking]
type = TRISOFailureEvaluation
IPyC_failure = failure_indicator_IPyC
SiC_failure_crackedIPyC = failure_indicator_SiC_crackedIPyC
SiC_failure = failure_indicator_SiC
failure_type = SIC_FAILURE_DUE_TO_IPYC_CRACKING
[]
[stress_SiC_crackedIPyC]
type = WeibullFailureOutputUsingCorrelation
block = SiC
weibull_modulus = 6
stress_name = stress_yy
high_fidelity_analysis_strength = 'high_fidelity_strength_crackedIPyC'
stress_correlation_function = 'stress_correlation_crackedIPyC'
output_type = 'stress'
[]
[actual_strength_SiC_crackedIPyC]
type = WeibullFailureOutputUsingCorrelation
block = SiC
weibull_modulus = 6
stress_name = stress_yy
high_fidelity_analysis_strength = 'high_fidelity_strength_crackedIPyC'
stress_correlation_function = 'stress_correlation_crackedIPyC'
output_type = 'strength'
[]
[SiC_crackedIPyC_stressminusstrength]
type = FunctionValuePostprocessor
function = 'sic_crackedipyc_stress_strength'
[]
[debonding]
type = TRISOFailureEvaluation
IPyC_failure = failure_indicator_IPyC
SiC_failure_crackedIPyC = failure_indicator_SiC_crackedIPyC
SiC_failure = failure_indicator_SiC
IPyC_SiC_debonding = failure_indicator_debonding
SiC_failure_debonding = failure_indicator_SiC_debonding
failure_type = IPYC_SIC_DEBONDING
[]
[fluence_at_failure]
type = TRISOFailureOccurrenceStatus
failure_evaluation = ipyc_cracking
failure_information = max_fluence
[]
[weibull_failure_probability_IPyC]
type = WeibullFailureProbability
block = IPyC
weibull_modulus = 9.5
characteristic_strength = characteristic_strength
[]
[weibull_failure_probability_SiC]
type = WeibullFailureProbability
block = SiC
weibull_modulus = 6
characteristic_strength = characteristic_strength
[]
[pd_penetration]
type = PdPenetration
boundary = SiC_inner_boundary
variable = temperature
execute_on = 'initial timestep_end'
[]
[failure_indicator_pd_penetration]
type = PdPenetrationFailureIndicator
triso_geometry = particle_geometry
pd_penetration = pd_penetration
[]
[kernel_migration_distance]
type = KernelMigrationDistance
block = 'fuel buffer IPyC SiC OPyC'
variable = temperature
temperature_gradient = 15000
kernel_type = UCO
[]
[failure_indicator_kernel_migration]
type = KernelMigrationFailureIndicator
kernel_migration_distance = kernel_migration_distance
triso_geometry = particle_geometry
[]
[]
[Outputs]
print_linear_residuals = false
time_step_interval = 1
csv = false
exodus = false
perf_graph = true
print_linear_converged_reason = false
print_nonlinear_converged_reason = false
[]
(test/tests/triso_pebble/triso_1d.i)
kernel_radius = 213.35e-6
buffer_thickness = 98.9e-6
IPyC_thickness = 40.4e-6
SiC_thickness = 35.2e-6
OPyC_thickness = 43.4e-6
coordinates1 = '${fparse kernel_radius}'
coordinates2 = '${fparse coordinates1+buffer_thickness}'
coordinates3 = '${fparse coordinates2+IPyC_thickness}'
coordinates4 = '${fparse coordinates3+SiC_thickness}'
coordinates5 = '${fparse coordinates4+OPyC_thickness}'
[GlobalParams]
order = SECOND
family = LAGRANGE
initial_enrichment = 0.14029 # [wt-]
energy_per_fission = 3.204e-11 # [J/fission]
O_U = 1.428 # Initial Oxygen to Uranium atom ratio
C_U = 0.392 # Initial Carbon to Uranium atom ratio
[]
[Mesh]
coord_type = RSPHERICAL
[mesh]
type = TRISO1DMeshGenerator
elem_type = EDGE3
coordinates = '0 ${coordinates1} ${coordinates2} ${coordinates3} ${coordinates4} ${coordinates5}'
mesh_density = '18 14 12 16 16'
block_names = 'fuel buffer IPyC SiC OPyC'
[]
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[UserObjects]
[particle_geometry]
type = TRISOGeometry
outer_OPyC = OPyC_outer_boundary
outer_SiC = SiC_outer_boundary
outer_IPyC = IPyC_outer_boundary
inner_IPyC = IPyC_inner_boundary
outer_buffer = buffer_outer_boundary
outer_kernel = fuel_outer_boundary
include_particle = true
include_pebble = false
[]
[]
[Variables]
[temperature]
initial_condition = 773.15
[]
[conc_Ag]
initial_condition = 0.0
scaling = 1e14
[]
[conc_Cs]
initial_condition = 0.0
scaling = 1e14
[]
[conc_Sr]
initial_condition = 0.0
scaling = 1e14
[]
[]
[AuxVariables]
[fission_rate]
order = CONSTANT
family = MONOMIAL
[]
[burnup]
order = CONSTANT
family = MONOMIAL
[]
[fast_neutron_flux]
order = CONSTANT
family = MONOMIAL
[]
[fast_neutron_fluence]
order = CONSTANT
family = MONOMIAL
[]
[fis_gas_produced]
order = CONSTANT
family = MONOMIAL
[]
[fis_gas_released]
order = CONSTANT
family = MONOMIAL
[]
[Ag_diff_coef]
order = CONSTANT
family = MONOMIAL
[]
[Cs_diff_coef]
order = CONSTANT
family = MONOMIAL
[]
[Sr_diff_coef]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[power_history]
type = PiecewiseLinear
x = '0 76e6'
y = '1 1'
[]
[fission_rate]
type = LinearCombinationFunction
functions = power_history
w = 5.75e19
[]
[d1_function]
type = ParsedFunction
expression = 'exp(t/4.5e25)'
[]
[temp_bc_func]
type = ParsedFunction
expression = temp_bc
symbol_names = temp_bc
symbol_values = temp_bc
[]
[]
[Kernels]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temperature
extra_vector_tags = 'ref'
[]
[heat]
type = HeatConduction
variable = temperature
extra_vector_tags = 'ref'
[]
[heat_source]
type = NeutronHeatSource
variable = temperature
block = fuel
fission_rate = fission_rate
extra_vector_tags = 'ref'
[]
[mass_Ag_dt]
type = TimeDerivative
variable = conc_Ag
[]
[mass_Ag]
type = ArrheniusDiffusion
variable = conc_Ag
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
extra_vector_tags = 'ref'
[]
[mass_source_Ag]
type = SpeciesSourceRate
variable = conc_Ag
property_name = Ag_generation
block = fuel
extra_vector_tags = 'ref'
[]
[mass_Cs_dt]
type = TimeDerivative
variable = conc_Cs
[]
[mass_Cs]
type = ArrheniusDiffusion
variable = conc_Cs
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
extra_vector_tags = 'ref'
[]
[mass_source_Cs]
type = SpeciesSourceRate
variable = conc_Cs
property_name = Cs_generation
block = fuel
extra_vector_tags = 'ref'
[]
[mass_Sr_dt]
type = MassLumpedTimeDerivative
variable = conc_Sr
[]
[mass_Sr]
type = ArrheniusDiffusion
variable = conc_Sr
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
extra_vector_tags = 'ref'
[]
[mass_source_Sr]
type = SpeciesSourceRate
variable = conc_Sr
property_name = Sr_generation
block = fuel
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[fissionrate]
type = MaterialRealAux
variable = fission_rate
property = fission_rate
block = fuel
execute_on = timestep_begin
[]
[burnup]
type = MaterialRealAux
variable = burnup
property = burnup
block = fuel
execute_on = timestep_begin
[]
[fast_neutron_flux]
type = MaterialRealAux
variable = fast_neutron_flux
property = fast_neutron_flux
execute_on = timestep_begin
[]
[fast_neutron_fluence]
type = MaterialRealAux
variable = fast_neutron_fluence
property = fast_neutron_fluence
execute_on = timestep_begin
[]
[Ag_diff_coef]
type = MaterialRealAux
variable = Ag_diff_coef
property = arrhenius_diffusion_coef_Ag
execute_on = timestep_end
[]
[Cs_diff_coef]
type = MaterialRealAux
variable = Cs_diff_coef
property = arrhenius_diffusion_coef_Cs
execute_on = timestep_end
[]
[Sr_diff_coef]
type = MaterialRealAux
variable = Sr_diff_coef
property = arrhenius_diffusion_coef_Sr
execute_on = timestep_end
[]
[]
[BCs]
[freesurf_temp]
type = FunctionDirichletBC
variable = temperature
function = temp_bc_func
boundary = exterior
[]
[freesurf_conc_Ag]
type = DirichletBC
variable = conc_Ag
boundary = exterior
value = 0.0
[]
[freesurf_conc_Cs]
type = DirichletBC
variable = conc_Cs
boundary = exterior
value = 0.0
[]
[freesurf_conc_Sr]
type = DirichletBC
variable = conc_Sr
boundary = exterior
value = 0.0
[]
[]
[Materials]
[fission_rate]
type = GenericFunctionMaterial
prop_names = fission_rate
prop_values = fission_rate
[]
[fast_neutron_flux]
type = FastNeutronFlux
calculate_fluence = true
flux_function = power_history
factor = 6.28e17
[]
[UCO_burnup]
type = TRISOBurnup
initial_density = 10966.0
[]
[UCO_thermal]
type = UCOThermal
block = fuel
temperature = temperature
[]
[UCO_density]
type = ParsedMaterial
block = fuel
property_name = density
expression = 10966.0
[]
[fission_gas_release]
type = UCOFGR
block = fuel
average_grain_radius = 10e-6
temperature = temperature
triso_geometry = particle_geometry
cutoff_neutron_flux = 0.0
[]
# Arrhenius diffusion coefficients for kernel, PyC, and SiC
# come from IAEA TECDOC-978, French parameters.
[fuel_conc_Ag]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 6.7e-9 # m^2/s
q1 = 165e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[fuel_conc_Cs]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 5.6e-8 # m^2/s
q1 = 209e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[fuel_conc_Sr]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 2.2e-3 # m^2/s
q1 = 488e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
[]
[mass_source_Ag_property]
type = SpeciesSourceMaterial
property_name = Ag_generation
kind = Ag
block = fuel
[]
[mass_source_Cs_property]
type = SpeciesSourceMaterial
property_name = Cs_generation
kind = Cs
block = fuel
[]
[mass_source_Sr_property]
type = SpeciesSourceMaterial
property_name = Sr_generation
kind = Sr
block = fuel
[]
### Buffer Properties
[buffer_thermal]
type = BufferThermal
block = buffer
initial_density = 1050.0
[]
[Buffer_density]
type = ParsedMaterial
block = buffer
property_name = density
expression = 1050.0
[]
[buffer_conc_Ag]
type = ArrheniusDiffusionCoef
block = buffer
d1 = 1e-8 # m^2/s
q1 = 0.0
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[buffer_conc_Cs]
type = ArrheniusDiffusionCoef
block = buffer
d1 = 1e-8 # m^2/s
q1 = 0.0
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[buffer_conc_Sr]
type = ArrheniusDiffusionCoef
block = buffer
d1 = 1e-8 # m^2/s
q1 = 0.0
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
[]
### IPyC properties
[IPyC_thermal]
type = HeatConductionMaterial
block = IPyC
thermal_conductivity = 4.0
specific_heat = 720.0
[]
[IPyC_density]
type = ParsedMaterial
block = IPyC
property_name = density
expression = 1907.0
[]
[IPyC_conc_Ag]
type = ArrheniusDiffusionCoef
block = IPyC
d1 = 5.3e-9 # m^2/s
q1 = 154e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[IPyC_conc_Cs]
type = ArrheniusDiffusionCoef
block = IPyC
d1 = 6.3e-8 # m^2/s
q1 = 222e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[IPyC_conc_Sr]
type = ArrheniusDiffusionCoef
block = IPyC
d1 = 2.3e-6 # m^2/s
q1 = 197e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
[]
### SiC properties
[SiC_thermal]
type = MonolithicSiCThermal
block = SiC
temperature = temperature
thermal_conductivity_model = miller
[]
[SiC_density]
type = ParsedMaterial
block = SiC
property_name = density
expression = 3200.0
[]
[SiC_conc_Ag]
type = ArrheniusDiffusionCoef
block = SiC
d1 = 3.6e-9 # m^2/s
q1 = 215e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[SiC_conc_Cs]
type = ArrheniusDiffusionCoef
block = SiC
d1 = 5.5e-14 # m^2/s
q1 = 125e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[SiC_conc_Sr]
type = ArrheniusDiffusionCoef
block = SiC
d1 = 1.2e-9 # m^2/s
q1 = 205e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
[]
### OPyC properties
[OPyC_thermal_conductivity]
type = HeatConductionMaterial
block = OPyC
thermal_conductivity = 4.0
specific_heat = 720.0
[]
[OPyC_density]
type = ParsedMaterial
block = OPyC
property_name = density
expression = 1907.0
[]
[OPyC_conc_Ag]
type = ArrheniusDiffusionCoef
block = OPyC
d1 = 5.3e-9 # m^2/s
q1 = 154e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[OPyC_conc_Cs]
type = ArrheniusDiffusionCoef
block = OPyC
d1 = 6.3e-8 # m^2/s
q1 = 222e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[OPyC_conc_Sr]
type = ArrheniusDiffusionCoef
block = OPyC
d1 = 2.3e-6 # m^2/s
q1 = 197e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Debug]
show_var_residual_norms = true
show_var_residual = 'temperature conc_Ag conc_Cs conc_Sr'
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
line_search = 'none'
automatic_scaling = true
nl_rel_tol = 1e-12
nl_abs_tol = 1e-12
nl_max_its = 20
nl_forced_its = 2
l_tol = 1e-4
l_max_its = 50
start_time = 0.0
dt = 20000
num_steps = 2
[]
[Postprocessors]
[temp_bc]
type = Receiver
[]
[release_Ag_inc]
type = SideIntegralMassFlux
variable = conc_Ag
boundary = exterior
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
execute_on = 'initial timestep_end'
[]
[released_Ag]
type = TimeIntegratedPostprocessor # computes time integration of value
value = release_Ag_inc
execute_on = 'initial timestep_end'
[]
[total_Ag]
type = ElementIntegralMaterialProperty
mat_prop = Ag_generation_total
block = fuel
execute_on = 'initial timestep_end'
[]
[x_Ag_released]
type = FractionalRelease
released = released_Ag
total = total_Ag
[]
[retained_Ag]
type = ElementIntegralVariablePostprocessor
variable = conc_Ag
[]
[release_Cs_inc]
type = SideIntegralMassFlux
variable = conc_Cs
boundary = exterior
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
execute_on = 'initial timestep_end'
[]
[released_Cs]
type = TimeIntegratedPostprocessor
value = release_Cs_inc
execute_on = 'initial timestep_end'
[]
[total_Cs]
type = ElementIntegralMaterialProperty
mat_prop = Cs_generation_total
block = fuel
execute_on = 'initial timestep_end'
[]
[x_Cs_released]
type = FractionalRelease
released = released_Cs
total = total_Cs
[]
[retained_Cs]
type = ElementIntegralVariablePostprocessor
variable = conc_Cs
[]
[release_Sr_inc]
type = SideIntegralMassFlux
variable = conc_Sr
boundary = exterior
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
execute_on = 'initial timestep_end'
[]
[released_Sr]
type = TimeIntegratedPostprocessor
value = release_Sr_inc
execute_on = 'initial timestep_end'
[]
[released_heat_inc]
type = SideIntegralMassFlux
variable = temperature
boundary = exterior
arrhenius_prpty_name = thermal_conductivity
execute_on = 'initial timestep_end'
[]
[total_Sr]
type = ElementIntegralMaterialProperty
mat_prop = Sr_generation_total
block = fuel
execute_on = 'initial timestep_end'
[]
[x_Sr_released]
type = FractionalRelease
released = released_Sr
total = total_Sr
[]
[retained_Sr]
type = ElementIntegralVariablePostprocessor
variable = conc_Sr
[]
[fis_gas_produced]
type = ElementIntegralMaterialProperty
mat_prop = fis_gas_produced
block = fuel
execute_on = 'initial timestep_end'
[]
[fis_gas_released]
type = ElementIntegralMaterialProperty
mat_prop = fis_gas_released
block = fuel
execute_on = 'initial timestep_end'
[]
### Postprocessors for CO production
[total_fission_rate]
type = ElementIntegralPower
variable = temperature
fission_rate = fission_rate
block = fuel
energy_per_fission = 1.0
execute_on = 'initial timestep_end'
[]
[total_fissions]
type = TimeIntegratedPostprocessor
value = total_fission_rate
execute_on = 'initial timestep_end'
[]
##### irradiation conditions
[particle_power]
type = ElementIntegralPower
variable = temperature
use_material_fission_rate = true
fission_rate_material = fission_rate
block = fuel
execute_on = 'initial timestep_end'
[]
[max_fluence]
type = ElementExtremeValue
variable = fast_neutron_fluence
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[max_burnup]
type = ElementExtremeValue
variable = burnup
block = fuel
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[aver_temp_exterior]
type = SideAverageValue
variable = temperature
boundary = exterior
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
print_linear_residuals = false
[]
(examples/TRISO/pebble/triso_1d_failed.i)
kernel_radius = 213.35e-6
buffer_thickness = 98.9e-6
IPyC_thickness = 40.4e-6
SiC_thickness = 35.2e-6
OPyC_thickness = 43.4e-6
coordinates1 = '${fparse kernel_radius}'
coordinates2 = '${fparse coordinates1+buffer_thickness}'
coordinates3 = '${fparse coordinates2+IPyC_thickness}'
coordinates4 = '${fparse coordinates3+SiC_thickness}'
coordinates5 = '${fparse coordinates4+OPyC_thickness}'
[GlobalParams]
order = SECOND
family = LAGRANGE
initial_enrichment = 0.14029 # [wt-]
energy_per_fission = 3.204e-11 # [J/fission]
O_U = 1.428 # Initial Oxygen to Uranium atom ratio
C_U = 0.392 # Initial Carbon to Uranium atom ratio
[]
[Mesh]
coord_type = RSPHERICAL
[mesh]
type = TRISO1DMeshGenerator
elem_type = EDGE3
coordinates = '0 ${coordinates1} ${coordinates2} ${coordinates3} ${coordinates4} ${coordinates5}'
mesh_density = '18 14 12 16 16'
block_names = 'fuel buffer IPyC SiC OPyC'
[]
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[UserObjects]
[particle_geometry]
type = TRISOGeometry
outer_OPyC = OPyC_outer_boundary
outer_SiC = SiC_outer_boundary
outer_IPyC = IPyC_outer_boundary
inner_IPyC = IPyC_inner_boundary
outer_buffer = buffer_outer_boundary
outer_kernel = fuel_outer_boundary
include_particle = true
include_pebble = false
[]
[]
[Variables]
[temperature]
initial_condition = 773.15
[]
[conc_Cs]
initial_condition = 0.0
scaling = 1e18
[]
[]
[AuxVariables]
[fission_rate]
order = CONSTANT
family = MONOMIAL
[]
[burnup]
order = CONSTANT
family = MONOMIAL
[]
[fast_neutron_flux]
order = CONSTANT
family = MONOMIAL
[]
[fast_neutron_fluence]
order = CONSTANT
family = MONOMIAL
[]
[fis_gas_produced]
order = CONSTANT
family = MONOMIAL
[]
[fis_gas_released]
order = CONSTANT
family = MONOMIAL
[]
[Cs_diff_coef]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[power_history]
type = PiecewiseLinear
x = '0 1e3 4.51008e7' #change time (s) for desired EFPD
y = '0 1 1'
[]
[fission_rate]
type = LinearCombinationFunction
functions = power_history
w = 2.927e18
[]
[temp_bc_func]
type = ParsedFunction
value = temp_bc
symbol_names = temp_bc
symbol_values = temp_bc
[]
[]
[Kernels]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temperature
extra_vector_tags = 'ref'
[]
[heat]
type = HeatConduction
variable = temperature
extra_vector_tags = 'ref'
[]
[heat_source]
type = NeutronHeatSource
variable = temperature
block = fuel
fission_rate = fission_rate
extra_vector_tags = 'ref'
[]
[mass_Cs_dt]
type = TimeDerivative
variable = conc_Cs
[]
[mass_Cs]
type = ArrheniusDiffusion
variable = conc_Cs
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
extra_vector_tags = 'ref'
[]
[mass_source_Cs]
type = SpeciesSourceRate
variable = conc_Cs
property_name = Cs_generation
block = fuel
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[fissionrate]
type = MaterialRealAux
variable = fission_rate
property = fission_rate
block = fuel
execute_on = timestep_begin
[]
[burnup]
type = MaterialRealAux
variable = burnup
property = burnup
block = fuel
execute_on = timestep_begin
[]
[fast_neutron_flux]
type = MaterialRealAux
variable = fast_neutron_flux
property = fast_neutron_flux
execute_on = timestep_begin
[]
[fast_neutron_fluence]
type = MaterialRealAux
variable = fast_neutron_fluence
property = fast_neutron_fluence
execute_on = timestep_begin
[]
[Cs_diff_coef]
type = MaterialRealAux
variable = Cs_diff_coef
property = arrhenius_diffusion_coef_Cs
execute_on = timestep_end
[]
[]
[BCs]
[freesurf_temp]
type = FunctionDirichletBC
variable = temperature
function = temp_bc_func
boundary = exterior
[]
[freesurf_conc_Cs]
type = DirichletBC
variable = conc_Cs
boundary = exterior
value = 0.0
[]
[]
[Materials]
[fission_rate]
type = GenericFunctionMaterial
prop_names = fission_rate
prop_values = fission_rate
[]
[fast_neutron_flux]
type = FastNeutronFlux
calculate_fluence = true
flux_function = power_history
factor = 1.109e18
[]
[UCO_burnup]
type = TRISOBurnup
initial_density = ${initial_fuel_density}
[]
[UCO_thermal]
type = UCOThermal
block = fuel
temperature = temperature
[]
[UCO_density]
type = StrainAdjustedDensity
block = fuel
strain_free_density = 10966.0
[]
[fission_gas_release]
type = UCOFGR
block = fuel
average_grain_radius = 10e-6
temperature = temperature
triso_geometry = particle_geometry
[]
# Arrhenius diffusion coefficients for kernel, PyC, and SiC
# come from IAEA TECDOC-978, French parameters.
[fuel_conc_Cs]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 5.6e-8 # m^2/s
q1 = 209e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[mass_source_Cs_property]
type = SpeciesSourceMaterial
property_name = Cs_generation
kind = Cs
block = fuel
[]
### Buffer Properties
[buffer_thermal]
type = BufferThermal
block = buffer
initial_density = 1050.0
[]
[Buffer_density]
type = StrainAdjustedDensity
block = buffer
strain_free_density = 1050.0
[]
[buffer_conc_Cs]
type = ArrheniusDiffusionCoef
block = buffer
d1 = 1e-8 # m^2/s
q1 = 0.0
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
### IPyC properties
[IPyC_thermal]
type = HeatConductionMaterial
block = IPyC
thermal_conductivity = 4.0
specific_heat = 720.0
[]
[IPyC_density]
type = StrainAdjustedDensity
block = IPyC
strain_free_density = 1907.0
[]
[IPyC_conc_Cs]
type = ArrheniusDiffusionCoef
block = IPyC
d1 = 6.3e-8 # m^2/s
q1 = 222e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
### SiC properties
[SiC_thermal]
type = MonolithicSiCThermal
block = SiC
temperature = temperature
thermal_conductivity_model = miller
[]
[SiC_density]
type = StrainAdjustedDensity
block = SiC
strain_free_density = 3200.0
[]
[SiC_conc_Cs]
type = ArrheniusDiffusionCoef
block = SiC
d1 = 1e-6 # m^2/s
q1 = 0 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
### OPyC properties
[OPyC_thermal_conductivity]
type = HeatConductionMaterial
block = OPyC
thermal_conductivity = 4.0
specific_heat = 720.0
[]
[OPyC_density]
type = StrainAdjustedDensity
block = OPyC
strain_free_density = 1907.0
[]
[OPyC_conc_Cs]
type = ArrheniusDiffusionCoef
block = OPyC
d1 = 6.3e-8 # m^2/s
q1 = 222e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
line_search = 'none'
nl_rel_tol = 1e-8
nl_abs_tol = 1e-6
nl_max_its = 20
l_tol = 1e-4
l_max_its = 50
end_time = 4.831315e7
dt = 500000
num_steps = 10
[]
[Postprocessors]
[temp_bc]
type = Receiver
[]
[release_heat_inc]
type = SideIntegralMassFlux
variable = temperature
boundary = exterior
arrhenius_prpty_name = thermal_conductivity
execute_on = 'initial timestep_end'
[]
[release_Cs_inc]
type = SideIntegralMassFlux
variable = conc_Cs
boundary = exterior
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
execute_on = 'initial timestep_end'
[]
[released_Cs]
type = TimeIntegratedPostprocessor
value = release_Cs_inc
execute_on = 'initial timestep_end'
[]
[total_Cs]
type = ElementIntegralMaterialProperty
mat_prop = Cs_generation_total
block = fuel
execute_on = 'initial timestep_end'
[]
[x_Cs_released]
type = FractionalRelease
released = released_Cs
total = total_Cs
[]
[retained_Cs]
type = ElementIntegralVariablePostprocessor
variable = conc_Cs
[]
[fis_gas_produced]
type = ElementIntegralMaterialProperty
mat_prop = fis_gas_produced
block = fuel
execute_on = 'initial timestep_end'
[]
[fis_gas_released]
type = ElementIntegralMaterialProperty
mat_prop = fis_gas_released
block = fuel
execute_on = 'initial timestep_end'
[]
### Postprocessors for CO production
[total_fission_rate]
type = ElementIntegralPower
variable = temperature
fission_rate = fission_rate
block = fuel
energy_per_fission = 1.0
execute_on = 'initial timestep_end'
[]
[total_fissions]
type = TimeIntegratedPostprocessor
value = total_fission_rate
execute_on = 'initial timestep_end'
[]
##### irradiation conditions
[particle_power]
type = ElementIntegralPower
variable = temperature
use_material_fission_rate = true
fission_rate_material = fission_rate
block = fuel
execute_on = 'initial timestep_end'
[]
[max_fluence]
type = ElementExtremeValue
variable = fast_neutron_fluence
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[max_burnup]
type = ElementExtremeValue
variable = burnup
block = fuel
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[aver_temp_exterior]
type = SideAverageValue
variable = temperature
boundary = exterior
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = false
print_linear_converged_reason = false
print_nonlinear_converged_reason = false
[]
(examples/accident_tolerant_fuel/u3si2_sic/u3si2_outer_monolith_1.5D.i)
# Model is of a 10 pellet fuel rodlet modeled in 1.5D. The rodlet contains
# U3Si2 fuel and a multilayer silicon carbide cladding (an inner composite
# winding layer) and an outer monolithic layer. The inner composite layer is
# 0.75 mm thick and the outer monolithic layer is 0.25 mm thick. The internal
# layered1D mesh generator can model a clad an arbitrary number of additional blocks.
# Therefore, to create the multilayer SiC clad the composite layer is assigned to the
# clad block and the monolithic_layer is assigned to the monolithic_layer block
# as specified in the additional_block_names parameter in the Mesh block.
initial_fuel_density = 11590.0
[GlobalParams]
density = ${initial_fuel_density}
initial_porosity = 0.05
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
displacements = disp_x
temperature = temperature
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[Mesh]
coord_type = RZ
[layered1D_mesh]
type = Layered1DMeshGenerator
slices_per_block = 10
clad_gap_width = 8.0e-5
clad_mesh_density = customize
clad_thickness = 0.00075
nx_c = 5
additional_block_names = 'monolithic_layer'
additional_elements_per_ring = '3'
additional_ring_thicknesses = '0.00025'
fuel_height = 0.1186
plenum_height = 0.027
[]
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[UserObjects]
[pin_geometry]
type = Layered1DFuelPinGeometry
mesh_generator = layered1D_mesh
[]
[]
[Variables]
[temperature]
initial_condition = 580.0 # set initial temperature to coolant inlet
[]
[]
[AuxVariables]
[disp_y] ## Required for easier visualization in Paraview
[]
[disp_z] ## Required for easier visualization in Paraview
[]
[fast_neutron_flux]
block = 'clad monolithic_layer'
order = CONSTANT
family = MONOMIAL
[]
[fast_neutron_fluence]
block = 'clad monolithic_layer'
order = CONSTANT
family = MONOMIAL
[]
[grain_radius]
block = fuel
initial_condition = 10e-6
[]
[solid_swell]
order = CONSTANT
family = MONOMIAL
block = fuel
[]
[gaseous_swelling]
order = CONSTANT
family = MONOMIAL
block = fuel
[]
[densification]
order = CONSTANT
family = MONOMIAL
block = fuel
[]
[volumetric_swelling_strain]
order = CONSTANT
family = MONOMIAL
block = fuel
[]
[relocation]
order = CONSTANT
family = MONOMIAL
block = fuel
[]
[]
[Functions]
[power_history]
type = PiecewiseLinear
x = '0 1e4 1e8'
y = '0 25000 25000'
scale_factor = 1
[]
[axial_peaking_factors]
type = ParsedFunction
expression = 1
[]
[pressure_ramp]
type = PiecewiseLinear
x = '-200 0 1e8'
y = '6.537e-3 1 1'
[]
[q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[]
[clad_axial_pressure]
type = CladdingAxialPressureFunction
plenum_pressure = plenum_pressure
coolant_pressure = pressure_ramp
coolant_pressure_scaling_factor = 15.5e6
fuel_pin_geometry = pin_geometry
[]
[fuel_axial_pressure]
type = ParsedFunction
expression = plenum_pressure
symbol_names = plenum_pressure
symbol_values = plenum_pressure
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temperature
extra_vector_tags = 'ref'
[]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temperature
extra_vector_tags = 'ref'
[]
[heat_source]
type = NeutronHeatSource
variable = temperature
block = fuel
burnup_function = burnup
extra_vector_tags = 'ref'
[]
[]
[Physics]
[SolidMechanics]
[Layered1D]
[fuel]
block = fuel
add_variables = true
strain = SMALL
incremental = true
add_scalar_variables = true
out_of_plane_strain_name = strain_yy
fuel_pin_geometry = pin_geometry
out_of_plane_pressure_function = fuel_axial_pressure
eigenstrain_names = 'fuel_thermal_strain fuel_swelling_strain'
generate_output = 'stress_xx stress_yy stress_zz vonmises_stress strain_xx'
extra_vector_tags = 'ref'
group_scalar_vars_in_reference_residual = true
mesh_generator = layered1D_mesh
[]
[composite]
block = clad
add_variables = true
strain = SMALL
incremental = true
add_scalar_variables = true
out_of_plane_strain_name = strain_yy
fuel_pin_geometry = pin_geometry
out_of_plane_pressure_function = clad_axial_pressure
eigenstrain_names = 'composite_thermal_strain composite_swelling_strain'
generate_output = 'stress_xx stress_yy stress_zz vonmises_stress strain_xx'
extra_vector_tags = 'ref'
group_scalar_vars_in_reference_residual = true
mesh_generator = layered1D_mesh
[]
[monolith]
block = monolithic_layer
add_variables = true
strain = SMALL
incremental = true
add_scalar_variables = true
out_of_plane_strain_name = strain_yy
fuel_pin_geometry = pin_geometry
out_of_plane_pressure_function = clad_axial_pressure
eigenstrain_names = 'monolith_thermal_strain monolith_swelling_strain'
generate_output = 'stress_xx stress_yy stress_zz vonmises_stress strain_xx'
extra_vector_tags = 'ref'
group_scalar_vars_in_reference_residual = true
mesh_generator = layered1D_mesh
[]
[]
[]
[]
[Burnup]
[burnup]
block = fuel
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
num_radial = 80
num_axial = 11
order = CONSTANT
family = MONOMIAL
fuel_pin_geometry = pin_geometry
fuel_volume_ratio = 1.0
RPF = RPF
fuel_type = U3Si2
[]
[]
[AuxKernels]
[fast_neutron_flux]
type = MaterialRealAux
variable = fast_neutron_flux
property = fast_neutron_flux
block = 'clad monolithic_layer'
execute_on = timestep_begin
[]
[fast_neutron_fluence]
type = MaterialRealAux
variable = fast_neutron_fluence
property = fast_neutron_fluence
block = 'clad monolithic_layer'
execute_on = timestep_begin
[]
[grain_radius]
type = GrainRadiusAux
block = fuel
variable = grain_radius
temperature = temperature
execute_on = linear
[]
[solid_swell]
type = MaterialRealAux
variable = solid_swell
property = solid_swelling
execute_on = timestep_end
block = fuel
[]
[gas_swell]
type = MaterialRealAux
variable = gaseous_swelling
property = gaseous_swelling
execute_on = timestep_end
block = fuel
[]
[densification]
type = MaterialRealAux
variable = densification
property = densification
execute_on = timestep_end
block = fuel
[]
[volumetric_swelling_strain]
type = MaterialRealAux
variable = volumetric_swelling_strain
property = volumetric_swelling_strain
execute_on = timestep_end
block = fuel
[]
[]
[Contact]
[pellet_clad_mechanical]
primary = 5
secondary = 10
formulation = kinematic
model = frictionless
penalty = 1e7
[]
[]
[ThermalContact]
[thermal_contact]
type = GasGapHeatTransfer
variable = temperature
primary = 5
secondary = 10
initial_moles = initial_moles # coupling to a postprocessor which supplies the initial plenum/gap gas mass
gas_released = fis_gas_released # coupling to a postprocessor which supplies the fission gas addition
contact_pressure = contact_pressure
[]
[]
[BCs]
[no_x_all] # pin pellets and clad along axis of symmetry (y)
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[]
[Pressure] # apply coolant pressure on clad outer walls
[coolantPressure]
use_displaced_mesh = false
boundary = 2
function = pressure_ramp # use the pressure_ramp function defined above
factor = 15.5e6
[]
[]
[PlenumPressure] # apply plenum pressure on clad inner walls and pellet surfaces
[plenumPressure]
use_displaced_mesh = false
boundary = 9
initial_pressure = 2.0e6
startup_time = 0
R = 8.314
output_initial_moles = initial_moles # coupling to post processor to get initial fill gas mass
temperature = ave_temp_interior # coupling to post processor to get gas temperature approximation
volume = gas_volume # coupling to post processor to get gas volume
material_input = fis_gas_released # coupling to post processor to get fission gas added
output = plenum_pressure # coupling to post processor to output plenum/gap pressure
[]
[]
[]
[CoolantChannel]
[convective_clad_surface] # apply convective boundary to clad outer surface
variable = temperature
boundary = 2
inlet_temperature = 580 # K
inlet_pressure = 15.5e6 # Pa
inlet_massflux = 3800 # kg/m^2-sec
rod_diameter = 10.368e-3 # m
rod_pitch = 1.26e-2 # m
linear_heat_rate = power_history
axial_power_profile = axial_peaking_factors
[]
[]
[Materials]
[flux]
type = FastNeutronFlux
calculate_fluence = true
block = 'clad monolithic_layer'
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
factor = 3e13
[]
### U3Si2 Fuel
[fuel_thermal]
type = SilicideFuelThermal
block = fuel
thermal_conductivity_model = WHITE
temperature = temperature
[]
[fuel_elasticity_tensor]
type = U3Si2ElasticityTensor
block = fuel
[]
[fuel_stress]
type = ComputeMultipleInelasticStress
block = fuel
tangent_operator = elastic
inelastic_models = 'fuel_creep'
[]
[fuel_creep]
type = U3Si2CreepUpdate
block = fuel
temperature = temperature
[]
[fuel_thermal_expansion]
type = U3Si2ThermalExpansionEigenstrain
block = fuel
temperature = temperature
stress_free_temperature = 295.0
eigenstrain_name = fuel_thermal_strain
[]
[fuel_volumetric_swelling]
type = U3Si2VolumetricSwellingEigenstrain
block = fuel
gaseous_swelling_type = FINLAY
temperature = temperature
burnup_function = burnup
eigenstrain_name = fuel_swelling_strain
[]
[fission_gas_release]
type = U3Si2Sifgrs
block = fuel
temperature = temperature
burnup_function = burnup
grain_radius_const = 2.5e-05
[]
[fuel_density]
type = StrainAdjustedDensity
block = fuel
strain_free_density = ${initial_fuel_density}
[]
### Composite SiC
[composite_thermal]
type = CompositeSiCThermal
thermal_conductivity_model = STONE
temperature = temperature
block = clad
[]
[composite_density]
type = StrainAdjustedDensity
block = clad
strain_free_density = 2700.0
[]
[composite_elasticity_tensor]
type = CompositeSiCElasticityTensor
block = clad
[]
[composite_stress]
type = ComputeStrainIncrementBasedStress
block = clad
[]
[composite_thermal_expansion]
type = CompositeSiCThermalExpansionEigenstrain
block = clad
stress_free_temperature = 295.0
temperature = temperature
eigenstrain_name = composite_thermal_strain
[]
[composite_irradiation_swelling]
type = CompositeSiCVolumetricSwellingEigenstrain
block = clad
temperature = temperature
fast_neutron_fluence = fast_neutron_fluence
swelling_model = KATOH
number_of_substeps = 1000
eigenstrain_name = composite_swelling_strain
[]
### Monolithic SiC
[monolith_thermal]
type = MonolithicSiCThermal
temperature = temperature
thermal_conductivity_model = STONE
block = monolithic_layer
[]
[monolith_density]
type = StrainAdjustedDensity
block = monolithic_layer
strain_free_density = 3120.0
[]
[monolith_elasticity_tensor]
type = MonolithicSiCElasticityTensor
block = monolithic_layer
[]
[monolith_stress]
type = ComputeMultipleInelasticStress
block = monolithic_layer
tangent_operator = elastic
inelastic_models = 'monolith_creep'
[]
[monolith_creep]
type = MonolithicSiCCreepUpdate
block = monolithic_layer
fast_neutron_flux = fast_neutron_flux
temperature = temperature
k_function = 2e-37
[]
[monolith_thermal_expansion]
type = MonolithicSiCThermalExpansionEigenstrain
block = monolithic_layer
stress_free_temperature = 295.0
temperature = temperature
eigenstrain_name = monolith_thermal_strain
[]
[monolith_irradiation_swelling]
type = CompositeSiCVolumetricSwellingEigenstrain
block = monolithic_layer
temperature = temperature
fast_neutron_fluence = fast_neutron_fluence
swelling_model = KATOH
number_of_substeps = 1000
eigenstrain_name = monolith_swelling_strain
[]
[]
[Dampers]
[limitT]
type = MaxIncrement
max_increment = 100.0
variable = temperature
[]
[limitX]
type = MaxIncrement
max_increment = 1e-5
variable = disp_x
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
l_max_its = 50
l_tol = 8e-3
nl_max_its = 50
nl_rel_tol = 1e-4
nl_abs_tol = 1e-7
start_time = -200
n_startup_steps = 1
end_time = 8.0e7
dtmax = 1e6
dtmin = 1
[TimeStepper]
type = IterationAdaptiveDT
dt = 2e2
optimal_iterations = 25
iteration_window = 5
growth_factor = 2
cutback_factor = .5
[]
[]
[Postprocessors]
[ave_temp_interior] # average temperature of the cladding interior and all pellet exteriors
type = LayeredSideAverageValuePostprocessor
boundary = 9
variable = temperature
execute_on = 'initial linear'
fuel_pin_geometry = pin_geometry
[]
[clad_inner_vol] # volume inside of cladding
type = LayeredInternalVolumePostprocessor
boundary = 7
component = 0
fuel_pin_geometry = pin_geometry
out_of_plane_strain = strain_yy
execute_on = 'initial linear'
[]
[pellet_volume] # fuel pellet total volume
type = LayeredInternalVolumePostprocessor
boundary = 8
component = 0
fuel_pin_geometry = pin_geometry
out_of_plane_strain = strain_yy
execute_on = 'initial linear'
[]
[avg_clad_temp] # average temperature of cladding interior
type = LayeredSideAverageValuePostprocessor
boundary = 7
variable = temperature
fuel_pin_geometry = pin_geometry
execute_on = 'initial linear'
[]
[fis_gas_produced] # fission gas produced (moles)
type = LayeredElementIntegralFisGasGeneratedSifgrsPostprocessor
block = fuel
fuel_pin_geometry = pin_geometry
[]
[fis_gas_released] # fission gas released to plenum (moles)
type = LayeredElementIntegralFisGasReleasedSifgrsPostprocessor
block = fuel
fuel_pin_geometry = pin_geometry
[]
[fis_gas_grain]
type = LayeredElementIntegralFisGasGrainSifgrsPostprocessor
block = fuel
outputs = exodus
fuel_pin_geometry = pin_geometry
[]
[fis_gas_boundary]
type = LayeredElementIntegralFisGasBoundarySifgrsPostprocessor
block = fuel
outputs = exodus
fuel_pin_geometry = pin_geometry
[]
[fission_gas_release]
type = FGRPercent
fission_gas_released = fis_gas_released
fission_gas_generated = fis_gas_produced
[]
[gas_volume]
type = LayeredInternalVolumePostprocessor
boundary = 9
execute_on = 'initial linear'
component = 0
out_of_plane_strain = strain_yy
fuel_pin_geometry = pin_geometry
[]
[flux_from_clad] # area integrated heat flux from the cladding
type = LayeredSideFluxIntegralPostprocessor
variable = temperature
boundary = 5
diffusivity = thermal_conductivity
fuel_pin_geometry = pin_geometry
[]
[flux_from_fuel] # area integrated heat flux from the fuel
type = LayeredSideFluxIntegralPostprocessor
variable = temperature
boundary = 10
diffusivity = thermal_conductivity
fuel_pin_geometry = pin_geometry
[]
[_dt] # time step
type = TimestepSize
[]
[num_lin_it]
type = NumLinearIterations
[]
[num_nonlin_it]
type = NumNonlinearIterations
[]
[tot_lin_it]
type = CumulativeValuePostprocessor
postprocessor = num_lin_it
[]
[tot_nonlin_it]
type = CumulativeValuePostprocessor
postprocessor = num_nonlin_it
[]
[alive_time]
type = PerfGraphData
section_name = Root
data_type = TOTAL
[]
[rod_total_power]
type = LayeredElementIntegralPowerPostprocessor
variable = temperature
burnup_function = burnup
block = fuel
fuel_pin_geometry = pin_geometry
[]
[rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 0.1186 # rod height
[]
[solid_swelling]
type = ElementAverageValue
variable = solid_swell
block = fuel
[]
[gaseous_swelling]
type = ElementAverageValue
variable = gaseous_swelling
block = fuel
[]
[densification]
type = ElementAverageValue
variable = densification
block = fuel
[]
[volumetric_swelling]
type = ElementAverageValue
variable = volumetric_swelling_strain
block = fuel
[]
[]
[Outputs]
perf_graph = true
exodus = true
csv = true
color = false
[]
(examples/TRISO/correlation_function/h_asphericity/triso_1d.i)
kernel_radius = 213.35e-6
buffer_thickness = 98.9e-6
IPyC_thickness = 40.4e-6
SiC_thickness = 35.2e-6
OPyC_thickness = 43.4e-6
coordinates1 = '${fparse kernel_radius}'
coordinates2 = '${fparse coordinates1+buffer_thickness}'
coordinates3 = '${fparse coordinates2+IPyC_thickness}'
coordinates4 = '${fparse coordinates3+SiC_thickness}'
coordinates5 = '${fparse coordinates4+OPyC_thickness}'
initial_fuel_density = 10966
[GlobalParams]
order = FIRST
family = LAGRANGE
displacements = 'disp_x'
initial_enrichment = 0.14029 # [wt-]
flux_conversion_factor = 1.0 # convert E>0.10 to E>0.18 MeV
stress_free_temperature = 481 # used for thermal expansion
energy_per_fission = 3.204e-11 # [J/fission]
O_U = 1.428 # Initial Oxygen to Uranium atom ratio
C_U = 0.392 # Initial Carbon to Uranium atom ratio
[]
[Mesh]
coord_type = RSPHERICAL
[mesh]
type = TRISO1DMeshGenerator
elem_type = EDGE2
coordinates = '0 ${coordinates1} ${coordinates2} ${coordinates2} ${coordinates3} ${coordinates4} ${coordinates5}'
mesh_density = '20 8 0 4 4 4'
block_names = 'fuel buffer IPyC SiC OPyC'
[]
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[UserObjects]
[particle_geometry]
type = TRISOGeometry
outer_OPyC = OPyC_outer_boundary
outer_SiC = SiC_outer_boundary
outer_IPyC = IPyC_outer_boundary
inner_IPyC = IPyC_inner_boundary
outer_buffer = buffer_outer_boundary
outer_kernel = fuel_outer_boundary
include_particle = true
include_pebble = false
[]
[]
[Variables]
[temperature]
initial_condition = 481
[]
[]
[AuxVariables]
[fission_rate]
order = CONSTANT
family = MONOMIAL
[]
[burnup]
order = CONSTANT
family = MONOMIAL
[]
[fast_neutron_flux]
order = CONSTANT
family = MONOMIAL
[]
[fast_neutron_fluence]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[temp_bc]
type = PiecewiseLinear
data_file = outer_temp.csv
x_index_in_file = 0
y_index_in_file = 1
format = columns
[]
[fission_rate]
type = ConstantFunction
value = 5.75e19
[]
[]
[Physics/SolidMechanics/QuasiStatic]
generate_output = 'stress_xx stress_yy stress_zz strain_xx strain_yy strain_zz max_principal_stress'
add_variables = true
strain = FINITE
incremental = true
[fuel]
block = fuel
eigenstrain_names = 'UCO_swelling_eigenstrain UCO_TE_strain'
extra_vector_tags = 'ref'
[]
[buffer]
block = buffer
eigenstrain_names = 'Buffer_IIDC_strain Buffer_TE_strain'
extra_vector_tags = 'ref'
[]
[IPyC]
block = IPyC
eigenstrain_names = 'IPyC_IIDC_strain IPyC_TE_strain'
extra_vector_tags = 'ref'
[]
[SiC]
block = SiC
eigenstrain_names = 'SiC_thermal_eigenstrain'
extra_vector_tags = 'ref'
[]
[OPyC]
block = OPyC
eigenstrain_names = 'OPyC_IIDC_strain OPyC_TE_strain'
extra_vector_tags = 'ref'
[]
[]
[Kernels]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temperature
extra_vector_tags = 'ref'
[]
[heat]
type = HeatConduction
variable = temperature
extra_vector_tags = 'ref'
[]
[heat_source]
type = NeutronHeatSource
variable = temperature
block = fuel
fission_rate = fission_rate
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[fissionrate]
type = MaterialRealAux
variable = fission_rate
property = fission_rate
block = fuel
execute_on = timestep_begin
[]
[burnup]
type = MaterialRealAux
variable = burnup
property = burnup
block = fuel
execute_on = timestep_begin
[]
[fast_neutron_flux]
type = MaterialRealAux
variable = fast_neutron_flux
property = fast_neutron_flux
execute_on = timestep_begin
[]
[fast_neutron_fluence]
type = MaterialRealAux
variable = fast_neutron_fluence
property = fast_neutron_fluence
execute_on = timestep_begin
[]
[]
[ThermalContact]
[thermal_contact]
type = GasGapHeatTransfer
variable = temperature
primary = IPyC_inner_boundary
secondary = buffer_outer_boundary
initial_moles = initial_moles
gas_released = 'fis_gas_released'
released_gas_types = 'Kr Xe'
released_fractions = '0.185 0.815'
tangential_tolerance = 1e-6
quadrature = false
min_gap = 1e-7
max_gap = 50e-6
gap_geometry_type = sphere
[]
[]
[BCs]
[no_disp_x]
type = DirichletBC
variable = disp_x
boundary = xzero
value = 0.0
[]
[freesurf_temp]
type = FunctionDirichletBC
variable = temperature
function = temp_bc
boundary = exterior
[]
[exterior_pressure_x]
type = Pressure
variable = disp_x
boundary = exterior
factor = 0.1e6
[]
[PlenumPressure]
[plenumPressure]
boundary = buffer_IPyC_boundary
startup_time = 1e4
initial_pressure = 0
R = 8.3145
output_initial_moles = initial_moles
temperature = ave_gas_temp
volume = 'gap_volume buffer_void_volume kernel_void_volume'
material_input = 'fis_gas_released'
output = gas_pressure
[]
[]
[]
[Materials]
[fission_rate]
type = GenericFunctionMaterial
prop_names = fission_rate
prop_values = fission_rate
block = fuel
[]
[fast_neutron_flux]
type = FastNeutronFlux
calculate_fluence = true
factor = 6.2425e+17
[]
[UCO_burnup]
type = TRISOBurnup
initial_density = ${initial_fuel_density}
block = fuel
[]
[UCO_thermal]
type = UCOThermal
block = fuel
temperature = temperature
[]
[UCO_elasticity_tensor]
type = UCOElasticityTensor
block = fuel
temperature = temperature
[]
[UCO_stress]
type = ComputeFiniteStrainElasticStress
block = fuel
[]
[UCO_VolumetricSwellingEigenstrain]
type = UCOVolumetricSwellingEigenstrain
block = fuel
eigenstrain_name = UCO_swelling_eigenstrain
[]
[fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = fuel
thermal_expansion_coeff = 10.0e-6
temperature = temperature
eigenstrain_name = UCO_TE_strain
[]
[UCO_density]
type = StrainAdjustedDensity
block = fuel
strain_free_density = ${initial_fuel_density}
[]
[fission_gas_release]
type = UCOFGR
block = fuel
average_grain_radius = 10e-6
temperature = temperature
triso_geometry = particle_geometry
[]
[normal_vectors_triso]
type = NormalVectorsTRISO
block = 'buffer IPyC OPyC'
[]
[BAF_IPyC]
type = BaconAnisotropyFactor
initial_BAF = 1.0465
block = IPyC
[]
[BAF_OPyC]
type = BaconAnisotropyFactor
initial_BAF = 1.0429
block = OPyC
[]
[buffer_elasticity_tensor]
type = BufferElasticityTensor
block = buffer
temperature = temperature
[]
[buffer_stress]
type = BufferCEGACreep
block = buffer
temperature = temperature
[]
[buffer_thermal]
type = BufferThermal
block = buffer
initial_density = 1050.0
[]
[buffer_density]
type = StrainAdjustedDensity
block = buffer
strain_free_density = 1050.0
[]
[buffer_TE]
type = BufferThermalExpansionEigenstrain
block = buffer
eigenstrain_name = Buffer_TE_strain
temperature = temperature
[]
[buffer_IIDC]
type = BufferCEGAIrradiationEigenstrain
block = buffer
eigenstrain_name = Buffer_IIDC_strain
temperature = temperature
[]
[IPyC_elasticity_tensor]
type = PyCElasticityTensor
block = IPyC
temperature = temperature
[]
[IPyC_stress]
type = PyCCEGACreep
block = IPyC
creep_rate_scale_factor = 1
temperature = temperature
[]
[IPyC_thermal]
type = HeatConductionMaterial
block = IPyC
thermal_conductivity = 4.0
specific_heat = 720.0
[]
[IPyC_density]
type = GenericConstantMaterial
block = IPyC
prop_names = 'density'
prop_values = 1890
[]
[IPyC_IIDC]
type = PyCCEGAIrradiationEigenstrain
block = IPyC
eigenstrain_name = IPyC_IIDC_strain
temperature = temperature
irradiation_eigenstrain_scale_factor = 1
[]
[IPyC_TE]
type = PyCThermalExpansionEigenstrain
block = IPyC
eigenstrain_name = IPyC_TE_strain
temperature = temperature
[]
[SiC_elasticity_tensor]
type = MonolithicSiCElasticityTensor
block = SiC
temperature = temperature
elastic_modulus_model = miller
[]
[SiC_stress]
type = ComputeFiniteStrainElasticStress
block = SiC
[]
[SiC_thermal]
type = MonolithicSiCThermal
block = SiC
temperature = temperature
thermal_conductivity_model = miller
[]
[SiC_density]
type = StrainAdjustedDensity
block = SiC
strain_free_density = 3200.0
[]
[SiC_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = SiC
thermal_expansion_coeff = 4.9e-6
temperature = temperature
eigenstrain_name = SiC_thermal_eigenstrain
[]
[OPyC_elasticity_tensor]
type = PyCElasticityTensor
block = OPyC
temperature = temperature
initial_BAF = 1.0
[]
[OPyC_stress]
type = PyCCEGACreep
block = OPyC
creep_rate_scale_factor = 1
temperature = temperature
[]
[OPyC_thermal_conductivity]
type = HeatConductionMaterial
block = OPyC
thermal_conductivity = 4.0
specific_heat = 720.0
[]
[OPyC_density]
type = GenericConstantMaterial
block = OPyC
prop_names = 'density'
prop_values = 1900
[]
[OPyC_IIDC]
type = PyCCEGAIrradiationEigenstrain
block = OPyC
eigenstrain_name = OPyC_IIDC_strain
temperature = temperature
irradiation_eigenstrain_scale_factor = 1
[]
[OPyC_TE]
type = PyCThermalExpansionEigenstrain
block = OPyC
eigenstrain_name = OPyC_TE_strain
temperature = temperature
[]
[characteristic_strength_SiC]
type = GenericConstantMaterial
prop_values = '9640000'
block = SiC
prop_names = 'characteristic_strength'
[]
[characteristic_strength_PyC]
type = PyCCharacteristicStrength
temperature = temperature
X = 1.02
block = 'IPyC OPyC'
[]
[]
[Dampers]
[temp]
type = MaxIncrement
variable = temperature
max_increment = 100
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
nl_rel_tol = 1e-8
nl_abs_tol = 1e-8
nl_max_its = 20
l_tol = 1e-4
l_max_its = 50
start_time = 0.0
end_time = 4.831315e7
dtmin = 1e-4
dt = 6e5
[]
[Postprocessors]
[ave_gas_temp]
type = ElementAverageValue
block = buffer
variable = temperature
execute_on = 'initial timestep_end'
[]
[fis_gas_released]
type = ElementIntegralMaterialProperty
mat_prop = fis_gas_released
block = fuel
use_displaced_mesh = false
execute_on = 'initial timestep_end'
[]
[gap_volume]
type = InternalVolume
boundary = buffer_IPyC_boundary
execute_on = 'initial linear'
use_displaced_mesh = true
[]
[buffer_void_volume]
type = VoidVolume
block = buffer
theoretical_density = 2250
execute_on = 'initial timestep_end'
use_displaced_mesh = true
[]
[kernel_th_density]
type = UCOTheoreticalDensity
execute_on = initial
[]
[kernel_void_volume]
type = VoidVolume
block = fuel
theoretical_density = kernel_th_density
execute_on = 'initial timestep_end'
use_displaced_mesh = true
[]
[particle_power]
type = ElementIntegralPower
variable = temperature
use_material_fission_rate = true
fission_rate_material = fission_rate
block = fuel
execute_on = 'initial timestep_end'
[]
[max_fluence]
type = ElementExtremeValue
variable = fast_neutron_fluence
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[max_burnup]
type = ElementExtremeValue
variable = burnup
block = fuel
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[SiC_stress_max]
type = ElementExtremeMaterialProperty
block = SiC
value_type = max
mat_prop = stress_yy
[]
[SiC_stress_min]
type = ElementExtremeMaterialProperty
block = SiC
value_type = min
mat_prop = stress_yy
[]
[strength_SiC]
type = WeibullEffectiveMeanStrength
block = SiC
weibull_modulus = 6
[]
[]
[Outputs]
print_linear_residuals = false
time_step_interval = 1
csv = true
perf_graph = true
exodus = true
[]
(examples/TRISO/correlation_function/h_ipyc_cracking/triso_cracking.i)
kernel_radius = 213.35e-6
buffer_thickness = 98.9e-6
IPyC_thickness = 40.4e-6
SiC_thickness = 35.2e-6
OPyC_thickness = 43.4e-6
coordinates1 = '${fparse kernel_radius}'
coordinates2 = '${fparse coordinates1+buffer_thickness}'
coordinates3 = '${fparse coordinates2+IPyC_thickness}'
coordinates4 = '${fparse coordinates3+SiC_thickness}'
coordinates5 = '${fparse coordinates4+OPyC_thickness}'
initial_fuel_density = 10966
[GlobalParams]
order = FIRST
family = LAGRANGE
displacements = 'disp_x disp_y'
initial_enrichment = 0.14029 # [wt-]
flux_conversion_factor = 1.0 # convert E>0.10 to E>0.18 MeV
stress_free_temperature = 481 # used for thermal expansion
energy_per_fission = 3.204e-11 # [J/fission]
O_U = 1.428 # Initial Oxygen to Uranium atom ratio
C_U = 0.392 # Initial Carbon to Uranium atom ratio
[]
[Mesh]
coord_type = RZ
[mesh]
type = TRISO2DMeshGenerator
elem_type = quad4
coordinates = '0 ${coordinates1} ${coordinates2} ${coordinates2} ${coordinates3} ${coordinates4} ${coordinates5}'
mesh_density = '20 8 0 4 4 4'
block_names = 'fuel buffer IPyC SiC OPyC'
num_sectors = 60
all_bottom_left = True
[]
[]
[XFEM]
qrule = volfrac
output_cut_plane = true
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[UserObjects]
[ipyc_crack]
type = LineSegmentCutUserObject
cut_data = '0.0000 0 0.001 0'
time_start_cut = 0.0
time_end_cut = 0.0
block = IPyC
[]
[particle_geometry]
type = TRISOGeometry
outer_OPyC = OPyC_outer_boundary
outer_SiC = SiC_outer_boundary
outer_IPyC = IPyC_outer_boundary
inner_IPyC = IPyC_inner_boundary
outer_buffer = buffer_outer_boundary
outer_kernel = fuel_outer_boundary
include_particle = true
include_pebble = false
mesh_generator = mesh
[]
[]
[Variables]
[temperature]
initial_condition = 481
[]
[]
[AuxVariables]
[fission_rate]
order = CONSTANT
family = MONOMIAL
[]
[burnup]
order = CONSTANT
family = MONOMIAL
[]
[fast_neutron_flux]
order = CONSTANT
family = MONOMIAL
[]
[fast_neutron_fluence]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[temp_bc]
type = PiecewiseLinear
data_file = outer_temp.csv
x_index_in_file = 0
y_index_in_file = 1
format = columns
[]
[fission_rate]
type = ConstantFunction
value = 5.75e19
[]
[]
[Physics/SolidMechanics/QuasiStatic]
generate_output = 'stress_xx stress_yy stress_zz strain_xx strain_yy strain_zz max_principal_stress min_principal_stress'
add_variables = true
strain = FINITE
incremental = true
[fuel]
block = fuel
eigenstrain_names = 'UCO_swelling_eigenstrain UCO_TE_strain'
extra_vector_tags = 'ref'
[]
[buffer]
block = buffer
eigenstrain_names = 'Buffer_IIDC_strain Buffer_TE_strain'
extra_vector_tags = 'ref'
[]
[IPyC]
block = IPyC
eigenstrain_names = 'IPyC_IIDC_strain IPyC_TE_strain'
extra_vector_tags = 'ref'
[]
[SiC]
block = SiC
eigenstrain_names = 'SiC_thermal_eigenstrain'
extra_vector_tags = 'ref'
[]
[OPyC]
block = OPyC
eigenstrain_names = 'OPyC_IIDC_strain OPyC_TE_strain'
extra_vector_tags = 'ref'
[]
[]
[Kernels]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temperature
extra_vector_tags = 'ref'
[]
[heat]
type = HeatConduction
variable = temperature
extra_vector_tags = 'ref'
[]
[heat_source]
type = NeutronHeatSource
variable = temperature
block = fuel
fission_rate = fission_rate
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[fissionrate]
type = MaterialRealAux
variable = fission_rate
property = fission_rate
block = fuel
execute_on = timestep_begin
[]
[burnup]
type = MaterialRealAux
variable = burnup
property = burnup
block = fuel
execute_on = timestep_begin
[]
[fast_neutron_flux]
type = MaterialRealAux
variable = fast_neutron_flux
property = fast_neutron_flux
execute_on = timestep_begin
[]
[fast_neutron_fluence]
type = MaterialRealAux
variable = fast_neutron_fluence
property = fast_neutron_fluence
execute_on = timestep_begin
[]
[]
[ThermalContact]
[thermal_contact]
type = GasGapHeatTransfer
variable = temperature
primary = IPyC_inner_boundary
secondary = buffer_outer_boundary
initial_moles = initial_moles
gas_released = 'fis_gas_released'
released_gas_types = 'Kr Xe'
released_fractions = '0.185 0.815'
tangential_tolerance = 5e-6
quadrature = false
min_gap = 1e-7
max_gap = 50e-6
gap_geometry_type = sphere
sphere_origin = '0 0 0'
[]
[]
[BCs]
[no_disp_x]
type = DirichletBC
variable = disp_x
boundary = xzero
value = 0.0
[]
[no_disp_y]
type = DirichletBC
variable = disp_y
boundary = '2001 2002 2004 2005'
value = 0.0
[]
[freesurf_temp]
type = FunctionDirichletBC
variable = temperature
function = temp_bc
boundary = exterior
[]
[Pressure]
[exterior]
boundary = exterior
factor = 0.1e6
[]
[]
[PlenumPressure]
[plenumPressure]
boundary = buffer_IPyC_boundary
startup_time = 1e4
initial_pressure = 0
R = 8.3145
output_initial_moles = initial_moles
temperature = ave_gas_temp
volume = 'gap_volume buffer_void_volume kernel_void_volume'
material_input = 'fis_gas_released'
output = gas_pressure
[]
[]
[]
[Materials]
[fission_rate]
type = GenericFunctionMaterial
prop_names = fission_rate
prop_values = fission_rate
block = fuel
[]
[fast_neutron_flux]
type = FastNeutronFlux
calculate_fluence = true
factor = 6.2425e+17
[]
[UCO_burnup]
type = TRISOBurnup
initial_density = ${initial_fuel_density}
block = fuel
[]
[UCO_thermal]
type = UCOThermal
block = fuel
temperature = temperature
[]
[UCO_elasticity_tensor]
type = UCOElasticityTensor
block = fuel
temperature = temperature
[]
[UCO_stress]
type = ComputeFiniteStrainElasticStress
block = fuel
[]
[UCO_VolumetricSwellingEigenstrain]
type = UCOVolumetricSwellingEigenstrain
block = fuel
eigenstrain_name = UCO_swelling_eigenstrain
[]
[fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = fuel
thermal_expansion_coeff = 10.0e-6
temperature = temperature
eigenstrain_name = UCO_TE_strain
[]
[UCO_density]
type = StrainAdjustedDensity
block = fuel
strain_free_density = ${initial_fuel_density}
[]
[fission_gas_release]
type = UCOFGR
block = fuel
average_grain_radius = 10e-6
temperature = temperature
triso_geometry = particle_geometry
cutoff_neutron_flux = 0.0
[]
[normal_vectors_triso]
type = NormalVectorsTRISO
block = 'buffer IPyC OPyC'
triso_geometry = particle_geometry
[]
[BAF_IPyC]
type = BaconAnisotropyFactor
initial_BAF = 1.0465
block = IPyC
[]
[BAF_OPyC]
type = BaconAnisotropyFactor
initial_BAF = 1.0429
block = OPyC
[]
[buffer_elasticity_tensor]
type = BufferElasticityTensor
block = buffer
temperature = temperature
[]
[buffer_stress]
type = BufferCEGACreep
block = buffer
temperature = temperature
[]
[buffer_thermal]
type = BufferThermal
block = buffer
initial_density = 1050.0
[]
[buffer_density]
type = StrainAdjustedDensity
block = buffer
strain_free_density = 1050.0
[]
[buffer_TE]
type = BufferThermalExpansionEigenstrain
block = buffer
eigenstrain_name = Buffer_TE_strain
temperature = temperature
[]
[buffer_IIDC]
type = BufferCEGAIrradiationEigenstrain
block = buffer
eigenstrain_name = Buffer_IIDC_strain
temperature = temperature
[]
[IPyC_elasticity_tensor]
type = PyCElasticityTensor
block = IPyC
temperature = temperature
[]
[IPyC_stress]
type = PyCCEGACreep
block = IPyC
creep_rate_scale_factor = 1
temperature = temperature
[]
[IPyC_thermal]
type = HeatConductionMaterial
block = IPyC
thermal_conductivity = 4.0
specific_heat = 720.0
[]
[IPyC_density]
type = StrainAdjustedDensity
block = IPyC
strain_free_density = 1890
[]
[IPyC_IIDC]
type = PyCCEGAIrradiationEigenstrain
block = IPyC
eigenstrain_name = IPyC_IIDC_strain
temperature = temperature
irradiation_eigenstrain_scale_factor = 1
[]
[IPyC_TE]
type = PyCThermalExpansionEigenstrain
block = IPyC
eigenstrain_name = IPyC_TE_strain
temperature = temperature
[]
[SiC_elasticity_tensor]
type = MonolithicSiCElasticityTensor
block = SiC
temperature = temperature
elastic_modulus_model = miller
[]
[SiC_stress]
type = ComputeFiniteStrainElasticStress
block = SiC
[]
[SiC_thermal]
type = MonolithicSiCThermal
block = SiC
temperature = temperature
thermal_conductivity_model = miller
[]
[SiC_density]
type = StrainAdjustedDensity
block = SiC
strain_free_density = 3200.0
[]
[SiC_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = SiC
thermal_expansion_coeff = 4.9e-6
temperature = temperature
eigenstrain_name = SiC_thermal_eigenstrain
[]
[OPyC_elasticity_tensor]
type = PyCElasticityTensor
block = OPyC
temperature = temperature
initial_BAF = 1.0
[]
[OPyC_stress]
type = PyCCEGACreep
block = OPyC
creep_rate_scale_factor = 1
temperature = temperature
[]
[OPyC_thermal_conductivity]
type = HeatConductionMaterial
block = OPyC
thermal_conductivity = 4.0
specific_heat = 720.0
[]
[OPyC_density]
type = StrainAdjustedDensity
block = OPyC
strain_free_density = 1900
[]
[OPyC_IIDC]
type = PyCCEGAIrradiationEigenstrain
block = OPyC
eigenstrain_name = OPyC_IIDC_strain
temperature = temperature
irradiation_eigenstrain_scale_factor = 1
[]
[OPyC_TE]
type = PyCThermalExpansionEigenstrain
block = OPyC
eigenstrain_name = OPyC_TE_strain
temperature = temperature
[]
[characteristic_strength_SiC]
type = GenericConstantMaterial
prop_values = '9640000'
block = SiC
prop_names = 'characteristic_strength'
[]
[characteristic_strength_PyC]
type = PyCCharacteristicStrength
temperature = temperature
X = 1.02
block = 'IPyC OPyC'
[]
[]
[Dampers]
[temp]
type = MaxIncrement
variable = temperature
max_increment = 100
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
nl_rel_tol = 5e-6
nl_abs_tol = 1e-8
nl_max_its = 20
l_tol = 1e-4
l_max_its = 50
start_time = 0.0
end_time = 4.831315e7
dtmin = 1e-4
dt = 6e5
automatic_scaling = true
[]
[Postprocessors]
[ave_gas_temp]
type = ElementAverageValue
block = buffer
variable = temperature
execute_on = 'initial timestep_end'
[]
[fis_gas_released]
type = ElementIntegralMaterialProperty
mat_prop = fis_gas_released
block = fuel
use_displaced_mesh = false
execute_on = 'initial timestep_end'
[]
[gap_volume]
type = InternalVolume
boundary = buffer_IPyC_boundary
execute_on = 'initial linear'
use_displaced_mesh = true
[]
[buffer_void_volume]
type = VoidVolume
block = buffer
theoretical_density = 2250
execute_on = 'initial timestep_end'
use_displaced_mesh = true
[]
[kernel_th_density]
type = UCOTheoreticalDensity
execute_on = initial
[]
[kernel_void_volume]
type = VoidVolume
block = fuel
theoretical_density = kernel_th_density
execute_on = 'initial timestep_end'
use_displaced_mesh = true
[]
[particle_power]
type = ElementIntegralPower
variable = temperature
use_material_fission_rate = true
fission_rate_material = fission_rate
block = fuel
execute_on = 'initial timestep_end'
[]
[max_fluence]
type = ElementExtremeValue
variable = fast_neutron_fluence
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[max_burnup]
type = ElementExtremeValue
variable = burnup
block = fuel
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[SiC_stress]
type = ElementExtremeMaterialProperty
block = SiC
value_type = max
mat_prop = max_principal_stress
[]
[strength_SiC]
type = WeibullEffectiveMeanStrength
block = SiC
weibull_modulus = 6
[]
[weibull_failure_probability_SiC]
type = WeibullFailureProbability
block = SiC
weibull_modulus = 6
characteristic_strength = characteristic_strength
[]
[]
[Outputs]
print_linear_residuals = true
time_step_interval = 1
csv = true
perf_graph = true
exodus = false
[]
(examples/TRISO/correlation_function/h_ipyc_sic_debonding/triso_debonding.i)
kernel_radius = 213.35e-6
buffer_thickness = 98.9e-6
IPyC_thickness = 40.4e-6
SiC_thickness = 35.2e-6
OPyC_thickness = 43.4e-6
aspect_ratio = 1.0
coordinates1 = '${fparse kernel_radius}'
coordinates2 = '${fparse coordinates1+buffer_thickness}'
coordinates3 = '${fparse coordinates2+IPyC_thickness}'
coordinates4 = '${fparse coordinates3+SiC_thickness}'
coordinates5 = '${fparse coordinates4+OPyC_thickness}'
initial_fuel_density = 10966
[GlobalParams]
order = FIRST
family = LAGRANGE
displacements = 'disp_x disp_y'
initial_enrichment = 0.14029 # [wt-]
flux_conversion_factor = 1.0 # convert E>0.10 to E>0.18 MeV
stress_free_temperature = 481 # used for thermal expansion
energy_per_fission = 3.204e-11 # [J/fission]
O_U = 1.428 # Initial Oxygen to Uranium atom ratio
C_U = 0.392 # Initial Carbon to Uranium atom ratio
anisotropy = false
[]
[Mesh]
coord_type = RZ
[gen]
type = TRISO2DMeshGenerator
elem_type = quad4
coordinates = '0 ${coordinates1} ${coordinates2} ${coordinates2} ${coordinates3} ${coordinates4} '
'${coordinates5}'
mesh_density = '20 8 0 8 8 8'
block_names = 'fuel buffer IPyC SiC OPyC'
num_sectors = 60
aspect_ratio = ${aspect_ratio}
all_bottom_left = true
[]
[breakmesh]
input = gen
type = BreakMeshByBlockGenerator
block_pairs = '3 4'
add_interface_on_two_sides = true
split_interface = true
[]
[opyc_node]
type = ExtraNodesetGenerator
input = breakmesh
new_boundary = 'opyc_node'
nodes = '4133'
[]
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[UserObjects]
[particle_geometry]
type = TRISOGeometry
outer_OPyC = OPyC_outer_boundary
outer_SiC = SiC_outer_boundary
outer_IPyC = IPyC_outer_boundary
inner_IPyC = IPyC_inner_boundary
outer_buffer = buffer_outer_boundary
outer_kernel = fuel_outer_boundary
include_particle = true
include_pebble = false
[]
[]
[Variables]
[temperature]
initial_condition = 481
[]
[]
[AuxVariables]
[bounds_dummy]
order = FIRST
family = LAGRANGE
[]
[fission_rate]
order = CONSTANT
family = MONOMIAL
[]
[burnup]
order = CONSTANT
family = MONOMIAL
[]
[fast_neutron_flux]
order = CONSTANT
family = MONOMIAL
[]
[fast_neutron_fluence]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[temp_bc]
type = PiecewiseLinear
data_file = outer_temp.csv
x_index_in_file = 0
y_index_in_file = 1
format = columns
[]
[fission_rate]
type = ConstantFunction
value = 5.75e19
[]
[]
[Physics/SolidMechanics/QuasiStatic]
generate_output = 'stress_xx stress_yy stress_zz strain_xx strain_yy strain_zz'
add_variables = true
temperature = temperature
strain = FINITE
incremental = true
decomposition_method = TaylorExpansion
volumetric_locking_correction = true
[fuel]
block = fuel
eigenstrain_names = 'UCO_swelling_eigenstrain UCO_TE_strain'
extra_vector_tags = 'ref'
[]
[buffer]
block = buffer
eigenstrain_names = 'Buffer_IIDC_strain Buffer_TE_strain'
extra_vector_tags = 'ref'
[]
[IPyC]
block = IPyC
eigenstrain_names = 'IPyC_IIDC_strain IPyC_TE_strain'
extra_vector_tags = 'ref'
[]
[SiC]
block = SiC
eigenstrain_names = 'SiC_thermal_eigenstrain'
extra_vector_tags = 'ref'
[]
[OPyC]
block = OPyC
eigenstrain_names = 'OPyC_IIDC_strain OPyC_TE_strain'
extra_vector_tags = 'ref'
[]
[]
[Physics/SolidMechanics/CohesiveZone]
[czm]
boundary = 'IPyC_SiC'
displacements = 'disp_x disp_y'
strain = FINITE
[]
[]
[Kernels]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temperature
extra_vector_tags = 'ref'
[]
[heat]
type = HeatConduction
variable = temperature
extra_vector_tags = 'ref'
[]
[heat_source]
type = NeutronHeatSource
variable = temperature
block = fuel
fission_rate = fission_rate
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[fissionrate]
type = MaterialRealAux
variable = fission_rate
property = fission_rate
block = fuel
execute_on = timestep_begin
[]
[burnup]
type = MaterialRealAux
variable = burnup
property = burnup
block = fuel
execute_on = timestep_begin
[]
[fast_neutron_flux]
type = MaterialRealAux
variable = fast_neutron_flux
property = fast_neutron_flux
execute_on = timestep_begin
[]
[fast_neutron_fluence]
type = MaterialRealAux
variable = fast_neutron_fluence
property = fast_neutron_fluence
execute_on = timestep_begin
[]
[]
[ThermalContact]
[thermal_contact]
type = GasGapHeatTransfer
variable = temperature
primary = IPyC_inner_boundary
secondary = buffer_outer_boundary
initial_moles = initial_moles
gas_released = 'fis_gas_released'
released_gas_types = 'Kr Xe'
released_fractions = '0.185 0.815'
tangential_tolerance = 1e-6
quadrature = true
min_gap = 1e-7
max_gap = 50e-6
gap_geometry_type = sphere
sphere_origin = '0 0 0'
[]
[thermal_contact_ipyc_sic]
type = GapHeatTransfer
variable = temperature
primary = IPyC_SiC
secondary = SiC_IPyC
quadrature = true
tangential_tolerance = 1e-6
min_gap = 1e-7
max_gap = 50e-6
gap_conductivity = 100
gap_geometry_type = sphere
sphere_origin = '0 0 0'
[]
[]
[BCs]
[no_disp_x]
type = DirichletBC
variable = disp_x
boundary = xzero
value = 0.0
[]
[no_disp_y]
type = DirichletBC
variable = disp_y
boundary = '2001 2002 opyc_node'
value = 0.0
[]
[freesurf_temp]
type = FunctionDirichletBC
variable = temperature
function = temp_bc
boundary = exterior
[]
[Pressure]
[exterior]
boundary = exterior
factor = 0.1e6
[]
[]
[PlenumPressure]
[plenumPressure]
boundary = buffer_IPyC_boundary
startup_time = 1e4
initial_pressure = 0
R = 8.3145
output_initial_moles = initial_moles
temperature = ave_gas_temp
volume = 'gap_volume buffer_void_volume kernel_void_volume'
material_input = 'fis_gas_released'
output = gas_pressure
[]
[]
[]
[Materials]
[tangential_stress]
type = RankTwoCylindricalComponent
rank_two_tensor = stress
cylindrical_axis_point1 = '0 0 0'
cylindrical_axis_point2 = '0 0 1'
cylindrical_component = HoopStress
property_name = tangential_stress
outputs = all
[]
[radial_stress]
type = RankTwoCylindricalComponent
rank_two_tensor = stress
cylindrical_axis_point1 = '0 0 0'
cylindrical_axis_point2 = '0 0 1'
cylindrical_component = RadialStress
property_name = radial_stress
outputs = all
[]
[normal_vectors_triso]
type = NormalVectorsTRISO
block = 'buffer IPyC OPyC'
triso_geometry = particle_geometry
[]
[normal_strength]
type = GenericFunctionMaterial
prop_names = 'N'
prop_values = 'if(y>345e-6,0.5,1.0)*3e7'
outputs = all
[]
[czm]
type = BiLinearMixedModeTraction
boundary = 'IPyC_SiC'
penalty_stiffness = 4e14
lag_mode_mixity = true
GI_c = 8
GII_c = 4
normal_strength = N
shear_strength = 1e7
displacements = 'disp_x disp_y'
eta = 2
viscosity = 1
alpha = 1e-10
mixed_mode_criterion = POWER_LAW
outputs = all
[]
[fission_rate]
type = GenericFunctionMaterial
prop_names = fission_rate
prop_values = fission_rate
block = fuel
[]
[fast_neutron_flux]
type = FastNeutronFlux
calculate_fluence = true
factor = 6.2425e+17
[]
[UCO_burnup]
type = TRISOBurnup
initial_density = ${initial_fuel_density}
block = fuel
[]
[UCO_thermal]
type = UCOThermal
block = fuel
temperature = temperature
[]
[UCO_elasticity_tensor]
type = UCOElasticityTensor
block = fuel
temperature = temperature
[]
[UCO_stress]
type = ComputeFiniteStrainElasticStress
block = fuel
[]
[UCO_VolumetricSwellingEigenstrain]
type = UCOVolumetricSwellingEigenstrain
block = fuel
eigenstrain_name = UCO_swelling_eigenstrain
[]
[fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = fuel
thermal_expansion_coeff = 10.0e-6
temperature = temperature
eigenstrain_name = UCO_TE_strain
[]
[UCO_density]
type = StrainAdjustedDensity
block = fuel
strain_free_density = ${initial_fuel_density}
[]
[fission_gas_release]
type = UCOFGR
block = fuel
average_grain_radius = 10e-6
temperature = temperature
triso_geometry = particle_geometry
cutoff_neutron_flux = 0.0
[]
[BAF_IPyC]
type = BaconAnisotropyFactor
initial_BAF = 1.0465
block = IPyC
[]
[BAF_OPyC]
type = BaconAnisotropyFactor
initial_BAF = 1.0429
block = OPyC
[]
[buffer_elasticity_tensor]
type = BufferElasticityTensor
block = buffer
temperature = temperature
[]
[buffer_stress]
type = BufferCEGACreep
block = buffer
temperature = temperature
[]
[buffer_thermal]
type = BufferThermal
block = buffer
initial_density = 1050.0
[]
[buffer_density]
type = StrainAdjustedDensity
block = buffer
strain_free_density = 1050.0
[]
[buffer_TE]
type = BufferThermalExpansionEigenstrain
block = buffer
eigenstrain_name = Buffer_TE_strain
temperature = temperature
[]
[buffer_IIDC]
type = BufferCEGAIrradiationEigenstrain
block = buffer
eigenstrain_name = Buffer_IIDC_strain
temperature = temperature
[]
[IPyC_elasticity_tensor]
type = PyCElasticityTensor
block = IPyC
temperature = temperature
[]
[IPyC_stress]
type = PyCCEGACreep
block = IPyC
creep_rate_scale_factor = 1
temperature = temperature
[]
[IPyC_thermal]
type = HeatConductionMaterial
block = IPyC
thermal_conductivity = 4.0
specific_heat = 720.0
[]
[IPyC_density]
type = GenericConstantMaterial
block = IPyC
prop_names = 'density'
prop_values = 1890
[]
[IPyC_IIDC]
type = PyCCEGAIrradiationEigenstrain
block = IPyC
eigenstrain_name = IPyC_IIDC_strain
temperature = temperature
irradiation_eigenstrain_scale_factor = 1
[]
[IPyC_TE]
type = PyCThermalExpansionEigenstrain
block = IPyC
eigenstrain_name = IPyC_TE_strain
temperature = temperature
[]
[SiC_elasticity_tensor]
type = MonolithicSiCElasticityTensor
block = SiC
temperature = temperature
elastic_modulus_model = miller
[]
[SiC_stress]
type = ComputeFiniteStrainElasticStress
block = SiC
[]
[SiC_thermal]
type = MonolithicSiCThermal
block = SiC
temperature = temperature
thermal_conductivity_model = miller
[]
[SiC_density]
type = StrainAdjustedDensity
block = SiC
strain_free_density = 3200.0
[]
[SiC_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = SiC
thermal_expansion_coeff = 4.9e-6
temperature = temperature
eigenstrain_name = SiC_thermal_eigenstrain
[]
[OPyC_elasticity_tensor]
type = PyCElasticityTensor
block = OPyC
temperature = temperature
initial_BAF = 1.0
[]
[OPyC_stress]
type = PyCCEGACreep
block = OPyC
creep_rate_scale_factor = 1
temperature = temperature
[]
[OPyC_thermal_conductivity]
type = HeatConductionMaterial
block = OPyC
thermal_conductivity = 4.0
specific_heat = 720.0
[]
[OPyC_density]
type = GenericConstantMaterial
block = OPyC
prop_names = 'density'
prop_values = 1900
[]
[OPyC_IIDC]
type = PyCCEGAIrradiationEigenstrain
block = OPyC
eigenstrain_name = OPyC_IIDC_strain
temperature = temperature
irradiation_eigenstrain_scale_factor = 1
[]
[OPyC_TE]
type = PyCThermalExpansionEigenstrain
block = OPyC
eigenstrain_name = OPyC_TE_strain
temperature = temperature
[]
[characteristic_strength_SiC]
type = GenericConstantMaterial
prop_values = '9640000'
block = SiC
prop_names = 'characteristic_strength'
[]
[characteristic_strength_PyC]
type = PyCCharacteristicStrength
temperature = temperature
X = 1.02
block = 'IPyC OPyC'
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Bounds]
[temperature_lower_bound]
type = ConstantBounds
variable = bounds_dummy
bounded_variable = temperature
bound_type = lower
bound_value = 1
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_factor_shift_type -pc_factor_shift_amount -snes_type'
petsc_options_value = 'lu nonzero 1e-10 vinewtonrsls'
line_search = 'none'
nl_rel_tol = 1e-8
nl_abs_tol = 1e-8
nl_max_its = 15
l_tol = 1e-4
l_max_its = 50
start_time = 0.0
end_time = 4.831315e7
dt = 86400
dtmin = 1
[]
[Postprocessors]
[ave_gas_temp]
type = ElementAverageValue
block = buffer
variable = temperature
execute_on = 'initial timestep_end'
[]
[fis_gas_released]
type = ElementIntegralMaterialProperty
mat_prop = fis_gas_released
block = fuel
use_displaced_mesh = false
execute_on = 'initial timestep_end'
[]
[gap_volume]
type = InternalVolume
boundary = buffer_IPyC_boundary
execute_on = 'initial linear'
use_displaced_mesh = true
[]
[buffer_void_volume]
type = VoidVolume
block = buffer
theoretical_density = 2250
execute_on = 'initial timestep_end'
use_displaced_mesh = true
[]
[kernel_th_density]
type = UCOTheoreticalDensity
execute_on = initial
[]
[kernel_void_volume]
type = VoidVolume
block = fuel
theoretical_density = kernel_th_density
execute_on = 'initial timestep_end'
use_displaced_mesh = true
[]
[particle_power]
type = ElementIntegralPower
variable = temperature
use_material_fission_rate = true
fission_rate_material = fission_rate
block = fuel
execute_on = 'initial timestep_end'
[]
[max_fluence]
type = ElementExtremeValue
variable = fast_neutron_fluence
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[max_burnup]
type = ElementExtremeValue
variable = burnup
block = fuel
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[strength_SiC]
type = WeibullEffectiveMeanStrength
block = SiC
weibull_modulus = 6
[]
[weibull_failure_probability_SiC]
type = WeibullFailureProbability
block = SiC
weibull_modulus = 6
characteristic_strength = characteristic_strength
[]
[weibull_failure_probability_IPyC]
type = WeibullFailureProbability
block = IPyC
weibull_modulus = 9.5
characteristic_strength = characteristic_strength
[]
[max_radial_sic]
type = ElementExtremeValue
variable = radial_stress
block = SiC
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[SiC_stress]
type = ElementExtremeValue
variable = tangential_stress
block = SiC
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
print_linear_residuals = false
time_step_interval = 1
csv = true
perf_graph = true
exodus = true
[]
(test/tests/solid_mechanics/monolithicSiC_mechanics/elasticity_miller.i)
# This test case is prepared to test the elastic moduli of monolithic (CVD) SiC
# using the correlation provided in:
#
# G. K. Miller, D. A. Petti, J. T. Maki, D. L. Knudson, and
# W. F. Skerjanc, "PARFUME Theory and Model Basis Report",
# Report INL/EXT-08-14497 Rev. 1, Idaho National Laboratory, September 2018
#
# The geometry represents a ring of monolothic SiC with inner radius of 0.005 m,
# outer radius of 0.0055 m, and a height of 0.01 m.
#
# An axial load is applied to the top of the ring with a value of -100 MPa.
# The strain in the radial direction can be calculated using the Young's modulus
# and the Poisson's ratio from the applied 100.0 MPa pressure.
#
# epsilon_{rr} = nu * sigma_{axial} / E
#
# The Young's modulus (E) for monolithic SiC is calculated via a Piecewise
# linear function generated from the tabulated values below:
#
# Temperature (K) E (GPa)
# 298.15 428.0
# 1213.15 375.0
# 1488.15 340.0
# 1873.15 198.0
#
# The Poisson's ratio of monolithic SiC using the Miller model is taken as 0.13.
#
# The results of BISON compared to the analytical solution for an increase in
# temperature under constant pressure are summarized:
#
# BISON Analytical
# Temperature (K) strain_rr (m/m) strain_rr (m/m)
# 450 3.1011e-5 3.1011e-5
# 600 3.1667e-5 3.1667e-5
# 750 3.2352e-5 3.2352e-5
# 900 3.3067e-5 3.3067e-5
# 1050 3.3815e-5 3.3815e-5
# 1200 3.4596e-5 3.4596e-5
# 1350 3.6355e-5 3.6355e-5
# 1500 3.8733e-5 3.8733e-5
# 1650 4.6378e-5 4.6378e-5
# 1800 5.7783e-5 5.7783e-5
[Mesh]
coord_type = RZ
[generated_mesh]
type = GeneratedMeshGenerator
dim = 2
xmin = 0.005
xmax = 0.0055
ymin = 0
ymax = 0.01
[]
[]
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Variables]
[temperature]
order = FIRST
family = LAGRANGE
initial_condition = 300.0
[]
[]
[Physics]
[SolidMechanics]
[QuasiStatic]
[all]
strain = FINITE
add_variables = true
generate_output = 'elastic_strain_xx'
[]
[]
[]
[]
[Functions]
[temperature_function]
type = PiecewiseLinear
x = '0 10'
y = '300 1800'
[]
[pressure_function]
type = PiecewiseLinear
x = '0 10'
y = '1 1'
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temperature
[]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temperature
[]
[]
[BCs]
[top_pressure] #Simplified BC to apply pressure in only disp_y
type = Pressure
boundary = top
variable = disp_y
function = pressure_function
factor = 100e6
[]
[u_bottom_fix]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[]
[temp_bc]
type = FunctionDirichletBC
variable = temperature
boundary = 'bottom top left right'
function = temperature_function
[]
[]
[Materials]
[elasticity_tensor]
type = MonolithicSiCElasticityTensor
temperature = temperature
elastic_modulus_model = MILLER
outputs = all
[]
[stress]
type = ComputeFiniteStrainElasticStress
[]
[clad_density]
type = StrainAdjustedDensity
strain_free_density = 3210.0
[]
[thermal]
type = MonolithicSiCThermal
temperature = temperature
thermal_conductivity_model = MILLER
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart'
petsc_options_value = '101'
line_search = 'none'
l_max_its = 100
nl_max_its = 100
nl_rel_tol = 1e-8
nl_abs_tol = 1e-8
l_tol = 1e-8
start_time = 0.0
end_time = 10
dt = 1
[]
[Postprocessors]
[elastic_strain_rr]
type = ElementAverageValue
variable = elastic_strain_xx
[]
[temp]
type = AverageNodalVariableValue
variable = temperature
execute_on = 'initial timestep_end'
[]
[youngs_avg]
type = ElementAverageValue
variable = youngs_modulus
[]
[poissons_avg]
type = ElementAverageValue
variable = poissons_ratio
[]
[]
[Outputs]
csv = true
[]
(assessment/TRISO/validation/AGR-2/AGR-2_base.i)
#COMPACT = <compact_id>
#DATA_FILE = <data_file_name>
[GlobalParams]
order = SECOND
family = LAGRANGE
energy_per_fission = 3.204e-11 # [J/fission]
time_average_mass_rate = false
[]
[Mesh]
coord_type = RSPHERICAL
[gen]
type = TRISO1DFiveLayerMeshGenerator
elem_type = EDGE3
kernel_mesh_density = 20
buffer_mesh_density = 15
IPyC_mesh_density = 12
SiC_mesh_density = 8
OPyC_mesh_density = 6
block_names = 'fuel buffer IPyC SiC OPyC'
include_gap = false
kernel_bias = 0.8
buffer_bias = 1.25
buffer_dual_bias = 0.8
IPyC_bias = 1.25
IPyC_dual_bias = 0.8
SiC_bias = 1.25
SiC_dual_bias = 0.8
OPyC_bias = 1.25
OPyC_dual_bias = 0.8
[]
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[UserObjects]
[particle_geometry]
type = TRISOGeometry
outer_OPyC = OPyC_outer_boundary
outer_SiC = SiC_outer_boundary
outer_IPyC = IPyC_outer_boundary
inner_IPyC = IPyC_inner_boundary
outer_buffer = buffer_outer_boundary
outer_kernel = fuel_outer_boundary
include_particle = true
include_pebble = false
[]
[]
[Variables]
[temperature]
initial_condition = 923.15
[]
[]
[AuxVariables]
[fission_rate]
block = fuel
order = CONSTANT
family = MONOMIAL
[]
[burnup]
block = fuel
order = CONSTANT
family = MONOMIAL
[]
[fast_neutron_fluence]
order = CONSTANT
family = MONOMIAL
[]
[density]
order = CONSTANT
family = MONOMIAL
[]
[thermal_conductivity]
order = CONSTANT
family = MONOMIAL
[]
[specific_heat]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[temp_bc_file]
type = PiecewiseLinear
#data_file = DATA_FILE
x_index_in_file = 0
y_index_in_file = 1
xy_in_file_only = false
format = columns
[]
[temp_bc_safety]
type = ParsedFunction
symbol_names = 'test_temperature'
symbol_values = '1873.15'
expression = 'start := 50284800+1800;
ramp1 := 120.0/3600.0;
ramp2 := 120.0/3600.0;
ramp3 := 50.0/3600.0;
ramp4 := -600.0/3600.0;
room := 303.15;
plateau1 := 673.15;
plateau2 := 1523.15;
hold1 := 7200;
hold2 := 43200;
hold3 := 1080000;
ramp_time1 := (plateau1-room)/ramp1;
ramp_time2 := (plateau2-plateau1)/ramp2;
ramp_time3 := (test_temperature-plateau2)/ramp3;
ramp_time4 := (room-test_temperature)/ramp4;
t1 := start+ramp_time1;
t2 := t1+hold1;
t3 := t2+ramp_time2;
t4 := t3+hold2;
t5 := t4+ramp_time3;
t6 := t5+hold3;
t7 := t6+ramp_time4;
if(t<start,room,
if(t<t1,room+(t-start)*ramp1,
if(t<t2,plateau1,
if(t<t3,plateau1+(t-t2)*ramp2,
if(t<t4,plateau2,
if(t<t5,plateau2+(t-t4)*ramp3,
if(t<t6,test_temperature,
if(t<t7,test_temperature+(t-t6)*ramp4,
room))))))))'
[]
[temp_bc]
type = ParsedFunction
symbol_names = 'tbcf tbcs'
symbol_values = 'temp_bc_file temp_bc_safety'
expression = 'if(t<=50284800,tbcf,tbcs)'
[]
[power_history] # W/m^3
type = PiecewiseLinear
#data_file = DATA_FILE
x_index_in_file = 0
y_index_in_file = 2
xy_in_file_only = false
format = columns
[]
[fission_rate_from_power]
type = LinearCombinationFunction
functions = power_history
# W/m^3 / (1.602e-13 J/MeV) / (200 MeV/fission)
w = 3.1211e10
[]
[fission_rate]
type = ParsedFunction
symbol_names = 'fr'
symbol_values = 'fission_rate_from_power'
expression = 'if(t<=50284800,fr,0)'
[]
[fast_neutron_fluence]
type = PiecewiseLinear
#data_file = DATA_FILE
x_index_in_file = 0
y_index_in_file = 3
xy_in_file_only = false
format = columns
[]
[d1_function]
type = ParsedFunction
expression = 'exp(t/4.5e25)'
[]
[]
[Kernels]
[heat_dt]
type = HeatConductionTimeDerivative
variable = temperature
[]
[heat]
type = HeatConduction
variable = temperature
extra_vector_tags = 'ref'
[]
[heat_source]
type = NeutronHeatSource
variable = temperature
block = fuel
fission_rate = fission_rate
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[fissionrate]
type = MaterialRealAux
variable = fission_rate
property = fission_rate
block = fuel
execute_on = timestep_begin
[]
[burnup]
type = MaterialRealAux
variable = burnup
property = burnup
block = fuel
execute_on = timestep_begin
[]
[fast_neutron_fluence]
type = MaterialRealAux
variable = fast_neutron_fluence
property = fast_neutron_fluence
block = 'fuel buffer IPyC SiC OPyC'
execute_on = timestep_begin
[]
[density]
type = MaterialRealAux
variable = density
property = density
block = 'fuel buffer IPyC SiC OPyC'
execute_on = 'initial linear'
[]
[thermal_conductivity]
type = MaterialRealAux
variable = thermal_conductivity
property = thermal_conductivity
block = 'fuel buffer IPyC SiC OPyC'
execute_on = timestep_end
[]
[specific_heat]
type = MaterialRealAux
variable = specific_heat
property = specific_heat
block = 'fuel buffer IPyC SiC OPyC'
execute_on = timestep_end
[]
[]
[BCs]
# fix temperature on free surface
[freesurf_temp]
type = FunctionDirichletBC
variable = temperature
function = temp_bc
boundary = exterior
[]
[]
[Materials]
[fission_rate]
type = GenericFunctionMaterial
prop_names = fission_rate
prop_values = fission_rate
[]
[fast_neutron_fluence]
type = GenericFunctionMaterial
prop_names = fast_neutron_fluence
prop_values = fast_neutron_fluence
[]
### Fuel properties
[burnup]
type = TRISOBurnup
time_average_fission_rate = false
[]
[fuel_thermal]
block = fuel
temperature = temperature
[]
[fuel_density]
type = ParsedMaterial
block = fuel
property_name = density
expression = ${initial_fuel_density}
[]
### Buffer Properties
[buffer_thermal]
type = BufferThermal
block = buffer
[]
[Buffer_density]
type = ParsedMaterial
block = buffer
property_name = density
expression = ${initial_buffer_density}
[]
### IPyC properties
[IPyC_thermal]
type = HeatConductionMaterial
block = IPyC
thermal_conductivity = 4.0
specific_heat = 720.0
[]
[IPyC_density]
type = ParsedMaterial
block = IPyC
property_name = density
expression = ${initial_ipyc_density}
[]
### SiC properties
[SiC_thermal]
type = MonolithicSiCThermal
block = SiC
temperature = temperature
thermal_conductivity_model = miller
[]
[SiC_density]
type = ParsedMaterial
block = SiC
property_name = density
expression = ${initial_sic_density}
[]
### OPyC properties
[OPyC_thermal_conductivity]
type = HeatConductionMaterial
block = OPyC
thermal_conductivity = 4.0
specific_heat = 720.0
[]
[OPyC_density]
type = ParsedMaterial
block = OPyC
property_name = density
expression = ${initial_opyc_density}
[]
[]
[Dampers]
[temp]
type = MaxIncrement
variable = temperature
max_increment = 50
[]
[]
[Debug]
show_var_residual_norms = true
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
nl_rel_tol = 1e-6
nl_abs_tol = 5e-12
nl_max_its = 50
l_tol = 1e-4
l_max_its = 50
start_time = 0.0
end_time = 50284800
num_steps = 1500
dt = 86400
dtmax = 86400
dtmin = 100
[TimeStepper]
type = FunctionDT
function = 'if(t<50284799,86400,1800)'
[]
automatic_scaling = true
compute_scaling_once = false
[]
[Postprocessors]
[_dt]
type = TimestepSize
execute_on = timestep_end
[]
### Temperature
[temp_min]
type = NodalExtremeValue
variable = temperature
value_type = 'min'
execute_on = 'initial timestep_end'
[]
[temp_max]
type = NodalExtremeValue
variable = temperature
value_type = 'max'
execute_on = 'initial timestep_end'
[]
### Irradiation conditions
[particle_power]
type = ElementIntegralPower
variable = temperature
use_material_fission_rate = true
fission_rate_material = fission_rate
block = fuel
execute_on = 'initial timestep_end'
[]
[max_fluence]
type = ElementExtremeValue
variable = fast_neutron_fluence
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[max_burnup]
type = ElementExtremeValue
variable = burnup
block = fuel
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = false
[console]
type = Console
time_step_interval = 1
[]
[exodus]
type = Exodus
file_base = COMPACT
[]
[release]
type = CSV
file_base = release_COMPACT
sort_columns = true
[]
[final_release]
type = CSV
file_base = final_release_COMPACT
sort_columns = true
execute_on = 'final'
[]
[]
(test/tests/monolithicSiCThermal/thermal_stone_irradiated.i)
# The mesh is a 1x1 square (single element).
# The temperature is held constant at 1073.15 K with a varying fast fluence
# from 0 to 1e25 n/m^2 over 1 second. The swelling is calculated by the Katoh
# volumetric swelling model. At 1073.15 K the calculated unirradiated thermal
# conductivity using the model of:
#
# J. G. Stone, R. Schleicher, C. P. Deck, G. M. Jacobsen, H. E. Khalifa, C. A.
# Back, "Stress analysis and probablistic assessment of multi-layer SiC-based
# accident tolerant nuclear fuel cladding," Journal of Nuclear Materials, 466,
# 2015, p. 682-697.
#
# is 44.7072 W/m-K. Then, the degradation due to swelling for monolithic silicon
# carbide is given by:
#
# 1 / k_irradiated = R_0 + R_irr
#
# where R_0 = 1 / k_unirradiated and R_irr = 6.08 * S where S is the swelling
# strain. The BISON results are compared to the analytical using the BISON
# values for swelling.
#
# Fluence Swelling Monolithic SiC k Monolithic SiC k
# (dpa) Strain (-) BISON(W/m-K) analytical(W/m-K)
# 1.0 5.91955e-3 17.1354 17.1354
# 2.0 7.20081e-3 15.1175 15.1175
# 3.0 7.70534e-3 14.4475 14.4475
# 4.0 7.90061e-3 14.2039 14.2039
# 5.0 7.97852e-3 14.1089 14.1089
[GlobalParams]
displacements = 'disp_x disp_y'
order = FIRST
family = LAGRANGE
[]
[Mesh]
[mesh]
type = GeneratedMeshGenerator
dim = 2
[]
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[temperature]
initial_condition = 1073.15
[]
[]
[AuxVariables]
[fast_neutron_fluence]
[]
[swell]
order = CONSTANT
family = MONOMIAL
[]
[thermal_conductivity]
order = CONSTANT
family = MONOMIAL
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[square]
block = 0
add_variables = false
strain = FINITE
eigenstrain_names = 'swelling_strain'
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temperature
[]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temperature
[]
[]
[AuxKernels]
[thermal_conductivity]
type = MaterialRealAux
variable = thermal_conductivity
property = thermal_conductivity
block = 0
execute_on = 'initial linear'
[]
[fast_neutron_fluence]
type = FunctionAux
variable = fast_neutron_fluence
function = fast_neutron_fluence
block = 0
execute_on = 'timestep_begin'
[]
[total_swelling]
type = MaterialRealAux
variable = swell
property = swelling
block = 0
[]
[]
[Functions]
[fast_neutron_fluence]
type = PiecewiseLinear
x = '0 1.0'
y = '0 5e25'
[]
[]
[BCs]
[temperature_all]
type = DirichletBC
boundary = 'left right bottom top'
variable = temperature
value = 1073.15
[]
[leftX]
type = DirichletBC
variable = disp_x
boundary = 'left'
value = 0.0
[]
[bottomY]
type = DirichletBC
variable = disp_y
boundary = 'bottom'
value = 0.0
[]
[]
[Materials]
[MonolithicSiCThermal]
type = MonolithicSiCThermal
temperature = temperature
thermal_conductivity_model = STONE # This is the default
[]
[density]
type = ParsedMaterial
block = 0
property_name = density
expression = 3210.0
[]
[swelling]
type = CompositeSiCVolumetricSwellingEigenstrain
block = 0
temperature = temperature
swelling_model = KATOH
number_of_substeps = 100
fast_neutron_fluence = fast_neutron_fluence
eigenstrain_name = swelling_strain
[]
[elasticity_tensor] # isotropic elasticity tensor
type = ComputeIsotropicElasticityTensor
block = 0
youngs_modulus = 3e11
poissons_ratio = 0.17
[]
[elastic_stress]
type = ComputeFiniteStrainElasticStress
block = 0
[]
[]
[Executioner]
type = Transient
solve_type = PJFNK
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart'
petsc_options_value = '101'
line_search = 'none'
nl_rel_tol = 1e-5
nl_abs_tol = 1e-10
l_tol = 1e-5
start_time = 0.0
dt = 0.01
end_time = 1.0
[]
[Postprocessors]
[avg_temperature]
type = SideAverageValue
boundary = 'left right top bottom'
execute_on = 'initial timestep_end'
variable = temperature
[]
[avg_th_cond]
type = ElementAverageValue
block = 0
variable = thermal_conductivity
execute_on = 'initial timestep_end'
[]
[swelling_out]
type = ElementAverageValue
variable = swell
execute_on = 'initial timestep_end'
block = 0
[]
[]
[Outputs]
exodus = true
[]
(test/tests/solid_mechanics/monolithicSiC_mechanics/elasticity_snead_ad.i)
# This test case is prepared to test the elastic moduli of monolithic (CVD) SiC
# using the correlation provided in:
#
# L. L. Snead, T. Nozawa, Y. Katoh, T-S. Byun, S. Kondo, D. A. Petti,
# "Handbook of SiC propeties for fuel performance modeling," Journal of Nuclear
# Materials, 371, 2007, p. 329-377.
#
# The geometry represents a ring of monolothic SiC with inner radius of 0.005 m,
# outer radius of 0.0055 m, and a height of 0.01 m.
#
# An axial load is applied to the top of the ring with a value of -100 MPa.
# The strain in the radial direction can be calculated using the Young's modulus
# and the Poisson's ratio from the applied 100.0 MPa pressure.
#
# epsilon_{rr} = nu * sigma_{axial} / E
#
# The Young's modulus (E) for monolithic SiC is calculated via:
#
# E = E_o - BT * exp(-T_o / T)
#
# where E_o = 460e9 Pa, B = 0.04e9 Pa/K, T_o = 962.0 K, and T is the temperature
# in K.
#
# The Poisson's ratio of monolithic (CVD) SiC is taken as 0.21.
#
# The results of BISON compared to the analytical solution for an increase in
# temperature under constant pressure are summarized:
#
# BISON Analytical
# Temperature (K) strain_rr (m/m) strain_rr (m/m)
# 450 4.5864e-5 4.5864e-5
# 600 4.6137e-5 4.6137e-5
# 750 4.6493e-5 4.6493e-5
# 900 4.6913e-5 4.6913e-5
# 1050 4.7383e-5 4.7383e-5
# 1200 4.7894e-5 4.7894e-5
# 1350 4.8441e-5 4.8441e-5
# 1500 4.9012e-5 4.9012e-5
# 1650 4.9627e-5 4.9627e-5
# 1800 5.0262e-5 5.0262e-5
[Mesh]
coord_type = RZ
[generated_mesh]
type = GeneratedMeshGenerator
dim = 2
xmin = 0.005
xmax = 0.0055
ymin = 0
ymax = 0.01
[]
[]
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Variables]
[temperature]
order = FIRST
family = LAGRANGE
initial_condition = 300.0
[]
[]
[Physics]
[SolidMechanics]
[QuasiStatic]
[all]
strain = FINITE
add_variables = true
generate_output = 'elastic_strain_xx'
use_automatic_differentiation = true
[]
[]
[]
[]
[Functions]
[temperature_function]
type = PiecewiseLinear
x = '0 10'
y = '300 1800'
[]
[pressure_function]
type = PiecewiseLinear
x = '0 10'
y = '1 1'
[]
[swelling_func]
type = ConstantFunction
value = 0.0
[]
[]
[Kernels]
[heat]
type = ADHeatConduction
variable = temperature
[]
[heat_ie]
type = ADHeatConductionTimeDerivative
variable = temperature
[]
[]
[BCs]
[top_pressure] #Simplified BC to apply pressure in only disp_y
type = ADPressure
boundary = top
variable = disp_y
function = pressure_function
factor = 100e6
[]
[u_bottom_fix]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[]
[temp_bc]
type = FunctionDirichletBC
variable = temperature
boundary = 'bottom top left right'
function = temperature_function
[]
[]
[Materials]
[elasticity_tensor]
type = ADMonolithicSiCElasticityTensor
temperature = temperature
[]
[stress]
type = ADComputeFiniteStrainElasticStress
[]
[clad_density]
type = ADStrainAdjustedDensity
strain_free_density = 3210.0
[]
[thermal]
type = ADMonolithicSiCThermal
temperature = temperature
thermal_conductivity_model = SNEAD
[]
[swelling]
type = ADGenericFunctionMaterial
prop_names = swelling
prop_values = swelling_func
outputs = all
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = Newton
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart'
petsc_options_value = '101'
line_search = 'none'
l_max_its = 100
nl_max_its = 100
nl_rel_tol = 1e-8
nl_abs_tol = 1e-8
l_tol = 1e-8
start_time = 0.0
end_time = 10
dt = 1
[]
[Postprocessors]
[elastic_strain_rr]
type = ElementAverageValue
variable = elastic_strain_xx
[]
[temp]
type = AverageNodalVariableValue
variable = temperature
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
csv = true
[]
(examples/TRISO/failure_probability_monte_carlo/triso_1d_function.i)
initial_fuel_density = 5
[GlobalParams]
order = FIRST
family = LAGRANGE
displacements = 'disp_x'
initial_enrichment = 0.14029 # [wt-]
flux_conversion_factor = 1.0 # convert E>0.10 to E>0.18 MeV
stress_free_temperature = 481 # used for thermal expansion
energy_per_fission = 3.204e-11 # [J/fission]
O_U = 1.428 # Initial Oxygen to Uranium atom ratio
C_U = 0.392 # Initial Carbon to Uranium atom ratio
[]
[Mesh]
coord_type = RSPHERICAL
[gen]
type = TRISO1DFiveLayerMeshGenerator
elem_type = EDGE3
kernel_radius = 213.35e-6
buffer_thickness = 98.9e-6
IPyC_thickness = 40.4e-6
SiC_thickness = 35.2e-6
OPyC_thickness = 43.4e-6
kernel_mesh_density = ${initial_fuel_density}
buffer_mesh_density = 3
IPyC_mesh_density = 5
SiC_mesh_density = 3
OPyC_mesh_density = 4
[]
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[UserObjects]
[particle_geometry]
type = TRISOGeometry
outer_OPyC = OPyC_outer_boundary
outer_SiC = SiC_outer_boundary
outer_IPyC = IPyC_outer_boundary
inner_IPyC = IPyC_inner_boundary
outer_buffer = buffer_outer_boundary
outer_kernel = fuel_outer_boundary
include_particle = true
include_pebble = false
IPyC_thickness_mean = 40.4e-6
SiC_thickness_mean = 35.2e-6
OPyC_thickness_mean = 43.4e-6
execute_on = 'INITIAL TIMESTEP_END'
[]
[sic_failure_terminator]
type = Terminator
expression = 'sic_failure_overall > 0'
[]
[]
[Variables]
[temperature]
initial_condition = 481
[]
[]
[AuxVariables]
[fission_rate]
order = CONSTANT
family = MONOMIAL
[]
[burnup]
order = CONSTANT
family = MONOMIAL
[]
[fast_neutron_flux]
order = CONSTANT
family = MONOMIAL
[]
[fast_neutron_fluence]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[temp_bc]
type = PiecewiseLinear
data_file = outer_temp.csv
x_index_in_file = 0
y_index_in_file = 1
format = columns
[]
[fission_rate]
type = ConstantFunction
value = 5.75e19
[]
[high_fidelity_strength_crackedIPyC]
type = ConstantFunction
value = '1403604095.0794'
[]
[stress_correlation_crackedIPyC]
type = TRISOStressCorrelationFunction
triso_geometry = particle_geometry
polynomial_coefficients_IPyC = '1 5.95176524e3 -2.25337303e8'
polynomial_coefficients_SiC = '1 1.43220859e4 -5.17689523e7'
polynomial_coefficients_OPyC = '1 -1.25870267e4 1.81620484e8'
correlation_factor = -1.2447543093270736
[]
[high_fidelity_strength_debonding]
type = ConstantFunction
value = '1705800293.3578'
[]
[stress_correlation_debonding]
type = TRISOStressCorrelationFunction
triso_geometry = particle_geometry
polynomial_coefficients_IPyC = '1 0 0'
polynomial_coefficients_SiC = '1 0 0'
polynomial_coefficients_OPyC = '1 0 0'
correlation_factor = -0.14916368684964607
[]
[high_fidelity_strength_asphericity]
type = ConstantFunction
value = '1371700806.9481'
[]
[stress_correlation_asphericity]
type = TRISOStressCorrelationFunction
triso_geometry = particle_geometry
polynomial_coefficients_IPyC = '1 1.00595402e3 1.43530004e7'
polynomial_coefficients_SiC = '1 3.27925856e3 -2.02308753e8'
polynomial_coefficients_OPyC = '1 2.07404580e3 -6.12612615e6'
correlation_factor = 1.5191967993808713
[]
[stress_change_correlation_asphericity]
type = TRISOStressCorrelationFunction
triso_geometry = particle_geometry
polynomial_coefficients_IPyC = '1 -5.81891553e3 -2.81628655e7'
polynomial_coefficients_SiC = '1 1.00990700e4 -5.55290343e8'
polynomial_coefficients_OPyC = '1 -3.59151050e3 -2.65952373e7'
correlation_factor = 1.3915168526633837
[]
[]
[Physics/SolidMechanics/QuasiStatic]
generate_output = 'stress_xx stress_yy stress_zz strain_xx strain_yy strain_zz max_principal_stress'
add_variables = true
strain = FINITE
incremental = true
[fuel]
block = fuel
eigenstrain_names = 'UCO_swelling_eigenstrain UCO_TE_strain'
extra_vector_tags = 'ref'
[]
[buffer]
block = buffer
eigenstrain_names = 'Buffer_IIDC_strain Buffer_TE_strain'
extra_vector_tags = 'ref'
[]
[IPyC]
block = IPyC
eigenstrain_names = 'IPyC_IIDC_strain IPyC_TE_strain'
extra_vector_tags = 'ref'
[]
[SiC]
block = SiC
eigenstrain_names = 'SiC_thermal_eigenstrain'
extra_vector_tags = 'ref'
[]
[OPyC]
block = OPyC
eigenstrain_names = 'OPyC_IIDC_strain OPyC_TE_strain'
extra_vector_tags = 'ref'
[]
[]
[Kernels]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temperature
extra_vector_tags = 'ref'
[]
[heat]
type = HeatConduction
variable = temperature
extra_vector_tags = 'ref'
[]
[heat_source]
type = NeutronHeatSource
variable = temperature
block = fuel
fission_rate = fission_rate
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[fissionrate]
type = MaterialRealAux
variable = fission_rate
property = fission_rate
block = fuel
execute_on = timestep_begin
[]
[burnup]
type = MaterialRealAux
variable = burnup
property = burnup
block = fuel
execute_on = timestep_begin
[]
[fast_neutron_flux]
type = MaterialRealAux
variable = fast_neutron_flux
property = fast_neutron_flux
execute_on = timestep_begin
[]
[fast_neutron_fluence]
type = MaterialRealAux
variable = fast_neutron_fluence
property = fast_neutron_fluence
execute_on = timestep_begin
[]
[]
[ThermalContact]
[thermal_contact]
type = GasGapHeatTransfer
variable = temperature
primary = IPyC_inner_boundary
secondary = buffer_outer_boundary
initial_moles = initial_moles
gas_released = 'fis_gas_released'
released_gas_types = 'Kr Xe'
released_fractions = '0.185 0.815'
tangential_tolerance = 1e-6
quadrature = false
min_gap = 1e-7
max_gap = 50e-6
gap_geometry_type = sphere
[]
[]
[BCs]
[no_disp_x]
type = DirichletBC
variable = disp_x
boundary = xzero
value = 0.0
[]
[freesurf_temp]
type = FunctionDirichletBC
variable = temperature
function = temp_bc
boundary = exterior
[]
[exterior_pressure_x]
type = Pressure
variable = disp_x
boundary = exterior
factor = 0.1e6
[]
[PlenumPressure]
[plenumPressure]
boundary = buffer_IPyC_boundary
startup_time = 1e4
initial_pressure = 0
R = 8.3145
output_initial_moles = initial_moles
temperature = ave_gas_temp
volume = 'gap_volume buffer_void_volume kernel_void_volume'
material_input = 'fis_gas_released'
output = gas_pressure
[]
[]
[]
[Materials]
[radial_stress]
type = RankTwoCylindricalComponent
rank_two_tensor = stress
cylindrical_axis_point1 = '0 0 0'
cylindrical_axis_point2 = '0 0 1'
cylindrical_component = RadialStress
property_name = radial_stress
outputs = all
[]
[fission_rate]
type = GenericFunctionMaterial
prop_names = fission_rate
prop_values = fission_rate
block = fuel
[]
[fast_neutron_flux]
type = FastNeutronFlux
calculate_fluence = true
factor = 6.2425e+17
[]
[UCO_burnup]
type = TRISOBurnup
initial_density = 10966
block = fuel
[]
[UCO_thermal]
type = UCOThermal
block = fuel
temperature = temperature
[]
[UCO_elasticity_tensor]
type = UCOElasticityTensor
block = fuel
temperature = temperature
[]
[UCO_stress]
type = ComputeFiniteStrainElasticStress
block = fuel
[]
[UCO_VolumetricSwellingEigenstrain]
type = UCOVolumetricSwellingEigenstrain
block = fuel
eigenstrain_name = UCO_swelling_eigenstrain
[]
[fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = fuel
thermal_expansion_coeff = 10.0e-6
temperature = temperature
eigenstrain_name = UCO_TE_strain
[]
[UCO_density]
type = StrainAdjustedDensity
block = fuel
strain_free_density = 10966
[]
[fission_gas_release]
type = UCOFGR
block = fuel
average_grain_radius = 10e-6
temperature = temperature
triso_geometry = particle_geometry
cutoff_neutron_flux = 0.0
[]
[BAF_IPyC]
type = BaconAnisotropyFactor
initial_BAF = 1.0465
block = IPyC
[]
[BAF_OPyC]
type = BaconAnisotropyFactor
initial_BAF = 1.0429
block = OPyC
[]
[buffer_elasticity_tensor]
type = BufferElasticityTensor
block = buffer
temperature = temperature
[]
[buffer_stress]
type = BufferCEGACreep
block = buffer
temperature = temperature
[]
[buffer_thermal]
type = BufferThermal
block = buffer
initial_density = 1050.0
[]
[buffer_density]
type = StrainAdjustedDensity
block = buffer
strain_free_density = 1050.0
[]
[buffer_TE]
type = BufferThermalExpansionEigenstrain
block = buffer
eigenstrain_name = Buffer_TE_strain
temperature = temperature
[]
[buffer_IIDC]
type = BufferCEGAIrradiationEigenstrain
block = buffer
eigenstrain_name = Buffer_IIDC_strain
temperature = temperature
[]
[IPyC_elasticity_tensor]
type = PyCElasticityTensor
block = IPyC
temperature = temperature
[]
[IPyC_stress]
type = PyCCEGACreep
block = IPyC
creep_rate_scale_factor = 1
temperature = temperature
[]
[IPyC_thermal]
type = HeatConductionMaterial
block = IPyC
thermal_conductivity = 4.0
specific_heat = 720.0
[]
[IPyC_density]
type = GenericConstantMaterial
block = IPyC
prop_names = 'density'
prop_values = 1890
[]
[normal_vectors_triso]
type = NormalVectorsTRISO
block = 'buffer IPyC OPyC'
[]
[IPyC_IIDC]
type = PyCCEGAIrradiationEigenstrain
block = IPyC
eigenstrain_name = IPyC_IIDC_strain
temperature = temperature
irradiation_eigenstrain_scale_factor = 1
[]
[IPyC_TE]
type = PyCThermalExpansionEigenstrain
block = IPyC
eigenstrain_name = IPyC_TE_strain
temperature = temperature
[]
[SiC_elasticity_tensor]
type = MonolithicSiCElasticityTensor
block = SiC
temperature = temperature
elastic_modulus_model = miller
[]
[SiC_stress]
type = ComputeFiniteStrainElasticStress
block = SiC
[]
[SiC_thermal]
type = MonolithicSiCThermal
block = SiC
temperature = temperature
thermal_conductivity_model = miller
[]
[SiC_density]
type = StrainAdjustedDensity
block = SiC
strain_free_density = 3200.0
[]
[SiC_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = SiC
thermal_expansion_coeff = 4.9e-6
temperature = temperature
eigenstrain_name = SiC_thermal_eigenstrain
[]
[OPyC_elasticity_tensor]
type = PyCElasticityTensor
block = OPyC
temperature = temperature
initial_BAF = 1.0
[]
[OPyC_stress]
type = PyCCEGACreep
block = OPyC
creep_rate_scale_factor = 1
temperature = temperature
[]
[OPyC_thermal_conductivity]
type = HeatConductionMaterial
block = OPyC
thermal_conductivity = 4.0
specific_heat = 720.0
[]
[OPyC_density]
type = GenericConstantMaterial
block = OPyC
prop_names = 'density'
prop_values = 1900
[]
[OPyC_IIDC]
type = PyCCEGAIrradiationEigenstrain
block = OPyC
eigenstrain_name = OPyC_IIDC_strain
temperature = temperature
irradiation_eigenstrain_scale_factor = 1
[]
[OPyC_TE]
type = PyCThermalExpansionEigenstrain
block = OPyC
eigenstrain_name = OPyC_TE_strain
temperature = temperature
[]
[characteristic_strength_SiC]
type = GenericConstantMaterial
prop_values = '9640000'
block = SiC
prop_names = 'characteristic_strength'
[]
[characteristic_strength_PyC]
type = PyCCharacteristicStrength
temperature = temperature
X = 1.02
block = 'IPyC OPyC'
[]
[]
[Dampers]
[temp]
type = MaxIncrement
variable = temperature
max_increment = 100
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
nl_rel_tol = 5e-6
nl_abs_tol = 1e-8
nl_max_its = 20
l_tol = 1e-4
l_max_its = 50
start_time = 0.0
end_time = 4.831315e7
dtmin = 1e-4
dt = 5e5
[]
[Postprocessors]
[ave_gas_temp]
type = ElementAverageValue
block = buffer
variable = temperature
execute_on = 'initial timestep_end'
[]
[fis_gas_released]
type = ElementIntegralMaterialProperty
mat_prop = fis_gas_released
block = fuel
use_displaced_mesh = false
execute_on = 'initial timestep_end'
[]
[gap_volume]
type = InternalVolume
boundary = buffer_IPyC_boundary
execute_on = 'initial linear'
use_displaced_mesh = true
[]
[buffer_void_volume]
type = VoidVolume
block = buffer
theoretical_density = 2250
execute_on = 'initial timestep_end'
use_displaced_mesh = true
[]
[kernel_th_density]
type = UCOTheoreticalDensity
execute_on = initial
[]
[kernel_void_volume]
type = VoidVolume
block = fuel
theoretical_density = kernel_th_density
execute_on = 'initial timestep_end'
use_displaced_mesh = true
[]
[particle_power]
type = ElementIntegralPower
variable = temperature
use_material_fission_rate = true
fission_rate_material = fission_rate
block = fuel
execute_on = 'initial timestep_end'
[]
[max_fluence]
type = ElementExtremeValue
variable = fast_neutron_fluence
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[max_burnup]
type = ElementExtremeValue
variable = burnup
block = fuel
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[SiC_stress]
type = ElementExtremeMaterialProperty
block = SiC
value_type = min
mat_prop = stress_yy
[]
[strength_SiC]
type = WeibullEffectiveMeanStrength
block = SiC
weibull_modulus = 6
[]
[failure_indicator_SiC]
type = WeibullFailureOutputUsingCorrelation
block = SiC
weibull_modulus = 6
stress_name = stress_yy
high_fidelity_analysis_strength = 'high_fidelity_strength_asphericity'
stress_correlation_function = 'stress_correlation_asphericity'
stress_change_correlation_function = 'stress_change_correlation_asphericity'
[]
[strength_IPyC]
type = WeibullEffectiveMeanStrength
block = IPyC
weibull_modulus = 9.5
[]
[failure_indicator_IPyC]
type = WeibullFailureOutputUsingCorrelation
block = IPyC
weibull_modulus = 9.5
stress_name = max_principal_stress
effective_mean_strength = strength_IPyC
[]
[failure_indicator_SiC_crackedIPyC]
type = WeibullFailureOutputUsingCorrelation
block = SiC
weibull_modulus = 6
stress_name = stress_yy
high_fidelity_analysis_strength = 'high_fidelity_strength_crackedIPyC'
stress_correlation_function = 'stress_correlation_crackedIPyC'
[]
[failure_indicator_debonding]
type = TRISODebondingFailureIndicator
boundary = IPyC_outer_boundary
bond_strength = 10e6
stress_name = radial_stress
[]
[failure_indicator_SiC_debonding]
type = WeibullFailureOutputUsingCorrelation
block = SiC
weibull_modulus = 6
stress_name = stress_yy
high_fidelity_analysis_strength = 'high_fidelity_strength_debonding'
stress_correlation_function = 'stress_correlation_debonding'
[]
[sic_failure_overall]
type = TRISOFailureEvaluation
IPyC_failure = failure_indicator_IPyC
SiC_failure_crackedIPyC = failure_indicator_SiC_crackedIPyC
SiC_failure = failure_indicator_SiC
SiC_failure_pd_penetration = failure_indicator_pd_penetration
SiC_failure_kernel_migration = failure_indicator_kernel_migration
failure_type = SIC_FAILURE_OVERALL
[]
[ipyc_cracking]
type = TRISOFailureEvaluation
IPyC_failure = failure_indicator_IPyC
SiC_failure_crackedIPyC = failure_indicator_SiC_crackedIPyC
SiC_failure = failure_indicator_SiC
failure_type = IPYC_CRACKING
[]
[sic_failure_due_to_pressure]
type = TRISOFailureEvaluation
IPyC_failure = failure_indicator_IPyC
SiC_failure_crackedIPyC = failure_indicator_SiC_crackedIPyC
SiC_failure = failure_indicator_SiC
failure_type = SIC_FAILURE_DUE_TO_PRESSURE
[]
[sic_failure_due_to_ipyc_cracking]
type = TRISOFailureEvaluation
IPyC_failure = failure_indicator_IPyC
SiC_failure_crackedIPyC = failure_indicator_SiC_crackedIPyC
SiC_failure = failure_indicator_SiC
failure_type = SIC_FAILURE_DUE_TO_IPYC_CRACKING
[]
[debonding]
type = TRISOFailureEvaluation
IPyC_failure = failure_indicator_IPyC
SiC_failure_crackedIPyC = failure_indicator_SiC_crackedIPyC
SiC_failure = failure_indicator_SiC
IPyC_SiC_debonding = failure_indicator_debonding
SiC_failure_debonding = failure_indicator_SiC_debonding
failure_type = IPYC_SIC_DEBONDING
[]
[fluence_at_failure]
type = TRISOFailureOccurrenceStatus
failure_evaluation = ipyc_cracking
failure_information = max_fluence
[]
[weibull_failure_probability_IPyC]
type = WeibullFailureProbability
block = IPyC
weibull_modulus = 9.5
characteristic_strength = characteristic_strength
[]
[weibull_failure_probability_SiC]
type = WeibullFailureProbability
block = SiC
weibull_modulus = 6
characteristic_strength = characteristic_strength
[]
[pd_penetration]
type = PdPenetration
boundary = SiC_inner_boundary
variable = temperature
execute_on = 'initial timestep_end'
[]
[failure_indicator_pd_penetration]
type = PdPenetrationFailureIndicator
triso_geometry = particle_geometry
pd_penetration = pd_penetration
[]
[kernel_migration_distance]
type = KernelMigrationDistance
block = 'fuel buffer IPyC SiC OPyC'
variable = temperature
temperature_gradient = 15000
kernel_type = UCO
[]
[failure_indicator_kernel_migration]
type = KernelMigrationFailureIndicator
kernel_migration_distance = kernel_migration_distance
triso_geometry = particle_geometry
[]
[]
[Outputs]
print_linear_residuals = false
time_step_interval = 1
csv = false
exodus = false
perf_graph = true
print_linear_converged_reason = false
print_nonlinear_converged_reason = false
[]
(test/tests/triso_failure/higher_order_correlation.i)
[GlobalParams]
order = FIRST
family = LAGRANGE
displacements = 'disp_x'
initial_enrichment = 0.155 # [wt-]
flux_conversion_factor = 1.0 # convert E>0.10 to E>0.18 MeV
stress_free_temperature = 973.15 # used for thermal expansion
energy_per_fission = 3.204e-11 # [J/fission]
O_U = 1.5 # Initial Oxygen to Uranium atom ratio
C_U = 0.4 # Initial Carbon to Uranium atom ratio
[]
[Mesh]
coord_type = RSPHERICAL
[gen]
type = TRISO1DFiveLayerMeshGenerator
elem_type = EDGE3
kernel_radius = 212.5e-6
buffer_thickness = 100e-6
IPyC_thickness = 41e-6
SiC_thickness = 34e-6
OPyC_thickness = 44e-6
kernel_mesh_density = 5
buffer_mesh_density = 3
IPyC_mesh_density = 5
SiC_mesh_density = 3
OPyC_mesh_density = 4
[]
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[UserObjects]
[particle_geometry]
type = TRISOGeometry
outer_OPyC = OPyC_outer_boundary
outer_SiC = SiC_outer_boundary
outer_IPyC = IPyC_outer_boundary
inner_IPyC = IPyC_inner_boundary
outer_buffer = buffer_outer_boundary
outer_kernel = fuel_outer_boundary
include_particle = true
include_pebble = false
IPyC_thickness_mean = 40e-6
SiC_thickness_mean = 35e-6
OPyC_thickness_mean = 40e-6
[]
[triso_failure_terminator]
type = Terminator
expression = 'triso_failure > 0'
[]
[]
[Variables]
[temperature]
initial_condition = 973.15
[]
[]
[AuxVariables]
[fission_rate]
order = CONSTANT
family = MONOMIAL
[]
[burnup]
order = CONSTANT
family = MONOMIAL
[]
[fast_neutron_flux]
order = CONSTANT
family = MONOMIAL
[]
[fast_neutron_fluence]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[power_history]
type = PiecewiseLinear
x = '0 76e6'
y = '1 1'
[]
[fission_rate]
type = LinearCombinationFunction
functions = power_history
w = 7.78e19
[]
[high_fidelity_strength_crackedIPyC]
type = PiecewiseLinear
x = '0 1.0e10'
y = '1.198892e9 1.198892e9'
[]
[stress_correlation_crackedIPyC]
type = TRISOStressCorrelationFunction
triso_geometry = particle_geometry
polynomial_coefficients_IPyC = '1 6922 -2.359e8'
polynomial_coefficients_SiC = '1 -1.257e4 1.82e8'
polynomial_coefficients_OPyC = '1 -1.257e4 1.82e8'
correlation_factor = -1.1932
[]
[high_fidelity_strength_asphericity]
type = PiecewiseLinear
x = '0 1.0e10'
y = '0.993212e9 0.993212e9'
[]
[stress_correlation_asphericity]
type = TRISOStressCorrelationFunction
triso_geometry = particle_geometry
polynomial_coefficients_IPyC = '1 -1.716e4 2.123e8'
polynomial_coefficients_SiC = '1 2.688e4 -1.414e7'
polynomial_coefficients_OPyC = '1 -1.716e4 2.123e8'
correlation_factor = 0.2923
[]
[stress_change_correlation_asphericity]
type = TRISOStressCorrelationFunction
triso_geometry = particle_geometry
polynomial_coefficients_IPyC = '1 -1.664e4 1.929e8'
polynomial_coefficients_SiC = '1 2.625e4 -1.112e7'
polynomial_coefficients_OPyC = '1 -1.664e4 1.929e8'
correlation_factor = 0.5241
[]
[]
[Physics/SolidMechanics/QuasiStatic]
generate_output = 'stress_xx stress_yy stress_zz strain_xx strain_yy strain_zz max_principal_stress'
add_variables = true
strain = FINITE
incremental = true
[fuel]
block = fuel
eigenstrain_names = 'UCO_swelling_eigenstrain UCO_TE_strain'
extra_vector_tags = 'ref'
[]
[buffer]
block = buffer
eigenstrain_names = 'Buffer_IIDC_strain Buffer_TE_strain'
extra_vector_tags = 'ref'
[]
[IPyC]
block = IPyC
eigenstrain_names = 'IPyC_IIDC_strain IPyC_TE_strain'
extra_vector_tags = 'ref'
[]
[SiC]
block = SiC
eigenstrain_names = 'SiC_thermal_eigenstrain'
extra_vector_tags = 'ref'
[]
[OPyC]
block = OPyC
eigenstrain_names = 'OPyC_IIDC_strain OPyC_TE_strain'
extra_vector_tags = 'ref'
[]
[]
[Kernels]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temperature
extra_vector_tags = 'ref'
[]
[heat]
type = HeatConduction
variable = temperature
extra_vector_tags = 'ref'
[]
[heat_source]
type = NeutronHeatSource
variable = temperature
block = fuel
fission_rate = fission_rate
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[fissionrate]
type = MaterialRealAux
variable = fission_rate
property = fission_rate
block = fuel
execute_on = timestep_begin
[]
[burnup]
type = MaterialRealAux
variable = burnup
property = burnup
block = fuel
execute_on = timestep_begin
[]
[fast_neutron_flux]
type = MaterialRealAux
variable = fast_neutron_flux
property = fast_neutron_flux
execute_on = timestep_begin
[]
[fast_neutron_fluence]
type = MaterialRealAux
variable = fast_neutron_fluence
property = fast_neutron_fluence
execute_on = timestep_begin
[]
[]
[ThermalContact]
[thermal_contact]
type = GasGapHeatTransfer
variable = temperature
primary = IPyC_inner_boundary
secondary = buffer_outer_boundary
initial_moles = initial_moles
gas_released = 'fis_gas_released'
released_gas_types = 'Kr Xe'
released_fractions = '0.185 0.815'
tangential_tolerance = 1e-6
quadrature = false
min_gap = 1e-7
max_gap = 50e-6
[]
[]
[BCs]
[no_disp_x]
type = DirichletBC
variable = disp_x
boundary = xzero
value = 0.0
[]
[freesurf_temp]
type = FunctionDirichletBC
variable = temperature
function = 973.15
boundary = exterior
[]
[PlenumPressure]
[plenumPressure]
boundary = buffer_IPyC_boundary
startup_time = 1e4
initial_pressure = 0
output_initial_moles = initial_moles
temperature = ave_gas_temp
volume = 'gap_volume buffer_void_volume kernel_void_volume'
material_input = 'fis_gas_released'
output = gas_pressure
[]
[]
[]
[Materials]
[tangential_stress]
type = RankTwoCylindricalComponent
rank_two_tensor = stress
cylindrical_axis_point1 = '0 0 0'
cylindrical_axis_point2 = '0 0 1'
cylindrical_component = HoopStress
property_name = tangential_stress
outputs = all
[]
[fission_rate]
type = GenericFunctionMaterial
prop_names = fission_rate
prop_values = fission_rate
block = fuel
[]
[fast_neutron_flux]
type = FastNeutronFlux
calculate_fluence = true
flux_function = power_history
factor = 1.16e18
[]
[UCO_burnup]
type = TRISOBurnup
initial_density = 11000
block = fuel
[]
[UCO_thermal]
type = UCOThermal
block = fuel
temperature = temperature
[]
[UCO_elasticity_tensor]
type = UCOElasticityTensor
block = fuel
temperature = temperature
[]
[UCO_stress]
type = ComputeFiniteStrainElasticStress
block = fuel
[]
[UCO_VolumetricSwellingEigenstrain]
type = UCOVolumetricSwellingEigenstrain
block = fuel
eigenstrain_name = UCO_swelling_eigenstrain
[]
[fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = fuel
thermal_expansion_coeff = 10.0e-6
temperature = temperature
eigenstrain_name = UCO_TE_strain
[]
[UCO_density]
type = StrainAdjustedDensity
block = fuel
strain_free_density = 11000.0
[]
[fission_gas_release]
type = UCOFGR
block = fuel
average_grain_radius = 10e-6
temperature = temperature
triso_geometry = particle_geometry
cutoff_neutron_flux = 0.0
[]
[BAF]
type = BaconAnisotropyFactor
initial_BAF = 1.05
block = 'buffer IPyC OPyC'
[]
[buffer_elasticity_tensor]
type = BufferElasticityTensor
block = buffer
temperature = temperature
[]
[buffer_stress]
type = BufferCEGACreep
block = buffer
temperature = temperature
[]
[buffer_thermal]
type = BufferThermal
block = buffer
initial_density = 1050.0
[]
[buffer_density]
type = StrainAdjustedDensity
block = buffer
strain_free_density = 1050.0
[]
[buffer_TE]
type = BufferThermalExpansionEigenstrain
block = buffer
eigenstrain_name = Buffer_TE_strain
temperature = temperature
[]
[buffer_IIDC]
type = BufferCEGAIrradiationEigenstrain
block = buffer
eigenstrain_name = Buffer_IIDC_strain
temperature = temperature
[]
[IPyC_elasticity_tensor]
type = PyCElasticityTensor
block = IPyC
temperature = temperature
[]
[IPyC_stress]
type = PyCCEGACreep
block = IPyC
creep_rate_scale_factor = 1
temperature = temperature
[]
[IPyC_thermal]
type = HeatConductionMaterial
block = IPyC
thermal_conductivity = 4.0
specific_heat = 720.0
[]
[IPyC_density]
type = GenericConstantMaterial
block = IPyC
prop_names = 'density'
prop_values = 1900
[]
[normal_vectors_triso]
type = NormalVectorsTRISO
block = 'buffer IPyC OPyC'
[]
[IPyC_IIDC]
type = PyCCEGAIrradiationEigenstrain
block = IPyC
eigenstrain_name = IPyC_IIDC_strain
temperature = temperature
irradiation_eigenstrain_scale_factor = 1
[]
[IPyC_TE]
type = PyCThermalExpansionEigenstrain
block = IPyC
eigenstrain_name = IPyC_TE_strain
temperature = temperature
[]
[SiC_elasticity_tensor]
type = MonolithicSiCElasticityTensor
block = SiC
temperature = temperature
elastic_modulus_model = miller
[]
[SiC_stress]
type = ComputeFiniteStrainElasticStress
block = SiC
[]
[SiC_thermal]
type = MonolithicSiCThermal
block = SiC
temperature = temperature
thermal_conductivity_model = miller
[]
[SiC_density]
type = StrainAdjustedDensity
block = SiC
strain_free_density = 3200.0
[]
[SiC_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = SiC
thermal_expansion_coeff = 4.9e-6
temperature = temperature
eigenstrain_name = SiC_thermal_eigenstrain
[]
[OPyC_elasticity_tensor]
type = PyCElasticityTensor
block = OPyC
temperature = temperature
initial_BAF = 1.0
[]
[OPyC_stress]
type = PyCCEGACreep
block = OPyC
creep_rate_scale_factor = 1
temperature = temperature
[]
[OPyC_thermal_conductivity]
type = HeatConductionMaterial
block = OPyC
thermal_conductivity = 4.0
specific_heat = 720.0
[]
[OPyC_density]
type = GenericConstantMaterial
block = OPyC
prop_names = 'density'
prop_values = 1900
[]
[OPyC_IIDC]
type = PyCCEGAIrradiationEigenstrain
block = OPyC
eigenstrain_name = OPyC_IIDC_strain
temperature = temperature
irradiation_eigenstrain_scale_factor = 1
[]
[OPyC_TE]
type = PyCThermalExpansionEigenstrain
block = OPyC
eigenstrain_name = OPyC_TE_strain
temperature = temperature
[]
[characteristic_strength_SiC]
type = GenericConstantMaterial
prop_values = '9640000'
block = SiC
prop_names = 'characteristic_strength'
[]
[characteristic_strength_PyC]
type = PyCCharacteristicStrength
temperature = temperature
X = 1.02
block = 'IPyC OPyC'
[]
[]
[Dampers]
[temp]
type = MaxIncrement
variable = temperature
max_increment = 100
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
nl_rel_tol = 5e-6
nl_abs_tol = 1e-8
nl_max_its = 20
l_tol = 1e-4
l_max_its = 50
start_time = 0.0
end_time = 1e+06
dtmax = 2e5
dtmin = 1e-4
[TimeStepper]
type = IterationAdaptiveDT
dt = 1
optimal_iterations = 10
linear_iteration_ratio = 100
[]
[]
[Postprocessors]
[ave_gas_temp]
type = ElementAverageValue
block = buffer
variable = temperature
execute_on = 'initial timestep_end'
[]
[fis_gas_released]
type = ElementIntegralMaterialProperty
mat_prop = fis_gas_released
block = fuel
use_displaced_mesh = false
execute_on = 'initial timestep_end'
[]
[gap_volume]
type = InternalVolume
boundary = buffer_IPyC_boundary
execute_on = 'initial linear'
use_displaced_mesh = true
[]
[buffer_void_volume]
type = VoidVolume
block = buffer
theoretical_density = 2250
execute_on = 'initial timestep_end'
use_displaced_mesh = true
[]
[kernel_th_density]
type = UCOTheoreticalDensity
execute_on = initial
[]
[kernel_void_volume]
type = VoidVolume
block = fuel
theoretical_density = kernel_th_density
execute_on = 'initial timestep_end'
use_displaced_mesh = true
[]
[particle_power]
type = ElementIntegralPower
variable = temperature
use_material_fission_rate = true
fission_rate_material = fission_rate
block = fuel
execute_on = 'initial timestep_end'
[]
[max_fluence]
type = ElementExtremeValue
variable = fast_neutron_fluence
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[max_burnup]
type = ElementExtremeValue
variable = burnup
block = fuel
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[SiC_stress]
type = ElementExtremeMaterialProperty
block = SiC
value_type = max
mat_prop = tangential_stress
[]
[strength_SiC]
type = WeibullEffectiveMeanStrength
block = SiC
weibull_modulus = 6
use_displaced_mesh = true
[]
[failure_indicator_SiC]
type = WeibullFailureOutputUsingCorrelation
block = SiC
weibull_modulus = 6
stress_name = stress_yy
high_fidelity_analysis_strength = 'high_fidelity_strength_asphericity'
stress_correlation_function = 'stress_correlation_asphericity'
stress_change_correlation_function = 'stress_change_correlation_asphericity'
[]
[strength_IPyC]
type = WeibullEffectiveMeanStrength
block = IPyC
weibull_modulus = 9.5
use_displaced_mesh = true
[]
[failure_indicator_IPyC]
type = WeibullFailureOutputUsingCorrelation
block = IPyC
weibull_modulus = 9.5
stress_name = max_principal_stress
effective_mean_strength = strength_IPyC
[]
[failure_indicator_SiC_crackedIPyC]
type = WeibullFailureOutputUsingCorrelation
block = SiC
weibull_modulus = 6
stress_name = stress_yy
high_fidelity_analysis_strength = 'high_fidelity_strength_crackedIPyC'
stress_correlation_function = 'stress_correlation_crackedIPyC'
[]
[triso_failure]
type = TRISOFailureEvaluation
IPyC_failure = failure_indicator_IPyC
SiC_failure_crackedIPyC = failure_indicator_SiC_crackedIPyC
SiC_failure = failure_indicator_SiC
[]
[]
[Outputs]
print_linear_residuals = false
time_step_interval = 1
csv = true
exodus = false
[]
(assessment/TRISO/validation/AGR-34/Compacts/AGR-34_base.i)
initial_fuel_density = 11100.0
[GlobalParams]
order = SECOND
family = LAGRANGE
initial_enrichment = 0.19717 # [wt-]
energy_per_fission = 3.204e-11 # [J/fission]
O_U = 1.430 # Initial Oxygen to Uranium atom ratio
C_U = 0.361 # Initial Carbon to Uranium atom ratio
[]
[Mesh]
coord_type = RSPHERICAL
[gen]
type = TRISO1DFiveLayerMeshGenerator
elem_type = EDGE3
kernel_radius = 178.65e-6
buffer_thickness = 109.7e-6
IPyC_thickness = 40.4e-6
SiC_thickness = 33.5e-6
OPyC_thickness = 41.3e-6
kernel_mesh_density = 18
buffer_mesh_density = 14
IPyC_mesh_density = 12
SiC_mesh_density = 16
OPyC_mesh_density = 16
block_names = 'fuel buffer IPyC SiC OPyC'
include_gap = false
kernel_bias = 0.8
buffer_bias = 1.25
[]
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[UserObjects]
[particle_geometry]
type = TRISOGeometry
outer_OPyC = OPyC_outer_boundary
outer_SiC = SiC_outer_boundary
outer_IPyC = IPyC_outer_boundary
inner_IPyC = IPyC_inner_boundary
outer_buffer = buffer_outer_boundary
outer_kernel = fuel_outer_boundary
include_particle = true
include_pebble = false
[]
[]
[Variables]
[temperature]
initial_condition = 888.5
[]
[]
[AuxVariables]
[fission_rate]
block = fuel
order = CONSTANT
family = MONOMIAL
[]
[burnup]
block = fuel
order = CONSTANT
family = MONOMIAL
[]
[fast_neutron_flux]
order = CONSTANT
family = MONOMIAL
[]
[fast_neutron_fluence]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[temp_bc]
type = PiecewiseLinear
x_index_in_file = 0
y_index_in_file = 1
xy_in_file_only = false
format = columns
[]
[power_history]
type = PiecewiseLinear
x = '0 76e6'
y = '1 1'
[]
[fission_rate]
type = LinearCombinationFunction
functions = power_history
w = 4.2602e+19
[]
[d1_function]
type = ParsedFunction
expression = 'exp(t/4.5e25)'
[]
[]
[Kernels]
[heat_dt]
type = HeatConductionTimeDerivative
variable = temperature
extra_vector_tags = 'ref'
[]
[heat]
type = HeatConduction
variable = temperature
extra_vector_tags = 'ref'
[]
[heat_source]
type = NeutronHeatSource
variable = temperature
block = fuel
fission_rate = fission_rate
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[fissionrate]
type = MaterialRealAux
variable = fission_rate
property = fission_rate
block = 'fuel'
execute_on = timestep_begin
[]
[burnup]
type = MaterialRealAux
variable = burnup
property = burnup
block = 'fuel'
execute_on = timestep_begin
[]
[fast_neutron_flux]
type = MaterialRealAux
variable = fast_neutron_flux
property = fast_neutron_flux
block = 'fuel buffer IPyC SiC OPyC'
execute_on = timestep_begin
[]
[fast_neutron_fluence]
type = MaterialRealAux
variable = fast_neutron_fluence
property = fast_neutron_fluence
block = 'fuel buffer IPyC SiC OPyC'
execute_on = timestep_begin
[]
[]
[BCs]
# fix temperature on free surface
[freesurf_temp]
type = FunctionDirichletBC
variable = temperature
function = temp_bc
boundary = exterior
[]
[]
[Materials]
[fission_rate]
type = GenericFunctionMaterial
prop_names = fission_rate
prop_values = fission_rate
[]
[fast_neutron_flux]
type = FastNeutronFlux
calculate_fluence = true
flux_function = power_history
factor = 4.4440e+17
[]
### UCO fuel properties
[UCO_burnup]
type = TRISOBurnup
initial_density = ${initial_fuel_density}
[]
[UCO_thermal]
type = UCOThermal
block = 'fuel'
temperature = temperature
[]
[UCO_density]
type = ParsedMaterial
block = fuel
property_name = density
expression = ${initial_fuel_density}
[]
### Buffer Properties
[buffer_thermal]
type = BufferThermal
block = buffer
initial_density = 1100.0
[]
[Buffer_density]
type = ParsedMaterial
block = buffer
property_name = density
expression = 1100.0
[]
### IPyC properties
[IPyC_thermal]
type = HeatConductionMaterial
block = IPyC
thermal_conductivity = 4.0
specific_heat = 720.0
[]
[IPyC_density]
type = ParsedMaterial
block = IPyC
property_name = density
expression = 1904.0
[]
### SiC properties
[SiC_thermal]
type = MonolithicSiCThermal
block = SiC
temperature = temperature
thermal_conductivity_model = miller
[]
[SiC_density]
type = ParsedMaterial
block = SiC
property_name = density
expression = 3200.0
[]
### OPyC properties
[OPyC_thermal_conductivity]
type = HeatConductionMaterial
block = OPyC
thermal_conductivity = 4.0
specific_heat = 720.0
[]
[OPyC_density]
type = ParsedMaterial
block = OPyC
property_name = density
expression = 1901.0
[]
[]
[Dampers]
[temp]
type = MaxIncrement
variable = temperature
max_increment = 50
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Debug]
show_var_residual_norms = true
#show_var_residual = 'temperature conc_Ag conc_Cs conc_Sr'
show_var_residual = 'temperature'
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
# solve_type = 'NEWTON'
# petsc_options_iname = '-pc_type -snes_type'
# petsc_options_value = 'lu vinewtonrsls'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
nl_rel_tol = 1e-6
nl_abs_tol = 1e-6
nl_max_its = 20
l_tol = 1e-4
l_max_its = 50
start_time = 0.0
end_time = 3.189024e7
dt = 10000
[]
[Postprocessors]
[_dt]
type = TimestepSize
execute_on = timestep_end
[]
### Temperature
[temp_min]
type = NodalExtremeValue
variable = temperature
value_type = 'min'
execute_on = 'initial timestep_end'
[]
[temp_max]
type = NodalExtremeValue
variable = temperature
value_type = 'max'
execute_on = 'initial timestep_end'
[]
### Postprocessors for CO production
[total_fission_rate]
type = ElementIntegralPower
variable = temperature
fission_rate = fission_rate
block = fuel
energy_per_fission = 1.0
outputs = exodus
execute_on = 'initial timestep_end'
[]
[total_fissions]
type = TimeIntegratedPostprocessor
value = total_fission_rate
outputs = exodus
execute_on = 'initial timestep_end'
[]
##### irradiation conditions
[particle_power]
type = ElementIntegralPower
variable = temperature
use_material_fission_rate = true
fission_rate_material = fission_rate
block = fuel
execute_on = 'initial timestep_end'
[]
[max_fluence]
type = ElementExtremeValue
variable = fast_neutron_fluence
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[max_burnup]
type = ElementExtremeValue
variable = burnup
block = fuel
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = false
[console]
type = Console
time_step_interval = 1
#hide = 'release_Ag_inc release_Cs_inc release_Sr_inc'
[]
[exodus]
type = Exodus
file_base = COMPACT
[]
[release]
type = CSV
file_base = release_COMPACT
sort_columns = true
#show = 'release_Ag_inc released_Ag release_Cs_inc released_Cs release_Sr_inc released_Sr total_Ag total_Cs total_Sr x_Ag_released x_Cs_released x_Sr_released'
[]
[final_release]
type = CSV
file_base = final_release_COMPACT
sort_columns = true
#show = 'retained_Ag retained_Cs retained_Sr released_Ag released_Cs released_Sr total_Ag total_Cs total_Sr x_Ag_released x_Cs_released x_Sr_released'
execute_on = 'final'
[]
[]
(examples/TRISO/parfume/parfume.i)
# UCO TRISO particle using several PARFUME models
initial_fuel_density = 10400
[GlobalParams]
order = SECOND
family = LAGRANGE
displacements = 'disp_x'
initial_enrichment = 0.1955 # [wt-]
flux_conversion_factor = 1.0 # convert E>0.10 to E>0.18 MeV
stress_free_temperature = 923.15 # used for thermal expansion
energy_per_fission = 3.204e-11 # [J/fission]
O_U = 1.5 # Initial Oxygen to Uranium atom ratio
C_U = 0.4 # Initial Carbon to Uranium atom ratio
[]
[Mesh]
coord_type = RSPHERICAL
[gen]
type = TRISO1DMeshGenerator
elem_type = EDGE3
coordinates = '0 2.125e-4 3.125e-4 3.125e-4 3.525e-4 3.875e-4 4.275e-4'
mesh_density = '6 6 0 6 8 6'
block_names = 'fuel buffer IPyC SiC OPyC'
[]
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[UserObjects]
[particle_geometry]
type = TRISOGeometry
[]
[]
[Variables]
[temperature]
initial_condition = 923.15
[]
[conc]
initial_condition = 0.0
scaling = 1e18
[]
[]
[AuxVariables]
[disp_y]
[]
[disp_z]
[]
[fission_rate]
block = fuel
order = CONSTANT
family = MONOMIAL
[]
[burnup]
block = fuel
order = CONSTANT
family = MONOMIAL
[]
[fast_neutron_flux]
order = CONSTANT
family = MONOMIAL
[]
[fast_neutron_fluence]
order = CONSTANT
family = MONOMIAL
[]
[gap_condSlave]
order = CONSTANT
family = MONOMIAL
[]
[density]
order = CONSTANT
family = MONOMIAL
[]
[thermal_conductivity]
order = CONSTANT
family = MONOMIAL
[]
[swelling]
order = CONSTANT
family = MONOMIAL
[]
[specific_heat]
order = CONSTANT
family = MONOMIAL
[]
[volumetric_IIDC_strain]
order = CONSTANT
family = MONOMIAL
[]
[radial_IIDC_strain]
order = CONSTANT
family = MONOMIAL
[]
[tangential_IIDC_strain]
order = CONSTANT
family = MONOMIAL
[]
[BAF]
order = CONSTANT
family = MONOMIAL
[]
[fis_gas_produced]
order = CONSTANT
family = MONOMIAL
[]
[fis_gas_released]
order = CONSTANT
family = MONOMIAL
[]
[gap_HTC]
order = CONSTANT
family = MONOMIAL
[]
[gap_distance]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[power_history]
type = PiecewiseLinear
x = '0 76e6 76.001e6'
y = '1 1 0'
[]
[fission_rate]
type = LinearCombinationFunction
functions = power_history
w = 3.89e19
[]
[temp_bc]
type = PiecewiseLinear
x = '0 76e6 76.001e6 84.641e6 84.6482e6'
y = '1500 1500 300 300 2073'
[]
[k_function]
type = PiecewiseLinear
x = '0 200e6'
y = '4e-37 4e-37'
[]
[d1_function]
type = ParsedFunction
expression = 'exp(t/4.5e25)'
[]
[d_gap]
type = PiecewiseLinear
x = '1500 2100'
y = '1e-14 1e-12'
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[fuel]
block = fuel
add_variables = true
strain = FINITE
incremental = true
generate_output = 'hydrostatic_stress stress_xx stress_yy stress_zz strain_xx strain_yy strain_zz'
eigenstrain_names = 'UCO_swelling_eigenstrain UCO_thermal_strain'
extra_vector_tags = 'ref'
[]
[buffer]
block = buffer
add_variables = true
strain = FINITE
incremental = true
generate_output = 'hydrostatic_stress stress_xx stress_yy stress_zz strain_xx strain_yy strain_zz'
eigenstrain_names = 'buffer_IIDC_strain buffer_thermal_strain'
extra_vector_tags = 'ref'
[]
[IPyC]
block = IPyC
add_variables = true
strain = FINITE
incremental = true
generate_output = 'hydrostatic_stress stress_xx stress_yy stress_zz strain_xx strain_yy strain_zz'
eigenstrain_names = 'IPyC_IIDC_strain IPyC_thermal_strain'
extra_vector_tags = 'ref'
[]
[SiC]
block = SiC
add_variables = true
strain = FINITE
incremental = true
generate_output = 'hydrostatic_stress stress_xx stress_yy stress_zz strain_xx strain_yy strain_zz'
eigenstrain_names = 'SiC_thermal_eigenstrain'
extra_vector_tags = 'ref'
[]
[OPyC]
block = OPyC
add_variables = true
strain = FINITE
incremental = true
generate_output = 'hydrostatic_stress stress_xx stress_yy stress_zz strain_xx strain_yy strain_zz'
eigenstrain_names = 'OPyC_IIDC_strain OPyC_thermal_strain'
extra_vector_tags = 'ref'
[]
[]
[Kernels]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temperature
extra_vector_tags = 'ref'
[]
[heat]
type = HeatConduction
variable = temperature
extra_vector_tags = 'ref'
[]
[heat_source]
type = NeutronHeatSource
variable = temperature
block = fuel
fission_rate = fission_rate
extra_vector_tags = 'ref'
[]
[mass_ie]
type = TimeDerivative
variable = conc
extra_vector_tags = 'ref'
[]
[mass]
type = ArrheniusDiffusion
variable = conc
extra_vector_tags = 'ref'
[]
[mass_source]
type = BodyForce
variable = conc
function = power_history
value = 1.22e-5 # units of mol/m**3-s
block = fuel
extra_vector_tags = 'ref'
[]
[mass_decay]
type = Decay
variable = conc
radioactive_decay_constant = 7.297e-10 # units:(1/sec) The constant for Cesium
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[fissionrate]
type = MaterialRealAux
variable = fission_rate
property = fission_rate
block = fuel
execute_on = timestep_begin
[]
[burnup]
type = MaterialRealAux
variable = burnup
property = burnup
block = fuel
execute_on = timestep_begin
[]
[fast_neutron_flux]
type = MaterialRealAux
variable = fast_neutron_flux
property = fast_neutron_flux
block = 'fuel buffer IPyC SiC OPyC'
execute_on = timestep_begin
[]
[fast_neutron_fluence]
type = MaterialRealAux
variable = fast_neutron_fluence
property = fast_neutron_fluence
block = 'fuel buffer IPyC SiC OPyC'
execute_on = timestep_begin
[]
[conductanceSlave]
type = MaterialRealAux
property = gap_conductance
variable = gap_condSlave
boundary = buffer_outer_boundary
execute_on = 'initial timestep_end'
[]
[density]
type = MaterialRealAux
variable = density
property = density
block = 'fuel buffer IPyC SiC OPyC'
execute_on = 'initial linear'
[]
[thermal_conductivity]
type = MaterialRealAux
variable = thermal_conductivity
property = thermal_conductivity
block = 'fuel buffer IPyC SiC OPyC'
execute_on = timestep_end
[]
[specific_heat]
type = MaterialRealAux
variable = specific_heat
property = specific_heat
block = 'fuel buffer IPyC SiC OPyC'
execute_on = timestep_end
[]
[swelling]
type = MaterialRealAux
variable = swelling
property = swelling
block = fuel
execute_on = linear
[]
[volumetric_IIDC_strain]
type = MaterialRealAux
variable = volumetric_IIDC_strain
property = volumetric_IIDC_strain
block = 'IPyC OPyC'
execute_on = timestep_end
[]
[radial_IIDC_strain]
type = MaterialRealAux
variable = radial_IIDC_strain
property = radial_IIDC_strain
block = 'IPyC OPyC'
execute_on = timestep_end
[]
[tangential_IIDC_strain]
type = MaterialRealAux
variable = tangential_IIDC_strain
property = tangential_IIDC_strain
block = 'IPyC OPyC'
execute_on = timestep_end
[]
[BAF]
type = MaterialRealAux
variable = BAF
property = BAF
block = 'IPyC OPyC'
execute_on = timestep_end
[]
[fis_gas_produced]
type = MaterialRealAux
variable = fis_gas_produced
property = fis_gas_produced
block = fuel
execute_on = linear
[]
[fis_gas_released]
type = MaterialRealAux
variable = fis_gas_released
property = fis_gas_released
block = fuel
execute_on = linear
[]
[gap_HTC]
type = MaterialRealAux
property = gap_conductance
variable = gap_HTC
boundary = buffer_outer_boundary
execute_on = 'initial timestep_end'
[]
[gap_distance]
type = PenetrationAux
variable = gap_distance
boundary = buffer_outer_boundary
paired_boundary = IPyC_inner_boundary
quantity = distance
tangential_tolerance = 1e-6
execute_on = 'initial timestep_end'
[]
[]
[Contact]
[mechanical]
primary = IPyC_inner_boundary
secondary = buffer_outer_boundary
penalty = 1e5
model = frictionless
formulation = kinematic
[]
[]
[ThermalContact]
[thermal_contact]
type = GasGapHeatTransfer
variable = temperature
primary = IPyC_inner_boundary
secondary = buffer_outer_boundary
initial_moles = initial_moles # coupling to a postprocessor which supplies the initial plenum/gap gas mass
initial_gas_types = 'Kr Xe'
initial_fractions = '0.185 0.815'
gas_released = 'fis_gas_released'
released_gas_types = 'Kr Xe'
released_fractions = '0.185 0.815'
tangential_tolerance = 1e-6
roughness_primary = 0e-6
roughness_secondary = 0e-6
jumpdistance_primary = 0
jumpdistance_secondary = 0
quadrature = true
emissivity_secondary = 0.0
emissivity_primary = 0.0
min_gap = 1e-7
max_gap = 50e-6
gap_geometry_type = sphere
[]
[cesium_contact]
type = GapHeatTransfer
variable = conc
primary = IPyC_inner_boundary
secondary = buffer_outer_boundary
tangential_tolerance = 1e-6
gap_conductivity_function = d_gap
gap_conductivity_function_variable = temperature
appended_property_name = _conc
quadrature = true
gap_geometry_type = sphere
emissivity_primary = 0.0
emissivity_secondary = 0.0
min_gap = 1e-7
[]
[]
[BCs]
# pin particle along symmetry planes
[no_disp_x]
type = DirichletBC
variable = disp_x
boundary = xzero
value = 0.0
[]
# fix temperature on free surface
[freesurf_temp]
type = FunctionDirichletBC
variable = temperature
function = temp_bc
boundary = exterior
[]
# fix concentration on free surface
[freesurf_conc]
type = DirichletBC
variable = conc
boundary = exterior
value = 0.0
[]
# exterior and internal pressures
[exterior_pressure_x]
type = Pressure
variable = disp_x
boundary = exterior
factor = 0.1e6
[]
[PlenumPressure] # apply gas pressure on buffer and IPyC boundaries
[plenumPressure]
boundary = buffer_IPyC_boundary
initial_pressure = 100.0
startup_time = 0
R = 8.3145
output_initial_moles = initial_moles
temperature = ave_gas_temp
volume = 'gap_volume buffer_void_volume kernel_void_volume'
material_input = 'fis_gas_released'
output = gas_pressure
[]
[]
[]
[Materials]
[fission_rate]
type = GenericFunctionMaterial
prop_names = fission_rate
prop_values = fission_rate
[]
[fast_neutron_flux]
type = FastNeutronFlux
calculate_fluence = true
flux_function = power_history
factor = 5e17
[]
[normal_vectors_triso]
type = NormalVectorsTRISO
block = 'buffer IPyC OPyC'
[]
### UCO properties
[UCO_burnup]
type = TRISOBurnup
initial_density = ${initial_fuel_density}
[]
[UCO_thermal]
type = UCOThermal
block = fuel
temperature = temperature
[]
[UCO_elasticity_tensor]
type = UCOElasticityTensor
block = fuel
temperature = temperature
[]
[UCO_stress]
type = ComputeFiniteStrainElasticStress
block = fuel
[]
[UCO_VolumetricSwellingEigenstrain]
type = UCOVolumetricSwellingEigenstrain
block = fuel
eigenstrain_name = UCO_swelling_eigenstrain
[]
[UCO_thermal_strain]
type = ComputeThermalExpansionEigenstrain
block = fuel
thermal_expansion_coeff = 10e-6 # check this value for UCO
eigenstrain_name = UCO_thermal_strain
temperature = temperature
[]
[UCO_density]
type = StrainAdjustedDensity
block = fuel
strain_free_density = ${initial_fuel_density}
[]
[fission_gas_release]
type = UCOFGR
block = fuel
average_grain_radius = 10e-6
temperature = temperature
triso_geometry = particle_geometry
cutoff_neutron_flux = 0.0
[]
[fuel_conc]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 5.6e-8 # m^2/s
q1 = 209.0e+3 # J/mol
d2 = 5.2e-4 # m^2/s
q2 = 362.0e+3 # J/mol
temperature = temperature
[]
### Buffer Properties
[buffer_elasticity_tensor]
type = BufferElasticityTensor
block = buffer
temperature = temperature
[]
[buffer_stress]
type = BufferCEGACreep
block = buffer
temperature = temperature
[]
[buffer_thermal]
type = BufferThermal
block = buffer
initial_density = 1050.0
[]
[buffer_density]
type = StrainAdjustedDensity
block = buffer
strain_free_density = 1050.0
[]
[buffer_thermal_strain]
type = BufferThermalExpansionEigenstrain
block = buffer
eigenstrain_name = buffer_thermal_strain
temperature = temperature
[]
[buffer_IIDC_strain]
type = BufferCEGAIrradiationEigenstrain
block = buffer
eigenstrain_name = buffer_IIDC_strain
temperature = temperature
[]
[buffer_conc]
type = ArrheniusDiffusionCoef
block = buffer
d1 = 1.0e-12 # m^2/s
q1 = 0.0
d2 = 0.0
q2 = 0.0
temperature = temperature
[]
### IPyC properties
[IPyC_elasticity_tensor]
type = PyCElasticityTensor
block = IPyC
temperature = temperature
initial_BAF = 1.045
[]
[IPyC_stress]
type = PyCCEGACreep
block = IPyC
temperature = temperature
[]
[IPyC_thermal]
type = HeatConductionMaterial
block = IPyC
thermal_conductivity = 4.0
specific_heat = 720.0
[]
[IPyC_density]
type = GenericConstantMaterial
block = IPyC
prop_names = 'density'
prop_values = 1900.0
[]
[IPyC_IIDC_strain]
type = PyCCEGAIrradiationEigenstrain
block = IPyC
eigenstrain_name = IPyC_IIDC_strain
temperature = temperature
[]
[BAF_IPyC]
type = BaconAnisotropyFactor
initial_BAF = 1.045
block = IPyC
[]
[BAF_OPyC]
type = BaconAnisotropyFactor
initial_BAF = 1.045
block = OPyC
[]
[IPyC_thermal_strain]
type = PyCThermalExpansionEigenstrain
block = IPyC
eigenstrain_name = IPyC_thermal_strain
temperature = temperature
[]
[IPyC_conc]
type = ArrheniusDiffusionCoef
block = IPyC
d1 = 6.3e-8 # m^2/s
q1 = 222.0e+3 # J/mol
d2 = 0.0
q2 = 0.0
temperature = temperature
[]
### SiC properties
[SiC_elasticity_tensor]
type = MonolithicSiCElasticityTensor
block = SiC
temperature = temperature
elastic_modulus_model = miller
[]
[SiC_stress]
type = ComputeFiniteStrainElasticStress
block = SiC
[]
[SiC_thermal]
type = MonolithicSiCThermal
block = SiC
temperature = temperature
thermal_conductivity_model = miller
[]
[SiC_density]
type = GenericConstantMaterial
block = SiC
prop_names = 'density'
prop_values = 3200.0
[]
[SiC_thermal_strain]
type = ComputeThermalExpansionEigenstrain
block = SiC
thermal_expansion_coeff = 4.9e-6
temperature = temperature
eigenstrain_name = SiC_thermal_eigenstrain
[]
[SiC_conc]
type = ArrheniusDiffusionCoef
block = SiC
d1 = 5.5e-14 # m^2/s
d1_function = d1_function
d1_function_variable = fast_neutron_fluence
q1 = 125.0e+3 # J/mol
d2 = 1.6e-2 # m^2/s
q2 = 514.0e+3 # J/mol
temperature = temperature
[]
### OPyC properties
[OPyC_elasticity_tensor]
type = PyCElasticityTensor
block = OPyC
temperature = temperature
initial_BAF = 1.045
[]
[OPyC_stress]
type = PyCCEGACreep
block = OPyC
temperature = temperature
[]
[OPyC_thermal_conductivity]
type = HeatConductionMaterial
block = OPyC
thermal_conductivity = 4.0
specific_heat = 720.0
[]
[OPyC_density]
type = GenericConstantMaterial
block = OPyC
prop_names = 'density'
prop_values = 1900.0
[]
[OPyC_IIDC_strain]
type = PyCCEGAIrradiationEigenstrain
block = OPyC
eigenstrain_name = OPyC_IIDC_strain
temperature = temperature
[]
[OPyC_thermal_strain]
type = PyCThermalExpansionEigenstrain
block = OPyC
eigenstrain_name = OPyC_thermal_strain
temperature = temperature
[]
[OPyC_conc]
type = ArrheniusDiffusionCoef
block = OPyC
d1 = 6.3e-8 # m^2/s
q1 = 222.0e+3 # J/mol
d2 = 0.0
q2 = 0.0
temperature = temperature
[]
[]
[Dampers]
[temp]
type = MaxIncrement
variable = temperature
max_increment = 50
[]
[disp_x]
type = MaxIncrement
variable = disp_x
max_increment = 1e-6
[]
[]
[Debug]
show_var_residual_norms = true
show_var_residual = 'disp_x temperature conc'
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
nl_rel_tol = 1e-8
nl_abs_tol = 1e-7 #1e-12
nl_max_its = 15
l_tol = 1e-4 #1e-8
l_max_its = 50
start_time = 0.0
end_time = 85.3682e6 #5.0e7
num_steps = 1000
dtmax = 2e6
dtmin = 1
[TimeStepper]
type = IterationAdaptiveDT
dt = 20
growth_factor = 1.5
optimal_iterations = 8 #6
linear_iteration_ratio = 100
time_t = '0 76e6 76.001e6 84.641e6 84.6482e6'
time_dt = '20 20 20 20 20'
[]
[Quadrature]
order = THIRD
[]
[]
[Postprocessors]
[_dt]
type = TimestepSize
execute_on = timestep_end
[]
[cs_release]
type = SideIntegralMassFlux
variable = conc
boundary = exterior
[]
[int_cs_release]
type = TimeIntegratedPostprocessor
value = cs_release
[]
[cs_release_fuel]
type = SideIntegralMassFlux
variable = conc
boundary = fuel_outer_boundary
[]
[int_cs_release_fuel]
type = TimeIntegratedPostprocessor
value = cs_release_fuel
[]
[cs_release_PyCGapBndry]
type = SideIntegralMassFlux
variable = conc
boundary = IPyC_inner_boundary
[]
[int_cs_release_PyCGapBndry]
type = TimeIntegratedPostprocessor
value = cs_release_PyCGapBndry
[]
[ave_gas_temp]
type = ElementAverageValue
block = buffer
variable = temperature
execute_on = 'initial timestep_end'
[]
[ave_gap_temp]
type = SideAverageValue
boundary = buffer_IPyC_boundary
variable = temperature
execute_on = 'initial timestep_end'
[]
[fis_gas_produced]
type = ElementIntegralMaterialProperty
mat_prop = fis_gas_produced
block = fuel
execute_on = 'initial timestep_end'
[]
[fis_gas_released]
type = ElementIntegralMaterialProperty
mat_prop = fis_gas_released
block = fuel
execute_on = 'initial timestep_end'
[]
[gap_volume]
type = InternalVolume
boundary = buffer_IPyC_boundary
execute_on = 'initial linear'
use_displaced_mesh = true
[]
[buffer_void_volume]
type = VoidVolume
block = buffer
theoretical_density = 2250
execute_on = 'initial timestep_end'
use_displaced_mesh = true
[]
[kernel_th_density]
type = UCOTheoreticalDensity
execute_on = initial
[]
[kernel_void_volume]
type = VoidVolume
block = fuel
theoretical_density = kernel_th_density
execute_on = 'initial timestep_end'
use_displaced_mesh = true
[]
[volumeTotal]
type = InternalVolume
boundary = exterior
execute_on = 'initial timestep_end'
scale_factor = -1
[]
[volumeFuel]
type = InternalVolume
boundary = fuel_outer_boundary
execute_on = 'initial timestep_end'
scale_factor = -1
[]
[volumeGas]
type = InternalVolume
boundary = buffer_outer_boundary
execute_on = 'initial timestep_end'
scale_factor = -1
addition = 4.67e-11
[]
[volumeBufferShell]
type = InternalVolume
boundary = buffer_outer_boundary
execute_on = 'initial timestep_end'
[]
[ave_temp_interior]
type = SideAverageValue
boundary = buffer_outer_boundary
variable = temperature
execute_on = 'initial timestep_end'
[]
[gap_HTC]
type = ElementExtremeValue
variable = gap_HTC
block = buffer
value_type = 'max'
execute_on = 'initial timestep_end'
[]
### Postprocessors for CO production
[total_fission_rate]
type = ElementIntegralPower
variable = temperature
fission_rate = fission_rate
block = fuel
energy_per_fission = 1.0
outputs = exodus
execute_on = 'initial timestep_end'
[]
[total_fissions]
type = TimeIntegratedPostprocessor
value = total_fission_rate
outputs = exodus
execute_on = 'initial timestep_end'
[]
[avg_surface_temp]
type = SideAverageValue
variable = temperature
boundary = exterior
outputs = exodus
execute_on = 'initial timestep_end'
[]
[time_int_surf_temp]
type = TimeIntegratedPostprocessor
value = avg_surface_temp
outputs = exodus
execute_on = 'initial timestep_end'
[]
##### irradiation conditions
[particle_power]
type = ElementIntegralPower
variable = temperature
use_material_fission_rate = true
fission_rate_material = fission_rate
block = fuel
execute_on = 'initial timestep_end'
[]
[max_fluence]
type = ElementExtremeValue
variable = fast_neutron_fluence
block = 'fuel buffer IPyC SiC OPyC'
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[max_burnup]
type = ElementExtremeValue
variable = burnup
block = fuel
value_type = 'max'
execute_on = 'initial timestep_end'
[]
#### II strain
[OPyC_radial_IIDC_strain]
type = ElementExtremeValue
variable = radial_IIDC_strain
block = OPyC
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[OPyC_tangential_IIDC_strain]
type = ElementExtremeValue
variable = tangential_IIDC_strain
block = OPyC
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[IPyC_radial_IIDC_strain]
type = ElementExtremeValue
variable = radial_IIDC_strain
block = IPyC
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[IPyC_tangential_IIDC_strain]
type = ElementExtremeValue
variable = tangential_IIDC_strain
block = IPyC
value_type = 'max'
execute_on = 'initial timestep_end'
[]
#### temperatures
[max_T_kernel]
type = NodalExtremeValue
variable = temperature
block = fuel
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[max_T_buffer]
type = NodalExtremeValue
variable = temperature
block = buffer
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[min_T_buffer]
type = NodalExtremeValue
variable = temperature
block = buffer
value_type = 'min'
execute_on = 'initial timestep_end'
[]
[max_T_IPyC]
type = NodalExtremeValue
variable = temperature
block = IPyC
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[max_T_SiC]
type = NodalExtremeValue
variable = temperature
block = SiC
value_type = 'max'
execute_on = 'initial timestep_end'
[]
#### displacement BCs
[max_disp_kernel]
type = NodalExtremeValue
variable = disp_x
block = fuel
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[min_disp_buffer]
type = NodalExtremeValue
variable = disp_x
block = buffer
value_type = 'min'
execute_on = 'initial timestep_end'
[]
[max_disp_IPyC]
type = NodalExtremeValue
variable = disp_x
block = IPyC
value_type = 'max'
execute_on = 'initial timestep_end'
[]
#### hoop stresses
[hoop_opyc_max]
type = ElementExtremeValue
variable = stress_yy
block = OPyC
execute_on = 'initial timestep_end'
[]
[hoop_sic_max]
type = ElementExtremeValue
variable = stress_yy
block = SiC
execute_on = 'initial timestep_end'
[]
[hoop_ipyc_max]
type = ElementExtremeValue
variable = stress_yy
block = IPyC
execute_on = 'initial timestep_end'
[]
[hoop_buffer_max]
type = ElementExtremeValue
variable = stress_yy
block = buffer
execute_on = 'initial timestep_end'
[]
[hoop_opyc_min]
type = ElementExtremeValue
variable = stress_yy
block = OPyC
value_type = min
execute_on = 'initial timestep_end'
[]
[hoop_sic_min]
type = ElementExtremeValue
variable = stress_yy
block = SiC
value_type = min
execute_on = 'initial timestep_end'
[]
[hoop_ipyc_min]
type = ElementExtremeValue
variable = stress_yy
block = IPyC
value_type = min
execute_on = 'initial timestep_end'
[]
[hoop_buffer_min]
type = ElementExtremeValue
variable = stress_yy
block = buffer
value_type = min
execute_on = 'initial timestep_end'
[]
### Check warning for Density
[oPyC_density]
type = ElementExtremeValue
variable = density
block = OPyC
execute_on = 'initial timestep_end'
[]
[sic_density]
type = ElementExtremeValue
variable = density
block = SiC
execute_on = 'initial timestep_end'
[]
[IPyC_density]
type = ElementExtremeValue
variable = density
block = IPyC
execute_on = 'initial timestep_end'
[]
[buffer_density]
type = ElementExtremeValue
variable = density
block = buffer
execute_on = 'initial timestep_end'
[]
[kernel_density]
type = ElementExtremeValue
variable = density
block = fuel
execute_on = 'initial timestep_end'
[]
[pd_penetration]
type = PdPenetration
boundary = SiC_inner_boundary
variable = temperature
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
print_linear_residuals = true
time_step_interval = 1
exodus = true
csv = true
perf_graph = true
[]
(test/tests/monolithicSiCThermal/thermal_stone_unirradiated.i)
# The mesh is a 1x1x1 cube (single element).
# The temperature is ramped on all faces of the cube from 300 K to 1500 K
# over 12.0 s.
#
# Specific heat capacity is computed using the correlation from:
#
# L. L. Snead, T. Nozawa, Y. Katoh, T-S. Byun, S. Kondo, D. A. Petti,
# "Handbook of SiC propeties for fuel performance modeling," Journal of Nuclear
# Materials, 371, 2007, p. 329-377.
#
# and thermal conductivity is computed using the thermal conductivity correlation
# from:
#
# J. G. Stone, R. Schleicher, C. P. Deck, G. M. Jacobsen, H. E. Khalifa, C. A.
# Back, "Stress analysis and probablistic assessment of multi-layer SiC-based
# accident tolerant nuclear fuel cladding," Journal of Nuclear Materials, 466,
# 2015, p. 682-697.
#
# The specific heat correlation is tested elsewhere. The results of the BISON
# simulation for unirradiatedthermal conductivity is compared to the analytical
# solution below.
#
# SiC/SiC k SiC/SiC k
# Temp(K) BISON(W/m-K) analytical(W/m-K)
# 300 100.951 100.951
# 600 68.9080 68.9080
# 900 50.9770 50.9770
# 1200 41.1640 41.1640
# 1500 33.4750 33.4750
[Mesh]
[mesh]
type = GeneratedMeshGenerator
dim = 3
[]
[]
[Variables]
[temperature]
order = FIRST
family = LAGRANGE
initial_condition = 300.0
[]
[]
[AuxVariables]
[specific_heat]
order = CONSTANT
family = MONOMIAL
[]
[thermal_conductivity]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temperature
[]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temperature
[]
[]
[AuxKernels]
[thermal_conductivity]
type = MaterialRealAux
variable = thermal_conductivity
property = thermal_conductivity
block = 0
execute_on = 'initial linear'
[]
[specific_heat]
type = MaterialRealAux
variable = specific_heat
property = specific_heat
block = 0
execute_on = 'initial linear'
[]
[]
[Functions]
[temp_ramp]
type = PiecewiseLinear
x = '0.0 12.0'
y = '300 1500'
[]
[]
[BCs]
[temperature_all]
type = FunctionDirichletBC
boundary = 'left right front back bottom top' # All cube faces
variable = temperature
function = temp_ramp
[]
[]
[Materials]
[MonolithicSiCThermal]
type = MonolithicSiCThermal
temperature = temperature
thermal_conductivity_model = STONE # This is the default
[]
[density]
type = ParsedMaterial
block = 0
property_name = density
expression = 3210.0
[]
[swelling]
type = CompositeSiCVolumetricSwellingEigenstrain
block = 0
temperature = temperature
fast_neutron_fluence = 0.0
eigenstrain_name = swelling_strain
[]
[]
[Executioner]
type = Transient
solve_type = PJFNK
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart'
petsc_options_value = '101'
line_search = 'none'
l_max_its = 100
nl_max_its = 100
nl_rel_tol = 1e-6
nl_abs_tol = 1e-10
l_tol = 1e-5
start_time = 0.0
num_steps = 12
dt = 1.0
[]
[Postprocessors]
[avg_temperature]
type = SideAverageValue
boundary = 'left right top bottom front back'
execute_on = 'initial timestep_end'
variable = temperature
[]
[avg_th_cond]
type = ElementAverageValue
block = 0
variable = thermal_conductivity
execute_on = 'initial timestep_end'
[]
[avg_specific_heat]
type = ElementAverageValue
block = 0
variable = specific_heat
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
exodus = true
[]
(assessment/TRISO/validation/AGR-1/AGR-1_base.i)
#COMPACT = <compact_id>
#DATA_FILE = <data_file_name>
# Definition of the mass source due to impurities in the OPyC layer.
#value = impurities * vol_kernel / vol_opyc
#value = 1.59e-6 * 4.07e-11 / 9.16e-11 # for UCO => 7.06e-7
#value = 1.57e-6 * 6.85e-11 / 1.18e-10 # for UO2 => 9.11e-7
mass_source_property_OPyC = 7.06e-7 # Default = UCO fuel kernel
initial_fuel_density = 10400
[GlobalParams]
order = SECOND
family = LAGRANGE
initial_enrichment = 0.19736 # [wt-]
energy_per_fission = 3.204e-11 # [J/fission]
O_U = 1.3613 # Initial Oxygen to Uranium atom ratio
C_U = 0.3253 # Initial Carbon to Uranium atom ratio
[]
[Mesh]
coord_type = RSPHERICAL
[gen]
type = TRISO1DFiveLayerMeshGenerator
elem_type = EDGE3
kernel_radius = 175e-6
buffer_thickness = 100e-6
IPyC_thickness = 40e-6
SiC_thickness = 35e-6
OPyC_thickness = 40e-6
kernel_mesh_density = 18
buffer_mesh_density = 14
IPyC_mesh_density = 6
SiC_mesh_density = 8
OPyC_mesh_density = 6
block_names = 'fuel buffer IPyC SiC OPyC'
include_gap = false
kernel_bias = 0.8
buffer_bias = 1.25
[]
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[UserObjects]
[particle_geometry]
type = TRISOGeometry
outer_OPyC = OPyC_outer_boundary
outer_SiC = SiC_outer_boundary
outer_IPyC = IPyC_outer_boundary
inner_IPyC = IPyC_inner_boundary
outer_buffer = buffer_outer_boundary
outer_kernel = fuel_outer_boundary
include_particle = true
include_pebble = false
[]
[]
[Variables]
[temperature]
initial_condition = 923.15
[]
[]
[AuxVariables]
[fission_rate]
block = fuel
order = CONSTANT
family = MONOMIAL
[]
[burnup]
block = fuel
order = CONSTANT
family = MONOMIAL
[]
[fast_neutron_fluence]
order = CONSTANT
family = MONOMIAL
[]
[density]
order = CONSTANT
family = MONOMIAL
[]
[thermal_conductivity]
order = CONSTANT
family = MONOMIAL
[]
[specific_heat]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[temp_bc_file]
type = PiecewiseLinear
#data_file = DATA_FILE
x_index_in_file = 0
y_index_in_file = 1
xy_in_file_only = false
format = columns
[]
[temp_bc_safety]
type = ParsedFunction
symbol_names = 'test_temperature'
symbol_values = '1873.15'
expression = 'start := 55209600+1800;
ramp1 := 120.0/3600.0;
ramp2 := 120.0/3600.0;
ramp3 := 50.0/3600.0;
ramp4 := -600.0/3600.0;
room := 303.15;
plateau1 := 673.15;
plateau2 := 1523.15;
hold1 := 7200;
hold2 := 43200;
hold3 := 1080000;
ramp_time1 := (plateau1-room)/ramp1;
ramp_time2 := (plateau2-plateau1)/ramp2;
ramp_time3 := (test_temperature-plateau2)/ramp3;
ramp_time4 := (room-test_temperature)/ramp4;
t1 := start+ramp_time1;
t2 := t1+hold1;
t3 := t2+ramp_time2;
t4 := t3+hold2;
t5 := t4+ramp_time3;
t6 := t5+hold3;
t7 := t6+ramp_time4;
if(t<start,room,
if(t<t1,room+(t-start)*ramp1,
if(t<t2,plateau1,
if(t<t3,plateau1+(t-t2)*ramp2,
if(t<t4,plateau2,
if(t<t5,plateau2+(t-t4)*ramp3,
if(t<t6,test_temperature,
if(t<t7,test_temperature+(t-t6)*ramp4,
room))))))))'
[]
[temp_bc]
type = ParsedFunction
symbol_names = 'tbcf tbcs'
symbol_values = 'temp_bc_file temp_bc_safety'
expression = 'if(t<=55209600,tbcf,tbcs)'
[]
[power_history] # W/m^3
type = PiecewiseLinear
#data_file = DATA_FILE
x_index_in_file = 0
y_index_in_file = 2
xy_in_file_only = false
format = columns
[]
[fast_neutron_fluence]
type = PiecewiseLinear
#data_file = DATA_FILE
x_index_in_file = 0
y_index_in_file = 3
xy_in_file_only = false
format = columns
[]
[fission_rate_from_power]
type = LinearCombinationFunction
functions = power_history
# W/m^3 / (1.602e-13 J/MeV) / (200 MeV/fission)
w = 3.1211e10
[]
[fission_rate]
type = ParsedFunction
symbol_names = 'fr'
symbol_values = 'fission_rate_from_power'
expression = 'if(t<=55209600,fr,0)'
[]
[d1_function]
type = ParsedFunction
expression = 'exp(t/4.5e25)'
[]
[]
[Kernels]
[heat_dt]
type = HeatConductionTimeDerivative
variable = temperature
[]
[heat]
type = HeatConduction
variable = temperature
extra_vector_tags = 'ref'
[]
[heat_source]
type = NeutronHeatSource
variable = temperature
block = fuel
fission_rate = fission_rate
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[fissionrate]
type = MaterialRealAux
variable = fission_rate
property = fission_rate
block = fuel
execute_on = timestep_begin
[]
[burnup]
type = MaterialRealAux
variable = burnup
property = burnup
block = fuel
execute_on = timestep_begin
[]
[fast_neutron_fluence]
type = MaterialRealAux
variable = fast_neutron_fluence
property = fast_neutron_fluence
block = 'fuel buffer IPyC SiC OPyC'
execute_on = timestep_begin
[]
[density]
type = MaterialRealAux
variable = density
property = density
block = 'fuel buffer IPyC SiC OPyC'
execute_on = 'initial linear'
[]
[thermal_conductivity]
type = MaterialRealAux
variable = thermal_conductivity
property = thermal_conductivity
block = 'fuel buffer IPyC SiC OPyC'
execute_on = timestep_end
[]
[specific_heat]
type = MaterialRealAux
variable = specific_heat
property = specific_heat
block = 'fuel buffer IPyC SiC OPyC'
execute_on = timestep_end
[]
[]
[BCs]
# fix temperature on free surface
[freesurf_temp]
type = FunctionDirichletBC
variable = temperature
function = temp_bc
boundary = exterior
[]
[]
[Materials]
[fission_rate]
type = GenericFunctionMaterial
prop_names = fission_rate
prop_values = fission_rate
[]
[fast_neutron_fluence]
type = GenericFunctionMaterial
prop_names = fast_neutron_fluence
prop_values = fast_neutron_fluence
[]
### UCO fuel properties
[UCO_burnup]
type = TRISOBurnup
initial_density = ${initial_fuel_density}
[]
[UCO_thermal]
type = UCOThermal
block = fuel
temperature = temperature
[]
[UCO_density]
type = ParsedMaterial
block = fuel
property_name= density
expression = ${initial_fuel_density}
[]
### Buffer Properties
[buffer_thermal]
type = BufferThermal
block = buffer
initial_density = 1050.0
[]
[Buffer_density]
type = ParsedMaterial
block = buffer
property_name= density
expression = 1050.0
[]
### IPyC properties
[IPyC_thermal]
type = HeatConductionMaterial
block = IPyC
thermal_conductivity = 4.0
specific_heat = 720.0
[]
[IPyC_density]
type = ParsedMaterial
block = IPyC
property_name= density
expression = 1900.0
[]
### SiC properties
[SiC_thermal]
type = MonolithicSiCThermal
block = SiC
temperature = temperature
thermal_conductivity_model = miller
[]
[SiC_density]
type = ParsedMaterial
block = SiC
property_name = density
expression = 3200.0
[]
### OPyC properties
[OPyC_thermal_conductivity]
type = HeatConductionMaterial
block = OPyC
thermal_conductivity = 4.0
specific_heat = 720.0
[]
[OPyC_density]
type = ParsedMaterial
block = OPyC
property_name= density
expression = 1900.0
[]
[]
[Dampers]
[temp]
type = MaxIncrement
variable = temperature
max_increment = 50
[]
[]
[Debug]
show_var_residual_norms = true
show_var_residual = 'temperature'
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK' # Shall we switch to 'Newton'?
# solve_type = 'Newton'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
nl_rel_tol = 1e-6
nl_abs_tol = 1e-12
nl_max_its = 50
l_tol = 1e-4
l_max_its = 50
start_time = 0.0
end_time = 55209600
num_steps = 1500
dt = 86400
dtmax = 86400
dtmin = 100
[TimeStepper]
type = FunctionDT
function = 'if(t<55209600,86400,1800)'
[]
automatic_scaling = true
compute_scaling_once = false
[]
[Postprocessors]
[_dt]
type = TimestepSize
execute_on = timestep_end
[]
### Temperature
[temp_min]
type = NodalExtremeValue
variable = temperature
value_type = 'min'
execute_on = 'initial timestep_end'
[]
[temp_max]
type = NodalExtremeValue
variable = temperature
value_type = 'max'
execute_on = 'initial timestep_end'
[]
### Postprocessors for CO production
[total_fission_rate]
type = ElementIntegralPower
variable = temperature
fission_rate = fission_rate
block = fuel
energy_per_fission = 1.0
outputs = exodus
execute_on = 'initial timestep_end'
[]
[total_fissions]
type = TimeIntegratedPostprocessor
value = total_fission_rate
outputs = exodus
execute_on = 'initial timestep_end'
[]
##### irradiation conditions
[particle_power]
type = ElementIntegralPower
variable = temperature
use_material_fission_rate = true
fission_rate_material = fission_rate
block = fuel
execute_on = 'initial timestep_end'
[]
[max_fluence]
type = ElementExtremeValue
variable = fast_neutron_fluence
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[max_burnup]
type = ElementExtremeValue
variable = burnup
block = fuel
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = false
[console]
type = Console
time_step_interval = 1
[]
[exodus]
type = Exodus
file_base = COMPACT
[]
[release]
type = CSV
file_base = release_COMPACT
sort_columns = true
[]
[final_release]
type = CSV
file_base = final_release_COMPACT
sort_columns = true
execute_on = 'final'
[]
[]
(test/tests/triso/kernel_migration/kernel_migration_distance.i)
kernel_radius = 213.35e-6
buffer_thickness = 98.9e-6
IPyC_thickness = 40.4e-6
SiC_thickness = 35.2e-6
OPyC_thickness = 43.4e-6
coordinates1 = '${fparse kernel_radius}'
coordinates2 = '${fparse coordinates1+buffer_thickness}'
coordinates3 = '${fparse coordinates2+IPyC_thickness}'
coordinates4 = '${fparse coordinates3+SiC_thickness}'
coordinates5 = '${fparse coordinates4+OPyC_thickness}'
[GlobalParams]
order = FIRST
family = LAGRANGE
displacements = 'disp_x'
initial_enrichment = 0.14029 # [wt-]
flux_conversion_factor = 1.0 # convert E>0.10 to E>0.18 MeV
stress_free_temperature = 1573 # used for thermal expansion
energy_per_fission = 3.204e-11 # [J/fission]
O_U = 1.428 # Initial Oxygen to Uranium atom ratio
C_U = 0.392 # Initial Carbon to Uranium atom ratio
[]
[Mesh]
coord_type = RSPHERICAL
[mesh]
type = TRISO1DMeshGenerator
elem_type = EDGE2
coordinates = '0 ${coordinates1} ${coordinates2} ${coordinates2} ${coordinates3} ${coordinates4} ${coordinates5}'
mesh_density = '20 8 0 4 4 4'
block_names = 'fuel buffer IPyC SiC OPyC'
[]
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[UserObjects]
[particle_geometry]
type = TRISOGeometry
outer_OPyC = OPyC_outer_boundary
outer_SiC = SiC_outer_boundary
outer_IPyC = IPyC_outer_boundary
inner_IPyC = IPyC_inner_boundary
outer_buffer = buffer_outer_boundary
outer_kernel = fuel_outer_boundary
include_particle = true
include_pebble = false
[]
[]
[Variables]
[temperature]
initial_condition = 1573
[]
[]
[AuxVariables]
[fission_rate]
order = CONSTANT
family = MONOMIAL
[]
[burnup]
order = CONSTANT
family = MONOMIAL
[]
[fast_neutron_flux]
order = CONSTANT
family = MONOMIAL
[]
[fast_neutron_fluence]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[fission_rate]
type = ConstantFunction
value = 5.75e19
[]
[]
[Physics/SolidMechanics/QuasiStatic]
generate_output = 'stress_xx stress_yy stress_zz strain_xx strain_yy strain_zz max_principal_stress'
add_variables = true
strain = FINITE
incremental = true
[fuel]
block = fuel
eigenstrain_names = 'UCO_swelling_eigenstrain UCO_TE_strain'
extra_vector_tags = 'ref'
[]
[buffer]
block = buffer
eigenstrain_names = 'Buffer_IIDC_strain Buffer_TE_strain'
extra_vector_tags = 'ref'
[]
[IPyC]
block = IPyC
eigenstrain_names = 'IPyC_IIDC_strain IPyC_TE_strain'
extra_vector_tags = 'ref'
[]
[SiC]
block = SiC
eigenstrain_names = 'SiC_thermal_eigenstrain'
extra_vector_tags = 'ref'
[]
[OPyC]
block = OPyC
eigenstrain_names = 'OPyC_IIDC_strain OPyC_TE_strain'
extra_vector_tags = 'ref'
[]
[]
[Kernels]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temperature
extra_vector_tags = 'ref'
[]
[heat]
type = HeatConduction
variable = temperature
extra_vector_tags = 'ref'
[]
[heat_source]
type = NeutronHeatSource
variable = temperature
block = fuel
fission_rate = fission_rate
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[fissionrate]
type = MaterialRealAux
variable = fission_rate
property = fission_rate
block = fuel
execute_on = timestep_begin
[]
[burnup]
type = MaterialRealAux
variable = burnup
property = burnup
block = fuel
execute_on = timestep_begin
[]
[fast_neutron_flux]
type = MaterialRealAux
variable = fast_neutron_flux
property = fast_neutron_flux
execute_on = timestep_begin
[]
[fast_neutron_fluence]
type = MaterialRealAux
variable = fast_neutron_fluence
property = fast_neutron_fluence
execute_on = timestep_begin
[]
[]
[ThermalContact]
[thermal_contact]
type = GasGapHeatTransfer
variable = temperature
primary = IPyC_inner_boundary
secondary = buffer_outer_boundary
initial_moles = initial_moles
gas_released = 'fis_gas_released'
released_gas_types = 'Kr Xe'
released_fractions = '0.185 0.815'
tangential_tolerance = 1e-6
quadrature = false
min_gap = 1e-7
max_gap = 50e-6
gap_geometry_type = sphere
[]
[]
[BCs]
[no_disp_x]
type = DirichletBC
variable = disp_x
boundary = xzero
value = 0.0
[]
[freesurf_temp]
type = DirichletBC
variable = temperature
value = 1573
boundary = exterior
[]
[exterior_pressure_x]
type = Pressure
variable = disp_x
boundary = exterior
factor = 0.1e6
[]
[PlenumPressure]
[plenumPressure]
boundary = buffer_IPyC_boundary
startup_time = 1e4
initial_pressure = 0
R = 8.3145
output_initial_moles = initial_moles
temperature = ave_gas_temp
volume = 'gap_volume buffer_void_volume kernel_void_volume'
material_input = 'fis_gas_released'
output = gas_pressure
[]
[]
[]
[Materials]
[fission_rate]
type = GenericFunctionMaterial
prop_names = fission_rate
prop_values = fission_rate
block = fuel
[]
[fast_neutron_flux]
type = FastNeutronFlux
calculate_fluence = true
factor = 6.2425e+17
[]
[UCO_burnup]
type = TRISOBurnup
initial_density = 10966
block = fuel
[]
[UCO_thermal]
type = UCOThermal
block = fuel
temperature = temperature
[]
[UCO_elasticity_tensor]
type = UCOElasticityTensor
block = fuel
temperature = temperature
[]
[UCO_stress]
type = ComputeFiniteStrainElasticStress
block = fuel
[]
[UCO_VolumetricSwellingEigenstrain]
type = UCOVolumetricSwellingEigenstrain
block = fuel
eigenstrain_name = UCO_swelling_eigenstrain
[]
[fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = fuel
thermal_expansion_coeff = 10.0e-6
temperature = temperature
eigenstrain_name = UCO_TE_strain
[]
[UCO_density]
type = StrainAdjustedDensity
block = fuel
strain_free_density = 10966
[]
[fission_gas_release]
type = UCOFGR
block = fuel
average_grain_radius = 10e-6
temperature = temperature
triso_geometry = particle_geometry
cutoff_neutron_flux = 0.0
[]
[normal_vectors_triso]
type = NormalVectorsTRISO
block = 'buffer IPyC OPyC'
[]
[BAF_IPyC]
type = BaconAnisotropyFactor
initial_BAF = 1.0465
block = IPyC
[]
[BAF_OPyC]
type = BaconAnisotropyFactor
initial_BAF = 1.0429
block = OPyC
[]
[buffer_elasticity_tensor]
type = BufferElasticityTensor
block = buffer
temperature = temperature
[]
[buffer_stress]
type = BufferCEGACreep
block = buffer
temperature = temperature
[]
[buffer_thermal]
type = BufferThermal
block = buffer
initial_density = 1050.0
[]
[buffer_density]
type = StrainAdjustedDensity
block = buffer
strain_free_density = 1050.0
[]
[buffer_TE]
type = BufferThermalExpansionEigenstrain
block = buffer
eigenstrain_name = Buffer_TE_strain
temperature = temperature
[]
[buffer_IIDC]
type = BufferCEGAIrradiationEigenstrain
block = buffer
eigenstrain_name = Buffer_IIDC_strain
temperature = temperature
[]
[IPyC_elasticity_tensor]
type = PyCElasticityTensor
block = IPyC
temperature = temperature
[]
[IPyC_stress]
type = PyCCEGACreep
block = IPyC
creep_rate_scale_factor = 1
temperature = temperature
[]
[IPyC_thermal]
type = HeatConductionMaterial
block = IPyC
thermal_conductivity = 4.0
specific_heat = 720.0
[]
[IPyC_density]
type = GenericConstantMaterial
block = IPyC
prop_names = 'density'
prop_values = 1890
[]
[IPyC_IIDC]
type = PyCCEGAIrradiationEigenstrain
block = IPyC
eigenstrain_name = IPyC_IIDC_strain
temperature = temperature
irradiation_eigenstrain_scale_factor = 1
[]
[IPyC_TE]
type = PyCThermalExpansionEigenstrain
block = IPyC
eigenstrain_name = IPyC_TE_strain
temperature = temperature
[]
[SiC_elasticity_tensor]
type = MonolithicSiCElasticityTensor
block = SiC
temperature = temperature
elastic_modulus_model = miller
[]
[SiC_stress]
type = ComputeFiniteStrainElasticStress
block = SiC
[]
[SiC_thermal]
type = MonolithicSiCThermal
block = SiC
temperature = temperature
thermal_conductivity_model = miller
[]
[SiC_density]
type = StrainAdjustedDensity
block = SiC
strain_free_density = 3200.0
[]
[SiC_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = SiC
thermal_expansion_coeff = 4.9e-6
temperature = temperature
eigenstrain_name = SiC_thermal_eigenstrain
[]
[OPyC_elasticity_tensor]
type = PyCElasticityTensor
block = OPyC
temperature = temperature
initial_BAF = 1.0
[]
[OPyC_stress]
type = PyCCEGACreep
block = OPyC
creep_rate_scale_factor = 1
temperature = temperature
[]
[OPyC_thermal_conductivity]
type = HeatConductionMaterial
block = OPyC
thermal_conductivity = 4.0
specific_heat = 720.0
[]
[OPyC_density]
type = GenericConstantMaterial
block = OPyC
prop_names = 'density'
prop_values = 1900
[]
[OPyC_IIDC]
type = PyCCEGAIrradiationEigenstrain
block = OPyC
eigenstrain_name = OPyC_IIDC_strain
temperature = temperature
irradiation_eigenstrain_scale_factor = 1
[]
[OPyC_TE]
type = PyCThermalExpansionEigenstrain
block = OPyC
eigenstrain_name = OPyC_TE_strain
temperature = temperature
[]
[characteristic_strength_SiC]
type = GenericConstantMaterial
prop_values = '9640000'
block = SiC
prop_names = 'characteristic_strength'
[]
[characteristic_strength_PyC]
type = PyCCharacteristicStrength
temperature = temperature
X = 1.02
block = 'IPyC OPyC'
[]
[]
[Dampers]
[temp]
type = MaxIncrement
variable = temperature
max_increment = 100
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
nl_rel_tol = 1e-10
nl_abs_tol = 1e-9
nl_max_its = 20
l_tol = 1e-4
l_max_its = 50
start_time = 0.0
num_steps = 10
dtmin = 1e-4
dt = 1e4
[]
[Postprocessors]
[ave_gas_temp]
type = ElementAverageValue
block = buffer
variable = temperature
execute_on = 'initial timestep_end'
[]
[fis_gas_released]
type = ElementIntegralMaterialProperty
mat_prop = fis_gas_released
block = fuel
use_displaced_mesh = false
execute_on = 'initial timestep_end'
[]
[gap_volume]
type = InternalVolume
boundary = buffer_IPyC_boundary
execute_on = 'initial linear'
use_displaced_mesh = true
[]
[buffer_void_volume]
type = VoidVolume
block = buffer
theoretical_density = 2250
execute_on = 'initial timestep_end'
use_displaced_mesh = true
[]
[kernel_th_density]
type = UCOTheoreticalDensity
execute_on = initial
[]
[kernel_void_volume]
type = VoidVolume
block = fuel
theoretical_density = kernel_th_density
execute_on = 'initial timestep_end'
use_displaced_mesh = true
[]
[particle_power]
type = ElementIntegralPower
variable = temperature
use_material_fission_rate = true
fission_rate_material = fission_rate
block = fuel
execute_on = 'initial timestep_end'
[]
[max_fluence]
type = ElementExtremeValue
variable = fast_neutron_fluence
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[max_burnup]
type = ElementExtremeValue
variable = burnup
block = fuel
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[SiC_stress_max]
type = ElementExtremeMaterialProperty
block = SiC
value_type = max
mat_prop = stress_yy
[]
[SiC_stress_min]
type = ElementExtremeMaterialProperty
block = SiC
value_type = min
mat_prop = stress_yy
[]
[strength_SiC]
type = WeibullEffectiveMeanStrength
block = SiC
weibull_modulus = 6
[]
[kernel_migration_distance]
type = KernelMigrationDistance
block = 'fuel buffer IPyC SiC OPyC'
variable = temperature
temperature_gradient = 15000
kernel_type = UO2
[]
[]
[Outputs]
show = 'kernel_migration_distance'
print_linear_residuals = false
time_step_interval = 1
csv = true
perf_graph = true
[]
(test/tests/triso/mesh/ipyc_crack.i)
[GlobalParams]
order = FIRST
family = LAGRANGE
displacements = 'disp_x disp_y'
initial_enrichment = 0.14029 # [wt-]
flux_conversion_factor = 1.0 # convert E>0.10 to E>0.18 MeV
stress_free_temperature = 481 # used for thermal expansion
energy_per_fission = 3.204e-11 # [J/fission]
O_U = 1.428 # Initial Oxygen to Uranium atom ratio
C_U = 0.392 # Initial Carbon to Uranium atom ratio
[]
[Mesh]
coord_type = RZ
[gen]
type = TRISO2DMeshGenerator
elem_type = quad4
coordinates = '0 2.1335e-4 3.1225e-4 3.1225e-4 3.5265e-4 3.8785e-4 4.3415e-4'
mesh_density = '3 3 0 3 4 3'
block_names = 'fuel buffer IPyC SiC OPyC'
num_sectors = 20
aspect_ratio = 1.0
all_bottom_left = true
[]
[]
[XFEM]
qrule = volfrac
output_cut_plane = true
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[UserObjects]
[ipyc_crack]
type = LineSegmentCutUserObject
cut_data = '0.0000 0.0 0.001 0.0'
time_start_cut = 0.0
time_end_cut = 0.0
block = IPyC
[]
[particle_geometry]
type = TRISOGeometry
outer_OPyC = OPyC_outer_boundary
outer_SiC = SiC_outer_boundary
outer_IPyC = IPyC_outer_boundary
inner_IPyC = IPyC_inner_boundary
outer_buffer = buffer_outer_boundary
outer_kernel = fuel_outer_boundary
include_particle = true
include_pebble = false
mesh_generator = 'gen'
[]
[]
[Variables]
[temperature]
initial_condition = 650
[]
[]
[AuxVariables]
[fission_rate]
order = CONSTANT
family = MONOMIAL
[]
[burnup]
order = CONSTANT
family = MONOMIAL
[]
[fast_neutron_flux]
order = CONSTANT
family = MONOMIAL
[]
[fast_neutron_fluence]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[fission_rate]
type = ConstantFunction
value = 5.75e19
[]
[]
[Physics/SolidMechanics/QuasiStatic]
generate_output = 'stress_xx stress_yy stress_zz strain_xx strain_yy strain_zz max_principal_stress'
add_variables = true
strain = FINITE
incremental = true
temperature = temperature
[fuel]
block = fuel
eigenstrain_names = 'UCO_swelling_eigenstrain UCO_TE_strain'
extra_vector_tags = 'ref'
[]
[buffer]
block = buffer
eigenstrain_names = 'Buffer_IIDC_strain Buffer_TE_strain'
extra_vector_tags = 'ref'
[]
[IPyC]
block = IPyC
eigenstrain_names = 'IPyC_IIDC_strain IPyC_TE_strain'
extra_vector_tags = 'ref'
[]
[SiC]
block = SiC
eigenstrain_names = 'SiC_thermal_eigenstrain'
extra_vector_tags = 'ref'
[]
[OPyC]
block = OPyC
eigenstrain_names = 'OPyC_IIDC_strain OPyC_TE_strain'
extra_vector_tags = 'ref'
[]
[]
[Kernels]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temperature
extra_vector_tags = 'ref'
[]
[heat]
type = HeatConduction
variable = temperature
extra_vector_tags = 'ref'
[]
[heat_source]
type = NeutronHeatSource
variable = temperature
block = fuel
fission_rate = fission_rate
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[fissionrate]
type = MaterialRealAux
variable = fission_rate
property = fission_rate
block = fuel
execute_on = timestep_begin
[]
[burnup]
type = MaterialRealAux
variable = burnup
property = burnup
block = fuel
execute_on = timestep_begin
[]
[fast_neutron_flux]
type = MaterialRealAux
variable = fast_neutron_flux
property = fast_neutron_flux
execute_on = timestep_begin
[]
[fast_neutron_fluence]
type = MaterialRealAux
variable = fast_neutron_fluence
property = fast_neutron_fluence
execute_on = timestep_begin
[]
[]
[ThermalContact]
[thermal_contact]
type = GasGapHeatTransfer
variable = temperature
primary = IPyC_inner_boundary
secondary = buffer_outer_boundary
initial_moles = initial_moles
gas_released = 'fis_gas_released'
released_gas_types = 'Kr Xe'
released_fractions = '0.185 0.815'
tangential_tolerance = 1e-6
quadrature = false
min_gap = 1e-7
max_gap = 50e-6
gap_geometry_type = sphere
sphere_origin = '0 0 0'
[]
[]
[BCs]
[no_disp_x]
type = DirichletBC
variable = disp_x
boundary = xzero
value = 0.0
[]
[no_disp_y]
type = DirichletBC
variable = disp_y
boundary = '2001 2002 2004 2005'
value = 0.0
[]
[freesurf_temp]
type = DirichletBC
variable = temperature
value = 650
boundary = exterior
[]
[Pressure]
[exterior]
boundary = exterior
factor = 0.1e6
[]
[]
[PlenumPressure]
[plenumPressure]
boundary = buffer_IPyC_boundary
startup_time = 1e4
initial_pressure = 0
R = 8.3145
output_initial_moles = initial_moles
temperature = ave_gas_temp
volume = 'gap_volume buffer_void_volume kernel_void_volume'
material_input = 'fis_gas_released'
output = gas_pressure
[]
[]
[]
[Materials]
[fission_rate]
type = GenericFunctionMaterial
prop_names = fission_rate
prop_values = fission_rate
block = fuel
[]
[fast_neutron_flux]
type = FastNeutronFlux
calculate_fluence = true
factor = 6.2425e+17
[]
[UCO_burnup]
type = TRISOBurnup
initial_density = 10966
block = fuel
[]
[UCO_thermal]
type = UCOThermal
block = fuel
temperature = temperature
[]
[UCO_elasticity_tensor]
type = UCOElasticityTensor
block = fuel
temperature = temperature
[]
[UCO_stress]
type = ComputeFiniteStrainElasticStress
block = fuel
[]
[UCO_VolumetricSwellingEigenstrain]
type = UCOVolumetricSwellingEigenstrain
block = fuel
eigenstrain_name = UCO_swelling_eigenstrain
[]
[fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = fuel
thermal_expansion_coeff = 10.0e-6
temperature = temperature
eigenstrain_name = UCO_TE_strain
[]
[UCO_density]
type = StrainAdjustedDensity
block = fuel
strain_free_density = 10966
[]
[fission_gas_release]
type = UCOFGR
block = fuel
average_grain_radius = 10e-6
temperature = temperature
triso_geometry = particle_geometry
cutoff_neutron_flux = 0.0
[]
[BAF_IPyC]
type = BaconAnisotropyFactor
initial_BAF = 1.0465
block = IPyC
[]
[BAF_OPyC]
type = BaconAnisotropyFactor
initial_BAF = 1.0429
block = OPyC
[]
[buffer_elasticity_tensor]
type = BufferElasticityTensor
block = buffer
temperature = temperature
[]
[buffer_stress]
type = BufferCEGACreep
block = buffer
temperature = temperature
[]
[buffer_thermal]
type = BufferThermal
block = buffer
initial_density = 1050.0
[]
[buffer_density]
type = StrainAdjustedDensity
block = buffer
strain_free_density = 1050.0
[]
[buffer_TE]
type = BufferThermalExpansionEigenstrain
block = buffer
eigenstrain_name = Buffer_TE_strain
temperature = temperature
[]
[buffer_IIDC]
type = BufferCEGAIrradiationEigenstrain
block = buffer
eigenstrain_name = Buffer_IIDC_strain
temperature = temperature
[]
[IPyC_elasticity_tensor]
type = PyCElasticityTensor
block = IPyC
temperature = temperature
[]
[IPyC_stress]
type = PyCCEGACreep
block = IPyC
creep_rate_scale_factor = 1
temperature = temperature
[]
[IPyC_thermal]
type = HeatConductionMaterial
block = IPyC
thermal_conductivity = 4.0
specific_heat = 720.0
[]
[IPyC_density]
type = GenericConstantMaterial
block = IPyC
prop_names = 'density'
prop_values = 1890
[]
[normal_vectors_triso]
type = NormalVectorsTRISO
block = 'buffer IPyC OPyC'
triso_geometry = particle_geometry
[]
[IPyC_IIDC]
type = PyCCEGAIrradiationEigenstrain
block = IPyC
eigenstrain_name = IPyC_IIDC_strain
temperature = temperature
irradiation_eigenstrain_scale_factor = 1
[]
[IPyC_TE]
type = PyCThermalExpansionEigenstrain
block = IPyC
eigenstrain_name = IPyC_TE_strain
temperature = temperature
[]
[SiC_elasticity_tensor]
type = MonolithicSiCElasticityTensor
block = SiC
temperature = temperature
elastic_modulus_model = miller
[]
[SiC_stress]
type = ComputeFiniteStrainElasticStress
block = SiC
[]
[SiC_thermal]
type = MonolithicSiCThermal
block = SiC
temperature = temperature
thermal_conductivity_model = miller
[]
[SiC_density]
type = StrainAdjustedDensity
block = SiC
strain_free_density = 3200.0
[]
[SiC_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = SiC
thermal_expansion_coeff = 4.9e-6
temperature = temperature
eigenstrain_name = SiC_thermal_eigenstrain
[]
[OPyC_elasticity_tensor]
type = PyCElasticityTensor
block = OPyC
temperature = temperature
initial_BAF = 1.0
[]
[OPyC_stress]
type = PyCCEGACreep
block = OPyC
creep_rate_scale_factor = 1
temperature = temperature
[]
[OPyC_thermal_conductivity]
type = HeatConductionMaterial
block = OPyC
thermal_conductivity = 4.0
specific_heat = 720.0
[]
[OPyC_density]
type = GenericConstantMaterial
block = OPyC
prop_names = 'density'
prop_values = 1900
[]
[OPyC_IIDC]
type = PyCCEGAIrradiationEigenstrain
block = OPyC
eigenstrain_name = OPyC_IIDC_strain
temperature = temperature
irradiation_eigenstrain_scale_factor = 1
[]
[OPyC_TE]
type = PyCThermalExpansionEigenstrain
block = OPyC
eigenstrain_name = OPyC_TE_strain
temperature = temperature
[]
[characteristic_strength_SiC]
type = GenericConstantMaterial
prop_values = '9640000'
block = SiC
prop_names = 'characteristic_strength'
[]
[characteristic_strength_PyC]
type = PyCCharacteristicStrength
temperature = temperature
X = 1.02
block = 'IPyC OPyC'
[]
[]
[Dampers]
[temp]
type = MaxIncrement
variable = temperature
max_increment = 100
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
nl_rel_tol = 1e-10
nl_abs_tol = 5e-11
nl_max_its = 20
l_tol = 1e-4
l_max_its = 50
start_time = 0.0
num_steps = 2
dtmin = 1e-4
dt = 1e4
[]
[Postprocessors]
[ave_gas_temp]
type = ElementAverageValue
block = buffer
variable = temperature
execute_on = 'initial timestep_end'
[]
[fis_gas_released]
type = ElementIntegralMaterialProperty
mat_prop = fis_gas_released
block = fuel
use_displaced_mesh = false
execute_on = 'initial timestep_end'
[]
[gap_volume]
type = InternalVolume
boundary = buffer_IPyC_boundary
execute_on = 'initial linear'
use_displaced_mesh = true
[]
[buffer_void_volume]
type = VoidVolume
block = buffer
theoretical_density = 2250
execute_on = 'initial timestep_end'
use_displaced_mesh = true
[]
[kernel_th_density]
type = UCOTheoreticalDensity
execute_on = initial
[]
[kernel_void_volume]
type = VoidVolume
block = fuel
theoretical_density = kernel_th_density
execute_on = 'initial timestep_end'
use_displaced_mesh = true
[]
[particle_power]
type = ElementIntegralPower
variable = temperature
use_material_fission_rate = true
fission_rate_material = fission_rate
block = fuel
execute_on = 'initial timestep_end'
[]
[max_fluence]
type = ElementExtremeValue
variable = fast_neutron_fluence
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[max_burnup]
type = ElementExtremeValue
variable = burnup
block = fuel
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[SiC_stress]
type = ElementExtremeMaterialProperty
block = SiC
value_type = max
mat_prop = max_principal_stress
[]
[strength_SiC]
type = WeibullEffectiveMeanStrength
block = SiC
weibull_modulus = 6
[]
[]
[Outputs]
print_linear_residuals = false
time_step_interval = 1
csv = true
perf_graph = true
exodus = true
[]
(test/tests/monolithicSiCThermal/thermal_snead.i)
# The mesh is a 1x1x1 cube (single element).
# The temperature is ramped on all faces of the cube from 300 K to 1800 K
# over 15 s.
#
# Thermal conductivity and specific heat capacity are computed using the
# correlations from:
#
# L. L. Snead, T. Nozawa, Y. Katoh, T-S. Byun, S. Kondo, D. A. Petti,
# "Handbook of SiC propeties for fuel performance modeling," Journal of Nuclear
# Materials, 371, 2007, p. 329-377.
#
# The thermal conductivity and specific heat computed by BISON for the
# temperatures and swelling are shown below and also compared with analytical solutions.
#
#+----------------+----------------+----------------+----------------+--------------------+----------------+--------------------+
#| time | avg_swelling | avg_temperature| sp_heat_BISON | sp_heat_analytical | th_cond_BISON | th_cond_analytical |
#+----------------+----------------+----------------+----------------+--------------------+----------------+--------------------+
#: : : : : : : :
#| 1.000000e+00 | 1.666667e-03 | 4.000000e+02 | 8.641861e+02 | 8.641861e+02 | 6.465517e+01 | 6.465517e+01 |
#| 2.000000e+00 | 3.333333e-03 | 5.000000e+02 | 9.666513e+02 | 9.666513e+02 | 3.740648e+01 | 3.740648e+01 |
#| 3.000000e+00 | 5.000000e-03 | 6.000000e+02 | 1.034698e+03 | 1.034698e+03 | 2.631579e+01 | 2.631579e+01 |
#| 4.000000e+00 | 6.666667e-03 | 7.000000e+02 | 1.085657e+03 | 1.085657e+03 | 2.029770e+01 | 2.029770e+01 |
#| 5.000000e+00 | 8.333333e-03 | 8.000000e+02 | 1.126769e+03 | 1.126769e+03 | 1.651982e+01 | 1.651982e+01 |
#| 6.000000e+00 | 1.000000e-02 | 9.000000e+02 | 1.161491e+03 | 1.161491e+03 | 1.392758e+01 | 1.392758e+01 |
#| 7.000000e+00 | 1.166667e-02 | 1.000000e+03 | 1.191645e+03 | 1.191645e+03 | 1.203852e+01 | 1.203852e+01 |
#| 8.000000e+00 | 1.333333e-02 | 1.100000e+03 | 1.218265e+03 | 1.218265e+03 | 1.060071e+01 | 1.060071e+01 |
#| 9.000000e+00 | 1.500000e-02 | 1.200000e+03 | 1.241972e+03 | 1.241972e+03 | 9.469697e+00 | 9.469697e+00 |
#| 1.000000e+01 | 1.666667e-02 | 1.300000e+03 | 1.263159e+03 | 1.263159e+03 | 8.556760e+00 | 8.556760e+00 |
#| 1.100000e+01 | 1.833333e-02 | 1.400000e+03 | 1.282083e+03 | 1.282083e+03 | 7.804370e+00 | 7.804370e+00 |
#| 1.200000e+01 | 2.000000e-02 | 1.500000e+03 | 1.298919e+03 | 1.298919e+03 | 7.173601e+00 | 7.173601e+00 |
#| 1.300000e+01 | 2.166667e-02 | 1.600000e+03 | 1.313788e+03 | 1.313788e+03 | 6.637168e+00 | 6.637168e+00 |
#| 1.400000e+01 | 2.333333e-02 | 1.700000e+03 | 1.326778e+03 | 1.326778e+03 | 6.175381e+00 | 6.175381e+00 |
#| 1.500000e+01 | 2.500000e-02 | 1.800000e+03 | 1.337951e+03 | 1.337951e+03 | 5.773672e+00 | 5.773672e+00 |
#+----------------+----------------+----------------+----------------+--------------------+----------------+--------------------+ 1337.951
[Mesh]
[mesh]
type = GeneratedMeshGenerator
dim = 3
[]
[]
[Variables]
[temperature]
order = FIRST
family = LAGRANGE
initial_condition = 300.0
[]
[]
[AuxVariables]
[specific_heat]
order = CONSTANT
family = MONOMIAL
[]
[thermal_conductivity]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temperature
[]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temperature
[]
[]
[AuxKernels]
[thermal_conductivity]
type = MaterialRealAux
variable = thermal_conductivity
property = thermal_conductivity
block = 0
execute_on = 'initial linear'
[]
[specific_heat]
type = MaterialRealAux
variable = specific_heat
property = specific_heat
block = 0
execute_on = 'initial linear'
[]
[]
[Functions]
[temp_ramp]
type = PiecewiseLinear
x = '0.0 15.0'
y = '300 1800'
[]
[swelling_func]
type = PiecewiseLinear
x = '0.0 15.0'
y = '0.0 2.5e-2'
[]
[]
[BCs]
[temperature_all]
type = FunctionDirichletBC
boundary = 'left right front back bottom top' # All cube faces
variable = temperature
function = temp_ramp
[]
[]
[Materials]
[MonolithicSiCThermal]
type = MonolithicSiCThermal
temperature = temperature
thermal_conductivity_model = SNEAD
[]
[density]
type = ParsedMaterial
block = 0
property_name = density
expression = 3210.0
[]
[swelling]
type = GenericFunctionMaterial
prop_names = swelling
prop_values = swelling_func
outputs = all
[]
[]
[Executioner]
type = Transient
solve_type = PJFNK
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart'
petsc_options_value = '101'
line_search = 'none'
l_max_its = 100
nl_max_its = 100
nl_rel_tol = 1e-6
nl_abs_tol = 1e-10
l_tol = 1e-5
start_time = 0.0
num_steps = 15
dt = 1.0
[]
[Postprocessors]
[avg_temperature]
type = SideAverageValue
boundary = 'left right top bottom front back'
execute_on = 'initial timestep_end'
variable = temperature
[]
[avg_swelling]
type = SideAverageValue
boundary = 'left right top bottom front back'
execute_on = 'initial timestep_end'
variable = swelling
[]
[avg_th_cond]
type = ElementAverageValue
block = 0
variable = thermal_conductivity
execute_on = 'initial timestep_end'
[]
[avg_sp_heat]
type = ElementAverageValue
block = 0
variable = specific_heat
execute_on = 'initial timestep_end'
[]
[th_cond_analytical]
type = ParsedPostprocessor
pp_names = 'avg_temperature avg_swelling'
expression = '1/(-0.0003 + 1.05e-5 * avg_temperature + 0.00135 + 6.13 * avg_swelling)'
[]
[sp_heat_analytical]
type = ParsedPostprocessor
pp_names = 'avg_temperature'
expression = '925.65 + 0.3772 * avg_temperature - 7.9259e-5 * avg_temperature^2 -
3.1946e7 / avg_temperature^2'
[]
[th_cond_diff]
type = ParsedPostprocessor
pp_names = 'th_cond_analytical avg_th_cond'
expression = '(avg_th_cond - th_cond_analytical) / avg_th_cond'
[]
[sp_heat_diff]
type = ParsedPostprocessor
pp_names = 'sp_heat_analytical avg_sp_heat'
expression = '(avg_sp_heat - sp_heat_analytical) / avg_sp_heat'
[]
[]
[Outputs]
exodus = true
[]
(assessment/TRISO/validation/AGR-34/SharedFiles/capsule_driver.i)
kernel_radius = 178.65e-6
buffer_thickness = 109.7e-6
IPyC_thickness = 40.4e-6
SiC_thickness = 33.5e-6
OPyC_thickness = 41.3e-6
buffer_density = 1100
ipyc_density = 1904
opyc_density = 1901
sic_density = 3203
coordinates1 = '${fparse kernel_radius}'
coordinates2 = '${fparse coordinates1+buffer_thickness}'
coordinates3 = '${fparse coordinates2+IPyC_thickness}'
coordinates4 = '${fparse coordinates3+SiC_thickness}'
coordinates5 = '${fparse coordinates4+OPyC_thickness}'
[GlobalParams]
order = SECOND
family = LAGRANGE
initial_enrichment = 0.19717 # [wt-]
energy_per_fission = 3.204e-11 # [J/fission]
O_U = 1.430 # Initial Oxygen to Uranium atom ratio
C_U = 0.361 # Initial Carbon to Uranium atom ratio
[]
[Mesh]
coord_type = RSPHERICAL
[mesh]
type = TRISO1DMeshGenerator
elem_type = EDGE3
coordinates = '0 ${coordinates1} ${coordinates2} ${coordinates3} ${coordinates4} ${coordinates5}'
mesh_density = '18 14 12 16 16'
block_names = 'fuel buffer IPyC SiC OPyC'
[]
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[UserObjects]
[particle_geometry]
type = TRISOGeometry
outer_OPyC = OPyC_outer_boundary
outer_SiC = SiC_outer_boundary
outer_IPyC = IPyC_outer_boundary
inner_IPyC = IPyC_inner_boundary
outer_buffer = buffer_outer_boundary
outer_kernel = fuel_outer_boundary
include_particle = true
include_pebble = false
[]
[]
[Variables]
[temperature]
initial_condition = 1200
[]
[conc_Ag]
initial_condition = 0.0
scaling = 1e12 #1e18
[]
[conc_Cs]
initial_condition = 0.0
scaling = 1e12 #1e18
[]
[conc_Sr]
initial_condition = 0.0
scaling = 1e12 #1e18
[]
[]
[AuxVariables]
[fission_rate]
order = CONSTANT
family = MONOMIAL
[]
[burnup]
order = CONSTANT
family = MONOMIAL
[]
[fast_neutron_flux]
order = CONSTANT
family = MONOMIAL
[]
[fast_neutron_fluence]
order = CONSTANT
family = MONOMIAL
[]
[fis_gas_produced]
order = CONSTANT
family = MONOMIAL
[]
[fis_gas_released]
order = CONSTANT
family = MONOMIAL
[]
[Ag_diff_coef]
order = CONSTANT
family = MONOMIAL
[]
[Cs_diff_coef]
order = CONSTANT
family = MONOMIAL
[]
[Sr_diff_coef]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[temp_bc]
type = PiecewiseLinear
x_index_in_file = 0
y_index_in_file = 1
xy_in_file_only = false
format = columns
data_file='AGR-34_capsule_daily_data/Cap1Temps.csv'
[]
[power_history]
type = PiecewiseLinear
x = '0 76e6'
y = '1 1'
[]
[fission_rate]
type = LinearCombinationFunction
functions = power_history
w = 4.8156e+19
[]
[]
[Kernels]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temperature
extra_vector_tags = 'ref'
[]
[heat]
type = HeatConduction
variable = temperature
extra_vector_tags = 'ref'
[]
[heat_source]
type = NeutronHeatSource
variable = temperature
block = fuel
fission_rate = fission_rate
extra_vector_tags = 'ref'
[]
[mass_Ag_dt]
type = TimeDerivative
variable = conc_Ag
extra_vector_tags = 'ref'
[]
[mass_Ag]
type = ArrheniusDiffusion
variable = conc_Ag
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
extra_vector_tags = 'ref'
[]
[mass_source_Ag]
type = SpeciesSourceRate
variable = conc_Ag
property_name = Ag_generation
block = fuel
extra_vector_tags = 'ref'
[]
[mass_Cs_dt]
type = TimeDerivative
variable = conc_Cs
extra_vector_tags = 'ref'
[]
[mass_Cs]
type = ArrheniusDiffusion
variable = conc_Cs
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
extra_vector_tags = 'ref'
[]
[mass_source_Cs]
type = SpeciesSourceRate
variable = conc_Cs
property_name = Cs_generation
block = fuel
extra_vector_tags = 'ref'
[]
[mass_Sr_dt]
type = TimeDerivative
variable = conc_Sr
extra_vector_tags = 'ref'
[]
[mass_Sr]
type = ArrheniusDiffusion
variable = conc_Sr
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
extra_vector_tags = 'ref'
[]
[mass_source_Sr]
type = SpeciesSourceRate
variable = conc_Sr
property_name = Sr_generation
block = fuel
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[fissionrate]
type = MaterialRealAux
variable = fission_rate
property = fission_rate
block = fuel
execute_on = timestep_begin
[]
[burnup]
type = MaterialRealAux
variable = burnup
property = burnup
block = fuel
execute_on = timestep_begin
[]
[fast_neutron_flux]
type = MaterialRealAux
variable = fast_neutron_flux
property = fast_neutron_flux
execute_on = timestep_begin
[]
[fast_neutron_fluence]
type = MaterialRealAux
variable = fast_neutron_fluence
property = fast_neutron_fluence
execute_on = timestep_begin
[]
[Ag_diff_coef]
type = MaterialRealAux
variable = Ag_diff_coef
property = arrhenius_diffusion_coef_Ag
execute_on = timestep_end
[]
[Cs_diff_coef]
type = MaterialRealAux
variable = Cs_diff_coef
property = arrhenius_diffusion_coef_Cs
execute_on = timestep_end
[]
[Sr_diff_coef]
type = MaterialRealAux
variable = Sr_diff_coef
property = arrhenius_diffusion_coef_Sr
execute_on = timestep_end
[]
[]
[BCs]
[freesurf_temp]
type = FunctionDirichletBC
variable = temperature
function = temp_bc
boundary = exterior
extra_vector_tags = 'ref'
[]
[freesurf_conc_Ag]
type = DirichletBC
variable = conc_Ag
boundary = exterior
value = 0.0
[]
[freesurf_conc_Cs]
type = DirichletBC
variable = conc_Cs
boundary = exterior
value = 0.0
[]
[freesurf_conc_Sr]
type = DirichletBC
variable = conc_Sr
boundary = exterior
value = 0.0
[]
[]
[Materials]
[fission_rate]
type = GenericFunctionMaterial
prop_names = fission_rate
prop_values = fission_rate
[]
[fast_neutron_flux]
type = FastNeutronFlux
calculate_fluence = true
flux_function = power_history
factor = 0.5519e+18
[]
[UCO_burnup]
type = TRISOBurnup
initial_density = ${initial_fuel_density}
[]
[UCO_thermal]
type = UCOThermal
block = fuel
temperature = temperature
[]
[UCO_density]
type = StrainAdjustedDensity
block = fuel
strain_free_density = 11098.0
[]
[fission_gas_release]
type = UCOFGR
block = fuel
average_grain_radius = 10e-6
temperature = temperature
triso_geometry = particle_geometry
[]
# Arrhenius diffusion coefficients for kernel, PyC, and SiC
# come from IAEA TECDOC-978, French parameters.
[fuel_conc_Ag]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 6.7e-9 # m^2/s
q1 = 165e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[fuel_conc_Cs]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 5.6e-8 # m^2/s
q1 = 209e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[fuel_conc_Sr]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 2.2e-3 # m^2/s
q1 = 488e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
[]
[mass_source_Ag_property]
type = SpeciesSourceMaterial
property_name = Ag_generation
kind = Ag
block = fuel
[]
[mass_source_Cs_property]
type = SpeciesSourceMaterial
property_name = Cs_generation
kind = Cs
block = fuel
[]
[mass_source_Sr_property]
type = SpeciesSourceMaterial
property_name = Sr_generation
kind = Sr
block = fuel
[]
### Buffer Properties
[buffer_thermal]
type = BufferThermal
block = buffer
initial_density = ${buffer_density}
[]
[Buffer_density]
type = StrainAdjustedDensity
block = buffer
strain_free_density = ${buffer_density}
[]
[buffer_conc_Ag]
type = ArrheniusDiffusionCoef
block = buffer
d1 = 1e-8 # m^2/s
q1 = 0.0
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[buffer_conc_Cs]
type = ArrheniusDiffusionCoef
block = buffer
d1 = 1e-8 # m^2/s
q1 = 0.0
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[buffer_conc_Sr]
type = ArrheniusDiffusionCoef
block = buffer
d1 = 1e-8 # m^2/s
q1 = 0.0
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
[]
### IPyC properties
[IPyC_thermal]
type = HeatConductionMaterial
block = IPyC
thermal_conductivity = 4.0
specific_heat = 720.0
[]
[IPyC_density]
type = StrainAdjustedDensity
block = IPyC
strain_free_density = ${ipyc_density}
[]
[IPyC_conc_Ag]
type = ArrheniusDiffusionCoef
block = IPyC
d1 = 5.3e-9 # m^2/s
q1 = 154e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[IPyC_conc_Cs]
type = ArrheniusDiffusionCoef
block = IPyC
d1 = 6.3e-8 # m^2/s
q1 = 222e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[IPyC_conc_Sr]
type = ArrheniusDiffusionCoef
block = IPyC
d1 = 2.3e-6 # m^2/s
q1 = 197e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
[]
### SiC properties
[SiC_thermal]
type = MonolithicSiCThermal
block = SiC
temperature = temperature
thermal_conductivity_model = miller
[]
[SiC_density]
type = StrainAdjustedDensity
block = SiC
strain_free_density = ${sic_density}
[]
[SiC_conc_Ag]
type = ArrheniusDiffusionCoef
block = SiC
d1 = 3.6e-9 # m^2/s
q1 = 215e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[SiC_conc_Cs]
type = ArrheniusDiffusionCoef
block = SiC
d1 = 5.5e-14 # m^2/s
q1 = 125e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[SiC_conc_Sr]
type = ArrheniusDiffusionCoef
block = SiC
d1 = 1.2e-9 # m^2/s
q1 = 205e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
[]
### OPyC properties
[OPyC_thermal_conductivity]
type = HeatConductionMaterial
block = OPyC
thermal_conductivity = 4.0
specific_heat = 720.0
[]
[OPyC_density]
type = StrainAdjustedDensity
block = OPyC
strain_free_density = ${opyc_density}
[]
[OPyC_conc_Ag]
type = ArrheniusDiffusionCoef
block = OPyC
d1 = 5.3e-9 # m^2/s
q1 = 154e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[OPyC_conc_Cs]
type = ArrheniusDiffusionCoef
block = OPyC
d1 = 6.3e-8 # m^2/s
q1 = 222e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[OPyC_conc_Sr]
type = ArrheniusDiffusionCoef
block = OPyC
d1 = 2.3e-6 # m^2/s
q1 = 197e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
[]
[]
[Dampers]
[temp]
type = MaxIncrement
variable = temperature
max_increment = 50
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Debug]
show_var_residual_norms = true
show_var_residual = 'temperature conc_Ag conc_Cs conc_Sr'
[]
[Executioner]
type = Transient
solve_type = 'NEWTON'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
line_search = 'none'
nl_rel_tol = 1e-8
nl_abs_tol = 1e-8
nl_max_its = 20
l_tol = 1e-4
l_max_its = 50
start_time = 0.0
dt = 86400
end_time = 31890240
[]
[Postprocessors]
[release_heat_inc]
type = SideIntegralMassFlux
variable = temperature
boundary = exterior
arrhenius_prpty_name = thermal_conductivity
execute_on = 'initial timestep_end'
[]
[release_Ag_inc]
type = SideIntegralMassFlux
variable = conc_Ag
boundary = exterior
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
execute_on = 'initial timestep_end'
[]
[released_Ag]
type = TimeIntegratedPostprocessor # computes time integration of value
value = release_Ag_inc
execute_on = 'initial timestep_end'
[]
[total_Ag]
type = ElementIntegralMaterialProperty
mat_prop = Ag_generation_total
block = fuel
execute_on = 'initial timestep_end'
[]
[x_Ag_released]
type = FractionalRelease
released = released_Ag
total = total_Ag
[]
[retained_Ag]
type = ElementIntegralVariablePostprocessor
variable = conc_Ag
[]
[release_Cs_inc]
type = SideIntegralMassFlux
variable = conc_Cs
boundary = exterior
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
execute_on = 'initial timestep_end'
[]
[released_Cs]
type = TimeIntegratedPostprocessor
value = release_Cs_inc
execute_on = 'initial timestep_end'
[]
[total_Cs]
type = ElementIntegralMaterialProperty
mat_prop = Cs_generation_total
block = fuel
execute_on = 'initial timestep_end'
[]
[x_Cs_released]
type = FractionalRelease
released = released_Cs
total = total_Cs
[]
[retained_Cs]
type = ElementIntegralVariablePostprocessor
variable = conc_Cs
[]
[release_Sr_inc]
type = SideIntegralMassFlux
variable = conc_Sr
boundary = exterior
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
execute_on = 'initial timestep_end'
[]
[released_Sr]
type = TimeIntegratedPostprocessor
value = release_Sr_inc
execute_on = 'initial timestep_end'
[]
[total_Sr]
type = ElementIntegralMaterialProperty
mat_prop = Sr_generation_total
block = fuel
execute_on = 'initial timestep_end'
[]
[x_Sr_released]
type = FractionalRelease
released = released_Sr
total = total_Sr
[]
[retained_Sr]
type = ElementIntegralVariablePostprocessor
variable = conc_Sr
[]
[fis_gas_produced]
type = ElementIntegralMaterialProperty
mat_prop = fis_gas_produced
block = fuel
execute_on = 'initial timestep_end'
[]
[fis_gas_released]
type = ElementIntegralMaterialProperty
mat_prop = fis_gas_released
block = fuel
execute_on = 'initial timestep_end'
[]
### Postprocessors for CO production
[total_fission_rate]
type = ElementIntegralPower
variable = temperature
fission_rate = fission_rate
block = fuel
energy_per_fission = 1.0
execute_on = 'initial timestep_end'
[]
[total_fissions]
type = TimeIntegratedPostprocessor
value = total_fission_rate
execute_on = 'initial timestep_end'
[]
##### irradiation conditions
[particle_power]
type = ElementIntegralPower
variable = temperature
use_material_fission_rate = true
fission_rate_material = fission_rate
block = fuel
execute_on = 'initial timestep_end'
[]
[max_fluence]
type = ElementExtremeValue
variable = fast_neutron_fluence
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[max_burnup]
type = ElementExtremeValue
variable = burnup
block = fuel
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = false
print_linear_converged_reason = false
print_nonlinear_converged_reason = false
exodus = false
csv = true
[]
(test/tests/triso_failure/triso_1d_ipyc_weibull_probability.i)
kernel_radius = 213.35e-6
buffer_thickness = 98.9e-6
IPyC_thickness = 40.4e-6
SiC_thickness = 35.2e-6
OPyC_thickness = 43.4e-6
coordinates1 = '${fparse kernel_radius}'
coordinates2 = '${fparse coordinates1+buffer_thickness}'
coordinates3 = '${fparse coordinates2+IPyC_thickness}'
coordinates4 = '${fparse coordinates3+SiC_thickness}'
coordinates5 = '${fparse coordinates4+OPyC_thickness}'
[GlobalParams]
order = FIRST
family = LAGRANGE
displacements = 'disp_x'
initial_enrichment = 0.14029 # [wt-]
flux_conversion_factor = 1.0 # convert E>0.10 to E>0.18 MeV
stress_free_temperature = 481 # used for thermal expansion
energy_per_fission = 3.204e-11 # [J/fission]
O_U = 1.428 # Initial Oxygen to Uranium atom ratio
C_U = 0.392 # Initial Carbon to Uranium atom ratio
[]
[Mesh]
coord_type = RSPHERICAL
[gen]
type = TRISO1DMeshGenerator
elem_type = EDGE3
coordinates = '0 ${coordinates1} ${coordinates2} ${coordinates2} ${coordinates3} ${coordinates4} ${coordinates5}'
mesh_density = '5 3 0 5 3 4'
block_names = 'fuel buffer IPyC SiC OPyC'
[]
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[UserObjects]
[particle_geometry]
type = TRISOGeometry
outer_OPyC = OPyC_outer_boundary
outer_SiC = SiC_outer_boundary
outer_IPyC = IPyC_outer_boundary
inner_IPyC = IPyC_inner_boundary
outer_buffer = buffer_outer_boundary
outer_kernel = fuel_outer_boundary
include_particle = true
include_pebble = false
IPyC_thickness_mean = 40.4e-6
SiC_thickness_mean = 35.2e-6
OPyC_thickness_mean = 43.4e-6
[]
[]
[Variables]
[temperature]
initial_condition = 900
[]
[]
[AuxVariables]
[fission_rate]
order = CONSTANT
family = MONOMIAL
[]
[burnup]
order = CONSTANT
family = MONOMIAL
[]
[fast_neutron_flux]
order = CONSTANT
family = MONOMIAL
[]
[fast_neutron_fluence]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[fission_rate]
type = ConstantFunction
value = 5.75e19
[]
[high_fidelity_strength_crackedIPyC]
type = ConstantFunction
value = '1363350801.3058'
[]
[stress_correlation_crackedIPyC]
type = TRISOStressCorrelationFunction
triso_geometry = particle_geometry
polynomial_coefficients_IPyC = '1 7017 -2.368e8'
polynomial_coefficients_SiC = '1 1.492e4 -3.802e7'
polynomial_coefficients_OPyC = '1 -1.273e4 1.849e8'
correlation_factor = -1.1824630660785265
[]
[high_fidelity_strength_asphericity]
type = ConstantFunction
value = '1086690814.283'
[]
[stress_correlation_asphericity]
type = TRISOStressCorrelationFunction
triso_geometry = particle_geometry
polynomial_coefficients_IPyC = '1 -2070 3.458e7'
polynomial_coefficients_SiC = '1 -868.9 -1.368e7'
polynomial_coefficients_OPyC = '1 1734 -1.988e7'
correlation_factor = 1.0626986695756293
[]
[stress_change_correlation_asphericity]
type = TRISOStressCorrelationFunction
triso_geometry = particle_geometry
polynomial_coefficients_IPyC = '1 -856 1.593e7'
polynomial_coefficients_SiC = '1 1774 -5.253e7'
polynomial_coefficients_OPyC = '1 456.4 -1.459e7'
correlation_factor = 1.0113764663823708
[]
[]
[Physics/SolidMechanics/QuasiStatic]
generate_output = 'stress_xx stress_yy stress_zz strain_xx strain_yy strain_zz max_principal_stress'
add_variables = true
strain = FINITE
incremental = true
[fuel]
block = fuel
eigenstrain_names = 'UCO_swelling_eigenstrain UCO_TE_strain'
extra_vector_tags = 'ref'
[]
[buffer]
block = buffer
eigenstrain_names = 'Buffer_IIDC_strain Buffer_TE_strain'
extra_vector_tags = 'ref'
[]
[IPyC]
block = IPyC
eigenstrain_names = 'IPyC_IIDC_strain IPyC_TE_strain'
extra_vector_tags = 'ref'
[]
[SiC]
block = SiC
eigenstrain_names = 'SiC_thermal_eigenstrain'
extra_vector_tags = 'ref'
[]
[OPyC]
block = OPyC
eigenstrain_names = 'OPyC_IIDC_strain OPyC_TE_strain'
extra_vector_tags = 'ref'
[]
[]
[Kernels]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temperature
extra_vector_tags = 'ref'
[]
[heat]
type = HeatConduction
variable = temperature
extra_vector_tags = 'ref'
[]
[heat_source]
type = NeutronHeatSource
variable = temperature
block = fuel
fission_rate = fission_rate
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[fissionrate]
type = MaterialRealAux
variable = fission_rate
property = fission_rate
block = fuel
execute_on = timestep_begin
[]
[burnup]
type = MaterialRealAux
variable = burnup
property = burnup
block = fuel
execute_on = timestep_begin
[]
[fast_neutron_flux]
type = MaterialRealAux
variable = fast_neutron_flux
property = fast_neutron_flux
execute_on = timestep_begin
[]
[fast_neutron_fluence]
type = MaterialRealAux
variable = fast_neutron_fluence
property = fast_neutron_fluence
execute_on = timestep_begin
[]
[]
[ThermalContact]
[thermal_contact]
type = GasGapHeatTransfer
variable = temperature
primary = IPyC_inner_boundary
secondary = buffer_outer_boundary
initial_moles = initial_moles
gas_released = 'fis_gas_released'
released_gas_types = 'Kr Xe'
released_fractions = '0.185 0.815'
tangential_tolerance = 1e-6
quadrature = false
min_gap = 1e-7
max_gap = 50e-6
gap_geometry_type = sphere
[]
[]
[BCs]
[no_disp_x]
type = DirichletBC
variable = disp_x
boundary = xzero
value = 0.0
[]
[freesurf_temp]
type = DirichletBC
variable = temperature
value = 900
boundary = exterior
[]
[exterior_pressure_x]
type = Pressure
variable = disp_x
boundary = exterior
factor = 0.1e6
[]
[PlenumPressure]
[plenumPressure]
boundary = buffer_IPyC_boundary
startup_time = 1e4
initial_pressure = 0
output_initial_moles = initial_moles
temperature = ave_gas_temp
volume = 'gap_volume buffer_void_volume kernel_void_volume'
material_input = 'fis_gas_released'
output = gas_pressure
[]
[]
[]
[Materials]
[fission_rate]
type = GenericFunctionMaterial
prop_names = fission_rate
prop_values = fission_rate
block = fuel
[]
[fast_neutron_flux]
type = FastNeutronFlux
calculate_fluence = true
factor = 6.2425e+17
[]
[UCO_burnup]
type = TRISOBurnup
initial_density = 10966
block = fuel
[]
[UCO_thermal]
type = UCOThermal
block = fuel
temperature = temperature
[]
[UCO_elasticity_tensor]
type = UCOElasticityTensor
block = fuel
temperature = temperature
[]
[UCO_stress]
type = ComputeFiniteStrainElasticStress
block = fuel
[]
[UCO_VolumetricSwellingEigenstrain]
type = UCOVolumetricSwellingEigenstrain
block = fuel
eigenstrain_name = UCO_swelling_eigenstrain
[]
[fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = fuel
thermal_expansion_coeff = 10.0e-6
temperature = temperature
eigenstrain_name = UCO_TE_strain
[]
[UCO_density]
type = StrainAdjustedDensity
block = fuel
strain_free_density = 10966
[]
[fission_gas_release]
type = UCOFGR
block = fuel
average_grain_radius = 10e-6
temperature = temperature
triso_geometry = particle_geometry
cutoff_neutron_flux = 0.0
[]
[BAF_IPyC]
type = BaconAnisotropyFactor
initial_BAF = 1.0465
block = IPyC
[]
[BAF_OPyC]
type = BaconAnisotropyFactor
initial_BAF = 1.0429
block = OPyC
[]
[buffer_elasticity_tensor]
type = BufferElasticityTensor
block = buffer
temperature = temperature
[]
[buffer_stress]
type = BufferCEGACreep
block = buffer
temperature = temperature
[]
[buffer_thermal]
type = BufferThermal
block = buffer
initial_density = 1050.0
[]
[buffer_density]
type = StrainAdjustedDensity
block = buffer
strain_free_density = 1050.0
[]
[buffer_TE]
type = BufferThermalExpansionEigenstrain
block = buffer
eigenstrain_name = Buffer_TE_strain
temperature = temperature
[]
[buffer_IIDC]
type = BufferCEGAIrradiationEigenstrain
block = buffer
eigenstrain_name = Buffer_IIDC_strain
temperature = temperature
[]
[IPyC_elasticity_tensor]
type = PyCElasticityTensor
block = IPyC
temperature = temperature
[]
[IPyC_stress]
type = PyCCEGACreep
block = IPyC
creep_rate_scale_factor = 1
temperature = temperature
[]
[IPyC_thermal]
type = HeatConductionMaterial
block = IPyC
thermal_conductivity = 4.0
specific_heat = 720.0
[]
[IPyC_density]
type = GenericConstantMaterial
block = IPyC
prop_names = 'density'
prop_values = 1890
[]
[normal_vectors_triso]
type = NormalVectorsTRISO
block = 'buffer IPyC OPyC'
[]
[IPyC_IIDC]
type = PyCCEGAIrradiationEigenstrain
block = IPyC
eigenstrain_name = IPyC_IIDC_strain
temperature = temperature
irradiation_eigenstrain_scale_factor = 1
[]
[IPyC_TE]
type = PyCThermalExpansionEigenstrain
block = IPyC
eigenstrain_name = IPyC_TE_strain
temperature = temperature
[]
[SiC_elasticity_tensor]
type = MonolithicSiCElasticityTensor
block = SiC
temperature = temperature
elastic_modulus_model = miller
[]
[SiC_stress]
type = ComputeFiniteStrainElasticStress
block = SiC
[]
[SiC_thermal]
type = MonolithicSiCThermal
block = SiC
temperature = temperature
thermal_conductivity_model = miller
[]
[SiC_density]
type = StrainAdjustedDensity
block = SiC
strain_free_density = 3200.0
[]
[SiC_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = SiC
thermal_expansion_coeff = 4.9e-6
temperature = temperature
eigenstrain_name = SiC_thermal_eigenstrain
[]
[OPyC_elasticity_tensor]
type = PyCElasticityTensor
block = OPyC
temperature = temperature
initial_BAF = 1.0
[]
[OPyC_stress]
type = PyCCEGACreep
block = OPyC
creep_rate_scale_factor = 1
temperature = temperature
[]
[OPyC_thermal_conductivity]
type = HeatConductionMaterial
block = OPyC
thermal_conductivity = 4.0
specific_heat = 720.0
[]
[OPyC_density]
type = GenericConstantMaterial
block = OPyC
prop_names = 'density'
prop_values = 1900
[]
[OPyC_IIDC]
type = PyCCEGAIrradiationEigenstrain
block = OPyC
eigenstrain_name = OPyC_IIDC_strain
temperature = temperature
irradiation_eigenstrain_scale_factor = 1
[]
[OPyC_TE]
type = PyCThermalExpansionEigenstrain
block = OPyC
eigenstrain_name = OPyC_TE_strain
temperature = temperature
[]
[characteristic_strength_SiC]
type = GenericConstantMaterial
prop_values = '9640000'
block = SiC
prop_names = 'characteristic_strength'
[]
[characteristic_strength_PyC]
type = PyCCharacteristicStrength
temperature = temperature
X = 1.02
block = 'IPyC OPyC'
[]
[]
[Dampers]
[temp]
type = MaxIncrement
variable = temperature
max_increment = 100
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
nl_rel_tol = 5e-6
nl_abs_tol = 1e-8
nl_max_its = 20
l_tol = 1e-4
l_max_its = 50
start_time = 0.0
end_time = 4.831315e7
dtmin = 1e-4
dt = 5e5
[]
[Postprocessors]
[ave_gas_temp]
type = ElementAverageValue
block = buffer
variable = temperature
execute_on = 'initial timestep_end'
[]
[fis_gas_released]
type = ElementIntegralMaterialProperty
mat_prop = fis_gas_released
block = fuel
use_displaced_mesh = false
execute_on = 'initial timestep_end'
[]
[gap_volume]
type = InternalVolume
boundary = buffer_IPyC_boundary
execute_on = 'initial linear'
use_displaced_mesh = true
[]
[buffer_void_volume]
type = VoidVolume
block = buffer
theoretical_density = 2250
execute_on = 'initial timestep_end'
use_displaced_mesh = true
[]
[kernel_th_density]
type = UCOTheoreticalDensity
execute_on = initial
[]
[kernel_void_volume]
type = VoidVolume
block = fuel
theoretical_density = kernel_th_density
execute_on = 'initial timestep_end'
use_displaced_mesh = true
[]
[particle_power]
type = ElementIntegralPower
variable = temperature
use_material_fission_rate = true
fission_rate_material = fission_rate
block = fuel
execute_on = 'initial timestep_end'
[]
[max_fluence]
type = ElementExtremeValue
variable = fast_neutron_fluence
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[max_burnup]
type = ElementExtremeValue
variable = burnup
block = fuel
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[SiC_stress]
type = ElementExtremeMaterialProperty
block = SiC
value_type = min
mat_prop = stress_yy
[]
[weibull_failure_probability_IPyC]
type = WeibullFailureProbability
block = IPyC
weibull_modulus = 9.5
characteristic_strength = characteristic_strength
[]
[weibull_failure_probability_SiC_crackedIPyC]
type = WeibullFailureProbabilityUsingCorrelation
block = SiC
weibull_modulus = 6
stress_name = stress_yy
high_fidelity_analysis_strength = 'high_fidelity_strength_crackedIPyC'
stress_correlation_function = 'stress_correlation_crackedIPyC'
[]
[weibull_failure_probability_SiC]
type = WeibullFailureProbabilityUsingCorrelation
block = SiC
weibull_modulus = 6
stress_name = stress_yy
high_fidelity_analysis_strength = 'high_fidelity_strength_asphericity'
stress_correlation_function = 'stress_correlation_asphericity'
stress_change_correlation_function = 'stress_change_correlation_asphericity'
[]
[]
[Outputs]
show = 'weibull_failure_probability_IPyC weibull_failure_probability_SiC weibull_failure_probability_SiC_crackedIPyC'
print_linear_residuals = false
time_step_interval = 1
csv = true
exodus = false
perf_graph = false
print_linear_converged_reason = false
print_nonlinear_converged_reason = false
[]
(test/tests/SiCPdPenetration/palladium_penetration.i)
# This test verifies the implementation of the palladium peneteration model
# for SiC in TRISO fuel particles. The geometry is a 2D spherical shell of
# inner and outer diameters of 215 and 250 micrometers, respectively. The
# temperature is ramped linearly from 673.15 to 1673.15 K over 5.0e6 seconds
# using 5.0e5 second timesteps.
#
# The rate of palladium penetration (microns/day) is calculated by:
#
# P_{Pd}_dot = 38.232 * exp(-11342.3 / T) / 86400.0
#
# where T is the temperature. An incremental form is used to compute the total
# penetration thickness of the palladium. Therefore, the average temperature
# over the timestep is used for T. The current penetration thickness is given by:
#
# P_{Pd} = P_{Pd}_old + P_{Pd}_dot * dt
#
# The palladium penetration for the 10 timesteps compared to the analytical
# calculation is provided below:
#
# Current BISON Pd Analytical Pd
# Temperature (K) Penetration (m) Penetration (m)
# 673.15 0 0
# 773.15 3.4132E-11 3.4132E-11
# 873.15 2.6358E-10 2.6358E-10
# 973.15 1.2843E-09 1.2843E-09
# 1073.15 4.6762E-09 4.6762E-09
# 1173.15 1.3777E-08 1.3777E-08
# 1273.15 3.4558E-08 3.4558E-08
# 1373.15 7.6440E-08 7.6440E-08
# 1473.15 1.5293E-07 1.5293E-07
# 1573.15 2.8201E-07 2.8201E-07
# 1673.15 4.8624E-07 4.8624E-07
[Mesh]
coord_type = RSPHERICAL
[gen]
type = TRISO1DMeshGenerator
elem_type = EDGE2
coordinates = '215e-6 250e-6'
mesh_density = '4'
block_names = 'sic'
[]
[]
[UserObjects]
[particle_geometry]
type = TRISOGeometry
outer_OPyC = '1'
outer_SiC = '1'
outer_IPyC = '2'
inner_IPyC = '1'
outer_buffer = '1'
outer_kernel = '1'
include_particle = true
include_pebble = false
[]
[]
[Variables]
[temperature]
order = FIRST
family = LAGRANGE
initial_condition = 673.15
[]
[]
[Functions]
[temp_function] # reads and interpolates input data defining amplitude curve for fill gas pressure
type = PiecewiseLinear
x = '0 5.0e6'
y = '673.15 1673.15'
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temperature
[]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temperature
[]
[]
[BCs]
[heat_removal]
type = FunctionDirichletBC
variable = temperature
boundary = 2
function = temp_function
[]
[]
[Materials]
[thermal]
type = MonolithicSiCThermal
block = sic
temperature = temperature
thermal_conductivity_model = MILLER
[]
[SiC_density]
type = ParsedMaterial
block = sic
property_name = density
expression = 3200.0
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package -ksp_gmres_restart'
petsc_options_value = 'lu superlu_dist 51'
line_search = 'none'
l_tol = 1e-5
nl_rel_tol = 1e-10
nl_abs_tol = 1e-12
start_time = 0.0
end_time = 5.0e6
num_steps = 10
dt = 5.0e5
[]
[Postprocessors]
[temperature]
type = ElementExtremeValue
block = sic
value_type = 'max'
variable = temperature
execute_on = 'initial timestep_end'
[]
[pd_penetration]
type = PdPenetration
boundary = 1
variable = temperature
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
csv = true
[]
(examples/TRISO/correlation_function/h_asphericity/triso_asphericity_mortar.i)
kernel_radius = 213.35e-6
buffer_thickness = 98.9e-6
IPyC_thickness = 40.4e-6
SiC_thickness = 35.2e-6
OPyC_thickness = 43.4e-6
aspect_ratio = 1.04
coordinates1 = '${fparse kernel_radius}'
coordinates2 = '${fparse coordinates1+buffer_thickness}'
coordinates3 = '${fparse coordinates2+IPyC_thickness}'
coordinates4 = '${fparse coordinates3+SiC_thickness}'
coordinates5 = '${fparse coordinates4+OPyC_thickness}'
initial_fuel_density = 10966
[GlobalParams]
order = FIRST
family = LAGRANGE
displacements = 'disp_x disp_y'
initial_enrichment = 0.14029 # [wt-]
flux_conversion_factor = 1.0 # convert E>0.10 to E>0.18 MeV
stress_free_temperature = 481 # used for thermal expansion
energy_per_fission = 3.204e-11 # [J/fission]
O_U = 1.428 # Initial Oxygen to Uranium atom ratio
C_U = 0.392 # Initial Carbon to Uranium atom ratio
[]
[Mesh]
coord_type = RZ
[mesh]
type = TRISO2DMeshGenerator
elem_type = quad4
coordinates = '0 ${coordinates1} ${coordinates2} ${coordinates2} ${coordinates3} ${coordinates4} ${coordinates5}'
mesh_density = '20 8 0 4 4 4'
block_names = 'fuel buffer IPyC SiC OPyC'
num_sectors = 60
aspect_ratio = ${aspect_ratio}
all_bottom_left = True
[]
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[UserObjects]
[particle_geometry]
type = TRISOGeometry
outer_OPyC = OPyC_outer_boundary
outer_SiC = SiC_outer_boundary
outer_IPyC = IPyC_outer_boundary
inner_IPyC = IPyC_inner_boundary
outer_buffer = buffer_outer_boundary
outer_kernel = fuel_outer_boundary
include_particle = true
include_pebble = false
mesh_generator = mesh
block = 'fuel buffer IPyC SiC OPyC'
[]
[]
[Variables]
[temperature]
initial_condition = 481
block = 'fuel buffer IPyC SiC OPyC'
[]
[]
[AuxVariables]
[fission_rate]
order = CONSTANT
family = MONOMIAL
block = 'fuel buffer IPyC SiC OPyC'
[]
[burnup]
order = CONSTANT
family = MONOMIAL
block = 'fuel buffer IPyC SiC OPyC'
[]
[fast_neutron_flux]
order = CONSTANT
family = MONOMIAL
block = 'fuel buffer IPyC SiC OPyC'
[]
[fast_neutron_fluence]
order = CONSTANT
family = MONOMIAL
block = 'fuel buffer IPyC SiC OPyC'
[]
[]
[Functions]
[temp_bc]
type = PiecewiseLinear
data_file = outer_temp.csv
x_index_in_file = 0
y_index_in_file = 1
format = columns
[]
[fission_rate]
type = ConstantFunction
value = 5.75e19
[]
[]
[Physics/SolidMechanics/QuasiStatic]
generate_output = 'stress_xx stress_yy stress_zz strain_xx strain_yy strain_zz max_principal_stress'
add_variables = true
strain = FINITE
incremental = true
[fuel]
block = fuel
eigenstrain_names = 'UCO_swelling_eigenstrain UCO_TE_strain'
extra_vector_tags = 'ref'
[]
[buffer]
block = buffer
eigenstrain_names = 'Buffer_IIDC_strain Buffer_TE_strain'
extra_vector_tags = 'ref'
[]
[IPyC]
block = IPyC
eigenstrain_names = 'IPyC_IIDC_strain IPyC_TE_strain'
extra_vector_tags = 'ref'
[]
[SiC]
block = SiC
eigenstrain_names = 'SiC_thermal_eigenstrain'
extra_vector_tags = 'ref'
[]
[OPyC]
block = OPyC
eigenstrain_names = 'OPyC_IIDC_strain OPyC_TE_strain'
extra_vector_tags = 'ref'
[]
[]
[Kernels]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temperature
extra_vector_tags = 'ref'
block = 'fuel buffer IPyC SiC OPyC'
[]
[heat]
type = HeatConduction
variable = temperature
extra_vector_tags = 'ref'
block = 'fuel buffer IPyC SiC OPyC'
[]
[heat_source]
type = NeutronHeatSource
variable = temperature
block = fuel
fission_rate = fission_rate
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[fissionrate]
type = MaterialRealAux
variable = fission_rate
property = fission_rate
block = fuel
execute_on = timestep_begin
[]
[burnup]
type = MaterialRealAux
variable = burnup
property = burnup
block = fuel
execute_on = timestep_begin
[]
[fast_neutron_flux]
type = MaterialRealAux
variable = fast_neutron_flux
property = fast_neutron_flux
execute_on = timestep_begin
block = 'fuel buffer IPyC SiC OPyC'
[]
[fast_neutron_fluence]
type = MaterialRealAux
variable = fast_neutron_fluence
property = fast_neutron_fluence
execute_on = timestep_begin
block = 'fuel buffer IPyC SiC OPyC'
[]
[]
[ThermalContactMortar]
[thermal_contact]
secondary_variable = temperature
primary_boundary = IPyC_inner_boundary
secondary_boundary = buffer_outer_boundary
initial_moles = initial_moles # coupling to a postprocessor which supplies the initial plenum/gap gas mass
gas_released = 'fis_gas_released'
released_gas_types = 'Kr Xe'
released_fractions = '0.185 0.815'
gap_geometry_type = sphere
sphere_origin = '0 0 0'
min_gap = 1e-7
max_gap = 50e-6
[]
[]
[BCs]
[no_disp_x]
type = DirichletBC
variable = disp_x
boundary = xzero
value = 0.0
[]
[no_disp_y]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[]
[freesurf_temp]
type = FunctionDirichletBC
variable = temperature
function = temp_bc
boundary = exterior
[]
[Pressure]
[exterior]
boundary = exterior
factor = 0.1e6
[]
[]
[PlenumPressure]
[plenumPressure]
boundary = buffer_IPyC_boundary
startup_time = 1e4
initial_pressure = 0
R = 8.3145
output_initial_moles = initial_moles
temperature = ave_gas_temp
volume = 'gap_volume buffer_void_volume kernel_void_volume'
material_input = 'fis_gas_released'
output = gas_pressure
[]
[]
[]
[Materials]
[normal_vectors_triso]
type = NormalVectorsTRISO
block = 'buffer IPyC OPyC'
triso_geometry = particle_geometry
[]
[tangential_stress]
type = RankTwoCylindricalComponent
rank_two_tensor = stress
cylindrical_axis_point1 = '0 0 0'
cylindrical_axis_point2 = '0 0 1'
cylindrical_component = HoopStress
property_name = tangential_stress
outputs = all
block = 'fuel buffer IPyC SiC OPyC'
[]
[fission_rate]
type = GenericFunctionMaterial
prop_names = fission_rate
prop_values = fission_rate
block = fuel
[]
[fast_neutron_flux]
type = FastNeutronFlux
calculate_fluence = true
factor = 6.2425e+17
[]
[UCO_burnup]
type = TRISOBurnup
initial_density = ${initial_fuel_density}
block = fuel
[]
[UCO_thermal]
type = UCOThermal
block = fuel
temperature = temperature
[]
[UCO_elasticity_tensor]
type = UCOElasticityTensor
block = fuel
temperature = temperature
[]
[UCO_stress]
type = ComputeFiniteStrainElasticStress
block = fuel
[]
[UCO_VolumetricSwellingEigenstrain]
type = UCOVolumetricSwellingEigenstrain
block = fuel
eigenstrain_name = UCO_swelling_eigenstrain
[]
[fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = fuel
thermal_expansion_coeff = 10.0e-6
temperature = temperature
eigenstrain_name = UCO_TE_strain
[]
[UCO_density]
type = StrainAdjustedDensity
block = fuel
strain_free_density = ${initial_fuel_density}
[]
[fission_gas_release]
type = UCOFGR
block = fuel
average_grain_radius = 10e-6
temperature = temperature
triso_geometry = particle_geometry
[]
[BAF_IPyC]
type = BaconAnisotropyFactor
initial_BAF = 1.0465
block = IPyC
[]
[BAF_OPyC]
type = BaconAnisotropyFactor
initial_BAF = 1.0429
block = OPyC
[]
[buffer_elasticity_tensor]
type = BufferElasticityTensor
block = buffer
temperature = temperature
[]
[buffer_stress]
type = BufferCEGACreep
block = buffer
temperature = temperature
[]
[buffer_thermal]
type = BufferThermal
block = buffer
initial_density = 1050.0
[]
[buffer_density]
type = StrainAdjustedDensity
block = buffer
strain_free_density = 1050.0
[]
[buffer_TE]
type = BufferThermalExpansionEigenstrain
block = buffer
eigenstrain_name = Buffer_TE_strain
temperature = temperature
[]
[buffer_IIDC]
type = BufferCEGAIrradiationEigenstrain
block = buffer
eigenstrain_name = Buffer_IIDC_strain
temperature = temperature
[]
[IPyC_elasticity_tensor]
type = PyCElasticityTensor
block = IPyC
temperature = temperature
[]
[IPyC_stress]
type = PyCCEGACreep
block = IPyC
creep_rate_scale_factor = 1
temperature = temperature
[]
[IPyC_thermal]
type = HeatConductionMaterial
block = IPyC
thermal_conductivity = 4.0
specific_heat = 720.0
[]
[IPyC_density]
type = GenericConstantMaterial
block = IPyC
prop_names = 'density'
prop_values = 1890
[]
[IPyC_IIDC]
type = PyCCEGAIrradiationEigenstrain
block = IPyC
eigenstrain_name = IPyC_IIDC_strain
temperature = temperature
irradiation_eigenstrain_scale_factor = 1
[]
[IPyC_TE]
type = PyCThermalExpansionEigenstrain
block = IPyC
eigenstrain_name = IPyC_TE_strain
temperature = temperature
[]
[SiC_elasticity_tensor]
type = MonolithicSiCElasticityTensor
block = SiC
temperature = temperature
elastic_modulus_model = miller
[]
[SiC_stress]
type = ComputeFiniteStrainElasticStress
block = SiC
[]
[SiC_thermal]
type = MonolithicSiCThermal
block = SiC
temperature = temperature
thermal_conductivity_model = miller
[]
[SiC_density]
type = StrainAdjustedDensity
block = SiC
strain_free_density = 3200.0
[]
[SiC_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = SiC
thermal_expansion_coeff = 4.9e-6
temperature = temperature
eigenstrain_name = SiC_thermal_eigenstrain
[]
[OPyC_elasticity_tensor]
type = PyCElasticityTensor
block = OPyC
temperature = temperature
initial_BAF = 1.0
[]
[OPyC_stress]
type = PyCCEGACreep
block = OPyC
creep_rate_scale_factor = 1
temperature = temperature
[]
[OPyC_thermal_conductivity]
type = HeatConductionMaterial
block = OPyC
thermal_conductivity = 4.0
specific_heat = 720.0
[]
[OPyC_density]
type = GenericConstantMaterial
block = OPyC
prop_names = 'density'
prop_values = 1900
[]
[OPyC_IIDC]
type = PyCCEGAIrradiationEigenstrain
block = OPyC
eigenstrain_name = OPyC_IIDC_strain
temperature = temperature
irradiation_eigenstrain_scale_factor = 1
[]
[OPyC_TE]
type = PyCThermalExpansionEigenstrain
block = OPyC
eigenstrain_name = OPyC_TE_strain
temperature = temperature
[]
[characteristic_strength_SiC]
type = GenericConstantMaterial
prop_values = '9640000'
block = SiC
prop_names = 'characteristic_strength'
[]
[characteristic_strength_PyC]
type = PyCCharacteristicStrength
temperature = temperature
X = 1.02
block = 'IPyC OPyC'
[]
[]
[Dampers]
[temp]
type = MaxIncrement
variable = temperature
max_increment = 100
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
nl_rel_tol = 5e-6
nl_abs_tol = 1e-8
nl_max_its = 20
l_tol = 1e-4
l_max_its = 50
start_time = 0.0
end_time = 4.831315e7
dtmin = 1e-4
dt = 6e5
[]
[Postprocessors]
[ave_gas_temp]
type = ElementAverageValue
block = buffer
variable = temperature
execute_on = 'initial timestep_end'
[]
[fis_gas_released]
type = ElementIntegralMaterialProperty
mat_prop = fis_gas_released
block = fuel
use_displaced_mesh = false
execute_on = 'initial timestep_end'
[]
[gap_volume]
type = InternalVolume
boundary = buffer_IPyC_boundary
execute_on = 'initial linear'
use_displaced_mesh = true
[]
[buffer_void_volume]
type = VoidVolume
block = buffer
theoretical_density = 2250
execute_on = 'initial timestep_end'
use_displaced_mesh = true
[]
[kernel_th_density]
type = UCOTheoreticalDensity
execute_on = initial
[]
[kernel_void_volume]
type = VoidVolume
block = fuel
theoretical_density = kernel_th_density
execute_on = 'initial timestep_end'
use_displaced_mesh = true
[]
[particle_power]
type = ElementIntegralPower
variable = temperature
use_material_fission_rate = true
fission_rate_material = fission_rate
block = fuel
execute_on = 'initial timestep_end'
[]
[max_fluence]
type = ElementExtremeValue
variable = fast_neutron_fluence
value_type = 'max'
execute_on = 'initial timestep_end'
block = 'fuel buffer IPyC SiC OPyC'
[]
[max_burnup]
type = ElementExtremeValue
variable = burnup
block = fuel
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[SiC_stress]
type = ElementalVariableValue
elementid = 6300
variable = tangential_stress
[]
[strength_SiC]
type = WeibullEffectiveMeanStrength
block = SiC
weibull_modulus = 6
[]
[]
[Outputs]
print_linear_residuals = false
time_step_interval = 1
csv = true
perf_graph = true
exodus = true
[]
(test/tests/solid_mechanics/monolithicSiC_mechanics/elasticity_miller_ad.i)
# This test case is prepared to test the elastic moduli of monolithic (CVD) SiC
# using the correlation provided in:
#
# G. K. Miller, D. A. Petti, J. T. Maki, D. L. Knudson, and
# W. F. Skerjanc, "PARFUME Theory and Model Basis Report",
# Report INL/EXT-08-14497 Rev. 1, Idaho National Laboratory, September 2018
#
# The geometry represents a ring of monolothic SiC with inner radius of 0.005 m,
# outer radius of 0.0055 m, and a height of 0.01 m.
#
# An axial load is applied to the top of the ring with a value of -100 MPa.
# The strain in the radial direction can be calculated using the Young's modulus
# and the Poisson's ratio from the applied 100.0 MPa pressure.
#
# epsilon_{rr} = nu * sigma_{axial} / E
#
# The Young's modulus (E) for monolithic SiC is calculated via a Piecewise
# linear function generated from the tabulated values below:
#
# Temperature (K) E (GPa)
# 298.15 428.0
# 1213.15 375.0
# 1488.15 340.0
# 1873.15 198.0
#
# The Poisson's ratio of monolithic SiC using the Miller model is taken as 0.13.
#
# The results of BISON compared to the analytical solution for an increase in
# temperature under constant pressure are summarized:
#
# BISON Analytical
# Temperature (K) strain_rr (m/m) strain_rr (m/m)
# 450 3.1011e-5 3.1011e-5
# 600 3.1667e-5 3.1667e-5
# 750 3.2352e-5 3.2352e-5
# 900 3.3067e-5 3.3067e-5
# 1050 3.3815e-5 3.3815e-5
# 1200 3.4596e-5 3.4596e-5
# 1350 3.6355e-5 3.6355e-5
# 1500 3.8733e-5 3.8733e-5
# 1650 4.6378e-5 4.6378e-5
# 1800 5.7783e-5 5.7783e-5
[Mesh]
coord_type = RZ
[generated_mesh]
type = GeneratedMeshGenerator
dim = 2
xmin = 0.005
xmax = 0.0055
ymin = 0
ymax = 0.01
[]
[]
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Variables]
[temperature]
order = FIRST
family = LAGRANGE
initial_condition = 300.0
[]
[]
[Physics]
[SolidMechanics]
[QuasiStatic]
[all]
strain = FINITE
add_variables = true
generate_output = 'elastic_strain_xx'
use_automatic_differentiation = true
[]
[]
[]
[]
[Functions]
[temperature_function]
type = PiecewiseLinear
x = '0 10'
y = '300 1800'
[]
[pressure_function]
type = PiecewiseLinear
x = '0 10'
y = '1 1'
[]
[]
[Kernels]
[heat]
type = ADHeatConduction
variable = temperature
[]
[heat_ie]
type = ADHeatConductionTimeDerivative
variable = temperature
[]
[]
[BCs]
[top_pressure] #Simplified BC to apply pressure in only disp_y
type = ADPressure
boundary = top
variable = disp_y
function = pressure_function
factor = 100e6
[]
[u_bottom_fix]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[]
[temp_bc]
type = FunctionDirichletBC
variable = temperature
boundary = 'bottom top left right'
function = temperature_function
[]
[]
[Materials]
[elasticity_tensor]
type = ADMonolithicSiCElasticityTensor
temperature = temperature
elastic_modulus_model = MILLER
outputs = all
[]
[stress]
type = ADComputeFiniteStrainElasticStress
[]
[clad_density]
type = ADStrainAdjustedDensity
strain_free_density = 3210.0
[]
[thermal]
type = ADMonolithicSiCThermal
temperature = temperature
thermal_conductivity_model = MILLER
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = Newton
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart'
petsc_options_value = '101'
line_search = 'none'
l_max_its = 100
nl_max_its = 100
nl_rel_tol = 1e-8
nl_abs_tol = 1e-8
l_tol = 1e-8
start_time = 0.0
end_time = 10
dt = 1
[]
[Postprocessors]
[elastic_strain_rr]
type = ElementAverageValue
variable = elastic_strain_xx
[]
[temp]
type = AverageNodalVariableValue
variable = temperature
execute_on = 'initial timestep_end'
[]
[youngs_avg]
type = ElementAverageValue
variable = youngs_modulus
[]
[poissons_avg]
type = ElementAverageValue
variable = poissons_ratio
[]
[]
[Outputs]
csv = true
[]
(test/tests/monolithicSiCThermal/thermal_miller_ad.i)
# The mesh is a 1x1x1 cube (single element).
# The temperature is ramped on all faces of the cube from 300 K to 1800 K
# over 15 s.
#
# Thermal conductivity and specific heat capacity are computed using the
# correlations from:
#
# G. K. Miller, D. A. Petti, J. T. Maki, D. L. Knudson, and
# W. F. Skerjanc, "PARFUME Theory and Model Basis Report",
# Report INL/EXT-08-14497 Rev. 1, Idaho National Laboratory, September 2018
#
# The correlation for specific heat is identical to the that used in the Snead
# and stone models and are tested elsewhere. Here the thermal conductivity
# computed by BISON for the temperatures shown below are compared with analytical solutions.
# The results are as follows:
#
# SiC k SiC k
# Temp(K) BISON(W/m-K) analytical(W/m-K)
# 300 61.6167 61.6167
# 600 31.8083 31.8083
# 900 21.8722 21.8722
# 1200 16.9042 16.9042
# 1500 13.9233 13.9233
# 1800 11.9361 11.9361
#
[Mesh]
[generated_mesh]
type = GeneratedMeshGenerator
dim = 3
[]
[]
[Variables]
[temperature]
order = FIRST
family = LAGRANGE
initial_condition = 300.0
[]
[]
[AuxVariables]
[thermal_conductivity]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[heat]
type = ADHeatConduction
variable = temperature
[]
[heat_ie]
type = ADHeatConductionTimeDerivative
variable = temperature
[]
[]
[AuxKernels]
[thermal_conductivity]
type = ADMaterialRealAux
variable = thermal_conductivity
property = thermal_conductivity
block = 0
execute_on = 'initial linear'
[]
[]
[Functions]
[temp_ramp]
type = PiecewiseLinear
x = '0.0 15.0'
y = '300 1800'
[]
[]
[BCs]
[temperature_all]
type = FunctionDirichletBC
boundary = 'left right front back bottom top'
variable = temperature
function = temp_ramp
[]
[]
[Materials]
[thermal]
type = ADMonolithicSiCThermal
temperature = temperature
thermal_conductivity_model = MILLER
[]
[density]
type = ADParsedMaterial
block = 0
property_name = density
expression = 3210.0
[]
[]
[Executioner]
type = Transient
solve_type = PJFNK
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package -ksp_gmres_restart'
petsc_options_value = 'lu superlu_dist 51'
line_search = 'none'
nl_rel_tol = 1e-10
nl_abs_tol = 1e-10
l_tol = 1e-5
start_time = 0.0
num_steps = 15
dt = 1.0
[]
[Postprocessors]
[avg_temperature]
type = SideAverageValue
boundary = 'left right top bottom front back'
execute_on = 'initial timestep_end'
variable = temperature
[]
[avg_th_cond]
type = ElementAverageValue
block = 0
variable = thermal_conductivity
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
csv = true
[]
(test/tests/triso_failure/ad_triso_1d_ipyc_weibull_probability.i)
kernel_radius = 213.35e-6
buffer_thickness = 98.9e-6
IPyC_thickness = 40.4e-6
SiC_thickness = 35.2e-6
OPyC_thickness = 43.4e-6
coordinates1 = '${fparse kernel_radius}'
coordinates2 = '${fparse coordinates1+buffer_thickness}'
coordinates3 = '${fparse coordinates2+IPyC_thickness}'
coordinates4 = '${fparse coordinates3+SiC_thickness}'
coordinates5 = '${fparse coordinates4+OPyC_thickness}'
[GlobalParams]
order = FIRST
family = LAGRANGE
displacements = 'disp_x'
initial_enrichment = 0.14029 # [wt-]
flux_conversion_factor = 1.0 # convert E>0.10 to E>0.18 MeV
stress_free_temperature = 481 # used for thermal expansion
energy_per_fission = 3.204e-11 # [J/fission]
O_U = 1.428 # Initial Oxygen to Uranium atom ratio
C_U = 0.392 # Initial Carbon to Uranium atom ratio
[]
[Mesh]
coord_type = RSPHERICAL
[gen]
type = TRISO1DMeshGenerator
elem_type = EDGE3
coordinates = '0 ${coordinates1} ${coordinates2} ${coordinates2} ${coordinates3} ${coordinates4} ${coordinates5}'
mesh_density = '5 3 0 5 3 4'
block_names = 'fuel buffer IPyC SiC OPyC'
[]
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[UserObjects]
[particle_geometry]
type = TRISOGeometry
outer_OPyC = OPyC_outer_boundary
outer_SiC = SiC_outer_boundary
outer_IPyC = IPyC_outer_boundary
inner_IPyC = IPyC_inner_boundary
outer_buffer = buffer_outer_boundary
outer_kernel = fuel_outer_boundary
include_particle = true
include_pebble = false
IPyC_thickness_mean = 40.4e-6
SiC_thickness_mean = 35.2e-6
OPyC_thickness_mean = 43.4e-6
[]
[]
[Variables]
[temperature]
initial_condition = 900
[]
[]
[AuxVariables]
[fission_rate]
order = CONSTANT
family = MONOMIAL
[]
[burnup]
order = CONSTANT
family = MONOMIAL
[]
[fast_neutron_flux]
order = CONSTANT
family = MONOMIAL
[]
[fast_neutron_fluence]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[fission_rate]
type = ConstantFunction
value = 5.75e19
[]
[high_fidelity_strength_crackedIPyC]
type = ConstantFunction
value = '1363350801.3058'
[]
[stress_correlation_crackedIPyC]
type = TRISOStressCorrelationFunction
triso_geometry = particle_geometry
polynomial_coefficients_IPyC = '1 7017 -2.368e8'
polynomial_coefficients_SiC = '1 1.492e4 -3.802e7'
polynomial_coefficients_OPyC = '1 -1.273e4 1.849e8'
correlation_factor = -1.1824630660785265
[]
[high_fidelity_strength_asphericity]
type = ConstantFunction
value = '1086690814.283'
[]
[stress_correlation_asphericity]
type = TRISOStressCorrelationFunction
triso_geometry = particle_geometry
polynomial_coefficients_IPyC = '1 -2070 3.458e7'
polynomial_coefficients_SiC = '1 -868.9 -1.368e7'
polynomial_coefficients_OPyC = '1 1734 -1.988e7'
correlation_factor = 1.0626986695756293
[]
[stress_change_correlation_asphericity]
type = TRISOStressCorrelationFunction
triso_geometry = particle_geometry
polynomial_coefficients_IPyC = '1 -856 1.593e7'
polynomial_coefficients_SiC = '1 1774 -5.253e7'
polynomial_coefficients_OPyC = '1 456.4 -1.459e7'
correlation_factor = 1.0113764663823708
[]
[]
[Physics/SolidMechanics/QuasiStatic]
generate_output = 'stress_xx stress_yy stress_zz strain_xx strain_yy strain_zz max_principal_stress'
add_variables = true
strain = FINITE
incremental = true
[fuel]
block = fuel
eigenstrain_names = 'UCO_swelling_eigenstrain UCO_TE_strain'
extra_vector_tags = 'ref'
use_automatic_differentiation = true
[]
[buffer]
block = buffer
eigenstrain_names = 'Buffer_IIDC_strain Buffer_TE_strain'
extra_vector_tags = 'ref'
use_automatic_differentiation = true
[]
[IPyC]
block = IPyC
eigenstrain_names = 'IPyC_IIDC_strain IPyC_TE_strain'
extra_vector_tags = 'ref'
use_automatic_differentiation = true
[]
[SiC]
block = SiC
eigenstrain_names = 'SiC_thermal_eigenstrain'
extra_vector_tags = 'ref'
use_automatic_differentiation = true
[]
[OPyC]
block = OPyC
eigenstrain_names = 'OPyC_IIDC_strain OPyC_TE_strain'
extra_vector_tags = 'ref'
use_automatic_differentiation = true
[]
[]
[Kernels]
[heat_ie]
type = ADHeatConductionTimeDerivative
variable = temperature
extra_vector_tags = 'ref'
[]
[heat]
type = ADHeatConduction
variable = temperature
extra_vector_tags = 'ref'
[]
[heat_source]
type = ADNeutronHeatSource
variable = temperature
block = fuel
fission_rate = fission_rate
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[fissionrate]
type = ADMaterialRealAux
variable = fission_rate
property = fission_rate
block = fuel
execute_on = timestep_begin
[]
[burnup]
type = ADMaterialRealAux
variable = burnup
property = burnup
block = fuel
execute_on = timestep_begin
[]
[fast_neutron_flux]
type = ADMaterialRealAux
variable = fast_neutron_flux
property = fast_neutron_flux
execute_on = timestep_begin
[]
[fast_neutron_fluence]
type = ADMaterialRealAux
variable = fast_neutron_fluence
property = fast_neutron_fluence
execute_on = timestep_begin
[]
[]
[ThermalContact]
[thermal_contact]
type = GasGapHeatTransfer
variable = temperature
primary = IPyC_inner_boundary
secondary = buffer_outer_boundary
initial_moles = initial_moles
gas_released = 'fis_gas_released'
released_gas_types = 'Kr Xe'
released_fractions = '0.185 0.815'
tangential_tolerance = 1e-6
quadrature = false
min_gap = 1e-7
max_gap = 50e-6
gap_geometry_type = sphere
use_automatic_differentiation = true
[]
[]
[BCs]
[no_disp_x]
type = ADDirichletBC
variable = disp_x
boundary = xzero
value = 0.0
[]
[freesurf_temp]
type = ADDirichletBC
variable = temperature
value = 900
boundary = exterior
[]
[exterior_pressure_x]
type = ADPressure
variable = disp_x
boundary = exterior
factor = 0.1e6
[]
[PlenumPressure]
[plenumPressure]
boundary = buffer_IPyC_boundary
startup_time = 1e4
initial_pressure = 0
output_initial_moles = initial_moles
temperature = ave_gas_temp
volume = 'gap_volume buffer_void_volume kernel_void_volume'
material_input = 'fis_gas_released'
output = gas_pressure
use_automatic_differentiation = true
[]
[]
[]
[Materials]
[fission_rate]
type = ADGenericFunctionMaterial
prop_names = fission_rate
prop_values = fission_rate
block = fuel
[]
[fast_neutron_flux]
type = ADFastNeutronFlux
calculate_fluence = true
factor = 6.2425e+17
[]
[UCO_burnup]
type = ADTRISOBurnup
initial_density = 10966
block = fuel
[]
[UCO_thermal]
type = ADUCOThermal
block = fuel
temperature = temperature
[]
[UCO_elasticity_tensor]
type = ADUCOElasticityTensor
block = fuel
temperature = temperature
[]
[UCO_stress]
type = ADComputeFiniteStrainElasticStress
block = fuel
[]
[UCO_VolumetricSwellingEigenstrain]
type = ADUCOVolumetricSwellingEigenstrain
block = fuel
eigenstrain_name = UCO_swelling_eigenstrain
[]
[fuel_thermal_expansion]
type = ADComputeThermalExpansionEigenstrain
block = fuel
thermal_expansion_coeff = 10.0e-6
temperature = temperature
eigenstrain_name = UCO_TE_strain
[]
[UCO_density]
type = ADStrainAdjustedDensity
block = fuel
strain_free_density = 10966
[]
[fission_gas_release]
type = ADUCOFGR
block = fuel
average_grain_radius = 10e-6
temperature = temperature
triso_geometry = particle_geometry
cutoff_neutron_flux = 0.0
[]
[BAF_IPyC]
type = ADBaconAnisotropyFactor
initial_BAF = 1.0465
block = IPyC
[]
[BAF_OPyC]
type = ADBaconAnisotropyFactor
initial_BAF = 1.0429
block = OPyC
[]
[buffer_elasticity_tensor]
type = ADBufferElasticityTensor
block = buffer
temperature = temperature
[]
[buffer_stress]
type = ADBufferCEGACreep
block = buffer
temperature = temperature
[]
[buffer_thermal]
type = ADBufferThermal
block = buffer
initial_density = 1050.0
[]
[buffer_density]
type = ADStrainAdjustedDensity
block = buffer
strain_free_density = 1050.0
[]
[buffer_TE]
type = ADBufferThermalExpansionEigenstrain
block = buffer
eigenstrain_name = Buffer_TE_strain
temperature = temperature
[]
[buffer_IIDC]
type = ADBufferCEGAIrradiationEigenstrain
block = buffer
eigenstrain_name = Buffer_IIDC_strain
temperature = temperature
[]
[IPyC_elasticity_tensor]
type = ADPyCElasticityTensor
block = IPyC
temperature = temperature
[]
[IPyC_stress]
type = ADPyCCEGACreep
block = IPyC
creep_rate_scale_factor = 1
temperature = temperature
[]
[IPyC_thermal]
type = ADHeatConductionMaterial
block = IPyC
thermal_conductivity = 4.0
specific_heat = 720.0
[]
[IPyC_density]
type = ADGenericConstantMaterial
block = IPyC
prop_names = 'density'
prop_values = 1890
[]
[normal_vectors_triso]
type = NormalVectorsTRISO
block = 'buffer IPyC OPyC'
[]
[IPyC_IIDC]
type = ADPyCCEGAIrradiationEigenstrain
block = IPyC
eigenstrain_name = IPyC_IIDC_strain
temperature = temperature
irradiation_eigenstrain_scale_factor = 1
[]
[IPyC_TE]
type = ADPyCThermalExpansionEigenstrain
block = IPyC
eigenstrain_name = IPyC_TE_strain
temperature = temperature
[]
[SiC_elasticity_tensor]
type = ADMonolithicSiCElasticityTensor
block = SiC
temperature = temperature
elastic_modulus_model = miller
[]
[SiC_stress]
type = ADComputeFiniteStrainElasticStress
block = SiC
[]
[SiC_thermal]
type = ADMonolithicSiCThermal
block = SiC
temperature = temperature
thermal_conductivity_model = miller
[]
[SiC_density]
type = ADStrainAdjustedDensity
block = SiC
strain_free_density = 3200.0
[]
[SiC_thermal_expansion]
type = ADComputeThermalExpansionEigenstrain
block = SiC
thermal_expansion_coeff = 4.9e-6
temperature = temperature
eigenstrain_name = SiC_thermal_eigenstrain
[]
[OPyC_elasticity_tensor]
type = ADPyCElasticityTensor
block = OPyC
temperature = temperature
initial_BAF = 1.0
[]
[OPyC_stress]
type = ADPyCCEGACreep
block = OPyC
creep_rate_scale_factor = 1
temperature = temperature
[]
[OPyC_thermal_conductivity]
type = ADHeatConductionMaterial
block = OPyC
thermal_conductivity = 4.0
specific_heat = 720.0
[]
[OPyC_density]
type = ADGenericConstantMaterial
block = OPyC
prop_names = 'density'
prop_values = 1900
[]
[OPyC_IIDC]
type = ADPyCCEGAIrradiationEigenstrain
block = OPyC
eigenstrain_name = OPyC_IIDC_strain
temperature = temperature
irradiation_eigenstrain_scale_factor = 1
[]
[OPyC_TE]
type = ADPyCThermalExpansionEigenstrain
block = OPyC
eigenstrain_name = OPyC_TE_strain
temperature = temperature
[]
[characteristic_strength_SiC]
type = ADGenericConstantMaterial
prop_values = '9640000'
block = SiC
prop_names = 'characteristic_strength'
[]
[characteristic_strength_PyC]
type = ADPyCCharacteristicStrength
temperature = temperature
X = 1.02
block = 'IPyC OPyC'
[]
[]
[Dampers]
[temp]
type = MaxIncrement
variable = temperature
max_increment = 100
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
nl_rel_tol = 5e-6
nl_abs_tol = 1e-8
nl_max_its = 20
l_tol = 1e-4
l_max_its = 50
start_time = 0.0
end_time = 4.831315e7
dtmin = 1e-4
dt = 5e5
[]
[Postprocessors]
[ave_gas_temp]
type = ElementAverageValue
block = buffer
variable = temperature
execute_on = 'initial timestep_end'
[]
[fis_gas_released]
type = ADElementIntegralMaterialProperty
mat_prop = fis_gas_released
block = fuel
use_displaced_mesh = false
execute_on = 'initial timestep_end'
[]
[gap_volume]
type = InternalVolume
boundary = buffer_IPyC_boundary
execute_on = 'initial linear'
use_displaced_mesh = true
[]
[buffer_void_volume]
type = ADVoidVolume
block = buffer
theoretical_density = 2250
execute_on = 'initial timestep_end'
use_displaced_mesh = true
[]
[kernel_th_density]
type = UCOTheoreticalDensity
execute_on = initial
[]
[kernel_void_volume]
type = ADVoidVolume
block = fuel
theoretical_density = kernel_th_density
execute_on = 'initial timestep_end'
use_displaced_mesh = true
[]
[particle_power]
type = ADElementIntegralPower
variable = temperature
use_material_fission_rate = true
fission_rate_material = fission_rate
block = fuel
execute_on = 'initial timestep_end'
[]
[max_fluence]
type = ElementExtremeValue
variable = fast_neutron_fluence
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[max_burnup]
type = ElementExtremeValue
variable = burnup
block = fuel
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[SiC_stress]
type = ADElementExtremeMaterialProperty
block = SiC
value_type = min
mat_prop = stress_yy
[]
[weibull_failure_probability_IPyC]
type = ADWeibullFailureProbability
block = IPyC
weibull_modulus = 9.5
characteristic_strength = characteristic_strength
[]
[weibull_failure_probability_SiC_crackedIPyC]
type = ADWeibullFailureProbabilityUsingCorrelation
block = SiC
weibull_modulus = 6
stress_name = stress_yy
high_fidelity_analysis_strength = 'high_fidelity_strength_crackedIPyC'
stress_correlation_function = 'stress_correlation_crackedIPyC'
[]
[weibull_failure_probability_SiC]
type = ADWeibullFailureProbabilityUsingCorrelation
block = SiC
weibull_modulus = 6
stress_name = stress_yy
high_fidelity_analysis_strength = 'high_fidelity_strength_asphericity'
stress_correlation_function = 'stress_correlation_asphericity'
stress_change_correlation_function = 'stress_change_correlation_asphericity'
[]
[]
[Outputs]
show = 'weibull_failure_probability_IPyC weibull_failure_probability_SiC weibull_failure_probability_SiC_crackedIPyC'
print_linear_residuals = false
time_step_interval = 1
csv = true
exodus = false
perf_graph = false
print_linear_converged_reason = false
print_nonlinear_converged_reason = false
[]
(examples/TRISO/correlation_function/h_asphericity/triso_asphericity.i)
kernel_radius = 213.35e-6
buffer_thickness = 98.9e-6
IPyC_thickness = 40.4e-6
SiC_thickness = 35.2e-6
OPyC_thickness = 43.4e-6
aspect_ratio = 1.04
coordinates1 = '${fparse kernel_radius}'
coordinates2 = '${fparse coordinates1+buffer_thickness}'
coordinates3 = '${fparse coordinates2+IPyC_thickness}'
coordinates4 = '${fparse coordinates3+SiC_thickness}'
coordinates5 = '${fparse coordinates4+OPyC_thickness}'
initial_fuel_density = 10966
[GlobalParams]
order = FIRST
family = LAGRANGE
displacements = 'disp_x disp_y'
initial_enrichment = 0.14029 # [wt-]
flux_conversion_factor = 1.0 # convert E>0.10 to E>0.18 MeV
stress_free_temperature = 481 # used for thermal expansion
energy_per_fission = 3.204e-11 # [J/fission]
O_U = 1.428 # Initial Oxygen to Uranium atom ratio
C_U = 0.392 # Initial Carbon to Uranium atom ratio
[]
[Mesh]
coord_type = RZ
[mesh]
type = TRISO2DMeshGenerator
elem_type = quad4
coordinates = '0 ${coordinates1} ${coordinates2} ${coordinates2} ${coordinates3} ${coordinates4} ${coordinates5}'
mesh_density = '20 8 0 4 4 4'
block_names = 'fuel buffer IPyC SiC OPyC'
num_sectors = 60
aspect_ratio = ${aspect_ratio}
all_bottom_left = True
[]
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[UserObjects]
[particle_geometry]
type = TRISOGeometry
outer_OPyC = OPyC_outer_boundary
outer_SiC = SiC_outer_boundary
outer_IPyC = IPyC_outer_boundary
inner_IPyC = IPyC_inner_boundary
outer_buffer = buffer_outer_boundary
outer_kernel = fuel_outer_boundary
include_particle = true
include_pebble = false
mesh_generator = mesh
[]
[]
[Variables]
[temperature]
initial_condition = 481
[]
[]
[AuxVariables]
[fission_rate]
order = CONSTANT
family = MONOMIAL
[]
[burnup]
order = CONSTANT
family = MONOMIAL
[]
[fast_neutron_flux]
order = CONSTANT
family = MONOMIAL
[]
[fast_neutron_fluence]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[temp_bc]
type = PiecewiseLinear
data_file = outer_temp.csv
x_index_in_file = 0
y_index_in_file = 1
format = columns
[]
[fission_rate]
type = ConstantFunction
value = 5.75e19
[]
[]
[Physics/SolidMechanics/QuasiStatic]
generate_output = 'stress_xx stress_yy stress_zz strain_xx strain_yy strain_zz max_principal_stress'
add_variables = true
strain = FINITE
incremental = true
[fuel]
block = fuel
eigenstrain_names = 'UCO_swelling_eigenstrain UCO_TE_strain'
extra_vector_tags = 'ref'
[]
[buffer]
block = buffer
eigenstrain_names = 'Buffer_IIDC_strain Buffer_TE_strain'
extra_vector_tags = 'ref'
[]
[IPyC]
block = IPyC
eigenstrain_names = 'IPyC_IIDC_strain IPyC_TE_strain'
extra_vector_tags = 'ref'
[]
[SiC]
block = SiC
eigenstrain_names = 'SiC_thermal_eigenstrain'
extra_vector_tags = 'ref'
[]
[OPyC]
block = OPyC
eigenstrain_names = 'OPyC_IIDC_strain OPyC_TE_strain'
extra_vector_tags = 'ref'
[]
[]
[Kernels]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temperature
extra_vector_tags = 'ref'
[]
[heat]
type = HeatConduction
variable = temperature
extra_vector_tags = 'ref'
[]
[heat_source]
type = NeutronHeatSource
variable = temperature
block = fuel
fission_rate = fission_rate
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[fissionrate]
type = MaterialRealAux
variable = fission_rate
property = fission_rate
block = fuel
execute_on = timestep_begin
[]
[burnup]
type = MaterialRealAux
variable = burnup
property = burnup
block = fuel
execute_on = timestep_begin
[]
[fast_neutron_flux]
type = MaterialRealAux
variable = fast_neutron_flux
property = fast_neutron_flux
execute_on = timestep_begin
[]
[fast_neutron_fluence]
type = MaterialRealAux
variable = fast_neutron_fluence
property = fast_neutron_fluence
execute_on = timestep_begin
[]
[]
[ThermalContact]
[thermal_contact]
type = GasGapHeatTransfer
variable = temperature
primary = IPyC_inner_boundary
secondary = buffer_outer_boundary
initial_moles = initial_moles
gas_released = 'fis_gas_released'
released_gas_types = 'Kr Xe'
released_fractions = '0.185 0.815'
tangential_tolerance = 1e-6
quadrature = false
min_gap = 1e-7
max_gap = 50e-6
gap_geometry_type = sphere
sphere_origin = '0 0 0'
[]
[]
[BCs]
[no_disp_x]
type = DirichletBC
variable = disp_x
boundary = xzero
value = 0.0
[]
[no_disp_y]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[]
[freesurf_temp]
type = FunctionDirichletBC
variable = temperature
function = temp_bc
boundary = exterior
[]
[Pressure]
[exterior]
boundary = exterior
factor = 0.1e6
[]
[]
[PlenumPressure]
[plenumPressure]
boundary = buffer_IPyC_boundary
startup_time = 1e4
initial_pressure = 0
R = 8.3145
output_initial_moles = initial_moles
temperature = ave_gas_temp
volume = 'gap_volume buffer_void_volume kernel_void_volume'
material_input = 'fis_gas_released'
output = gas_pressure
[]
[]
[]
[Materials]
[tangential_stress]
type = RankTwoCylindricalComponent
rank_two_tensor = stress
cylindrical_axis_point1 = '0 0 0'
cylindrical_axis_point2 = '0 0 1'
cylindrical_component = HoopStress
property_name = tangential_stress
outputs = all
[]
[fission_rate]
type = GenericFunctionMaterial
prop_names = fission_rate
prop_values = fission_rate
block = fuel
[]
[fast_neutron_flux]
type = FastNeutronFlux
calculate_fluence = true
factor = 6.2425e+17
[]
[UCO_burnup]
type = TRISOBurnup
initial_density = ${initial_fuel_density}
block = fuel
[]
[UCO_thermal]
type = UCOThermal
block = fuel
temperature = temperature
[]
[UCO_elasticity_tensor]
type = UCOElasticityTensor
block = fuel
temperature = temperature
[]
[UCO_stress]
type = ComputeFiniteStrainElasticStress
block = fuel
[]
[UCO_VolumetricSwellingEigenstrain]
type = UCOVolumetricSwellingEigenstrain
block = fuel
eigenstrain_name = UCO_swelling_eigenstrain
[]
[fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = fuel
thermal_expansion_coeff = 10.0e-6
temperature = temperature
eigenstrain_name = UCO_TE_strain
[]
[UCO_density]
type = StrainAdjustedDensity
block = fuel
strain_free_density = ${initial_fuel_density}
[]
[fission_gas_release]
type = UCOFGR
block = fuel
average_grain_radius = 10e-6
temperature = temperature
triso_geometry = particle_geometry
cutoff_neutron_flux = 0.0
[]
[BAF_IPyC]
type = BaconAnisotropyFactor
initial_BAF = 1.0465
block = IPyC
[]
[BAF_OPyC]
type = BaconAnisotropyFactor
initial_BAF = 1.0429
block = OPyC
[]
[buffer_elasticity_tensor]
type = BufferElasticityTensor
block = buffer
temperature = temperature
[]
[buffer_stress]
type = BufferCEGACreep
block = buffer
temperature = temperature
[]
[buffer_thermal]
type = BufferThermal
block = buffer
initial_density = 1050.0
[]
[buffer_density]
type = StrainAdjustedDensity
block = buffer
strain_free_density = 1050.0
[]
[buffer_TE]
type = BufferThermalExpansionEigenstrain
block = buffer
eigenstrain_name = Buffer_TE_strain
temperature = temperature
[]
[buffer_IIDC]
type = BufferCEGAIrradiationEigenstrain
block = buffer
eigenstrain_name = Buffer_IIDC_strain
temperature = temperature
[]
[normal_vectors_triso]
type = NormalVectorsTRISO
block = 'buffer IPyC OPyC'
triso_geometry = particle_geometry
[]
[IPyC_elasticity_tensor]
type = PyCElasticityTensor
block = IPyC
temperature = temperature
[]
[IPyC_stress]
type = PyCCEGACreep
block = IPyC
creep_rate_scale_factor = 1
temperature = temperature
[]
[IPyC_thermal]
type = HeatConductionMaterial
block = IPyC
thermal_conductivity = 4.0
specific_heat = 720.0
[]
[IPyC_density]
type = GenericConstantMaterial
block = IPyC
prop_names = 'density'
prop_values = 1890
[]
[IPyC_IIDC]
type = PyCCEGAIrradiationEigenstrain
block = IPyC
eigenstrain_name = IPyC_IIDC_strain
temperature = temperature
irradiation_eigenstrain_scale_factor = 1
[]
[IPyC_TE]
type = PyCThermalExpansionEigenstrain
block = IPyC
eigenstrain_name = IPyC_TE_strain
temperature = temperature
[]
[SiC_elasticity_tensor]
type = MonolithicSiCElasticityTensor
block = SiC
temperature = temperature
elastic_modulus_model = miller
[]
[SiC_stress]
type = ComputeFiniteStrainElasticStress
block = SiC
[]
[SiC_thermal]
type = MonolithicSiCThermal
block = SiC
temperature = temperature
thermal_conductivity_model = miller
[]
[SiC_density]
type = StrainAdjustedDensity
block = SiC
strain_free_density = 3200.0
[]
[SiC_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = SiC
thermal_expansion_coeff = 4.9e-6
temperature = temperature
eigenstrain_name = SiC_thermal_eigenstrain
[]
[OPyC_elasticity_tensor]
type = PyCElasticityTensor
block = OPyC
temperature = temperature
initial_BAF = 1.0
[]
[OPyC_stress]
type = PyCCEGACreep
block = OPyC
creep_rate_scale_factor = 1
temperature = temperature
[]
[OPyC_thermal_conductivity]
type = HeatConductionMaterial
block = OPyC
thermal_conductivity = 4.0
specific_heat = 720.0
[]
[OPyC_density]
type = GenericConstantMaterial
block = OPyC
prop_names = 'density'
prop_values = 1900
[]
[OPyC_IIDC]
type = PyCCEGAIrradiationEigenstrain
block = OPyC
eigenstrain_name = OPyC_IIDC_strain
temperature = temperature
irradiation_eigenstrain_scale_factor = 1
[]
[OPyC_TE]
type = PyCThermalExpansionEigenstrain
block = OPyC
eigenstrain_name = OPyC_TE_strain
temperature = temperature
[]
[characteristic_strength_SiC]
type = GenericConstantMaterial
prop_values = '9640000'
block = SiC
prop_names = 'characteristic_strength'
[]
[characteristic_strength_PyC]
type = PyCCharacteristicStrength
temperature = temperature
X = 1.02
block = 'IPyC OPyC'
[]
[]
[Dampers]
[temp]
type = MaxIncrement
variable = temperature
max_increment = 100
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
nl_rel_tol = 5e-6
nl_abs_tol = 1e-8
nl_max_its = 20
l_tol = 1e-4
l_max_its = 50
start_time = 0.0
end_time = 4.831315e7
dtmin = 1e-4
dt = 6e5
[]
[Postprocessors]
[ave_gas_temp]
type = ElementAverageValue
block = buffer
variable = temperature
execute_on = 'initial timestep_end'
[]
[fis_gas_released]
type = ElementIntegralMaterialProperty
mat_prop = fis_gas_released
block = fuel
use_displaced_mesh = false
execute_on = 'initial timestep_end'
[]
[gap_volume]
type = InternalVolume
boundary = buffer_IPyC_boundary
execute_on = 'initial linear'
use_displaced_mesh = true
[]
[buffer_void_volume]
type = VoidVolume
block = buffer
theoretical_density = 2250
execute_on = 'initial timestep_end'
use_displaced_mesh = true
[]
[kernel_th_density]
type = UCOTheoreticalDensity
execute_on = initial
[]
[kernel_void_volume]
type = VoidVolume
block = fuel
theoretical_density = kernel_th_density
execute_on = 'initial timestep_end'
use_displaced_mesh = true
[]
[particle_power]
type = ElementIntegralPower
variable = temperature
use_material_fission_rate = true
fission_rate_material = fission_rate
block = fuel
execute_on = 'initial timestep_end'
[]
[max_fluence]
type = ElementExtremeValue
variable = fast_neutron_fluence
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[max_burnup]
type = ElementExtremeValue
variable = burnup
block = fuel
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[SiC_stress]
type = ElementalVariableValue
elementid = 6300
variable = tangential_stress
[]
[strength_SiC]
type = WeibullEffectiveMeanStrength
block = SiC
weibull_modulus = 6
[]
[]
[Outputs]
print_linear_residuals = false
time_step_interval = 1
csv = true
perf_graph = true
exodus = true
[]
(examples/TRISO/parfume/parfume_un.i)
# UN TRISO particle using several PARFUME models
[GlobalParams]
order = SECOND
family = LAGRANGE
displacements = 'disp_x'
initial_enrichment = 0.1955 # [wt-]
flux_conversion_factor = 1.0 # convert E>0.10 to E>0.18 MeV
stress_free_temperature = 923.15 # used for thermal expansion
energy_per_fission = 3.204e-11 # [J/fission]
O_U = 1.5 # Initial Oxygen to Uranium atom ratio
C_U = 0.4 # Initial Carbon to Uranium atom ratio
[]
[Mesh]
coord_type = RSPHERICAL
[gen]
type = TRISO1DMeshGenerator
elem_type = EDGE3
coordinates = '0 2.125e-4 3.125e-4 3.125e-4 3.525e-4 3.875e-4 4.275e-4'
mesh_density = '6 6 0 6 8 6'
block_names = 'fuel buffer IPyC SiC OPyC'
[]
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[UserObjects]
[particle_geometry]
type = TRISOGeometry
[]
[]
[Variables]
[temperature]
initial_condition = 923.15
[]
[conc]
initial_condition = 0.0
scaling = 1e18
[]
[]
[AuxVariables]
[disp_y]
[]
[disp_z]
[]
[fission_rate]
block = fuel
order = CONSTANT
family = MONOMIAL
[]
[burnup]
block = fuel
order = CONSTANT
family = MONOMIAL
[]
[fast_neutron_flux]
order = CONSTANT
family = MONOMIAL
[]
[fast_neutron_fluence]
order = CONSTANT
family = MONOMIAL
[]
[gap_condSlave]
order = CONSTANT
family = MONOMIAL
[]
[density]
order = CONSTANT
family = MONOMIAL
[]
[thermal_conductivity]
order = CONSTANT
family = MONOMIAL
[]
[swelling]
order = CONSTANT
family = MONOMIAL
[]
[specific_heat]
order = CONSTANT
family = MONOMIAL
[]
[volumetric_IIDC_strain]
order = CONSTANT
family = MONOMIAL
[]
[radial_IIDC_strain]
order = CONSTANT
family = MONOMIAL
[]
[tangential_IIDC_strain]
order = CONSTANT
family = MONOMIAL
[]
[BAF]
order = CONSTANT
family = MONOMIAL
[]
[fis_gas_produced]
order = CONSTANT
family = MONOMIAL
[]
[fis_gas_released]
order = CONSTANT
family = MONOMIAL
[]
[gap_HTC]
order = CONSTANT
family = MONOMIAL
[]
[gap_distance]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[power_history]
type = PiecewiseLinear
x = '0 76e6 76.001e6'
y = '1 1 0'
[]
[fission_rate]
type = LinearCombinationFunction
functions = power_history
w = 3.89e19
[]
[temp_bc]
type = PiecewiseLinear
# A final temperature ramp is not possible with the UNThermal model since
# its range of applicability ends at 1800 K
# To use the model beyond its limit but get a warning, add
# value_range_behavior = WARN in the GlobalParams block.
x = '0 76e6 76.001e6 84.641e6 84.6482e6'
y = '1500 1500 300 300 2073'
[]
[k_function]
type = PiecewiseLinear
x = '0 200e6'
y = '4e-37 4e-37'
[]
[d1_function]
type = ParsedFunction
expression = 'exp(t/4.5e25)'
[]
[d_gap]
type = PiecewiseLinear
x = '1500 2100'
y = '1e-14 1e-12'
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[fuel]
block = fuel
add_variables = true
strain = FINITE
incremental = true
generate_output = 'hydrostatic_stress stress_xx stress_yy stress_zz strain_xx strain_yy strain_zz'
eigenstrain_names = 'UN_swelling_eigenstrain UN_thermal_strain'
extra_vector_tags = 'ref'
[]
[buffer]
block = buffer
add_variables = true
strain = FINITE
incremental = true
generate_output = 'hydrostatic_stress stress_xx stress_yy stress_zz strain_xx strain_yy strain_zz'
eigenstrain_names = 'buffer_IIDC_strain buffer_thermal_strain'
extra_vector_tags = 'ref'
[]
[IPyC]
block = IPyC
add_variables = true
strain = FINITE
incremental = true
generate_output = 'hydrostatic_stress stress_xx stress_yy stress_zz strain_xx strain_yy strain_zz'
eigenstrain_names = 'IPyC_IIDC_strain IPyC_thermal_strain'
extra_vector_tags = 'ref'
[]
[SiC]
block = SiC
add_variables = true
strain = FINITE
incremental = true
generate_output = 'hydrostatic_stress stress_xx stress_yy stress_zz strain_xx strain_yy strain_zz'
eigenstrain_names = 'SiC_thermal_eigenstrain'
extra_vector_tags = 'ref'
[]
[OPyC]
block = OPyC
add_variables = true
strain = FINITE
incremental = true
generate_output = 'hydrostatic_stress stress_xx stress_yy stress_zz strain_xx strain_yy strain_zz'
eigenstrain_names = 'OPyC_IIDC_strain OPyC_thermal_strain'
extra_vector_tags = 'ref'
[]
[]
[Kernels]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temperature
extra_vector_tags = 'ref'
[]
[heat]
type = HeatConduction
variable = temperature
extra_vector_tags = 'ref'
[]
[heat_source]
type = NeutronHeatSource
variable = temperature
block = fuel
fission_rate = fission_rate
extra_vector_tags = 'ref'
[]
[mass_ie]
type = TimeDerivative
variable = conc
extra_vector_tags = 'ref'
[]
[mass]
type = ArrheniusDiffusion
variable = conc
extra_vector_tags = 'ref'
[]
[mass_source]
type = BodyForce
variable = conc
function = power_history
value = 1.22e-5 # units of mol/m**3-s
block = fuel
extra_vector_tags = 'ref'
[]
[mass_decay]
type = Decay
variable = conc
radioactive_decay_constant = 7.297e-10 # units:(1/sec) The constant for Cesium
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[fissionrate]
type = MaterialRealAux
variable = fission_rate
property = fission_rate
block = fuel
execute_on = timestep_begin
[]
[burnup]
type = MaterialRealAux
variable = burnup
property = burnup
block = fuel
execute_on = timestep_begin
[]
[fast_neutron_flux]
type = MaterialRealAux
variable = fast_neutron_flux
property = fast_neutron_flux
block = 'fuel buffer IPyC SiC OPyC'
execute_on = timestep_begin
[]
[fast_neutron_fluence]
type = MaterialRealAux
variable = fast_neutron_fluence
property = fast_neutron_fluence
block = 'fuel buffer IPyC SiC OPyC'
execute_on = timestep_begin
[]
[conductanceSlave]
type = MaterialRealAux
property = gap_conductance
variable = gap_condSlave
boundary = buffer_outer_boundary
execute_on = 'initial timestep_end'
[]
[density]
type = MaterialRealAux
variable = density
property = density
block = 'fuel buffer IPyC SiC OPyC'
execute_on = 'initial linear'
[]
[thermal_conductivity]
type = MaterialRealAux
variable = thermal_conductivity
property = thermal_conductivity
block = 'fuel buffer IPyC SiC OPyC'
execute_on = timestep_end
[]
[specific_heat]
type = MaterialRealAux
variable = specific_heat
property = specific_heat
block = 'fuel buffer IPyC SiC OPyC'
execute_on = timestep_end
[]
[swelling]
type = MaterialRealAux
variable = swelling
property = swelling
block = fuel
execute_on = linear
[]
[volumetric_IIDC_strain]
type = MaterialRealAux
variable = volumetric_IIDC_strain
property = volumetric_IIDC_strain
block = 'IPyC OPyC'
execute_on = timestep_end
[]
[radial_IIDC_strain]
type = MaterialRealAux
variable = radial_IIDC_strain
property = radial_IIDC_strain
block = 'IPyC OPyC'
execute_on = timestep_end
[]
[tangential_IIDC_strain]
type = MaterialRealAux
variable = tangential_IIDC_strain
property = tangential_IIDC_strain
block = 'IPyC OPyC'
execute_on = timestep_end
[]
[BAF]
type = MaterialRealAux
variable = BAF
property = BAF
block = 'IPyC OPyC'
execute_on = timestep_end
[]
[fis_gas_produced]
type = MaterialRealAux
variable = fis_gas_produced
property = fis_gas_produced
block = fuel
execute_on = linear
[]
[fis_gas_released]
type = MaterialRealAux
variable = fis_gas_released
property = fis_gas_released
block = fuel
execute_on = linear
[]
[gap_HTC]
type = MaterialRealAux
property = gap_conductance
variable = gap_HTC
boundary = buffer_outer_boundary
execute_on = 'initial timestep_end'
[]
[gap_distance]
type = PenetrationAux
variable = gap_distance
boundary = buffer_outer_boundary
paired_boundary = IPyC_inner_boundary
quantity = distance
tangential_tolerance = 1e-6
execute_on = 'initial timestep_end'
[]
[]
[Contact]
[mechanical]
primary = IPyC_inner_boundary
secondary = buffer_outer_boundary
penalty = 1e5
model = frictionless
formulation = kinematic
[]
[]
[ThermalContact]
[thermal_contact]
type = GasGapHeatTransfer
variable = temperature
primary = IPyC_inner_boundary
secondary = buffer_outer_boundary
initial_moles = initial_moles # coupling to a postprocessor which supplies the initial plenum/gap gas mass
initial_gas_types = 'Kr Xe'
initial_fractions = '0.185 0.815'
gas_released = 'fis_gas_released'
released_gas_types = 'Kr Xe'
released_fractions = '0.185 0.815'
tangential_tolerance = 1e-6
roughness_primary = 0e-6
roughness_secondary = 0e-6
jumpdistance_primary = 0
jumpdistance_secondary = 0
quadrature = true
emissivity_secondary = 0.0
emissivity_primary = 0.0
min_gap = 1e-7
max_gap = 50e-6
gap_geometry_type = sphere
[]
[cesium_contact]
type = GapHeatTransfer
variable = conc
primary = IPyC_inner_boundary
secondary = buffer_outer_boundary
tangential_tolerance = 1e-6
gap_conductivity_function = d_gap
gap_conductivity_function_variable = temperature
appended_property_name = _conc
quadrature = true
gap_geometry_type = sphere
emissivity_primary = 0.0
emissivity_secondary = 0.0
min_gap = 1e-7
[]
[]
[BCs]
# pin particle along symmetry planes
[no_disp_x]
type = DirichletBC
variable = disp_x
boundary = xzero
value = 0.0
[]
# fix temperature on free surface
[freesurf_temp]
type = FunctionDirichletBC
variable = temperature
function = temp_bc
boundary = exterior
[]
# fix concentration on free surface
[freesurf_conc]
type = DirichletBC
variable = conc
boundary = exterior
value = 0.0
[]
# exterior and internal pressures
[exterior_pressure_x]
type = Pressure
variable = disp_x
boundary = exterior
factor = 0.1e6
[]
[PlenumPressure] # apply gas pressure on buffer and IPyC boundaries
[plenumPressure]
boundary = buffer_IPyC_boundary
initial_pressure = 100.0
startup_time = 0
R = 8.3145
output_initial_moles = initial_moles
temperature = ave_gas_temp
volume = 'gap_volume buffer_void_volume kernel_void_volume'
material_input = 'fis_gas_released'
output = gas_pressure
[]
[]
[]
[Materials]
[fission_rate]
type = GenericFunctionMaterial
prop_names = fission_rate
prop_values = fission_rate
[]
[fast_neutron_flux]
type = FastNeutronFlux
calculate_fluence = true
flux_function = power_history
factor = 5e17
[]
[normal_vectors_triso]
type = NormalVectorsTRISO
block = 'buffer IPyC OPyC'
[]
### UN properties
[UN_burnup]
type = TRISOBurnup
initial_density = 13760.0
kernel_type = UN
[]
[UN_thermal]
type = MNThermal
block = fuel
temperature = temperature
formulation = COLLIN_BAUER
[]
[UN_elasticity_tensor]
type = UNElasticityTensor
block = fuel
temperature = temperature
[]
[UN_stress]
type = ComputeFiniteStrainElasticStress
block = fuel
[]
[UN_VolumetricSwellingEigenstrain]
type = BurnupDependentEigenstrain
block = fuel
swelling_name = swelling
eigenstrain_name = UN_swelling_eigenstrain
swelling_factor = 0.8
[]
[UN_thermal_strain]
type = ComputeThermalExpansionEigenstrain
block = fuel
thermal_expansion_coeff = 10e-6 # check this value for UN
eigenstrain_name = UN_thermal_strain
temperature = temperature
[]
[UN_density]
type = StrainAdjustedDensity
block = fuel
strain_free_density = 13760.0
[]
[fission_gas_release]
type = UNFGR
block = fuel
average_grain_radius = 10e-6
temperature = temperature
triso_geometry = particle_geometry
[]
[fuel_conc]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 5.6e-8 # m^2/s
q1 = 209.0e+3 # J/mol
d2 = 5.2e-4 # m^2/s
q2 = 362.0e+3 # J/mol
temperature = temperature
[]
### Buffer Properties
[buffer_elasticity_tensor]
type = BufferElasticityTensor
block = buffer
temperature = temperature
[]
[buffer_stress]
type = BufferCEGACreep
block = buffer
temperature = temperature
[]
[buffer_thermal]
type = BufferThermal
block = buffer
initial_density = 1050.0
[]
[buffer_density]
type = StrainAdjustedDensity
block = buffer
strain_free_density = 1050.0
[]
[buffer_thermal_strain]
type = BufferThermalExpansionEigenstrain
block = buffer
eigenstrain_name = buffer_thermal_strain
temperature = temperature
[]
[buffer_IIDC_strain]
type = BufferCEGAIrradiationEigenstrain
block = buffer
eigenstrain_name = buffer_IIDC_strain
temperature = temperature
[]
[buffer_conc]
type = ArrheniusDiffusionCoef
block = buffer
d1 = 1.0e-12 # m^2/s
q1 = 0.0
d2 = 0.0
q2 = 0.0
temperature = temperature
[]
### IPyC properties
[IPyC_elasticity_tensor]
type = PyCElasticityTensor
block = IPyC
temperature = temperature
initial_BAF = 1.045
poissons_ratio = 0.23
[]
[IPyC_stress]
type = PyCCEGACreep
block = IPyC
temperature = temperature
[]
[IPyC_thermal]
type = HeatConductionMaterial
block = IPyC
thermal_conductivity = 4.0
specific_heat = 720.0
[]
[IPyC_density]
type = GenericConstantMaterial
block = IPyC
prop_names = 'density'
prop_values = 1900.0
[]
[IPyC_IIDC_strain]
type = PyCCEGAIrradiationEigenstrain
block = IPyC
eigenstrain_name = IPyC_IIDC_strain
temperature = temperature
[]
[BAF_IPyC]
type = BaconAnisotropyFactor
initial_BAF = 1.045
block = IPyC
[]
[BAF_OPyC]
type = BaconAnisotropyFactor
initial_BAF = 1.045
block = OPyC
[]
[IPyC_thermal_strain]
type = PyCThermalExpansionEigenstrain
block = IPyC
eigenstrain_name = IPyC_thermal_strain
temperature = temperature
[]
[IPyC_conc]
type = ArrheniusDiffusionCoef
block = IPyC
d1 = 6.3e-8 # m^2/s
q1 = 222.0e+3 # J/mol
d2 = 0.0
q2 = 0.0
temperature = temperature
[]
### SiC properties
[SiC_elasticity_tensor]
type = MonolithicSiCElasticityTensor
block = SiC
temperature = temperature
elastic_modulus_model = miller
[]
[SiC_stress]
type = ComputeFiniteStrainElasticStress
block = SiC
[]
[SiC_thermal]
type = MonolithicSiCThermal
block = SiC
temperature = temperature
thermal_conductivity_model = miller
[]
[SiC_density]
type = GenericConstantMaterial
block = SiC
prop_names = 'density'
prop_values = 3200.0
[]
[SiC_thermal_strain]
type = MonolithicSiCThermalExpansionEigenstrain
block = SiC
temperature = temperature
eigenstrain_name = SiC_thermal_eigenstrain
[]
[SiC_conc]
type = ArrheniusDiffusionCoef
block = SiC
d1 = 5.5e-14 # m^2/s
d1_function = d1_function
d1_function_variable = fast_neutron_fluence
q1 = 125.0e+3 # J/mol
d2 = 1.6e-2 # m^2/s
q2 = 514.0e+3 # J/mol
temperature = temperature
[]
### OPyC properties
[OPyC_elasticity_tensor]
type = PyCElasticityTensor
block = OPyC
temperature = temperature
initial_BAF = 1.045
poissons_ratio = 0.23
[]
[OPyC_stress]
type = PyCCEGACreep
block = OPyC
temperature = temperature
[]
[OPyC_thermal_conductivity]
type = HeatConductionMaterial
block = OPyC
thermal_conductivity = 4.0
specific_heat = 720.0
[]
[OPyC_density]
type = GenericConstantMaterial
block = OPyC
prop_names = 'density'
prop_values = 1900.0
[]
[OPyC_IIDC_strain]
type = PyCCEGAIrradiationEigenstrain
block = OPyC
eigenstrain_name = OPyC_IIDC_strain
temperature = temperature
[]
[OPyC_thermal_strain]
type = PyCThermalExpansionEigenstrain
block = OPyC
eigenstrain_name = OPyC_thermal_strain
temperature = temperature
[]
[OPyC_conc]
type = ArrheniusDiffusionCoef
block = OPyC
d1 = 6.3e-8 # m^2/s
q1 = 222.0e+3 # J/mol
d2 = 0.0
q2 = 0.0
temperature = temperature
[]
[]
[Dampers]
[temp]
type = MaxIncrement
variable = temperature
max_increment = 50
[]
[disp_x]
type = MaxIncrement
variable = disp_x
max_increment = 1e-6
[]
[]
[Debug]
show_var_residual_norms = true
show_var_residual = 'disp_x temperature conc'
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
nl_rel_tol = 1e-8
nl_abs_tol = 1e-7
nl_max_its = 15
l_tol = 1e-4
l_max_its = 50
start_time = 0.0
end_time = 84.641e6 #85.3682e6
num_steps = 1000
dtmax = 2e6
dtmin = 1
[TimeStepper]
type = IterationAdaptiveDT
dt = 20
growth_factor = 1.5
optimal_iterations = 8 #6
linear_iteration_ratio = 100
time_t = '0 76e6 76.001e6 84.641e6 84.6482e6'
time_dt = '20 20 20 20 20'
[]
[Quadrature]
order = THIRD
[]
[]
[Postprocessors]
[_dt]
type = TimestepSize
execute_on = timestep_end
[]
[cs_release]
type = SideIntegralMassFlux
variable = conc
boundary = exterior
[]
[int_cs_release]
type = TimeIntegratedPostprocessor
value = cs_release
[]
[cs_release_fuel]
type = SideIntegralMassFlux
variable = conc
boundary = fuel_outer_boundary
[]
[int_cs_release_fuel]
type = TimeIntegratedPostprocessor
value = cs_release_fuel
[]
[cs_release_PyCGapBndry]
type = SideIntegralMassFlux
variable = conc
boundary = IPyC_inner_boundary
[]
[int_cs_release_PyCGapBndry]
type = TimeIntegratedPostprocessor
value = cs_release_PyCGapBndry
[]
[ave_gas_temp]
type = ElementAverageValue
block = buffer
variable = temperature
execute_on = 'initial timestep_end'
[]
[ave_gap_temp]
type = SideAverageValue
boundary = buffer_IPyC_boundary
variable = temperature
execute_on = 'initial timestep_end'
[]
[fis_gas_produced]
type = ElementIntegralMaterialProperty
mat_prop = fis_gas_produced
block = fuel
execute_on = 'initial timestep_end'
[]
[fis_gas_released]
type = ElementIntegralMaterialProperty
mat_prop = fis_gas_released
block = fuel
execute_on = 'initial timestep_end'
[]
[gap_volume]
type = InternalVolume
boundary = buffer_IPyC_boundary
execute_on = 'initial linear'
use_displaced_mesh = true
[]
[buffer_void_volume]
type = VoidVolume
block = buffer
theoretical_density = 2250
execute_on = 'initial timestep_end'
use_displaced_mesh = true
[]
[kernel_void_volume]
type = VoidVolume
block = fuel
theoretical_density = 14330
execute_on = 'initial timestep_end'
use_displaced_mesh = true
[]
[volumeTotal]
type = InternalVolume
boundary = exterior
execute_on = 'initial timestep_end'
scale_factor = -1
[]
[volumeFuel]
type = InternalVolume
boundary = fuel_outer_boundary
execute_on = 'initial timestep_end'
scale_factor = -1
[]
[volumeGas]
type = InternalVolume
boundary = buffer_outer_boundary
execute_on = 'initial timestep_end'
scale_factor = -1
addition = 4.67e-11
[]
[volumeBufferShell]
type = InternalVolume
boundary = buffer_outer_boundary
execute_on = 'initial timestep_end'
[]
[ave_temp_interior]
type = SideAverageValue
boundary = buffer_outer_boundary
variable = temperature
execute_on = 'initial timestep_end'
[]
[gap_HTC]
type = ElementExtremeValue
variable = gap_HTC
block = buffer
value_type = 'max'
execute_on = 'initial timestep_end'
[]
### Postprocessors for CO production
[total_fission_rate]
type = ElementIntegralPower
variable = temperature
fission_rate = fission_rate
block = fuel
energy_per_fission = 1.0
outputs = exodus
execute_on = 'initial timestep_end'
[]
[total_fissions]
type = TimeIntegratedPostprocessor
value = total_fission_rate
outputs = exodus
execute_on = 'initial timestep_end'
[]
[avg_surface_temp]
type = SideAverageValue
variable = temperature
boundary = exterior
outputs = exodus
execute_on = 'initial timestep_end'
[]
[time_int_surf_temp]
type = TimeIntegratedPostprocessor
value = avg_surface_temp
outputs = exodus
execute_on = 'initial timestep_end'
[]
##### irradiation conditions
[particle_power]
type = ElementIntegralPower
variable = temperature
use_material_fission_rate = true
fission_rate_material = fission_rate
block = fuel
execute_on = 'initial timestep_end'
[]
[max_fluence]
type = ElementExtremeValue
variable = fast_neutron_fluence
block = 'fuel buffer IPyC SiC OPyC'
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[max_burnup]
type = ElementExtremeValue
variable = burnup
block = fuel
value_type = 'max'
execute_on = 'initial timestep_end'
[]
#### II strain
[OPyC_radial_IIDC_strain]
type = ElementExtremeValue
variable = radial_IIDC_strain
block = OPyC
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[OPyC_tangential_IIDC_strain]
type = ElementExtremeValue
variable = tangential_IIDC_strain
block = OPyC
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[IPyC_radial_IIDC_strain]
type = ElementExtremeValue
variable = radial_IIDC_strain
block = IPyC
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[IPyC_tangential_IIDC_strain]
type = ElementExtremeValue
variable = tangential_IIDC_strain
block = IPyC
value_type = 'max'
execute_on = 'initial timestep_end'
[]
#### temperatures
[max_T_kernel]
type = NodalExtremeValue
variable = temperature
block = fuel
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[max_T_buffer]
type = NodalExtremeValue
variable = temperature
block = buffer
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[min_T_buffer]
type = NodalExtremeValue
variable = temperature
block = buffer
value_type = 'min'
execute_on = 'initial timestep_end'
[]
[max_T_IPyC]
type = NodalExtremeValue
variable = temperature
block = IPyC
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[max_T_SiC]
type = NodalExtremeValue
variable = temperature
block = SiC
value_type = 'max'
execute_on = 'initial timestep_end'
[]
#### displacement BCs
[max_disp_kernel]
type = NodalExtremeValue
variable = disp_x
block = fuel
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[min_disp_buffer]
type = NodalExtremeValue
variable = disp_x
block = buffer
value_type = 'min'
execute_on = 'initial timestep_end'
[]
[max_disp_IPyC]
type = NodalExtremeValue
variable = disp_x
block = IPyC
value_type = 'max'
execute_on = 'initial timestep_end'
[]
#### hoop stresses
[hoop_opyc_max]
type = ElementExtremeValue
variable = stress_yy
block = OPyC
execute_on = 'initial timestep_end'
[]
[hoop_sic_max]
type = ElementExtremeValue
variable = stress_yy
block = SiC
execute_on = 'initial timestep_end'
[]
[hoop_ipyc_max]
type = ElementExtremeValue
variable = stress_yy
block = IPyC
execute_on = 'initial timestep_end'
[]
[hoop_buffer_max]
type = ElementExtremeValue
variable = stress_yy
block = buffer
execute_on = 'initial timestep_end'
[]
[hoop_opyc_min]
type = ElementExtremeValue
variable = stress_yy
block = OPyC
value_type = min
execute_on = 'initial timestep_end'
[]
[hoop_sic_min]
type = ElementExtremeValue
variable = stress_yy
block = SiC
value_type = min
execute_on = 'initial timestep_end'
[]
[hoop_ipyc_min]
type = ElementExtremeValue
variable = stress_yy
block = IPyC
value_type = min
execute_on = 'initial timestep_end'
[]
[hoop_buffer_min]
type = ElementExtremeValue
variable = stress_yy
block = buffer
value_type = min
execute_on = 'initial timestep_end'
[]
### Check warning for Density
[oPyC_density]
type = ElementExtremeValue
variable = density
block = OPyC
execute_on = 'initial timestep_end'
[]
[sic_density]
type = ElementExtremeValue
variable = density
block = SiC
execute_on = 'initial timestep_end'
[]
[IPyC_density]
type = ElementExtremeValue
variable = density
block = IPyC
execute_on = 'initial timestep_end'
[]
[buffer_density]
type = ElementExtremeValue
variable = density
block = buffer
execute_on = 'initial timestep_end'
[]
[kernel_density]
type = ElementExtremeValue
variable = density
block = fuel
execute_on = 'initial timestep_end'
[]
[pd_penetration]
type = PdPenetration
boundary = SiC_inner_boundary
variable = temperature
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
print_linear_residuals = true
time_step_interval = 1
exodus = true
csv = true
perf_graph = true
[]
(examples/TRISO/failure_probability_direct_integration/triso_1d.i)
kernel_radius = 213.35e-6
buffer_thickness = 98.9e-6
IPyC_thickness = 40.4e-6
SiC_thickness = 35.2e-6
OPyC_thickness = 43.4e-6
coordinates1 = '${fparse kernel_radius}'
coordinates2 = '${fparse coordinates1+buffer_thickness}'
coordinates3 = '${fparse coordinates2+IPyC_thickness}'
coordinates4 = '${fparse coordinates3+SiC_thickness}'
coordinates5 = '${fparse coordinates4+OPyC_thickness}'
initial_fuel_density = 10966
[GlobalParams]
order = FIRST
family = LAGRANGE
displacements = 'disp_x'
initial_enrichment = 0.14029 # [wt-]
flux_conversion_factor = 1.0 # convert E>0.10 to E>0.18 MeV
stress_free_temperature = 481 # used for thermal expansion
energy_per_fission = 3.204e-11 # [J/fission]
O_U = 1.428 # Initial Oxygen to Uranium atom ratio
C_U = 0.392 # Initial Carbon to Uranium atom ratio
[]
[Mesh]
coord_type = RSPHERICAL
[gen]
type = TRISO1DMeshGenerator
elem_type = EDGE3
coordinates = '0 ${coordinates1} ${coordinates2} ${coordinates2} ${coordinates3} ${coordinates4} ${coordinates5}'
mesh_density = '5 3 0 5 3 4'
block_names = 'fuel buffer IPyC SiC OPyC'
[]
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[UserObjects]
[particle_geometry]
type = TRISOGeometry
outer_OPyC = OPyC_outer_boundary
outer_SiC = SiC_outer_boundary
outer_IPyC = IPyC_outer_boundary
inner_IPyC = IPyC_inner_boundary
outer_buffer = buffer_outer_boundary
outer_kernel = fuel_outer_boundary
include_particle = true
include_pebble = false
IPyC_thickness_mean = 40.4e-6
SiC_thickness_mean = 35.2e-6
OPyC_thickness_mean = 43.4e-6
[]
[]
[Variables]
[temperature]
initial_condition = 481
[]
[]
[AuxVariables]
[fission_rate]
order = CONSTANT
family = MONOMIAL
[]
[burnup]
order = CONSTANT
family = MONOMIAL
[]
[fast_neutron_flux]
order = CONSTANT
family = MONOMIAL
[]
[fast_neutron_fluence]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[temp_bc]
type = PiecewiseLinear
data_file = outer_temp.csv
x_index_in_file = 0
y_index_in_file = 1
format = columns
[]
[fission_rate]
type = ConstantFunction
value = 5.75e19
[]
[high_fidelity_strength_crackedIPyC]
type = ConstantFunction
value = '1363350801.3058'
[]
[stress_correlation_crackedIPyC]
type = TRISOStressCorrelationFunction
triso_geometry = particle_geometry
polynomial_coefficients_IPyC = '1 7017 -2.368e8'
polynomial_coefficients_SiC = '1 1.492e4 -3.802e7'
polynomial_coefficients_OPyC = '1 -1.273e4 1.849e8'
correlation_factor = -1.1824630660785265
[]
[high_fidelity_strength_asphericity]
type = ConstantFunction
value = '1086690814.283'
[]
[stress_correlation_asphericity]
type = TRISOStressCorrelationFunction
triso_geometry = particle_geometry
polynomial_coefficients_IPyC = '1 -2070 3.458e7'
polynomial_coefficients_SiC = '1 -868.9 -1.368e7'
polynomial_coefficients_OPyC = '1 1734 -1.988e7'
correlation_factor = 1.0626986695756293
[]
[stress_change_correlation_asphericity]
type = TRISOStressCorrelationFunction
triso_geometry = particle_geometry
polynomial_coefficients_IPyC = '1 -856 1.593e7'
polynomial_coefficients_SiC = '1 1774 -5.253e7'
polynomial_coefficients_OPyC = '1 456.4 -1.459e7'
correlation_factor = 1.0113764663823708
[]
[]
[Physics/SolidMechanics/QuasiStatic]
generate_output = 'stress_xx stress_yy stress_zz strain_xx strain_yy strain_zz max_principal_stress'
add_variables = true
strain = FINITE
incremental = true
[fuel]
block = fuel
eigenstrain_names = 'UCO_swelling_eigenstrain UCO_TE_strain'
extra_vector_tags = 'ref'
[]
[buffer]
block = buffer
eigenstrain_names = 'Buffer_IIDC_strain Buffer_TE_strain'
extra_vector_tags = 'ref'
[]
[IPyC]
block = IPyC
eigenstrain_names = 'IPyC_IIDC_strain IPyC_TE_strain'
extra_vector_tags = 'ref'
[]
[SiC]
block = SiC
eigenstrain_names = 'SiC_thermal_eigenstrain'
extra_vector_tags = 'ref'
[]
[OPyC]
block = OPyC
eigenstrain_names = 'OPyC_IIDC_strain OPyC_TE_strain'
extra_vector_tags = 'ref'
[]
[]
[Kernels]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temperature
extra_vector_tags = 'ref'
[]
[heat]
type = HeatConduction
variable = temperature
extra_vector_tags = 'ref'
[]
[heat_source]
type = NeutronHeatSource
variable = temperature
block = fuel
fission_rate = fission_rate
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[fissionrate]
type = MaterialRealAux
variable = fission_rate
property = fission_rate
block = fuel
execute_on = timestep_begin
[]
[burnup]
type = MaterialRealAux
variable = burnup
property = burnup
block = fuel
execute_on = timestep_begin
[]
[fast_neutron_flux]
type = MaterialRealAux
variable = fast_neutron_flux
property = fast_neutron_flux
execute_on = timestep_begin
[]
[fast_neutron_fluence]
type = MaterialRealAux
variable = fast_neutron_fluence
property = fast_neutron_fluence
execute_on = timestep_begin
[]
[]
[ThermalContact]
[thermal_contact]
type = GasGapHeatTransfer
variable = temperature
primary = IPyC_inner_boundary
secondary = buffer_outer_boundary
initial_moles = initial_moles
gas_released = 'fis_gas_released'
released_gas_types = 'Kr Xe'
released_fractions = '0.185 0.815'
tangential_tolerance = 1e-6
quadrature = false
min_gap = 1e-7
max_gap = 50e-6
gap_geometry_type = sphere
[]
[]
[BCs]
[no_disp_x]
type = DirichletBC
variable = disp_x
boundary = xzero
value = 0.0
[]
[freesurf_temp]
type = FunctionDirichletBC
variable = temperature
function = temp_bc
boundary = exterior
[]
[exterior_pressure_x]
type = Pressure
variable = disp_x
boundary = exterior
factor = 0.1e6
[]
[PlenumPressure]
[plenumPressure]
boundary = buffer_IPyC_boundary
startup_time = 1e4
initial_pressure = 0
R = 8.3145
output_initial_moles = initial_moles
temperature = ave_gas_temp
volume = 'gap_volume buffer_void_volume kernel_void_volume'
material_input = 'fis_gas_released'
output = gas_pressure
[]
[]
[]
[Materials]
[fission_rate]
type = GenericFunctionMaterial
prop_names = fission_rate
prop_values = fission_rate
block = fuel
[]
[fast_neutron_flux]
type = FastNeutronFlux
calculate_fluence = true
factor = 6.2425e+17
[]
[UCO_burnup]
type = TRISOBurnup
initial_density = ${initial_fuel_density}
block = fuel
[]
[UCO_thermal]
type = UCOThermal
block = fuel
temperature = temperature
[]
[UCO_elasticity_tensor]
type = UCOElasticityTensor
block = fuel
temperature = temperature
[]
[UCO_stress]
type = ComputeFiniteStrainElasticStress
block = fuel
[]
[UCO_VolumetricSwellingEigenstrain]
type = UCOVolumetricSwellingEigenstrain
block = fuel
eigenstrain_name = UCO_swelling_eigenstrain
[]
[fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = fuel
thermal_expansion_coeff = 10.0e-6
temperature = temperature
eigenstrain_name = UCO_TE_strain
[]
[UCO_density]
type = StrainAdjustedDensity
block = fuel
strain_free_density = ${initial_fuel_density}
[]
[fission_gas_release]
type = UCOFGR
block = fuel
average_grain_radius = 10e-6
temperature = temperature
triso_geometry = particle_geometry
cutoff_neutron_flux = 0.0
[]
[normal_vectors_triso]
type = NormalVectorsTRISO
block = 'buffer IPyC OPyC'
[]
[BAF_IPyC]
type = BaconAnisotropyFactor
initial_BAF = 1.0465
block = IPyC
[]
[BAF_OPyC]
type = BaconAnisotropyFactor
initial_BAF = 1.0429
block = OPyC
[]
[buffer_elasticity_tensor]
type = BufferElasticityTensor
block = buffer
temperature = temperature
[]
[buffer_stress]
type = BufferCEGACreep
block = buffer
temperature = temperature
[]
[buffer_thermal]
type = BufferThermal
block = buffer
initial_density = 1050.0
[]
[buffer_density]
type = StrainAdjustedDensity
block = buffer
strain_free_density = 1050.0
[]
[buffer_TE]
type = BufferThermalExpansionEigenstrain
block = buffer
eigenstrain_name = Buffer_TE_strain
temperature = temperature
[]
[buffer_IIDC]
type = BufferCEGAIrradiationEigenstrain
block = buffer
eigenstrain_name = Buffer_IIDC_strain
temperature = temperature
[]
[IPyC_elasticity_tensor]
type = PyCElasticityTensor
block = IPyC
temperature = temperature
[]
[IPyC_stress]
type = PyCCEGACreep
block = IPyC
creep_rate_scale_factor = 1
temperature = temperature
[]
[IPyC_thermal]
type = HeatConductionMaterial
block = IPyC
thermal_conductivity = 4.0
specific_heat = 720.0
[]
[IPyC_density]
type = GenericConstantMaterial
block = IPyC
prop_names = 'density'
prop_values = 1890
[]
[IPyC_IIDC]
type = PyCCEGAIrradiationEigenstrain
block = IPyC
eigenstrain_name = IPyC_IIDC_strain
temperature = temperature
irradiation_eigenstrain_scale_factor = 1
[]
[IPyC_TE]
type = PyCThermalExpansionEigenstrain
block = IPyC
eigenstrain_name = IPyC_TE_strain
temperature = temperature
[]
[SiC_elasticity_tensor]
type = MonolithicSiCElasticityTensor
block = SiC
temperature = temperature
elastic_modulus_model = miller
[]
[SiC_stress]
type = ComputeFiniteStrainElasticStress
block = SiC
[]
[SiC_thermal]
type = MonolithicSiCThermal
block = SiC
temperature = temperature
thermal_conductivity_model = miller
[]
[SiC_density]
type = StrainAdjustedDensity
block = SiC
strain_free_density = 3200.0
[]
[SiC_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = SiC
thermal_expansion_coeff = 4.9e-6
temperature = temperature
eigenstrain_name = SiC_thermal_eigenstrain
[]
[OPyC_elasticity_tensor]
type = PyCElasticityTensor
block = OPyC
temperature = temperature
initial_BAF = 1.0
[]
[OPyC_stress]
type = PyCCEGACreep
block = OPyC
creep_rate_scale_factor = 1
temperature = temperature
[]
[OPyC_thermal_conductivity]
type = HeatConductionMaterial
block = OPyC
thermal_conductivity = 4.0
specific_heat = 720.0
[]
[OPyC_density]
type = GenericConstantMaterial
block = OPyC
prop_names = 'density'
prop_values = 1900
[]
[OPyC_IIDC]
type = PyCCEGAIrradiationEigenstrain
block = OPyC
eigenstrain_name = OPyC_IIDC_strain
temperature = temperature
irradiation_eigenstrain_scale_factor = 1
[]
[OPyC_TE]
type = PyCThermalExpansionEigenstrain
block = OPyC
eigenstrain_name = OPyC_TE_strain
temperature = temperature
[]
[characteristic_strength_SiC]
type = GenericConstantMaterial
prop_values = '9640000'
block = SiC
prop_names = 'characteristic_strength'
[]
[characteristic_strength_PyC]
type = PyCCharacteristicStrength
temperature = temperature
X = 1.02
block = 'IPyC OPyC'
[]
[]
[Dampers]
[temp]
type = MaxIncrement
variable = temperature
max_increment = 100
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
nl_rel_tol = 5e-6
nl_abs_tol = 1e-8
nl_max_its = 20
l_tol = 1e-4
l_max_its = 50
#num_steps = 1
start_time = 0.0
end_time = 4.831315e7
dtmin = 1e-4
dt = 5e5
[]
[Postprocessors]
[ave_gas_temp]
type = ElementAverageValue
block = buffer
variable = temperature
execute_on = 'initial timestep_end'
[]
[fis_gas_released]
type = ElementIntegralMaterialProperty
mat_prop = fis_gas_released
block = fuel
use_displaced_mesh = false
execute_on = 'initial timestep_end'
[]
[gap_volume]
type = InternalVolume
boundary = buffer_IPyC_boundary
execute_on = 'initial linear'
use_displaced_mesh = true
[]
[buffer_void_volume]
type = VoidVolume
block = buffer
theoretical_density = 2250
execute_on = 'initial timestep_end'
use_displaced_mesh = true
[]
[kernel_th_density]
type = UCOTheoreticalDensity
execute_on = initial
[]
[kernel_void_volume]
type = VoidVolume
block = fuel
theoretical_density = kernel_th_density
execute_on = 'initial timestep_end'
use_displaced_mesh = true
[]
[particle_power]
type = ElementIntegralPower
variable = temperature
use_material_fission_rate = true
fission_rate_material = fission_rate
block = fuel
execute_on = 'initial timestep_end'
[]
[max_fluence]
type = ElementExtremeValue
variable = fast_neutron_fluence
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[max_burnup]
type = ElementExtremeValue
variable = burnup
block = fuel
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[SiC_stress]
type = ElementExtremeMaterialProperty
block = SiC
value_type = min
mat_prop = stress_yy
[]
[weibull_failure_probability_IPyC]
type = WeibullFailureProbability
block = IPyC
weibull_modulus = 9.5
characteristic_strength = characteristic_strength
[]
[weibull_failure_probability_SiC_crackedIPyC]
type = WeibullFailureProbabilityUsingCorrelation
block = SiC
weibull_modulus = 6
stress_name = stress_yy
high_fidelity_analysis_strength = 'high_fidelity_strength_crackedIPyC'
stress_correlation_function = 'stress_correlation_crackedIPyC'
[]
[weibull_failure_probability_SiC]
type = WeibullFailureProbabilityUsingCorrelation
block = SiC
weibull_modulus = 6
stress_name = stress_yy
high_fidelity_analysis_strength = 'high_fidelity_strength_asphericity'
stress_correlation_function = 'stress_correlation_asphericity'
stress_change_correlation_function = 'stress_change_correlation_asphericity'
[]
[]
[Outputs]
show = 'weibull_failure_probability_IPyC weibull_failure_probability_SiC weibull_failure_probability_SiC_crackedIPyC'
print_linear_residuals = false
time_step_interval = 1
csv = false
exodus = false
perf_graph = true
print_linear_converged_reason = false
print_nonlinear_converged_reason = false
[]