- IPyC_mesh_densityNumber of elements in the IPyC mesh.
C++ Type:unsigned int
Controllable:No
Description:Number of elements in the IPyC mesh.
- IPyC_thicknessThickness of IPyC layer.
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Thickness of IPyC layer.
- OPyC_mesh_densityNumber of elements in the OPyC mesh.
C++ Type:unsigned int
Controllable:No
Description:Number of elements in the OPyC mesh.
- OPyC_thicknessThickness of OPyC layer.
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Thickness of OPyC layer.
- SiC_mesh_densityNumber of elements in the SiC mesh.
C++ Type:unsigned int
Controllable:No
Description:Number of elements in the SiC mesh.
- SiC_thicknessThickness of SiC layer.
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Thickness of SiC layer.
- buffer_mesh_densityNumber of elements in the buffer mesh.
C++ Type:unsigned int
Controllable:No
Description:Number of elements in the buffer mesh.
- buffer_thicknessThickness of buffer layer.
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Thickness of buffer layer.
- kernel_mesh_densityNumber of elements in the kernel mesh.
C++ Type:unsigned int
Controllable:No
Description:Number of elements in the kernel mesh.
- kernel_radiusRadius of fuel kernel.
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Radius of fuel kernel.
TRISO1DFiveLayerMeshGenerator
Creates a 1D mesh for use with five-layer TRISO analysis.
Description
TRISO1DFiveLayerMeshGenerator creates a 1D mesh appropriate for use in TRISO analysis with five material blocks. By default, the blocks are named fuel, buffer, IPyC, SiC, and OPyC. The user supplies the radius of the fuel and thicknesses of the other materials. Numbers of radial elements per block are also supplied.
Sidesets are created at each mesh boundary. Numbering starts from the origin and counts outward. The pattern can be seen in Figure 1.
The bias parameters affect mesh density moving from left to right. For example, a bias value of 2 for a given block doubles element size going left to right, whereas a bias value of 0.5 cuts element size in half going left to right. The dual_bias parameters may be used to affect mesh density on both ends of the blocks. It is also applied left to right. When dual_bias is given, bias affects the first half of the elements, and dual_bias affects the right half of the elements. If the two biases are the same, the result will be the same as the original, single-value bias approach.
See also TRISO1DMeshGenerator.
The depiction below assumes that the blocks are named fuel, buffer, IPyC, SiC and OPyC in the input file. They can be named anything according to user preferences.

Figure 1: Pictorial line representation of the 1D spherical mesh created by TRISO1DMeshGenerator.
Example Input Syntax
[Mesh<<<{"href": "../../syntax/Mesh/index.html"}>>>]
coord_type = RSPHERICAL
[gen]
type = TRISO1DFiveLayerMeshGenerator<<<{"description": "Creates a 1D mesh for use with five-layer TRISO analysis.", "href": "TRISO1DFiveLayerMeshGenerator.html"}>>>
elem_type<<<{"description": "The type of element from libMesh to generate"}>>> = EDGE3
kernel_radius<<<{"description": "Radius of fuel kernel."}>>> = 2.485e-4
buffer_thickness<<<{"description": "Thickness of buffer layer."}>>> = 9.4e-5
IPyC_thickness<<<{"description": "Thickness of IPyC layer."}>>> = 4.1e-5
SiC_thickness<<<{"description": "Thickness of SiC layer."}>>> = 3.6e-5
OPyC_thickness<<<{"description": "Thickness of OPyC layer."}>>> = 4.0e-5
kernel_mesh_density<<<{"description": "Number of elements in the kernel mesh."}>>> = 6
buffer_mesh_density<<<{"description": "Number of elements in the buffer mesh."}>>> = 6
IPyC_mesh_density<<<{"description": "Number of elements in the IPyC mesh."}>>> = 6
SiC_mesh_density<<<{"description": "Number of elements in the SiC mesh."}>>> = 8
OPyC_mesh_density<<<{"description": "Number of elements in the OPyC mesh."}>>> = 6
[]
[](test/tests/triso_failure/triso_1d_ipyc_failure.i)Input Parameters
- IPyC_bias1Mesh bias for IPyC.
Default:1
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Mesh bias for IPyC.
- IPyC_dual_biasMesh dual bias for IPyC.
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Mesh dual bias for IPyC.
- OPyC_bias1Mesh bias for OPyC.
Default:1
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Mesh bias for OPyC.
- OPyC_dual_biasMesh dual bias for OPyC.
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Mesh dual bias for OPyC.
- SiC_bias1Mesh bias for SiC.
Default:1
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Mesh bias for SiC.
- SiC_dual_biasMesh dual bias for SiC.
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Mesh dual bias for SiC.
- block_namesfuel buffer IPyC SiC OPyC A list of names to be assigned to the mesh blocks.
Default:fuel buffer IPyC SiC OPyC
C++ Type:std::vector<std::string>
Controllable:No
Description:A list of names to be assigned to the mesh blocks.
- buffer_bias1Mesh bias for buffer.
Default:1
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Mesh bias for buffer.
- buffer_dual_biasMesh dual bias for buffer.
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Mesh dual bias for buffer.
- elem_typeEDGE3The type of element from libMesh to generate
Default:EDGE3
C++ Type:MooseEnum
Options:EDGE2, EDGE3
Controllable:No
Description:The type of element from libMesh to generate
- include_gapTrueWhether the buffer and IPyC will have separate nodes, allowing a gap to form.
Default:True
C++ Type:bool
Controllable:No
Description:Whether the buffer and IPyC will have separate nodes, allowing a gap to form.
- kernel_bias1Mesh bias for kernel.
Default:1
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Mesh bias for kernel.
- kernel_dual_biasMesh dual bias for kernel.
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Mesh dual bias for kernel.
Optional Parameters
- enableTrueSet the enabled status of the MooseObject.
Default:True
C++ Type:bool
Controllable:No
Description:Set the enabled status of the MooseObject.
- save_with_nameKeep the mesh from this mesh generator in memory with the name specified
C++ Type:std::string
Controllable:No
Description:Keep the mesh from this mesh generator in memory with the name specified
Advanced Parameters
- nemesisFalseWhether or not to output the mesh file in the nemesisformat (only if output = true)
Default:False
C++ Type:bool
Controllable:No
Description:Whether or not to output the mesh file in the nemesisformat (only if output = true)
- outputFalseWhether or not to output the mesh file after generating the mesh
Default:False
C++ Type:bool
Controllable:No
Description:Whether or not to output the mesh file after generating the mesh
- show_infoFalseWhether or not to show mesh info after generating the mesh (bounding box, element types, sidesets, nodesets, subdomains, etc)
Default:False
C++ Type:bool
Controllable:No
Description:Whether or not to show mesh info after generating the mesh (bounding box, element types, sidesets, nodesets, subdomains, etc)
Debugging Parameters
Input Files
- (test/tests/triso_failure/ad_ipyc_characteristic_strength.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)
- (test/tests/triso_failure/triso_1d_ipyc_failure.i)
- (assessment/TRISO/benchmark/IAEA_CRP-6/fuel_performance/case_9/case_9_1D.i)
- (assessment/TRISO/benchmark/IAEA_CRP-6/fuel_performance/case_13/case_13_1D.i)
- (test/tests/triso/mesh/mesh_five_layer.i)
- (test/tests/triso_failure/triso_1d_layer_stress_strength.i)
- (test/tests/triso_failure/triso_ipyc_characteristic_strength.i)
- (assessment/TRISO/validation/AGR-2/AGR-2_base.i)
- (assessment/TRISO/validation/AGR-1/AGR-1_base.i)
- (assessment/TRISO/benchmark/IAEA_CRP-6/fuel_performance/case_12/case_12_1D.i)
- (test/tests/triso_failure/triso_1d_pd_penetration.i)
- (examples/TRISO/failure_probability_monte_carlo/triso_1d_constant.i)
- (assessment/TRISO/validation/AGR-1/AGR-1_action.i)
(test/tests/triso_failure/triso_1d_ipyc_failure.i)
[GlobalParams]
density = 10810.0
flux_conversion_factor = 1.0
order = SECOND
family = LAGRANGE
displacements = 'disp_x'
[]
[Mesh]
coord_type = RSPHERICAL
[gen]
type = TRISO1DFiveLayerMeshGenerator
elem_type = EDGE3
kernel_radius = 2.485e-4
buffer_thickness = 9.4e-5
IPyC_thickness = 4.1e-5
SiC_thickness = 3.6e-5
OPyC_thickness = 4.0e-5
kernel_mesh_density = 6
buffer_mesh_density = 6
IPyC_mesh_density = 6
SiC_mesh_density = 8
OPyC_mesh_density = 6
[]
[]
[Variables]
[disp_x]
[]
[temp]
initial_condition = 1346.0
[]
[]
[Functions]
[radial_eigenstrain]
type = ParsedFunction
expression = 't*(4.52013e-4/6.0*t*t*t*t*t - 8.36313e-3/5.0*t*t*t*t + 5.67549e-2/4.0*t*t*t - 1.74247e-1/3.0*t*t + 2.62692e-1/2.0*t - 1.43234e-1)'
[]
[tangential_eigenstrain]
type = ParsedFunction
expression = 't*(1.30457e-4/4.0*t*t*t - 2.10029e-3/3.0*t*t + 9.07826e-3/2.0*t - 3.24737e-2)'
[]
[fission_rate]
type = ParsedFunction
expression = 7.75e19 # units of fissions/m**3
[]
[k_function]
type = ParsedFunction
expression = '4.93e-29'
[]
[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'
[]
[]
[AuxVariables]
[stress_yy]
order = CONSTANT
family = MONOMIAL
[]
[burnup]
block = fuel
initial_condition = 0.0
[]
[fission_rate]
block = fuel
[]
[]
[Physics/SolidMechanics/QuasiStatic]
strain = small
[fuel_buffer_sic]
block = 'fuel buffer SiC'
eigenstrain_names = thermal_strain
[]
[ipyc_opyc]
block = 'IPyC OPyC'
incremental = true
eigenstrain_names = 'thermal_strain pyc_eigenstrain'
[]
[]
[Kernels]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temp
[]
[heat]
type = HeatConduction
variable = temp
[]
[heat_source]
type = NeutronHeatSource
variable = temp
block = fuel
energy_per_fission = 3.2e-11
fission_rate = fission_rate
[]
[]
[AuxKernels]
[stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
execute_on = timestep_end
[]
[fission_rate]
type = FunctionAux
variable = fission_rate
block = fuel
function = fission_rate
[]
[burnup]
type = BurnupAux
variable = burnup
block = fuel
fission_rate = fission_rate
molecular_weight = 0.270 # units of kg/mole
[]
[]
[Contact]
[pellet_clad_mechanical]
primary = IPyC_inner_boundary
secondary = buffer_outer_boundary
penalty = 1e5
model = frictionless
formulation = kinematic
[]
[]
[ThermalContact]
[thermal_contact]
type = GasGapHeatTransfer
variable = temp
primary = IPyC_inner_boundary
secondary = buffer_outer_boundary
# coupling to a postprocessor
initial_moles = initial_moles
gas_released = 'fis_gas_released co_production'
released_gas_types = 'Kr Xe;
CO'
released_fractions = '0.153 0.847;
1'
tangential_tolerance = 1e-6
# contact_pressure_input = 10e6
# quadrature = true
[]
[]
[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 = DirichletBC
variable = temp
boundary = exterior
value = 1346.0
[]
# exterior and internal pressures
[exterior_pressure_x]
type = Pressure
use_displaced_mesh = false
variable = disp_x
boundary = exterior
factor = 0.1e6
[]
# apply gas pressure on buffer and IPyC boundaries
[PlenumPressure]
[plenumPressure]
use_displaced_mesh = false
boundary = buffer_IPyC_boundary
initial_pressure = 0
startup_time = 1.0e4
R = 8.3143
# coupling to post processor
output_initial_moles = initial_moles
temperature = ave_temp_interior
volume = volumeGas
material_input = 'fis_gas_released co_production'
output = plenum_pressure
[]
[]
[]
[Materials]
[max_principal_stress]
type = RankTwoInvariant
property_name = max_principal_stress
rank_two_tensor = stress
invariant = MaxPrincipal
[]
[flux]
type = FastNeutronFlux
calculate_fluence = true
factor = 1.708707e18
[]
[fission_gas_release]
type = UO2Sifgrs
block = fuel
temperature = temp
fission_rate = fission_rate
grain_radius_const = 5.0e-6
[]
[stress]
type = ComputeLinearElasticStress
block = 'fuel buffer SiC'
[]
[PyC_stress]
type = PyCCreep
block = 'IPyC OPyC'
k = k_function
poissons_ratio = 0.4
temperature = temp
[]
[normal_vectors_triso]
type = NormalVectorsTRISO
block = 'IPyC OPyC'
[]
[PyC_eigenstrain]
type = PyCIrradiationEigenstrain
block = 'IPyC OPyC'
radial_eigenstrain_function = radial_eigenstrain
tangential_eigenstrain_function = tangential_eigenstrain
eigenstrain_name = pyc_eigenstrain
[]
[fuel_thermal_strain]
type = ComputeThermalExpansionEigenstrain
block = fuel
thermal_expansion_coeff = 10e-6
stress_free_temperature = 1346.0
eigenstrain_name = thermal_strain
temperature = temp
[]
[PyC_thermal_strain]
type = ComputeThermalExpansionEigenstrain
block = 'buffer IPyC OPyC'
thermal_expansion_coeff = 5.5e-6
stress_free_temperature = 1346.0
eigenstrain_name = thermal_strain
temperature = temp
[]
[SiC_thermal_strain]
type = ComputeThermalExpansionEigenstrain
block = SiC
thermal_expansion_coeff = 4.9e-6
stress_free_temperature = 1346.0
eigenstrain_name = thermal_strain
temperature = temp
[]
[fuel_thermal]
type = UO2Thermal
thermal_conductivity_model = FINK_LUCUTA
block = fuel
temperature = temp
burnup = burnup
[]
[fuel_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = fuel
youngs_modulus = 2e8
poissons_ratio = 0.345
[]
[fuel_den]
type = StrainAdjustedDensity
block = fuel
strain_free_density = 10810.0
[]
[buffer_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = buffer
youngs_modulus = 2e8
poissons_ratio = 0.345
[]
[buffer_temp]
type = HeatConductionMaterial
block = buffer
thermal_conductivity = 0.5
specific_heat = 720.0
[]
[buffer_den]
type = StrainAdjustedDensity
strain_free_density = 1000
block = buffer
[]
[PyC_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = 'IPyC OPyC'
youngs_modulus = 3.96e10
poissons_ratio = 0.33
[]
[PyC_temp]
type = HeatConductionMaterial
block = 'IPyC OPyC'
thermal_conductivity = 4.0
specific_heat = 720.0
[]
[PyC_den]
type = StrainAdjustedDensity
strain_free_density = 1880.0
block = 'IPyC OPyC'
[]
[SiC_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = SiC
youngs_modulus = 3.7e11
poissons_ratio = 0.13
[]
[SiC_temp]
type = HeatConductionMaterial
block = SiC
thermal_conductivity = 13.9
specific_heat = 620.0
[]
[SiC_den]
type = StrainAdjustedDensity
strain_free_density = 3200.0
block = SiC
[]
[characteristic_strength_SiC]
type = GenericConstantMaterial
prop_values = '9640000'
prop_names = 'characteristic_strength'
block = SiC
[]
[characteristic_strength_PyC]
type = GenericConstantMaterial
prop_values = '964000'
prop_names = 'characteristic_strength'
block = 'IPyC OPyC'
[]
[]
[Dampers]
[temp]
type = MaxIncrement
variable = temp
max_increment = 50
[]
[]
[Debug]
show_var_residual_norms = true
[]
[Executioner]
type = Transient
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
solve_type = 'PJFNK'
nl_rel_tol = 5e-6
nl_abs_tol = 1e-10
nl_max_its = 15
l_tol = 1e-3
l_max_its = 50
start_time = 0.0
num_steps = 10
dtmax = 2e5
dtmin = 1
[TimeStepper]
type = IterationAdaptiveDT
dt = 20
optimal_iterations = 6
iteration_window = 2
linear_iteration_ratio = 100
[]
[]
[Postprocessors]
[dt]
type = TimestepSize
[]
[burnup]
type = ElementExtremeValue
block = fuel
variable = burnup
[]
[fis_gas_produced]
type = ElementIntegralFisGasGeneratedSifgrs
block = fuel
[]
[fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = fuel
[]
[volumeTotal]
type = InternalVolume
boundary = exterior
[]
[volumeFuel]
type = InternalVolume
boundary = fuel_outer_boundary
[]
[volumeGas]
type = InternalVolume
boundary = 'fuel_outer_boundary IPyC_inner_boundary'
addition = -5.53e-11
execute_on = 'initial timestep_end'
[]
[volumeBufferShell]
type = InternalVolume
boundary = buffer_IPyC_boundary
[]
[ave_temp_interior]
type = SideAverageValue
boundary = buffer_IPyC_boundary
variable = temp
execute_on = 'initial timestep_end'
[]
# Postprocessors for CO production
[total_fission_rate]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = fuel
energy_per_fission = 1.0
[]
[total_fissions]
type = TimeIntegratedPostprocessor
value = total_fission_rate
[]
[avg_surface_temp]
type = SideAverageValue
variable = temp
boundary = exterior
[]
[time_int_surf_temp]
type = TimeIntegratedPostprocessor
value = avg_surface_temp
[]
[co_production]
type = CarbonMonoxideProduction
total_fissions = total_fissions
time_integrated_triso_temperature = time_int_surf_temp
initial_enrichment = 0.14029
[]
[tang_SiC]
type = ElementalVariableValue
variable = stress_yy
elementid = 18
[]
[strength_SiC]
type = WeibullEffectiveMeanStrength
block = SiC
weibull_modulus = 6
[]
[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
[]
[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
[]
[]
[Outputs]
print_linear_residuals = true
time_step_interval = 1
csv = true
perf_graph = true
[]
(test/tests/triso_failure/ad_ipyc_characteristic_strength.i)
[GlobalParams]
density = 10810.0
flux_conversion_factor = 1.0
order = SECOND
family = LAGRANGE
displacements = 'disp_x'
[]
[Mesh]
coord_type = RSPHERICAL
[gen]
type = TRISO1DFiveLayerMeshGenerator
elem_type = EDGE3
kernel_radius = 2.485e-4
buffer_thickness = 9.4e-5
IPyC_thickness = 4.1e-5
SiC_thickness = 3.6e-5
OPyC_thickness = 4.0e-5
kernel_mesh_density = 6
buffer_mesh_density = 6
IPyC_mesh_density = 6
SiC_mesh_density = 8
OPyC_mesh_density = 6
[]
[]
[Variables]
[disp_x]
[]
[temp]
initial_condition = 1346.0
[]
[]
[Functions]
[radial_eigenstrain]
type = ParsedFunction
expression = 't*(4.52013e-4/6.0*t*t*t*t*t - 8.36313e-3/5.0*t*t*t*t + 5.67549e-2/4.0*t*t*t - 1.74247e-1/3.0*t*t + 2.62692e-1/2.0*t - 1.43234e-1)'
[]
[tangential_eigenstrain]
type = ParsedFunction
expression = 't*(1.30457e-4/4.0*t*t*t - 2.10029e-3/3.0*t*t + 9.07826e-3/2.0*t - 3.24737e-2)'
[]
[fission_rate]
type = ParsedFunction
expression = 7.75e19 # units of fissions/m**3
[]
[k_function]
type = ParsedFunction
expression = '4.93e-29'
[]
[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'
[]
[]
[AuxVariables]
[stress_yy]
order = CONSTANT
family = MONOMIAL
[]
[burnup]
block = fuel
initial_condition = 0.0
[]
[fission_rate]
block = fuel
[]
[]
[Physics/SolidMechanics/QuasiStatic]
strain = small
[fuel_buffer_sic]
block = 'fuel buffer SiC'
eigenstrain_names = thermal_strain
use_automatic_differentiation = true
[]
[ipyc_opyc]
block = 'IPyC OPyC'
incremental = true
eigenstrain_names = 'thermal_strain pyc_eigenstrain'
use_automatic_differentiation = true
[]
[]
[Kernels]
[heat_ie]
type = ADHeatConductionTimeDerivative
variable = temp
[]
[heat]
type = ADHeatConduction
variable = temp
[]
[heat_source]
type = ADNeutronHeatSource
variable = temp
block = fuel
energy_per_fission = 3.2e-11
fission_rate = fission_rate
[]
[]
[AuxKernels]
[stress_yy]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
execute_on = timestep_end
[]
[fission_rate]
type = FunctionAux
variable = fission_rate
block = fuel
function = fission_rate
[]
[burnup]
type = BurnupAux
variable = burnup
block = fuel
fission_rate = fission_rate
molecular_weight = 0.270 # units of kg/mole
[]
[]
[Contact]
[pellet_clad_mechanical]
primary = IPyC_inner_boundary
secondary = buffer_outer_boundary
penalty = 1e5
model = frictionless
formulation = kinematic
[]
[]
[ThermalContact]
[thermal_contact]
type = GasGapHeatTransfer
variable = temp
primary = IPyC_inner_boundary
secondary = buffer_outer_boundary
# coupling to a postprocessor
initial_moles = initial_moles
gas_released = 'fis_gas_released co_production'
released_gas_types = 'Kr Xe;
CO'
released_fractions = '0.153 0.847;
1'
tangential_tolerance = 1e-6
use_automatic_differentiation = true
[]
[]
[BCs]
# pin particle along symmetry planes
[no_disp_x]
type = ADDirichletBC
variable = disp_x
boundary = xzero
value = 0.0
[]
# fix temperature on free surface
[freesurf_temp]
type = ADDirichletBC
variable = temp
boundary = exterior
value = 1346.0
[]
# exterior and internal pressures
[exterior_pressure_x]
type = ADPressure
use_displaced_mesh = false
variable = disp_x
boundary = exterior
factor = 0.1e6
[]
# apply gas pressure on buffer and IPyC boundaries
[PlenumPressure]
[plenumPressure]
use_displaced_mesh = false
boundary = buffer_IPyC_boundary
initial_pressure = 0
startup_time = 1.0e4
R = 8.3143
# coupling to post processor
output_initial_moles = initial_moles
temperature = ave_temp_interior
volume = volumeGas
material_input = 'fis_gas_released co_production'
output = plenum_pressure
use_automatic_differentiation = true
[]
[]
[]
[Materials]
[max_principal_stress]
type = ADRankTwoInvariant
property_name = max_principal_stress
rank_two_tensor = stress
invariant = MaxPrincipal
[]
[flux]
type = ADFastNeutronFlux
calculate_fluence = true
factor = 1.708707e18
[]
[fission_gas_release]
type = ADUO2Sifgrs
block = fuel
temperature = temp
fission_rate = fission_rate
grain_radius_const = 5.0e-6
[]
[stress]
type = ADComputeLinearElasticStress
block = 'fuel buffer SiC'
[]
[PyC_stress]
type = ADPyCCreep
block = 'IPyC OPyC'
k = k_function
poissons_ratio = 0.4
temperature = temp
[]
[normal_vectors_triso]
type = NormalVectorsTRISO
block = 'IPyC OPyC'
[]
[PyC_eigenstrain]
type = ADPyCIrradiationEigenstrain
block = 'IPyC OPyC'
radial_eigenstrain_function = radial_eigenstrain
tangential_eigenstrain_function = tangential_eigenstrain
eigenstrain_name = pyc_eigenstrain
[]
[fuel_thermal_strain]
type = ADComputeThermalExpansionEigenstrain
block = fuel
thermal_expansion_coeff = 10e-6
stress_free_temperature = 1346.0
eigenstrain_name = thermal_strain
temperature = temp
[]
[PyC_thermal_strain]
type = ADComputeThermalExpansionEigenstrain
block = 'buffer IPyC OPyC'
thermal_expansion_coeff = 5.5e-6
stress_free_temperature = 1346.0
eigenstrain_name = thermal_strain
temperature = temp
[]
[SiC_thermal_strain]
type = ADComputeThermalExpansionEigenstrain
block = SiC
thermal_expansion_coeff = 4.9e-6
stress_free_temperature = 1346.0
eigenstrain_name = thermal_strain
temperature = temp
[]
[fuel_thermal]
type = ADUO2Thermal
thermal_conductivity_model = FINK_LUCUTA
block = fuel
temperature = temp
burnup = burnup
[]
[fuel_elasticity_tensor]
type = ADComputeIsotropicElasticityTensor
block = fuel
youngs_modulus = 2e8
poissons_ratio = 0.345
[]
[fuel_den]
type = ADStrainAdjustedDensity
block = fuel
strain_free_density = 10810.0
[]
[buffer_elasticity_tensor]
type = ADComputeIsotropicElasticityTensor
block = buffer
youngs_modulus = 2e8
poissons_ratio = 0.345
[]
[buffer_temp]
type = ADHeatConductionMaterial
block = buffer
thermal_conductivity = 0.5
specific_heat = 720.0
[]
[buffer_den]
type = ADStrainAdjustedDensity
strain_free_density = 1000
block = buffer
[]
[PyC_elasticity_tensor]
type = ADComputeIsotropicElasticityTensor
block = 'IPyC OPyC'
youngs_modulus = 3.96e10
poissons_ratio = 0.33
[]
[PyC_temp]
type = ADHeatConductionMaterial
block = 'IPyC OPyC'
thermal_conductivity = 4.0
specific_heat = 720.0
[]
[PyC_den]
type = ADStrainAdjustedDensity
strain_free_density = 1880.0
block = 'IPyC OPyC'
[]
[SiC_elasticity_tensor]
type = ADComputeIsotropicElasticityTensor
block = SiC
youngs_modulus = 3.7e11
poissons_ratio = 0.13
[]
[SiC_temp]
type = ADHeatConductionMaterial
block = SiC
thermal_conductivity = 13.9
specific_heat = 620.0
[]
[SiC_den]
type = ADStrainAdjustedDensity
strain_free_density = 3200.0
block = SiC
[]
[characteristic_strength_SiC]
type = ADGenericConstantMaterial
prop_values = '9640000'
block = SiC
prop_names = 'characteristic_strength'
[]
[characteristic_strength_PyC]
type = ADPyCCharacteristicStrength
temperature = temp
X = 1.02
flux_conversion_factor = 0.85
block = 'IPyC OPyC'
[]
[]
[Dampers]
[temp]
type = MaxIncrement
variable = temp
max_increment = 50
[]
[]
[Debug]
show_var_residual_norms = true
[]
[Executioner]
type = Transient
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
solve_type = 'PJFNK'
nl_rel_tol = 5e-8
nl_abs_tol = 1e-10
nl_max_its = 15
l_tol = 1e-3
l_max_its = 50
start_time = 0.0
num_steps = 10
dtmax = 2e5
dtmin = 1
[TimeStepper]
type = IterationAdaptiveDT
dt = 20
optimal_iterations = 6
iteration_window = 2
linear_iteration_ratio = 100
[]
[]
[Postprocessors]
[dt]
type = TimestepSize
[]
[burnup]
type = ElementExtremeValue
block = fuel
variable = burnup
[]
[fis_gas_produced]
type = ADElementIntegralFisGasGeneratedSifgrs
block = fuel
[]
[fis_gas_released]
type = ADElementIntegralFisGasReleasedSifgrs
block = fuel
[]
[volumeTotal]
type = InternalVolume
boundary = exterior
[]
[volumeFuel]
type = InternalVolume
boundary = fuel_outer_boundary
[]
[volumeGas]
type = InternalVolume
boundary = 'fuel_outer_boundary IPyC_inner_boundary'
addition = -5.53e-11
execute_on = 'initial timestep_end'
[]
[volumeBufferShell]
type = InternalVolume
boundary = buffer_IPyC_boundary
[]
[ave_temp_interior]
type = SideAverageValue
boundary = buffer_IPyC_boundary
variable = temp
execute_on = 'initial timestep_end'
[]
# Postprocessors for CO production
[total_fission_rate]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = fuel
energy_per_fission = 1.0
[]
[total_fissions]
type = TimeIntegratedPostprocessor
value = total_fission_rate
[]
[avg_surface_temp]
type = SideAverageValue
variable = temp
boundary = exterior
[]
[time_int_surf_temp]
type = TimeIntegratedPostprocessor
value = avg_surface_temp
[]
[co_production]
type = CarbonMonoxideProduction
total_fissions = total_fissions
time_integrated_triso_temperature = time_int_surf_temp
initial_enrichment = 0.14029
[]
[tang_SiC]
type = ElementalVariableValue
variable = stress_yy
elementid = 18
[]
[strength_SiC]
type = ADWeibullEffectiveMeanStrength
block = SiC
weibull_modulus = 6
[]
[failure_indicator_SiC]
type = ADWeibullFailureOutputUsingCorrelation
block = SiC
weibull_modulus = 6
stress_name = max_principal_stress
effective_mean_strength = strength_SiC
[]
[strength_IPyC]
type = ADWeibullEffectiveMeanStrength
block = IPyC
weibull_modulus = 6
[]
[failure_indicator_IPyC]
type = ADWeibullFailureOutputUsingCorrelation
block = IPyC
weibull_modulus = 6
stress_name = max_principal_stress
effective_mean_strength = strength_IPyC
[]
[strength_OPyC]
type = ADWeibullEffectiveMeanStrength
block = OPyC
weibull_modulus = 6
[]
[failure_indicator_OPyC]
type = ADWeibullFailureOutputUsingCorrelation
block = OPyC
weibull_modulus = 6
stress_name = max_principal_stress
effective_mean_strength = strength_OPyC
[]
[failure_indicator_SiC_crackedIPyC]
type = ADWeibullFailureOutputUsingCorrelation
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 = ADWeibullFailureOutputUsingCorrelation
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
[]
[characteristic_strength]
type = ADElementExtremeMaterialProperty
mat_prop = characteristic_strength
block = IPyC
value_type = max
[]
[flence]
type = ADElementExtremeMaterialProperty
mat_prop = fast_neutron_fluence
block = IPyC
value_type = max
[]
[]
[Outputs]
file_base = triso_ipyc_characteristic_strength_out
print_linear_residuals = true
time_step_interval = 1
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'
[]
[]
(test/tests/triso_failure/triso_1d_ipyc_failure.i)
[GlobalParams]
density = 10810.0
flux_conversion_factor = 1.0
order = SECOND
family = LAGRANGE
displacements = 'disp_x'
[]
[Mesh]
coord_type = RSPHERICAL
[gen]
type = TRISO1DFiveLayerMeshGenerator
elem_type = EDGE3
kernel_radius = 2.485e-4
buffer_thickness = 9.4e-5
IPyC_thickness = 4.1e-5
SiC_thickness = 3.6e-5
OPyC_thickness = 4.0e-5
kernel_mesh_density = 6
buffer_mesh_density = 6
IPyC_mesh_density = 6
SiC_mesh_density = 8
OPyC_mesh_density = 6
[]
[]
[Variables]
[disp_x]
[]
[temp]
initial_condition = 1346.0
[]
[]
[Functions]
[radial_eigenstrain]
type = ParsedFunction
expression = 't*(4.52013e-4/6.0*t*t*t*t*t - 8.36313e-3/5.0*t*t*t*t + 5.67549e-2/4.0*t*t*t - 1.74247e-1/3.0*t*t + 2.62692e-1/2.0*t - 1.43234e-1)'
[]
[tangential_eigenstrain]
type = ParsedFunction
expression = 't*(1.30457e-4/4.0*t*t*t - 2.10029e-3/3.0*t*t + 9.07826e-3/2.0*t - 3.24737e-2)'
[]
[fission_rate]
type = ParsedFunction
expression = 7.75e19 # units of fissions/m**3
[]
[k_function]
type = ParsedFunction
expression = '4.93e-29'
[]
[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'
[]
[]
[AuxVariables]
[stress_yy]
order = CONSTANT
family = MONOMIAL
[]
[burnup]
block = fuel
initial_condition = 0.0
[]
[fission_rate]
block = fuel
[]
[]
[Physics/SolidMechanics/QuasiStatic]
strain = small
[fuel_buffer_sic]
block = 'fuel buffer SiC'
eigenstrain_names = thermal_strain
[]
[ipyc_opyc]
block = 'IPyC OPyC'
incremental = true
eigenstrain_names = 'thermal_strain pyc_eigenstrain'
[]
[]
[Kernels]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temp
[]
[heat]
type = HeatConduction
variable = temp
[]
[heat_source]
type = NeutronHeatSource
variable = temp
block = fuel
energy_per_fission = 3.2e-11
fission_rate = fission_rate
[]
[]
[AuxKernels]
[stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
execute_on = timestep_end
[]
[fission_rate]
type = FunctionAux
variable = fission_rate
block = fuel
function = fission_rate
[]
[burnup]
type = BurnupAux
variable = burnup
block = fuel
fission_rate = fission_rate
molecular_weight = 0.270 # units of kg/mole
[]
[]
[Contact]
[pellet_clad_mechanical]
primary = IPyC_inner_boundary
secondary = buffer_outer_boundary
penalty = 1e5
model = frictionless
formulation = kinematic
[]
[]
[ThermalContact]
[thermal_contact]
type = GasGapHeatTransfer
variable = temp
primary = IPyC_inner_boundary
secondary = buffer_outer_boundary
# coupling to a postprocessor
initial_moles = initial_moles
gas_released = 'fis_gas_released co_production'
released_gas_types = 'Kr Xe;
CO'
released_fractions = '0.153 0.847;
1'
tangential_tolerance = 1e-6
# contact_pressure_input = 10e6
# quadrature = true
[]
[]
[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 = DirichletBC
variable = temp
boundary = exterior
value = 1346.0
[]
# exterior and internal pressures
[exterior_pressure_x]
type = Pressure
use_displaced_mesh = false
variable = disp_x
boundary = exterior
factor = 0.1e6
[]
# apply gas pressure on buffer and IPyC boundaries
[PlenumPressure]
[plenumPressure]
use_displaced_mesh = false
boundary = buffer_IPyC_boundary
initial_pressure = 0
startup_time = 1.0e4
R = 8.3143
# coupling to post processor
output_initial_moles = initial_moles
temperature = ave_temp_interior
volume = volumeGas
material_input = 'fis_gas_released co_production'
output = plenum_pressure
[]
[]
[]
[Materials]
[max_principal_stress]
type = RankTwoInvariant
property_name = max_principal_stress
rank_two_tensor = stress
invariant = MaxPrincipal
[]
[flux]
type = FastNeutronFlux
calculate_fluence = true
factor = 1.708707e18
[]
[fission_gas_release]
type = UO2Sifgrs
block = fuel
temperature = temp
fission_rate = fission_rate
grain_radius_const = 5.0e-6
[]
[stress]
type = ComputeLinearElasticStress
block = 'fuel buffer SiC'
[]
[PyC_stress]
type = PyCCreep
block = 'IPyC OPyC'
k = k_function
poissons_ratio = 0.4
temperature = temp
[]
[normal_vectors_triso]
type = NormalVectorsTRISO
block = 'IPyC OPyC'
[]
[PyC_eigenstrain]
type = PyCIrradiationEigenstrain
block = 'IPyC OPyC'
radial_eigenstrain_function = radial_eigenstrain
tangential_eigenstrain_function = tangential_eigenstrain
eigenstrain_name = pyc_eigenstrain
[]
[fuel_thermal_strain]
type = ComputeThermalExpansionEigenstrain
block = fuel
thermal_expansion_coeff = 10e-6
stress_free_temperature = 1346.0
eigenstrain_name = thermal_strain
temperature = temp
[]
[PyC_thermal_strain]
type = ComputeThermalExpansionEigenstrain
block = 'buffer IPyC OPyC'
thermal_expansion_coeff = 5.5e-6
stress_free_temperature = 1346.0
eigenstrain_name = thermal_strain
temperature = temp
[]
[SiC_thermal_strain]
type = ComputeThermalExpansionEigenstrain
block = SiC
thermal_expansion_coeff = 4.9e-6
stress_free_temperature = 1346.0
eigenstrain_name = thermal_strain
temperature = temp
[]
[fuel_thermal]
type = UO2Thermal
thermal_conductivity_model = FINK_LUCUTA
block = fuel
temperature = temp
burnup = burnup
[]
[fuel_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = fuel
youngs_modulus = 2e8
poissons_ratio = 0.345
[]
[fuel_den]
type = StrainAdjustedDensity
block = fuel
strain_free_density = 10810.0
[]
[buffer_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = buffer
youngs_modulus = 2e8
poissons_ratio = 0.345
[]
[buffer_temp]
type = HeatConductionMaterial
block = buffer
thermal_conductivity = 0.5
specific_heat = 720.0
[]
[buffer_den]
type = StrainAdjustedDensity
strain_free_density = 1000
block = buffer
[]
[PyC_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = 'IPyC OPyC'
youngs_modulus = 3.96e10
poissons_ratio = 0.33
[]
[PyC_temp]
type = HeatConductionMaterial
block = 'IPyC OPyC'
thermal_conductivity = 4.0
specific_heat = 720.0
[]
[PyC_den]
type = StrainAdjustedDensity
strain_free_density = 1880.0
block = 'IPyC OPyC'
[]
[SiC_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = SiC
youngs_modulus = 3.7e11
poissons_ratio = 0.13
[]
[SiC_temp]
type = HeatConductionMaterial
block = SiC
thermal_conductivity = 13.9
specific_heat = 620.0
[]
[SiC_den]
type = StrainAdjustedDensity
strain_free_density = 3200.0
block = SiC
[]
[characteristic_strength_SiC]
type = GenericConstantMaterial
prop_values = '9640000'
prop_names = 'characteristic_strength'
block = SiC
[]
[characteristic_strength_PyC]
type = GenericConstantMaterial
prop_values = '964000'
prop_names = 'characteristic_strength'
block = 'IPyC OPyC'
[]
[]
[Dampers]
[temp]
type = MaxIncrement
variable = temp
max_increment = 50
[]
[]
[Debug]
show_var_residual_norms = true
[]
[Executioner]
type = Transient
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
solve_type = 'PJFNK'
nl_rel_tol = 5e-6
nl_abs_tol = 1e-10
nl_max_its = 15
l_tol = 1e-3
l_max_its = 50
start_time = 0.0
num_steps = 10
dtmax = 2e5
dtmin = 1
[TimeStepper]
type = IterationAdaptiveDT
dt = 20
optimal_iterations = 6
iteration_window = 2
linear_iteration_ratio = 100
[]
[]
[Postprocessors]
[dt]
type = TimestepSize
[]
[burnup]
type = ElementExtremeValue
block = fuel
variable = burnup
[]
[fis_gas_produced]
type = ElementIntegralFisGasGeneratedSifgrs
block = fuel
[]
[fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = fuel
[]
[volumeTotal]
type = InternalVolume
boundary = exterior
[]
[volumeFuel]
type = InternalVolume
boundary = fuel_outer_boundary
[]
[volumeGas]
type = InternalVolume
boundary = 'fuel_outer_boundary IPyC_inner_boundary'
addition = -5.53e-11
execute_on = 'initial timestep_end'
[]
[volumeBufferShell]
type = InternalVolume
boundary = buffer_IPyC_boundary
[]
[ave_temp_interior]
type = SideAverageValue
boundary = buffer_IPyC_boundary
variable = temp
execute_on = 'initial timestep_end'
[]
# Postprocessors for CO production
[total_fission_rate]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = fuel
energy_per_fission = 1.0
[]
[total_fissions]
type = TimeIntegratedPostprocessor
value = total_fission_rate
[]
[avg_surface_temp]
type = SideAverageValue
variable = temp
boundary = exterior
[]
[time_int_surf_temp]
type = TimeIntegratedPostprocessor
value = avg_surface_temp
[]
[co_production]
type = CarbonMonoxideProduction
total_fissions = total_fissions
time_integrated_triso_temperature = time_int_surf_temp
initial_enrichment = 0.14029
[]
[tang_SiC]
type = ElementalVariableValue
variable = stress_yy
elementid = 18
[]
[strength_SiC]
type = WeibullEffectiveMeanStrength
block = SiC
weibull_modulus = 6
[]
[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
[]
[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
[]
[]
[Outputs]
print_linear_residuals = true
time_step_interval = 1
csv = true
perf_graph = true
[]
(assessment/TRISO/benchmark/IAEA_CRP-6/fuel_performance/case_9/case_9_1D.i)
#
# This case is taken from Advances in high temperature gas cooled reactor fuel
# technology. Technical Report IAEA-TECDOC-1674, International Atomic Energy
# Agency, 2012.
#
# The correctness of the results computed by this case must be checked against
# results from the IAEA benchmark.
#
initial_fuel_density = 10840.0
[GlobalParams]
density = ${initial_fuel_density} # kg/m^3
flux_conversion_factor = 1.0
order = SECOND
family = LAGRANGE
displacements = 'disp_x'
[]
[Mesh]
coord_type = RSPHERICAL
[gen]
type = TRISO1DFiveLayerMeshGenerator
elem_type = EDGE3
kernel_radius = 272e-6
buffer_thickness = 97e-6
IPyC_thickness = 33e-6
SiC_thickness = 34e-6
OPyC_thickness = 39e-6
kernel_mesh_density = 6
buffer_mesh_density = 6
IPyC_mesh_density = 6
SiC_mesh_density = 8
OPyC_mesh_density = 6
block_names = 'fuel buffer IPyC SiC OPyC'
[]
[]
[Variables]
[disp_x]
[]
[temperature]
initial_condition = 1576.0
[]
[]
[Functions]
[radial_eigenstrain]
type = ParsedFunction
expression = 't*(4.52013e-4/6.0*t*t*t*t*t - 8.36313e-3/5.0*t*t*t*t + 5.67549e-2/4.0*t*t*t - 1.74247e-1/3.0*t*t + 2.62692e-1/2.0*t - 1.43234e-1)'
[]
[tangential_eigenstrain]
type = ParsedFunction
expression = 't*(1.30457e-4/4.0*t*t*t - 2.10029e-3/3.0*t*t + 9.07826e-3/2.0*t - 3.24737e-2)'
[]
[fission_rate]
type = ParsedFunction
expression = 1.5060805e20 # units of fissions/m**3/s
[]
[k_function]
type = ParsedFunction
expression = '4.93e-29'
[]
[]
[AuxVariables]
[stress_yy]
order = CONSTANT
family = MONOMIAL
[]
[burnup]
block = fuel
initial_condition = 0.0
[]
[fission_rate]
block = fuel
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[IPyC_OPyC]
block = 'IPyC OPyC'
strain = finite
eigenstrain_names = 'thermal_strain pyc_eigenstrain'
[]
[rest]
block = 'fuel buffer SiC'
strain = finite
eigenstrain_names = thermal_strain
[]
[]
[Kernels]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temperature
[]
[heat]
type = HeatConduction
variable = temperature
[]
[heat_source]
type = NeutronHeatSource
variable = temperature
block = fuel
energy_per_fission = 3.2e-11 # units of J/fission
fission_rate = fission_rate
[]
[]
[AuxKernels]
[stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
execute_on = timestep_end
[]
[fission_rate]
type = FunctionAux
variable = fission_rate
block = fuel
function = fission_rate
[]
[burnup]
type = BurnupAux
variable = burnup
block = fuel
fission_rate = fission_rate
molecular_weight = 0.270 # units of kg/mole
[]
[]
[Contact]
[pellet_clad_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
gas_released = 'fis_gas_released co_production' # coupling to postprocessors which supply the fission gas addition, co addition
released_gas_types = 'Kr Xe;
CO'
released_fractions = '0.153 0.847;
1'
tangential_tolerance = 1e-6
# contact_pressure_input = 10e6
# quadrature = true
[]
[]
[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_temperature]
type = DirichletBC
variable = temperature
boundary = exterior
value = 1576.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 = 0
startup_time = 1.0e4
R = 8.3143
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 = volumeGas # coupling to post processor to get gas volume
material_input = 'fis_gas_released co_production' # coupling to post processor to get fission gas added, co added
output = plenum_pressure # coupling to post processor to output plenum/gap pressure
[]
[]
[]
[Materials]
[flux]
type = FastNeutronFlux
calculate_fluence = true
factor = 2.730961e18 # n/m^2-sec
[]
[fission_gas_release] # Sifgr fission gas release mode
type = UO2Sifgrs
block = fuel
temperature = temperature
fission_rate = fission_rate # coupling to fission_rate aux variable
grain_radius_const = 5.0e-6
[]
[stress]
type = ComputeFiniteStrainElasticStress
block = 'fuel buffer SiC'
[]
[PyC_stress]
type = PyCCreep
block = 'IPyC OPyC'
k = k_function
poissons_ratio = 0.4
temperature = temperature
[]
[normal_vectors_triso]
type = NormalVectorsTRISO
block = 'IPyC OPyC'
[]
[PyC_eigenstrain]
type = PyCIrradiationEigenstrain
block = 'IPyC OPyC'
radial_eigenstrain_function = radial_eigenstrain
tangential_eigenstrain_function = tangential_eigenstrain
eigenstrain_name = pyc_eigenstrain
[]
[fuel_thermal_strain]
type = ComputeThermalExpansionEigenstrain
block = fuel
thermal_expansion_coeff = 10e-6
stress_free_temperature = 1576.0
eigenstrain_name = thermal_strain
temperature = temperature
[]
[PyC_thermal_strain]
type = ComputeThermalExpansionEigenstrain
block = 'buffer IPyC OPyC'
thermal_expansion_coeff = 5.5e-6
stress_free_temperature = 1576.0
eigenstrain_name = thermal_strain
temperature = temperature
[]
[SiC_thermal_strain]
type = ComputeThermalExpansionEigenstrain
block = SiC
thermal_expansion_coeff = 4.9e-6
stress_free_temperature = 1576.0
eigenstrain_name = thermal_strain
temperature = temperature
[]
[fuel_thermal]
type = UO2Thermal
thermal_conductivity_model = FINK_LUCUTA
block = fuel
temperature = temperature
burnup = burnup
[]
[fuel_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = fuel
youngs_modulus = 2e8
poissons_ratio = 0.345
[]
[fuel_den]
type = StrainAdjustedDensity
block = fuel
strain_free_density = ${initial_fuel_density}
[]
[buffer_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = buffer
youngs_modulus = 2e8
poissons_ratio = 0.345
[]
[buffer_temperature]
type = HeatConductionMaterial
block = buffer
thermal_conductivity = 0.5 # J/m-s-K
specific_heat = 720.0 # J/kg-K
[]
[buffer_den]
type = StrainAdjustedDensity
strain_free_density = 1100 #kg/m^3
block = buffer
[]
[PyC_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = 'IPyC OPyC'
youngs_modulus = 3.96e10
poissons_ratio = 0.33
[]
[PyC_temperature]
type = HeatConductionMaterial
block = 'IPyC OPyC'
thermal_conductivity = 4.0 # J/m-s-K
specific_heat = 720.0 # J/kg-K
[]
[PyC_den]
type = StrainAdjustedDensity
strain_free_density = 1850.0 # kg/m^3
block = 'IPyC OPyC'
[]
[SiC_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = SiC
youngs_modulus = 3.7e11
poissons_ratio = 0.13
[]
[SiC_temperature]
type = HeatConductionMaterial
block = SiC
thermal_conductivity = 13.9 # J/m-s-K
specific_heat = 620.0 # J/kg-K
[]
[SiC_den]
type = StrainAdjustedDensity
strain_free_density = 3200.0 # kg/m^3
block = SiC
[]
[]
[Dampers]
[temperature]
type = MaxIncrement
variable = temperature
max_increment = 50
[]
[]
[Debug]
show_var_residual_norms = true
[]
[Executioner]
type = Transient
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
solve_type = 'PJFNK'
nl_rel_tol = 1e-7
nl_abs_tol = 1e-10
nl_max_its = 15
l_tol = 1e-3
l_max_its = 50
start_time = 0.0
end_time = 7689600
dtmax = 2e5
dtmin = 1
[TimeStepper]
type = IterationAdaptiveDT
dt = 20
optimal_iterations = 6
iteration_window = 2
linear_iteration_ratio = 100
[]
[]
[Postprocessors]
[burnup]
type = ElementExtremeValue
block = fuel
variable = burnup
[]
[fis_gas_produced] # fission gas produced (moles)
type = ElementIntegralFisGasGeneratedSifgrs
block = fuel
[]
[fis_gas_released] # fission gas released to plenum (moles)
type = ElementIntegralFisGasReleasedSifgrs
block = fuel
[]
[volumeTotal]
type = InternalVolume
boundary = exterior
[]
[volumeFuel]
type = InternalVolume
boundary = fuel_outer_boundary
[]
[volumeGas]
type = InternalVolume
boundary = 'fuel_outer_boundary IPyC_inner_boundary'
# ro = 369e-6
# ri = 272e-6
# vb = 4/3*pi*(ro^3-ri^3) = 1.26e-10
# buffer density = 1100
# PyC density = 1850
# fill ratio = 1100/1850
# vb*1100/1850 = 7.50e-11
# Must remove 7.50e-11 m^3 from the volume
addition = -7.50e-11
execute_on = 'initial timestep_end'
[]
[volumeBufferShell]
type = InternalVolume
boundary = buffer_IPyC_boundary
[]
[ave_temp_interior]
type = SideAverageValue
boundary = buffer_IPyC_boundary
variable = temperature
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
[]
[total_fissions]
type = TimeIntegratedPostprocessor
value = total_fission_rate
[]
[avg_surface_temp]
type = SideAverageValue
variable = temperature
boundary = exterior
[]
[time_int_surf_temp]
type = TimeIntegratedPostprocessor
value = avg_surface_temp
[]
[co_production]
type = CarbonMonoxideProduction
total_fissions = total_fissions
time_integrated_triso_temperature = time_int_surf_temp
initial_enrichment = 0.14029
[]
[tang_SiC]
type = ElementalVariableValue
variable = stress_yy
elementid = 18
[]
[]
[PerformanceMetricOutputs]
[]
[Outputs]
print_linear_residuals = true
time_step_interval = 1
exodus = true
csv = true
perf_graph = true
[]
(assessment/TRISO/benchmark/IAEA_CRP-6/fuel_performance/case_13/case_13_1D.i)
#
# This case is taken from Advances in high temperature gas cooled reactor fuel
# technology. Technical Report IAEA-TECDOC-1674, International Atomic Energy
# Agency, 2012.
#
# The correctness of the results computed by this case must be checked against
# results from the IAEA benchmark.
#
initial_fuel_density = 10810.0
[GlobalParams]
density = ${initial_fuel_density} # kg/m^3
flux_conversion_factor = 1.0
order = SECOND
family = LAGRANGE
displacements = 'disp_x'
[]
[Mesh]
coord_type = RSPHERICAL
[gen]
type = TRISO1DFiveLayerMeshGenerator
elem_type = EDGE3
kernel_radius = 251e-6
buffer_thickness = 95e-6
IPyC_thickness = 41e-6
SiC_thickness = 35e-6
OPyC_thickness = 40e-6
kernel_mesh_density = 6
buffer_mesh_density = 6
IPyC_mesh_density = 6
SiC_mesh_density = 8
OPyC_mesh_density = 6
block_names = 'fuel buffer IPyC SiC OPyC'
[]
[]
[Variables]
[disp_x]
[]
[temperature]
initial_condition = 1298.0
[]
[]
[Functions]
[radial_eigenstrain]
type = ParsedFunction
expression = 't*(4.52013e-4/6.0*t*t*t*t*t - 8.36313e-3/5.0*t*t*t*t + 5.67549e-2/4.0*t*t*t - 1.74247e-1/3.0*t*t + 2.62692e-1/2.0*t - 1.43234e-1)'
[]
[tangential_eigenstrain]
type = ParsedFunction
expression = 't*(1.30457e-4/4.0*t*t*t - 2.10029e-3/3.0*t*t + 9.07826e-3/2.0*t - 3.24737e-2)'
[]
[fission_rate]
type = ParsedFunction
expression = 9.30203234e19 # units of fissions/m**3/s
[]
[k_function]
type = ParsedFunction
expression = '4.93e-29'
[]
[]
[AuxVariables]
[stress_yy]
order = CONSTANT
family = MONOMIAL
[]
[burnup]
block = fuel
initial_condition = 0.0
[]
[fission_rate]
block = fuel
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[IPyC_OPyC]
block = 'IPyC OPyC'
strain = finite
eigenstrain_names = 'thermal_strain pyc_eigenstrain'
[]
[rest]
block = 'fuel buffer SiC'
strain = finite
eigenstrain_names = thermal_strain
[]
[]
[Kernels]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temperature
[]
[heat]
type = HeatConduction
variable = temperature
[]
[heat_source]
type = NeutronHeatSource
variable = temperature
block = fuel
energy_per_fission = 3.2e-11 # units of J/fission
fission_rate = fission_rate
[]
[]
[AuxKernels]
[stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
execute_on = timestep_end
[]
[fission_rate]
type = FunctionAux
variable = fission_rate
block = fuel
function = fission_rate
[]
[burnup]
type = BurnupAux
variable = burnup
block = fuel
fission_rate = fission_rate
molecular_weight = 0.270 # units of kg/mole
[]
[]
[Contact]
[pellet_clad_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
gas_released = 'fis_gas_released co_production' # coupling to postprocessors which supply the fission gas addition, co addition
released_gas_types = 'Kr Xe;
CO'
released_fractions = '0.153 0.847;
1'
tangential_tolerance = 1e-6
# contact_pressure_input = 10e6
# quadrature = true
[]
[]
[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_temperature]
type = DirichletBC
variable = temperature
boundary = exterior
value = 1298.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 = 0
startup_time = 1.0e4
R = 8.3143
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 = volumeGas # coupling to post processor to get gas volume
material_input = 'fis_gas_released co_production' # coupling to post processor to get fission gas added, co added
output = plenum_pressure # coupling to post processor to output plenum/gap pressure
[]
[]
[]
[Materials]
[flux]
type = FastNeutronFlux
calculate_fluence = true
factor = 1.041666666667e18 # n/m^2-sec
[]
[fission_gas_release] # Sifgr fission gas release mode
type = UO2Sifgrs
block = fuel
temperature = temperature
fission_rate = fission_rate # coupling to fission_rate aux variable
grain_radius_const = 5.0e-6
[]
[stress]
type = ComputeFiniteStrainElasticStress
block = 'fuel buffer SiC'
[]
[PyC_stress]
type = PyCCreep
block = 'IPyC OPyC'
k = k_function
poissons_ratio = 0.4
temperature = temperature
[]
[normal_vectors_triso]
type = NormalVectorsTRISO
block = 'IPyC OPyC'
[]
[PyC_eigenstrain]
type = PyCIrradiationEigenstrain
block = 'IPyC OPyC'
radial_eigenstrain_function = radial_eigenstrain
tangential_eigenstrain_function = tangential_eigenstrain
eigenstrain_name = pyc_eigenstrain
[]
[fuel_thermal_strain]
type = ComputeThermalExpansionEigenstrain
block = fuel
thermal_expansion_coeff = 10e-6
stress_free_temperature = 1298.0
eigenstrain_name = thermal_strain
temperature = temperature
[]
[PyC_thermal_strain]
type = ComputeThermalExpansionEigenstrain
block = 'buffer IPyC OPyC'
thermal_expansion_coeff = 5.5e-6
stress_free_temperature = 1298.0
eigenstrain_name = thermal_strain
temperature = temperature
[]
[SiC_thermal_strain]
type = ComputeThermalExpansionEigenstrain
block = SiC
thermal_expansion_coeff = 4.9e-6
stress_free_temperature = 1298.0
eigenstrain_name = thermal_strain
temperature = temperature
[]
[fuel_thermal]
type = UO2Thermal
thermal_conductivity_model = FINK_LUCUTA
block = fuel
temperature = temperature
burnup = burnup
[]
[fuel_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = fuel
youngs_modulus = 2e8
poissons_ratio = 0.345
[]
[fuel_den]
type = StrainAdjustedDensity
block = fuel
strain_free_density = ${initial_fuel_density}
[]
[buffer_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = buffer
youngs_modulus = 2e8
poissons_ratio = 0.345
[]
[buffer_temperature]
type = HeatConductionMaterial
block = buffer
thermal_conductivity = 0.5 # J/m-s-K
specific_heat = 720.0 # J/kg-K
[]
[buffer_den]
type = StrainAdjustedDensity
strain_free_density = 1010 #kg/m^3
block = buffer
[]
[PyC_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = 'IPyC OPyC'
youngs_modulus = 3.96e10
poissons_ratio = 0.33
[]
[PyC_temperature]
type = HeatConductionMaterial
block = 'IPyC OPyC'
thermal_conductivity = 4.0 # J/m-s-K
specific_heat = 720.0 # J/kg-K
[]
[PyC_den]
type = StrainAdjustedDensity
strain_free_density = 1870.0 # kg/m^3
block = 'IPyC OPyC'
[]
[SiC_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = SiC
youngs_modulus = 3.7e11
poissons_ratio = 0.13
[]
[SiC_temperature]
type = HeatConductionMaterial
block = SiC
thermal_conductivity = 13.9 # J/m-s-K
specific_heat = 620.0 # J/kg-K
[]
[SiC_den]
type = StrainAdjustedDensity
strain_free_density = 3200.0 # kg/m^3
block = SiC
[]
[]
[Dampers]
[temperature]
type = MaxIncrement
variable = temperature
max_increment = 50
[]
[]
[Debug]
show_var_residual_norms = true
[]
[Executioner]
type = Transient
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
solve_type = 'PJFNK'
nl_rel_tol = 1e-7
nl_abs_tol = 1e-10
nl_max_its = 15
l_tol = 1e-3
l_max_its = 50
start_time = 0.0
end_time = 51840000
dtmax = 2e5
dtmin = 1
[TimeStepper]
type = IterationAdaptiveDT
dt = 20
optimal_iterations = 6
iteration_window = 2
linear_iteration_ratio = 100
[]
[]
[Postprocessors]
[burnup]
type = ElementExtremeValue
block = fuel
variable = burnup
[]
[fis_gas_produced] # fission gas produced (moles)
type = ElementIntegralFisGasGeneratedSifgrs
block = fuel
[]
[fis_gas_released] # fission gas released to plenum (moles)
type = ElementIntegralFisGasReleasedSifgrs
block = fuel
[]
[volumeTotal]
type = InternalVolume
boundary = exterior
[]
[volumeFuel]
type = InternalVolume
boundary = fuel_outer_boundary
[]
[volumeGas]
type = InternalVolume
boundary = 'fuel_outer_boundary IPyC_inner_boundary'
# ro = 346e-6
# ri = 251e-6
# vb = 4/3*pi*(ro^3-ri^3) = 1.07e-10
# buffer density = 1010
# PyC density = 1870
# fill ratio = 1010/1870
# vb*1010/1870 = 5.79e-11
# Must remove 5.79e-11 m^3 from the volume
addition = -5.79e-11
execute_on = 'initial timestep_end'
[]
[volumeBufferShell]
type = InternalVolume
boundary = buffer_IPyC_boundary
[]
[ave_temp_interior]
type = SideAverageValue
boundary = buffer_IPyC_boundary
variable = temperature
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
[]
[total_fissions]
type = TimeIntegratedPostprocessor
value = total_fission_rate
[]
[avg_surface_temp]
type = SideAverageValue
variable = temperature
boundary = exterior
[]
[time_int_surf_temp]
type = TimeIntegratedPostprocessor
value = avg_surface_temp
[]
[co_production]
type = CarbonMonoxideProduction
total_fissions = total_fissions
time_integrated_triso_temperature = time_int_surf_temp
initial_enrichment = 0.14029
[]
[tang_SiC]
type = ElementalVariableValue
variable = stress_yy
elementid = 18
[]
[]
[PerformanceMetricOutputs]
[]
[Outputs]
print_linear_residuals = true
time_step_interval = 1
exodus = true
csv = true
perf_graph = true
[]
(test/tests/triso/mesh/mesh_five_layer.i)
[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 = 6
buffer_mesh_density = 6
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
[]
[]
[Variables]
[var_a]
[]
[]
[Kernels]
[Diffusion_a]
type = Diffusion
variable = var_a
[]
[]
[BCs]
[var_a_left]
type = DirichletBC
variable = var_a
boundary = xzero
value = 0.0
[]
[var_a_right]
type = DirichletBC
variable = var_a
boundary = exterior
value = 1.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'
start_time = 0.0
end_time = 1.0
dt = 1.0
[]
[Outputs]
# Define output file(s)
time_step_interval = 1
exodus = true
[console]
type = Console
max_rows = 25
[]
[]
(test/tests/triso_failure/triso_1d_layer_stress_strength.i)
[GlobalParams]
density = 10810.0
flux_conversion_factor = 1.0
order = SECOND
family = LAGRANGE
displacements = 'disp_x'
[]
[Mesh]
coord_type = RSPHERICAL
[gen]
type = TRISO1DFiveLayerMeshGenerator
elem_type = EDGE3
kernel_radius = 2.485e-4
buffer_thickness = 9.4e-5
IPyC_thickness = 4.1e-5
SiC_thickness = 3.6e-5
OPyC_thickness = 4.0e-5
kernel_mesh_density = 6
buffer_mesh_density = 6
IPyC_mesh_density = 6
SiC_mesh_density = 8
OPyC_mesh_density = 6
[]
[]
[Variables]
[disp_x]
[]
[temp]
initial_condition = 1346.0
[]
[]
[Functions]
[radial_eigenstrain]
type = ParsedFunction
expression = 't*(4.52013e-4/6.0*t*t*t*t*t - 8.36313e-3/5.0*t*t*t*t + 5.67549e-2/4.0*t*t*t - 1.74247e-1/3.0*t*t + 2.62692e-1/2.0*t - 1.43234e-1)'
[]
[tangential_eigenstrain]
type = ParsedFunction
expression = 't*(1.30457e-4/4.0*t*t*t - 2.10029e-3/3.0*t*t + 9.07826e-3/2.0*t - 3.24737e-2)'
[]
[fission_rate]
type = ParsedFunction
expression = 7.75e19 # units of fissions/m**3
[]
[k_function]
type = ParsedFunction
expression = '4.93e-29'
[]
[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'
[]
[ipyc_stress_strength]
type = ParsedFunction
expression = 'a-b'
symbol_names = 'a b'
symbol_values = 'stress_IPyC actual_strength_IPyC'
[]
[opyc_stress_strength]
type = ParsedFunction
expression = 'a-b'
symbol_names = 'a b'
symbol_values = 'stress_OPyC actual_strength_OPyC'
[]
[sic_crackedipyc_stress_strength]
type = ParsedFunction
expression = 'a-b'
symbol_names = 'a b'
symbol_values = 'stress_SiC_crackedIPyC actual_strength_SiC_crackedIPyC'
[]
[sic_crackedopyc_stress_strength]
type = ParsedFunction
expression = 'a-b'
symbol_names = 'a b'
symbol_values = 'stress_SiC_crackedOPyC actual_strength_SiC_crackedOPyC'
[]
[]
[AuxVariables]
[stress_yy]
order = CONSTANT
family = MONOMIAL
[]
[burnup]
block = fuel
initial_condition = 0.0
[]
[fission_rate]
block = fuel
[]
[]
[Physics/SolidMechanics/QuasiStatic]
strain = small
use_automatic_differentiation = true
[fuel_buffer_sic]
block = 'fuel buffer SiC'
eigenstrain_names = thermal_strain
[]
[ipyc_opyc]
block = 'IPyC OPyC'
incremental = true
eigenstrain_names = 'thermal_strain pyc_eigenstrain'
[]
[]
[Kernels]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temp
[]
[heat]
type = HeatConduction
variable = temp
[]
[heat_source]
type = NeutronHeatSource
variable = temp
block = fuel
energy_per_fission = 3.2e-11
fission_rate = fission_rate
[]
[]
[AuxKernels]
[stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
execute_on = timestep_end
[]
[fission_rate]
type = FunctionAux
variable = fission_rate
block = fuel
function = fission_rate
[]
[burnup]
type = BurnupAux
variable = burnup
block = fuel
fission_rate = fission_rate
molecular_weight = 0.270 # units of kg/mole
[]
[]
[Contact]
[pellet_clad_mechanical]
primary = IPyC_inner_boundary
secondary = buffer_outer_boundary
penalty = 1e5
model = frictionless
formulation = kinematic
[]
[]
[ThermalContact]
[thermal_contact]
type = GasGapHeatTransfer
variable = temp
primary = IPyC_inner_boundary
secondary = buffer_outer_boundary
# coupling to a postprocessor
initial_moles = initial_moles
gas_released = 'fis_gas_released co_production'
released_gas_types = 'Kr Xe;
CO'
released_fractions = '0.153 0.847;
1'
tangential_tolerance = 1e-6
# contact_pressure_input = 10e6
# quadrature = true
[]
[]
[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 = DirichletBC
variable = temp
boundary = exterior
value = 1346.0
[]
# exterior and internal pressures
[exterior_pressure_x]
type = Pressure
use_displaced_mesh = false
variable = disp_x
boundary = exterior
factor = 0.1e6
[]
# apply gas pressure on buffer and IPyC boundaries
[PlenumPressure]
[plenumPressure]
use_displaced_mesh = false
boundary = buffer_IPyC_boundary
initial_pressure = 0
startup_time = 1.0e4
R = 8.3143
# coupling to post processor
output_initial_moles = initial_moles
temperature = ave_temp_interior
volume = volumeGas
material_input = 'fis_gas_released co_production'
output = plenum_pressure
[]
[]
[]
[Materials]
[max_principal_stress]
type = RankTwoInvariant
property_name = max_principal_stress
rank_two_tensor = stress
invariant = MaxPrincipal
[]
[flux]
type = FastNeutronFlux
calculate_fluence = true
factor = 1.708707e18
[]
[fission_gas_release]
type = UO2Sifgrs
block = fuel
temperature = temp
fission_rate = fission_rate
grain_radius_const = 5.0e-6
[]
[stress]
type = ComputeLinearElasticStress
block = 'fuel buffer SiC'
[]
[PyC_stress]
type = PyCCreep
block = 'IPyC OPyC'
k = k_function
poissons_ratio = 0.4
temperature = temp
[]
[normal_vectors_triso]
type = NormalVectorsTRISO
block = 'IPyC OPyC'
[]
[PyC_eigenstrain]
type = PyCIrradiationEigenstrain
block = 'IPyC OPyC'
radial_eigenstrain_function = radial_eigenstrain
tangential_eigenstrain_function = tangential_eigenstrain
eigenstrain_name = pyc_eigenstrain
[]
[fuel_thermal_strain]
type = ComputeThermalExpansionEigenstrain
block = fuel
thermal_expansion_coeff = 10e-6
stress_free_temperature = 1346.0
eigenstrain_name = thermal_strain
temperature = temp
[]
[PyC_thermal_strain]
type = ComputeThermalExpansionEigenstrain
block = 'buffer IPyC OPyC'
thermal_expansion_coeff = 5.5e-6
stress_free_temperature = 1346.0
eigenstrain_name = thermal_strain
temperature = temp
[]
[SiC_thermal_strain]
type = ComputeThermalExpansionEigenstrain
block = SiC
thermal_expansion_coeff = 4.9e-6
stress_free_temperature = 1346.0
eigenstrain_name = thermal_strain
temperature = temp
[]
[fuel_thermal]
type = UO2Thermal
thermal_conductivity_model = FINK_LUCUTA
block = fuel
temperature = temp
burnup = burnup
[]
[fuel_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = fuel
youngs_modulus = 2e8
poissons_ratio = 0.345
[]
[fuel_den]
type = StrainAdjustedDensity
block = fuel
strain_free_density = 10810.0
[]
[buffer_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = buffer
youngs_modulus = 2e8
poissons_ratio = 0.345
[]
[buffer_temp]
type = HeatConductionMaterial
block = buffer
thermal_conductivity = 0.5
specific_heat = 720.0
[]
[buffer_den]
type = StrainAdjustedDensity
strain_free_density = 1000
block = buffer
[]
[PyC_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = 'IPyC OPyC'
youngs_modulus = 3.96e10
poissons_ratio = 0.33
[]
[PyC_temp]
type = HeatConductionMaterial
block = 'IPyC OPyC'
thermal_conductivity = 4.0
specific_heat = 720.0
[]
[PyC_den]
type = StrainAdjustedDensity
strain_free_density = 1880.0
block = 'IPyC OPyC'
[]
[SiC_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = SiC
youngs_modulus = 3.7e11
poissons_ratio = 0.13
[]
[SiC_temp]
type = HeatConductionMaterial
block = SiC
thermal_conductivity = 13.9
specific_heat = 620.0
[]
[SiC_den]
type = StrainAdjustedDensity
strain_free_density = 3200.0
block = SiC
[]
[characteristic_strength_SiC]
type = GenericConstantMaterial
prop_values = '9640000'
prop_names = 'characteristic_strength'
block = SiC
[]
[characteristic_strength_PyC]
type = GenericConstantMaterial
prop_values = '964000'
prop_names = 'characteristic_strength'
block = 'IPyC OPyC'
[]
[]
[Dampers]
[temp]
type = MaxIncrement
variable = temp
max_increment = 50
[]
[]
[Debug]
show_var_residual_norms = true
[]
[Executioner]
type = Transient
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
solve_type = 'PJFNK'
nl_rel_tol = 5e-6
nl_abs_tol = 1e-10
nl_max_its = 15
l_tol = 1e-3
l_max_its = 50
start_time = 0.0
num_steps = 10
dtmax = 2e5
dtmin = 1
[TimeStepper]
type = IterationAdaptiveDT
dt = 20
optimal_iterations = 6
iteration_window = 2
linear_iteration_ratio = 100
[]
[]
[Postprocessors]
[dt]
type = TimestepSize
[]
[burnup]
type = ElementExtremeValue
block = fuel
variable = burnup
[]
[fis_gas_produced]
type = ElementIntegralFisGasGeneratedSifgrs
block = fuel
[]
[fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = fuel
[]
[volumeTotal]
type = InternalVolume
boundary = exterior
[]
[volumeFuel]
type = InternalVolume
boundary = fuel_outer_boundary
[]
[volumeGas]
type = InternalVolume
boundary = 'fuel_outer_boundary IPyC_inner_boundary'
addition = -5.53e-11
execute_on = 'initial timestep_end'
[]
[volumeBufferShell]
type = InternalVolume
boundary = buffer_IPyC_boundary
[]
[ave_temp_interior]
type = SideAverageValue
boundary = buffer_IPyC_boundary
variable = temp
execute_on = 'initial timestep_end'
[]
# Postprocessors for CO production
[total_fission_rate]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = fuel
energy_per_fission = 1.0
[]
[total_fissions]
type = TimeIntegratedPostprocessor
value = total_fission_rate
[]
[avg_surface_temp]
type = SideAverageValue
variable = temp
boundary = exterior
[]
[time_int_surf_temp]
type = TimeIntegratedPostprocessor
value = avg_surface_temp
[]
[co_production]
type = CarbonMonoxideProduction
total_fissions = total_fissions
time_integrated_triso_temperature = time_int_surf_temp
initial_enrichment = 0.14029
[]
[tang_SiC]
type = ElementalVariableValue
variable = stress_yy
elementid = 18
[]
[strength_SiC]
type = WeibullEffectiveMeanStrength
block = SiC
weibull_modulus = 6
[]
[stress_SiC]
type = WeibullFailureOutputUsingCorrelation
block = SiC
weibull_modulus = 6
stress_name = max_principal_stress
effective_mean_strength = strength_SiC
output_type = 'stress'
[]
[actual_strength_SiC]
type = WeibullFailureOutputUsingCorrelation
block = SiC
weibull_modulus = 6
stress_name = max_principal_stress
effective_mean_strength = strength_SiC
output_type = 'strength'
[]
[strength_IPyC]
type = WeibullEffectiveMeanStrength
block = IPyC
weibull_modulus = 6
[]
[stress_IPyC]
type = WeibullFailureOutputUsingCorrelation
block = IPyC
weibull_modulus = 6
stress_name = max_principal_stress
effective_mean_strength = strength_IPyC
output_type = 'stress'
[]
[actual_strength_IPyC]
type = WeibullFailureOutputUsingCorrelation
block = IPyC
weibull_modulus = 6
stress_name = max_principal_stress
effective_mean_strength = strength_IPyC
output_type = 'strength'
[]
[IPyC_stressminusstrength]
type = FunctionValuePostprocessor
function = 'ipyc_stress_strength'
[]
[strength_OPyC]
type = WeibullEffectiveMeanStrength
block = OPyC
weibull_modulus = 6
[]
[stress_OPyC]
type = WeibullFailureOutputUsingCorrelation
block = OPyC
weibull_modulus = 6
stress_name = max_principal_stress
effective_mean_strength = strength_OPyC
output_type = 'stress'
[]
[actual_strength_OPyC]
type = WeibullFailureOutputUsingCorrelation
block = OPyC
weibull_modulus = 6
stress_name = max_principal_stress
effective_mean_strength = strength_OPyC
output_type = 'strength'
[]
[OPyC_stressminusstrength]
type = FunctionValuePostprocessor
function = 'opyc_stress_strength'
[]
[stress_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'
output_type = 'stress'
[]
[actual_strength_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'
output_type = 'strength'
[]
[SiC_crackedIPyC_stressminusstrength]
type = FunctionValuePostprocessor
function = 'sic_crackedipyc_stress_strength'
[]
[stress_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'
output_type = 'stress'
[]
[actual_strength_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'
output_type = 'strength'
[]
[SiC_crackedOPyC_stressminusstrength]
type = FunctionValuePostprocessor
function = 'sic_crackedopyc_stress_strength'
[]
[]
[Outputs]
print_linear_residuals = true
time_step_interval = 1
csv = true
perf_graph = true
[]
(test/tests/triso_failure/triso_ipyc_characteristic_strength.i)
[GlobalParams]
density = 10810.0
flux_conversion_factor = 1.0
order = SECOND
family = LAGRANGE
displacements = 'disp_x'
[]
[Mesh]
coord_type = RSPHERICAL
[gen]
type = TRISO1DFiveLayerMeshGenerator
elem_type = EDGE3
kernel_radius = 2.485e-4
buffer_thickness = 9.4e-5
IPyC_thickness = 4.1e-5
SiC_thickness = 3.6e-5
OPyC_thickness = 4.0e-5
kernel_mesh_density = 6
buffer_mesh_density = 6
IPyC_mesh_density = 6
SiC_mesh_density = 8
OPyC_mesh_density = 6
[]
[]
[Variables]
[disp_x]
[]
[temp]
initial_condition = 1346.0
[]
[]
[Functions]
[radial_eigenstrain]
type = ParsedFunction
expression = 't*(4.52013e-4/6.0*t*t*t*t*t - 8.36313e-3/5.0*t*t*t*t + 5.67549e-2/4.0*t*t*t - 1.74247e-1/3.0*t*t + 2.62692e-1/2.0*t - 1.43234e-1)'
[]
[tangential_eigenstrain]
type = ParsedFunction
expression = 't*(1.30457e-4/4.0*t*t*t - 2.10029e-3/3.0*t*t + 9.07826e-3/2.0*t - 3.24737e-2)'
[]
[fission_rate]
type = ParsedFunction
expression = 7.75e19 # units of fissions/m**3
[]
[k_function]
type = ParsedFunction
expression = '4.93e-29'
[]
[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'
[]
[]
[AuxVariables]
[stress_yy]
order = CONSTANT
family = MONOMIAL
[]
[burnup]
block = fuel
initial_condition = 0.0
[]
[fission_rate]
block = fuel
[]
[]
[Physics/SolidMechanics/QuasiStatic]
strain = small
[fuel_buffer_sic]
block = 'fuel buffer SiC'
eigenstrain_names = thermal_strain
[]
[ipyc_opyc]
block = 'IPyC OPyC'
incremental = true
eigenstrain_names = 'thermal_strain pyc_eigenstrain'
[]
[]
[Kernels]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temp
[]
[heat]
type = HeatConduction
variable = temp
[]
[heat_source]
type = NeutronHeatSource
variable = temp
block = fuel
energy_per_fission = 3.2e-11
fission_rate = fission_rate
[]
[]
[AuxKernels]
[stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
execute_on = timestep_end
[]
[fission_rate]
type = FunctionAux
variable = fission_rate
block = fuel
function = fission_rate
[]
[burnup]
type = BurnupAux
variable = burnup
block = fuel
fission_rate = fission_rate
molecular_weight = 0.270 # units of kg/mole
[]
[]
[Contact]
[pellet_clad_mechanical]
primary = IPyC_inner_boundary
secondary = buffer_outer_boundary
penalty = 1e5
model = frictionless
formulation = kinematic
[]
[]
[ThermalContact]
[thermal_contact]
type = GasGapHeatTransfer
variable = temp
primary = IPyC_inner_boundary
secondary = buffer_outer_boundary
# coupling to a postprocessor
initial_moles = initial_moles
gas_released = 'fis_gas_released co_production'
released_gas_types = 'Kr Xe;
CO'
released_fractions = '0.153 0.847;
1'
tangential_tolerance = 1e-6
[]
[]
[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 = DirichletBC
variable = temp
boundary = exterior
value = 1346.0
[]
# exterior and internal pressures
[exterior_pressure_x]
type = Pressure
use_displaced_mesh = false
variable = disp_x
boundary = exterior
factor = 0.1e6
[]
# apply gas pressure on buffer and IPyC boundaries
[PlenumPressure]
[plenumPressure]
use_displaced_mesh = false
boundary = buffer_IPyC_boundary
initial_pressure = 0
startup_time = 1.0e4
R = 8.3143
# coupling to post processor
output_initial_moles = initial_moles
temperature = ave_temp_interior
volume = volumeGas
material_input = 'fis_gas_released co_production'
output = plenum_pressure
[]
[]
[]
[Materials]
[max_principal_stress]
type = RankTwoInvariant
property_name = max_principal_stress
rank_two_tensor = stress
invariant = MaxPrincipal
[]
[flux]
type = FastNeutronFlux
calculate_fluence = true
factor = 1.708707e18
[]
[fission_gas_release]
type = UO2Sifgrs
block = fuel
temperature = temp
fission_rate = fission_rate
grain_radius_const = 5.0e-6
[]
[stress]
type = ComputeLinearElasticStress
block = 'fuel buffer SiC'
[]
[PyC_stress]
type = PyCCreep
block = 'IPyC OPyC'
k = k_function
poissons_ratio = 0.4
temperature = temp
[]
[normal_vectors_triso]
type = NormalVectorsTRISO
block = 'IPyC OPyC'
[]
[PyC_eigenstrain]
type = PyCIrradiationEigenstrain
block = 'IPyC OPyC'
radial_eigenstrain_function = radial_eigenstrain
tangential_eigenstrain_function = tangential_eigenstrain
eigenstrain_name = pyc_eigenstrain
[]
[fuel_thermal_strain]
type = ComputeThermalExpansionEigenstrain
block = fuel
thermal_expansion_coeff = 10e-6
stress_free_temperature = 1346.0
eigenstrain_name = thermal_strain
temperature = temp
[]
[PyC_thermal_strain]
type = ComputeThermalExpansionEigenstrain
block = 'buffer IPyC OPyC'
thermal_expansion_coeff = 5.5e-6
stress_free_temperature = 1346.0
eigenstrain_name = thermal_strain
temperature = temp
[]
[SiC_thermal_strain]
type = ComputeThermalExpansionEigenstrain
block = SiC
thermal_expansion_coeff = 4.9e-6
stress_free_temperature = 1346.0
eigenstrain_name = thermal_strain
temperature = temp
[]
[fuel_thermal]
type = UO2Thermal
thermal_conductivity_model = FINK_LUCUTA
block = fuel
temperature = temp
burnup = burnup
[]
[fuel_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = fuel
youngs_modulus = 2e8
poissons_ratio = 0.345
[]
[fuel_den]
type = StrainAdjustedDensity
block = fuel
strain_free_density = 10810.0
[]
[buffer_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = buffer
youngs_modulus = 2e8
poissons_ratio = 0.345
[]
[buffer_temp]
type = HeatConductionMaterial
block = buffer
thermal_conductivity = 0.5
specific_heat = 720.0
[]
[buffer_den]
type = StrainAdjustedDensity
strain_free_density = 1000
block = buffer
[]
[PyC_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = 'IPyC OPyC'
youngs_modulus = 3.96e10
poissons_ratio = 0.33
[]
[PyC_temp]
type = HeatConductionMaterial
block = 'IPyC OPyC'
thermal_conductivity = 4.0
specific_heat = 720.0
[]
[PyC_den]
type = StrainAdjustedDensity
strain_free_density = 1880.0
block = 'IPyC OPyC'
[]
[SiC_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = SiC
youngs_modulus = 3.7e11
poissons_ratio = 0.13
[]
[SiC_temp]
type = HeatConductionMaterial
block = SiC
thermal_conductivity = 13.9
specific_heat = 620.0
[]
[SiC_den]
type = StrainAdjustedDensity
strain_free_density = 3200.0
block = SiC
[]
[characteristic_strength_SiC]
type = GenericConstantMaterial
prop_values = '9640000'
block = SiC
prop_names = 'characteristic_strength'
[]
[characteristic_strength_PyC]
type = PyCCharacteristicStrength
temperature = temp
X = 1.02
flux_conversion_factor = 0.85
block = 'IPyC OPyC'
[]
[]
[Dampers]
[temp]
type = MaxIncrement
variable = temp
max_increment = 50
[]
[]
[Debug]
show_var_residual_norms = true
[]
[Executioner]
type = Transient
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
solve_type = 'PJFNK'
nl_rel_tol = 5e-6
nl_abs_tol = 1e-10
nl_max_its = 15
l_tol = 1e-3
l_max_its = 50
start_time = 0.0
num_steps = 10
dtmax = 2e5
dtmin = 1
[TimeStepper]
type = IterationAdaptiveDT
dt = 20
optimal_iterations = 6
iteration_window = 2
linear_iteration_ratio = 100
[]
[]
[Postprocessors]
[dt]
type = TimestepSize
[]
[burnup]
type = ElementExtremeValue
block = fuel
variable = burnup
[]
[fis_gas_produced]
type = ElementIntegralFisGasGeneratedSifgrs
block = fuel
[]
[fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = fuel
[]
[volumeTotal]
type = InternalVolume
boundary = exterior
[]
[volumeFuel]
type = InternalVolume
boundary = fuel_outer_boundary
[]
[volumeGas]
type = InternalVolume
boundary = 'fuel_outer_boundary IPyC_inner_boundary'
addition = -5.53e-11
execute_on = 'initial timestep_end'
[]
[volumeBufferShell]
type = InternalVolume
boundary = buffer_IPyC_boundary
[]
[ave_temp_interior]
type = SideAverageValue
boundary = buffer_IPyC_boundary
variable = temp
execute_on = 'initial timestep_end'
[]
# Postprocessors for CO production
[total_fission_rate]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = fuel
energy_per_fission = 1.0
[]
[total_fissions]
type = TimeIntegratedPostprocessor
value = total_fission_rate
[]
[avg_surface_temp]
type = SideAverageValue
variable = temp
boundary = exterior
[]
[time_int_surf_temp]
type = TimeIntegratedPostprocessor
value = avg_surface_temp
[]
[co_production]
type = CarbonMonoxideProduction
total_fissions = total_fissions
time_integrated_triso_temperature = time_int_surf_temp
initial_enrichment = 0.14029
[]
[tang_SiC]
type = ElementalVariableValue
variable = stress_yy
elementid = 18
[]
[strength_SiC]
type = WeibullEffectiveMeanStrength
block = SiC
weibull_modulus = 6
[]
[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
[]
[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
[]
[characteristic_strength]
type = ElementExtremeMaterialProperty
mat_prop = characteristic_strength
block = IPyC
value_type = max
[]
[flence]
type = ElementExtremeMaterialProperty
mat_prop = fast_neutron_fluence
block = IPyC
value_type = max
[]
[]
[Outputs]
print_linear_residuals = true
time_step_interval = 1
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'
[]
[]
(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'
[]
[]
(assessment/TRISO/benchmark/IAEA_CRP-6/fuel_performance/case_12/case_12_1D.i)
#
# This case is taken from Advances in high temperature gas cooled reactor fuel
# technology. Technical Report IAEA-TECDOC-1674, International Atomic Energy
# Agency, 2012.
#
# The correctness of the results computed by this case must be checked against
# results from the IAEA benchmark.
#
initial_fuel_density = 10520.0
[GlobalParams]
flux_conversion_factor = 1.0
order = SECOND
family = LAGRANGE
displacements = 'disp_x'
O_U = 1.51
C_U = 0.36
initial_enrichment = 0.9315
[]
[Mesh]
coord_type = RSPHERICAL
[gen]
type = TRISO1DFiveLayerMeshGenerator
elem_type = EDGE3
kernel_radius = 100e-6
buffer_thickness = 102e-6
IPyC_thickness = 53e-6
SiC_thickness = 35e-6
OPyC_thickness = 39e-6
kernel_mesh_density = 6
buffer_mesh_density = 6
IPyC_mesh_density = 6
SiC_mesh_density = 8
OPyC_mesh_density = 6
block_names = 'fuel buffer IPyC SiC OPyC'
[]
[]
[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]
[disp_x]
[]
[temperature]
initial_condition = 1533.0
[]
[]
[Functions]
[radial_eigenstrain]
type = ParsedFunction
expression = 't*(4.73765e-4/4.0*t*t*t - 3.80252e-3/3.0*t*t + 1.64999e-2/2.0*t - 2.13483e-2)'
[]
[tangential_eigenstrain]
type = ParsedFunction
expression = 't*(-1.03249e-3/4.0*t*t*t + 5.47396e-3/3.0*t*t - 3.29740e-3/2.0*t - 1.83549e-2)'
[]
[fission_rate]
type = ParsedFunction
expression = 1.29203e21 # units of fissions/m**3/s
[]
[k_function]
type = ParsedFunction
expression = '2.70e-29'
[]
[]
[AuxVariables]
[stress_yy]
order = CONSTANT
family = MONOMIAL
[]
[fission_rate]
block = fuel
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[IPyC_OPyC]
block = 'IPyC OPyC'
strain = finite
eigenstrain_names = 'thermal_strain pyc_eigenstrain'
[]
[rest]
block = 'fuel buffer SiC'
strain = finite
eigenstrain_names = thermal_strain
[]
[]
[Kernels]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temperature
[]
[heat]
type = HeatConduction
variable = temperature
[]
[heat_source]
type = NeutronHeatSource
variable = temperature
block = fuel
energy_per_fission = 3.2e-11 # units of J/fission
fission_rate = fission_rate
[]
[]
[AuxKernels]
[stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
execute_on = timestep_end
[]
[]
[Contact]
[pellet_clad_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
gas_released = 'fis_gas_released' # coupling to postprocessors which supply the fission gas addition
released_gas_types = 'Kr Xe'
released_fractions = '0.153 0.847'
tangential_tolerance = 1e-6
# contact_pressure_input = 10e6
# quadrature = true
[]
[]
[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_temperature]
type = DirichletBC
variable = temperature
boundary = exterior
value = 1533.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 = 0
startup_time = 1.0e4
R = 8.3145
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 = volumeGas # 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
[]
[]
[]
[Materials]
[fission_rate]
type = GenericFunctionMaterial
prop_names = fission_rate
prop_values = fission_rate
[]
[flux]
type = FastNeutronFlux
calculate_fluence = true
factor = 2.58714597e18 # n/m^2-sec
[]
[stress]
type = ComputeFiniteStrainElasticStress
block = 'fuel buffer SiC'
[]
[UCO_burnup]
type = TRISOBurnup
initial_density = ${initial_fuel_density}
[]
[UCO_thermal]
type = UCOThermal
block = fuel
temperature = temperature
[]
[fuel_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = fuel
youngs_modulus = 2e8
poissons_ratio = 0.345
[]
[UCO_VolumetricSwellingEigenstrain]
type = UCOVolumetricSwellingEigenstrain
block = fuel
eigenstrain_name = UCO_swelling_eigenstrain
[]
[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
[]
[PyC_stress]
type = PyCCreep
block = 'IPyC OPyC'
k = k_function
poissons_ratio = 0.5
temperature = temperature
[]
[normal_vectors_triso]
type = NormalVectorsTRISO
block = 'IPyC OPyC'
[]
[PyC_eigenstrain]
type = PyCIrradiationEigenstrain
block = 'IPyC OPyC'
radial_eigenstrain_function = radial_eigenstrain
tangential_eigenstrain_function = tangential_eigenstrain
eigenstrain_name = pyc_eigenstrain
[]
[fuel_thermal_strain]
type = ComputeThermalExpansionEigenstrain
block = fuel
thermal_expansion_coeff = 10e-6
stress_free_temperature = 1533.0
eigenstrain_name = thermal_strain
temperature = temperature
[]
[PyC_thermal_strain]
type = ComputeThermalExpansionEigenstrain
block = 'buffer IPyC OPyC'
thermal_expansion_coeff = 5.5e-6
stress_free_temperature = 1533.0
eigenstrain_name = thermal_strain
temperature = temperature
[]
[SiC_thermal_strain]
type = ComputeThermalExpansionEigenstrain
block = SiC
thermal_expansion_coeff = 4.9e-6
stress_free_temperature = 1533.0
eigenstrain_name = thermal_strain
temperature = temperature
[]
[buffer_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = buffer
youngs_modulus = 2e8
poissons_ratio = 0.345
[]
[buffer_temperature]
type = HeatConductionMaterial
block = buffer
thermal_conductivity = 0.5 # J/m-s-K
specific_heat = 720.0 # J/kg-K
[]
[buffer_den]
type = StrainAdjustedDensity
strain_free_density = 960 #kg/m^3
block = buffer
[]
[PyC_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = 'IPyC OPyC'
youngs_modulus = 3.96e10
poissons_ratio = 0.33
[]
[PyC_temperature]
type = HeatConductionMaterial
block = 'IPyC OPyC'
thermal_conductivity = 4.0 # J/m-s-K
specific_heat = 720.0 # J/kg-K
[]
[IPyC_den]
type = StrainAdjustedDensity
strain_free_density = 1920.0 # kg/m^3
block = IPyC
[]
[OPyC_den]
type = StrainAdjustedDensity
strain_free_density = 1860.0 # kg/m^3
block = OPyC
[]
[SiC_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = SiC
youngs_modulus = 3.7e11
poissons_ratio = 0.13
[]
[SiC_temperature]
type = HeatConductionMaterial
block = SiC
thermal_conductivity = 13.9 # J/m-s-K
specific_heat = 620.0 # J/kg-K
[]
[SiC_den]
type = StrainAdjustedDensity
strain_free_density = 3230.0 # kg/m^3
block = SiC
[]
[]
[Dampers]
[temperature]
type = MaxIncrement
variable = temperature
max_increment = 50
[]
[]
[Debug]
show_var_residual_norms = true
[]
[Executioner]
type = Transient
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
solve_type = 'PJFNK'
nl_rel_tol = 1e-7
nl_abs_tol = 1e-10
nl_max_its = 15
l_tol = 1e-3
l_max_its = 50
start_time = 0.0
end_time = 14688000
dtmax = 2e5
dtmin = 1
[TimeStepper]
type = IterationAdaptiveDT
dt = 20
optimal_iterations = 6
iteration_window = 1
linear_iteration_ratio = 100
[]
[]
[Postprocessors]
[burnup]
type = ElementAverageMaterialProperty
block = fuel
mat_prop = burnup
[]
[volumeTotal]
type = InternalVolume
boundary = exterior
[]
[volumeFuel]
type = InternalVolume
boundary = fuel_outer_boundary
[]
[volumeGas]
type = InternalVolume
boundary = 'fuel_outer_boundary IPyC_inner_boundary'
# ro = 202e-6
# ri = 100e-6
# vb = 4/3*pi*(ro^3-ri^3) = 3.03e-11
# buffer density = 960
# PyC density = 1890
# fill ratio = 960/1890
# vb*960/1890 = 1.54e-11
# Must remove 1.54e-11 m^3 from the volume
addition = -1.54e-11
execute_on = 'initial timestep_end'
[]
[volumeBufferShell]
type = InternalVolume
boundary = buffer_IPyC_boundary
[]
[ave_temp_interior]
type = SideAverageValue
boundary = buffer_IPyC_boundary
variable = temperature
execute_on = 'initial timestep_end'
[]
[fis_gas_released]
type = ElementIntegralMaterialProperty
mat_prop = fis_gas_released
block = fuel
execute_on = 'initial timestep_end'
[]
[tang_SiC]
type = ElementalVariableValue
variable = stress_yy
elementid = 18
[]
[]
[PerformanceMetricOutputs]
[]
[Outputs]
print_linear_residuals = true
time_step_interval = 1
exodus = true
csv = true
perf_graph = true
[]
(test/tests/triso_failure/triso_1d_pd_penetration.i)
[GlobalParams]
density = 10810.0
flux_conversion_factor = 1.0
order = SECOND
family = LAGRANGE
displacements = 'disp_x'
[]
[Mesh]
coord_type = RSPHERICAL
[gen]
type = TRISO1DFiveLayerMeshGenerator
elem_type = EDGE3
kernel_radius = 2.485e-4
buffer_thickness = 9.4e-5
IPyC_thickness = 4.1e-5
SiC_thickness = 3.6e-5
OPyC_thickness = 4.0e-5
kernel_mesh_density = 6
buffer_mesh_density = 6
IPyC_mesh_density = 6
SiC_mesh_density = 8
OPyC_mesh_density = 6
[]
[]
[Variables]
[disp_x]
[]
[temperature]
initial_condition = 1346.0
[]
[]
[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
[]
[]
[Functions]
[radial_eigenstrain]
type = ParsedFunction
expression = 't*(4.52013e-4/6.0*t*t*t*t*t - 8.36313e-3/5.0*t*t*t*t + 5.67549e-2/4.0*t*t*t - 1.74247e-1/3.0*t*t + 2.62692e-1/2.0*t - 1.43234e-1)'
[]
[tangential_eigenstrain]
type = ParsedFunction
expression = 't*(1.30457e-4/4.0*t*t*t - 2.10029e-3/3.0*t*t + 9.07826e-3/2.0*t - 3.24737e-2)'
[]
[fission_rate]
type = ParsedFunction
expression = 7.75e19 # units of fissions/m**3
[]
[k_function]
type = ParsedFunction
expression = '4.93e-29'
[]
[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'
[]
[]
[AuxVariables]
[stress_yy]
order = CONSTANT
family = MONOMIAL
[]
[burnup]
block = fuel
initial_condition = 0.0
[]
[fission_rate]
block = fuel
[]
[]
[Physics/SolidMechanics/QuasiStatic]
strain = small
[fuel_buffer_sic]
block = 'fuel buffer SiC'
eigenstrain_names = thermal_strain
[]
[ipyc_opyc]
block = 'IPyC OPyC'
incremental = true
eigenstrain_names = 'thermal_strain pyc_eigenstrain'
[]
[]
[Kernels]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temperature
[]
[heat]
type = HeatConduction
variable = temperature
[]
[heat_source]
type = NeutronHeatSource
variable = temperature
block = fuel
energy_per_fission = 3.2e-11
fission_rate = fission_rate
[]
[]
[AuxKernels]
[stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
execute_on = timestep_end
[]
[fission_rate]
type = FunctionAux
variable = fission_rate
block = fuel
function = fission_rate
[]
[burnup]
type = BurnupAux
variable = burnup
block = fuel
fission_rate = fission_rate
molecular_weight = 0.270 # units of kg/mole
[]
[]
[Contact]
[pellet_clad_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
gas_released = 'fis_gas_released co_production'
released_gas_types = 'Kr Xe;
CO'
released_fractions = '0.153 0.847;
1'
tangential_tolerance = 1e-6
[]
[]
[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 = DirichletBC
variable = temperature
boundary = exterior
value = 1346.0
[]
# exterior and internal pressures
[exterior_pressure_x]
type = Pressure
use_displaced_mesh = false
variable = disp_x
boundary = exterior
factor = 0.1e6
[]
# apply gas pressure on buffer and IPyC boundaries
[PlenumPressure]
[plenumPressure]
use_displaced_mesh = false
boundary = buffer_IPyC_boundary
initial_pressure = 0
startup_time = 1.0e4
# coupling to post processor
output_initial_moles = initial_moles
temperature = ave_temp_interior
volume = volumeGas
material_input = 'fis_gas_released co_production'
output = plenum_pressure
[]
[]
[]
[Materials]
[max_principal_stress]
type = RankTwoInvariant
property_name = max_principal_stress
rank_two_tensor = stress
invariant = MaxPrincipal
[]
[flux]
type = FastNeutronFlux
calculate_fluence = true
factor = 1.708707e18
[]
[fission_gas_release]
type = UO2Sifgrs
block = fuel
temperature = temperature
fission_rate = fission_rate
grain_radius_const = 5.0e-6
[]
[stress]
type = ComputeLinearElasticStress
block = 'fuel buffer SiC'
[]
[PyC_stress]
type = PyCCreep
block = 'IPyC OPyC'
k = k_function
poissons_ratio = 0.4
temperature = temperature
[]
[normal_vectors_triso]
type = NormalVectorsTRISO
block = 'IPyC OPyC'
[]
[PyC_eigenstrain]
type = PyCIrradiationEigenstrain
block = 'IPyC OPyC'
radial_eigenstrain_function = radial_eigenstrain
tangential_eigenstrain_function = tangential_eigenstrain
eigenstrain_name = pyc_eigenstrain
[]
[fuel_thermal_strain]
type = ComputeThermalExpansionEigenstrain
block = fuel
thermal_expansion_coeff = 10e-6
stress_free_temperature = 1346.0
eigenstrain_name = thermal_strain
temperature = temperature
[]
[PyC_thermal_strain]
type = ComputeThermalExpansionEigenstrain
block = 'buffer IPyC OPyC'
thermal_expansion_coeff = 5.5e-6
stress_free_temperature = 1346.0
eigenstrain_name = thermal_strain
temperature = temperature
[]
[SiC_thermal_strain]
type = ComputeThermalExpansionEigenstrain
block = SiC
thermal_expansion_coeff = 4.9e-6
stress_free_temperature = 1346.0
eigenstrain_name = thermal_strain
temperature = temperature
[]
[fuel_thermal]
type = UO2Thermal
thermal_conductivity_model = FINK_LUCUTA
block = fuel
temperature = temperature
burnup = burnup
[]
[fuel_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = fuel
youngs_modulus = 2e8
poissons_ratio = 0.345
[]
[fuel_den]
type = StrainAdjustedDensity
block = fuel
strain_free_density = 10810.0
[]
[buffer_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = buffer
youngs_modulus = 2e8
poissons_ratio = 0.345
[]
[buffer_temp]
type = HeatConductionMaterial
block = buffer
thermal_conductivity = 0.5
specific_heat = 720.0
[]
[buffer_den]
type = StrainAdjustedDensity
strain_free_density = 1000
block = buffer
[]
[PyC_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = 'IPyC OPyC'
youngs_modulus = 3.96e10
poissons_ratio = 0.33
[]
[PyC_temp]
type = HeatConductionMaterial
block = 'IPyC OPyC'
thermal_conductivity = 4.0
specific_heat = 720.0
[]
[PyC_den]
type = StrainAdjustedDensity
strain_free_density = 1880.0
block = 'IPyC OPyC'
[]
[SiC_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = SiC
youngs_modulus = 3.7e11
poissons_ratio = 0.13
[]
[SiC_temp]
type = HeatConductionMaterial
block = SiC
thermal_conductivity = 13.9
specific_heat = 620.0
[]
[SiC_den]
type = StrainAdjustedDensity
strain_free_density = 3200.0
block = SiC
[]
[characteristic_strength_SiC]
type = GenericConstantMaterial
prop_values = '9640000'
prop_names = 'characteristic_strength'
block = SiC
[]
[characteristic_strength_PyC]
type = GenericConstantMaterial
prop_values = '964000'
prop_names = 'characteristic_strength'
block = 'IPyC OPyC'
[]
[]
[Dampers]
[temperature]
type = MaxIncrement
variable = temperature
max_increment = 50
[]
[]
[Debug]
show_var_residual_norms = true
[]
[Executioner]
type = Transient
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
solve_type = 'PJFNK'
nl_rel_tol = 5e-6
nl_abs_tol = 1e-10
nl_max_its = 15
l_tol = 1e-3
l_max_its = 50
start_time = 0.0
num_steps = 2
dtmax = 2e5
dtmin = 1
[TimeStepper]
type = IterationAdaptiveDT
dt = 20
optimal_iterations = 6
iteration_window = 2
linear_iteration_ratio = 100
[]
[]
[Postprocessors]
[dt]
type = TimestepSize
[]
[burnup]
type = ElementExtremeValue
block = fuel
variable = burnup
[]
[fis_gas_produced]
type = ElementIntegralFisGasGeneratedSifgrs
block = fuel
[]
[fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = fuel
[]
[volumeTotal]
type = InternalVolume
boundary = exterior
[]
[volumeFuel]
type = InternalVolume
boundary = fuel_outer_boundary
[]
[volumeGas]
type = InternalVolume
boundary = 'fuel_outer_boundary IPyC_inner_boundary'
addition = -5.53e-11
execute_on = 'initial timestep_end'
[]
[volumeBufferShell]
type = InternalVolume
boundary = buffer_IPyC_boundary
[]
[ave_temp_interior]
type = SideAverageValue
boundary = buffer_IPyC_boundary
variable = temperature
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
[]
[total_fissions]
type = TimeIntegratedPostprocessor
value = total_fission_rate
[]
[avg_surface_temp]
type = SideAverageValue
variable = temperature
boundary = exterior
[]
[time_int_surf_temp]
type = TimeIntegratedPostprocessor
value = avg_surface_temp
[]
[co_production]
type = CarbonMonoxideProduction
total_fissions = total_fissions
time_integrated_triso_temperature = time_int_surf_temp
initial_enrichment = 0.14029
[]
[tang_SiC]
type = ElementalVariableValue
variable = stress_yy
elementid = 18
[]
[strength_SiC]
type = WeibullEffectiveMeanStrength
block = SiC
weibull_modulus = 6
[]
[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
[]
[]
[Outputs]
print_linear_residuals = true
time_step_interval = 1
csv = true
perf_graph = 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
[]
(assessment/TRISO/validation/AGR-1/AGR-1_action.i)
#COMPACT = <compact_id>
#DATA_FILE = <data_file_name>
[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
mass_source_property_OPyC = 7.06e-7 # Default = UCO fuel kernel
extra_vector_tags = 'ref'
use_displaced_mesh = false
[]
[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
[]
[]
[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)'
[]
[]
[BCs]
# fix temperature on free surface
[freesurf_temp]
type = FunctionDirichletBC
variable = temperature
function = temp_bc
boundary = exterior
[]
[]
[NuclearMaterials]
fission_operation = 'Normal'
physics = 'Thermal'
initial_temperature = 923.15
elements_tracked = 'Ag'
elements_initial_concentration = '0.0'
element_scaling = '1e14'
use_automatic_differentiation = false
[ParticleFuel]
[UCO]
fuel_type = UCO
particle_fuel_models = 'Burnup Diffusion'
diffusion_1st_coefficients = '6.7e-9'
diffusion_1st_activation_energies = '165e3'
diffusion_2nd_coefficients = '0'
diffusion_2nd_activation_energies = '0'
block = fuel
fission_rate_function = fission_rate
fast_neutron_fluence_function = fast_neutron_fluence
initial_density = 10400.0
average_grain_radius = 10e-6
triso_geometry = particle_geometry
[]
[]
[ParticleLayers]
layers_models = 'Diffusion'
fuel_type = UCO
[SiC]
[SiC_layer]
block = SiC
diffusion_1st_coefficients = '3.6e-9'
diffusion_1st_activation_energies = '215e3'
diffusion_2nd_coefficients = '0'
diffusion_2nd_activation_energies = '0'
initial_density = 3200.0
thermal_conductivity_model = miller
[]
[]
[IPyC]
[IPyC_layer]
block = IPyC
diffusion_1st_coefficients = '5.3e-9'
diffusion_1st_activation_energies = '154e3'
initial_density = 1900.0
thermal_conductivity = 4.0
specific_heat = 720.0
[]
[]
[OPyC]
[OPyC_layer]
block = OPyC
diffusion_1st_coefficients = '5.3e-9'
diffusion_1st_activation_energies = '154e3'
initial_density = 1900.0
thermal_conductivity = 4.0
specific_heat = 720.0
[]
[]
[Buffer]
[Buffer_layer]
block = buffer
diffusion_1st_coefficients = '1e-8'
diffusion_1st_activation_energies = '0'
initial_density = 1050.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'
[]
[]