- variableThe name of the variable that this residual object operates on
C++ Type:NonlinearVariableName
Unit:(no unit assumed)
Controllable:No
Description:The name of the variable that this residual object operates on
ArrheniusDiffusion
Diffusion with Arrhenius coefficient
Description
The kernel ArrheniusDiffusion is used for applying an Arrhenius diffusion term. If present, an ArrheniusDiffusionCoef material model must also be present.
Example Input Syntax
[Kernels<<<{"href": "../../syntax/Kernels/index.html"}>>>]
[diff]
type = ArrheniusDiffusion<<<{"description": "Diffusion with Arrhenius coefficient", "href": "ArrheniusDiffusion.html"}>>>
variable<<<{"description": "The name of the variable that this residual object operates on"}>>> = u
temperature<<<{"description": "The temperature variable."}>>> = temp
extra_vector_tags<<<{"description": "The extra tags for the vectors this Kernel should fill"}>>> = 'ref'
[]
[](test/tests/arrhenius_diffusion_coef/2d_arrhenius.i)Input Parameters
- arrhenius_prpty_namearrhenius_diffusion_coefProperty name for the Arrhenius diffusion coefficient.
Default:arrhenius_diffusion_coef
C++ Type:std::string
Controllable:No
Description:Property name for the Arrhenius diffusion coefficient.
- blockThe list of blocks (ids or names) that this object will be applied
C++ Type:std::vector<SubdomainName>
Controllable:No
Description:The list of blocks (ids or names) that this object will be applied
- displacementsThe displacements
C++ Type:std::vector<VariableName>
Unit:(no unit assumed)
Controllable:No
Description:The displacements
- temperatureThe temperature variable.
C++ Type:std::vector<VariableName>
Unit:(no unit assumed)
Controllable:No
Description:The temperature variable.
Optional Parameters
- absolute_value_vector_tagsThe tags for the vectors this residual object should fill with the absolute value of the residual contribution
C++ Type:std::vector<TagName>
Controllable:No
Description:The tags for the vectors this residual object should fill with the absolute value of the residual contribution
- extra_matrix_tagsThe extra tags for the matrices this Kernel should fill
C++ Type:std::vector<TagName>
Controllable:No
Description:The extra tags for the matrices this Kernel should fill
- extra_vector_tagsThe extra tags for the vectors this Kernel should fill
C++ Type:std::vector<TagName>
Controllable:No
Description:The extra tags for the vectors this Kernel should fill
- matrix_tagssystemThe tag for the matrices this Kernel should fill
Default:system
C++ Type:MultiMooseEnum
Options:nontime, system
Controllable:No
Description:The tag for the matrices this Kernel should fill
- vector_tagsnontimeThe tag for the vectors this Kernel should fill
Default:nontime
C++ Type:MultiMooseEnum
Options:nontime, time
Controllable:No
Description:The tag for the vectors this Kernel should fill
Contribution To Tagged Field Data Parameters
- control_tagsAdds user-defined labels for accessing object parameters via control logic.
C++ Type:std::vector<std::string>
Controllable:No
Description:Adds user-defined labels for accessing object parameters via control logic.
- diag_save_inThe name of auxiliary variables to save this Kernel's diagonal Jacobian contributions to. Everything about that variable must match everything about this variable (the type, what blocks it's on, etc.)
C++ Type:std::vector<AuxVariableName>
Unit:(no unit assumed)
Controllable:No
Description:The name of auxiliary variables to save this Kernel's diagonal Jacobian contributions to. Everything about that variable must match everything about this variable (the type, what blocks it's on, etc.)
- enableTrueSet the enabled status of the MooseObject.
Default:True
C++ Type:bool
Controllable:Yes
Description:Set the enabled status of the MooseObject.
- implicitTrueDetermines whether this object is calculated using an implicit or explicit form
Default:True
C++ Type:bool
Controllable:No
Description:Determines whether this object is calculated using an implicit or explicit form
- save_inThe name of auxiliary variables to save this Kernel's residual contributions to. Everything about that variable must match everything about this variable (the type, what blocks it's on, etc.)
C++ Type:std::vector<AuxVariableName>
Unit:(no unit assumed)
Controllable:No
Description:The name of auxiliary variables to save this Kernel's residual contributions to. Everything about that variable must match everything about this variable (the type, what blocks it's on, etc.)
- seed0The seed for the master random number generator
Default:0
C++ Type:unsigned int
Controllable:No
Description:The seed for the master random number generator
- use_displaced_meshFalseWhether or not this object should use the displaced mesh for computation. Note that in the case this is true but no displacements are provided in the Mesh block the undisplaced mesh will still be used.
Default:False
C++ Type:bool
Controllable:No
Description:Whether or not this object should use the displaced mesh for computation. Note that in the case this is true but no displacements are provided in the Mesh block the undisplaced mesh will still be used.
Advanced Parameters
- prop_getter_suffixAn optional suffix parameter that can be appended to any attempt to retrieve/get material properties. The suffix will be prepended with a '_' character.
C++ Type:MaterialPropertyName
Unit:(no unit assumed)
Controllable:No
Description:An optional suffix parameter that can be appended to any attempt to retrieve/get material properties. The suffix will be prepended with a '_' character.
- use_interpolated_stateFalseFor the old and older state use projected material properties interpolated at the quadrature points. To set up projection use the ProjectedStatefulMaterialStorageAction.
Default:False
C++ Type:bool
Controllable:No
Description:For the old and older state use projected material properties interpolated at the quadrature points. To set up projection use the ProjectedStatefulMaterialStorageAction.
Material Property Retrieval Parameters
Input Files
- (assessment/TRISO/benchmark/IAEA_CRP-6/diffusion/case_2a/case_2a.i)
- (assessment/TRISO/benchmark/IAEA_CRP-6/diffusion/case_6b/case_6b.i)
- (assessment/TRISO/validation/AGR-34/SharedFiles/capsule_dtf.i)
- (assessment/TRISO/benchmark/IAEA_CRP-6/diffusion/case_8b/case_8b.i)
- (assessment/TRISO/benchmark/IAEA_CRP-6/diffusion/case_4b/case_4b.i)
- (assessment/TRISO/benchmark/IAEA_CRP-6/diffusion/case_3d/case_3d.i)
- (assessment/TRISO/validation/AGR-1/AGR-1_Ag_Microstructure.i)
- (assessment/TRISO/benchmark/IAEA_CRP-6/diffusion/case_4a/case_4a.i)
- (test/tests/triso_failure/triso_failure_diffusivity.i)
- (assessment/TRISO/validation/AGR-34/SharedFiles/capsule_Sr.i)
- (test/tests/side_integral_mass_flux/side_integral_mass_flux_test.i)
- (examples/TRISO/pebble/triso_1d.i)
- (assessment/TRISO/validation/AGR-2/AGR-2_Kr.i)
- (assessment/TRISO/validation/AGR-34/SharedFiles/capsule_Cs.i)
- (assessment/TRISO/validation/AGR-34/Compacts/Ag/DTF/AGR-34_dtf_Ag.i)
- (assessment/TRISO/benchmark/IAEA_CRP-6/diffusion/case_1b/case_1b.i)
- (test/tests/triso_pebble/triso_1d.i)
- (examples/TRISO/pebble/triso_1d_failed.i)
- (assessment/TRISO/validation/AGR-34/Compacts/Ag/Driver/AGR-34_driver_Ag.i)
- (examples/TRISO/accident_simulation/triso2D_accident.i)
- (test/tests/triso/base_irradiation/triso1D_accident.i)
- (test/tests/arrhenius_diffusion_coef/check_jacobian.i)
- (assessment/TRISO/benchmark/IAEA_CRP-6/diffusion/case_5b/case_5b.i)
- (assessment/TRISO/validation/AGR-2/AGR-2_Cs.i)
- (assessment/TRISO/validation/AGR-2/AGR-2_Sr.i)
- (assessment/TRISO/validation/AGR-1/AGR-1_Ag_Microstructure_Irradiation.i)
- (assessment/TRISO/validation/AGR-34/Compacts/Cs/Driver/AGR-34_driver_Cs.i)
- (assessment/TRISO/benchmark/IAEA_CRP-6/diffusion/case_4c/case_4c.i)
- (assessment/TRISO/benchmark/IAEA_CRP-6/diffusion/case_10/case_10.i)
- (assessment/TRISO/benchmark/IAEA_CRP-6/diffusion/case_5a/case_5a.i)
- (assessment/TRISO/benchmark/IAEA_CRP-6/diffusion/case_8a/case_8a.i)
- (assessment/TRISO/benchmark/IAEA_CRP-6/diffusion/case_3c/case_3c.i)
- (assessment/TRISO/benchmark/IAEA_CRP-6/diffusion/case_3e/case_3e.i)
- (assessment/TRISO/validation/AGR-34/Compacts/Sr/DTF/AGR-34_dtf_Sr.i)
- (assessment/TRISO/benchmark/IAEA_CRP-6/diffusion/case_2b/case_2b.i)
- (test/tests/fcci_ht9/eutectic_thickness/fcci_ht9_2.i)
- (examples/TRISO/accident_simulation/triso2D_accident_mortar.i)
- (assessment/TRISO/validation/AGR-34/SharedFiles/capsule_Ag.i)
- (assessment/TRISO/validation/AGR-1/AGR-1_Kr.i)
- (assessment/TRISO/validation/AGR-2/AGR-2_Ag_Microstructure.i)
- (assessment/TRISO/benchmark/IAEA_CRP-6/diffusion/case_1a/case_1a.i)
- (test/tests/species_source/custom_source.i)
- (examples/TRISO/pebble/3D_pebble_with_failed_particles.i)
- (assessment/TRISO/benchmark/IAEA_CRP-6/diffusion/case_4d/case_4d.i)
- (examples/TRISO/parfume/parfume.i)
- (assessment/TRISO/validation/AGR-34/Compacts/Cs/DTF/AGR-34_dtf_Cs.i)
- (assessment/TRISO/validation/AGR-1/AGR-1_Sr.i)
- (test/tests/species_source/Kr_exact.i)
- (test/tests/species_source/Sr_exact.i)
- (assessment/TRISO/validation/AGR-1/AGR-1_Cs.i)
- (assessment/TRISO/benchmark/IAEA_CRP-6/diffusion/case_3b/case_3b.i)
- (assessment/TRISO/validation/AGR-34/Compacts/Sr/Driver/AGR-34_driver_Sr.i)
- (test/tests/fcci_ht9/eutectic_thickness/fcci_ht9.i)
- (assessment/TRISO/validation/AGR-34/SharedFiles/capsule_driver.i)
- (assessment/TRISO/validation/AGR-1/AGR-1_Ag.i)
- (examples/TRISO/pebble/3D_pebble.i)
- (test/tests/arrhenius_diffusion_coef/2d_arrhenius.i)
- (assessment/TRISO/benchmark/IAEA_CRP-6/diffusion/case_11/case_11.i)
- (test/tests/species_source/Ag_exact.i)
- (examples/TRISO/accident_simulation/triso1D_accident.i)
- (assessment/TRISO/benchmark/IAEA_CRP-6/diffusion/case_6a/case_6a.i)
- (examples/TRISO/parfume/parfume_un.i)
- (assessment/TRISO/benchmark/IAEA_CRP-6/diffusion/case_7b/case_7b.i)
- (assessment/TRISO/validation/AGR-2/AGR-2_Ag.i)
- (assessment/TRISO/validation/AGR-2/AGR-2_Ag_Microstructure_Irradiation.i)
- (assessment/TRISO/benchmark/IAEA_CRP-6/diffusion/case_9/case_9.i)
- (assessment/TRISO/benchmark/IAEA_CRP-6/diffusion/case_7a/case_7a.i)
- (assessment/TRISO/benchmark/IAEA_CRP-6/diffusion/case_3a/case_3a.i)
(test/tests/arrhenius_diffusion_coef/2d_arrhenius.i)
[Mesh]
[mesh]
type = FileMeshGenerator
file = square.e
[]
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[Variables]
[u]
order = FIRST
family = LAGRANGE
initial_condition = .5
[]
[temp]
order = FIRST
family = LAGRANGE
initial_condition = 1100
[]
[]
[Kernels]
[diff]
type = ArrheniusDiffusion
variable = u
temperature = temp
extra_vector_tags = 'ref'
[]
[heat]
type = HeatConduction
variable = temp
extra_vector_tags = 'ref'
[]
[]
[BCs]
[left]
type = DirichletBC
variable = u
boundary = 1
value = 0
[]
[right]
type = DirichletBC
variable = u
boundary = 2
value = 1
[]
[leftt]
type = DirichletBC
variable = temp
boundary = 1
value = 1100
[]
[rightt]
type = DirichletBC
variable = temp
boundary = 2
value = 1200
[]
[]
[Materials]
[UO2_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 1.0
specific_heat = 1.0
[]
[UO2_cesium_diffusion]
type = ArrheniusDiffusionCoef
d1 = 5.6e-8
q1 = 2.09e5
d2 = 5.2e-4
q2 = 3.62e5
block = 1
temperature = temp
[]
[]
[Executioner]
type = Steady
solve_type = NEWTON
line_search = none
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
nl_rel_tol = 1e-14
nl_abs_tol = 1e-50
nl_abs_step_tol = 1e-15
l_tol = 1e-14
l_max_its = 100
[]
[Outputs]
execute_on = 'timestep_end'
exodus = true
[]
(assessment/TRISO/benchmark/IAEA_CRP-6/diffusion/case_2a/case_2a.i)
[GlobalParams]
order = SECOND
family = LAGRANGE
[]
[Mesh]
coord_type = RSPHERICAL
[gen]
type = TRISO1DMeshGenerator
elem_type = EDGE3
coordinates = '0 250e-6 350e-6 390e-6'
mesh_density = '50 30 15'
block_names = 'fuel buffer IPyC'
[]
[]
[Problem]
[]
[Variables]
[conc_Cs]
[]
[]
[ICs]
[conc_Cs]
type = ConstantIC
block = fuel
value = 1
variable = conc_Cs
[]
[]
[AuxVariables]
[temperature]
initial_condition = 1473.15
[]
[Cs_diff_coef]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[mass_Cs_dt]
type = TimeDerivative
variable = conc_Cs
[]
[mass_Cs]
type = ArrheniusDiffusion
variable = conc_Cs
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
temperature = temperature
[]
[]
[AuxKernels]
[Cs_diff_coef]
type = MaterialRealAux
variable = Cs_diff_coef
property = arrhenius_diffusion_coef_Cs
execute_on = timestep_end
[]
[]
[BCs]
[freesurf_conc_Cs]
type = DirichletBC
variable = conc_Cs
boundary = exterior
value = 0.0
[]
[]
[Materials]
[fuel_conc_Cs]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 5.6e-8 # m^2/s
q1 = 209e3 # J/mol
d2 = 5.2e-4
q2 = 362e3
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[buffer_conc_Cs]
type = ArrheniusDiffusionCoef
block = buffer
d1 = 1e-8 # m^2/s
q1 = 0 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[IPyC_conc_Cs]
type = ArrheniusDiffusionCoef
block = IPyC
d1 = 6.3e-8 # m^2/s
q1 = 222e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[]
[Debug]
show_var_residual_norms = true
show_var_residual = 'conc_Cs'
[]
[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 = 1e-20
nl_max_its = 50
l_tol = 1e-4
l_max_its = 50
start_time = 0.0
end_time = 720000
num_steps = 700
dt = 3600
dtmax = 3600
dtmin = 3600
[]
[Postprocessors]
[release_Cs_inc]
type = SideIntegralMassFlux
variable = conc_Cs
boundary = exterior
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
execute_on = 'initial timestep_end'
[]
[released_Cs]
type = TimeIntegratedPostprocessor
value = release_Cs_inc
execute_on = 'initial timestep_end'
[]
[total_Cs]
type = ElementIntegralVariablePostprocessor
variable = conc_Cs
execute_on = 'initial'
[]
[x_Cs_released]
type = FractionalRelease
released = released_Cs
total = total_Cs
[]
[retained_Cs]
type = ElementIntegralVariablePostprocessor
variable = conc_Cs
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = false
exodus = true
[console]
type = Console
time_step_interval = 1
[]
[out]
type = CSV
execute_on = final
[]
[]
(assessment/TRISO/benchmark/IAEA_CRP-6/diffusion/case_6b/case_6b.i)
#
# Particle failure at 49, 115, and 200h after 1600 C (30430800 s).
# So, particle failure at 30607200, 30844800, and 31150800 s.
# A failure-free analysis is also needed (four in all).
# The compact has 1631 particles.
#
[GlobalParams]
order = SECOND
family = LAGRANGE
initial_enrichment = 0.0982
constant_expressions = 31525200.0
[]
[Mesh]
coord_type = RSPHERICAL
[gen]
type = TRISO1DMeshGenerator
elem_type = EDGE3
coordinates = '0 248.5e-6 342.5e-6 383.5e-6 419.5e-6 459.5e-6'
mesh_density = '50 30 15 15 15'
block_names = 'fuel buffer IPyC SiC OPyC'
bias = '1 1.25 1.25 1.25 1.25'
dual_bias = '0.8 0.8 0.8 0.8 1'
[]
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[Variables]
[conc_Cs]
[]
[conc_Ag]
[]
[conc_Sr]
[]
[]
[AuxVariables]
[temperature]
initial_condition = 1348.15
[]
[Cs_diff_coef]
order = CONSTANT
family = MONOMIAL
[]
[Ag_diff_coef]
order = CONSTANT
family = MONOMIAL
[]
[Sr_diff_coef]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[temperature]
type = PiecewiseLinear
data_file = temperature_history.dat
format = columns
[]
[]
[Kernels]
[mass_Cs_dt]
type = TimeDerivative
variable = conc_Cs
[]
[mass_Cs]
type = ArrheniusDiffusion
variable = conc_Cs
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
temperature = temperature
extra_vector_tags = 'ref'
[]
[mass_source_Cs]
type = SpeciesSourceRate
variable = conc_Cs
property_name = Cs_generation
block = fuel
[]
[mass_Ag_dt]
type = TimeDerivative
variable = conc_Ag
[]
[mass_Ag]
type = ArrheniusDiffusion
variable = conc_Ag
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
temperature = temperature
extra_vector_tags = 'ref'
[]
[mass_source_Ag]
type = SpeciesSourceRate
variable = conc_Ag
property_name = Ag_generation
block = fuel
[]
[mass_Sr_dt]
type = TimeDerivative
variable = conc_Sr
[]
[mass_Sr]
type = ArrheniusDiffusion
variable = conc_Sr
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
temperature = temperature
extra_vector_tags = 'ref'
[]
[mass_source_Sr]
type = SpeciesSourceRate
variable = conc_Sr
property_name = Sr_generation
block = fuel
[]
[]
[AuxKernels]
[Cs_diff_coef]
type = MaterialRealAux
variable = Cs_diff_coef
property = arrhenius_diffusion_coef_Cs
execute_on = timestep_end
[]
[Ag_diff_coef]
type = MaterialRealAux
variable = Ag_diff_coef
property = arrhenius_diffusion_coef_Ag
execute_on = timestep_end
[]
[Sr_diff_coef]
type = MaterialRealAux
variable = Sr_diff_coef
property = arrhenius_diffusion_coef_Sr
execute_on = timestep_end
[]
[temperature]
type = FunctionAux
function = temperature
variable = temperature
[]
[]
[BCs]
[freesurf_conc_Cs]
type = DirichletBC
variable = conc_Cs
boundary = exterior
value = 0.0
[]
[freesurf_conc_Ag]
type = DirichletBC
variable = conc_Ag
boundary = exterior
value = 0.0
[]
[freesurf_conc_Sr]
type = DirichletBC
variable = conc_Sr
boundary = exterior
value = 0.0
[]
[]
[Materials]
[burnup]
type = GenericFunctionMaterial
block = fuel
prop_names = 'burnup'
prop_values = 'if(t<30326400,0.139/30326400*t,0.139)'
[]
[fission_rate]
type = GenericFunctionMaterial
block = fuel
prop_names = 'fission_rate'
# 1.105e20 = 0.139/30326400*10810/.27*6.0221409e23
prop_values = 'if(t<30326400,1.105e20,0)'
[]
[fuel_conc_Cs]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 5.6e-8 # m^2/s
q1 = 209e3 # J/mol
d2 = 5.2e-4
q2 = 362e3
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[mass_source_Cs_property]
type = SpeciesSourceMaterial
block = fuel
property_name = Cs_generation
kind = Cs
[]
[buffer_conc_Cs]
type = ArrheniusDiffusionCoef
block = buffer
d1 = 1e-8 # m^2/s
q1 = 0 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[IPyC_conc_Cs]
type = ArrheniusDiffusionCoef
block = IPyC
d1 = 6.3e-8 # m^2/s
q1 = 222e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[SiC_conc_Cs_intact]
type = ArrheniusDiffusionCoef
block = SiC
d1 = 5.5e-14 # m^2/s
d1_function = 'if(t<30326400,exp(7.5e25/30326400*t/5e25),exp(7.5e25/5e25))'
q1 = 125e3 # J/mol
d2 = 1.6e-2
q2 = 514e3
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs_intact
[]
[time]
type = TimeStepMaterial
[]
[SiC_conc_Cs]
type = ParsedMaterial
block = SiC
property_name = arrhenius_diffusion_coef_Cs
coupled_variables = 'temperature'
material_property_names = 'time arrhenius_diffusion_coef_Cs_intact'
constant_names = 'failure_time'
expression = 'if(time<=failure_time, arrhenius_diffusion_coef_Cs_intact, 1e-6)'
[]
[SiC_conc_Cs_dT]
type = ParsedMaterial
block = SiC
property_name = arrhenius_diffusion_coef_Cs_dT
coupled_variables = 'temperature'
material_property_names = 'time arrhenius_diffusion_coef_Cs_intact_dT'
constant_names = 'failure_time'
expression = 'if(time<=failure_time, arrhenius_diffusion_coef_Cs_intact_dT, 0)'
[]
[OPyC_conc_Cs]
type = ArrheniusDiffusionCoef
block = OPyC
d1 = 6.3e-8 # m^2/s
q1 = 222e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[fuel_conc_Ag]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 6.7e-9 # m^2/s
q1 = 165e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[mass_source_Ag_property]
type = SpeciesSourceMaterial
block = fuel
property_name = Ag_generation
kind = Ag
[]
[buffer_conc_Ag]
type = ArrheniusDiffusionCoef
block = buffer
d1 = 1e-8 # m^2/s
q1 = 0 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[IPyC_conc_Ag]
type = ArrheniusDiffusionCoef
block = IPyC
d1 = 5.3e-9 # m^2/s
q1 = 154e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[SiC_conc_Ag_intact]
type = ArrheniusDiffusionCoef
block = SiC
d1 = 3.6e-9 # m^2/s
q1 = 215e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag_intact
[]
[SiC_conc_Ag]
type = ParsedMaterial
block = SiC
property_name = arrhenius_diffusion_coef_Ag
material_property_names = 'time arrhenius_diffusion_coef_Ag_intact'
constant_names = 'failure_time'
expression = 'if(time<=failure_time, arrhenius_diffusion_coef_Ag_intact, 1e-6)'
[]
[SiC_conc_Ag_dT]
type = ParsedMaterial
block = SiC
property_name = arrhenius_diffusion_coef_Ag_dT
material_property_names = 'time arrhenius_diffusion_coef_Ag_intact_dT'
constant_names = 'failure_time'
expression = 'if(time<=failure_time, arrhenius_diffusion_coef_Ag_intact_dT, 0)'
[]
[OPyC_conc_Ag]
type = ArrheniusDiffusionCoef
block = OPyC
d1 = 5.3e-9 # m^2/s
q1 = 154e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[fuel_conc_Sr]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 2.2e-3 # m^2/s
q1 = 488e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
[]
[mass_source_Sr_property]
type = SpeciesSourceMaterial
block = fuel
property_name = Sr_generation
kind = Sr
[]
[buffer_conc_Sr]
type = ArrheniusDiffusionCoef
block = buffer
d1 = 1e-8 # m^2/s
q1 = 0 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
[]
[IPyC_conc_Sr]
type = ArrheniusDiffusionCoef
block = IPyC
d1 = 2.3e-6 # m^2/s
q1 = 197e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
[]
[SiC_conc_Sr_intact]
type = ArrheniusDiffusionCoef
block = SiC
d1 = 1.2e-9 # m^2/s
q1 = 205e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr_intact
[]
[SiC_conc_Sr]
type = ParsedMaterial
block = SiC
property_name = arrhenius_diffusion_coef_Sr
material_property_names = 'time arrhenius_diffusion_coef_Sr_intact'
constant_names = 'failure_time'
expression = 'if(time<=failure_time, arrhenius_diffusion_coef_Sr_intact, 1e-6)'
[]
[SiC_conc_Sr_dT]
type = ParsedMaterial
block = SiC
property_name = arrhenius_diffusion_coef_Sr_dT
material_property_names = 'time arrhenius_diffusion_coef_Sr_intact_dT'
constant_names = 'failure_time'
expression = 'if(time<=failure_time, arrhenius_diffusion_coef_Sr_intact_dT, 0)'
[]
[OPyC_conc_Sr]
type = ArrheniusDiffusionCoef
block = OPyC
d1 = 2.3e-6 # m^2/s
q1 = 197e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
[]
[]
[Debug]
show_var_residual_norms = true
show_var_residual = 'conc_Cs conc_Ag'
[]
[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 = 3e-19
nl_max_its = 50
l_tol = 1e-4
l_max_its = 50
start_time = 0.0
end_time = 31525200
num_steps = 1450
dt = 86400
dtmax = 86400
#dtmin = 86400
[TimeStepper]
type = FunctionDT
function = 'if(t<30326400,86400,
if(t<30430800,1800,
3600))'
[]
[]
[Postprocessors]
[_temp]
type = NodalExtremeValue
variable = temperature
[]
[release_Cs_inc]
type = SideIntegralMassFlux
variable = conc_Cs
boundary = exterior
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
execute_on = 'initial timestep_end'
[]
[released_Cs]
type = TimeIntegratedPostprocessor
value = release_Cs_inc
execute_on = 'initial timestep_end'
[]
[total_Cs]
type = ElementIntegralMaterialProperty
mat_prop = Cs_generation_total
block = fuel
execute_on = 'initial timestep_end'
[]
[x_Cs_released_overall]
type = FractionalRelease
released = released_Cs
total = total_Cs
execute_on = 'initial timestep_end'
[]
[x_Cs_released]
type = FractionalRelease
released = released_Cs
total = total_Cs
execute_on = 'initial timestep_end'
start_time = 30326400
[]
[retained_Cs]
type = ElementIntegralVariablePostprocessor
variable = conc_Cs
execute_on = 'initial timestep_end'
[]
[release_Ag_inc]
type = SideIntegralMassFlux
variable = conc_Ag
boundary = exterior
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
execute_on = 'initial timestep_end'
[]
[released_Ag]
type = TimeIntegratedPostprocessor
value = release_Ag_inc
execute_on = 'initial timestep_end'
[]
[total_Ag]
type = ElementIntegralMaterialProperty
mat_prop = Ag_generation_total
block = fuel
execute_on = 'initial timestep_end'
[]
[x_Ag_released_overall]
type = FractionalRelease
released = released_Ag
total = total_Ag
execute_on = 'initial timestep_end'
[]
[x_Ag_released]
type = FractionalRelease
released = released_Ag
total = total_Ag
execute_on = 'initial timestep_end'
start_time = 30326400
[]
[retained_Ag]
type = ElementIntegralVariablePostprocessor
variable = conc_Ag
execute_on = 'initial timestep_end'
[]
[release_Sr_inc]
type = SideIntegralMassFlux
variable = conc_Sr
boundary = exterior
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
execute_on = 'initial timestep_end'
[]
[released_Sr]
type = TimeIntegratedPostprocessor
value = release_Sr_inc
execute_on = 'initial timestep_end'
[]
[total_Sr]
type = ElementIntegralMaterialProperty
mat_prop = Sr_generation_total
block = fuel
execute_on = 'initial timestep_end'
[]
[x_Sr_released_overall]
type = FractionalRelease
released = released_Sr
total = total_Sr
execute_on = 'initial timestep_end'
[]
[x_Sr_released]
type = FractionalRelease
released = released_Sr
total = total_Sr
execute_on = 'initial timestep_end'
start_time = 30326400
[]
[retained_Sr]
type = ElementIntegralVariablePostprocessor
variable = conc_Sr
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = false
exodus = true
[console]
type = Console
time_step_interval = 1
[]
[out]
type = CSV
[]
[out_final]
type = CSV
execute_on = final
[]
[]
(assessment/TRISO/validation/AGR-34/SharedFiles/capsule_dtf.i)
kernel_radius = 178.65e-6
PyC_thickness = 20e-6
coordinates1 = '${fparse kernel_radius}'
coordinates2 = '${fparse coordinates1+PyC_thickness}'
[GlobalParams]
order = SECOND
family = LAGRANGE
initial_enrichment = 0.19717 # [wt-]
energy_per_fission = 3.204e-11 # [J/fission]
O_U = 1.430 # Initial oxygen to uranium atom ratio
C_U = 0.361 # Initial carbon to uranium atom ratio
[]
[Mesh]
coord_type = RSPHERICAL
[mesh]
type = TRISO1DMeshGenerator
elem_type = EDGE3
coordinates = '0 ${coordinates1} ${coordinates2}'
mesh_density = '18 14'
block_names = 'fuel PyC'
[]
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[UserObjects]
[particle_geometry]
type = TRISOGeometry
outer_OPyC = PyC_outer_boundary
outer_SiC = PyC_outer_boundary
outer_IPyC = PyC_outer_boundary
inner_IPyC = PyC_outer_boundary
outer_buffer = PyC_outer_boundary
outer_kernel = fuel_outer_boundary
include_particle = true
include_pebble = false
[]
[]
[Variables]
[temperature]
initial_condition = 1200
[]
[conc_Ag]
initial_condition = 0.0
scaling = 1e12 #1e18
[]
[conc_Cs]
initial_condition = 0.0
scaling = 1e12 #1e18
[]
[conc_Sr]
initial_condition = 0.0
scaling = 1e12 #1e18
[]
[]
[AuxVariables]
[fission_rate]
order = CONSTANT
family = MONOMIAL
[]
[burnup]
order = CONSTANT
family = MONOMIAL
[]
[fast_neutron_flux]
order = CONSTANT
family = MONOMIAL
[]
[fast_neutron_fluence]
order = CONSTANT
family = MONOMIAL
[]
[fis_gas_produced]
order = CONSTANT
family = MONOMIAL
[]
[fis_gas_released]
order = CONSTANT
family = MONOMIAL
[]
[Ag_diff_coef]
order = CONSTANT
family = MONOMIAL
[]
[Cs_diff_coef]
order = CONSTANT
family = MONOMIAL
[]
[Sr_diff_coef]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[temp_bc]
type = PiecewiseLinear
x_index_in_file = 0
y_index_in_file = 1
xy_in_file_only = false
format = columns
data_file='AGR-34_capsule_daily_data/Cap1Temps.csv'
[]
[power_history]
type = PiecewiseLinear
x = '0 76e6'
y = '1 1'
[]
[fission_rate]
type = LinearCombinationFunction
functions = power_history
w = 4.8156e+19
[]
[]
[Kernels]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temperature
extra_vector_tags = 'ref'
[]
[heat]
type = HeatConduction
variable = temperature
extra_vector_tags = 'ref'
[]
[heat_source]
type = NeutronHeatSource
variable = temperature
block = fuel
fission_rate = fission_rate
extra_vector_tags = 'ref'
[]
[mass_Ag_dt]
type = TimeDerivative
variable = conc_Ag
extra_vector_tags = 'ref'
[]
[mass_Ag]
type = ArrheniusDiffusion
variable = conc_Ag
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
extra_vector_tags = 'ref'
[]
[mass_source_Ag]
type = SpeciesSourceRate
variable = conc_Ag
property_name = Ag_generation
block = fuel
extra_vector_tags = 'ref'
[]
[mass_Cs_dt]
type = TimeDerivative
variable = conc_Cs
extra_vector_tags = 'ref'
[]
[mass_Cs]
type = ArrheniusDiffusion
variable = conc_Cs
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
extra_vector_tags = 'ref'
[]
[mass_source_Cs]
type = SpeciesSourceRate
variable = conc_Cs
property_name = Cs_generation
block = fuel
extra_vector_tags = 'ref'
[]
[mass_Sr_dt]
type = TimeDerivative
variable = conc_Sr
extra_vector_tags = 'ref'
[]
[mass_Sr]
type = ArrheniusDiffusion
variable = conc_Sr
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
extra_vector_tags = 'ref'
[]
[mass_source_Sr]
type = SpeciesSourceRate
variable = conc_Sr
property_name = Sr_generation
block = fuel
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[fissionrate]
type = MaterialRealAux
variable = fission_rate
property = fission_rate
block = fuel
execute_on = timestep_begin
[]
[burnup]
type = MaterialRealAux
variable = burnup
property = burnup
block = fuel
execute_on = timestep_begin
[]
[fast_neutron_flux]
type = MaterialRealAux
variable = fast_neutron_flux
property = fast_neutron_flux
execute_on = timestep_begin
[]
[fast_neutron_fluence]
type = MaterialRealAux
variable = fast_neutron_fluence
property = fast_neutron_fluence
execute_on = timestep_begin
[]
[Ag_diff_coef]
type = MaterialRealAux
variable = Ag_diff_coef
property = arrhenius_diffusion_coef_Ag
execute_on = timestep_end
[]
[Cs_diff_coef]
type = MaterialRealAux
variable = Cs_diff_coef
property = arrhenius_diffusion_coef_Cs
execute_on = timestep_end
[]
[Sr_diff_coef]
type = MaterialRealAux
variable = Sr_diff_coef
property = arrhenius_diffusion_coef_Sr
execute_on = timestep_end
[]
[]
[BCs]
[freesurf_temp]
type = FunctionDirichletBC
variable = temperature
function = temp_bc
boundary = exterior
extra_vector_tags = 'ref'
[]
[freesurf_conc_Ag]
type = DirichletBC
variable = conc_Ag
boundary = exterior
value = 0.0
[]
[freesurf_conc_Cs]
type = DirichletBC
variable = conc_Cs
boundary = exterior
value = 0.0
[]
[freesurf_conc_Sr]
type = DirichletBC
variable = conc_Sr
boundary = exterior
value = 0.0
[]
[]
[Materials]
[fission_rate]
type = GenericFunctionMaterial
prop_names = fission_rate
prop_values = fission_rate
[]
[fast_neutron_flux]
type = FastNeutronFlux
calculate_fluence = true
flux_function = power_history
factor = 0.5519e+18
[]
[UCO_burnup]
type = TRISOBurnup
initial_density = ${initial_fuel_density}
[]
[UCO_thermal]
type = UCOThermal
block = fuel
temperature = temperature
[]
[UCO_density]
type = StrainAdjustedDensity
block = fuel
strain_free_density = 11098.0
[]
[fission_gas_release]
type = UCOFGR
block = fuel
average_grain_radius = 10e-6
temperature = temperature
triso_geometry = particle_geometry
[]
# Arrhenius diffusion coefficients for kernel, PyC, and SiC
# come from IAEA TECDOC-978, French parameters.
[fuel_conc_Ag]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 1.0e-6 # m^2/s
q1 = 0.0
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[fuel_conc_Cs]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 1.0e-6 # m^2/s
q1 = 0.0
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[fuel_conc_Sr]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 1.0e-6 # m^2/s
q1 = 0.0
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
[]
[mass_source_Ag_property]
type = SpeciesSourceMaterial
property_name = Ag_generation
kind = Ag
block = fuel
[]
[mass_source_Cs_property]
type = SpeciesSourceMaterial
property_name = Cs_generation
kind = Cs
block = fuel
[]
[mass_source_Sr_property]
type = SpeciesSourceMaterial
property_name = Sr_generation
kind = Sr
block = fuel
[]
### PyC properties
[PyC_thermal]
type = HeatConductionMaterial
block = PyC
thermal_conductivity = 4.0
specific_heat = 720.0
[]
[PyC_density]
type = StrainAdjustedDensity
block = PyC
density = 1988.0
[]
[PyC_conc_Ag]
type = ArrheniusDiffusionCoef
block = PyC
d1 = 1.0e-6 # m^2/s
q1 = 0.0
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[PyC_conc_Cs]
type = ArrheniusDiffusionCoef
block = PyC
d1 = 1.0e-6 # m^2/s
q1 = 0.0
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[PyC_conc_Sr]
type = ArrheniusDiffusionCoef
block = PyC
d1 = 1.0e-6 # m^2/s
q1 = 0.0
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
[]
[]
[Dampers]
[temp]
type = MaxIncrement
variable = temperature
max_increment = 50
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Debug]
show_var_residual_norms = true
show_var_residual = 'temperature conc_Ag conc_Cs conc_Sr'
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
line_search = 'none'
nl_rel_tol = 1e-9
nl_abs_tol = 1e-9
nl_max_its = 20
l_tol = 1e-4
l_max_its = 50
start_time = 0.0
end_time = 31890240
dt = 86400
[]
[Postprocessors]
[release_heat_inc]
type = SideIntegralMassFlux
variable = temperature
boundary = exterior
arrhenius_prpty_name = thermal_conductivity
execute_on = 'initial timestep_end'
[]
[release_Ag_inc]
type = SideIntegralMassFlux
variable = conc_Ag
boundary = exterior
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
execute_on = 'initial timestep_end'
[]
[released_Ag]
type = TimeIntegratedPostprocessor # computes time integration of value
value = release_Ag_inc
execute_on = 'initial timestep_end'
[]
[total_Ag]
type = ElementIntegralMaterialProperty
mat_prop = Ag_generation_total
block = fuel
execute_on = 'initial timestep_end'
[]
[x_Ag_released]
type = FractionalRelease
released = released_Ag
total = total_Ag
[]
[retained_Ag]
type = ElementIntegralVariablePostprocessor
variable = conc_Ag
[]
[release_Cs_inc]
type = SideIntegralMassFlux
variable = conc_Cs
boundary = exterior
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
execute_on = 'initial timestep_end'
[]
[released_Cs]
type = TimeIntegratedPostprocessor
value = release_Cs_inc
execute_on = 'initial timestep_end'
[]
[total_Cs]
type = ElementIntegralMaterialProperty
mat_prop = Cs_generation_total
block = fuel
execute_on = 'initial timestep_end'
[]
[x_Cs_released]
type = FractionalRelease
released = released_Cs
total = total_Cs
[]
[retained_Cs]
type = ElementIntegralVariablePostprocessor
variable = conc_Cs
[]
[release_Sr_inc]
type = SideIntegralMassFlux
variable = conc_Sr
boundary = exterior
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
execute_on = 'initial timestep_end'
[]
[released_Sr]
type = TimeIntegratedPostprocessor
value = release_Sr_inc
execute_on = 'initial timestep_end'
[]
[total_Sr]
type = ElementIntegralMaterialProperty
mat_prop = Sr_generation_total
block = fuel
execute_on = 'initial timestep_end'
[]
[x_Sr_released]
type = FractionalRelease
released = released_Sr
total = total_Sr
[]
[retained_Sr]
type = ElementIntegralVariablePostprocessor
variable = conc_Sr
[]
[fis_gas_produced]
type = ElementIntegralMaterialProperty
mat_prop = fis_gas_produced
block = fuel
execute_on = 'initial timestep_end'
[]
[fis_gas_released]
type = ElementIntegralMaterialProperty
mat_prop = fis_gas_released
block = fuel
execute_on = 'initial timestep_end'
[]
### Postprocessors for CO production
[total_fission_rate]
type = ElementIntegralPower
variable = temperature
fission_rate = fission_rate
block = fuel
energy_per_fission = 1.0
execute_on = 'initial timestep_end'
[]
[total_fissions]
type = TimeIntegratedPostprocessor
value = total_fission_rate
execute_on = 'initial timestep_end'
[]
##### irradiation conditions
[particle_power]
type = ElementIntegralPower
variable = temperature
use_material_fission_rate = true
fission_rate_material = fission_rate
block = fuel
execute_on = 'initial timestep_end'
[]
[max_fluence]
type = ElementExtremeValue
variable = fast_neutron_fluence
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[max_burnup]
type = ElementExtremeValue
variable = burnup
block = fuel
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = false
print_linear_converged_reason = false
print_nonlinear_converged_reason = false
exodus = false
csv = true
[]
(assessment/TRISO/benchmark/IAEA_CRP-6/diffusion/case_8b/case_8b.i)
#
# Particle failure at 50, 55, 65, 70, 75, 80, 85, 89, 92, and 97h after 1800 C.
# A failure-free analysis is also needed (eleven in all).
# The compact has 16350 particles.
#
[GlobalParams]
order = SECOND
family = LAGRANGE
initial_enrichment = 0.0982
constant_expressions = 31690800.0
[]
[Mesh]
coord_type = RSPHERICAL
[gen]
type = TRISO1DMeshGenerator
elem_type = EDGE3
coordinates = '0 248.5e-6 342.5e-6 383.5e-6 419.5e-6 459.5e-6'
mesh_density = '50 30 15 15 15'
block_names = 'fuel buffer IPyC SiC OPyC'
bias = '1 1.25 1.25 1.25 1.25'
dual_bias = '0.8 0.8 0.8 0.8 1'
[]
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[Variables]
[conc_Cs]
[]
[conc_Ag]
[]
[conc_Sr]
[]
[]
[AuxVariables]
[temperature]
initial_condition = 1114.65
[]
[Cs_diff_coef]
order = CONSTANT
family = MONOMIAL
[]
[Ag_diff_coef]
order = CONSTANT
family = MONOMIAL
[]
[Sr_diff_coef]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[temperature]
type = PiecewiseLinear
data_file = temperature_history.dat
format = columns
[]
[]
[Kernels]
[mass_Cs_dt]
type = TimeDerivative
variable = conc_Cs
[]
[mass_Cs]
type = ArrheniusDiffusion
variable = conc_Cs
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
temperature = temperature
extra_vector_tags = 'ref'
[]
[mass_source_Cs]
type = SpeciesSourceRate
variable = conc_Cs
property_name = Cs_generation
block = fuel
[]
[mass_Ag_dt]
type = TimeDerivative
variable = conc_Ag
[]
[mass_Ag]
type = ArrheniusDiffusion
variable = conc_Ag
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
temperature = temperature
extra_vector_tags = 'ref'
[]
[mass_source_Ag]
type = SpeciesSourceRate
variable = conc_Ag
property_name = Ag_generation
block = fuel
[]
[mass_Sr_dt]
type = TimeDerivative
variable = conc_Sr
[]
[mass_Sr]
type = ArrheniusDiffusion
variable = conc_Sr
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
temperature = temperature
extra_vector_tags = 'ref'
[]
[mass_source_Sr]
type = SpeciesSourceRate
variable = conc_Sr
property_name = Sr_generation
block = fuel
[]
[]
[AuxKernels]
[Cs_diff_coef]
type = MaterialRealAux
variable = Cs_diff_coef
property = arrhenius_diffusion_coef_Cs
execute_on = timestep_end
[]
[Ag_diff_coef]
type = MaterialRealAux
variable = Ag_diff_coef
property = arrhenius_diffusion_coef_Ag
execute_on = timestep_end
[]
[Sr_diff_coef]
type = MaterialRealAux
variable = Sr_diff_coef
property = arrhenius_diffusion_coef_Sr
execute_on = timestep_end
[]
[temperature]
type = FunctionAux
function = temperature
variable = temperature
[]
[]
[BCs]
[freesurf_conc_Cs]
type = DirichletBC
variable = conc_Cs
boundary = exterior
value = 0.0
[]
[freesurf_conc_Ag]
type = DirichletBC
variable = conc_Ag
boundary = exterior
value = 0.0
[]
[freesurf_conc_Sr]
type = DirichletBC
variable = conc_Sr
boundary = exterior
value = 0.0
[]
[]
[Materials]
[burnup]
type = GenericFunctionMaterial
block = fuel
prop_names = 'burnup'
prop_values = 'if(t<31017600,0.106/31017600*t,0.106)'
[]
[fission_rate]
type = GenericFunctionMaterial
block = fuel
prop_names = 'fission_rate'
# 8.24e19 = 0.106/31017600*10810/.27*6.0221409e23
prop_values = 'if(t<31017600,8.24e19,0)'
[]
[fuel_conc_Cs]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 5.6e-8 # m^2/s
q1 = 209e3 # J/mol
d2 = 5.2e-4
q2 = 362e3
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[mass_source_Cs_property]
type = SpeciesSourceMaterial
block = fuel
property_name = Cs_generation
kind = Cs
[]
[buffer_conc_Cs]
type = ArrheniusDiffusionCoef
block = buffer
d1 = 1e-8 # m^2/s
q1 = 0 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[IPyC_conc_Cs]
type = ArrheniusDiffusionCoef
block = IPyC
d1 = 6.3e-8 # m^2/s
q1 = 222e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[SiC_conc_Cs_intact]
type = ArrheniusDiffusionCoef
block = SiC
d1 = 5.5e-14 # m^2/s
d1_function = 'if(t<31017600,exp(5.9e25/31017600*t/5e25),exp(5.9e25/5e25))'
q1 = 125e3 # J/mol
d2 = 1.6e-2
q2 = 514e3
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs_intact
[]
[time]
type = TimeStepMaterial
[]
[SiC_conc_Cs]
type = ParsedMaterial
block = SiC
property_name = arrhenius_diffusion_coef_Cs
coupled_variables = 'temperature'
material_property_names = 'time arrhenius_diffusion_coef_Cs_intact'
constant_names = 'failure_time'
expression = 'if(time<=failure_time, arrhenius_diffusion_coef_Cs_intact, 1e-6)'
[]
[SiC_conc_Cs_dT]
type = ParsedMaterial
block = SiC
property_name = arrhenius_diffusion_coef_Cs_dT
coupled_variables = 'temperature'
material_property_names = 'time arrhenius_diffusion_coef_Cs_intact_dT'
constant_names = 'failure_time'
expression = 'if(time<=failure_time, arrhenius_diffusion_coef_Cs_intact_dT, 0)'
[]
[OPyC_conc_Cs]
type = ArrheniusDiffusionCoef
block = OPyC
d1 = 6.3e-8 # m^2/s
q1 = 222e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[fuel_conc_Ag]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 6.7e-9 # m^2/s
q1 = 165e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[mass_source_Ag_property]
type = SpeciesSourceMaterial
block = fuel
property_name = Ag_generation
kind = Ag
[]
[buffer_conc_Ag]
type = ArrheniusDiffusionCoef
block = buffer
d1 = 1e-8 # m^2/s
q1 = 0 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[IPyC_conc_Ag]
type = ArrheniusDiffusionCoef
block = IPyC
d1 = 5.3e-9 # m^2/s
q1 = 154e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[SiC_conc_Ag_intact]
type = ArrheniusDiffusionCoef
block = SiC
d1 = 3.6e-9 # m^2/s
q1 = 215e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag_intact
[]
[SiC_conc_Ag]
type = ParsedMaterial
block = SiC
property_name = arrhenius_diffusion_coef_Ag
coupled_variables = 'temperature'
material_property_names = 'time arrhenius_diffusion_coef_Ag_intact'
constant_names = 'failure_time'
expression = 'if(time<=failure_time, arrhenius_diffusion_coef_Ag_intact, 1e-6)'
[]
[SiC_conc_Ag_dT]
type = ParsedMaterial
block = SiC
property_name = arrhenius_diffusion_coef_Ag_dT
coupled_variables = 'temperature'
material_property_names = 'time arrhenius_diffusion_coef_Ag_intact_dT'
constant_names = 'failure_time'
expression = 'if(time<=failure_time, arrhenius_diffusion_coef_Ag_intact_dT, 0)'
[]
[OPyC_conc_Ag]
type = ArrheniusDiffusionCoef
block = OPyC
d1 = 5.3e-9 # m^2/s
q1 = 154e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[fuel_conc_Sr]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 2.2e-3 # m^2/s
q1 = 488e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
[]
[mass_source_Sr_property]
type = SpeciesSourceMaterial
block = fuel
property_name = Sr_generation
kind = Sr
[]
[buffer_conc_Sr]
type = ArrheniusDiffusionCoef
block = buffer
d1 = 1e-8 # m^2/s
q1 = 0 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
[]
[IPyC_conc_Sr]
type = ArrheniusDiffusionCoef
block = IPyC
d1 = 2.3e-6 # m^2/s
q1 = 197e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
[]
[SiC_conc_Sr_intact]
type = ArrheniusDiffusionCoef
block = SiC
d1 = 1.2e-9 # m^2/s
q1 = 205e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr_intact
[]
[SiC_conc_Sr]
type = ParsedMaterial
block = SiC
property_name = arrhenius_diffusion_coef_Sr
coupled_variables = 'temperature'
material_property_names = 'time arrhenius_diffusion_coef_Sr_intact'
constant_names = 'failure_time'
expression = 'if(time<=failure_time, arrhenius_diffusion_coef_Sr_intact, 1e-6)'
[]
[SiC_conc_Sr_dT]
type = ParsedMaterial
block = SiC
property_name = arrhenius_diffusion_coef_Sr_dT
coupled_variables = 'temperature'
material_property_names = 'time arrhenius_diffusion_coef_Sr_intact_dT'
constant_names = 'failure_time'
expression = 'if(time<=failure_time, arrhenius_diffusion_coef_Sr_intact_dT, 0)'
[]
[OPyC_conc_Sr]
type = ArrheniusDiffusionCoef
block = OPyC
d1 = 2.3e-6 # m^2/s
q1 = 197e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
[]
[]
[Debug]
show_var_residual_norms = true
show_var_residual = 'conc_Cs conc_Ag conc_Sr'
[]
[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-21
nl_max_its = 50
l_tol = 1e-4
l_max_its = 50
start_time = 0.0
end_time = 31690800
num_steps = 1450
dt = 86400
dtmax = 86400
#dtmin = 86400
[TimeStepper]
type = FunctionDT
function = 'if(t<31017600,86400,1800)'
[]
[]
[Postprocessors]
[_temp]
type = NodalExtremeValue
variable = temperature
[]
[release_Cs_inc]
type = SideIntegralMassFlux
variable = conc_Cs
boundary = exterior
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
execute_on = 'initial timestep_end'
[]
[released_Cs]
type = TimeIntegratedPostprocessor
value = release_Cs_inc
execute_on = 'initial timestep_end'
[]
[total_Cs]
type = ElementIntegralMaterialProperty
mat_prop = Cs_generation_total
block = fuel
execute_on = 'initial timestep_end'
[]
[x_Cs_released_overall]
type = FractionalRelease
released = released_Cs
total = total_Cs
execute_on = 'initial timestep_end'
[]
[x_Cs_released]
type = FractionalRelease
released = released_Cs
total = total_Cs
execute_on = 'initial timestep_end'
start_time = 31017600
[]
[retained_Cs]
type = ElementIntegralVariablePostprocessor
variable = conc_Cs
execute_on = 'initial timestep_end'
[]
[release_Ag_inc]
type = SideIntegralMassFlux
variable = conc_Ag
boundary = exterior
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
execute_on = 'initial timestep_end'
[]
[released_Ag]
type = TimeIntegratedPostprocessor
value = release_Ag_inc
execute_on = 'initial timestep_end'
[]
[total_Ag]
type = ElementIntegralMaterialProperty
mat_prop = Ag_generation_total
block = fuel
execute_on = 'initial timestep_end'
[]
[x_Ag_released_overall]
type = FractionalRelease
released = released_Ag
total = total_Ag
execute_on = 'initial timestep_end'
[]
[x_Ag_released]
type = FractionalRelease
released = released_Ag
total = total_Ag
execute_on = 'initial timestep_end'
start_time = 31017600
[]
[retained_Ag]
type = ElementIntegralVariablePostprocessor
variable = conc_Ag
execute_on = 'initial timestep_end'
[]
[release_Sr_inc]
type = SideIntegralMassFlux
variable = conc_Sr
boundary = exterior
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
execute_on = 'initial timestep_end'
[]
[released_Sr]
type = TimeIntegratedPostprocessor
value = release_Sr_inc
execute_on = 'initial timestep_end'
[]
[total_Sr]
type = ElementIntegralMaterialProperty
mat_prop = Sr_generation_total
block = fuel
execute_on = 'initial timestep_end'
[]
[x_Sr_released_overall]
type = FractionalRelease
released = released_Sr
total = total_Sr
execute_on = 'initial timestep_end'
[]
[x_Sr_released]
type = FractionalRelease
released = released_Sr
total = total_Sr
execute_on = 'initial timestep_end'
start_time = 31017600
[]
[retained_Sr]
type = ElementIntegralVariablePostprocessor
variable = conc_Sr
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = false
exodus = true
[console]
type = Console
time_step_interval = 1
[]
[out]
type = CSV
[]
[out_final]
type = CSV
execute_on = final
[]
[]
(assessment/TRISO/benchmark/IAEA_CRP-6/diffusion/case_4b/case_4b.i)
[GlobalParams]
order = SECOND
family = LAGRANGE
initial_enrichment = 0.08
[]
[Mesh]
coord_type = RSPHERICAL
[gen]
type = TRISO1DMeshGenerator
elem_type = EDGE3
coordinates = '0 250e-6 350e-6 390e-6 425e-6 465e-6'
mesh_density = '50 30 15 15 15'
block_names = 'fuel buffer IPyC SiC OPyC'
bias = '1 1.25 1.25 1.25 1.25'
dual_bias = '0.8 0.8 0.8 0.8 1'
[]
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[Variables]
[conc_Cs]
[]
[conc_Ag]
[]
[]
[AuxVariables]
[temperature]
initial_condition = 1273.15
[]
[Cs_diff_coef]
order = CONSTANT
family = MONOMIAL
[]
[Ag_diff_coef]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[mass_Cs_dt]
type = TimeDerivative
variable = conc_Cs
[]
[mass_Cs]
type = ArrheniusDiffusion
variable = conc_Cs
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
temperature = temperature
extra_vector_tags = 'ref'
[]
[mass_source_Cs]
type = SpeciesSourceRate
variable = conc_Cs
property_name = Cs_generation
block = fuel
[]
[mass_Ag_dt]
type = TimeDerivative
variable = conc_Ag
[]
[mass_Ag]
type = ArrheniusDiffusion
variable = conc_Ag
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
temperature = temperature
extra_vector_tags = 'ref'
[]
[mass_source_Ag]
type = SpeciesSourceRate
variable = conc_Ag
property_name = Ag_generation
block = fuel
[]
[]
[AuxKernels]
[Cs_diff_coef]
type = MaterialRealAux
variable = Cs_diff_coef
property = arrhenius_diffusion_coef_Cs
execute_on = timestep_end
[]
[Ag_diff_coef]
type = MaterialRealAux
variable = Ag_diff_coef
property = arrhenius_diffusion_coef_Ag
execute_on = timestep_end
[]
[temperature]
type = FunctionAux
function = 'if(t<4.3200001e7,1273.15,2073.15)'
variable = temperature
[]
[]
[BCs]
[freesurf_conc_Cs]
type = DirichletBC
variable = conc_Cs
boundary = exterior
value = 0.0
[]
[freesurf_conc_Ag]
type = DirichletBC
variable = conc_Ag
boundary = exterior
value = 0.0
[]
[]
[Materials]
[burnup]
type = GenericFunctionMaterial
block = fuel
prop_names = 'burnup'
prop_values = '0.1/4.32e7*t'
[]
[fission_rate]
type = GenericFunctionMaterial
block = fuel
prop_names = 'fission_rate'
# 5.581219e19 = 0.1/4.32e7*10810/.27*6.0221409e23
prop_values = '5.581219e19'
[]
[fuel_conc_Cs]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 5.6e-8 # m^2/s
q1 = 209e3 # J/mol
d2 = 5.2e-4
q2 = 362e3
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[mass_source_Cs_property]
type = SpeciesSourceMaterial
block = fuel
property_name = Cs_generation
kind = Cs
[]
[buffer_conc_Cs]
type = ArrheniusDiffusionCoef
block = buffer
d1 = 1e-8 # m^2/s
q1 = 0 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[IPyC_conc_Cs]
type = ArrheniusDiffusionCoef
block = IPyC
d1 = 6.3e-8 # m^2/s
q1 = 222e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[SiC_conc_Cs]
type = ArrheniusDiffusionCoef
block = SiC
d1 = 5.5e-14 # m^2/s
d1_function = 'exp(2e25/4.32e7*t/5e25)'
q1 = 125e3 # J/mol
d2 = 1.6e-2
q2 = 514e3
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[OPyC_conc_Cs]
type = ArrheniusDiffusionCoef
block = OPyC
d1 = 6.3e-8 # m^2/s
q1 = 222e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[fuel_conc_Ag]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 6.7e-9 # m^2/s
q1 = 165e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[mass_source_Ag_property]
type = SpeciesSourceMaterial
block = fuel
property_name = Ag_generation
kind = Ag
[]
[buffer_conc_Ag]
type = ArrheniusDiffusionCoef
block = buffer
d1 = 1e-8 # m^2/s
q1 = 0 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[IPyC_conc_Ag]
type = ArrheniusDiffusionCoef
block = IPyC
d1 = 5.3e-9 # m^2/s
q1 = 154e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[SiC_conc_Ag]
type = ArrheniusDiffusionCoef
block = SiC
d1 = 3.6e-9 # m^2/s
q1 = 215e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[OPyC_conc_Ag]
type = ArrheniusDiffusionCoef
block = OPyC
d1 = 5.3e-9 # m^2/s
q1 = 154e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[]
[Debug]
show_var_residual_norms = true
show_var_residual = 'conc_Cs conc_Ag'
[]
[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-21 #1e-22
nl_max_its = 50
l_tol = 1e-4
l_max_its = 50
start_time = 0.0
end_time = 4.392e7
num_steps = 700
dt = 86400
dtmax = 86400
#dtmin = 86400
[TimeStepper]
type = FunctionDT
function = 'if(t<4.3200001e7,86400,3600)'
[]
[]
[Postprocessors]
[release_Cs_inc]
type = SideIntegralMassFlux
variable = conc_Cs
boundary = exterior
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
execute_on = 'initial timestep_end'
[]
[released_Cs]
type = TimeIntegratedPostprocessor
value = release_Cs_inc
execute_on = 'initial timestep_end'
[]
[total_Cs]
type = ElementIntegralMaterialProperty
mat_prop = Cs_generation_total
block = fuel
execute_on = 'initial timestep_end'
[]
[x_Cs_released]
type = FractionalRelease
released = released_Cs
total = total_Cs
[]
[retained_Cs]
type = ElementIntegralVariablePostprocessor
variable = conc_Cs
[]
[release_Ag_inc]
type = SideIntegralMassFlux
variable = conc_Ag
boundary = exterior
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
execute_on = 'initial timestep_end'
[]
[released_Ag]
type = TimeIntegratedPostprocessor
value = release_Ag_inc
execute_on = 'initial timestep_end'
[]
[total_Ag]
type = ElementIntegralMaterialProperty
mat_prop = Ag_generation_total
block = fuel
execute_on = 'initial timestep_end'
[]
[x_Ag_released]
type = FractionalRelease
released = released_Ag
total = total_Ag
[]
[retained_Ag]
type = ElementIntegralVariablePostprocessor
variable = conc_Ag
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = false
exodus = true
[console]
type = Console
time_step_interval = 1
[]
[out]
type = CSV
execute_on = final
[]
[]
(assessment/TRISO/benchmark/IAEA_CRP-6/diffusion/case_3d/case_3d.i)
[GlobalParams]
order = SECOND
family = LAGRANGE
[]
[Mesh]
coord_type = RSPHERICAL
[gen]
type = TRISO1DMeshGenerator
elem_type = EDGE3
coordinates = '0 250e-6 350e-6 390e-6 425e-6 465e-6'
mesh_density = '50 30 15 15 15'
block_names = 'fuel buffer IPyC SiC OPyC'
[]
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[Variables]
[conc_Cs]
[]
[]
[ICs]
[conc_Cs]
type = ConstantIC
block = fuel
value = 1
variable = conc_Cs
[]
[]
[AuxVariables]
[temperature]
initial_condition = 1873.15
[]
[Cs_diff_coef]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[mass_Cs_dt]
type = TimeDerivative
variable = conc_Cs
[]
[mass_Cs]
type = ArrheniusDiffusion
variable = conc_Cs
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
temperature = temperature
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[Cs_diff_coef]
type = MaterialRealAux
variable = Cs_diff_coef
property = arrhenius_diffusion_coef_Cs
execute_on = timestep_end
[]
[temperature]
type = FunctionAux
function = 'if(t<720000,1873.15,2073.15)'
variable = temperature
[]
[]
[BCs]
[freesurf_conc_Cs]
type = DirichletBC
variable = conc_Cs
boundary = exterior
value = 0.0
[]
[]
[Materials]
[fuel_conc_Cs]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 5.6e-8 # m^2/s
q1 = 209e3 # J/mol
d2 = 5.2e-4
q2 = 362e3
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[buffer_conc_Cs]
type = ArrheniusDiffusionCoef
block = buffer
d1 = 1e-8 # m^2/s
q1 = 0 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[IPyC_conc_Cs]
type = ArrheniusDiffusionCoef
block = IPyC
d1 = 6.3e-8 # m^2/s
q1 = 222e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[SiC_conc_Cs]
type = ArrheniusDiffusionCoef
block = SiC
# 5.5e-14*exp(2/5) = 8.2e-14
d1 = 8.2e-14 # m^2/s
# 1.7202e10 = 1e-6 / (8.2e-14*exp(-125e3/8.3145/2073.15))
d1_function = 'if(t<720000,1,1.7202e10)'
q1 = 125e3 # J/mol
d2 = 1.6e-2
q2 = 514e3
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[OPyC_conc_Cs]
type = ArrheniusDiffusionCoef
block = OPyC
d1 = 6.3e-8 # m^2/s
q1 = 222e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[]
[Debug]
show_var_residual_norms = true
show_var_residual = 'conc_Cs'
[]
[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 = 1e-22
nl_max_its = 50
l_tol = 1e-4
l_max_its = 50
start_time = 0.0
end_time = 1440000
num_steps = 1000
dt = 3600
dtmax = 3600
dtmin = 3600
[]
[Postprocessors]
[release_Cs_inc]
type = SideIntegralMassFlux
variable = conc_Cs
boundary = exterior
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
execute_on = 'initial timestep_end'
[]
[released_Cs]
type = TimeIntegratedPostprocessor
value = release_Cs_inc
execute_on = 'initial timestep_end'
[]
[total_Cs]
type = ElementIntegralVariablePostprocessor
variable = conc_Cs
execute_on = 'initial'
[]
[x_Cs_released]
type = FractionalRelease
released = released_Cs
total = total_Cs
[]
[retained_Cs]
type = ElementIntegralVariablePostprocessor
variable = conc_Cs
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = false
exodus = true
[console]
type = Console
time_step_interval = 1
[]
[out]
type = CSV
execute_on = final
[]
[]
(assessment/TRISO/validation/AGR-1/AGR-1_Ag_Microstructure.i)
[Variables]
[conc_Ag]
initial_condition = 0.0
scaling = 1e14
[]
[]
[AuxVariables]
[Ag_diff_coef]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[mass_Ag_dt]
type = TimeDerivative
variable = conc_Ag
[]
[mass_Ag]
type = ArrheniusDiffusion
variable = conc_Ag
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
extra_vector_tags = 'ref'
[]
[mass_source_Ag]
type = SpeciesSourceRate
variable = conc_Ag
property_name = Ag_generation
block = 'fuel OPyC'
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[Ag_diff_coef]
type = MaterialRealAux
variable = Ag_diff_coef
property = arrhenius_diffusion_coef_Ag
execute_on = timestep_end
[]
[]
[BCs]
[freesurf_conc_Ag]
type = DirichletBC
variable = conc_Ag
boundary = exterior
value = 0.0
[]
[]
[Materials]
# Arrhenius diffusion coefficients for kernel, PyC, and SiC
# come from IAEA TECDOC-978, French parameters.
[fuel_conc_Ag]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 6.7e-9 # m^2/s
q1 = 165e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[mass_source_Ag_property]
type = SpeciesSourceMaterial
property_name = Ag_generation
kind = Ag
block = fuel
[]
### Buffer Properties
[buffer_conc_Ag]
type = ArrheniusDiffusionCoef
block = buffer
d1 = 1e-8 # m^2/s
q1 = 0.0
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
### IPyC properties
[IPyC_conc_Ag]
type = ArrheniusDiffusionCoef
block = IPyC
d1 = 5.3e-9 # m^2/s
q1 = 154e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
### SiC properties
[SiC_conc_Ag]
type = ArrheniusDiffusionCoefMicrostructureIrradiation
block = SiC
scalar = 10
d1 = 6.88e-10 # m^2/s
d1_coef = -5.10e-4 # m/s
q1 = 211e3 # J/mol
q1_coef = 3.82e9 # J/mol/m
grain_minor_axis_length = 0.3e-6 # m
temperature = temperature # K
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
### OPyC properties
[OPyC_conc_Ag]
type = ArrheniusDiffusionCoef
block = OPyC
d1 = 5.3e-9 # m^2/s
q1 = 154e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[mass_source_Ag_property_OPyC]
type = SpeciesSourceMaterial
property_name = Ag_generation
kind = Ag
block = OPyC
#value = impurities * vol_kernel / vol_opyc
#value = 1.59e-6 * 4.07e-11 / 9.16e-11 # for UCO
#value = 1.57e-6 * 6.85e-11 / 1.18e-10 # for UO2
value = ${mass_source_property_OPyC}
[]
[]
[Postprocessors]
[release_Ag_inc]
type = SideIntegralMassFlux
variable = conc_Ag
boundary = exterior
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
execute_on = 'initial timestep_end'
[]
[released_Ag]
type = TimeIntegratedPostprocessor
value = release_Ag_inc
execute_on = 'initial timestep_end'
[]
[total_Ag]
type = ElementIntegralMaterialProperty
mat_prop = Ag_generation_total
block = 'fuel OPyC'
execute_on = 'initial timestep_end'
[]
[x_Ag_released]
type = FractionalRelease
released = released_Ag
total = total_Ag
execute_on = 'initial timestep_end'
[]
[x_Ag_released_safety]
type = FractionalRelease
released = released_Ag
total = total_Ag
execute_on = 'initial timestep_end'
start_time = 55209600
safety_fraction_type = net
[]
[retained_Ag]
type = ElementIntegralVariablePostprocessor
variable = conc_Ag
execute_on = 'initial timestep_end'
[]
[]
(assessment/TRISO/benchmark/IAEA_CRP-6/diffusion/case_4a/case_4a.i)
[GlobalParams]
order = SECOND
family = LAGRANGE
initial_enrichment = 0.08
[]
[Mesh]
coord_type = RSPHERICAL
[gen]
type = TRISO1DMeshGenerator
elem_type = EDGE3
coordinates = '0 250e-6 350e-6 390e-6 425e-6 465e-6'
mesh_density = '50 30 15 15 15'
block_names = 'fuel buffer IPyC SiC OPyC'
bias = '1 1.25 1.25 1.25 1.25'
dual_bias = '0.8 0.8 0.8 0.8 1'
[]
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[Variables]
[conc_Cs]
[]
[conc_Ag]
[]
[]
[AuxVariables]
[temperature]
initial_condition = 1273.15
[]
[Cs_diff_coef]
order = CONSTANT
family = MONOMIAL
[]
[Ag_diff_coef]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[mass_Cs_dt]
type = TimeDerivative
variable = conc_Cs
[]
[mass_Cs]
type = ArrheniusDiffusion
variable = conc_Cs
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
temperature = temperature
extra_vector_tags = 'ref'
[]
[mass_source_Cs]
type = SpeciesSourceRate
variable = conc_Cs
property_name = Cs_generation
block = fuel
[]
[mass_Ag_dt]
type = TimeDerivative
variable = conc_Ag
[]
[mass_Ag]
type = ArrheniusDiffusion
variable = conc_Ag
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
temperature = temperature
extra_vector_tags = 'ref'
[]
[mass_source_Ag]
type = SpeciesSourceRate
variable = conc_Ag
property_name = Ag_generation
block = fuel
[]
[]
[AuxKernels]
[Cs_diff_coef]
type = MaterialRealAux
variable = Cs_diff_coef
property = arrhenius_diffusion_coef_Cs
execute_on = timestep_end
[]
[Ag_diff_coef]
type = MaterialRealAux
variable = Ag_diff_coef
property = arrhenius_diffusion_coef_Ag
execute_on = timestep_end
[]
[temperature]
type = FunctionAux
function = 'if(t<4.3200001e7,1273.15,1873.15)'
variable = temperature
[]
[]
[BCs]
[freesurf_conc_Cs]
type = DirichletBC
variable = conc_Cs
boundary = exterior
value = 0.0
[]
[freesurf_conc_Ag]
type = DirichletBC
variable = conc_Ag
boundary = exterior
value = 0.0
[]
[]
[Materials]
[burnup]
type = GenericFunctionMaterial
block = fuel
prop_names = 'burnup'
prop_values = '0.1/4.32e7*t'
[]
[fission_rate]
type = GenericFunctionMaterial
block = fuel
prop_names = 'fission_rate'
# 5.581219e19 = 0.1/4.32e7*10810/.27*6.0221409e23
prop_values = '5.581219e19'
[]
[fuel_conc_Cs]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 5.6e-8 # m^2/s
q1 = 209e3 # J/mol
d2 = 5.2e-4
q2 = 362e3
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[mass_source_Cs_property]
type = SpeciesSourceMaterial
block = fuel
property_name = Cs_generation
kind = Cs
[]
[buffer_conc_Cs]
type = ArrheniusDiffusionCoef
block = buffer
d1 = 1e-8 # m^2/s
q1 = 0 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[IPyC_conc_Cs]
type = ArrheniusDiffusionCoef
block = IPyC
d1 = 6.3e-8 # m^2/s
q1 = 222e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[SiC_conc_Cs]
type = ArrheniusDiffusionCoef
block = SiC
d1 = 5.5e-14 # m^2/s
d1_function = 'exp(2e25/4.32e7*t/5e25)'
q1 = 125e3 # J/mol
d2 = 1.6e-2
q2 = 514e3
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[OPyC_conc_Cs]
type = ArrheniusDiffusionCoef
block = OPyC
d1 = 6.3e-8 # m^2/s
q1 = 222e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[fuel_conc_Ag]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 6.7e-9 # m^2/s
q1 = 165e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[mass_source_Ag_property]
type = SpeciesSourceMaterial
block = fuel
property_name = Ag_generation
kind = Ag
[]
[buffer_conc_Ag]
type = ArrheniusDiffusionCoef
block = buffer
d1 = 1e-8 # m^2/s
q1 = 0 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[IPyC_conc_Ag]
type = ArrheniusDiffusionCoef
block = IPyC
d1 = 5.3e-9 # m^2/s
q1 = 154e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[SiC_conc_Ag]
type = ArrheniusDiffusionCoef
block = SiC
d1 = 3.6e-9 # m^2/s
q1 = 215e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[OPyC_conc_Ag]
type = ArrheniusDiffusionCoef
block = OPyC
d1 = 5.3e-9 # m^2/s
q1 = 154e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[]
[Debug]
show_var_residual_norms = true
show_var_residual = 'conc_Cs conc_Ag'
[]
[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-21 #1e-22
nl_max_its = 50
l_tol = 1e-4
l_max_its = 50
start_time = 0.0
end_time = 4.392e7
num_steps = 700
dt = 86400
dtmax = 86400
#dtmin = 86400
[TimeStepper]
type = FunctionDT
function = 'if(t<4.3200001e7,86400,3600)'
[]
[]
[Postprocessors]
[release_Cs_inc]
type = SideIntegralMassFlux
variable = conc_Cs
boundary = exterior
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
execute_on = 'initial timestep_end'
[]
[released_Cs]
type = TimeIntegratedPostprocessor
value = release_Cs_inc
execute_on = 'initial timestep_end'
[]
[total_Cs]
type = ElementIntegralMaterialProperty
mat_prop = Cs_generation_total
block = fuel
execute_on = 'initial timestep_end'
[]
[x_Cs_released]
type = FractionalRelease
released = released_Cs
total = total_Cs
[]
[retained_Cs]
type = ElementIntegralVariablePostprocessor
variable = conc_Cs
[]
[release_Ag_inc]
type = SideIntegralMassFlux
variable = conc_Ag
boundary = exterior
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
execute_on = 'initial timestep_end'
[]
[released_Ag]
type = TimeIntegratedPostprocessor
value = release_Ag_inc
execute_on = 'initial timestep_end'
[]
[total_Ag]
type = ElementIntegralMaterialProperty
mat_prop = Ag_generation_total
block = fuel
execute_on = 'initial timestep_end'
[]
[x_Ag_released]
type = FractionalRelease
released = released_Ag
total = total_Ag
[]
[retained_Ag]
type = ElementIntegralVariablePostprocessor
variable = conc_Ag
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = false
exodus = true
[console]
type = Console
time_step_interval = 1
[]
[out]
type = CSV
execute_on = final
[]
[]
(test/tests/triso_failure/triso_failure_diffusivity.i)
kernel_radius = 213.35e-6
buffer_thickness = 98.9e-6
IPyC_thickness = 40.4e-6
SiC_thickness = 35.2e-6
OPyC_thickness = 43.4e-6
coordinates1 = '${fparse kernel_radius}'
coordinates2 = '${fparse coordinates1+buffer_thickness}'
coordinates3 = '${fparse coordinates2+IPyC_thickness}'
coordinates4 = '${fparse coordinates3+SiC_thickness}'
coordinates5 = '${fparse coordinates4+OPyC_thickness}'
[GlobalParams]
order = FIRST
family = LAGRANGE
displacements = 'disp_x'
initial_enrichment = 0.14029 # [wt-]
flux_conversion_factor = 1.0 # convert E>0.10 to E>0.18 MeV
stress_free_temperature = 481 # used for thermal expansion
energy_per_fission = 3.204e-11 # [J/fission]
O_U = 1.428 # Initial Oxygen to Uranium atom ratio
C_U = 0.392 # Initial Carbon to Uranium atom ratio
[]
[Mesh]
coord_type = RSPHERICAL
[mesh]
type = TRISO1DMeshGenerator
elem_type = EDGE2
coordinates = '0 ${coordinates1} ${coordinates2} ${coordinates2} ${coordinates3} ${coordinates4} ${coordinates5}'
mesh_density = '18 14 0 12 16 16'
block_names = 'fuel buffer IPyC SiC OPyC'
[]
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[Physics/SolidMechanics/QuasiStatic]
generate_output = 'stress_xx stress_yy stress_zz strain_xx strain_yy strain_zz max_principal_stress'
add_variables = true
strain = FINITE
incremental = true
[fuel]
block = fuel
eigenstrain_names = 'UCO_swelling_eigenstrain UCO_TE_strain'
extra_vector_tags = 'ref'
[]
[buffer]
block = buffer
eigenstrain_names = 'Buffer_IIDC_strain Buffer_TE_strain'
extra_vector_tags = 'ref'
[]
[IPyC]
block = IPyC
eigenstrain_names = 'IPyC_IIDC_strain IPyC_TE_strain'
extra_vector_tags = 'ref'
[]
[SiC]
block = SiC
eigenstrain_names = 'SiC_thermal_eigenstrain'
extra_vector_tags = 'ref'
[]
[OPyC]
block = OPyC
eigenstrain_names = 'OPyC_IIDC_strain OPyC_TE_strain'
extra_vector_tags = 'ref'
[]
[]
[UserObjects]
[particle_geometry]
type = TRISOGeometry
outer_OPyC = OPyC_outer_boundary
outer_SiC = SiC_outer_boundary
outer_IPyC = IPyC_outer_boundary
inner_IPyC = IPyC_inner_boundary
outer_buffer = buffer_outer_boundary
outer_kernel = fuel_outer_boundary
include_particle = true
include_pebble = false
IPyC_thickness_mean = ${IPyC_thickness}
SiC_thickness_mean = ${SiC_thickness}
OPyC_thickness_mean = ${OPyC_thickness}
[]
[]
[Variables]
[temperature]
initial_condition = 873.15
[]
[conc_Ag]
initial_condition = 0.0
scaling = 1e12
[]
[]
[AuxVariables]
[bounds_dummy]
order = FIRST
family = LAGRANGE
[]
[fission_rate]
order = CONSTANT
family = MONOMIAL
[]
[burnup]
order = CONSTANT
family = MONOMIAL
[]
[fast_neutron_flux]
order = CONSTANT
family = MONOMIAL
[]
[fast_neutron_fluence]
order = CONSTANT
family = MONOMIAL
[]
[fis_gas_produced]
order = CONSTANT
family = MONOMIAL
[]
[fis_gas_released]
order = CONSTANT
family = MONOMIAL
[]
[Ag_diff_coef]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[power_history]
type = PiecewiseLinear
x = '0 76e6'
y = '1 1'
[]
[fission_rate]
type = LinearCombinationFunction
functions = power_history
w = 7.78e19
[]
[high_fidelity_strength_crackedIPyC]
type = ConstantFunction
value = '1403604095.5707'
[]
[stress_correlation_crackedIPyC]
type = TRISOStressCorrelationFunction
triso_geometry = particle_geometry
polynomial_coefficients_IPyC = '1 0 0'
polynomial_coefficients_SiC = '1 0 0'
polynomial_coefficients_OPyC = '1 0 0'
correlation_factor = -4.0
[]
[high_fidelity_strength_asphericity]
type = ConstantFunction
value = '1371700766.8875'
[]
[stress_correlation_asphericity]
type = TRISOStressCorrelationFunction
triso_geometry = particle_geometry
polynomial_coefficients_IPyC = '1 0 0'
polynomial_coefficients_SiC = '1 0 0'
polynomial_coefficients_OPyC = '1 0 0'
correlation_factor = 1.5191967987843993
[]
[stress_change_correlation_asphericity]
type = TRISOStressCorrelationFunction
triso_geometry = particle_geometry
polynomial_coefficients_IPyC = '1 0 0'
polynomial_coefficients_SiC = '1 0 0'
polynomial_coefficients_OPyC = '1 0 0'
correlation_factor = 1.391516859626456
[]
[d_gap]
type = PiecewiseLinear
x = '1500 2100'
y = '1e-14 1e-12'
[]
[ag_d1]
type = ParsedFunction
symbol_values = 'sic_failure_overall'
symbol_names = 'failure'
expression = 'if(failure > 0.5,1e-6,3.6e-9)'
[]
[ag_q1]
type = ParsedFunction
symbol_values = 'sic_failure_overall'
symbol_names = 'failure'
expression = 'if(failure > 0.5,0,215e3)'
[]
[]
[Kernels]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temperature
extra_vector_tags = 'ref'
[]
[heat]
type = HeatConduction
variable = temperature
extra_vector_tags = 'ref'
[]
[heat_source]
type = NeutronHeatSource
variable = temperature
block = fuel
fission_rate = fission_rate
extra_vector_tags = 'ref'
[]
[mass_Ag_dt]
type = TimeDerivative
variable = conc_Ag
[]
[mass_Ag]
type = ArrheniusDiffusion
variable = conc_Ag
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
extra_vector_tags = 'ref'
[]
[mass_source_Ag]
type = SpeciesSourceRate
variable = conc_Ag
property_name = Ag_generation
block = fuel
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[fissionrate]
type = MaterialRealAux
variable = fission_rate
property = fission_rate
block = fuel
execute_on = timestep_begin
[]
[burnup]
type = MaterialRealAux
variable = burnup
property = burnup
block = fuel
execute_on = timestep_begin
[]
[fast_neutron_flux]
type = MaterialRealAux
variable = fast_neutron_flux
property = fast_neutron_flux
execute_on = timestep_begin
[]
[fast_neutron_fluence]
type = MaterialRealAux
variable = fast_neutron_fluence
property = fast_neutron_fluence
execute_on = timestep_begin
[]
[Ag_diff_coef]
type = MaterialRealAux
variable = Ag_diff_coef
property = arrhenius_diffusion_coef_Ag
execute_on = timestep_end
[]
[]
[BCs]
[freesurf_temp]
type = FunctionDirichletBC
variable = temperature
function = 873.15
boundary = exterior
[]
[freesurf_conc_Ag]
type = DirichletBC
variable = conc_Ag
boundary = exterior
value = 0.0
[]
[no_disp_x]
type = DirichletBC
variable = disp_x
boundary = xzero
value = 0.0
[]
[exterior_pressure_x]
type = Pressure
variable = disp_x
boundary = exterior
factor = 0.1e6
[]
[PlenumPressure]
[plenumPressure]
boundary = buffer_IPyC_boundary
startup_time = 1e4
initial_pressure = 0
output_initial_moles = initial_moles
temperature = ave_gas_temp
volume = 'gap_volume buffer_void_volume kernel_void_volume'
material_input = 'fis_gas_released'
output = gas_pressure
[]
[]
[]
[Controls]
[ag_d1]
type = RealFunctionControl
parameter = 'Materials/SiC_conc_Ag/d1'
function = 'ag_d1'
execute_on = 'INITIAL TIMESTEP_BEGIN'
[]
[ag_q1]
type = RealFunctionControl
parameter = 'Materials/SiC_conc_Ag/q1'
function = 'ag_q1'
execute_on = 'INITIAL TIMESTEP_BEGIN'
[]
[]
[Materials]
[fission_rate]
type = GenericFunctionMaterial
prop_names = fission_rate
prop_values = fission_rate
#block = fuel
[]
[fast_neutron_flux]
type = FastNeutronFlux
calculate_fluence = true
flux_function = power_history
factor = 1.16e18
[]
# Arrhenius diffusion coefficients for kernel, PyC, and SiC
# come from IAEA TECDOC-978, French parameters.
[fuel_conc_Ag]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 6.7e-9 # m^2/s
q1 = 165e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[mass_source_Ag_property]
type = SpeciesSourceMaterial
property_name = Ag_generation
kind = Ag
block = fuel
[]
### Buffer Properties
[buffer_conc_Ag]
type = ArrheniusDiffusionCoef
block = buffer
d1 = 1e-8 # m^2/s
q1 = 0.0
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
### IPyC properties
[IPyC_conc_Ag]
type = ArrheniusDiffusionCoef
block = IPyC
d1 = 5.3e-9 # m^2/s
q1 = 154e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
### SiC properties
[SiC_conc_Ag]
type = ArrheniusDiffusionCoef
block = SiC
d1 = 3.6e-9 # m^2/s
q1 = 215e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
### OPyC properties
[OPyC_conc_Ag]
type = ArrheniusDiffusionCoef
block = OPyC
d1 = 5.3e-9 # m^2/s
q1 = 154e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[UCO_burnup]
type = TRISOBurnup
initial_density = 10966
block = fuel
[]
[UCO_thermal]
type = UCOThermal
block = fuel
temperature = temperature
[]
[UCO_elasticity_tensor]
type = UCOElasticityTensor
block = fuel
temperature = temperature
[]
[UCO_stress]
type = ComputeFiniteStrainElasticStress
block = fuel
[]
[UCO_VolumetricSwellingEigenstrain]
type = UCOVolumetricSwellingEigenstrain
block = fuel
eigenstrain_name = UCO_swelling_eigenstrain
[]
[fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = fuel
thermal_expansion_coeff = 10.0e-6
temperature = temperature
eigenstrain_name = UCO_TE_strain
[]
[UCO_density]
type = StrainAdjustedDensity
block = fuel
strain_free_density = 10966
[]
[fission_gas_release]
type = UCOFGR
block = fuel
average_grain_radius = 10e-6
temperature = temperature
triso_geometry = particle_geometry
cutoff_neutron_flux = 0.0
[]
[normal_vectors_triso]
type = NormalVectorsTRISO
block = 'buffer IPyC OPyC'
[]
[BAF_IPyC]
type = BaconAnisotropyFactor
initial_BAF = 1.0465
block = IPyC
[]
[BAF_OPyC]
type = BaconAnisotropyFactor
initial_BAF = 1.0429
block = OPyC
[]
[buffer_elasticity_tensor]
type = BufferElasticityTensor
block = buffer
temperature = temperature
[]
[buffer_stress]
type = BufferCEGACreep
block = buffer
temperature = temperature
[]
[buffer_thermal]
type = BufferThermal
block = buffer
initial_density = 1050.0
[]
[buffer_density]
type = StrainAdjustedDensity
block = buffer
strain_free_density = 1050.0
[]
[buffer_TE]
type = BufferThermalExpansionEigenstrain
block = buffer
eigenstrain_name = Buffer_TE_strain
temperature = temperature
[]
[buffer_IIDC]
type = BufferCEGAIrradiationEigenstrain
block = buffer
eigenstrain_name = Buffer_IIDC_strain
temperature = temperature
[]
[IPyC_elasticity_tensor]
type = PyCElasticityTensor
block = IPyC
temperature = temperature
[]
[IPyC_stress]
type = PyCCEGACreep
block = IPyC
creep_rate_scale_factor = 1
temperature = temperature
[]
[IPyC_thermal]
type = HeatConductionMaterial
block = IPyC
thermal_conductivity = 4.0
specific_heat = 720.0
[]
[IPyC_density]
type = GenericConstantMaterial
block = IPyC
prop_names = 'density'
prop_values = 1890
[]
[IPyC_IIDC]
type = PyCCEGAIrradiationEigenstrain
block = IPyC
eigenstrain_name = IPyC_IIDC_strain
temperature = temperature
irradiation_eigenstrain_scale_factor = 1
[]
[IPyC_TE]
type = PyCThermalExpansionEigenstrain
block = IPyC
eigenstrain_name = IPyC_TE_strain
temperature = temperature
[]
[SiC_elasticity_tensor]
type = MonolithicSiCElasticityTensor
block = SiC
temperature = temperature
elastic_modulus_model = miller
[]
[SiC_stress]
type = ComputeFiniteStrainElasticStress
block = SiC
[]
[SiC_thermal]
type = MonolithicSiCThermal
block = SiC
temperature = temperature
thermal_conductivity_model = miller
[]
[SiC_density]
type = StrainAdjustedDensity
block = SiC
strain_free_density = 3200.0
[]
[SiC_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = SiC
thermal_expansion_coeff = 4.9e-6
temperature = temperature
eigenstrain_name = SiC_thermal_eigenstrain
[]
[OPyC_elasticity_tensor]
type = PyCElasticityTensor
block = OPyC
temperature = temperature
initial_BAF = 1.0
[]
[OPyC_stress]
type = PyCCEGACreep
block = OPyC
creep_rate_scale_factor = 1
temperature = temperature
[]
[OPyC_thermal_conductivity]
type = HeatConductionMaterial
block = OPyC
thermal_conductivity = 4.0
specific_heat = 720.0
[]
[OPyC_density]
type = GenericConstantMaterial
block = OPyC
prop_names = 'density'
prop_values = 1900
[]
[OPyC_IIDC]
type = PyCCEGAIrradiationEigenstrain
block = OPyC
eigenstrain_name = OPyC_IIDC_strain
temperature = temperature
irradiation_eigenstrain_scale_factor = 1
[]
[OPyC_TE]
type = PyCThermalExpansionEigenstrain
block = OPyC
eigenstrain_name = OPyC_TE_strain
temperature = temperature
[]
[characteristic_strength_SiC]
type = GenericConstantMaterial
prop_values = '9640000'
block = SiC
prop_names = 'characteristic_strength'
[]
[characteristic_strength_PyC]
type = PyCCharacteristicStrength
temperature = temperature
X = 1.02
block = 'IPyC OPyC'
[]
[]
[ThermalContact]
[thermal_contact]
type = GasGapHeatTransfer
variable = temperature
primary = IPyC_inner_boundary
secondary = buffer_outer_boundary
initial_moles = initial_moles # coupling to a postprocessor which supplies the initial plenum/gap gas mass
initial_gas_types = 'Kr Xe'
initial_fractions = '0.185 0.815'
gas_released = 'fis_gas_released'
released_gas_types = 'Kr Xe'
released_fractions = '0.185 0.815'
tangential_tolerance = 1e-6
roughness_primary = 0e-6
roughness_secondary = 0e-6
jumpdistance_primary = 0
jumpdistance_secondary = 0
quadrature = true
emissivity_secondary = 0.0
emissivity_primary = 0.0
min_gap = 1e-7
max_gap = 50e-6
gap_geometry_type = sphere
[]
[conc_Ag]
type = GapHeatTransfer
variable = conc_Ag
primary = IPyC_inner_boundary
secondary = buffer_outer_boundary
tangential_tolerance = 1e-6
gap_conductivity_function = d_gap
gap_conductivity_function_variable = temperature
appended_property_name = _conc_Ag
quadrature = true
gap_geometry_type = sphere
emissivity_primary = 0.0
emissivity_secondary = 0.0
min_gap = 1e-7
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
line_search = 'none'
nl_rel_tol = 1e-7
nl_abs_tol = 1e-7
nl_max_its = 20
l_tol = 1e-4
l_max_its = 50
start_time = 0.0
end_time = 4.831315e7
dtmin = 1e-4
[TimeStepper]
type = IterationAdaptiveDT
dt = 20
growth_factor = 1.5
optimal_iterations = 8 #6
linear_iteration_ratio = 100
time_t = '0 76e6 76.001e6 84.641e6 84.6482e6'
time_dt = '20 20 20 20 20'
[]
[]
[Postprocessors]
[ave_gas_temp]
type = ElementAverageValue
block = buffer
variable = temperature
execute_on = 'initial timestep_end'
[]
[gap_volume]
type = InternalVolume
boundary = buffer_IPyC_boundary
execute_on = 'initial linear'
use_displaced_mesh = true
[]
[buffer_void_volume]
type = VoidVolume
block = buffer
theoretical_density = 2250
execute_on = 'initial timestep_end'
use_displaced_mesh = true
[]
[kernel_th_density]
type = UCOTheoreticalDensity
execute_on = initial
[]
[kernel_void_volume]
type = VoidVolume
block = fuel
theoretical_density = kernel_th_density
execute_on = 'initial timestep_end'
use_displaced_mesh = true
[]
[release_heat_inc]
type = SideIntegralMassFlux
variable = temperature
boundary = exterior
arrhenius_prpty_name = thermal_conductivity
execute_on = 'initial timestep_end'
[]
[release_Ag_inc]
type = SideIntegralMassFlux
variable = conc_Ag
boundary = exterior
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
execute_on = 'initial timestep_end'
[]
[released_Ag]
type = TimeIntegratedPostprocessor # computes time integration of value
value = release_Ag_inc
execute_on = 'initial timestep_end'
[]
[total_Ag]
type = ElementIntegralMaterialProperty
mat_prop = Ag_generation_total
block = fuel
execute_on = 'initial timestep_end'
[]
[x_Ag_released]
type = FractionalRelease
released = released_Ag
total = total_Ag
[]
[retained_Ag]
type = ElementIntegralVariablePostprocessor
variable = conc_Ag
[]
[fis_gas_produced]
type = ElementIntegralMaterialProperty
mat_prop = fis_gas_produced
block = fuel
execute_on = 'initial timestep_end'
[]
[fis_gas_released]
type = ElementIntegralMaterialProperty
mat_prop = fis_gas_released
block = fuel
execute_on = 'initial linear timestep_end'
[]
### Postprocessors for CO production
[total_fission_rate]
type = ElementIntegralPower
variable = temperature
fission_rate = fission_rate
block = fuel
energy_per_fission = 1.0
execute_on = 'initial timestep_end'
[]
[total_fissions]
type = TimeIntegratedPostprocessor
value = total_fission_rate
execute_on = 'initial timestep_end'
[]
##### irradiation conditions
[particle_power]
type = ElementIntegralPower
variable = temperature
use_material_fission_rate = true
fission_rate_material = fission_rate
block = fuel
execute_on = 'initial timestep_end'
[]
[max_fluence]
type = ElementExtremeValue
variable = fast_neutron_fluence
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[max_burnup]
type = ElementExtremeValue
variable = burnup
block = fuel
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[SiC_stress]
type = ElementExtremeMaterialProperty
block = SiC
value_type = min
mat_prop = stress_yy
[]
[strength_SiC]
type = WeibullEffectiveMeanStrength
block = SiC
weibull_modulus = 6
[]
[failure_indicator_SiC]
type = WeibullFailureOutputUsingCorrelation
block = SiC
weibull_modulus = 6
stress_name = stress_yy
high_fidelity_analysis_strength = 'high_fidelity_strength_asphericity'
stress_correlation_function = 'stress_correlation_asphericity'
stress_change_correlation_function = 'stress_change_correlation_asphericity'
[]
[strength_IPyC]
type = WeibullEffectiveMeanStrength
block = IPyC
weibull_modulus = 9.5
[]
[failure_indicator_IPyC]
type = WeibullFailureOutputUsingCorrelation
block = IPyC
weibull_modulus = 9.5
stress_name = max_principal_stress
effective_mean_strength = strength_IPyC
[]
[failure_indicator_SiC_crackedIPyC]
type = WeibullFailureOutputUsingCorrelation
block = SiC
weibull_modulus = 6
stress_name = stress_yy
high_fidelity_analysis_strength = 'high_fidelity_strength_crackedIPyC'
stress_correlation_function = 'stress_correlation_crackedIPyC'
[]
[sic_failure_overall]
type = TRISOFailureEvaluation
IPyC_failure = failure_indicator_IPyC
SiC_failure_crackedIPyC = failure_indicator_SiC_crackedIPyC
SiC_failure = failure_indicator_SiC
SiC_failure_pd_penetration = failure_indicator_pd_penetration
failure_type = SIC_FAILURE_OVERALL
[]
[ipyc_cracking]
type = TRISOFailureEvaluation
IPyC_failure = failure_indicator_IPyC
SiC_failure_crackedIPyC = failure_indicator_SiC_crackedIPyC
SiC_failure = failure_indicator_SiC
failure_type = IPYC_CRACKING
[]
[sic_failure_due_to_pressure]
type = TRISOFailureEvaluation
IPyC_failure = failure_indicator_IPyC
SiC_failure_crackedIPyC = failure_indicator_SiC_crackedIPyC
SiC_failure = failure_indicator_SiC
failure_type = SIC_FAILURE_DUE_TO_PRESSURE
[]
[sic_failure_due_to_ipyc_cracking]
type = TRISOFailureEvaluation
IPyC_failure = failure_indicator_IPyC
SiC_failure_crackedIPyC = failure_indicator_SiC_crackedIPyC
SiC_failure = failure_indicator_SiC
failure_type = SIC_FAILURE_DUE_TO_IPYC_CRACKING
[]
[weibull_failure_probability_IPyC]
type = WeibullFailureProbability
block = IPyC
weibull_modulus = 9.5
characteristic_strength = characteristic_strength
[]
[weibull_failure_probability_SiC]
type = WeibullFailureProbability
block = SiC
weibull_modulus = 6
characteristic_strength = characteristic_strength
[]
[pd_penetration]
type = PdPenetration
boundary = SiC_inner_boundary
variable = temperature
execute_on = 'initial timestep_end'
[]
[failure_indicator_pd_penetration]
type = PdPenetrationFailureIndicator
triso_geometry = particle_geometry
pd_penetration = pd_penetration
[]
[]
[Outputs]
csv = true
[]
(assessment/TRISO/validation/AGR-34/SharedFiles/capsule_Sr.i)
[InterfaceKernels]
[fuel_matrix]
type = SorptionIsothermGapInterface
variable = conc_Sr
neighbor_var = conc_Sr
partial_pressure_name = partial_pressure
sorption_penalty = 1e5
diffusivity = arrhenius_diffusion_coef_Sr
use_flux_penalty = true
flux_penalty = 1e3
boundary = 'DRV_IR'
[]
[matrix_graphite]
type = SorptionIsothermGapInterface
variable = conc_Sr
neighbor_var = conc_Sr
partial_pressure_name = partial_pressure
sorption_penalty = 1e5
diffusivity = arrhenius_diffusion_coef_Sr
use_flux_penalty = true
flux_penalty = 1e3
boundary = 'IR_OR'
[]
[graphite_sink]
type = SorptionIsothermGapInterface
variable = conc_Sr
neighbor_var = conc_Sr
partial_pressure_name = partial_pressure
sorption_penalty = 1e5
diffusivity = arrhenius_diffusion_coef_Sr
use_flux_penalty = true
flux_penalty = 1e3
boundary = 'OR_SR'
[]
[]
[Variables]
[conc_Sr]
scaling = 1e12 #1e18
[]
[]
[AuxVariables]
[Sr_diff_coef]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[mass_Sr_dt]
type = TimeDerivative
variable = conc_Sr
extra_vector_tags = 'ref'
[]
[mass_Sr]
type = ArrheniusDiffusion
variable = conc_Sr
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
extra_vector_tags = 'ref'
[]
[conc_source_dtf]
type = BodyForce
variable = conc_Sr
block = 'DTF'
function = DTF_MassIsotope
extra_vector_tags = 'ref'
[]
[conc_source_drv]
type = BodyForce
variable = conc_Sr
block = 'DRV'
function = DRV_MassIsotope
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[Sr_diff_coef]
type = MaterialRealAux
variable = Sr_diff_coef
property = arrhenius_diffusion_coef_Sr
execute_on = timestep_end
[]
[]
[BCs]
[freesurf_conc_Sr]
type = DirichletBC
variable = conc_Sr
boundary = 'right'
value = 0.0
extra_vector_tags = 'ref'
[]
[]
[Materials]
[matrix_conc_Sr]
type = ArrheniusDiffusionCoef
d1 = 1.00e-2 # m^2/s
q1 = 303000 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
[]
[graphite_conc_Sr]
type = ArrheniusDiffusionCoef
d1 = 1.70e-2 # m^2/s
q1 = 268000 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
[]
[Sr_matrix_partial_pressure]
type = SorptionPartialPressure
A = 54.3
B = -149000
D = -8.52
E = 28500
d1 = 3.13
d2 = 0
unit_scale = 1e3 # convert from mol to mmol
density = density # convert from mmol/m^3 to mmol/kg
concentration = conc_Sr
temperature = temperature
output_properties = partial_pressure
[]
[Sr_graphite_partial_pressure]
type = SorptionPartialPressure
A = 19.4
B = -40100
D = -0.32
E = 4090
d1 = -2.12
d2 = 0
unit_scale = 1e3 # convert from mol to mmol
density = density # convert from mmol/m^3 to mmol/kg
concentration = conc_Sr
temperature = temperature
output_properties = partial_pressure
[]
[]
[Postprocessors]
[release_Sr_inc_pebble]
type = SideIntegralMassFlux
variable = conc_Sr
boundary = right
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
execute_on = 'initial timestep_end'
[]
[released_Sr]
type = TimeIntegratedPostprocessor
value = release_Sr_inc_pebble
execute_on = 'initial timestep_end'
[]
[retained_Sr]
type = ElementIntegralVariablePostprocessor
variable = conc_Sr
[]
# check partial pressure equality and integral flux conservation from DRV to IR
[flux_DRV_outer]
type = SideDiffusiveFluxIntegral
boundary = 'DRV_IR'
variable = conc_Sr
diffusivity = arrhenius_diffusion_coef_Sr
[]
[flux_IR_inner]
type = SideDiffusiveFluxIntegral
boundary = 'IR_DRV'
variable = conc_Sr
diffusivity = arrhenius_diffusion_coef_Sr
[]
[flux_DRV_IR_error]
type = FunctionValuePostprocessor
function = flux_DRV_IR_error
[]
# check partial pressure equality and integral flux conservation from IR to OR
[flux_IR_outer]
type = SideDiffusiveFluxIntegral
boundary = 'IR_OR'
variable = conc_Sr
diffusivity = arrhenius_diffusion_coef_Sr
[]
[flux_OR_inner]
type = SideDiffusiveFluxIntegral
boundary = 'OR_IR'
variable = conc_Sr
diffusivity = arrhenius_diffusion_coef_Sr
[]
[flux_IR_OR_error]
type = FunctionValuePostprocessor
function = flux_IR_OR_error
[]
# check partial pressure equality and integral flux conservation from OR to SR
[flux_OR_outer]
type = SideDiffusiveFluxIntegral
boundary = 'OR_SR'
variable = conc_Sr
diffusivity = arrhenius_diffusion_coef_Sr
[]
[flux_SR_inner]
type = SideDiffusiveFluxIntegral
boundary = 'SR_OR'
variable = conc_Sr
diffusivity = arrhenius_diffusion_coef_Sr
[]
[flux_OR_SR_error]
type = FunctionValuePostprocessor
function = flux_OR_SR_error
[]
[]
[VectorPostprocessors]
[Sr_conc]
type = LineValueSampler
variable = conc_Sr
start_point = '0.0 0 0.0'
num_points = 1000
use_displaced_mesh = false
execute_on = final
sort_by = x
outputs = line_plot_Sr
[]
[]
[Outputs]
[line_plot_Sr]
type = CSV
execute_on = 'FINAL'
time_step_interval = 1
create_final_symlink = true
file_base = capsule_radial
[]
[]
(test/tests/side_integral_mass_flux/side_integral_mass_flux_test.i)
# Tests SideIntegralMassFlux post processor on a single element unit cube having a fixed
# concentration flux of 10 on one face and a fixed zero concentration on the opposing face.
# The diffusion coefficent is set to unity and a large time step (5e6) is taken, such that a
# linear steady-state concentration gradient is achieved in two time steps. The integrated flux
# on both faces is computed with the post processor and matches the analytical solution.
#
# integrated mass flux out = integral (-D del_C dot n) dA
# = -1 * -10 * 1
# = 10
#
# which is the value reported as mass_flux_3
[Mesh]
[mesh]
type = FileMeshGenerator
file = 1x1x1_cube.e
[]
[]
[Variables]
[temp]
order = FIRST
family = LAGRANGE
initial_condition = 100.0
scaling = 1e-7
[]
[conc]
order = FIRST
family = LAGRANGE
initial_condition = 0.0
scaling = 1e10
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temp
[]
[ie_mass]
type = TimeDerivative
variable = conc
[]
[mass]
type = ArrheniusDiffusion
variable = conc
[]
[]
[BCs]
[temp_fixed]
type = DirichletBC
variable = temp
boundary = '1 2'
value = 100.0
[]
[conc_symm]
type = NeumannBC
variable = conc
boundary = '1 2 4 6'
value = 0.0
[]
[conc_flux]
type = NeumannBC
variable = conc
boundary = 3
value = 10
[]
[conc_fixed]
type = DirichletBC
variable = conc
boundary = 5
value = 0.0
[]
[]
[Materials]
[thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 1.0
specific_heat = 1.0
[]
[mass]
type = ArrheniusDiffusionCoef
block = 1
d1 = 1.0
q1 = 0.0
d2 = 0.0
q2 = 0.0
gas_constant = 8.3143
temperature = temp
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
nl_rel_tol = 1e-7
nl_abs_tol = 1e-50
nl_abs_step_tol = 1e-50
nl_rel_step_tol = 1e-50
l_tol = 1e-8
l_max_its = 10
start_time = 0.0
end_time = 1.0e7
dt = 5.0e6
num_steps = 2
[]
[Postprocessors]
[side_int_3]
type = SideIntegralVariablePostprocessor
variable = conc
boundary = 3
[]
[side_int_5]
type = SideIntegralVariablePostprocessor
variable = conc
boundary = 5
[]
[mass_flux_3]
type = SideIntegralMassFlux
variable = conc
boundary = 3
[]
[mass_flux_5]
type = SideIntegralMassFlux
variable = conc
boundary = 5
[]
[]
[Outputs]
file_base = out
exodus = true
[]
(examples/TRISO/pebble/triso_1d.i)
kernel_radius = 213.35e-6
buffer_thickness = 98.9e-6
IPyC_thickness = 40.4e-6
SiC_thickness = 35.2e-6
OPyC_thickness = 43.4e-6
coordinates1 = '${fparse kernel_radius}'
coordinates2 = '${fparse coordinates1+buffer_thickness}'
coordinates3 = '${fparse coordinates2+IPyC_thickness}'
coordinates4 = '${fparse coordinates3+SiC_thickness}'
coordinates5 = '${fparse coordinates4+OPyC_thickness}'
[GlobalParams]
order = SECOND
family = LAGRANGE
initial_enrichment = 0.14029 # [wt-]
energy_per_fission = 3.204e-11 # [J/fission]
O_U = 1.428 # Initial Oxygen to Uranium atom ratio
C_U = 0.392 # Initial Carbon to Uranium atom ratio
[]
[Mesh]
coord_type = RSPHERICAL
[mesh]
type = TRISO1DMeshGenerator
elem_type = EDGE3
coordinates = '0 ${coordinates1} ${coordinates2} ${coordinates3} ${coordinates4} ${coordinates5}'
mesh_density = '18 14 12 16 16'
block_names = 'fuel buffer IPyC SiC OPyC'
[]
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[UserObjects]
[particle_geometry]
type = TRISOGeometry
outer_OPyC = OPyC_outer_boundary
outer_SiC = SiC_outer_boundary
outer_IPyC = IPyC_outer_boundary
inner_IPyC = IPyC_inner_boundary
outer_buffer = buffer_outer_boundary
outer_kernel = fuel_outer_boundary
include_particle = true
include_pebble = false
[]
[]
[Variables]
[temperature]
initial_condition = 773.15
[]
[conc_Cs]
initial_condition = 0.0
scaling = 1e18
[]
[]
[AuxVariables]
[fission_rate]
order = CONSTANT
family = MONOMIAL
[]
[burnup]
order = CONSTANT
family = MONOMIAL
[]
[fast_neutron_flux]
order = CONSTANT
family = MONOMIAL
[]
[fast_neutron_fluence]
order = CONSTANT
family = MONOMIAL
[]
[fis_gas_produced]
order = CONSTANT
family = MONOMIAL
[]
[fis_gas_released]
order = CONSTANT
family = MONOMIAL
[]
[Cs_diff_coef]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[power_history]
type = PiecewiseLinear
x = '0 1e3 4.51008e7' #change time (s) for desired EFPD
y = '0 1 1'
[]
[fission_rate]
type = LinearCombinationFunction
functions = power_history
w = 2.927e18
[]
[temp_bc_func]
type = ParsedFunction
value = temp_bc
symbol_names = temp_bc
symbol_values = temp_bc
[]
[]
[Kernels]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temperature
extra_vector_tags = 'ref'
[]
[heat]
type = HeatConduction
variable = temperature
extra_vector_tags = 'ref'
[]
[heat_source]
type = NeutronHeatSource
variable = temperature
block = fuel
fission_rate = fission_rate
extra_vector_tags = 'ref'
[]
[mass_Cs_dt]
type = TimeDerivative
variable = conc_Cs
[]
[mass_Cs]
type = ArrheniusDiffusion
variable = conc_Cs
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
extra_vector_tags = 'ref'
[]
[mass_source_Cs]
type = SpeciesSourceRate
variable = conc_Cs
property_name = Cs_generation
block = fuel
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[fissionrate]
type = MaterialRealAux
variable = fission_rate
property = fission_rate
block = fuel
execute_on = timestep_begin
[]
[burnup]
type = MaterialRealAux
variable = burnup
property = burnup
block = fuel
execute_on = timestep_begin
[]
[fast_neutron_flux]
type = MaterialRealAux
variable = fast_neutron_flux
property = fast_neutron_flux
execute_on = timestep_begin
[]
[fast_neutron_fluence]
type = MaterialRealAux
variable = fast_neutron_fluence
property = fast_neutron_fluence
execute_on = timestep_begin
[]
[Cs_diff_coef]
type = MaterialRealAux
variable = Cs_diff_coef
property = arrhenius_diffusion_coef_Cs
execute_on = timestep_end
[]
[]
[BCs]
[freesurf_temp]
type = FunctionDirichletBC
variable = temperature
function = temp_bc_func
boundary = exterior
[]
[freesurf_conc_Cs]
type = DirichletBC
variable = conc_Cs
boundary = exterior
value = 0.0
[]
[]
[Materials]
[fission_rate]
type = GenericFunctionMaterial
prop_names = fission_rate
prop_values = fission_rate
[]
[fast_neutron_flux]
type = FastNeutronFlux
calculate_fluence = true
flux_function = power_history
factor = 1.109e18
[]
[UCO_burnup]
type = TRISOBurnup
initial_density = 10966.0
[]
[UCO_thermal]
type = UCOThermal
block = fuel
temperature = temperature
[]
[UCO_density]
type = StrainAdjustedDensity
block = fuel
strain_free_density = 10966.0
[]
[fission_gas_release]
type = UCOFGR
block = fuel
average_grain_radius = 10e-6
temperature = temperature
triso_geometry = particle_geometry
[]
# Arrhenius diffusion coefficients for kernel, PyC, and SiC
# come from IAEA TECDOC-978, French parameters.
[fuel_conc_Cs]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 5.6e-8 # m^2/s
q1 = 209e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[mass_source_Cs_property]
type = SpeciesSourceMaterial
property_name = Cs_generation
kind = Cs
block = fuel
[]
### Buffer Properties
[buffer_thermal]
type = BufferThermal
block = buffer
initial_density = 1050.0
[]
[Buffer_density]
type = StrainAdjustedDensity
block = buffer
strain_free_density = 1050.0
[]
[buffer_conc_Cs]
type = ArrheniusDiffusionCoef
block = buffer
d1 = 1e-8 # m^2/s
q1 = 0.0
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
### IPyC properties
[IPyC_thermal]
type = HeatConductionMaterial
block = IPyC
thermal_conductivity = 4.0
specific_heat = 720.0
[]
[IPyC_density]
type = StrainAdjustedDensity
block = IPyC
strain_free_density = 1907.0
[]
[IPyC_conc_Cs]
type = ArrheniusDiffusionCoef
block = IPyC
d1 = 6.3e-8 # m^2/s
q1 = 222e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
### SiC properties
[SiC_thermal]
type = MonolithicSiCThermal
block = SiC
temperature = temperature
thermal_conductivity_model = miller
[]
[SiC_density]
type = StrainAdjustedDensity
block = SiC
strain_free_density = 3200.0
[]
[SiC_conc_Cs]
type = ArrheniusDiffusionCoef
block = SiC
d1 = 5.5e-14 # m^2/s
q1 = 125e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
### OPyC properties
[OPyC_thermal_conductivity]
type = HeatConductionMaterial
block = OPyC
thermal_conductivity = 4.0
specific_heat = 720.0
[]
[OPyC_density]
type = StrainAdjustedDensity
block = OPyC
strain_free_density = 1907.0
[]
[OPyC_conc_Cs]
type = ArrheniusDiffusionCoef
block = OPyC
d1 = 6.3e-8 # m^2/s
q1 = 222e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
line_search = 'none'
nl_rel_tol = 1e-8
nl_abs_tol = 1e-6
nl_max_its = 20
l_tol = 1e-4
l_max_its = 50
dt = 500000
num_steps = 10
[]
[Postprocessors]
[temp_bc]
type = Receiver
[]
[release_heat_inc]
type = SideIntegralMassFlux
variable = temperature
boundary = exterior
arrhenius_prpty_name = thermal_conductivity
execute_on = 'initial timestep_end'
[]
[release_Cs_inc]
type = SideIntegralMassFlux
variable = conc_Cs
boundary = exterior
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
execute_on = 'initial timestep_end'
[]
[released_Cs]
type = TimeIntegratedPostprocessor
value = release_Cs_inc
execute_on = 'initial timestep_end'
[]
[total_Cs]
type = ElementIntegralMaterialProperty
mat_prop = Cs_generation_total
block = fuel
execute_on = 'initial timestep_end'
[]
[x_Cs_released]
type = FractionalRelease
released = released_Cs
total = total_Cs
[]
[retained_Cs]
type = ElementIntegralVariablePostprocessor
variable = conc_Cs
[]
[fis_gas_produced]
type = ElementIntegralMaterialProperty
mat_prop = fis_gas_produced
block = fuel
execute_on = 'initial timestep_end'
[]
[fis_gas_released]
type = ElementIntegralMaterialProperty
mat_prop = fis_gas_released
block = fuel
execute_on = 'initial timestep_end'
[]
### Postprocessors for CO production
[total_fission_rate]
type = ElementIntegralPower
variable = temperature
fission_rate = fission_rate
block = fuel
energy_per_fission = 1.0
execute_on = 'initial timestep_end'
[]
[total_fissions]
type = TimeIntegratedPostprocessor
value = total_fission_rate
execute_on = 'initial timestep_end'
[]
##### irradiation conditions
[particle_power]
type = ElementIntegralPower
variable = temperature
use_material_fission_rate = true
fission_rate_material = fission_rate
block = fuel
execute_on = 'initial timestep_end'
[]
[max_fluence]
type = ElementExtremeValue
variable = fast_neutron_fluence
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[max_burnup]
type = ElementExtremeValue
variable = burnup
block = fuel
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[aver_temp_exterior]
type = SideAverageValue
variable = temperature
boundary = exterior
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = true
print_linear_converged_reason = false
print_nonlinear_converged_reason = false
[]
(assessment/TRISO/validation/AGR-2/AGR-2_Kr.i)
[Variables]
[conc_Kr]
initial_condition = 0.0
[]
[]
[AuxVariables]
[Kr_diff_coef]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[mass_Kr_dt]
type = TimeDerivative
variable = conc_Kr
[]
[mass_Kr]
type = ArrheniusDiffusion
variable = conc_Kr
arrhenius_prpty_name = arrhenius_diffusion_coef_Kr
extra_vector_tags = 'ref'
[]
[mass_source_Kr]
type = SpeciesSourceRate
variable = conc_Kr
property_name = Kr_generation
block = 'fuel OPyC'
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[Kr_diff_coef]
type = MaterialRealAux
variable = Kr_diff_coef
property = arrhenius_diffusion_coef_Kr
execute_on = timestep_end
[]
[]
[BCs]
# fix concentration on free surface
[freesurf_conc_Kr]
type = DirichletBC
variable = conc_Kr
boundary = exterior
value = 0.0
[]
[]
[Materials]
# # Arrhenius diffusion coefficients for kernel, PyC, and SiC
# # come from IAEA TECDOC-978, French parameters.
# [fuel_conc_Kr]
# type = ParsedMaterial
# block = fuel
# property_name = arrhenius_diffusion_coef_Kr
# coupled_variables = 'temperature'
# constant_names = 'R D1_low Q1_low D1 Q1 D2 Q2 switch'
# constant_expressions = '8.3145 1.3e-12 126e3 8.8e-15 54e3 6e-1 480e3 1773.15'
# expression = 'if(temperature<switch,D1_low*exp(-Q1_low/(R*temperature)),D1*exp(-Q1/(R*temperature))+D2*exp(-Q2/(R*temperature)))'
# []
# [fuel_conc_Kr_dT]
# type = ParsedMaterial
# block = fuel
# property_name = arrhenius_diffusion_coef_Kr_dT
# coupled_variables = 'temperature'
# constant_names = 'R D1_low Q1_low D1 Q1 D2 Q2 switch'
# constant_expressions = '8.3145 1.3e-12 126e3 8.8e-15 54e3 6e-1 480e3 1773.15'
# expression = 'if(temperature<switch,D1_low*exp(-Q1_low/(R*temperature))*Q1_low/(R*temperature*temperature),D1*exp(-Q1/(R*temperature))*Q1/(R*temperature*temperature)+D2*exp(-Q2/(R*temperature))*Q2/(R*temperature*temperature))'
# []
# [mass_source_Kr_property]
# type = SpeciesSourceMaterial
# property_name = Kr_generation
# kind = Kr
# block = fuel
# []
[fuel_conc_Kr]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 8.8e-15 # m^2/s
q1 = 54e3 # J/mol
d2 = 6.0e-1
q2 = 480e3
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Kr
[]
[mass_source_Kr_property]
type = SpeciesSourceMaterial
block = fuel
property_name = Kr_generation
kind = custom
additional_function = '0.002717/6.022e23'
additional_function_property = fission_rate
[]
### Buffer Properties
[buffer_conc_Kr]
type = ArrheniusDiffusionCoef
block = buffer
d1 = 1e-8 # m^2/s
q1 = 0.0
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Kr
[]
### IPyC properties
[IPyC_conc_Kr]
type = ArrheniusDiffusionCoef
block = IPyC
d1 = 2.9e-8 # m^2/s
q1 = 291e3 # J/mol
d2 = 2e5 # m^2/s
q2 = 923e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Kr
[]
### SiC properties
[SiC_conc_Kr]
type = ParsedMaterial
block = SiC
property_name = arrhenius_diffusion_coef_Kr
coupled_variables = 'temperature'
# Switching temperature between low and high correlations is given as 1673.15 K in
# INL/EXT-16-39548. Here, we use 1626 since that gives continuity between
# correlations and is the value used in PARFUME.
constant_names = 'R D1_low Q1_low D1 Q1 switch'
constant_expressions = '8.3145 8.6e-10 326e3 3.7e1 657e3 2e6'
expression = 'if(temperature<switch,D1_low*exp(-Q1_low/(R*temperature)),D1*exp(-Q1/(R*temperature)))'
[]
[SiC_conc_Kr_dT]
type = ParsedMaterial
block = SiC
property_name = arrhenius_diffusion_coef_Kr_dT
coupled_variables = 'temperature'
# Switching temperature between low and high correlations is given as 1673.15 K in
# INL/EXT-16-39548. Here, we use 1626 since that gives continuity between
# correlations and is the value used in PARFUME.
constant_names = 'R D1_low Q1_low D1 Q1 switch'
constant_expressions = '8.3145 8.6e-10 326e3 3.7e1 657e3 2e6'
expression = 'if(temperature<switch,D1_low*exp(-Q1_low/(R*temperature))*Q1_low/(R*temperature*temperature),D1*exp(-Q1/(R*temperature))*Q1/(R*temperature*temperature))'
[]
### OPyC properties
[OPyC_conc_Kr]
type = ArrheniusDiffusionCoef
block = OPyC
d1 = 2.9e-8 # m^2/s
q1 = 291e3 # J/mol
d2 = 2e5 # m^2/s
q2 = 923e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Kr
[]
[mass_source_Kr_property_OPyC]
type = SpeciesSourceMaterial
property_name = Kr_generation
kind = Kr
block = OPyC
#value = impurities * vol_kernel / vol_opyc
#value = 1.59e-6 * 4.07e-11 / 9.16e-11 # for UCO
#value = 1.57e-6 * 6.85e-11 / 1.18e-10 # for UO2
value = ${mass_source_property_OPyC}
[]
[]
[Postprocessors]
[release_Kr_inc]
type = SideIntegralMassFlux
variable = conc_Kr
boundary = exterior
arrhenius_prpty_name = arrhenius_diffusion_coef_Kr
execute_on = 'initial timestep_end'
[]
[released_Kr]
type = TimeIntegratedPostprocessor
value = release_Kr_inc
execute_on = 'initial timestep_end'
[]
[total_Kr]
type = ElementIntegralMaterialProperty
mat_prop = Kr_generation_total
block = 'fuel OPyC'
execute_on = 'initial timestep_end'
[]
[x_Kr_released]
type = FractionalRelease
released = released_Kr
total = total_Kr
execute_on = 'initial timestep_end'
[]
[x_Kr_released_safety]
type = FractionalRelease
released = released_Kr
total = total_Kr
execute_on = 'initial timestep_end'
start_time = 50284800
safety_fraction_type = net
[]
[retained_Kr]
type = ElementIntegralVariablePostprocessor
variable = conc_Kr
execute_on = 'initial timestep_end'
[]
[]
(assessment/TRISO/validation/AGR-34/SharedFiles/capsule_Cs.i)
[InterfaceKernels]
[fuel_matrix]
type = SorptionIsothermGapInterface
variable = conc_Cs
neighbor_var = conc_Cs
partial_pressure_name = partial_pressure
sorption_penalty = 1e5
diffusivity = arrhenius_diffusion_coef_Cs
use_flux_penalty = true
flux_penalty = 1e3
boundary = 'DRV_IR'
[]
[matrix_graphite]
type = SorptionIsothermGapInterface
variable = conc_Cs
neighbor_var = conc_Cs
partial_pressure_name = partial_pressure
sorption_penalty = 1e5
diffusivity = arrhenius_diffusion_coef_Cs
use_flux_penalty = true
flux_penalty = 1e3
boundary = 'IR_OR'
[]
[graphite_sink]
type = SorptionIsothermGapInterface
variable = conc_Cs
neighbor_var = conc_Cs
partial_pressure_name = partial_pressure
sorption_penalty = 1e5
diffusivity = arrhenius_diffusion_coef_Cs
use_flux_penalty = true
flux_penalty = 1e3
boundary = 'OR_SR'
[]
[]
[Variables]
[conc_Cs]
scaling = 1e12 #1e18
[]
[]
[AuxVariables]
[Cs_diff_coef]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[mass_Cs_dt]
type = TimeDerivative
variable = conc_Cs
extra_vector_tags = 'ref'
[]
[mass_Cs]
type = ArrheniusDiffusion
variable = conc_Cs
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
extra_vector_tags = 'ref'
[]
[conc_source_dtf]
type = BodyForce
variable = conc_Cs
block = 'DTF'
function = DTF_MassIsotope
extra_vector_tags = 'ref'
[]
[conc_source_drv]
type = BodyForce
variable = conc_Cs
block = 'DRV'
function = DRV_MassIsotope
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[Cs_diff_coef]
type = MaterialRealAux
variable = Cs_diff_coef
property = arrhenius_diffusion_coef_Cs
execute_on = timestep_end
[]
[]
[BCs]
[freesurf_conc_Cs]
type = DirichletBC
variable = conc_Cs
boundary = 'right'
value = 0.0
extra_vector_tags = 'ref'
[]
[]
[Materials]
[matrix_conc_Cs]
type = ArrheniusDiffusionCoef
d1 = 3.6e-4 #3.6e-4m^2/s
q1 = 189000 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[graphite_conc_Cs]
type = ArrheniusDiffusionCoef
d1 = 1.7e-6 # 1.7e-6 m^2/s
q1 = 149000 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[Cs_matrix_partial_pressure]
type = SorptionPartialPressure
A = 19.33
B = -47290
D = 1.518
E = 4338
d1 = 3.397
d2 = 6.15e-4
unit_scale = 1e3 # convert from mol to mmol
density = density # convert from mmol/m^3 to mmol/kg
concentration = conc_Cs
temperature = temperature
output_properties = partial_pressure
[]
[Cs_graphite_partial_pressure]
type = SorptionPartialPressure
A = 24.0
B = -35730.
D = -1.561
E = 6123.
d1 = -2.035
d2 = 1.79e-3
unit_scale = 1e3 # convert from mol to mmol
density = density # convert from mmol/m^3 to mmol/kg
concentration = conc_Cs
temperature = temperature
output_properties = partial_pressure
[]
[]
[Postprocessors]
[release_Cs_inc_pebble]
type = SideIntegralMassFlux
variable = conc_Cs
boundary = right
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
execute_on = 'initial timestep_end'
[]
[released_Cs]
type = TimeIntegratedPostprocessor
value = release_Cs_inc_pebble
execute_on = 'initial timestep_end'
[]
[retained_Cs]
type = ElementIntegralVariablePostprocessor
variable = conc_Cs
[]
# check partial pressure equality and integral flux conservation from DRV to IR
[flux_DRV_outer]
type = SideDiffusiveFluxIntegral
boundary = 'DRV_IR'
variable = conc_Cs
diffusivity = arrhenius_diffusion_coef_Cs
[]
[flux_IR_inner]
type = SideDiffusiveFluxIntegral
boundary = 'IR_DRV'
variable = conc_Cs
diffusivity = arrhenius_diffusion_coef_Cs
[]
[flux_DRV_IR_error]
type = FunctionValuePostprocessor
function = flux_DRV_IR_error
[]
# check partial pressure equality and integral flux conservation from IR to OR
[flux_IR_outer]
type = SideDiffusiveFluxIntegral
boundary = 'IR_OR'
variable = conc_Cs
diffusivity = arrhenius_diffusion_coef_Cs
[]
[flux_OR_inner]
type = SideDiffusiveFluxIntegral
boundary = 'OR_IR'
variable = conc_Cs
diffusivity = arrhenius_diffusion_coef_Cs
[]
[flux_IR_OR_error]
type = FunctionValuePostprocessor
function = flux_IR_OR_error
[]
# check partial pressure equality and integral flux conservation from OR to SR
[flux_OR_outer]
type = SideDiffusiveFluxIntegral
boundary = 'OR_SR'
variable = conc_Cs
diffusivity = arrhenius_diffusion_coef_Cs
[]
[flux_SR_inner]
type = SideDiffusiveFluxIntegral
boundary = 'SR_OR'
variable = conc_Cs
diffusivity = arrhenius_diffusion_coef_Cs
[]
[flux_OR_SR_error]
type = FunctionValuePostprocessor
function = flux_OR_SR_error
[]
[]
[VectorPostprocessors]
[Cs_conc]
type = LineValueSampler
variable = conc_Cs
start_point = '0.0 0 0.0'
num_points = 1000
use_displaced_mesh = false
execute_on = final
sort_by = x
outputs = line_plot_Cs
[]
[]
[Outputs]
[line_plot_Cs]
type = CSV
execute_on = 'FINAL'
time_step_interval = 1
create_final_symlink = true
file_base = capsule_radial
[]
[]
(assessment/TRISO/validation/AGR-34/Compacts/Ag/DTF/AGR-34_dtf_Ag.i)
[Variables]
[conc_Ag_dtf]
initial_condition = 0.0
[]
[]
[AuxVariables]
[Ag_dtf_diff_coef]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[mass_Ag_dtf_dt]
type = TimeDerivative
variable = conc_Ag_dtf
extra_vector_tags = 'ref'
[]
[mass_Ag_dtf]
type = ArrheniusDiffusion
variable = conc_Ag_dtf
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag_dtf
extra_vector_tags = 'ref'
[]
[mass_source_Ag_dtf]
type = SpeciesSourceRate
variable = conc_Ag_dtf
property_name = Ag_dtf_generation
block = 'fuel'
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[Ag_dtf_diff_coef]
type = MaterialRealAux
variable = Ag_dtf_diff_coef
property = arrhenius_diffusion_coef_Ag_dtf
execute_on = timestep_end
[]
[]
[BCs]
[freesurf_conc_Ag_dtf]
type = DirichletBC
variable = conc_Ag_dtf
boundary = exterior
value = 0.0
[]
[]
[Materials]
### Kernel Properties
[fuel_conc_Ag_dtf]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 6.7e-9 # m^2/s
q1 = 165e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag_dtf
[]
[mass_source_Ag_dtf_property]
type = SpeciesSourceMaterial
property_name = Ag_dtf_generation
kind = Ag
block = fuel
[]
### PyC properties
[IPyC_conc_Ag_dtf]
type = ArrheniusDiffusionCoef
block = PyC
d1 = 1.0e-6 # m^2/s
q1 = 0.0
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag_dtf
[]
[]
[Postprocessors]
### Release
[release_Ag_dtf_inc]
type = SideIntegralMassFlux
variable = conc_Ag_dtf
boundary = exterior
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag_dtf
execute_on = 'initial timestep_end'
[]
[released_Ag_dtf]
type = TimeIntegratedPostprocessor # computes time integration of value
value = release_Ag_dtf_inc
execute_on = 'initial timestep_end'
[]
[total_Ag_dtf]
type = ElementIntegralMaterialProperty
mat_prop = Ag_dtf_generation_total
block = 'fuel'
execute_on = 'initial timestep_end'
[]
[x_Ag_dtf_released]
type = FractionalRelease
released = released_Ag_dtf
total = total_Ag_dtf
execute_on = 'initial timestep_end'
[]
[retained_Ag_dtf]
type = ElementIntegralVariablePostprocessor
variable = conc_Ag_dtf
execute_on = 'initial timestep_end'
[]
[]
(assessment/TRISO/benchmark/IAEA_CRP-6/diffusion/case_1b/case_1b.i)
[GlobalParams]
order = SECOND
family = LAGRANGE
[]
[Mesh]
coord_type = RSPHERICAL
[gen]
type = GeneratedMeshGenerator
dim = 1
elem_type = EDGE3
nx = 50
xmax = 250e-6
[]
[]
[Problem]
[]
[Variables]
[conc_Cs]
initial_condition = 1
[]
[]
[AuxVariables]
[temperature]
initial_condition = 1873.15
[]
[Cs_diff_coef]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[mass_Cs_dt]
type = TimeDerivative
variable = conc_Cs
[]
[mass_Cs]
type = ArrheniusDiffusion
variable = conc_Cs
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
temperature = temperature
[]
[]
[AuxKernels]
[Cs_diff_coef]
type = MaterialRealAux
variable = Cs_diff_coef
property = arrhenius_diffusion_coef_Cs
execute_on = timestep_end
[]
[]
[BCs]
[freesurf_conc_Cs]
type = DirichletBC
variable = conc_Cs
boundary = right
value = 0.0
[]
[]
[Materials]
[fuel_conc_Cs]
type = ArrheniusDiffusionCoef
d1 = 5.6e-8 # m^2/s
q1 = 209e3 # J/mol
d2 = 5.2e-4
q2 = 362e3
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[]
[Debug]
show_var_residual_norms = true
show_var_residual = 'conc_Cs'
[]
[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 = 1e-40
nl_max_its = 50
l_tol = 1e-4
l_max_its = 50
start_time = 0.0
end_time = 720000
num_steps = 700
dt = 3600
dtmax = 3600
dtmin = 3600
[]
# [Adaptivity]
# marker = marker
# max_h_level = 4 #10
# cycles_per_step = 2 #5
# [Indicators]
# [error]
# type = GradientJumpIndicator
# variable = conc_Sr
# []
# []
# [Markers]
# [marker]
# type = ErrorFractionMarker
# coarsen = 0.15
# indicator = error
# refine = 0.7
# []
# []
# []
[Postprocessors]
[release_Cs_inc]
type = SideIntegralMassFlux
variable = conc_Cs
boundary = right
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
execute_on = 'initial timestep_end'
[]
[released_Cs]
type = TimeIntegratedPostprocessor
value = release_Cs_inc
execute_on = 'initial timestep_end'
[]
[total_Cs]
type = ElementIntegralVariablePostprocessor
variable = conc_Cs
execute_on = 'initial'
[]
[x_Cs_released]
type = FractionalRelease
released = released_Cs
total = total_Cs
[]
[retained_Cs]
type = ElementIntegralVariablePostprocessor
variable = conc_Cs
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = false
exodus = true
[console]
type = Console
time_step_interval = 1
[]
[out]
type = CSV
execute_on = final
[]
[]
(test/tests/triso_pebble/triso_1d.i)
kernel_radius = 213.35e-6
buffer_thickness = 98.9e-6
IPyC_thickness = 40.4e-6
SiC_thickness = 35.2e-6
OPyC_thickness = 43.4e-6
coordinates1 = '${fparse kernel_radius}'
coordinates2 = '${fparse coordinates1+buffer_thickness}'
coordinates3 = '${fparse coordinates2+IPyC_thickness}'
coordinates4 = '${fparse coordinates3+SiC_thickness}'
coordinates5 = '${fparse coordinates4+OPyC_thickness}'
[GlobalParams]
order = SECOND
family = LAGRANGE
initial_enrichment = 0.14029 # [wt-]
energy_per_fission = 3.204e-11 # [J/fission]
O_U = 1.428 # Initial Oxygen to Uranium atom ratio
C_U = 0.392 # Initial Carbon to Uranium atom ratio
[]
[Mesh]
coord_type = RSPHERICAL
[mesh]
type = TRISO1DMeshGenerator
elem_type = EDGE3
coordinates = '0 ${coordinates1} ${coordinates2} ${coordinates3} ${coordinates4} ${coordinates5}'
mesh_density = '18 14 12 16 16'
block_names = 'fuel buffer IPyC SiC OPyC'
[]
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[UserObjects]
[particle_geometry]
type = TRISOGeometry
outer_OPyC = OPyC_outer_boundary
outer_SiC = SiC_outer_boundary
outer_IPyC = IPyC_outer_boundary
inner_IPyC = IPyC_inner_boundary
outer_buffer = buffer_outer_boundary
outer_kernel = fuel_outer_boundary
include_particle = true
include_pebble = false
[]
[]
[Variables]
[temperature]
initial_condition = 773.15
[]
[conc_Ag]
initial_condition = 0.0
scaling = 1e14
[]
[conc_Cs]
initial_condition = 0.0
scaling = 1e14
[]
[conc_Sr]
initial_condition = 0.0
scaling = 1e14
[]
[]
[AuxVariables]
[fission_rate]
order = CONSTANT
family = MONOMIAL
[]
[burnup]
order = CONSTANT
family = MONOMIAL
[]
[fast_neutron_flux]
order = CONSTANT
family = MONOMIAL
[]
[fast_neutron_fluence]
order = CONSTANT
family = MONOMIAL
[]
[fis_gas_produced]
order = CONSTANT
family = MONOMIAL
[]
[fis_gas_released]
order = CONSTANT
family = MONOMIAL
[]
[Ag_diff_coef]
order = CONSTANT
family = MONOMIAL
[]
[Cs_diff_coef]
order = CONSTANT
family = MONOMIAL
[]
[Sr_diff_coef]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[power_history]
type = PiecewiseLinear
x = '0 76e6'
y = '1 1'
[]
[fission_rate]
type = LinearCombinationFunction
functions = power_history
w = 5.75e19
[]
[d1_function]
type = ParsedFunction
expression = 'exp(t/4.5e25)'
[]
[temp_bc_func]
type = ParsedFunction
expression = temp_bc
symbol_names = temp_bc
symbol_values = temp_bc
[]
[]
[Kernels]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temperature
extra_vector_tags = 'ref'
[]
[heat]
type = HeatConduction
variable = temperature
extra_vector_tags = 'ref'
[]
[heat_source]
type = NeutronHeatSource
variable = temperature
block = fuel
fission_rate = fission_rate
extra_vector_tags = 'ref'
[]
[mass_Ag_dt]
type = TimeDerivative
variable = conc_Ag
[]
[mass_Ag]
type = ArrheniusDiffusion
variable = conc_Ag
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
extra_vector_tags = 'ref'
[]
[mass_source_Ag]
type = SpeciesSourceRate
variable = conc_Ag
property_name = Ag_generation
block = fuel
extra_vector_tags = 'ref'
[]
[mass_Cs_dt]
type = TimeDerivative
variable = conc_Cs
[]
[mass_Cs]
type = ArrheniusDiffusion
variable = conc_Cs
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
extra_vector_tags = 'ref'
[]
[mass_source_Cs]
type = SpeciesSourceRate
variable = conc_Cs
property_name = Cs_generation
block = fuel
extra_vector_tags = 'ref'
[]
[mass_Sr_dt]
type = MassLumpedTimeDerivative
variable = conc_Sr
[]
[mass_Sr]
type = ArrheniusDiffusion
variable = conc_Sr
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
extra_vector_tags = 'ref'
[]
[mass_source_Sr]
type = SpeciesSourceRate
variable = conc_Sr
property_name = Sr_generation
block = fuel
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[fissionrate]
type = MaterialRealAux
variable = fission_rate
property = fission_rate
block = fuel
execute_on = timestep_begin
[]
[burnup]
type = MaterialRealAux
variable = burnup
property = burnup
block = fuel
execute_on = timestep_begin
[]
[fast_neutron_flux]
type = MaterialRealAux
variable = fast_neutron_flux
property = fast_neutron_flux
execute_on = timestep_begin
[]
[fast_neutron_fluence]
type = MaterialRealAux
variable = fast_neutron_fluence
property = fast_neutron_fluence
execute_on = timestep_begin
[]
[Ag_diff_coef]
type = MaterialRealAux
variable = Ag_diff_coef
property = arrhenius_diffusion_coef_Ag
execute_on = timestep_end
[]
[Cs_diff_coef]
type = MaterialRealAux
variable = Cs_diff_coef
property = arrhenius_diffusion_coef_Cs
execute_on = timestep_end
[]
[Sr_diff_coef]
type = MaterialRealAux
variable = Sr_diff_coef
property = arrhenius_diffusion_coef_Sr
execute_on = timestep_end
[]
[]
[BCs]
[freesurf_temp]
type = FunctionDirichletBC
variable = temperature
function = temp_bc_func
boundary = exterior
[]
[freesurf_conc_Ag]
type = DirichletBC
variable = conc_Ag
boundary = exterior
value = 0.0
[]
[freesurf_conc_Cs]
type = DirichletBC
variable = conc_Cs
boundary = exterior
value = 0.0
[]
[freesurf_conc_Sr]
type = DirichletBC
variable = conc_Sr
boundary = exterior
value = 0.0
[]
[]
[Materials]
[fission_rate]
type = GenericFunctionMaterial
prop_names = fission_rate
prop_values = fission_rate
[]
[fast_neutron_flux]
type = FastNeutronFlux
calculate_fluence = true
flux_function = power_history
factor = 6.28e17
[]
[UCO_burnup]
type = TRISOBurnup
initial_density = 10966.0
[]
[UCO_thermal]
type = UCOThermal
block = fuel
temperature = temperature
[]
[UCO_density]
type = ParsedMaterial
block = fuel
property_name = density
expression = 10966.0
[]
[fission_gas_release]
type = UCOFGR
block = fuel
average_grain_radius = 10e-6
temperature = temperature
triso_geometry = particle_geometry
cutoff_neutron_flux = 0.0
[]
# Arrhenius diffusion coefficients for kernel, PyC, and SiC
# come from IAEA TECDOC-978, French parameters.
[fuel_conc_Ag]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 6.7e-9 # m^2/s
q1 = 165e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[fuel_conc_Cs]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 5.6e-8 # m^2/s
q1 = 209e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[fuel_conc_Sr]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 2.2e-3 # m^2/s
q1 = 488e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
[]
[mass_source_Ag_property]
type = SpeciesSourceMaterial
property_name = Ag_generation
kind = Ag
block = fuel
[]
[mass_source_Cs_property]
type = SpeciesSourceMaterial
property_name = Cs_generation
kind = Cs
block = fuel
[]
[mass_source_Sr_property]
type = SpeciesSourceMaterial
property_name = Sr_generation
kind = Sr
block = fuel
[]
### Buffer Properties
[buffer_thermal]
type = BufferThermal
block = buffer
initial_density = 1050.0
[]
[Buffer_density]
type = ParsedMaterial
block = buffer
property_name = density
expression = 1050.0
[]
[buffer_conc_Ag]
type = ArrheniusDiffusionCoef
block = buffer
d1 = 1e-8 # m^2/s
q1 = 0.0
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[buffer_conc_Cs]
type = ArrheniusDiffusionCoef
block = buffer
d1 = 1e-8 # m^2/s
q1 = 0.0
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[buffer_conc_Sr]
type = ArrheniusDiffusionCoef
block = buffer
d1 = 1e-8 # m^2/s
q1 = 0.0
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
[]
### IPyC properties
[IPyC_thermal]
type = HeatConductionMaterial
block = IPyC
thermal_conductivity = 4.0
specific_heat = 720.0
[]
[IPyC_density]
type = ParsedMaterial
block = IPyC
property_name = density
expression = 1907.0
[]
[IPyC_conc_Ag]
type = ArrheniusDiffusionCoef
block = IPyC
d1 = 5.3e-9 # m^2/s
q1 = 154e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[IPyC_conc_Cs]
type = ArrheniusDiffusionCoef
block = IPyC
d1 = 6.3e-8 # m^2/s
q1 = 222e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[IPyC_conc_Sr]
type = ArrheniusDiffusionCoef
block = IPyC
d1 = 2.3e-6 # m^2/s
q1 = 197e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
[]
### SiC properties
[SiC_thermal]
type = MonolithicSiCThermal
block = SiC
temperature = temperature
thermal_conductivity_model = miller
[]
[SiC_density]
type = ParsedMaterial
block = SiC
property_name = density
expression = 3200.0
[]
[SiC_conc_Ag]
type = ArrheniusDiffusionCoef
block = SiC
d1 = 3.6e-9 # m^2/s
q1 = 215e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[SiC_conc_Cs]
type = ArrheniusDiffusionCoef
block = SiC
d1 = 5.5e-14 # m^2/s
q1 = 125e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[SiC_conc_Sr]
type = ArrheniusDiffusionCoef
block = SiC
d1 = 1.2e-9 # m^2/s
q1 = 205e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
[]
### OPyC properties
[OPyC_thermal_conductivity]
type = HeatConductionMaterial
block = OPyC
thermal_conductivity = 4.0
specific_heat = 720.0
[]
[OPyC_density]
type = ParsedMaterial
block = OPyC
property_name = density
expression = 1907.0
[]
[OPyC_conc_Ag]
type = ArrheniusDiffusionCoef
block = OPyC
d1 = 5.3e-9 # m^2/s
q1 = 154e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[OPyC_conc_Cs]
type = ArrheniusDiffusionCoef
block = OPyC
d1 = 6.3e-8 # m^2/s
q1 = 222e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[OPyC_conc_Sr]
type = ArrheniusDiffusionCoef
block = OPyC
d1 = 2.3e-6 # m^2/s
q1 = 197e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Debug]
show_var_residual_norms = true
show_var_residual = 'temperature conc_Ag conc_Cs conc_Sr'
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
line_search = 'none'
automatic_scaling = true
nl_rel_tol = 1e-12
nl_abs_tol = 1e-12
nl_max_its = 20
nl_forced_its = 2
l_tol = 1e-4
l_max_its = 50
start_time = 0.0
dt = 20000
num_steps = 2
[]
[Postprocessors]
[temp_bc]
type = Receiver
[]
[release_Ag_inc]
type = SideIntegralMassFlux
variable = conc_Ag
boundary = exterior
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
execute_on = 'initial timestep_end'
[]
[released_Ag]
type = TimeIntegratedPostprocessor # computes time integration of value
value = release_Ag_inc
execute_on = 'initial timestep_end'
[]
[total_Ag]
type = ElementIntegralMaterialProperty
mat_prop = Ag_generation_total
block = fuel
execute_on = 'initial timestep_end'
[]
[x_Ag_released]
type = FractionalRelease
released = released_Ag
total = total_Ag
[]
[retained_Ag]
type = ElementIntegralVariablePostprocessor
variable = conc_Ag
[]
[release_Cs_inc]
type = SideIntegralMassFlux
variable = conc_Cs
boundary = exterior
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
execute_on = 'initial timestep_end'
[]
[released_Cs]
type = TimeIntegratedPostprocessor
value = release_Cs_inc
execute_on = 'initial timestep_end'
[]
[total_Cs]
type = ElementIntegralMaterialProperty
mat_prop = Cs_generation_total
block = fuel
execute_on = 'initial timestep_end'
[]
[x_Cs_released]
type = FractionalRelease
released = released_Cs
total = total_Cs
[]
[retained_Cs]
type = ElementIntegralVariablePostprocessor
variable = conc_Cs
[]
[release_Sr_inc]
type = SideIntegralMassFlux
variable = conc_Sr
boundary = exterior
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
execute_on = 'initial timestep_end'
[]
[released_Sr]
type = TimeIntegratedPostprocessor
value = release_Sr_inc
execute_on = 'initial timestep_end'
[]
[released_heat_inc]
type = SideIntegralMassFlux
variable = temperature
boundary = exterior
arrhenius_prpty_name = thermal_conductivity
execute_on = 'initial timestep_end'
[]
[total_Sr]
type = ElementIntegralMaterialProperty
mat_prop = Sr_generation_total
block = fuel
execute_on = 'initial timestep_end'
[]
[x_Sr_released]
type = FractionalRelease
released = released_Sr
total = total_Sr
[]
[retained_Sr]
type = ElementIntegralVariablePostprocessor
variable = conc_Sr
[]
[fis_gas_produced]
type = ElementIntegralMaterialProperty
mat_prop = fis_gas_produced
block = fuel
execute_on = 'initial timestep_end'
[]
[fis_gas_released]
type = ElementIntegralMaterialProperty
mat_prop = fis_gas_released
block = fuel
execute_on = 'initial timestep_end'
[]
### Postprocessors for CO production
[total_fission_rate]
type = ElementIntegralPower
variable = temperature
fission_rate = fission_rate
block = fuel
energy_per_fission = 1.0
execute_on = 'initial timestep_end'
[]
[total_fissions]
type = TimeIntegratedPostprocessor
value = total_fission_rate
execute_on = 'initial timestep_end'
[]
##### irradiation conditions
[particle_power]
type = ElementIntegralPower
variable = temperature
use_material_fission_rate = true
fission_rate_material = fission_rate
block = fuel
execute_on = 'initial timestep_end'
[]
[max_fluence]
type = ElementExtremeValue
variable = fast_neutron_fluence
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[max_burnup]
type = ElementExtremeValue
variable = burnup
block = fuel
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[aver_temp_exterior]
type = SideAverageValue
variable = temperature
boundary = exterior
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
print_linear_residuals = false
[]
(examples/TRISO/pebble/triso_1d_failed.i)
kernel_radius = 213.35e-6
buffer_thickness = 98.9e-6
IPyC_thickness = 40.4e-6
SiC_thickness = 35.2e-6
OPyC_thickness = 43.4e-6
coordinates1 = '${fparse kernel_radius}'
coordinates2 = '${fparse coordinates1+buffer_thickness}'
coordinates3 = '${fparse coordinates2+IPyC_thickness}'
coordinates4 = '${fparse coordinates3+SiC_thickness}'
coordinates5 = '${fparse coordinates4+OPyC_thickness}'
[GlobalParams]
order = SECOND
family = LAGRANGE
initial_enrichment = 0.14029 # [wt-]
energy_per_fission = 3.204e-11 # [J/fission]
O_U = 1.428 # Initial Oxygen to Uranium atom ratio
C_U = 0.392 # Initial Carbon to Uranium atom ratio
[]
[Mesh]
coord_type = RSPHERICAL
[mesh]
type = TRISO1DMeshGenerator
elem_type = EDGE3
coordinates = '0 ${coordinates1} ${coordinates2} ${coordinates3} ${coordinates4} ${coordinates5}'
mesh_density = '18 14 12 16 16'
block_names = 'fuel buffer IPyC SiC OPyC'
[]
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[UserObjects]
[particle_geometry]
type = TRISOGeometry
outer_OPyC = OPyC_outer_boundary
outer_SiC = SiC_outer_boundary
outer_IPyC = IPyC_outer_boundary
inner_IPyC = IPyC_inner_boundary
outer_buffer = buffer_outer_boundary
outer_kernel = fuel_outer_boundary
include_particle = true
include_pebble = false
[]
[]
[Variables]
[temperature]
initial_condition = 773.15
[]
[conc_Cs]
initial_condition = 0.0
scaling = 1e18
[]
[]
[AuxVariables]
[fission_rate]
order = CONSTANT
family = MONOMIAL
[]
[burnup]
order = CONSTANT
family = MONOMIAL
[]
[fast_neutron_flux]
order = CONSTANT
family = MONOMIAL
[]
[fast_neutron_fluence]
order = CONSTANT
family = MONOMIAL
[]
[fis_gas_produced]
order = CONSTANT
family = MONOMIAL
[]
[fis_gas_released]
order = CONSTANT
family = MONOMIAL
[]
[Cs_diff_coef]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[power_history]
type = PiecewiseLinear
x = '0 1e3 4.51008e7' #change time (s) for desired EFPD
y = '0 1 1'
[]
[fission_rate]
type = LinearCombinationFunction
functions = power_history
w = 2.927e18
[]
[temp_bc_func]
type = ParsedFunction
value = temp_bc
symbol_names = temp_bc
symbol_values = temp_bc
[]
[]
[Kernels]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temperature
extra_vector_tags = 'ref'
[]
[heat]
type = HeatConduction
variable = temperature
extra_vector_tags = 'ref'
[]
[heat_source]
type = NeutronHeatSource
variable = temperature
block = fuel
fission_rate = fission_rate
extra_vector_tags = 'ref'
[]
[mass_Cs_dt]
type = TimeDerivative
variable = conc_Cs
[]
[mass_Cs]
type = ArrheniusDiffusion
variable = conc_Cs
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
extra_vector_tags = 'ref'
[]
[mass_source_Cs]
type = SpeciesSourceRate
variable = conc_Cs
property_name = Cs_generation
block = fuel
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[fissionrate]
type = MaterialRealAux
variable = fission_rate
property = fission_rate
block = fuel
execute_on = timestep_begin
[]
[burnup]
type = MaterialRealAux
variable = burnup
property = burnup
block = fuel
execute_on = timestep_begin
[]
[fast_neutron_flux]
type = MaterialRealAux
variable = fast_neutron_flux
property = fast_neutron_flux
execute_on = timestep_begin
[]
[fast_neutron_fluence]
type = MaterialRealAux
variable = fast_neutron_fluence
property = fast_neutron_fluence
execute_on = timestep_begin
[]
[Cs_diff_coef]
type = MaterialRealAux
variable = Cs_diff_coef
property = arrhenius_diffusion_coef_Cs
execute_on = timestep_end
[]
[]
[BCs]
[freesurf_temp]
type = FunctionDirichletBC
variable = temperature
function = temp_bc_func
boundary = exterior
[]
[freesurf_conc_Cs]
type = DirichletBC
variable = conc_Cs
boundary = exterior
value = 0.0
[]
[]
[Materials]
[fission_rate]
type = GenericFunctionMaterial
prop_names = fission_rate
prop_values = fission_rate
[]
[fast_neutron_flux]
type = FastNeutronFlux
calculate_fluence = true
flux_function = power_history
factor = 1.109e18
[]
[UCO_burnup]
type = TRISOBurnup
initial_density = ${initial_fuel_density}
[]
[UCO_thermal]
type = UCOThermal
block = fuel
temperature = temperature
[]
[UCO_density]
type = StrainAdjustedDensity
block = fuel
strain_free_density = 10966.0
[]
[fission_gas_release]
type = UCOFGR
block = fuel
average_grain_radius = 10e-6
temperature = temperature
triso_geometry = particle_geometry
[]
# Arrhenius diffusion coefficients for kernel, PyC, and SiC
# come from IAEA TECDOC-978, French parameters.
[fuel_conc_Cs]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 5.6e-8 # m^2/s
q1 = 209e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[mass_source_Cs_property]
type = SpeciesSourceMaterial
property_name = Cs_generation
kind = Cs
block = fuel
[]
### Buffer Properties
[buffer_thermal]
type = BufferThermal
block = buffer
initial_density = 1050.0
[]
[Buffer_density]
type = StrainAdjustedDensity
block = buffer
strain_free_density = 1050.0
[]
[buffer_conc_Cs]
type = ArrheniusDiffusionCoef
block = buffer
d1 = 1e-8 # m^2/s
q1 = 0.0
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
### IPyC properties
[IPyC_thermal]
type = HeatConductionMaterial
block = IPyC
thermal_conductivity = 4.0
specific_heat = 720.0
[]
[IPyC_density]
type = StrainAdjustedDensity
block = IPyC
strain_free_density = 1907.0
[]
[IPyC_conc_Cs]
type = ArrheniusDiffusionCoef
block = IPyC
d1 = 6.3e-8 # m^2/s
q1 = 222e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
### SiC properties
[SiC_thermal]
type = MonolithicSiCThermal
block = SiC
temperature = temperature
thermal_conductivity_model = miller
[]
[SiC_density]
type = StrainAdjustedDensity
block = SiC
strain_free_density = 3200.0
[]
[SiC_conc_Cs]
type = ArrheniusDiffusionCoef
block = SiC
d1 = 1e-6 # m^2/s
q1 = 0 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
### OPyC properties
[OPyC_thermal_conductivity]
type = HeatConductionMaterial
block = OPyC
thermal_conductivity = 4.0
specific_heat = 720.0
[]
[OPyC_density]
type = StrainAdjustedDensity
block = OPyC
strain_free_density = 1907.0
[]
[OPyC_conc_Cs]
type = ArrheniusDiffusionCoef
block = OPyC
d1 = 6.3e-8 # m^2/s
q1 = 222e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
line_search = 'none'
nl_rel_tol = 1e-8
nl_abs_tol = 1e-6
nl_max_its = 20
l_tol = 1e-4
l_max_its = 50
end_time = 4.831315e7
dt = 500000
num_steps = 10
[]
[Postprocessors]
[temp_bc]
type = Receiver
[]
[release_heat_inc]
type = SideIntegralMassFlux
variable = temperature
boundary = exterior
arrhenius_prpty_name = thermal_conductivity
execute_on = 'initial timestep_end'
[]
[release_Cs_inc]
type = SideIntegralMassFlux
variable = conc_Cs
boundary = exterior
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
execute_on = 'initial timestep_end'
[]
[released_Cs]
type = TimeIntegratedPostprocessor
value = release_Cs_inc
execute_on = 'initial timestep_end'
[]
[total_Cs]
type = ElementIntegralMaterialProperty
mat_prop = Cs_generation_total
block = fuel
execute_on = 'initial timestep_end'
[]
[x_Cs_released]
type = FractionalRelease
released = released_Cs
total = total_Cs
[]
[retained_Cs]
type = ElementIntegralVariablePostprocessor
variable = conc_Cs
[]
[fis_gas_produced]
type = ElementIntegralMaterialProperty
mat_prop = fis_gas_produced
block = fuel
execute_on = 'initial timestep_end'
[]
[fis_gas_released]
type = ElementIntegralMaterialProperty
mat_prop = fis_gas_released
block = fuel
execute_on = 'initial timestep_end'
[]
### Postprocessors for CO production
[total_fission_rate]
type = ElementIntegralPower
variable = temperature
fission_rate = fission_rate
block = fuel
energy_per_fission = 1.0
execute_on = 'initial timestep_end'
[]
[total_fissions]
type = TimeIntegratedPostprocessor
value = total_fission_rate
execute_on = 'initial timestep_end'
[]
##### irradiation conditions
[particle_power]
type = ElementIntegralPower
variable = temperature
use_material_fission_rate = true
fission_rate_material = fission_rate
block = fuel
execute_on = 'initial timestep_end'
[]
[max_fluence]
type = ElementExtremeValue
variable = fast_neutron_fluence
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[max_burnup]
type = ElementExtremeValue
variable = burnup
block = fuel
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[aver_temp_exterior]
type = SideAverageValue
variable = temperature
boundary = exterior
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = false
print_linear_converged_reason = false
print_nonlinear_converged_reason = false
[]
(assessment/TRISO/validation/AGR-34/Compacts/Ag/Driver/AGR-34_driver_Ag.i)
[Variables]
[conc_Ag]
initial_condition = 0.0
[]
[]
[AuxVariables]
[Ag_diff_coef]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[mass_Ag_dt]
type = TimeDerivative
variable = conc_Ag
[]
[mass_Ag]
type = ArrheniusDiffusion
variable = conc_Ag
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
extra_vector_tags = 'ref'
[]
[mass_source_Ag]
type = SpeciesSourceRate
variable = conc_Ag
property_name = Ag_generation
block = 'fuel'
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[Ag_diff_coef]
type = MaterialRealAux
variable = Ag_diff_coef
property = arrhenius_diffusion_coef_Ag
execute_on = timestep_end
[]
[]
[BCs]
[freesurf_conc_Ag]
type = DirichletBC
variable = conc_Ag
boundary = exterior
value = 0.0
[]
[]
[Materials]
# Arrhenius diffusion coefficients for kernel, PyC, and SiC
# come from IAEA TECDOC-978, French parameters.
[fuel_conc_Ag]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 6.7e-9 # m^2/s
q1 = 165e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[mass_source_Ag_property]
type = SpeciesSourceMaterial
property_name = Ag_generation
kind = Ag
block = fuel
[]
### Buffer Properties
[buffer_conc_Ag]
type = ArrheniusDiffusionCoef
block = buffer
d1 = 1e-8 # m^2/s
q1 = 0.0
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
### IPyC properties
[IPyC_conc_Ag]
type = ArrheniusDiffusionCoef
block = IPyC
d1 = 5.3e-9 # m^2/s
q1 = 154e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
### SiC properties
[SiC_conc_Ag]
type = ArrheniusDiffusionCoef
block = SiC
d1 = 3.6e-9 # m^2/s
q1 = 215e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
### OPyC properties
[OPyC_conc_Ag]
type = ArrheniusDiffusionCoef
block = OPyC
d1 = 5.3e-9 # m^2/s
q1 = 154e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[]
[Postprocessors]
### Release
[release_Ag_driver_inc]
type = SideIntegralMassFlux
variable = conc_Ag
boundary = exterior
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
execute_on = 'initial timestep_end'
[]
[released_Ag_driver]
type = TimeIntegratedPostprocessor # computes time integration of value
value = release_Ag_driver_inc
execute_on = 'initial timestep_end'
[]
[total_Ag_driver]
type = ElementIntegralMaterialProperty
mat_prop = Ag_generation_total
block = 'fuel'
execute_on = 'initial timestep_end'
[]
[x_Ag_driver_released]
type = FractionalRelease
released = released_Ag_driver
total = total_Ag_driver
execute_on = 'initial timestep_end'
[]
[retained_Ag_driver]
type = ElementIntegralVariablePostprocessor
variable = conc_Ag
execute_on = 'initial timestep_end'
[]
[]
(examples/TRISO/accident_simulation/triso2D_accident.i)
# This example is 2D-RZ analysis of a TRISO fuel particle. Fully coupled
# heat transfer and solid mechanics, plus diffusion of the fission product
# species cesium (Cs) are simulated. The mesh includes contact surfaces
# between the buffer and IPyC layers to facilitate a gap opening between
# these layers. These surfaces are initially in mechanical contact but
# are assumed to have no strength in tension. A coarse mesh is used to
# provide a short run time.
# The calculation simulates fuel-life in three steps. The first step is an
# irradiation period, where constant power and a fixed particle surface
# temperature (1500 K) are assumed over a lifetime of 76 Ms (2.4 yrs).
# For the second step, fuel removal and storage are simulated by setting
# the reactor power and Cs source terms to zero, reducing the particle
# surface temperature to ambient (300 K), and then holding it
# for 100 days. A third and final step simulates accident
# behavior by increasing the particle surface temperature from ambient
# to 2073 K over 2 hrs, and then holding it at this elevated temperature
# for an additional 200 hrs. At the particle outer boundary, the Cs
# concentration is held at zero and the pressure at ambient during the
# entire simulation. The particle is assumed to be stress-free at an
# initial temperature of 1500 K.
#
# Details about this simulation are given in Section 4 of the following
# article: J. D. Hales, R. L. Williamson, S. R. Novascone, D. M. Perez,
# B. W. Spencer and G. Pastore, "Multidimensional multiphysics simulation
# of TRISO particle fuel", Journal of Nuclear Materials, Vol. 443, p. 531,
# 2013.
initial_fuel_density = 11000.0
[GlobalParams]
order = SECOND
family = LAGRANGE
displacements = 'disp_x disp_y'
flux_conversion_factor = 0.85
[]
[Mesh]
coord_type = RZ
[mesh]
type = FileMeshGenerator
file = triso2Dmed.e
[]
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[temp]
initial_condition = 1500.0
[]
[conc]
initial_condition = 0.0
[]
[]
[AuxVariables]
[fission_rate]
block = fuel
order = CONSTANT
family = MONOMIAL
[]
[fluence]
order = CONSTANT
family = MONOMIAL
[]
[burnup]
block = fuel
order = CONSTANT
family = MONOMIAL
[]
[gap_condSlave]
order = CONSTANT
family = MONOMIAL
[]
[creep_xx]
order = CONSTANT
family = MONOMIAL
[]
[creep_yy]
order = CONSTANT
family = MONOMIAL
[]
[creep_zz]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[power_history]
type = PiecewiseLinear
x = '0 76e6 76.001e6'
y = '1 1 0'
[]
[temp_bc]
type = PiecewiseLinear
x = '0 76e6 76.001e6 84.641e6 84.6482e6'
y = '1500 1500 300 300 2073'
[]
[k_function]
type = PiecewiseLinear
x = '0 200e6'
y = '4e-37 4e-37'
[]
[d1_function]
type = ParsedFunction
expression = 'exp(t/4.5e25)'
[]
[d_gap]
type = PiecewiseLinear
x = '1500 2100'
y = '1e-14 1e-12'
[]
[integral_flux_error]
type = ParsedFunction
symbol_names = 'buffer_integral_flux IPyC_integral_flux'
symbol_values = 'buffer_integral_flux IPyC_integral_flux'
expression = 'IPyC_integral_flux + buffer_integral_flux'
[]
[]
[Physics/SolidMechanics/QuasiStatic]
generate_output = 'stress_xx stress_yy stress_zz stress_xy stress_yz stress_zx hydrostatic_stress'
strain = FINITE
incremental = true
add_variables = false
[default]
block = 'fuel buffer IPyC OPyC'
eigenstrain_names = 'thermal_strain swelling_strain'
extra_vector_tags = 'ref'
[]
[SiC]
block = 'SiC'
eigenstrain_names = 'thermal_strain'
extra_vector_tags = 'ref'
[]
[]
[Kernels]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temp
extra_vector_tags = 'ref'
[]
[heat]
type = HeatConduction
variable = temp
extra_vector_tags = 'ref'
[]
[heat_source]
type = NeutronHeatSource
variable = temp
block = fuel
energy_per_fission = 3.2e-11 # units of J/fission
fission_rate = fission_rate
extra_vector_tags = 'ref'
[]
[mass_ie]
type = TimeDerivative
variable = conc
extra_vector_tags = 'ref'
[]
[mass]
type = ArrheniusDiffusion
variable = conc
extra_vector_tags = 'ref'
[]
[mass_source]
type = BodyForce
variable = conc
function = power_history
value = 1.22e-5 # units of moles/m**3-s
block = fuel
extra_vector_tags = 'ref'
[]
[mass_decay]
type = Decay
variable = conc
radioactive_decay_constant = 7.297e-10 # units:(1/sec) The constant for Cesium
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[fission_rate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
block = fuel
fission_rate_function = power_history
value = 3.89e19
execute_on = timestep_begin
[]
[fluence]
type = MaterialRealAux
property = fast_neutron_fluence
variable = fluence
[]
[burnup]
type = BurnupAux
variable = burnup
block = fuel
fission_rate = fission_rate
molecular_weight = 0.270 # units of kg/mole
execute_on = timestep_begin
density = ${initial_fuel_density}
[]
[creep_xx]
type = RankTwoAux
rank_two_tensor = creep_strain
variable = creep_xx
index_i = 0
index_j = 0
block = 'buffer IPyC SiC OPyC'
execute_on = timestep_end
[]
[creep_yy]
type = RankTwoAux
rank_two_tensor = creep_strain
variable = creep_yy
index_i = 1
index_j = 1
block = 'buffer IPyC SiC OPyC'
execute_on = timestep_end
[]
[creep_zz]
type = RankTwoAux
rank_two_tensor = creep_strain
variable = creep_zz
index_i = 2
index_j = 2
block = 'buffer IPyC SiC OPyC'
execute_on = timestep_end
[]
[conductanceSlave]
type = MaterialRealAux
property = gap_conductance
variable = gap_condSlave
boundary = BufferGapBndry
execute_on = linear
[]
[]
[Contact]
[pellet_clad_mechanical]
primary = 15
secondary = 17
penalty = 1e5
model = frictionless
formulation = penalty
[]
[]
[ThermalContact]
[thermal_contact]
type = GasGapHeatTransfer
variable = temp
primary = 15
secondary = 17
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'
gap_geometry_type = CYLINDER
tangential_tolerance = 1e-6
roughness_coef = 0.0
quadrature = true
[]
[cesium_contact]
type = GapHeatTransfer
variable = conc
primary = 15
secondary = 17
tangential_tolerance = 1e-6
gap_conductivity_function = d_gap
gap_conductivity_function_variable = temp
appended_property_name = _conc
emissivity_primary = 0
emissivity_secondary = 0
quadrature = true
[]
[]
[BCs]
# pin particle along symmetry planes
[no_disp_x]
type = DirichletBC
variable = disp_x
boundary = xzero
value = 0.0
extra_vector_tags = 'ref'
[]
[no_disp_y]
type = DirichletBC
variable = disp_y
boundary = yzero
value = 0.0
extra_vector_tags = 'ref'
[]
# fix temperature on free surface
[freesurf_temp]
type = FunctionDirichletBC
variable = temp
boundary = exterior
function = temp_bc
extra_vector_tags = 'ref'
[]
# fix concentration on free surface
[freesurf_conc]
type = DirichletBC
variable = conc
boundary = exterior
value = 0.0
extra_vector_tags = 'ref'
[]
[PlenumPressure] # apply plenum pressure on clad inner walls and pellet surfaces
[plenumPressure]
boundary = BufferGapVol
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 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 = 5e17
[]
[fission_gas_release] # Sifgrs fission gas release mode
type = UO2Sifgrs
block = fuel
temperature = temp
fission_rate = fission_rate # coupling to fission_rate aux variable
grain_radius_const = 5.0e-6
[]
[fuel_thermal]
type = UO2Thermal
thermal_conductivity_model = FINK_LUCUTA
block = fuel
temperature = temp
burnup = burnup
initial_porosity = 0.0
[]
[fuel_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = MATPRO
block = fuel
temperature = temp
burnup = burnup
eigenstrain_name = 'swelling_strain'
initial_fuel_density = ${initial_fuel_density}
[]
[fuel_stress]
type = ComputeFiniteStrainElasticStress
block = 'fuel'
[]
[fuel_elasticity]
type = ComputeIsotropicElasticityTensor
block = fuel
youngs_modulus = 2.2e11
poissons_ratio = .345
[]
[fuel_thermal_strain]
type = ComputeThermalExpansionEigenstrain
block = fuel
thermal_expansion_coeff = 10e-6
stress_free_temperature = 1500.0
eigenstrain_name = thermal_strain
temperature = temp
[]
[fuel_den]
type = StrainAdjustedDensity
block = fuel
strain_free_density = ${initial_fuel_density} # kg/m^3
[]
[fuel_conc]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 5.6e-8 # m^2/s
q1 = 209.0e+3 # J/mol
d2 = 5.2e-4 # m^2/s
q2 = 362.0e+3 # J/mol
gas_constant = 8.3143 # J/K-mol
temperature = temp
[]
[buffer_eigenstrain]
type = PyCIrradiationEigenstrain
block = buffer
pyc_type = buffer
eigenstrain_name = 'swelling_strain'
[]
[buffer_thermal_strain]
type = ComputeThermalExpansionEigenstrain
block = buffer
thermal_expansion_coeff = 5.65e-6
stress_free_temperature = 1500.0
eigenstrain_name = thermal_strain
temperature = temp
[]
[buffer_elasticity]
type = ComputeIsotropicElasticityTensor
block = buffer
youngs_modulus = 2e10
poissons_ratio = .23
[]
[buffer_stress]
type = PyCCreep
block = buffer
temperature = temp
[]
[buffer_temp]
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 = 1000.0 #kg/m^3
block = buffer
[]
[buffer_conc]
type = ArrheniusDiffusionCoef
block = buffer
d1 = 1.0e-12 # m^2/s
q1 = 0.0
d2 = 0.0
q2 = 0.0
gas_constant = 8.3143 # J/K-mol
temperature = temp
[]
[normal_vectors_triso]
type = NormalVectorsTRISO
block = 'IPyC OPyC buffer'
[]
[IPyC_eigenstrain]
type = PyCIrradiationEigenstrain
block = IPyC
pyc_type = dense
eigenstrain_name = 'swelling_strain'
[]
[IPyC_thermal_strain]
type = ComputeThermalExpansionEigenstrain
block = IPyC
thermal_expansion_coeff = 5.65e-6
stress_free_temperature = 1500.0
eigenstrain_name = thermal_strain
temperature = temp
[]
[IPyC_elasticity]
type = ComputeIsotropicElasticityTensor
block = IPyC
youngs_modulus = 4.74e10
poissons_ratio = .23
[]
[IPyC_disp]
type = PyCCreep
block = 'IPyC OPyC'
temperature = temp
[]
[IPyC_temp]
type = HeatConductionMaterial
block = 'IPyC OPyC'
thermal_conductivity = 4.0
specific_heat = 720.0
[]
[IPyC_den]
type = StrainAdjustedDensity
block = 'IPyC OPyC'
strain_free_density = 1900.0
[]
[IPyC_conc]
type = ArrheniusDiffusionCoef
block = IPyC
d1 = 6.3e-8
q1 = 222.0e+3
d2 = 0.0
q2 = 0.0
gas_constant = 8.3143 # J/K-mol
temperature = temp
[]
[SiC_thermal_strain]
type = ComputeThermalExpansionEigenstrain
block = SiC
thermal_expansion_coeff = 4.9e-6
stress_free_temperature = 1500.0
eigenstrain_name = thermal_strain
temperature = temp
[]
[SiC_elasticity]
type = ComputeIsotropicElasticityTensor
block = SiC
youngs_modulus = 3.4e11
poissons_ratio = .13
[]
[SiC_creep]
type = MonolithicSiCCreepUpdate
block = SiC
temperature = temp
k_function = k_function
[]
[SiC_stress]
type = ComputeMultipleInelasticStress
block = SiC
tangent_operator = elastic
inelastic_models = 'SiC_creep'
[]
[SiC_temp]
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 = 3180.0 # kg/m^3
block = SiC
[]
[SiC_conc]
type = ArrheniusDiffusionCoef
block = SiC
d1 = 5.5e-14 # m^2/s
d1_function = d1_function
d1_function_variable = fluence
q1 = 125.0e+3 # J/mol
d2 = 1.6e-2 # m^2/s
q2 = 514.0e+3 # J/mol
gas_constant = 8.3143 # J/K-mol
temperature = temp
[]
[OPyC_eigenstrain]
type = PyCIrradiationEigenstrain
block = OPyC
pyc_type = dense
eigenstrain_name = 'swelling_strain'
[]
[OPyC_thermal_strain]
type = ComputeThermalExpansionEigenstrain
block = OPyC
thermal_expansion_coeff = 5.65e-6
stress_free_temperature = 1500.0
eigenstrain_name = thermal_strain
temperature = temp
[]
[OPyC_elasticity]
type = ComputeIsotropicElasticityTensor
block = OPyC
youngs_modulus = 4.74e10
poissons_ratio = .23
[]
[OPyC_conc]
type = ArrheniusDiffusionCoef
block = OPyC
d1 = 6.3e-8 # m^2/s
q1 = 222.0e+3 # J/mol
d2 = 0.0
q2 = 0.0
gas_constant = 8.3143 # J/K-mol
temperature = temp
[]
[]
[Dampers]
[temp]
type = MaxIncrement
variable = temp
max_increment = 50
[]
[]
[Debug]
show_var_residual_norms = 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-4
nl_abs_tol = 1e-9
nl_max_its = 15
l_tol = 1e-3
l_max_its = 50
start_time = 0.0
end_time = 85.3682e6
dt = 100
dtmax = 2e6
dtmin = 1
automatic_scaling = true
compute_scaling_once = false
scaling_group_variables = 'conc; disp_x disp_y; temp'
[TimeStepper]
type = IterationAdaptiveDT
dt = 100
optimal_iterations = 6
growth_factor = 1.5
linear_iteration_ratio = 100
time_t = '0 76e6 76.001e6 84.641e6 84.6482e6'
time_dt = '20 20 20 20 20'
[]
[Predictor]
type = SimplePredictor
scale = 1
skip_times_old = '0 76e6 76.001e6 84.641e6 84.6482e6'
[]
[Quadrature]
order = THIRD
side_order = FIFTH
[]
[]
[Outputs]
perf_graph = true
exodus = true
[console]
type = Console
max_rows = 25
[]
[csv]
type = CSV
sync_times = '100 6308007 75696087'
sync_only = true
[]
[]
[Postprocessors]
[Cs_release]
type = SideIntegralMassFlux
variable = conc
boundary = exterior
execute_on = timestep_end
[]
[dt]
type = TimestepSize
execute_on = timestep_end
[]
[fis_gas_produced] # fission gas produced (moles)
type = ElementIntegralFisGasGeneratedSifgrs
block = fuel
execute_on = 'initial linear nonlinear timestep_begin timestep_end'
[]
[fis_gas_released] # fission gas released to plenum (moles)
type = ElementIntegralFisGasReleasedSifgrs
block = fuel
execute_on = 'initial linear nonlinear timestep_begin timestep_end'
[]
[volumeTotal]
type = InternalVolume
boundary = exterior
execute_on = 'initial timestep_end'
[]
[volumeFuel]
type = InternalVolume
boundary = fuel
execute_on = 'initial timestep_end'
[]
[volumeGas]
type = InternalVolume
boundary = BufferGapVol
# ro = 3.125e-4
# ri = 2.125e-4
# vb = 4/3*pi*(ro^3-ri^3) = 8.76e-11
# buffer density = 1000
# PyC density = 1900
# fill ratio = 10/19
# vb*10/19 = 4.6e-11
# Must remove 4.6e-11 m^3 from the volume
addition = -4.6e-11
execute_on = 'initial linear nonlinear timestep_begin timestep_end'
[]
[volumeBufferShell]
type = InternalVolume
boundary = BufferGapVol
execute_on = 'initial timestep_end'
[]
[ave_temp_interior]
type = SideAverageValue
boundary = BufferGapVol
variable = temp
execute_on = 'initial linear nonlinear timestep_begin timestep_end'
[]
# Postprocessors for CO production
[total_fission_rate]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = fuel
energy_per_fission = 1.0
execute_on = 'initial linear nonlinear timestep_begin timestep_end'
[]
[total_fissions]
type = TimeIntegratedPostprocessor
value = total_fission_rate
execute_on = 'initial linear nonlinear timestep_begin timestep_end'
[]
[avg_surface_temp]
type = SideAverageValue
variable = temp
boundary = exterior
execute_on = 'initial linear nonlinear timestep_begin timestep_end'
[]
[time_int_surf_temp]
type = TimeIntegratedPostprocessor
value = avg_surface_temp
execute_on = 'initial linear nonlinear timestep_begin timestep_end'
[]
[co_production]
type = CarbonMonoxideProduction
total_fissions = total_fissions
time_integrated_triso_temperature = time_int_surf_temp
initial_enrichment = 0.14029
execute_on = 'initial linear nonlinear timestep_begin timestep_end'
[]
[num_lin_it]
type = NumLinearIterations
[]
[num_nonlin_it]
type = NumNonlinearIterations
[]
[tot_lin_it]
type = CumulativeValuePostprocessor
postprocessor = num_lin_it
[]
[tot_nonlin_it]
type = CumulativeValuePostprocessor
postprocessor = num_nonlin_it
[]
[alive_time]
type = PerfGraphData
section_name = Root
data_type = TOTAL
[]
[buffer_avg_conc]
type = SideAverageValue
variable = conc
boundary = 17
[]
[IPyC_avg_conc]
type = SideAverageValue
variable = conc
boundary = 15
[]
[buffer_integral_flux]
type = SideIntegralMassFlux
variable = conc
boundary = 17
[]
[IPyC_integral_flux]
type = SideIntegralMassFlux
variable = conc
boundary = 15
[]
[integral_flux_error]
type = FunctionValuePostprocessor
function = integral_flux_error
[]
[integral_Cs_release]
type = TimeIntegratedPostprocessor
value = Cs_release
[]
[Cs_production]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 1.22e-5 # units of moles/m**3-s
[]
[time_integral_Cs_production]
type = TimeIntegratedPostprocessor
value = Cs_production
[]
[volumeFuel_initial]
type = InternalVolume
boundary = fuel
execute_on = initial
[]
[integral_Cs_production]
type = ParsedPostprocessor
pp_names = 'time_integral_Cs_production volumeFuel_initial'
expression = 'time_integral_Cs_production * volumeFuel_initial'
[]
[Cs_release_fraction]
type = ParsedPostprocessor
pp_names = 'integral_Cs_release integral_Cs_production'
expression = 'integral_Cs_release / integral_Cs_production'
[]
[]
[VectorPostprocessors]
[temperaturevpp]
type = SideValueSampler
boundary = 11
variable = temp
sort_by = x
outputs = 'csv'
use_displaced_mesh = true
[]
[]
(test/tests/triso/base_irradiation/triso1D_accident.i)
initial_fuel_density = 11000.0
[GlobalParams]
density = ${initial_fuel_density} # kg/m^3
order = SECOND
displacements = 'disp_x'
[]
[Mesh]
coord_type = RSPHERICAL
[mesh]
type = FileMeshGenerator
file = triso1DFineTruss3.e
[]
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[Variables]
[disp_x]
[]
[temperature]
initial_condition = 1500.0
[]
[conc_Cs]
initial_condition = 0.0
scaling = 1e18
[]
[]
[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
[]
[gap_condSlave]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[power_history]
type = PiecewiseLinear
x = '0 76e6 76.001e6'
y = '1 1 0'
[]
[fission_rate]
type = LinearCombinationFunction
functions = power_history
w = 3.89e19
[]
[temp_bc]
type = PiecewiseLinear
x = '0 76e6 76.001e6 84.641e6 84.6482e6'
y = '1500 1500 300 300 2073'
[]
[k_function]
type = PiecewiseLinear
x = '0 200e6'
y = '4e-37 4e-37'
[]
[d1_function]
type = ParsedFunction
expression = 'exp(t/4.5e25)'
[]
[d_gap]
type = PiecewiseLinear
x = '1500 2100'
y = '1e-14 1e-12'
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[fuel]
block = fuel
add_variables = false
strain = FINITE
eigenstrain_names = 'fuel_thermal_strain fuel_swelling'
generate_output = 'hydrostatic_stress stress_xx stress_yy stress_zz strain_xx strain_yy strain_zz'
extra_vector_tags = 'ref'
[]
[buffer]
block = buffer
add_variables = false
strain = FINITE
eigenstrain_names = 'buffer_thermal_strain buffer_eigenstrain'
generate_output = 'hydrostatic_stress stress_xx stress_yy stress_zz strain_xx strain_yy strain_zz creep_strain_xx creep_strain_yy creep_strain_zz'
extra_vector_tags = 'ref'
[]
[IPyC]
block = IPyC
add_variables = false
strain = FINITE
eigenstrain_names = 'IPyC_eigenstrain IPyC_thermal_strain'
generate_output = 'hydrostatic_stress stress_xx stress_yy stress_zz strain_xx strain_yy strain_zz creep_strain_xx creep_strain_yy creep_strain_zz'
extra_vector_tags = 'ref'
[]
[SiC]
block = SiC
add_variables = false
strain = FINITE
eigenstrain_names = 'SiC_thermal_strain'
generate_output = 'hydrostatic_stress stress_xx stress_yy stress_zz strain_xx strain_yy strain_zz creep_strain_xx creep_strain_yy creep_strain_zz'
extra_vector_tags = 'ref'
[]
[OPyC]
block = OPyC
add_variables = false
strain = FINITE
eigenstrain_names = 'OPyC_eigenstrain OPyC_thermal_strain'
generate_output = 'hydrostatic_stress stress_xx stress_yy stress_zz strain_xx strain_yy strain_zz creep_strain_xx creep_strain_yy creep_strain_zz'
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
energy_per_fission = 3.2e-11 # units of J/fission
fission_rate = fission_rate
extra_vector_tags = 'ref'
[]
[mass_ie]
type = TimeDerivative
variable = conc_Cs
extra_vector_tags = 'ref'
[]
[mass]
type = ArrheniusDiffusion
variable = conc_Cs
extra_vector_tags = 'ref'
[]
[mass_source]
type = BodyForce
variable = conc_Cs
function = power_history
value = 1.22e-5 # units of mol/m**3-s
block = fuel
extra_vector_tags = 'ref'
[]
[mass_decay]
type = Decay
variable = conc_Cs
radioactive_decay_constant = 7.297e-10 # units:(1/sec) The constant for Cesium
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[fissionrate]
type = MaterialRealAux
variable = fission_rate
property = fission_rate
block = fuel
execute_on = timestep_begin
[]
[burnup]
type = BurnupAux
variable = burnup
fission_rate = fission_rate
molecular_weight = 0.270 # units of kg/mol
block = fuel
execute_on = timestep_begin
[]
[fast_neutron_flux]
type = MaterialRealAux
variable = fast_neutron_flux
property = fast_neutron_flux
block = 'fuel buffer IPyC SiC OPyC'
execute_on = timestep_begin
[]
[fast_neutron_fluence]
type = MaterialRealAux
variable = fast_neutron_fluence
property = fast_neutron_fluence
block = 'fuel buffer IPyC SiC OPyC'
execute_on = timestep_begin
[]
[conductanceSlave]
type = MaterialRealAux
property = gap_conductance
variable = gap_condSlave
boundary = BufferGapBndry
execute_on = 'initial timestep_end'
[]
[]
[Contact]
[pellet_clad_mechanical]
primary = 15
secondary = 17
penalty = 1e5
model = frictionless
formulation = kinematic
[]
[]
[ThermalContact]
[thermal_contact]
type = GasGapHeatTransfer
variable = temperature
primary = 15
secondary = 17
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
roughness_primary = 0e-6
roughness_secondary = 0e-6
jumpdistance_primary = 0
jumpdistance_secondary = 0
quadrature = true
emissivity_secondary = 0.0
emissivity_primary = 0.0
min_gap = 1e-7
max_gap = 50e-6
gap_geometry_type = sphere
[]
[cesium_contact]
type = GapHeatTransfer
variable = conc_Cs
primary = 15
secondary = 17
tangential_tolerance = 1e-6
gap_conductivity_function = d_gap
gap_conductivity_function_variable = temperature
appended_property_name = _conc
quadrature = true
gap_geometry_type = sphere
emissivity_primary = 0.0
emissivity_secondary = 0.0
min_gap = 1e-7
[]
[]
[BCs]
# pin particle along symmetry planes
[no_disp_x]
type = DirichletBC
variable = disp_x
boundary = xzero
value = 0.0
[]
# fix temperature on free surface
[freesurf_temp]
type = FunctionDirichletBC
variable = temperature
boundary = exterior
function = temp_bc
[]
# fix concentration on free surface
[freesurf_conc]
type = DirichletBC
variable = conc_Cs
boundary = exterior
value = 0.0
[]
# exterior and internal pressures
[exterior_pressure_x]
type = Pressure
variable = disp_x
boundary = exterior
factor = 0.1e6
[]
# apply plenum pressure on clad inner walls and pellet surfaces
[PlenumPressure]
[plenumPressure]
boundary = BufferGapVol
initial_pressure = 100
startup_time = 0
R = 8.3145
output_initial_moles = initial_moles
temperature = ave_temp_interior
volume = volumeGas
material_input = 'fis_gas_released co_production'
output = plenum_pressure
[]
[]
[]
[Materials]
[normal_vectors_triso]
type = NormalVectorsTRISO
block = 'IPyC OPyC buffer'
[]
[fission_rate]
type = GenericFunctionMaterial
prop_names = fission_rate
prop_values = fission_rate
[]
[fast_neutron_flux]
type = FastNeutronFlux
calculate_fluence = true
flux_function = power_history
factor = 5e17
[]
[fuel_thermal]
type = UO2Thermal
block = fuel
thermal_conductivity_model = FINK_LUCUTA
initial_porosity = 0.0
temperature = temperature
burnup = burnup
[]
[fuel_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = fuel
youngs_modulus = 2.2e11
poissons_ratio = 0.345
[]
[fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = fuel
[]
[fuel_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = MATPRO
block = fuel
temperature = temperature
burnup = burnup
eigenstrain_name = fuel_swelling
initial_fuel_density = ${initial_fuel_density}
[]
[fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = fuel
thermal_expansion_coeff = 10.0e-6
temperature = temperature
stress_free_temperature = 1500.0
eigenstrain_name = fuel_thermal_strain
[]
[fuel_den]
type = StrainAdjustedDensity
block = fuel
strain_free_density = ${initial_fuel_density}
[]
[fission_gas_release]
type = UO2Sifgrs
block = fuel
temperature = temperature
fission_rate = fission_rate
[]
[fuel_conc]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 5.6e-8 # m^2/s
q1 = 209.0e+3 # J/mol
d2 = 5.2e-4 # m^2/s
q2 = 362.0e+3 # J/mol
gas_constant = 8.3143 # J/K-mol
temperature = temperature
[]
[buffer_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = buffer
youngs_modulus = 2.0e10
poissons_ratio = 0.23
[]
[buffer_stress]
type = PyCCreep
block = buffer
flux_conversion_factor = 1.0
temperature = temperature
[]
[buffer_temp]
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 = 1000.0 #kg/m^3
block = buffer
[]
[buffer_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = buffer
thermal_expansion_coeff = 5.65e-6
temperature = temperature
stress_free_temperature = 1500.0
eigenstrain_name = buffer_thermal_strain
[]
[buffer_irraditation]
type = PyCIrradiationEigenstrain
block = buffer
pyc_type = buffer
eigenstrain_name = buffer_eigenstrain
[]
[buffer_conc]
type = ArrheniusDiffusionCoef
block = buffer
d1 = 1.0e-12 # m^2/s
q1 = 0.0
d2 = 0.0
q2 = 0.0
temperature = temperature
[]
[IPyC_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = IPyC
youngs_modulus = 4.74e10
poissons_ratio = 0.23
[]
[IPyC_stress]
type = PyCCreep
block = IPyC
flux_conversion_factor = 1.0
temperature = temperature
[]
[IPyC_temp]
type = HeatConductionMaterial
block = IPyC
thermal_conductivity = 4.0 # J/m-s-K
specific_heat = 720.0 # J/kg-K
[]
[IPyC_den]
type = StrainAdjustedDensity
strain_free_density = 1900.0 # kg/m^3
block = IPyC
[]
[IPyC_densification]
type = PyCIrradiationEigenstrain
block = IPyC
pyc_type = dense
eigenstrain_name = IPyC_eigenstrain
[]
[IPyC_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = IPyC
thermal_expansion_coeff = 5.65e-6
temperature = temperature
stress_free_temperature = 1500.0
eigenstrain_name = IPyC_thermal_strain
[]
[IPyC_conc]
type = ArrheniusDiffusionCoef
block = IPyC
d1 = 6.3e-8 # m^2/s
q1 = 222.0e+3 # J/mol
d2 = 0.0
q2 = 0.0
temperature = temperature
[]
[SiC_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = SiC
youngs_modulus = 3.4e11
poissons_ratio = 0.13
[]
[monolithic_SiC_creep]
type = MonolithicSiCCreepUpdate
block = SiC
fast_neutron_flux = fast_neutron_flux
temperature = temperature
k_function = k_function
[]
[stress]
type = ComputeMultipleInelasticStress
inelastic_models = monolithic_SiC_creep
block = SiC
[]
[SiC_temp]
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 = 3180.0 # kg/m^3
block = SiC
[]
[SiC_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = SiC
thermal_expansion_coeff = 4.9e-6
temperature = temperature
stress_free_temperature = 1500.0
eigenstrain_name = SiC_thermal_strain
[]
[SiC_conc]
type = ArrheniusDiffusionCoef
block = SiC
d1 = 5.5e-14 # m^2/s
d1_function = d1_function
d1_function_variable = fast_neutron_fluence
q1 = 125.0e+3 # J/mol
d2 = 1.6e-2 # m^2/s
q2 = 514.0e+3 # J/mol
temperature = temperature
[]
[OPyC_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = OPyC
youngs_modulus = 4.74e10
poissons_ratio = 0.23
[]
[OPyC_stress]
type = PyCCreep
block = OPyC
flux_conversion_factor = 1.0
temperature = temperature
[]
[OPyC_temp]
type = HeatConductionMaterial
block = OPyC
thermal_conductivity = 4.0 # J/m-s-K
specific_heat = 720.0 # J/kg-K
[]
[OPyC_den]
type = StrainAdjustedDensity
strain_free_density = 1900.0 # kg/m^3
block = OPyC
[]
[OPyC_densification]
type = PyCIrradiationEigenstrain
block = OPyC
pyc_type = dense
eigenstrain_name = OPyC_eigenstrain
[]
[OPyC_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = OPyC
thermal_expansion_coeff = 5.65e-6
temperature = temperature
stress_free_temperature = 1500.0
eigenstrain_name = OPyC_thermal_strain
[]
[OPyC_conc]
type = ArrheniusDiffusionCoef
block = OPyC
d1 = 6.3e-8 # m^2/s
q1 = 222.0e+3 # J/mol
d2 = 0.0
q2 = 0.0
temperature = temperature
[]
[]
[Dampers]
[temp]
type = MaxIncrement
variable = temperature
max_increment = 50
[]
[]
[Debug]
show_var_residual_norms = true
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
nl_rel_tol = 5e-8
nl_abs_tol = 1e-7
nl_max_its = 15
l_tol = 1e-8
l_max_its = 50
start_time = 0.0
#end_time = 85.3682e6
end_time = 1e3
num_steps = 1000
dtmax = 2e6
dtmin = 1
[TimeStepper]
type = IterationAdaptiveDT
dt = 20
time_t = '0 76e6 76.001e6 84.641e6 84.6482e6'
time_dt = '20 20 20 20 20'
growth_factor = 1.5
optimal_iterations = 8
linear_iteration_ratio = 100
[]
[Quadrature]
order = THIRD
[]
[]
[Postprocessors]
[release_Cs_inc]
type = SideIntegralMassFlux
variable = conc_Cs
boundary = exterior
[]
[Int_Cs_release]
type = TimeIntegratedPostprocessor
value = release_Cs_inc
[]
[release_fuel_Cs]
type = SideIntegralMassFlux
variable = conc_Cs
boundary = fuel
[]
[Int_Cs_release_fuel]
type = TimeIntegratedPostprocessor
value = release_fuel_Cs
[]
[release_PyCGapBndry_Cs]
type = SideIntegralMassFlux
variable = conc_Cs
boundary = PyCGapBndry
[]
[Int_Cs_release_PyCGapBndry]
type = TimeIntegratedPostprocessor
value = release_PyCGapBndry_Cs
[]
[fis_gas_produced]
type = ElementIntegralFisGasGeneratedSifgrs
block = fuel
execute_on = linear
[]
[fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = fuel
execute_on = linear
[]
[volumeTotal]
type = InternalVolume
boundary = exterior
execute_on = 'initial timestep_end'
[]
[volumeFuel]
type = InternalVolume
boundary = fuel
execute_on = 'initial timestep_end'
[]
[volumeGas]
type = InternalVolume
boundary = BufferGapVol
addition = -4.6e-11
execute_on = 'initial linear'
[]
[volumeBufferShell]
type = InternalVolume
boundary = BufferGapVol
execute_on = 'initial timestep_end'
[]
[ave_temp_interior]
type = SideAverageValue
boundary = BufferGapVol
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
outputs = exodus
execute_on = 'initial linear'
[]
[total_fissions]
type = TimeIntegratedPostprocessor
value = total_fission_rate
outputs = exodus
execute_on = 'initial timestep_end'
[]
[avg_surface_temp]
type = SideAverageValue
variable = temperature
boundary = exterior
outputs = exodus
execute_on = 'initial timestep_end'
[]
[time_int_surf_temp]
type = TimeIntegratedPostprocessor
value = avg_surface_temp
outputs = exodus
execute_on = 'initial timestep_end'
[]
[co_production]
type = CarbonMonoxideProduction
total_fissions = total_fissions
time_integrated_triso_temperature = time_int_surf_temp
initial_enrichment = 0.14029
execute_on = 'initial nonlinear'
[]
[]
[Outputs]
print_linear_residuals = false
[console]
type = Console
max_rows = 5
outlier_variable_norms = false
[]
[exodus]
type = Exodus
file_base = triso1D_accident_out
[]
[]
(test/tests/arrhenius_diffusion_coef/check_jacobian.i)
[GlobalParams]
order = FIRST
family = LAGRANGE
initial_enrichment = 0.1676
[]
[Mesh]
coord_type = RSPHERICAL
[gen]
type = TRISO1DMeshGenerator
elem_type = EDGE2
coordinates = '0 1'
mesh_density = '1'
block_names = 'flubber'
[]
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[Variables]
[conc]
[]
[temperature]
initial_condition = 1373.15
[]
[]
[AuxVariables]
[diff_coef]
order = CONSTANT
family = MONOMIAL
[]
[burnup]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[temperature]
type = ParsedFunction
expression = 1373.15
[]
[]
[Kernels]
[mass_dt]
type = TimeDerivative
variable = conc
[]
[mass]
type = ArrheniusDiffusion
variable = conc
arrhenius_prpty_name = arrhenius_diffusion_coef
temperature = temperature
extra_vector_tags = 'ref'
[]
[mass_source]
type = SpeciesSourceRate
variable = conc
property_name = generation
[]
[heat]
type = HeatConduction
variable = temperature
extra_vector_tags = 'ref'
[]
[heat_source]
type = FissionRateHeatSource
variable = temperature
energy_per_fission = 1e-16
fission_rate = fission_rate
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[diff_coef]
type = MaterialRealAux
variable = diff_coef
property = arrhenius_diffusion_coef
execute_on = timestep_end
[]
[burnup]
type = MaterialRealAux
variable = burnup
property = burnup
[]
[]
[BCs]
[freesurf_conc]
type = DirichletBC
variable = conc
boundary = exterior
value = 0.0
[]
[temperature]
type = FunctionDirichletBC
variable = temperature
function = temperature
boundary = exterior
[]
[]
[Materials]
[burnup]
type = GenericFunctionMaterial
prop_names = 'burnup'
prop_values = 'if(t<21513600,0.093/21513600*t,0.093)'
[]
[fission_rate]
type = GenericFunctionMaterial
prop_names = 'fission_rate'
prop_values = 1.05e21
[]
[conc]
type = ArrheniusDiffusionCoef
d1 = 5e40
q1 = 1140000
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef
[]
[mass_source_property]
type = SpeciesSourceMaterial
property_name = generation
kind = Ag
[]
[thermal]
type = HeatConductionMaterial
thermal_conductivity = 100
specific_heat = 10
[]
[den]
type = ParsedMaterial
property_name = density
expression = 10850
[]
[]
[Debug]
show_var_residual_norms = true
show_var_residual = 'temperature conc'
[]
[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-12
nl_abs_tol = 5e-19
nl_max_its = 50
l_tol = 1e-4
l_max_its = 50
start_time = 0.0
end_time = 24523200
num_steps = 2
dt = 86400
dtmax = 86400
#dtmin = 86400
[TimeStepper]
type = FunctionDT
function = 'if(t<21513600,86400,3600)'
[]
[]
[Outputs]
perf_graph = false
print_linear_residuals = true
[]
(assessment/TRISO/benchmark/IAEA_CRP-6/diffusion/case_5b/case_5b.i)
[GlobalParams]
order = SECOND
family = LAGRANGE
initial_enrichment = 0.08
[]
[Mesh]
coord_type = RSPHERICAL
[gen]
type = TRISO1DMeshGenerator
elem_type = EDGE3
coordinates = '0 250e-6 350e-6 390e-6 425e-6 465e-6'
mesh_density = '50 30 15 15 15'
block_names = 'fuel buffer IPyC SiC OPyC'
bias = '1 1.25 1.25 1.25 1.25'
dual_bias = '0.8 0.8 0.8 0.8 1'
[]
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[Variables]
[conc_Cs]
[]
[conc_Ag]
[]
[]
[AuxVariables]
[temperature]
initial_condition = 873.15
[]
[Cs_diff_coef]
order = CONSTANT
family = MONOMIAL
[]
[Ag_diff_coef]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[temperature]
type = PiecewiseLinear
data_file = temperature_history.dat
format = columns
[]
[]
[Kernels]
[mass_Cs_dt]
type = TimeDerivative
variable = conc_Cs
[]
[mass_Cs]
type = ArrheniusDiffusion
variable = conc_Cs
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
temperature = temperature
extra_vector_tags = 'ref'
[]
[mass_source_Cs]
type = SpeciesSourceRate
variable = conc_Cs
property_name = Cs_generation
block = fuel
[]
[mass_Ag_dt]
type = TimeDerivative
variable = conc_Ag
[]
[mass_Ag]
type = ArrheniusDiffusion
variable = conc_Ag
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
temperature = temperature
extra_vector_tags = 'ref'
[]
[mass_source_Ag]
type = SpeciesSourceRate
variable = conc_Ag
property_name = Ag_generation
block = fuel
[]
[]
[AuxKernels]
[Cs_diff_coef]
type = MaterialRealAux
variable = Cs_diff_coef
property = arrhenius_diffusion_coef_Cs
execute_on = timestep_end
[]
[Ag_diff_coef]
type = MaterialRealAux
variable = Ag_diff_coef
property = arrhenius_diffusion_coef_Ag
execute_on = timestep_end
[]
[temperature]
type = FunctionAux
function = temperature
variable = temperature
[]
[]
[BCs]
[freesurf_conc_Cs]
type = DirichletBC
variable = conc_Cs
boundary = exterior
value = 0.0
[]
[freesurf_conc_Ag]
type = DirichletBC
variable = conc_Ag
boundary = exterior
value = 0.0
[]
[]
[Materials]
[burnup]
type = GenericFunctionMaterial
block = fuel
prop_names = 'burnup'
prop_values = '0.1/8.64e7*t'
[]
[fission_rate]
type = GenericFunctionMaterial
block = fuel
prop_names = 'fission_rate'
# 2.790610e19 = 0.1/8.64e7*10810/.27*6.0221409e23
prop_values = '2.790610e19'
[]
[fuel_conc_Cs]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 5.6e-8 # m^2/s
q1 = 209e3 # J/mol
d2 = 5.2e-4
q2 = 362e3
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[mass_source_Cs_property]
type = SpeciesSourceMaterial
block = fuel
property_name = Cs_generation
kind = Cs
[]
[buffer_conc_Cs]
type = ArrheniusDiffusionCoef
block = buffer
d1 = 1e-8 # m^2/s
q1 = 0 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[IPyC_conc_Cs]
type = ArrheniusDiffusionCoef
block = IPyC
d1 = 6.3e-8 # m^2/s
q1 = 222e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[SiC_conc_Cs]
type = ArrheniusDiffusionCoef
block = SiC
d1 = 5.5e-14 # m^2/s
d1_function = 'exp(2e25/8.64e7*t/5e25)'
q1 = 125e3 # J/mol
d2 = 1.6e-2
q2 = 514e3
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[OPyC_conc_Cs]
type = ArrheniusDiffusionCoef
block = OPyC
d1 = 6.3e-8 # m^2/s
q1 = 222e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[fuel_conc_Ag]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 6.7e-9 # m^2/s
q1 = 165e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[mass_source_Ag_property]
type = SpeciesSourceMaterial
block = fuel
property_name = Ag_generation
kind = Ag
[]
[buffer_conc_Ag]
type = ArrheniusDiffusionCoef
block = buffer
d1 = 1e-8 # m^2/s
q1 = 0 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[IPyC_conc_Ag]
type = ArrheniusDiffusionCoef
block = IPyC
d1 = 5.3e-9 # m^2/s
q1 = 154e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[SiC_conc_Ag]
type = ArrheniusDiffusionCoef
block = SiC
d1 = 3.6e-9 # m^2/s
q1 = 215e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[OPyC_conc_Ag]
type = ArrheniusDiffusionCoef
block = OPyC
d1 = 5.3e-9 # m^2/s
q1 = 154e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[]
[Debug]
show_var_residual_norms = true
show_var_residual = 'conc_Cs conc_Ag'
[]
[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-21 #1e-22
nl_max_its = 50
l_tol = 1e-4
l_max_its = 50
start_time = 0.0
end_time = 8.712e7
num_steps = 1450
dt = 86400
dtmax = 86400
#dtmin = 86400
[TimeStepper]
type = FunctionDT
function = 'if(t<8.64e7,86400,3600)'
[]
[]
[Postprocessors]
[release_Cs_inc]
type = SideIntegralMassFlux
variable = conc_Cs
boundary = exterior
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
execute_on = 'initial timestep_end'
[]
[released_Cs]
type = TimeIntegratedPostprocessor
value = release_Cs_inc
execute_on = 'initial timestep_end'
[]
[total_Cs]
type = ElementIntegralMaterialProperty
mat_prop = Cs_generation_total
block = fuel
execute_on = 'initial timestep_end'
[]
[x_Cs_released]
type = FractionalRelease
released = released_Cs
total = total_Cs
execute_on = 'initial timestep_end'
[]
[retained_Cs]
type = ElementIntegralVariablePostprocessor
variable = conc_Cs
execute_on = 'initial timestep_end'
[]
[release_Ag_inc]
type = SideIntegralMassFlux
variable = conc_Ag
boundary = exterior
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
execute_on = 'initial timestep_end'
[]
[released_Ag]
type = TimeIntegratedPostprocessor
value = release_Ag_inc
execute_on = 'initial timestep_end'
[]
[total_Ag]
type = ElementIntegralMaterialProperty
mat_prop = Ag_generation_total
block = fuel
execute_on = 'initial timestep_end'
[]
[x_Ag_released]
type = FractionalRelease
released = released_Ag
total = total_Ag
execute_on = 'initial timestep_end'
[]
[retained_Ag]
type = ElementIntegralVariablePostprocessor
variable = conc_Ag
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = false
exodus = true
[console]
type = Console
time_step_interval = 1
[]
[out]
type = CSV
execute_on = final
[]
[]
(assessment/TRISO/validation/AGR-2/AGR-2_Cs.i)
[Variables]
[conc_Cs]
initial_condition = 0.0
[]
[]
[AuxVariables]
[Cs_diff_coef]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[mass_Cs_dt]
type = TimeDerivative
variable = conc_Cs
[]
[mass_Cs]
type = ArrheniusDiffusion
variable = conc_Cs
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
extra_vector_tags = 'ref'
[]
[mass_source_Cs]
type = SpeciesSourceRate
variable = conc_Cs
property_name = Cs_generation
block = 'fuel OPyC'
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[Cs_diff_coef]
type = MaterialRealAux
variable = Cs_diff_coef
property = arrhenius_diffusion_coef_Cs
execute_on = timestep_end
[]
[]
[BCs]
[freesurf_conc_Cs]
type = DirichletBC
variable = conc_Cs
boundary = exterior
value = 0.0
[]
[]
[Materials]
# Arrhenius diffusion coefficients for kernel, PyC, and SiC
# come from IAEA TECDOC-978, French parameters.
[fuel_conc_Cs]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 5.6e-8 # m^2/s
q1 = 209e3 # J/mol
d2 = 5.2e-4 # m^2/s
q2 = 362e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[mass_source_Cs_property]
type = SpeciesSourceMaterial
property_name = Cs_generation
kind = Cs
block = fuel
[]
### Buffer Properties
[buffer_conc_Cs]
type = ArrheniusDiffusionCoef
block = buffer
d1 = 1e-8 # m^2/s
q1 = 0.0
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
### IPyC properties
[IPyC_conc_Cs]
type = ArrheniusDiffusionCoef
block = IPyC
d1 = 6.3e-8 # m^2/s
q1 = 222e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
### SiC properties
[SiC_conc_Cs]
type = ArrheniusDiffusionCoef
block = SiC
# IAEA TECDOC-978, p. 442
d1 = 5.5e-14 # m^2/s
# The 1.1 is a factor applied in PARFUME
d1_function = 'exp(1.1*t/5e25)'
d1_function_variable = fast_neutron_fluence
q1 = 125e3 # J/mol
d2 = 1.60e-2 # m^2/s
q2 = 514e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
### OPyC properties
[OPyC_conc_Cs]
type = ArrheniusDiffusionCoef
block = OPyC
d1 = 6.3e-8 # m^2/s
q1 = 222e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[mass_source_Cs_property_OPyC]
type = SpeciesSourceMaterial
property_name = Cs_generation
kind = Cs
block = OPyC
#value = impurities * vol_kernel / vol_opyc
#value = 1.59e-6 * 4.07e-11 / 9.16e-11 # for UCO
#value = 1.57e-6 * 6.85e-11 / 1.18e-10 # for UO2
value = ${mass_source_property_OPyC}
[]
[]
[Postprocessors]
[release_Cs_inc]
type = SideIntegralMassFlux
variable = conc_Cs
boundary = exterior
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
execute_on = 'initial timestep_end'
[]
[released_Cs]
type = TimeIntegratedPostprocessor
value = release_Cs_inc
execute_on = 'initial timestep_end'
[]
[total_Cs]
type = ElementIntegralMaterialProperty
mat_prop = Cs_generation_total
block = 'fuel OPyC'
execute_on = 'initial timestep_end'
[]
[x_Cs_released]
type = FractionalRelease
released = released_Cs
total = total_Cs
execute_on = 'initial timestep_end'
[]
[x_Cs_released_safety]
type = FractionalRelease
released = released_Cs
total = total_Cs
execute_on = 'initial timestep_end'
start_time = 50284800
safety_fraction_type = net
[]
[retained_Cs]
type = ElementIntegralVariablePostprocessor
variable = conc_Cs
execute_on = 'initial timestep_end'
[]
[]
(assessment/TRISO/validation/AGR-2/AGR-2_Sr.i)
[Variables]
[conc_Sr]
initial_condition = 0.0
[]
[]
[AuxVariables]
[Sr_diff_coef]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[mass_Sr_dt]
type = TimeDerivative
variable = conc_Sr
[]
[mass_Sr]
type = ArrheniusDiffusion
variable = conc_Sr
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
extra_vector_tags = 'ref'
[]
[mass_source_Sr]
type = SpeciesSourceRate
variable = conc_Sr
property_name = Sr_generation
block = 'fuel OPyC'
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[Sr_diff_coef]
type = MaterialRealAux
variable = Sr_diff_coef
property = arrhenius_diffusion_coef_Sr
execute_on = timestep_end
[]
[]
[BCs]
[freesurf_conc_Sr]
type = DirichletBC
variable = conc_Sr
boundary = exterior
value = 0.0
[]
[]
[Materials]
# Arrhenius diffusion coefficients for kernel, PyC, and SiC
# come from IAEA TECDOC-978, French parameters.
[fuel_conc_Sr]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 2.2e-3 # m^2/s
q1 = 488e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
[]
[mass_source_Sr_property]
type = SpeciesSourceMaterial
property_name = Sr_generation
kind = Sr
block = fuel
[]
### Buffer Properties
[buffer_conc_Sr]
type = ArrheniusDiffusionCoef
block = buffer
d1 = 1e-8 # m^2/s
q1 = 0.0
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
[]
### IPyC properties
[IPyC_conc_Sr]
type = ArrheniusDiffusionCoef
block = IPyC
d1 = 2.3e-6 # m^2/s
q1 = 197e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
[]
### SiC properties
[SiC_conc_Sr]
type = ArrheniusDiffusionCoef
block = SiC
d1 = 1.2e-9 # m^2/s
q1 = 205e3 # J/mol
d2 = 1.8e6 # m^2/s
q2 = 791e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
[]
### OPyC properties
[OPyC_conc_Sr]
type = ArrheniusDiffusionCoef
block = OPyC
d1 = 2.3e-6 # m^2/s
q1 = 197e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
[]
[mass_source_Sr_property_OPyC]
type = SpeciesSourceMaterial
property_name = Sr_generation
kind = Sr
block = OPyC
#value = impurities * vol_kernel / vol_opyc
#value = 1.59e-6 * 4.07e-11 / 9.16e-11 # for UCO
#value = 1.57e-6 * 6.85e-11 / 1.18e-10 # for UO2
value = ${mass_source_property_OPyC}
[]
[]
[Postprocessors]
[release_Sr_inc]
type = SideIntegralMassFlux
variable = conc_Sr
boundary = exterior
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
execute_on = 'initial timestep_end'
[]
[released_Sr]
type = TimeIntegratedPostprocessor
value = release_Sr_inc
execute_on = 'initial timestep_end'
[]
[total_Sr]
type = ElementIntegralMaterialProperty
mat_prop = Sr_generation_total
block = 'fuel OPyC'
execute_on = 'initial timestep_end'
[]
[x_Sr_released]
type = FractionalRelease
released = released_Sr
total = total_Sr
execute_on = 'initial timestep_end'
[]
[x_Sr_released_safety]
type = FractionalRelease
released = released_Sr
total = total_Sr
execute_on = 'initial timestep_end'
start_time = 50284800
safety_fraction_type = net
[]
[retained_Sr]
type = ElementIntegralVariablePostprocessor
variable = conc_Sr
execute_on = 'initial timestep_end'
[]
[]
(assessment/TRISO/validation/AGR-1/AGR-1_Ag_Microstructure_Irradiation.i)
[Variables]
[conc_Ag]
initial_condition = 0.0
scaling = 1e14
[]
[]
[AuxVariables]
[Ag_diff_coef]
order = CONSTANT
family = MONOMIAL
[]
[flux]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[flux]
type = PiecewiseLinear
#data_file = DATA_FILE
x_index_in_file = 0
y_index_in_file = 5
xy_in_file_only = false
format = columns
[]
[]
[Kernels]
[mass_Ag_dt]
type = TimeDerivative
variable = conc_Ag
[]
[mass_Ag]
type = ArrheniusDiffusion
variable = conc_Ag
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
extra_vector_tags = 'ref'
[]
[mass_source_Ag]
type = SpeciesSourceRate
variable = conc_Ag
property_name = Ag_generation
block = 'fuel OPyC'
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[Ag_diff_coef]
type = MaterialRealAux
variable = Ag_diff_coef
property = arrhenius_diffusion_coef_Ag
execute_on = timestep_end
[]
[flux]
type = FunctionAux
variable = flux
function = flux
block = 'fuel buffer IPyC SiC OPyC'
execute_on = timestep_begin
[]
[]
[BCs]
[freesurf_conc_Ag]
type = DirichletBC
variable = conc_Ag
boundary = exterior
value = 0.0
[]
[]
[Materials]
# Arrhenius diffusion coefficients for kernel, PyC, and SiC
# come from IAEA TECDOC-978, French parameters.
[fuel_conc_Ag]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 6.7e-9 # m^2/s
q1 = 165e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[mass_source_Ag_property]
type = SpeciesSourceMaterial
property_name = Ag_generation
kind = Ag
block = fuel
[]
### Buffer Properties
[buffer_conc_Ag]
type = ArrheniusDiffusionCoef
block = buffer
d1 = 1e-8 # m^2/s
q1 = 0.0
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
### IPyC properties
[IPyC_conc_Ag]
type = ArrheniusDiffusionCoef
block = IPyC
d1 = 5.3e-9 # m^2/s
q1 = 154e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
### SiC properties
[SiC_conc_Ag]
type = ArrheniusDiffusionCoefMicrostructureIrradiation
block = SiC
scalar = 10
d1 = 6.88e-10 # m^2/s
d1_coef = -5.10e-4 # m/s
q1 = 211e3 # J/mol
q1_coef = 3.82e9 # J/mol/m
grain_minor_axis_length = 0.3e-6 # m
d1_irr_0 = 2.80e-13 # (n/m^2/s)^-1
d1_irr_1 = 0.458 # (-)
d1_irr_2 = 8.30e6 # m^-1
d1_irr_3 = 9.41e3 # K^-1
temperature = temperature # K
flux = flux # n/m^2/s
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
### OPyC properties
[OPyC_conc_Ag]
type = ArrheniusDiffusionCoef
block = OPyC
d1 = 5.3e-9 # m^2/s
q1 = 154e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[mass_source_Ag_property_OPyC]
type = SpeciesSourceMaterial
property_name = Ag_generation
kind = Ag
block = OPyC
#value = impurities * vol_kernel / vol_opyc
#value = 1.59e-6 * 4.07e-11 / 9.16e-11 # for UCO
#value = 1.57e-6 * 6.85e-11 / 1.18e-10 # for UO2
value = ${mass_source_property_OPyC}
[]
[]
[Postprocessors]
[release_Ag_inc]
type = SideIntegralMassFlux
variable = conc_Ag
boundary = exterior
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
execute_on = 'initial timestep_end'
[]
[released_Ag]
type = TimeIntegratedPostprocessor
value = release_Ag_inc
execute_on = 'initial timestep_end'
[]
[total_Ag]
type = ElementIntegralMaterialProperty
mat_prop = Ag_generation_total
block = 'fuel OPyC'
execute_on = 'initial timestep_end'
[]
[x_Ag_released]
type = FractionalRelease
released = released_Ag
total = total_Ag
execute_on = 'initial timestep_end'
[]
[x_Ag_released_safety]
type = FractionalRelease
released = released_Ag
total = total_Ag
execute_on = 'initial timestep_end'
start_time = 55209600
safety_fraction_type = net
[]
[retained_Ag]
type = ElementIntegralVariablePostprocessor
variable = conc_Ag
execute_on = 'initial timestep_end'
[]
[]
(assessment/TRISO/validation/AGR-34/Compacts/Cs/Driver/AGR-34_driver_Cs.i)
[Variables]
[conc_Cs]
initial_condition = 0.0
[]
[]
[AuxVariables]
[Cs_diff_coef]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[mass_Cs_dt]
type = TimeDerivative
variable = conc_Cs
extra_vector_tags = 'ref'
[]
[mass_Cs]
type = ArrheniusDiffusion
variable = conc_Cs
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
extra_vector_tags = 'ref'
[]
[mass_source_Cs]
type = SpeciesSourceRate
variable = conc_Cs
property_name = Cs_generation
block = 'fuel'
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[Cs_diff_coef]
type = MaterialRealAux
variable = Cs_diff_coef
property = arrhenius_diffusion_coef_Cs
execute_on = timestep_end
[]
[]
[BCs]
[freesurf_conc_Cs]
type = DirichletBC
variable = conc_Cs
boundary = exterior
value = 0.0
[]
[]
[Materials]
# Arrhenius diffusion coefficients for kernel, PyC, and SiC
# come from IAEA TECDOC-978, French parameters.
[fuel_conc_Cs]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 5.6e-8 # m^2/s
q1 = 209e3 # J/mol
d2 = 5.2e-4 # m^2/s
q2 = 362e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[mass_source_Cs_property]
type = SpeciesSourceMaterial
property_name = Cs_generation
kind = Cs
block = fuel
[]
### Buffer Properties
[buffer_conc_Cs]
type = ArrheniusDiffusionCoef
block = buffer
d1 = 1e-8 # m^2/s
q1 = 0.0
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
### IPyC properties
[IPyC_conc_Cs]
type = ArrheniusDiffusionCoef
block = IPyC
d1 = 6.3e-8 # m^2/s
q1 = 222e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
### SiC properties
[SiC_conc_Cs]
type = ArrheniusDiffusionCoef
block = SiC
# IAEA TECDOC-978, p. 442
d1 = 5.5e-14 # m^2/s
# The 1.1 is a factor applied in PARFUME
d1_function = 'exp(1.1*t/5e25)'
d1_function_variable = fast_neutron_fluence
q1 = 125e3 # J/mol
d2 = 1.60e-2 # m^2/s
q2 = 514e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
### OPyC properties
[OPyC_conc_Cs]
type = ArrheniusDiffusionCoef
block = OPyC
d1 = 6.3e-8 # m^2/s
q1 = 222e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[]
[Postprocessors]
### Release
[release_Cs_driver_inc]
type = SideIntegralMassFlux
variable = conc_Cs
boundary = exterior
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
execute_on = 'initial timestep_end'
[]
[released_Cs_driver]
type = TimeIntegratedPostprocessor # computes time integration of value
value = release_Cs_driver_inc
execute_on = 'initial timestep_end'
[]
[total_Cs_driver]
type = ElementIntegralMaterialProperty
mat_prop = Cs_generation_total
block = 'fuel'
execute_on = 'initial timestep_end'
[]
[x_Cs_driver_released]
type = FractionalRelease
released = released_Cs_driver
total = total_Cs_driver
execute_on = 'initial timestep_end'
[]
[retained_Cs_driver]
type = ElementIntegralVariablePostprocessor
variable = conc_Cs
execute_on = 'initial timestep_end'
[]
[]
(assessment/TRISO/benchmark/IAEA_CRP-6/diffusion/case_4c/case_4c.i)
[GlobalParams]
order = SECOND
family = LAGRANGE
initial_enrichment = 0.08
[]
[Mesh]
coord_type = RSPHERICAL
[gen]
type = TRISO1DMeshGenerator
elem_type = EDGE3
coordinates = '0 250e-6 350e-6 390e-6 425e-6 465e-6'
mesh_density = '50 30 15 15 15'
block_names = 'fuel buffer IPyC SiC OPyC'
bias = '1 1.25 1.25 1.25 1.25'
dual_bias = '0.8 0.8 0.8 0.8 1'
[]
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[Variables]
[conc_Cs]
[]
[conc_Ag]
[]
[]
[AuxVariables]
[temperature]
initial_condition = 1273.15
[]
[Cs_diff_coef]
order = CONSTANT
family = MONOMIAL
[]
[Ag_diff_coef]
order = CONSTANT
family = MONOMIAL
[]
[fast_neutron_fluence]
[]
[]
[Kernels]
[mass_Cs_dt]
type = TimeDerivative
variable = conc_Cs
[]
[mass_Cs]
type = ArrheniusDiffusion
variable = conc_Cs
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
temperature = temperature
extra_vector_tags = 'ref'
[]
[mass_source_Cs]
type = SpeciesSourceRate
variable = conc_Cs
property_name = Cs_generation
block = fuel
[]
[mass_Ag_dt]
type = TimeDerivative
variable = conc_Ag
[]
[mass_Ag]
type = ArrheniusDiffusion
variable = conc_Ag
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
temperature = temperature
extra_vector_tags = 'ref'
[]
[mass_source_Ag]
type = SpeciesSourceRate
variable = conc_Ag
property_name = Ag_generation
block = fuel
[]
[]
[AuxKernels]
[Cs_diff_coef]
type = MaterialRealAux
variable = Cs_diff_coef
property = arrhenius_diffusion_coef_Cs
execute_on = timestep_end
[]
[Ag_diff_coef]
type = MaterialRealAux
variable = Ag_diff_coef
property = arrhenius_diffusion_coef_Ag
execute_on = timestep_end
[]
[temperature]
type = FunctionAux
function = 'if(t<4.3200001e7,1273.15,if(t<4.3920001e7,1873.15,2073.15))'
variable = temperature
[]
[fast_neutron_fluence]
type = FunctionAux
function = 'if(t<4.3200001e7,2e25/4.32e7*t,2e25)'
variable = fast_neutron_fluence
[]
[]
[BCs]
[freesurf_conc_Cs]
type = DirichletBC
variable = conc_Cs
boundary = exterior
value = 0.0
[]
[freesurf_conc_Ag]
type = DirichletBC
variable = conc_Ag
boundary = exterior
value = 0.0
[]
[]
[Materials]
[burnup]
type = GenericFunctionMaterial
block = fuel
prop_names = 'burnup'
prop_values = 'if(t<4.3200001e7,0.1/4.32e7*t,0.1)'
[]
[fission_rate]
type = GenericFunctionMaterial
block = fuel
prop_names = 'fission_rate'
# 5.581219e19 = 0.1/4.32e7*10810/.27*6.0221409e23
prop_values = 'if(t<4.3200001e7,5.581219e19,0)'
[]
[fuel_conc_Cs]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 5.6e-8 # m^2/s
q1 = 209e3 # J/mol
d2 = 5.2e-4
q2 = 362e3
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[mass_source_Cs_property]
type = SpeciesSourceMaterial
block = fuel
property_name = Cs_generation
kind = Cs
[]
[buffer_conc_Cs]
type = ArrheniusDiffusionCoef
block = buffer
d1 = 1e-8 # m^2/s
q1 = 0 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[IPyC_conc_Cs]
type = ArrheniusDiffusionCoef
block = IPyC
d1 = 6.3e-8 # m^2/s
q1 = 222e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[SiC_conc_Cs]
type = ArrheniusDiffusionCoef
block = SiC
d1 = 5.5e-14 # m^2/s
d1_function = 'exp(t/5e25)'
d1_function_variable = fast_neutron_fluence
q1 = 125e3 # J/mol
d2 = 1.6e-2
q2 = 514e3
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[OPyC_conc_Cs]
type = ArrheniusDiffusionCoef
block = OPyC
d1 = 6.3e-8 # m^2/s
q1 = 222e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[fuel_conc_Ag]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 6.7e-9 # m^2/s
q1 = 165e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[mass_source_Ag_property]
type = SpeciesSourceMaterial
block = fuel
property_name = Ag_generation
kind = Ag
[]
[buffer_conc_Ag]
type = ArrheniusDiffusionCoef
block = buffer
d1 = 1e-8 # m^2/s
q1 = 0 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[IPyC_conc_Ag]
type = ArrheniusDiffusionCoef
block = IPyC
d1 = 5.3e-9 # m^2/s
q1 = 154e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[SiC_conc_Ag]
type = ArrheniusDiffusionCoef
block = SiC
d1 = 3.6e-9 # m^2/s
q1 = 215e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[OPyC_conc_Ag]
type = ArrheniusDiffusionCoef
block = OPyC
d1 = 5.3e-9 # m^2/s
q1 = 154e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[]
[Debug]
show_var_residual_norms = true
show_var_residual = 'conc_Cs conc_Ag'
[]
[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-21 #1e-22
nl_max_its = 50
l_tol = 1e-4
l_max_its = 50
start_time = 0.0
end_time = 4.464e7
num_steps = 1000
dt = 86400
dtmax = 86400
#dtmin = 86400
[TimeStepper]
type = FunctionDT
function = 'if(t<4.3200001e7,86400,3600)'
[]
[]
[Postprocessors]
[release_Cs_inc]
type = SideIntegralMassFlux
variable = conc_Cs
boundary = exterior
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
execute_on = 'initial timestep_end'
[]
[released_Cs]
type = TimeIntegratedPostprocessor
value = release_Cs_inc
execute_on = 'initial timestep_end'
[]
[total_Cs]
type = ElementIntegralMaterialProperty
mat_prop = Cs_generation_total
block = fuel
execute_on = 'initial timestep_end'
[]
[x_Cs_released]
type = FractionalRelease
released = released_Cs
total = total_Cs
[]
[retained_Cs]
type = ElementIntegralVariablePostprocessor
variable = conc_Cs
[]
[release_Ag_inc]
type = SideIntegralMassFlux
variable = conc_Ag
boundary = exterior
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
execute_on = 'initial timestep_end'
[]
[released_Ag]
type = TimeIntegratedPostprocessor
value = release_Ag_inc
execute_on = 'initial timestep_end'
[]
[total_Ag]
type = ElementIntegralMaterialProperty
mat_prop = Ag_generation_total
block = fuel
execute_on = 'initial timestep_end'
[]
[x_Ag_released]
type = FractionalRelease
released = released_Ag
total = total_Ag
[]
[retained_Ag]
type = ElementIntegralVariablePostprocessor
variable = conc_Ag
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = false
exodus = true
[console]
type = Console
time_step_interval = 1
[]
[out]
type = CSV
execute_on = final
[]
[]
(assessment/TRISO/benchmark/IAEA_CRP-6/diffusion/case_10/case_10.i)
[GlobalParams]
order = SECOND
family = LAGRANGE
initial_enrichment = 0.1676
[]
[Mesh]
coord_type = RSPHERICAL
[gen]
type = TRISO1DMeshGenerator
elem_type = EDGE3
coordinates = '0 250.5e-6 342.5e-6 380.5e-6 413.5e-6 454.5e-6'
mesh_density = '50 30 15 15 15'
block_names = 'fuel buffer IPyC SiC OPyC'
bias = '1 1.25 1.25 1.25 1.25'
dual_bias = '0.8 0.8 0.8 0.8 1'
[]
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[Variables]
[conc_Cs]
[]
[conc_Ag]
[]
[conc_Sr]
[]
[temperature]
initial_condition = 1373.15
scaling = 1e-10
[]
[]
[AuxVariables]
[Cs_diff_coef]
order = CONSTANT
family = MONOMIAL
[]
[Ag_diff_coef]
order = CONSTANT
family = MONOMIAL
[]
[Sr_diff_coef]
order = CONSTANT
family = MONOMIAL
[]
[burnup]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[temperature]
type = PiecewiseLinear
data_file = temperature_history.dat
format = columns
[]
[]
[Kernels]
[mass_Cs_dt]
type = TimeDerivative
variable = conc_Cs
[]
[mass_Cs]
type = ArrheniusDiffusion
variable = conc_Cs
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
temperature = temperature
extra_vector_tags = 'ref'
[]
[mass_source_Cs]
type = SpeciesSourceRate
variable = conc_Cs
property_name = Cs_generation
block = fuel
[]
[mass_Ag_dt]
type = TimeDerivative
variable = conc_Ag
[]
[mass_Ag]
type = ArrheniusDiffusion
variable = conc_Ag
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
temperature = temperature
extra_vector_tags = 'ref'
[]
[mass_source_Ag]
type = SpeciesSourceRate
variable = conc_Ag
property_name = Ag_generation
block = fuel
[]
[mass_Sr_dt]
type = TimeDerivative
variable = conc_Sr
[]
[mass_Sr]
type = ArrheniusDiffusion
variable = conc_Sr
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
temperature = temperature
extra_vector_tags = 'ref'
[]
[mass_source_Sr]
type = SpeciesSourceRate
variable = conc_Sr
property_name = Sr_generation
block = fuel
[]
[heat]
type = HeatConduction
variable = temperature
extra_vector_tags = 'ref'
[]
[heat_source]
type = FissionRateHeatSource
variable = temperature
block = fuel
energy_per_fission = 3.2e-11 # units of J/fission
fission_rate = fission_rate
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[Cs_diff_coef]
type = MaterialRealAux
variable = Cs_diff_coef
property = arrhenius_diffusion_coef_Cs
execute_on = timestep_end
[]
[Ag_diff_coef]
type = MaterialRealAux
variable = Ag_diff_coef
property = arrhenius_diffusion_coef_Ag
execute_on = timestep_end
[]
[Sr_diff_coef]
type = MaterialRealAux
variable = Sr_diff_coef
property = arrhenius_diffusion_coef_Sr
execute_on = timestep_end
[]
[burnup]
type = MaterialRealAux
block = fuel
variable = burnup
property = burnup
[]
[]
[BCs]
[freesurf_conc_Cs]
type = DirichletBC
variable = conc_Cs
boundary = exterior
value = 0.0
[]
[freesurf_conc_Ag]
type = DirichletBC
variable = conc_Ag
boundary = exterior
value = 0.0
[]
[freesurf_conc_Sr]
type = DirichletBC
variable = conc_Sr
boundary = exterior
value = 0.0
[]
[temperature]
type = FunctionDirichletBC
variable = temperature
function = temperature
boundary = exterior
[]
[]
[Materials]
[burnup]
type = GenericFunctionMaterial
block = fuel
prop_names = 'burnup'
prop_values = 'if(t<21513600,0.093/21513600*t,0.093)'
[]
[fission_rate]
type = GenericFunctionMaterial
block = fuel
prop_names = 'fission_rate'
# 1.05e21 = 0.093/21513600*10850/.27*6.0221409e23
prop_values = 'if(t<=21513600,1.05e21,0)'
[]
[fuel_conc_Cs]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 5.6e-8 # m^2/s
q1 = 209e3 # J/mol
d2 = 5.2e-4
q2 = 362e3
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[mass_source_Cs_property]
type = SpeciesSourceMaterial
block = fuel
property_name = Cs_generation
kind = Cs
[]
[buffer_conc_Cs]
type = ArrheniusDiffusionCoef
block = buffer
d1 = 1e-8 # m^2/s
q1 = 0 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[IPyC_conc_Cs]
type = ArrheniusDiffusionCoef
block = IPyC
d1 = 6.3e-8 # m^2/s
q1 = 222e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[SiC_conc_Cs]
type = ArrheniusDiffusionCoef
block = SiC
d1 = 5.5e-14 # m^2/s
d1_function = 'if(t<21513600,exp(3.0e25/21513600*t/5e25),exp(3.0e25/5e25))'
q1 = 125e3 # J/mol
d2 = 1.6e-2
q2 = 514e3
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[OPyC_conc_Cs]
type = ArrheniusDiffusionCoef
block = OPyC
d1 = 6.3e-8 # m^2/s
q1 = 222e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[fuel_conc_Ag]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 6.7e-9 # m^2/s
q1 = 165e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[mass_source_Ag_property]
type = SpeciesSourceMaterial
block = fuel
property_name = Ag_generation
kind = Ag
[]
[buffer_conc_Ag]
type = ArrheniusDiffusionCoef
block = buffer
d1 = 1e-8 # m^2/s
q1 = 0 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[IPyC_conc_Ag]
type = ArrheniusDiffusionCoef
block = IPyC
d1 = 5.3e-9 # m^2/s
q1 = 154e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[SiC_conc_Ag]
type = ArrheniusDiffusionCoef
block = SiC
d1 = 3.6e-9 # m^2/s
q1 = 215e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[OPyC_conc_Ag]
type = ArrheniusDiffusionCoef
block = OPyC
d1 = 5.3e-9 # m^2/s
q1 = 154e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[fuel_conc_Sr]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 2.2e-3 # m^2/s
q1 = 488e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
[]
[mass_source_Sr_property]
type = SpeciesSourceMaterial
block = fuel
property_name = Sr_generation
kind = Sr
[]
[buffer_conc_Sr]
type = ArrheniusDiffusionCoef
block = buffer
d1 = 1e-8 # m^2/s
q1 = 0 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
[]
[IPyC_conc_Sr]
type = ArrheniusDiffusionCoef
block = IPyC
d1 = 2.3e-6 # m^2/s
q1 = 197e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
[]
[SiC_conc_Sr]
type = ArrheniusDiffusionCoef
block = SiC
d1 = 1.2e-9 # m^2/s
q1 = 205e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
[]
[OPyC_conc_Sr]
type = ArrheniusDiffusionCoef
block = OPyC
d1 = 2.3e-6 # m^2/s
q1 = 197e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
[]
[fuel_thermal]
type = UO2Thermal
thermal_conductivity_model = FINK_LUCUTA
block = fuel
temperature = temperature
burnup = burnup
[]
[fuel_den]
type = ParsedMaterial
block = fuel
property_name = density
expression = 10850.0
[]
[buffer_temperature]
type = HeatConductionMaterial
block = buffer
thermal_conductivity = 0.5
specific_heat = 720.0
[]
[buffer_den]
type = ParsedMaterial
block = buffer
property_name = density
expression = 1000
[]
[PyC_temperature]
type = HeatConductionMaterial
block = 'IPyC OPyC'
thermal_conductivity = 4.0
specific_heat = 720.0
[]
[IPyC_den]
type = ParsedMaterial
block = IPyC
property_name = density
expression = 1900
[]
[OPyC_den]
type = ParsedMaterial
block = OPyC
property_name = density
expression = 1880
[]
[SiC_temperature]
type = HeatConductionMaterial
block = SiC
thermal_conductivity = 13.9
specific_heat = 620.0
[]
[SiC_den]
type = ParsedMaterial
block = SiC
property_name = density
expression = 3200.0
[]
[]
[Debug]
show_var_residual_norms = true
show_var_residual = 'conc_Cs conc_Ag'
[]
[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-19 #5e-21 #1e-22
nl_max_its = 50
l_tol = 1e-4
l_max_its = 50
start_time = 0.0
end_time = 24523200
num_steps = 2500
dt = 86400
dtmax = 86400
#dtmin = 86400
[TimeStepper]
type = FunctionDT
function = 'if(t<21513600,86400,3600)'
[]
[]
[Postprocessors]
[_temp]
type = NodalExtremeValue
variable = temperature
[]
[release_Cs_inc]
type = SideIntegralMassFlux
variable = conc_Cs
boundary = exterior
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
execute_on = 'initial timestep_end'
[]
[released_Cs]
type = TimeIntegratedPostprocessor
value = release_Cs_inc
execute_on = 'initial timestep_end'
[]
[total_Cs]
type = ElementIntegralMaterialProperty
mat_prop = Cs_generation_total
block = fuel
execute_on = 'initial timestep_end'
[]
[x_Cs_released_overall]
type = FractionalRelease
released = released_Cs
total = total_Cs
execute_on = 'initial timestep_end'
[]
[x_Cs_released]
type = FractionalRelease
released = released_Cs
total = total_Cs
execute_on = 'initial timestep_end'
start_time = 21513600
[]
[retained_Cs]
type = ElementIntegralVariablePostprocessor
variable = conc_Cs
execute_on = 'initial timestep_end'
[]
[release_Ag_inc]
type = SideIntegralMassFlux
variable = conc_Ag
boundary = exterior
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
execute_on = 'initial timestep_end'
[]
[released_Ag]
type = TimeIntegratedPostprocessor
value = release_Ag_inc
execute_on = 'initial timestep_end'
[]
[total_Ag]
type = ElementIntegralMaterialProperty
mat_prop = Ag_generation_total
block = fuel
execute_on = 'initial timestep_end'
[]
[x_Ag_released_overall]
type = FractionalRelease
released = released_Ag
total = total_Ag
execute_on = 'initial timestep_end'
[]
[x_Ag_released]
type = FractionalRelease
released = released_Ag
total = total_Ag
execute_on = 'initial timestep_end'
start_time = 21513600
[]
[retained_Ag]
type = ElementIntegralVariablePostprocessor
variable = conc_Ag
execute_on = 'initial timestep_end'
[]
[release_Sr_inc]
type = SideIntegralMassFlux
variable = conc_Sr
boundary = exterior
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
execute_on = 'initial timestep_end'
[]
[released_Sr]
type = TimeIntegratedPostprocessor
value = release_Sr_inc
execute_on = 'initial timestep_end'
[]
[total_Sr]
type = ElementIntegralMaterialProperty
mat_prop = Sr_generation_total
block = fuel
execute_on = 'initial timestep_end'
[]
[x_Sr_released_overall]
type = FractionalRelease
released = released_Sr
total = total_Sr
execute_on = 'initial timestep_end'
[]
[x_Sr_released]
type = FractionalRelease
released = released_Sr
total = total_Sr
execute_on = 'initial timestep_end'
start_time = 21513600
[]
[retained_Sr]
type = ElementIntegralVariablePostprocessor
variable = conc_Sr
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = false
exodus = true
[console]
type = Console
time_step_interval = 1
[]
[out]
type = CSV
[]
[out_final]
type = CSV
execute_on = final
[]
[]
(assessment/TRISO/benchmark/IAEA_CRP-6/diffusion/case_5a/case_5a.i)
[GlobalParams]
order = SECOND
family = LAGRANGE
initial_enrichment = 0.08
[]
[Mesh]
coord_type = RSPHERICAL
[gen]
type = TRISO1DMeshGenerator
elem_type = EDGE3
coordinates = '0 250e-6 350e-6 390e-6 425e-6 465e-6'
mesh_density = '50 30 15 15 15'
block_names = 'fuel buffer IPyC SiC OPyC'
bias = '1 1.25 1.25 1.25 1.25'
dual_bias = '0.8 0.8 0.8 0.8 1'
[]
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[Variables]
[conc_Cs]
[]
[conc_Ag]
[]
[]
[AuxVariables]
[temperature]
initial_condition = 873.15
[]
[Cs_diff_coef]
order = CONSTANT
family = MONOMIAL
[]
[Ag_diff_coef]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[temperature]
type = PiecewiseLinear
data_file = temperature_history.dat
format = columns
[]
[]
[Kernels]
[mass_Cs_dt]
type = TimeDerivative
variable = conc_Cs
[]
[mass_Cs]
type = ArrheniusDiffusion
variable = conc_Cs
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
temperature = temperature
extra_vector_tags = 'ref'
[]
[mass_source_Cs]
type = SpeciesSourceRate
variable = conc_Cs
property_name = Cs_generation
block = fuel
[]
[mass_Ag_dt]
type = TimeDerivative
variable = conc_Ag
[]
[mass_Ag]
type = ArrheniusDiffusion
variable = conc_Ag
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
temperature = temperature
extra_vector_tags = 'ref'
[]
[mass_source_Ag]
type = SpeciesSourceRate
variable = conc_Ag
property_name = Ag_generation
block = fuel
[]
[]
[AuxKernels]
[Cs_diff_coef]
type = MaterialRealAux
variable = Cs_diff_coef
property = arrhenius_diffusion_coef_Cs
execute_on = timestep_end
[]
[Ag_diff_coef]
type = MaterialRealAux
variable = Ag_diff_coef
property = arrhenius_diffusion_coef_Ag
execute_on = timestep_end
[]
[temperature]
type = FunctionAux
function = temperature
variable = temperature
[]
[]
[BCs]
[freesurf_conc_Cs]
type = DirichletBC
variable = conc_Cs
boundary = exterior
value = 0.0
[]
[freesurf_conc_Ag]
type = DirichletBC
variable = conc_Ag
boundary = exterior
value = 0.0
[]
[]
[Materials]
[burnup]
type = GenericFunctionMaterial
block = fuel
prop_names = 'burnup'
prop_values = '0.1/8.64e7*t'
[]
[fission_rate]
type = GenericFunctionMaterial
block = fuel
prop_names = 'fission_rate'
# 2.790610e19 = 0.1/8.64e7*10810/.27*6.0221409e23
prop_values = '2.790610e19'
[]
[fuel_conc_Cs]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 5.6e-8 # m^2/s
q1 = 209e3 # J/mol
d2 = 5.2e-4
q2 = 362e3
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[mass_source_Cs_property]
type = SpeciesSourceMaterial
block = fuel
property_name = Cs_generation
kind = Cs
[]
[buffer_conc_Cs]
type = ArrheniusDiffusionCoef
block = buffer
d1 = 1e-8 # m^2/s
q1 = 0 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[IPyC_conc_Cs]
type = ArrheniusDiffusionCoef
block = IPyC
d1 = 6.3e-8 # m^2/s
q1 = 222e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[SiC_conc_Cs]
type = ArrheniusDiffusionCoef
block = SiC
d1 = 5.5e-14 # m^2/s
d1_function = 'exp(2e25/8.64e7*t/5e25)'
q1 = 125e3 # J/mol
d2 = 1.6e-2
q2 = 514e3
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[OPyC_conc_Cs]
type = ArrheniusDiffusionCoef
block = OPyC
d1 = 6.3e-8 # m^2/s
q1 = 222e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[fuel_conc_Ag]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 6.7e-9 # m^2/s
q1 = 165e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[mass_source_Ag_property]
type = SpeciesSourceMaterial
block = fuel
property_name = Ag_generation
kind = Ag
[]
[buffer_conc_Ag]
type = ArrheniusDiffusionCoef
block = buffer
d1 = 1e-8 # m^2/s
q1 = 0 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[IPyC_conc_Ag]
type = ArrheniusDiffusionCoef
block = IPyC
d1 = 5.3e-9 # m^2/s
q1 = 154e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[SiC_conc_Ag]
type = ArrheniusDiffusionCoef
block = SiC
d1 = 3.6e-9 # m^2/s
q1 = 215e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[OPyC_conc_Ag]
type = ArrheniusDiffusionCoef
block = OPyC
d1 = 5.3e-9 # m^2/s
q1 = 154e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[]
[Debug]
show_var_residual_norms = true
show_var_residual = 'conc_Cs conc_Ag'
[]
[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-21 #1e-22
nl_max_its = 50
l_tol = 1e-4
l_max_its = 50
start_time = 0.0
end_time = 8.64e7
num_steps = 1450
dt = 86400
dtmax = 86400
#dtmin = 86400
[TimeStepper]
type = FunctionDT
function = 'if(t<8.64e7,86400,3600)'
[]
[]
[Postprocessors]
[release_Cs_inc]
type = SideIntegralMassFlux
variable = conc_Cs
boundary = exterior
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
execute_on = 'initial timestep_end'
[]
[released_Cs]
type = TimeIntegratedPostprocessor
value = release_Cs_inc
execute_on = 'initial timestep_end'
[]
[total_Cs]
type = ElementIntegralMaterialProperty
mat_prop = Cs_generation_total
block = fuel
execute_on = 'initial timestep_end'
[]
[x_Cs_released]
type = FractionalRelease
released = released_Cs
total = total_Cs
execute_on = 'initial timestep_end'
[]
[retained_Cs]
type = ElementIntegralVariablePostprocessor
variable = conc_Cs
execute_on = 'initial timestep_end'
[]
[release_Ag_inc]
type = SideIntegralMassFlux
variable = conc_Ag
boundary = exterior
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
execute_on = 'initial timestep_end'
[]
[released_Ag]
type = TimeIntegratedPostprocessor
value = release_Ag_inc
execute_on = 'initial timestep_end'
[]
[total_Ag]
type = ElementIntegralMaterialProperty
mat_prop = Ag_generation_total
block = fuel
execute_on = 'initial timestep_end'
[]
[x_Ag_released]
type = FractionalRelease
released = released_Ag
total = total_Ag
execute_on = 'initial timestep_end'
[]
[retained_Ag]
type = ElementIntegralVariablePostprocessor
variable = conc_Ag
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = false
exodus = true
[console]
type = Console
time_step_interval = 1
[]
[out]
type = CSV
execute_on = final
[]
[]
(assessment/TRISO/benchmark/IAEA_CRP-6/diffusion/case_8a/case_8a.i)
[GlobalParams]
order = SECOND
family = LAGRANGE
initial_enrichment = 0.0982
[]
[Mesh]
coord_type = RSPHERICAL
[gen]
type = TRISO1DMeshGenerator
elem_type = EDGE3
coordinates = '0 248.5e-6 342.5e-6 383.5e-6 419.5e-6 459.5e-6'
mesh_density = '50 30 15 15 15'
block_names = 'fuel buffer IPyC SiC OPyC'
bias = '1 1.25 1.25 1.25 1.25'
dual_bias = '0.8 0.8 0.8 0.8 1'
[]
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[Variables]
[conc_Cs]
[]
[conc_Ag]
[]
[conc_Sr]
[]
[]
[AuxVariables]
[temperature]
initial_condition = 1391.15
[]
[Cs_diff_coef]
order = CONSTANT
family = MONOMIAL
[]
[Ag_diff_coef]
order = CONSTANT
family = MONOMIAL
[]
[Sr_diff_coef]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[temperature]
type = PiecewiseLinear
data_file = temperature_history.dat
format = columns
[]
[]
[Kernels]
[mass_Cs_dt]
type = TimeDerivative
variable = conc_Cs
[]
[mass_Cs]
type = ArrheniusDiffusion
variable = conc_Cs
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
temperature = temperature
extra_vector_tags = 'ref'
[]
[mass_source_Cs]
type = SpeciesSourceRate
variable = conc_Cs
property_name = Cs_generation
block = fuel
[]
[mass_Ag_dt]
type = TimeDerivative
variable = conc_Ag
[]
[mass_Ag]
type = ArrheniusDiffusion
variable = conc_Ag
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
temperature = temperature
extra_vector_tags = 'ref'
[]
[mass_source_Ag]
type = SpeciesSourceRate
variable = conc_Ag
property_name = Ag_generation
block = fuel
[]
[mass_Sr_dt]
type = TimeDerivative
variable = conc_Sr
[]
[mass_Sr]
type = ArrheniusDiffusion
variable = conc_Sr
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
temperature = temperature
extra_vector_tags = 'ref'
[]
[mass_source_Sr]
type = SpeciesSourceRate
variable = conc_Sr
property_name = Sr_generation
block = fuel
[]
[]
[AuxKernels]
[Cs_diff_coef]
type = MaterialRealAux
variable = Cs_diff_coef
property = arrhenius_diffusion_coef_Cs
execute_on = timestep_end
[]
[Ag_diff_coef]
type = MaterialRealAux
variable = Ag_diff_coef
property = arrhenius_diffusion_coef_Ag
execute_on = timestep_end
[]
[Sr_diff_coef]
type = MaterialRealAux
variable = Sr_diff_coef
property = arrhenius_diffusion_coef_Sr
execute_on = timestep_end
[]
[temperature]
type = FunctionAux
function = temperature
variable = temperature
[]
[]
[BCs]
[freesurf_conc_Cs]
type = DirichletBC
variable = conc_Cs
boundary = exterior
value = 0.0
[]
[freesurf_conc_Ag]
type = DirichletBC
variable = conc_Ag
boundary = exterior
value = 0.0
[]
[freesurf_conc_Sr]
type = DirichletBC
variable = conc_Sr
boundary = exterior
value = 0.0
[]
[]
[Materials]
[burnup]
type = GenericFunctionMaterial
block = fuel
prop_names = 'burnup'
prop_values = 'if(t<31017600,0.075/31017600*t,0.075)'
[]
[fission_rate]
type = GenericFunctionMaterial
block = fuel
prop_names = 'fission_rate'
# 5.83e19 = 0.075/31017600*10810/.27*6.0221409e23
prop_values = 'if(t<31017600,5.83e19,0)'
[]
[fuel_conc_Cs]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 5.6e-8 # m^2/s
q1 = 209e3 # J/mol
d2 = 5.2e-4
q2 = 362e3
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[mass_source_Cs_property]
type = SpeciesSourceMaterial
block = fuel
property_name = Cs_generation
kind = Cs
[]
[buffer_conc_Cs]
type = ArrheniusDiffusionCoef
block = buffer
d1 = 1e-8 # m^2/s
q1 = 0 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[IPyC_conc_Cs]
type = ArrheniusDiffusionCoef
block = IPyC
d1 = 6.3e-8 # m^2/s
q1 = 222e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[SiC_conc_Cs]
type = ArrheniusDiffusionCoef
block = SiC
d1 = 5.5e-14 # m^2/s
d1_function = 'if(t<31017600,exp(4.0e25/31017600*t/5e25),exp(4.0e25/5e25))'
q1 = 125e3 # J/mol
d2 = 1.6e-2
q2 = 514e3
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[OPyC_conc_Cs]
type = ArrheniusDiffusionCoef
block = OPyC
d1 = 6.3e-8 # m^2/s
q1 = 222e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[fuel_conc_Ag]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 6.7e-9 # m^2/s
q1 = 165e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[mass_source_Ag_property]
type = SpeciesSourceMaterial
block = fuel
property_name = Ag_generation
kind = Ag
[]
[buffer_conc_Ag]
type = ArrheniusDiffusionCoef
block = buffer
d1 = 1e-8 # m^2/s
q1 = 0 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[IPyC_conc_Ag]
type = ArrheniusDiffusionCoef
block = IPyC
d1 = 5.3e-9 # m^2/s
q1 = 154e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[SiC_conc_Ag]
type = ArrheniusDiffusionCoef
block = SiC
d1 = 3.6e-9 # m^2/s
q1 = 215e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[OPyC_conc_Ag]
type = ArrheniusDiffusionCoef
block = OPyC
d1 = 5.3e-9 # m^2/s
q1 = 154e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[fuel_conc_Sr]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 2.2e-3 # m^2/s
q1 = 488e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
[]
[mass_source_Sr_property]
type = SpeciesSourceMaterial
block = fuel
property_name = Sr_generation
kind = Sr
[]
[buffer_conc_Sr]
type = ArrheniusDiffusionCoef
block = buffer
d1 = 1e-8 # m^2/s
q1 = 0 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
[]
[IPyC_conc_Sr]
type = ArrheniusDiffusionCoef
block = IPyC
d1 = 2.3e-6 # m^2/s
q1 = 197e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
[]
[SiC_conc_Sr]
type = ArrheniusDiffusionCoef
block = SiC
d1 = 1.2e-9 # m^2/s
q1 = 205e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
[]
[OPyC_conc_Sr]
type = ArrheniusDiffusionCoef
block = OPyC
d1 = 2.3e-6 # m^2/s
q1 = 197e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
[]
[]
[Debug]
show_var_residual_norms = true
show_var_residual = 'conc_Cs conc_Ag'
[]
[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-21 #1e-22
nl_max_its = 50
l_tol = 1e-4
l_max_its = 50
start_time = 0.0
end_time = 32965200
num_steps = 1450
dt = 86400
dtmax = 86400
#dtmin = 86400
[TimeStepper]
type = FunctionDT
function = 'if(t<31017600,86400,
if(t<31165200,900,
3600))'
[]
[]
[Postprocessors]
[_temp]
type = NodalExtremeValue
variable = temperature
[]
[release_Cs_inc]
type = SideIntegralMassFlux
variable = conc_Cs
boundary = exterior
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
execute_on = 'initial timestep_end'
[]
[released_Cs]
type = TimeIntegratedPostprocessor
value = release_Cs_inc
execute_on = 'initial timestep_end'
[]
[total_Cs]
type = ElementIntegralMaterialProperty
mat_prop = Cs_generation_total
block = fuel
execute_on = 'initial timestep_end'
[]
[x_Cs_released_overall]
type = FractionalRelease
released = released_Cs
total = total_Cs
execute_on = 'initial timestep_end'
[]
[x_Cs_released]
type = FractionalRelease
released = released_Cs
total = total_Cs
execute_on = 'initial timestep_end'
start_time = 31017600
[]
[retained_Cs]
type = ElementIntegralVariablePostprocessor
variable = conc_Cs
execute_on = 'initial timestep_end'
[]
[release_Ag_inc]
type = SideIntegralMassFlux
variable = conc_Ag
boundary = exterior
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
execute_on = 'initial timestep_end'
[]
[released_Ag]
type = TimeIntegratedPostprocessor
value = release_Ag_inc
execute_on = 'initial timestep_end'
[]
[total_Ag]
type = ElementIntegralMaterialProperty
mat_prop = Ag_generation_total
block = fuel
execute_on = 'initial timestep_end'
[]
[x_Ag_released_overall]
type = FractionalRelease
released = released_Ag
total = total_Ag
execute_on = 'initial timestep_end'
[]
[x_Ag_released]
type = FractionalRelease
released = released_Ag
total = total_Ag
execute_on = 'initial timestep_end'
start_time = 31017600
[]
[retained_Ag]
type = ElementIntegralVariablePostprocessor
variable = conc_Ag
execute_on = 'initial timestep_end'
[]
[release_Sr_inc]
type = SideIntegralMassFlux
variable = conc_Sr
boundary = exterior
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
execute_on = 'initial timestep_end'
[]
[released_Sr]
type = TimeIntegratedPostprocessor
value = release_Sr_inc
execute_on = 'initial timestep_end'
[]
[total_Sr]
type = ElementIntegralMaterialProperty
mat_prop = Sr_generation_total
block = fuel
execute_on = 'initial timestep_end'
[]
[x_Sr_released_overall]
type = FractionalRelease
released = released_Sr
total = total_Sr
execute_on = 'initial timestep_end'
[]
[x_Sr_released]
type = FractionalRelease
released = released_Sr
total = total_Sr
execute_on = 'initial timestep_end'
start_time = 31017600
[]
[retained_Sr]
type = ElementIntegralVariablePostprocessor
variable = conc_Sr
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = false
exodus = true
[console]
type = Console
time_step_interval = 1
[]
[out]
type = CSV
[]
[out_final]
type = CSV
execute_on = final
[]
[]
(assessment/TRISO/benchmark/IAEA_CRP-6/diffusion/case_3c/case_3c.i)
[GlobalParams]
order = SECOND
family = LAGRANGE
[]
[Mesh]
coord_type = RSPHERICAL
[gen]
type = TRISO1DMeshGenerator
elem_type = EDGE3
coordinates = '0 250e-6 350e-6 390e-6 425e-6 465e-6'
mesh_density = '50 30 15 15 15'
block_names = 'fuel buffer IPyC SiC OPyC'
[]
[]
[Problem]
[]
[Variables]
[conc_Cs]
[]
[]
[ICs]
[conc_Cs]
type = ConstantIC
block = fuel
value = 1
variable = conc_Cs
[]
[]
[AuxVariables]
[temperature]
initial_condition = 1873.15
[]
[Cs_diff_coef]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[mass_Cs_dt]
type = TimeDerivative
variable = conc_Cs
[]
[mass_Cs]
type = ArrheniusDiffusion
variable = conc_Cs
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
temperature = temperature
[]
[]
[AuxKernels]
[Cs_diff_coef]
type = MaterialRealAux
variable = Cs_diff_coef
property = arrhenius_diffusion_coef_Cs
execute_on = timestep_end
[]
[temperature]
type = FunctionAux
function = 'if(t<720000,1873.15,2073.15)'
variable = temperature
[]
[]
[BCs]
[freesurf_conc_Cs]
type = DirichletBC
variable = conc_Cs
boundary = exterior
value = 0.0
[]
[]
[Materials]
[fuel_conc_Cs]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 5.6e-8 # m^2/s
q1 = 209e3 # J/mol
d2 = 5.2e-4
q2 = 362e3
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[buffer_conc_Cs]
type = ArrheniusDiffusionCoef
block = buffer
d1 = 1e-8 # m^2/s
q1 = 0 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[IPyC_conc_Cs]
type = ArrheniusDiffusionCoef
block = IPyC
d1 = 6.3e-8 # m^2/s
q1 = 222e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[SiC_conc_Cs]
type = ArrheniusDiffusionCoef
block = SiC
# 5.5e-14*exp(2/5) = 8.2e-14
d1 = 8.2e-14 # m^2/s
q1 = 125e3 # J/mol
d2 = 1.6e-2
q2 = 514e3
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[OPyC_conc_Cs]
type = ArrheniusDiffusionCoef
block = OPyC
d1 = 6.3e-8 # m^2/s
q1 = 222e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[]
[Debug]
show_var_residual_norms = true
show_var_residual = 'conc_Cs'
[]
[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 = 1e-20
nl_max_its = 50
l_tol = 1e-4
l_max_its = 50
start_time = 0.0
end_time = 1440000
num_steps = 1000
dt = 1800
dtmax = 1800
dtmin = 1800
[]
[Postprocessors]
[release_Cs_inc]
type = SideIntegralMassFlux
variable = conc_Cs
boundary = exterior
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
execute_on = 'initial timestep_end'
[]
[released_Cs]
type = TimeIntegratedPostprocessor
value = release_Cs_inc
execute_on = 'initial timestep_end'
[]
[total_Cs]
type = ElementIntegralVariablePostprocessor
variable = conc_Cs
execute_on = 'initial'
[]
[x_Cs_released]
type = FractionalRelease
released = released_Cs
total = total_Cs
[]
[retained_Cs]
type = ElementIntegralVariablePostprocessor
variable = conc_Cs
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = false
exodus = true
[console]
type = Console
time_step_interval = 1
[]
[out]
type = CSV
execute_on = final
[]
[]
(assessment/TRISO/benchmark/IAEA_CRP-6/diffusion/case_3e/case_3e.i)
[GlobalParams]
order = SECOND
family = LAGRANGE
[]
[Mesh]
coord_type = RSPHERICAL
[gen]
type = TRISO1DMeshGenerator
elem_type = EDGE3
coordinates = '0 250e-6 350e-6 390e-6 425e-6 465e-6'
mesh_density = '50 30 15 15 15'
block_names = 'fuel buffer IPyC SiC OPyC'
[]
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[Variables]
[conc_Cs]
[]
[conc_Kr]
[]
[]
[ICs]
[conc_Cs]
type = ConstantIC
block = fuel
value = 1
variable = conc_Cs
[]
[conc_Kr]
type = ConstantIC
block = fuel
value = 1
variable = conc_Kr
[]
[]
[AuxVariables]
[temperature]
initial_condition = 1873.15
[]
[Cs_diff_coef]
order = CONSTANT
family = MONOMIAL
[]
[Kr_diff_coef]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[mass_Cs_dt]
type = TimeDerivative
variable = conc_Cs
[]
[mass_Cs]
type = ArrheniusDiffusion
variable = conc_Cs
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
temperature = temperature
extra_vector_tags = 'ref'
[]
[mass_Kr_dt]
type = TimeDerivative
variable = conc_Kr
[]
[mass_Kr]
type = ArrheniusDiffusion
variable = conc_Kr
arrhenius_prpty_name = arrhenius_diffusion_coef_Kr
temperature = temperature
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[Cs_diff_coef]
type = MaterialRealAux
variable = Cs_diff_coef
property = arrhenius_diffusion_coef_Cs
execute_on = timestep_end
[]
[Kr_diff_coef]
type = MaterialRealAux
variable = Kr_diff_coef
property = arrhenius_diffusion_coef_Kr
execute_on = timestep_end
[]
[temperature]
type = FunctionAux
function = 'if(t<720000,1873.15,2073.15)'
variable = temperature
[]
[]
[BCs]
[freesurf_conc_Cs]
type = DirichletBC
variable = conc_Cs
boundary = exterior
value = 0.0
[]
[freesurf_conc_Kr]
type = DirichletBC
variable = conc_Kr
boundary = exterior
value = 0.0
[]
[]
[Materials]
[fuel_conc_Cs]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 5.6e-8 # m^2/s
q1 = 209e3 # J/mol
d2 = 5.2e-4
q2 = 362e3
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[buffer_conc_Cs]
type = ArrheniusDiffusionCoef
block = buffer
d1 = 1e-8 # m^2/s
q1 = 0 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[IPyC_conc_Cs]
type = ArrheniusDiffusionCoef
block = IPyC
d1 = 6.3e-8 # m^2/s
# 6.2228e6 = 1e-6 / (6.3e-8*exp(-222e3/8.3145/2073.15))
d1_function = 'if(t<720000,1,6.2228e6)'
q1 = 222e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[SiC_conc_Cs]
type = ArrheniusDiffusionCoef
block = SiC
d1 = 1e-6
q1 = 0 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[OPyC_conc_Cs]
type = ArrheniusDiffusionCoef
block = OPyC
d1 = 6.3e-8 # m^2/s
# 6.2228e6 = 1e-6 / (6.3e-8*exp(-222e3/8.3145/2073.15))
d1_function = 'if(t<720000,1,6.2228e6)'
q1 = 222e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[fuel_conc_Kr]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 8.8e-15 # m^2/s
q1 = 54e3 # J/mol
d2 = 6.0e-1
q2 = 480e3
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Kr
[]
[buffer_conc_Kr]
type = ArrheniusDiffusionCoef
block = buffer
d1 = 1e-8 # m^2/s
q1 = 0 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Kr
[]
[IPyC_conc_Kr]
type = ArrheniusDiffusionCoef
block = IPyC
d1 = 2.9e-8 # m^2/s
# 7.40285e8 = 1e-6 / (2.9e-8*exp(-291e3/8.3145/2073.15))
d1_function = 'if(t<720000,1,7.40285e8)'
q1 = 291e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Kr
[]
[SiC_conc_Kr]
type = ArrheniusDiffusionCoef
block = SiC
d1 = 1e-6
q1 = 0 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Kr
[]
[OPyC_conc_Kr]
type = ArrheniusDiffusionCoef
block = OPyC
d1 = 2.9e-8 # m^2/s
# 7.40285e8 = 1e-6 / (2.9e-8*exp(-291e3/8.3145/2073.15))
d1_function = 'if(t<720000,1,7.40285e8)'
q1 = 291e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Kr
[]
[]
[Debug]
show_var_residual_norms = true
show_var_residual = 'conc_Cs conc_Kr'
[]
[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 = 1e-22
nl_max_its = 50
l_tol = 1e-4
l_max_its = 50
start_time = 0.0
end_time = 1440000
num_steps = 1000
dt = 3600
dtmax = 3600
#dtmin = 3600
[]
[Postprocessors]
[release_Cs_inc]
type = SideIntegralMassFlux
variable = conc_Cs
boundary = exterior
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
execute_on = 'initial timestep_end'
[]
[released_Cs]
type = TimeIntegratedPostprocessor
value = release_Cs_inc
execute_on = 'initial timestep_end'
[]
[total_Cs]
type = ElementIntegralVariablePostprocessor
variable = conc_Cs
execute_on = 'initial'
[]
[x_Cs_released]
type = FractionalRelease
released = released_Cs
total = total_Cs
[]
[retained_Cs]
type = ElementIntegralVariablePostprocessor
variable = conc_Cs
[]
[release_Kr_inc]
type = SideIntegralMassFlux
variable = conc_Kr
boundary = exterior
arrhenius_prpty_name = arrhenius_diffusion_coef_Kr
execute_on = 'initial timestep_end'
[]
[released_Kr]
type = TimeIntegratedPostprocessor
value = release_Kr_inc
execute_on = 'initial timestep_end'
[]
[total_Kr]
type = ElementIntegralVariablePostprocessor
variable = conc_Kr
execute_on = 'initial'
[]
[x_Kr_released]
type = FractionalRelease
released = released_Kr
total = total_Kr
[]
[retained_Kr]
type = ElementIntegralVariablePostprocessor
variable = conc_Kr
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = false
exodus = true
[console]
type = Console
time_step_interval = 1
[]
[out]
type = CSV
execute_on = final
[]
[]
(assessment/TRISO/validation/AGR-34/Compacts/Sr/DTF/AGR-34_dtf_Sr.i)
[Variables]
[conc_Sr_dtf]
initial_condition = 0.0
[]
[]
[AuxVariables]
[Sr_dtf_diff_coef]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[mass_Sr_dtf_dt]
type = TimeDerivative
variable = conc_Sr_dtf
extra_vector_tags = 'ref'
[]
[mass_Sr_dtf]
type = ArrheniusDiffusion
variable = conc_Sr_dtf
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr_dtf
extra_vector_tags = 'ref'
[]
[mass_source_Sr_dtf]
type = SpeciesSourceRate
variable = conc_Sr_dtf
property_name = Sr_dtf_generation
block = 'fuel'
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[Sr_dtf_diff_coef]
type = MaterialRealAux
variable = Sr_dtf_diff_coef
property = arrhenius_diffusion_coef_Sr_dtf
execute_on = timestep_end
[]
[]
[BCs]
[freesurf_conc_Sr_dtf]
type = DirichletBC
variable = conc_Sr_dtf
boundary = exterior
value = 0.0
[]
[]
[Materials]
### Kernel Properties
[fuel_conc_Sr_dtf]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 2.2e-3 # m^2/s
q1 = 488e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr_dtf
[]
[mass_source_Sr_dtf_property]
type = SpeciesSourceMaterial
property_name = Sr_dtf_generation
kind = Sr
block = fuel
[]
### PyC properties
[IPyC_conc_Sr_dtf]
type = ArrheniusDiffusionCoef
block = PyC
d1 = 1.0e-6 # m^2/s
q1 = 0.0
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr_dtf
[]
[]
[Postprocessors]
### Release
[release_Sr_dtf_inc]
type = SideIntegralMassFlux
variable = conc_Sr_dtf
boundary = exterior
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr_dtf
execute_on = 'initial timestep_end'
[]
[released_Sr_dtf]
type = TimeIntegratedPostprocessor # computes time integration of value
value = release_Sr_dtf_inc
execute_on = 'initial timestep_end'
[]
[total_Sr_dtf]
type = ElementIntegralMaterialProperty
mat_prop = Sr_dtf_generation_total
block = 'fuel'
execute_on = 'initial timestep_end'
[]
[x_Sr_dtf_released]
type = FractionalRelease
released = released_Sr_dtf
total = total_Sr_dtf
execute_on = 'initial timestep_end'
[]
[retained_Sr_dtf]
type = ElementIntegralVariablePostprocessor
variable = conc_Sr_dtf
execute_on = 'initial timestep_end'
[]
[]
(assessment/TRISO/benchmark/IAEA_CRP-6/diffusion/case_2b/case_2b.i)
[GlobalParams]
order = SECOND
family = LAGRANGE
[]
[Mesh]
coord_type = RSPHERICAL
[gen]
type = TRISO1DMeshGenerator
elem_type = EDGE3
coordinates = '0 250e-6 350e-6 390e-6'
mesh_density = '50 30 15'
block_names = 'fuel buffer IPyC'
[]
[]
[Problem]
[]
[Variables]
[conc_Cs]
[]
[]
[ICs]
[conc_Cs]
type = ConstantIC
block = fuel
value = 1
variable = conc_Cs
[]
[]
[AuxVariables]
[temperature]
initial_condition = 1873.15
[]
[Cs_diff_coef]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[mass_Cs_dt]
type = TimeDerivative
variable = conc_Cs
[]
[mass_Cs]
type = ArrheniusDiffusion
variable = conc_Cs
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
temperature = temperature
[]
[]
[AuxKernels]
[Cs_diff_coef]
type = MaterialRealAux
variable = Cs_diff_coef
property = arrhenius_diffusion_coef_Cs
execute_on = timestep_end
[]
[]
[BCs]
[freesurf_conc_Cs]
type = DirichletBC
variable = conc_Cs
boundary = exterior
value = 0.0
[]
[]
[Materials]
[fuel_conc_Cs]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 5.6e-8 # m^2/s
q1 = 209e3 # J/mol
d2 = 5.2e-4
q2 = 362e3
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[buffer_conc_Cs]
type = ArrheniusDiffusionCoef
block = buffer
d1 = 1e-8 # m^2/s
q1 = 0 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[IPyC_conc_Cs]
type = ArrheniusDiffusionCoef
block = IPyC
d1 = 6.3e-8 # m^2/s
q1 = 222e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[]
[Debug]
show_var_residual_norms = true
show_var_residual = 'conc_Cs'
[]
[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 = 1e-20
nl_max_its = 50
l_tol = 1e-4
l_max_its = 50
start_time = 0.0
end_time = 720000
num_steps = 700
dt = 3600
dtmax = 3600
dtmin = 3600
[]
[Postprocessors]
[release_Cs_inc]
type = SideIntegralMassFlux
variable = conc_Cs
boundary = exterior
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
execute_on = 'initial timestep_end'
[]
[released_Cs]
type = TimeIntegratedPostprocessor
value = release_Cs_inc
execute_on = 'initial timestep_end'
[]
[total_Cs]
type = ElementIntegralVariablePostprocessor
variable = conc_Cs
execute_on = 'initial'
[]
[x_Cs_released]
type = FractionalRelease
released = released_Cs
total = total_Cs
[]
[retained_Cs]
type = ElementIntegralVariablePostprocessor
variable = conc_Cs
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = false
exodus = true
[console]
type = Console
time_step_interval = 1
[]
[out]
type = CSV
execute_on = final
[]
[]
(test/tests/fcci_ht9/eutectic_thickness/fcci_ht9_2.i)
# The 1D solution for diffusion from a boundary can be found in the Fick's law
# of diffusion article on Wikipedia. It involves an erfc and depends on x and
# time. The problem is a fixed boundary at a value of 1 diffusing into a medium
# with an initial condition of 0. The steep transient at the beginning of the
# simulation creates difficulty in achieving the exact solution in time.
# The coarse solution is provided below since the exact solution requires
# very small time steps. However, this test is not for the diffusion kernels,
# but is for the calculation of the thickness which depends on the mass flux
# out of the boundary.
# As a reference: The right_value of the exact solution at 0.05 seconds should
# be 0.003130805. Note that the analytical solution uses 2 as n0.
# With nx = 1000 and a dt = 0.0001 seconds, the right_value at 0.05 seconds
# is 0.003204029.
# Coarse Solution:
# time,right_flux,right_thickness,right_value
# 0,0,0,0
# 0.05,-0.02198902741339,-0.039603960396035,0.027761147109408
# 0.1,-0.047042907098583,-0.066678094093609,0.086877954478739
# 0.15,-0.062085212995918,-0.085529211700151,0.16467249924315
# 0.2,-0.06687731565628,-0.098994675562863,0.24832904509689
# 0.25,-0.065297810324883,-0.10889033536217,0.32993156418653
# 0.3,-0.06067196679197,-0.11636752517249,0.40571369947186
# 0.35,-0.054962463954337,-0.12216103161882,0.47434541122506
# 0.4,-0.049146161812706,-0.12674808272205,0.53570540971456
# 0.45,-0.04365218108893,-0.13044615422574,0.5902019612831
# 0.5,-0.038639137298981,-0.13347222128258,0.6384382198603
[Mesh]
[mesh]
type = GeneratedMeshGenerator
dim = 1
nx = 10
elem_type = EDGE3
[]
[]
[AuxVariables]
[thickness]
order = CONSTANT
family = MONOMIAL
[]
[]
[Variables]
[conc]
order = SECOND
family = LAGRANGE
initial_condition = 0.0
scaling = 1e-5
[]
[]
[AuxKernels]
[fcci_layer]
boundary = right
execute_on = timestep_end
method = 2
postproc_flux = right_flux
type = ThicknessLayerFCCI
variable = thickness
solubility_species = conc
[]
[]
[Kernels]
[mass_ie]
type = TimeDerivative
variable = conc
[]
[mass]
type = ArrheniusDiffusion
variable = conc
arrhenius_prpty_name = arr_diff
[]
[]
[BCs]
[left]
type = DirichletBC
variable = conc
boundary = left
value = 1
[]
[right]
type = DiffusionFluxBC
# Assuming D = 1 since it doesn't use a material property anywhere.
variable = conc
boundary = right
[]
[]
[Materials]
[arr_diff]
type = GenericConstantMaterial
prop_names = arr_diff
prop_values = 1.0
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
start_time = 0.0
end_time = 0.5
[TimeStepper]
type = ConstantDT
dt = 0.05
[]
[]
[Postprocessors]
[right_flux]
type = SideIntegralMassFlux
variable = conc
boundary = right
arrhenius_prpty_name = arr_diff
[]
[right_thickness]
type = SideAverageValue
variable = thickness
boundary = right
[]
[right_value]
type = AverageNodalVariableValue
boundary = right
variable = conc
[]
[]
[Outputs]
exodus = false
csv = true
[]
(examples/TRISO/accident_simulation/triso2D_accident_mortar.i)
# This example is 2D-RZ analysis of a TRISO fuel particle. Fully coupled
# heat transfer and solid mechanics, plus diffusion of the fission product
# species cesium (Cs) are simulated. The mesh includes contact surfaces
# between the buffer and IPyC layers to facilitate a gap opening between
# these layers. These surfaces are initially in mechanical contact but
# are assumed to have no strength in tension. A coarse mesh is used to
# provide a short run time.
# The calculation simulates fuel-life in three steps. The first step is an
# irradiation period, where constant power and a fixed particle surface
# temperature (1500 K) are assumed over a lifetime of 76 Ms (2.4 yrs).
# For the second step, fuel removal and storage are simulated by setting
# the reactor power and Cs source terms to zero, reducing the particle
# surface temperature to ambient (300 K), and then holding it
# for 100 days. A third and final step simulates accident
# behavior by increasing the particle surface temperature from ambient
# to 2073 K over 2 hrs, and then holding it at this elevated temperature
# for an additional 200 hrs. At the particle outer boundary, the Cs
# concentration is held at zero and the pressure at ambient during the
# entire simulation. The particle is assumed to be stress-free at an
# initial temperature of 1500 K.
#
# Details about this simulation are given in Section 4 of the following
# article: J. D. Hales, R. L. Williamson, S. R. Novascone, D. M. Perez,
# B. W. Spencer and G. Pastore, "Multidimensional multiphysics simulation
# of TRISO particle fuel", Journal of Nuclear Materials, Vol. 443, p. 531,
# 2013.
# This is a version using a thermomechanical mortar approach.
initial_fuel_density = 11000.0
[GlobalParams]
order = SECOND
family = LAGRANGE
displacements = 'disp_x disp_y'
flux_conversion_factor = 0.85
[]
[Mesh]
coord_type = RZ
[file]
type = FileMeshGenerator
file = triso2Dmed.e
[]
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
converge_on = 'disp_x disp_y temp conc'
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[temp]
initial_condition = 1500.0
[]
[conc]
initial_condition = 0.0
[]
[]
[AuxVariables]
[fission_rate]
block = fuel
order = CONSTANT
family = MONOMIAL
[]
[fluence]
order = CONSTANT
family = MONOMIAL
[]
[burnup]
block = fuel
order = CONSTANT
family = MONOMIAL
[]
[creep_xx]
order = CONSTANT
family = MONOMIAL
[]
[creep_yy]
order = CONSTANT
family = MONOMIAL
[]
[creep_zz]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[power_history]
type = PiecewiseLinear
x = '0 76e6 76.001e6'
y = '1 1 0'
[]
[temp_bc]
type = PiecewiseLinear
x = '0 76e6 76.001e6 84.641e6 84.6482e6'
y = '1500 1500 300 300 2073'
[]
[k_function]
type = PiecewiseLinear
x = '0 200e6'
y = '4e-37 4e-37'
[]
[d1_function]
type = ParsedFunction
expression = 'exp(t/4.5e25)'
[]
[d_gap]
type = PiecewiseLinear
x = '1500 2100'
y = '1e-14 1e-12'
[]
[integral_flux_error]
type = ParsedFunction
symbol_names = 'buffer_integral_flux IPyC_integral_flux'
symbol_values = 'buffer_integral_flux IPyC_integral_flux'
expression = 'IPyC_integral_flux + buffer_integral_flux'
[]
[]
[Physics/SolidMechanics/QuasiStatic]
generate_output = 'stress_xx stress_yy stress_zz stress_xy stress_yz stress_zx hydrostatic_stress'
strain = FINITE
incremental = true
add_variables = false
[default]
block = 'fuel buffer IPyC OPyC'
eigenstrain_names = 'thermal_strain swelling_strain'
extra_vector_tags = 'ref'
[]
[SiC]
block = 'SiC'
eigenstrain_names = 'thermal_strain'
extra_vector_tags = 'ref'
[]
[]
[Kernels]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temp
extra_vector_tags = 'ref'
block = 'fuel buffer IPyC SiC OPyC'
[]
[heat]
type = HeatConduction
variable = temp
extra_vector_tags = 'ref'
block = 'fuel buffer IPyC SiC OPyC'
[]
[heat_source]
type = NeutronHeatSource
variable = temp
block = fuel
energy_per_fission = 3.2e-11 # units of J/fission
fission_rate = fission_rate
extra_vector_tags = 'ref'
[]
[mass_ie]
type = TimeDerivative
variable = conc
extra_vector_tags = 'ref'
block = 'fuel buffer IPyC SiC OPyC'
[]
[mass]
type = ArrheniusDiffusion
variable = conc
extra_vector_tags = 'ref'
block = 'fuel buffer IPyC SiC OPyC'
[]
[mass_source]
type = BodyForce
variable = conc
function = power_history
value = 1.22e-5 # units of moles/m**3-s
block = fuel
extra_vector_tags = 'ref'
[]
[mass_decay]
type = Decay
variable = conc
radioactive_decay_constant = 7.297e-10 # units:(1/sec) The constant for Cesium
block = 'fuel buffer IPyC SiC OPyC'
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[fission_rate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
block = fuel
fission_rate_function = power_history
value = 3.89e19
execute_on = timestep_begin
[]
[fluence]
type = MaterialRealAux
property = fast_neutron_fluence
variable = fluence
[]
[burnup]
type = BurnupAux
variable = burnup
block = fuel
fission_rate = fission_rate
molecular_weight = 0.270 # units of kg/mole
execute_on = timestep_begin
density = ${initial_fuel_density}
[]
[creep_xx]
type = RankTwoAux
rank_two_tensor = creep_strain
variable = creep_xx
index_i = 0
index_j = 0
block = 'buffer IPyC SiC OPyC'
execute_on = timestep_end
[]
[creep_yy]
type = RankTwoAux
rank_two_tensor = creep_strain
variable = creep_yy
index_i = 1
index_j = 1
block = 'buffer IPyC SiC OPyC'
execute_on = timestep_end
[]
[creep_zz]
type = RankTwoAux
rank_two_tensor = creep_strain
variable = creep_zz
index_i = 2
index_j = 2
block = 'buffer IPyC SiC OPyC'
execute_on = timestep_end
[]
[]
[ThermalContactMortar]
[thermal]
secondary_variable = temp
primary_boundary = 15
secondary_boundary = 17
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'
gap_geometry_type = CYLINDER
min_gap = 1e-7
max_gap = 50e-6
roughness_coef = 0.0
correct_edge_dropping = true
[]
[]
[Contact]
[pellet_clad_mechanical]
primary = 15
secondary = 17
model = frictionless
formulation = mortar
c_normal = 1.0e8
correct_edge_dropping = true
[]
[]
[ThermalContact]
[cesium_contact]
type = GapHeatTransfer
variable = conc
primary = 15
secondary = 17
tangential_tolerance = 1e-6
gap_conductivity_function = d_gap
gap_conductivity_function_variable = temp
appended_property_name = _conc
emissivity_primary = 0
emissivity_secondary = 0
quadrature = true
[]
[]
[BCs]
# pin particle along symmetry planes
[no_disp_x]
type = DirichletBC
variable = disp_x
boundary = xzero
value = 0.0
extra_vector_tags = 'ref'
[]
[no_disp_y]
type = DirichletBC
variable = disp_y
boundary = yzero
value = 0.0
extra_vector_tags = 'ref'
[]
# fix temperature on free surface
[freesurf_temp]
type = FunctionDirichletBC
variable = temp
boundary = exterior
function = temp_bc
extra_vector_tags = 'ref'
[]
# fix concentration on free surface
[freesurf_conc]
type = DirichletBC
variable = conc
boundary = exterior
value = 0.0
extra_vector_tags = 'ref'
[]
[PlenumPressure] # apply plenum pressure on clad inner walls and pellet surfaces
[plenumPressure]
boundary = BufferGapVol
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 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 = 5e17
[]
[fission_gas_release] # Sifgrs fission gas release mode
type = UO2Sifgrs
block = fuel
temperature = temp
fission_rate = fission_rate # coupling to fission_rate aux variable
grain_radius_const = 5.0e-6
[]
[fuel_thermal]
type = UO2Thermal
thermal_conductivity_model = FINK_LUCUTA
block = fuel
temperature = temp
burnup = burnup
initial_porosity = 0.0
[]
[fuel_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = MATPRO
block = fuel
temperature = temp
burnup = burnup
eigenstrain_name = 'swelling_strain'
initial_fuel_density = ${initial_fuel_density}
[]
[fuel_stress]
type = ComputeFiniteStrainElasticStress
block = 'fuel'
[]
[fuel_elasticity]
type = ComputeIsotropicElasticityTensor
block = fuel
youngs_modulus = 2.2e11
poissons_ratio = .345
[]
[fuel_thermal_strain]
type = ComputeThermalExpansionEigenstrain
block = fuel
thermal_expansion_coeff = 10e-6
stress_free_temperature = 1500.0
eigenstrain_name = thermal_strain
temperature = temp
[]
[fuel_den]
type = StrainAdjustedDensity
block = fuel
strain_free_density = ${initial_fuel_density} # kg/m^3
[]
[fuel_conc]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 5.6e-8 # m^2/s
q1 = 209.0e+3 # J/mol
d2 = 5.2e-4 # m^2/s
q2 = 362.0e+3 # J/mol
gas_constant = 8.3143 # J/K-mol
temperature = temp
[]
[buffer_eigenstrain]
type = PyCIrradiationEigenstrain
block = buffer
pyc_type = buffer
eigenstrain_name = 'swelling_strain'
[]
[buffer_thermal_strain]
type = ComputeThermalExpansionEigenstrain
block = buffer
thermal_expansion_coeff = 5.65e-6
stress_free_temperature = 1500.0
eigenstrain_name = thermal_strain
temperature = temp
[]
[buffer_elasticity]
type = ComputeIsotropicElasticityTensor
block = buffer
youngs_modulus = 2e10
poissons_ratio = .23
[]
[buffer_stress]
type = PyCCreep
block = buffer
temperature = temp
[]
[buffer_temp]
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 = 1000.0 #kg/m^3
block = buffer
[]
[buffer_conc]
type = ArrheniusDiffusionCoef
block = buffer
d1 = 1.0e-12 # m^2/s
q1 = 0.0
d2 = 0.0
q2 = 0.0
gas_constant = 8.3143 # J/K-mol
temperature = temp
[]
[normal_vectors_triso]
type = NormalVectorsTRISO
block = 'IPyC OPyC buffer'
[]
[IPyC_eigenstrain]
type = PyCIrradiationEigenstrain
block = IPyC
pyc_type = dense
eigenstrain_name = 'swelling_strain'
[]
[IPyC_thermal_strain]
type = ComputeThermalExpansionEigenstrain
block = IPyC
thermal_expansion_coeff = 5.65e-6
stress_free_temperature = 1500.0
eigenstrain_name = thermal_strain
temperature = temp
[]
[IPyC_elasticity]
type = ComputeIsotropicElasticityTensor
block = IPyC
youngs_modulus = 4.74e10
poissons_ratio = .23
[]
[IPyC_disp]
type = PyCCreep
block = 'IPyC OPyC'
temperature = temp
[]
[IPyC_temp]
type = HeatConductionMaterial
block = 'IPyC OPyC'
thermal_conductivity = 4.0
specific_heat = 720.0
[]
[IPyC_den]
type = StrainAdjustedDensity
block = 'IPyC OPyC'
strain_free_density = 1900.0
[]
[IPyC_conc]
type = ArrheniusDiffusionCoef
block = IPyC
d1 = 6.3e-8
q1 = 222.0e+3
d2 = 0.0
q2 = 0.0
gas_constant = 8.3143 # J/K-mol
temperature = temp
[]
[SiC_thermal_strain]
type = ComputeThermalExpansionEigenstrain
block = SiC
thermal_expansion_coeff = 4.9e-6
stress_free_temperature = 1500.0
eigenstrain_name = thermal_strain
temperature = temp
[]
[SiC_elasticity]
type = ComputeIsotropicElasticityTensor
block = SiC
youngs_modulus = 3.4e11
poissons_ratio = .13
[]
[SiC_creep]
type = MonolithicSiCCreepUpdate
block = SiC
temperature = temp
k_function = k_function
[]
[SiC_stress]
type = ComputeMultipleInelasticStress
block = SiC
tangent_operator = elastic
inelastic_models = 'SiC_creep'
[]
[SiC_temp]
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 = 3180.0 # kg/m^3
block = SiC
[]
[SiC_conc]
type = ArrheniusDiffusionCoef
block = SiC
d1 = 5.5e-14 # m^2/s
d1_function = d1_function
d1_function_variable = fluence
q1 = 125.0e+3 # J/mol
d2 = 1.6e-2 # m^2/s
q2 = 514.0e+3 # J/mol
gas_constant = 8.3143 # J/K-mol
temperature = temp
[]
[OPyC_eigenstrain]
type = PyCIrradiationEigenstrain
block = OPyC
pyc_type = dense
eigenstrain_name = 'swelling_strain'
[]
[OPyC_thermal_strain]
type = ComputeThermalExpansionEigenstrain
block = OPyC
thermal_expansion_coeff = 5.65e-6
stress_free_temperature = 1500.0
eigenstrain_name = thermal_strain
temperature = temp
[]
[OPyC_elasticity]
type = ComputeIsotropicElasticityTensor
block = OPyC
youngs_modulus = 4.74e10
poissons_ratio = .23
[]
[OPyC_conc]
type = ArrheniusDiffusionCoef
block = OPyC
d1 = 6.3e-8 # m^2/s
q1 = 222.0e+3 # J/mol
d2 = 0.0
q2 = 0.0
gas_constant = 8.3143 # J/K-mol
temperature = temp
[]
[]
[Dampers]
[temp]
type = MaxIncrement
variable = temp
max_increment = 50
[]
[]
[Debug]
show_var_residual_norms = true
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package -mat_mffd_err -pc_factor_shift_type -pc_factor_shift_amount'
petsc_options_value = 'lu superlu_dist 1e-5 NONZERO 1e-14'
snesmf_reuse_base = false
line_search = 'none'
nl_rel_tol = 5e-4
nl_abs_tol = 1e-10
nl_max_its = 20
l_max_its = 8
start_time = 0.0
end_time = 85.3682e6
dt = 100
dtmax = 2e6
dtmin = 1
[TimeStepper]
type = IterationAdaptiveDT
dt = 100
optimal_iterations = 10
growth_factor = 1.5
linear_iteration_ratio = 100
time_t = '0 76e6 76.001e6 84.641e6 84.6482e6'
time_dt = '20 20 20 20 20'
[]
[Predictor]
type = SimplePredictor
scale = 0.5
skip_times_old = '0 76e6 76.001e6 84.641e6 84.6482e6'
[]
[]
[Outputs]
perf_graph = true
exodus = true
[console]
type = Console
max_rows = 25
[]
[csv]
type = CSV
sync_times = '100 6308007 75696087'
sync_only = true
[]
[]
[Postprocessors]
[Cs_release]
type = SideIntegralMassFlux
variable = conc
boundary = exterior
execute_on = timestep_end
[]
[dt]
type = TimestepSize
execute_on = timestep_end
[]
[fis_gas_produced] # fission gas produced (moles)
type = ElementIntegralFisGasGeneratedSifgrs
block = fuel
execute_on = 'initial linear nonlinear timestep_begin timestep_end'
[]
[fis_gas_released] # fission gas released to plenum (moles)
type = ElementIntegralFisGasReleasedSifgrs
block = fuel
execute_on = 'initial linear nonlinear timestep_begin timestep_end'
[]
[volumeTotal]
type = InternalVolume
boundary = exterior
execute_on = 'initial timestep_end'
[]
[volumeFuel]
type = InternalVolume
boundary = fuel
execute_on = 'initial timestep_end'
[]
[volumeGas]
type = InternalVolume
boundary = BufferGapVol
# ro = 3.125e-4
# ri = 2.125e-4
# vb = 4/3*pi*(ro^3-ri^3) = 8.76e-11
# buffer density = 1000
# PyC density = 1900
# fill ratio = 10/19
# vb*10/19 = 4.6e-11
# Must remove 4.6e-11 m^3 from the volume
addition = -4.6e-11
execute_on = 'initial linear nonlinear timestep_begin timestep_end'
[]
[volumeBufferShell]
type = InternalVolume
boundary = BufferGapVol
execute_on = 'initial timestep_end'
[]
[ave_temp_interior]
type = SideAverageValue
boundary = BufferGapVol
variable = temp
execute_on = 'initial linear nonlinear timestep_begin timestep_end'
[]
# Postprocessors for CO production
[total_fission_rate]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = fuel
energy_per_fission = 1.0
execute_on = 'initial linear nonlinear timestep_begin timestep_end'
[]
[total_fissions]
type = TimeIntegratedPostprocessor
value = total_fission_rate
execute_on = 'initial linear nonlinear timestep_begin timestep_end'
[]
[avg_surface_temp]
type = SideAverageValue
variable = temp
boundary = exterior
execute_on = 'initial linear nonlinear timestep_begin timestep_end'
[]
[time_int_surf_temp]
type = TimeIntegratedPostprocessor
value = avg_surface_temp
execute_on = 'initial linear nonlinear timestep_begin timestep_end'
[]
[co_production]
type = CarbonMonoxideProduction
total_fissions = total_fissions
time_integrated_triso_temperature = time_int_surf_temp
initial_enrichment = 0.14029
execute_on = 'initial linear nonlinear timestep_begin timestep_end'
[]
[num_lin_it]
type = NumLinearIterations
[]
[num_nonlin_it]
type = NumNonlinearIterations
[]
[tot_lin_it]
type = CumulativeValuePostprocessor
postprocessor = num_lin_it
[]
[tot_nonlin_it]
type = CumulativeValuePostprocessor
postprocessor = num_nonlin_it
[]
[alive_time]
type = PerfGraphData
section_name = Root
data_type = TOTAL
[]
[buffer_avg_conc]
type = SideAverageValue
variable = conc
boundary = 17
[]
[IPyC_avg_conc]
type = SideAverageValue
variable = conc
boundary = 15
[]
[buffer_integral_flux]
type = SideIntegralMassFlux
variable = conc
boundary = 17
[]
[IPyC_integral_flux]
type = SideIntegralMassFlux
variable = conc
boundary = 15
[]
[integral_flux_error]
type = FunctionValuePostprocessor
function = integral_flux_error
[]
[integral_Cs_release]
type = TimeIntegratedPostprocessor
value = Cs_release
[]
[Cs_production]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 1.22e-5 # units of moles/m**3-s
[]
[time_integral_Cs_production]
type = TimeIntegratedPostprocessor
value = Cs_production
[]
[volumeFuel_initial]
type = InternalVolume
boundary = fuel
execute_on = initial
[]
[integral_Cs_production]
type = ParsedPostprocessor
pp_names = 'time_integral_Cs_production volumeFuel_initial'
expression = 'time_integral_Cs_production * volumeFuel_initial'
[]
[Cs_release_fraction]
type = ParsedPostprocessor
pp_names = 'integral_Cs_release integral_Cs_production'
expression = 'integral_Cs_release / integral_Cs_production'
[]
[]
[VectorPostprocessors]
[temperaturevpp]
type = SideValueSampler
boundary = 11
variable = temp
sort_by = x
outputs = 'csv'
use_displaced_mesh = true
[]
[]
(assessment/TRISO/validation/AGR-34/SharedFiles/capsule_Ag.i)
[InterfaceKernels]
[fuel_matrix]
type = SorptionIsothermGapInterface
variable = conc_Ag
neighbor_var = conc_Ag
partial_pressure_name = partial_pressure
sorption_penalty = 1e5
diffusivity = arrhenius_diffusion_coef_Ag
use_flux_penalty = true
flux_penalty = 1e3
boundary = 'DRV_IR'
[]
[matrix_graphite]
type = SorptionIsothermGapInterface
variable = conc_Ag
neighbor_var = conc_Ag
partial_pressure_name = partial_pressure
sorption_penalty = 1e5
diffusivity = arrhenius_diffusion_coef_Ag
use_flux_penalty = true
flux_penalty = 1e3
boundary = 'IR_OR'
[]
[graphite_sink]
type = SorptionIsothermGapInterface
variable = conc_Ag
neighbor_var = conc_Ag
partial_pressure_name = partial_pressure
sorption_penalty = 1e5
diffusivity = arrhenius_diffusion_coef_Ag
use_flux_penalty = true
flux_penalty = 1e3
boundary = 'OR_SR'
[]
[]
[Variables]
[conc_Ag]
scaling = 1e12 #1e18
[]
[]
[AuxVariables]
[Ag_diff_coef]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[mass_Ag_dt]
type = TimeDerivative
variable = conc_Ag
extra_vector_tags = 'ref'
[]
[mass_Ag]
type = ArrheniusDiffusion
variable = conc_Ag
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
extra_vector_tags = 'ref'
[]
[conc_source_dtf]
type = BodyForce
variable = conc_Ag
block = 'DTF'
function = DTF_MassIsotope
extra_vector_tags = 'ref'
[]
[conc_source_drv]
type = BodyForce
variable = conc_Ag
block = 'DRV'
function = DRV_MassIsotope
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[Ag_diff_coef]
type = MaterialRealAux
variable = Ag_diff_coef
property = arrhenius_diffusion_coef_Ag
execute_on = timestep_end
[]
[]
[BCs]
[freesurf_conc_Ag]
type = DirichletBC
variable = conc_Ag
boundary = 'right'
value = 0.0
extra_vector_tags = 'ref'
[]
[]
[Materials]
[matrix_conc_Ag]
type = ArrheniusDiffusionCoef
d1 = 1.6 # m^2/s
q1 = 258000 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[graphite_conc_Ag]
type = ArrheniusDiffusionCoef
d1 = 1.38e-2 # m^2/s
q1 = 226000 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[Ag_matrix_partial_pressure]
type = SorptionPartialPressure
A = 19.33
B = -47290
D = 1.518
E = 4338
d1 = 3.397
d2 = 6.15e-4
unit_scale = 1e3 # convert from mol to mmol
density = density # convert from mmol/m^3 to mmol/kg
concentration = conc_Ag
temperature = temperature
output_properties = partial_pressure
[]
[Ag_graphite_partial_pressure]
type = SorptionPartialPressure
A = 24
B = -35700
D = -1.56
E = 6120
d1 = 2.04
d2 = 1.79e-3
unit_scale = 1e3 # convert from mol to mmol
density = density # convert from mmol/m^3 to mmol/kg
concentration = conc_Ag
temperature = temperature
output_properties = partial_pressure
[]
[]
[Postprocessors]
[release_Ag_inc_pebble]
type = SideIntegralMassFlux
variable = conc_Ag
boundary = right
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
execute_on = 'initial timestep_end'
[]
[released_Ag]
type = TimeIntegratedPostprocessor
value = release_Ag_inc_pebble
execute_on = 'initial timestep_end'
[]
[retained_Ag]
type = ElementIntegralVariablePostprocessor
variable = conc_Ag
[]
# check partial pressure equality and integral flux conservation from DRV to IR
[flux_DRV_outer]
type = SideDiffusiveFluxIntegral
boundary = 'DRV_IR'
variable = conc_Ag
diffusivity = arrhenius_diffusion_coef_Ag
[]
[flux_IR_inner]
type = SideDiffusiveFluxIntegral
boundary = 'IR_DRV'
variable = conc_Ag
diffusivity = arrhenius_diffusion_coef_Ag
[]
[flux_DRV_IR_error]
type = FunctionValuePostprocessor
function = flux_DRV_IR_error
[]
# check partial pressure equality and integral flux conservation from IR to OR
[flux_IR_outer]
type = SideDiffusiveFluxIntegral
boundary = 'IR_OR'
variable = conc_Ag
diffusivity = arrhenius_diffusion_coef_Ag
[]
[flux_OR_inner]
type = SideDiffusiveFluxIntegral
boundary = 'OR_IR'
variable = conc_Ag
diffusivity = arrhenius_diffusion_coef_Ag
[]
[flux_IR_OR_error]
type = FunctionValuePostprocessor
function = flux_IR_OR_error
[]
# check partial pressure equality and integral flux conservation from OR to SR
[flux_OR_outer]
type = SideDiffusiveFluxIntegral
boundary = 'OR_SR'
variable = conc_Ag
diffusivity = arrhenius_diffusion_coef_Ag
[]
[flux_SR_inner]
type = SideDiffusiveFluxIntegral
boundary = 'SR_OR'
variable = conc_Ag
diffusivity = arrhenius_diffusion_coef_Ag
[]
[flux_OR_SR_error]
type = FunctionValuePostprocessor
function = flux_OR_SR_error
[]
[]
[VectorPostprocessors]
[Ag_conc]
type = LineValueSampler
variable = conc_Ag
start_point = '0.0 0 0.0'
num_points = 1000
use_displaced_mesh = false
execute_on = final
sort_by = x
outputs = line_plot_Ag
[]
[]
[Outputs]
[line_plot_Ag]
type = CSV
execute_on = 'FINAL'
time_step_interval = 1
create_final_symlink = true
file_base = capsule_radial
[]
[]
(assessment/TRISO/validation/AGR-1/AGR-1_Kr.i)
[Variables]
[conc_Kr]
initial_condition = 0.0
[]
[]
[AuxVariables]
[Kr_diff_coef]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[mass_Kr_dt]
type = TimeDerivative
variable = conc_Kr
[]
[mass_Kr]
type = ArrheniusDiffusion
variable = conc_Kr
arrhenius_prpty_name = arrhenius_diffusion_coef_Kr
extra_vector_tags = 'ref'
[]
[mass_source_Kr]
type = SpeciesSourceRate
variable = conc_Kr
property_name = Kr_generation
block = 'fuel OPyC'
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[Kr_diff_coef]
type = MaterialRealAux
variable = Kr_diff_coef
property = arrhenius_diffusion_coef_Kr
execute_on = timestep_end
[]
[]
[BCs]
# fix concentration on free surface
[freesurf_conc_Kr]
type = DirichletBC
variable = conc_Kr
boundary = exterior
value = 0.0
[]
[]
[Materials]
# # Arrhenius diffusion coefficients for kernel, PyC, and SiC
# # come from IAEA TECDOC-978, French parameters.
# [fuel_conc_Kr]
# type = ParsedMaterial
# block = fuel
# property_name = arrhenius_diffusion_coef_Kr
# coupled_variables = 'temperature'
# constant_names = 'R D1_low Q1_low D1 Q1 D2 Q2 switch'
# constant_expressions = '8.3145 1.3e-12 126e3 8.8e-15 54e3 6e-1 480e3 1773.15'
# expression = 'if(temperature<switch,D1_low*exp(-Q1_low/(R*temperature)),D1*exp(-Q1/(R*temperature))+D2*exp(-Q2/(R*temperature)))'
# []
# [fuel_conc_Kr_dT]
# type = ParsedMaterial
# block = fuel
# property_name = arrhenius_diffusion_coef_Kr_dT
# coupled_variables = 'temperature'
# constant_names = 'R D1_low Q1_low D1 Q1 D2 Q2 switch'
# constant_expressions = '8.3145 1.3e-12 126e3 8.8e-15 54e3 6e-1 480e3 1773.15'
# expression = 'if(temperature<switch,D1_low*exp(-Q1_low/(R*temperature))*Q1_low/(R*temperature*temperature),D1*exp(-Q1/(R*temperature))*Q1/(R*temperature*temperature)+D2*exp(-Q2/(R*temperature))*Q2/(R*temperature*temperature))'
# []
# [mass_source_Kr_property]
# type = SpeciesSourceMaterial
# property_name = Kr_generation
# kind = Kr
# block = fuel
# []
[fuel_conc_Kr]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 8.8e-15 # m^2/s
q1 = 54e3 # J/mol
d2 = 6.0e-1
q2 = 480e3
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Kr
[]
[mass_source_Kr_property]
type = SpeciesSourceMaterial
block = fuel
property_name = Kr_generation
kind = custom
additional_function = '0.002717/6.022e23'
additional_function_property = fission_rate
[]
### Buffer Properties
[buffer_conc_Kr]
type = ArrheniusDiffusionCoef
block = buffer
d1 = 1e-8 # m^2/s
q1 = 0.0
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Kr
[]
### IPyC properties
[IPyC_conc_Kr]
type = ArrheniusDiffusionCoef
block = IPyC
d1 = 2.9e-8 # m^2/s
q1 = 291e3 # J/mol
d2 = 2e5 # m^2/s
q2 = 923e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Kr
[]
### SiC properties
[SiC_conc_Kr]
type = ParsedMaterial
block = SiC
property_name = arrhenius_diffusion_coef_Kr
coupled_variables = 'temperature'
# Switching temperature between low and high correlations is given as 1673.15 K in
# INL/EXT-16-39548. Here, we use 1626 since that gives continuity between
# correlations and is the value used in PARFUME.
constant_names = 'R D1_low Q1_low D1 Q1 switch'
constant_expressions = '8.3145 8.6e-10 326e3 3.7e1 657e3 2e6'
expression = 'if(temperature<switch,D1_low*exp(-Q1_low/(R*temperature)),D1*exp(-Q1/(R*temperature)))'
[]
[SiC_conc_Kr_dT]
type = ParsedMaterial
block = SiC
property_name = arrhenius_diffusion_coef_Kr_dT
coupled_variables = 'temperature'
# Switching temperature between low and high correlations is given as 1673.15 K in
# INL/EXT-16-39548. Here, we use 1626 since that gives continuity between
# correlations and is the value used in PARFUME.
constant_names = 'R D1_low Q1_low D1 Q1 switch'
constant_expressions = '8.3145 8.6e-10 326e3 3.7e1 657e3 2e6'
expression = 'if(temperature<switch,D1_low*exp(-Q1_low/(R*temperature))*Q1_low/(R*temperature*temperature),D1*exp(-Q1/(R*temperature))*Q1/(R*temperature*temperature))'
[]
### OPyC properties
[OPyC_conc_Kr]
type = ArrheniusDiffusionCoef
block = OPyC
d1 = 2.9e-8 # m^2/s
q1 = 291e3 # J/mol
d2 = 2e5 # m^2/s
q2 = 923e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Kr
[]
[mass_source_Kr_property_OPyC]
type = SpeciesSourceMaterial
property_name = Kr_generation
kind = Kr
block = OPyC
#value = impurities * vol_kernel / vol_opyc
#value = 1.59e-6 * 4.07e-11 / 9.16e-11 # for UCO
#value = 1.57e-6 * 6.85e-11 / 1.18e-10 # for UO2
value = ${mass_source_property_OPyC}
[]
[]
[Postprocessors]
[release_Kr_inc]
type = SideIntegralMassFlux
variable = conc_Kr
boundary = exterior
arrhenius_prpty_name = arrhenius_diffusion_coef_Kr
execute_on = 'initial timestep_end'
[]
[released_Kr]
type = TimeIntegratedPostprocessor
value = release_Kr_inc
execute_on = 'initial timestep_end'
[]
[total_Kr]
type = ElementIntegralMaterialProperty
mat_prop = Kr_generation_total
block = 'fuel OPyC'
execute_on = 'initial timestep_end'
[]
[x_Kr_released]
type = FractionalRelease
released = released_Kr
total = total_Kr
execute_on = 'initial timestep_end'
[]
[x_Kr_released_safety]
type = FractionalRelease
released = released_Kr
total = total_Kr
execute_on = 'initial timestep_end'
start_time = 55209600
safety_fraction_type = net
[]
[retained_Kr]
type = ElementIntegralVariablePostprocessor
variable = conc_Kr
execute_on = 'initial timestep_end'
[]
[]
(assessment/TRISO/validation/AGR-2/AGR-2_Ag_Microstructure.i)
[Variables]
[conc_Ag]
initial_condition = 0.0
[]
[]
[AuxVariables]
[Ag_diff_coef]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[mass_Ag_dt]
type = TimeDerivative
variable = conc_Ag
[]
[mass_Ag]
type = ArrheniusDiffusion
variable = conc_Ag
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
extra_vector_tags = 'ref'
[]
[mass_source_Ag]
type = SpeciesSourceRate
variable = conc_Ag
property_name = Ag_generation
block = 'fuel OPyC'
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[Ag_diff_coef]
type = MaterialRealAux
variable = Ag_diff_coef
property = arrhenius_diffusion_coef_Ag
execute_on = timestep_end
[]
[]
[BCs]
[freesurf_conc_Ag]
type = DirichletBC
variable = conc_Ag
boundary = exterior
value = 0.0
[]
[]
[Materials]
# Arrhenius diffusion coefficients for kernel, PyC, and SiC
# come from IAEA TECDOC-978, French parameters.
[fuel_conc_Ag]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 6.7e-9 # m^2/s
q1 = 165e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[mass_source_Ag_property]
type = SpeciesSourceMaterial
property_name = Ag_generation
kind = Ag
block = fuel
[]
### Buffer Properties
[buffer_conc_Ag]
type = ArrheniusDiffusionCoef
block = buffer
d1 = 1e-8 # m^2/s
q1 = 0.0
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
### IPyC properties
[IPyC_conc_Ag]
type = ArrheniusDiffusionCoef
block = IPyC
d1 = 5.3e-9 # m^2/s
q1 = 154e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
### SiC properties
[SiC_conc_Ag]
type = ArrheniusDiffusionCoefMicrostructureIrradiation
block = SiC
scalar = 10
d1 = 6.88e-10 # m^2/s
d1_coef = -5.10e-4 # m/s
q1 = 211e3 # J/mol
q1_coef = 3.82e9 # J/mol/m
grain_minor_axis_length = 0.4e-6 # m
temperature = temperature # K
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
### OPyC properties
[OPyC_conc_Ag]
type = ArrheniusDiffusionCoef
block = OPyC
d1 = 5.3e-9 # m^2/s
q1 = 154e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[mass_source_Ag_property_OPyC]
type = SpeciesSourceMaterial
property_name = Ag_generation
kind = Ag
block = OPyC
#value = impurities * vol_kernel / vol_opyc
#value = 1.59e-6 * 4.07e-11 / 9.16e-11 # for UCO
#value = 1.57e-6 * 6.85e-11 / 1.18e-10 # for UO2
value = ${mass_source_property_OPyC}
[]
[]
[Postprocessors]
[release_Ag_inc]
type = SideIntegralMassFlux
variable = conc_Ag
boundary = exterior
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
execute_on = 'initial timestep_end'
[]
[released_Ag]
type = TimeIntegratedPostprocessor
value = release_Ag_inc
execute_on = 'initial timestep_end'
[]
[total_Ag]
type = ElementIntegralMaterialProperty
mat_prop = Ag_generation_total
block = 'fuel OPyC'
execute_on = 'initial timestep_end'
[]
[x_Ag_released]
type = FractionalRelease
released = released_Ag
total = total_Ag
execute_on = 'initial timestep_end'
[]
[x_Ag_released_safety]
type = FractionalRelease
released = released_Ag
total = total_Ag
execute_on = 'initial timestep_end'
start_time = 50284800
safety_fraction_type = net
[]
[retained_Ag]
type = ElementIntegralVariablePostprocessor
variable = conc_Ag
execute_on = 'initial timestep_end'
[]
[]
(assessment/TRISO/benchmark/IAEA_CRP-6/diffusion/case_1a/case_1a.i)
[GlobalParams]
order = SECOND
family = LAGRANGE
[]
[Mesh]
coord_type = RSPHERICAL
[gen]
type = GeneratedMeshGenerator
dim = 1
elem_type = EDGE3
nx = 50
xmax = 250e-6
[]
[]
[Problem]
[]
[Variables]
[conc_Cs]
initial_condition = 1
[]
[]
[AuxVariables]
[temperature]
initial_condition = 1473.15
[]
[Cs_diff_coef]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[mass_Cs_dt]
type = TimeDerivative
variable = conc_Cs
[]
[mass_Cs]
type = ArrheniusDiffusion
variable = conc_Cs
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
temperature = temperature
[]
[]
[AuxKernels]
[Cs_diff_coef]
type = MaterialRealAux
variable = Cs_diff_coef
property = arrhenius_diffusion_coef_Cs
execute_on = timestep_end
[]
[]
[BCs]
[freesurf_conc_Cs]
type = DirichletBC
variable = conc_Cs
boundary = right
value = 0.0
[]
[]
[Materials]
[fuel_conc_Cs]
type = ArrheniusDiffusionCoef
d1 = 5.6e-8 # m^2/s
q1 = 209e3 # J/mol
d2 = 5.2e-4
q2 = 362e3
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[]
[Debug]
show_var_residual_norms = true
show_var_residual = 'conc_Cs'
[]
[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 = 1e-20
nl_max_its = 50
l_tol = 1e-4
l_max_its = 50
start_time = 0.0
end_time = 720000
num_steps = 700
dt = 3600
dtmax = 3600
dtmin = 3600
[]
[Postprocessors]
[release_Cs_inc]
type = SideIntegralMassFlux
variable = conc_Cs
boundary = right
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
execute_on = 'initial timestep_end'
[]
[released_Cs]
type = TimeIntegratedPostprocessor
value = release_Cs_inc
execute_on = 'initial timestep_end'
[]
[total_Cs]
type = ElementIntegralVariablePostprocessor
variable = conc_Cs
execute_on = 'initial'
[]
[x_Cs_released]
type = FractionalRelease
released = released_Cs
total = total_Cs
[]
[retained_Cs]
type = ElementIntegralVariablePostprocessor
variable = conc_Cs
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = false
exodus = true
[console]
type = Console
time_step_interval = 1
[]
[out]
type = CSV
execute_on = final
[]
[]
(test/tests/species_source/custom_source.i)
#
# This test checks whether the species source computed using custom
# input is functioning as intended. The amount of mass produced in
# SpeciesSourceMaterial is checked against the amount computed through
# a ParsedMaterial.
#
# If correct, the 'diff' Postprocessor will have a value close to zero,
# and the 'check_rate' Postprocessor will be one.
#
# In addition, the total amount produced is also checked. The 'check_total'
# Postprocessor should report a value of one.
#
[GlobalParams]
initial_enrichment = 0.2
[]
[Mesh]
coord_type = RSPHERICAL
[gen]
type = GeneratedMeshGenerator
dim = 1
xmin = 0
nx = 50
[]
[]
[Variables]
[conc]
[]
[]
[AuxVariables]
[temperature]
initial_condition = 1000
[]
[]
[Kernels]
[conc_dt]
type = TimeDerivative
variable = conc
[]
[conc_diffusion]
type = ArrheniusDiffusion
variable = conc
arrhenius_prpty_name = diff_coef
[]
[conc_source]
type = SpeciesSourceRate
variable = conc
property_name = conc_generation
[]
[]
[BCs]
[conc]
type = FunctionDirichletBC
variable = conc
boundary = 'right'
function = 0
[]
[]
[Functions]
[fred]
type = ParsedFunction
expression = 't/6.022e23'
[]
[]
[Materials]
[dummy]
type = GenericFunctionMaterial
prop_names = dummy
prop_values = 'if(t<=10000,1.1819e-8,0)'
[]
[fission_rate]
type = GenericFunctionMaterial
prop_names = fission_rate
prop_values = 'if(t<=10000,1e19,0)'
[]
[diff_coef]
type = ArrheniusDiffusionCoef
temperature = temperature
d1 = 1e-6
q1 = 100e3
arrhenius_prpty_name = diff_coef
[]
[conc_generation]
type = SpeciesSourceMaterial
property_name = conc_generation
kind = custom
additional_function = fred
additional_function_property = dummy
[]
[conc_generation_exact]
type = ParsedMaterial
property_name = conc_generation_exact
material_property_names = 'dummy fission_rate'
constant_names = 'avo'
constant_expressions = '6.02214076e23'
expression = 'b:=dummy/avo;
if(fission_rate>0,b*fission_rate,0)'
[]
[]
[Executioner]
type = Transient
num_steps = 11
dt = 1000
automatic_scaling = true
[]
[Postprocessors]
[rate]
type = ElementIntegralMaterialProperty
mat_prop = conc_generation
execute_on = 'initial timestep_end'
[]
[rate_exact]
type = ElementIntegralMaterialProperty
mat_prop = conc_generation_exact
execute_on = 'initial timestep_end'
[]
[diff]
type = DifferencePostprocessor
value1 = rate
value2 = rate_exact
outputs = console
execute_on = 'initial timestep_end'
[]
[check_rate]
type = FractionalRelease
released = rate
total = rate_exact
execute_on = 'initial timestep_end'
[]
[total_direct]
type = ElementIntegralMaterialProperty
mat_prop = conc_generation_total
execute_on = 'initial timestep_end'
[]
[total_integrated]
type = TimeIntegratedPostprocessor
value = rate
execute_on = 'initial timestep_end'
[]
[check_total]
type = FractionalRelease
released = total_direct
total = total_integrated
execute_on = 'initial timestep_end'
[]
[mass_flux]
type = SideIntegralMassFlux
variable = conc
boundary = right
arrhenius_prpty_name = diff_coef
execute_on = 'initial timestep_end'
[]
[integrated_flux]
type = TimeIntegratedPostprocessor
value = mass_flux
execute_on = 'initial timestep_end'
[]
[fraction]
type = FractionalRelease
released = integrated_flux
total = total_direct
execute_on = 'initial timestep_end'
[]
[fraction_safety_net]
type = FractionalRelease
released = integrated_flux
total = total_direct
start_time = 1000
stop_time = 10000
safety_fraction_type = net
execute_on = 'initial timestep_end'
[]
[fraction_safety_total]
type = FractionalRelease
released = integrated_flux
total = total_direct
start_time = 1000
safety_fraction_type = total
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
csv = true
[]
(examples/TRISO/pebble/3D_pebble_with_failed_particles.i)
[GlobalParams]
order = FIRST
family = LAGRANGE
flux_conversion_factor = 0.85
energy_per_fission = 3.204e-11 #[J/fission]
[]
[Mesh]
[file]
type = FileMeshGenerator
file = pebble.e
[]
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[Distributions]
[normal_kernel_r]
type = TruncatedNormal
mean = 213.35e-6
standard_deviation = 4.4e-6
lower_bound = 1.9575e-04
upper_bound = 2.3095e-04
[]
[normal_buffer_t]
type = TruncatedNormal
mean = 98.9e-6
standard_deviation = 8.4e-6
lower_bound = 6.53e-05
upper_bound = 1.325e-04
[]
[normal_ipyc_t]
type = TruncatedNormal
mean = 40.4e-6
standard_deviation = 2.5e-6
lower_bound = 3.0400e-05
upper_bound = 5.0400e-05
[]
[normal_sic_t]
type = TruncatedNormal
mean = 35.2e-6
standard_deviation = 1.2e-6
lower_bound = 3.0400e-05
upper_bound = 4.0000e-05
[]
[normal_opyc_t]
type = TruncatedNormal
mean = 43.4e-6
standard_deviation = 2.9e-6
lower_bound = 3.1800e-05
upper_bound = 5.5000e-05
[]
[]
[Samplers]
[sample]
type = MonteCarlo
num_rows = 100
distributions = 'normal_kernel_r normal_buffer_t normal_ipyc_t normal_sic_t normal_opyc_t'
execute_on = 'PRE_MULTIAPP_SETUP'
[]
[sample_failed]
type = MonteCarlo
num_rows = 10
distributions = 'normal_kernel_r normal_buffer_t normal_ipyc_t normal_sic_t normal_opyc_t'
execute_on = 'PRE_MULTIAPP_SETUP'
[]
[]
[MultiApps]
[sub]
type = SamplerTransientMultiApp
input_files = triso_1d.i
sampler = sample
execute_on = 'TIMESTEP_BEGIN'
mode = normal
[]
[sub_failed]
type = SamplerTransientMultiApp
input_files = triso_1d_failed.i
sampler = sample_failed
execute_on = 'TIMESTEP_BEGIN'
mode = normal
[]
[]
[DiracKernels]
[heat_source]
type = TRISOMonteCarloPointSource
variable = temperature
point_source_values = release_heat_inc
value_name = release_heat_inc:release_heat_inc
point_source_location = point_source_location
[]
[Cs_source]
type = TRISOMonteCarloPointSource
variable = conc_Cs
point_source_values = release_Cs_inc
value_name = release_Cs_inc:release_Cs_inc
point_source_location = point_source_location
[]
[heat_source_failed]
type = TRISOMonteCarloPointSource
variable = temperature
point_source_values = release_heat_inc_failed
value_name = release_heat_inc_failed:release_heat_inc
point_source_location = point_source_location_failed
[]
[Cs_source_failed]
type = TRISOMonteCarloPointSource
variable = conc_Cs
point_source_values = release_Cs_inc_failed
value_name = release_Cs_inc_failed:release_Cs_inc
point_source_location = point_source_location_failed
[]
[]
[UserObjects]
[point_source_location]
type = TRISOMonteCarloPointSourceLocation
min_radius = 0.0138
max_radius = 0.018
geometry = SPHERE
sampler = sample
fuel_element_blocks = 2
particle_space = 0.0002
execute_on = 'INITIAL'
[]
[point_source_location_failed]
type = TRISOMonteCarloPointSourceLocation
min_radius = 0.0138
max_radius = 0.018
geometry = SPHERE
sampler = sample_failed
fuel_element_blocks = 2
particle_space = 0.0002
execute_on = 'INITIAL'
[]
[]
[Transfers]
[release_heat_inc]
type = SamplerPostprocessorTransfer
from_multi_app = sub
sampler = sample
to_vector_postprocessor = release_heat_inc
from_postprocessor = release_heat_inc
[]
[release_Cs_inc]
type = SamplerPostprocessorTransfer
from_multi_app = sub
sampler = sample
to_vector_postprocessor = release_Cs_inc
from_postprocessor = release_Cs_inc
[]
[release_heat_inc_failed]
type = SamplerPostprocessorTransfer
from_multi_app = sub_failed
sampler = sample_failed
to_vector_postprocessor = release_heat_inc_failed
from_postprocessor = release_heat_inc
[]
[release_Cs_inc_failed]
type = SamplerPostprocessorTransfer
from_multi_app = sub_failed
sampler = sample_failed
to_vector_postprocessor = release_Cs_inc_failed
from_postprocessor = release_Cs_inc
[]
[temp_bc]
type = MultiAppVectorPostprocessorTransfer
to_multi_app = sub
vector_postprocessor = sample_points
postprocessor = temp_bc
vector_name = temperature
[]
[temp_bc_failed]
type = MultiAppVectorPostprocessorTransfer
to_multi_app = sub_failed
vector_postprocessor = sample_points_failed
postprocessor = temp_bc
vector_name = temperature
[]
[]
[Controls]
[cmdline]
type = MultiAppSamplerControl
multi_app = sub
sampler = sample
param_names = 'kernel_radius buffer_thickness IPyC_thickness SiC_thickness OPyC_thickness'
[]
[cmdline_failed]
type = MultiAppSamplerControl
multi_app = sub_failed
sampler = sample_failed
param_names = 'kernel_radius buffer_thickness IPyC_thickness SiC_thickness OPyC_thickness'
[]
[]
[VectorPostprocessors]
[sample_points]
type = TRISOMonteCarloPointValueSampler
variable = temperature
execute_on = 'INITIAL TIMESTEP_BEGIN'
point_source_location = point_source_location
[]
[sample_points_failed]
type = TRISOMonteCarloPointValueSampler
variable = temperature
execute_on = 'INITIAL TIMESTEP_BEGIN'
point_source_location = point_source_location_failed
[]
[release_heat_inc]
type = StochasticResults
execute_on = 'TIMESTEP_BEGIN'
[]
[release_Cs_inc]
type = StochasticResults
execute_on = 'TIMESTEP_BEGIN'
[]
[heat_source_output]
type = TRISOMonteCarloPointSourceOutput
vector_postprocessor = release_heat_inc
value_name = release_heat_inc:release_heat_inc
point_source_location = point_source_location
execute_on = 'TIMESTEP_END'
[]
[Cs_source_output]
type = TRISOMonteCarloPointSourceOutput
vector_postprocessor = release_Cs_inc
value_name = release_Cs_inc:release_Cs_inc
point_source_location = point_source_location
execute_on = 'TIMESTEP_END'
[]
[release_heat_inc_failed]
type = StochasticResults
execute_on = 'TIMESTEP_BEGIN'
[]
[release_Cs_inc_failed]
type = StochasticResults
execute_on = 'TIMESTEP_BEGIN'
[]
[heat_source_output_failed]
type = TRISOMonteCarloPointSourceOutput
vector_postprocessor = release_heat_inc_failed
value_name = release_heat_inc_failed:release_heat_inc
point_source_location = point_source_location_failed
execute_on = 'TIMESTEP_END'
[]
[Cs_source_output_failed]
type = TRISOMonteCarloPointSourceOutput
vector_postprocessor = release_Cs_inc_failed
value_name = release_Cs_inc_failed:release_Cs_inc
point_source_location = point_source_location_failed
execute_on = 'TIMESTEP_END'
[]
[]
[Variables]
[temperature]
initial_condition = 773.15
[]
[conc_Cs]
scaling = 1e14
[]
[]
[AuxVariables]
[density]
order = CONSTANT
family = MONOMIAL
[]
[thermal_conductivity]
order = CONSTANT
family = MONOMIAL
[]
[specific_heat]
order = CONSTANT
family = MONOMIAL
[]
[Cs_diff_coef]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[power_history]
type = PiecewiseLinear
x = '0 1e3 4.51008e7' #change time (s) for desired EFPD
y = '0 1 1'
[]
[fission_rate]
type = LinearCombinationFunction
functions = power_history
w = 2.927e18
[]
[]
[Kernels]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temperature
extra_vector_tags = 'ref'
[]
[heat]
type = HeatConduction
variable = temperature
extra_vector_tags = 'ref'
[]
[mass_Cs_dt]
type = TimeDerivative
variable = conc_Cs
[]
[mass_Cs]
type = ArrheniusDiffusion
variable = conc_Cs
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[density]
type = MaterialRealAux
variable = density
property = density
block = '1 2 3'
execute_on = 'initial linear'
[]
[thermal_conductivity]
type = MaterialRealAux
variable = thermal_conductivity
property = thermal_conductivity
block = '1 2 3'
execute_on = timestep_end
[]
[specific_heat]
type = MaterialRealAux
variable = specific_heat
property = specific_heat
block = '1 2 3'
execute_on = timestep_end
[]
[Cs_diff_coef]
type = MaterialRealAux
variable = Cs_diff_coef
property = arrhenius_diffusion_coef_Cs
execute_on = timestep_end
[]
[]
[BCs]
[coolant_temp]
type = DirichletBC
variable = temperature
boundary = exterior
value = 773.15
[]
[freesurf_conc_Cs]
type = DirichletBC
variable = conc_Cs
boundary = exterior
value = 0.0
[]
[]
[Materials]
[fission_rate]
type = GenericFunctionMaterial
prop_names = fission_rate
prop_values = fission_rate
[]
[fast_neutron_flux]
type = FastNeutronFlux
calculate_fluence = true
flux_function = power_history
factor = 1.109e18
[]
##### fuel region propereties
[fueled_region_thermal]
type = GraphiteMatrixThermal
block = 2
graphite_grade = A3_27_1800
packing_fraction = 0.22
temperature = temperature
initial_matrix_density = 1750.0
[]
[fueled_region_density]
type = ParsedMaterial
block = 2
property_name = density
expression = 1750.0
[]
[fuel_conc_Cs]
type = ArrheniusDiffusionCoef
block = 2
d1 = 1e-8 # m^2/s
q1 = 0.0 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
##### Shell properties
[shell_region_thermal]
type = GraphiteMatrixThermal
block = 3
graphite_grade = A3_27_1800
packing_fraction = 0.0
temperature = temperature
initial_matrix_density = 1750.0
[]
[shell_region_density]
type = ParsedMaterial
block = 3
property_name = density
expression = 1750.0
[]
[shell_conc_Cs]
type = ArrheniusDiffusionCoef
block = 3
d1 = 1e-8 # m^2/s
q1 = 0.0 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
##### pebble core
[core_region_thermal]
type = GraphiteMatrixThermal
block = 1
graphite_grade = A3_27_1800
packing_fraction = 0.0
temperature = temperature
initial_matrix_density = 1400.0
[]
[core_region_density]
type = ParsedMaterial
block = 1
property_name = density
expression = 1400.0
[]
[core_conc_Cs]
type = ArrheniusDiffusionCoef
block = 1
d1 = 1e-8 # m^2/s
q1 = 0.0 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[]
[Debug]
show_var_residual_norms = true
show_var_residual = 'temperature'
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
line_search = 'none'
nl_rel_tol = 1e-9
nl_abs_tol = 1e-9
nl_max_its = 15
l_tol = 1e-5
l_max_its = 30
start_time = 0.0
dt = 50000
num_steps = 10
[]
[Postprocessors]
### irradiation conditions
[pebble_power]
type = ElementIntegralPower
variable = temperature
use_material_fission_rate = true
fission_rate_material = fission_rate
block = 2
execute_on = 'initial timestep_end'
[]
[heat_from_pebble]
type = SideDiffusiveFluxIntegral
variable = temperature
boundary = exterior
diffusivity = thermal_conductivity
execute_on = 'initial timestep_end'
[]
[fast_neutron_maximum_fluence_MP]
type = ElementExtremeMaterialProperty
mat_prop = fast_neutron_fluence
block = '1 2 3'
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[fast_neutron_maximum_flux_MP]
type = ElementExtremeMaterialProperty
mat_prop = fast_neutron_flux
block = '1 2 3'
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[fission_rate_maximum]
type = ElementExtremeMaterialProperty
mat_prop = fission_rate
block = '1 2 3'
value_type = 'max'
execute_on = 'initial timestep_end'
[]
### temperatures
[fuel_minimum_temperature]
type = NodalExtremeValue
variable = temperature
block = '2'
value_type = 'min'
execute_on = 'initial timestep_end'
[]
[fuel_average_temperature]
type = AverageNodalVariableValue
variable = temperature
block = '2'
execute_on = 'initial timestep_end'
[]
[fuel_maximum_temperature]
type = NodalExtremeValue
variable = temperature
block = '2'
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[shell_minimum_temperature]
type = NodalExtremeValue
variable = temperature
block = '3'
value_type = 'min'
execute_on = 'initial timestep_end'
[]
[shell_average_temperature]
type = AverageNodalVariableValue
variable = temperature
block = '3'
execute_on = 'initial timestep_end'
[]
[shell_maximum_temperature]
type = NodalExtremeValue
variable = temperature
block = '3'
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[core_minimum_temperature]
type = NodalExtremeValue
variable = temperature
block = '1'
value_type = 'min'
execute_on = 'initial timestep_end'
[]
[core_average_temperature]
type = AverageNodalVariableValue
variable = temperature
block = '1'
execute_on = 'initial timestep_end'
[]
[core_maximum_temperature]
type = NodalExtremeValue
variable = temperature
block = '1'
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
print_linear_residuals = true
time_step_interval = 1
exodus = true
csv = true
perf_graph = true
[]
(assessment/TRISO/benchmark/IAEA_CRP-6/diffusion/case_4d/case_4d.i)
[GlobalParams]
order = SECOND
family = LAGRANGE
initial_enrichment = 0.08
[]
[Mesh]
coord_type = RSPHERICAL
[gen]
type = TRISO1DMeshGenerator
elem_type = EDGE3
coordinates = '0 250e-6 350e-6 390e-6 425e-6 465e-6'
mesh_density = '50 30 15 15 15'
block_names = 'fuel buffer IPyC SiC OPyC'
bias = '1 1.25 1.25 1.25 1.25'
dual_bias = '0.8 0.8 0.8 0.8 1'
[]
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[Variables]
[conc_Cs]
[]
[conc_Ag]
[]
[conc_Kr]
[]
[]
[AuxVariables]
[temperature]
initial_condition = 1273.15
[]
[Cs_diff_coef]
order = CONSTANT
family = MONOMIAL
[]
[Ag_diff_coef]
order = CONSTANT
family = MONOMIAL
[]
[Kr_diff_coef]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[mass_Cs_dt]
type = TimeDerivative
variable = conc_Cs
[]
[mass_Cs]
type = ArrheniusDiffusion
variable = conc_Cs
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
temperature = temperature
extra_vector_tags = 'ref'
[]
[mass_source_Cs]
type = SpeciesSourceRate
variable = conc_Cs
property_name = Cs_generation
block = fuel
[]
[mass_Ag_dt]
type = TimeDerivative
variable = conc_Ag
[]
[mass_Ag]
type = ArrheniusDiffusion
variable = conc_Ag
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
temperature = temperature
extra_vector_tags = 'ref'
[]
[mass_source_Ag]
type = SpeciesSourceRate
variable = conc_Ag
property_name = Ag_generation
block = fuel
[]
[mass_Kr_dt]
type = TimeDerivative
variable = conc_Kr
[]
[mass_Kr]
type = ArrheniusDiffusion
variable = conc_Kr
arrhenius_prpty_name = arrhenius_diffusion_coef_Kr
temperature = temperature
extra_vector_tags = 'ref'
[]
[mass_source_Kr]
type = SpeciesSourceRate
variable = conc_Kr
property_name = Kr_generation
block = fuel
[]
[]
[AuxKernels]
[Cs_diff_coef]
type = MaterialRealAux
variable = Cs_diff_coef
property = arrhenius_diffusion_coef_Cs
execute_on = timestep_end
[]
[Ag_diff_coef]
type = MaterialRealAux
variable = Ag_diff_coef
property = arrhenius_diffusion_coef_Ag
execute_on = timestep_end
[]
[Kr_diff_coef]
type = MaterialRealAux
variable = Kr_diff_coef
property = arrhenius_diffusion_coef_Kr
execute_on = timestep_end
[]
[temperature]
type = FunctionAux
function = 'if(t<4.3200001e7,1273.15,if(t<4.3920001e7,1873.15,2073.15))'
variable = temperature
[]
[]
[BCs]
[freesurf_conc_Cs]
type = DirichletBC
variable = conc_Cs
boundary = exterior
value = 0.0
[]
[freesurf_conc_Ag]
type = DirichletBC
variable = conc_Ag
boundary = exterior
value = 0.0
[]
[freesurf_conc_Kr]
type = DirichletBC
variable = conc_Kr
boundary = exterior
value = 0.0
[]
[]
[Materials]
[burnup]
type = GenericFunctionMaterial
block = fuel
prop_names = 'burnup'
prop_values = 'if(t<4.3200001e7,0.1/4.32e7*t,0.1)'
[]
[fission_rate]
type = GenericFunctionMaterial
block = fuel
prop_names = 'fission_rate'
# 5.581219e19 = 0.1/4.32e7*10810/.27*6.0221409e23
prop_values = 'if(t<4.3200001e7,5.581219e19,0)'
[]
[fuel_conc_Cs]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 5.6e-8 # m^2/s
q1 = 209e3 # J/mol
d2 = 5.2e-4
q2 = 362e3
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[mass_source_Cs_property]
type = SpeciesSourceMaterial
block = fuel
property_name = Cs_generation
kind = Cs
[]
[buffer_conc_Cs]
type = ArrheniusDiffusionCoef
block = buffer
d1 = 1e-8 # m^2/s
q1 = 0 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[IPyC_conc_Cs]
type = ArrheniusDiffusionCoef
block = IPyC
d1 = 6.3e-8 # m^2/s
# 6.22285e6 = 1e-6/6.3e-8/exp(-222e3/8.3145/2073.15)
d1_function = 'if(t<4.3920001e7,1,6.22285e6)'
q1 = 222e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[SiC_conc_Cs]
type = ArrheniusDiffusionCoef
block = SiC
d1 = 5.5e-14 # m^2/s
d1_function = 'if(t<4.3200001e7,exp(2e25/4.32e7*t/5e25),if(t<4.3920001e7,(1e-6-1.6e-2*exp(-514e3/8.3145/1873.15))/5.5e-14/exp(-125e3/8.3145/1873.15),(1e-6-1.6e-2*exp(-514e3/8.3145/2073.15))/5.5e-14/exp(-125e3/8.3145/2073.15)))'
q1 = 125e3 # J/mol
d2 = 1.6e-2
q2 = 514e3
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[OPyC_conc_Cs]
type = ArrheniusDiffusionCoef
block = OPyC
d1 = 6.3e-8 # m^2/s
# 6.22285e6 = 1e-6/6.3e-8/exp(-222e3/8.3145/2073.15)
d1_function = 'if(t<4.3920001e7,1,6.22285e6)'
q1 = 222e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[fuel_conc_Ag]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 6.7e-9 # m^2/s
q1 = 165e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[mass_source_Ag_property]
type = SpeciesSourceMaterial
block = fuel
property_name = Ag_generation
kind = Ag
[]
[buffer_conc_Ag]
type = ArrheniusDiffusionCoef
block = buffer
d1 = 1e-8 # m^2/s
q1 = 0 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[IPyC_conc_Ag]
type = ArrheniusDiffusionCoef
block = IPyC
d1 = 5.3e-9 # m^2/s
# 1.431468e6 = 1e-6/5.3e-9/exp(-154e3/8.3145/2073.15)
d1_function = 'if(t<4.3920001e7,1,1.431468e6)'
q1 = 154e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[SiC_conc_Ag]
type = ArrheniusDiffusionCoef
block = SiC
d1 = 3.6e-9 # m^2/s
d1_function = 'if(t<4.3200001e7,1,if(t<4.3920001e7,1e-6/3.6e-9/exp(-215e3/8.3145/1873.15),1e-6/3.6e-9/exp(-215e3/8.3145/2073.15)))'
q1 = 215e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[OPyC_conc_Ag]
type = ArrheniusDiffusionCoef
block = OPyC
d1 = 5.3e-9 # m^2/s
# 1.431468e6 = 1e-6/5.3e-9/exp(-154e3/8.3145/2073.15)
d1_function = 'if(t<4.3920001e7,1,1.431468e6)'
q1 = 154e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[fuel_conc_Kr]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 8.8e-15 # m^2/s
q1 = 54e3 # J/mol
d2 = 6.0e-1
q2 = 480e3
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Kr
[]
[mass_source_Kr_property]
type = SpeciesSourceMaterial
block = fuel
property_name = Kr_generation
kind = custom
additional_function = '0.002717/6.022e23'
additional_function_property = fission_rate
[]
[buffer_conc_Kr]
type = ArrheniusDiffusionCoef
block = buffer
d1 = 1e-8 # m^2/s
q1 = 0 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Kr
[]
[IPyC_conc_Kr]
type = ArrheniusDiffusionCoef
block = IPyC
d1 = 2.9e-8 # m^2/s
# 7.40285e8 = 1e-6 / (2.9e-8*exp(-291e3/8.3145/2073.15))
d1_function = 'if(t<4.3920001e7,1,7.40285e8)'
q1 = 291e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Kr
[]
[SiC_conc_Kr]
type = ArrheniusDiffusionCoef
block = SiC
# See "Diffusion Modeling of Fission Product Release during Depressurized Core Conduction Cooldown Conditions,"
# R. C. Martin, https://www.osti.gov/servlets/purl/5719008
d1 = 1.4e-9 # m^2/s
d1_function = 'if(t<4.3200001e7,1,if(t<4.3920001e7,1e-6/1.4e-9/exp(-265.98e3/8.3145/1873.15),1e-6/1.4e-9/exp(-265.98e3/8.3145/2073.15)))'
q1 = 265.98e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Kr
[]
[OPyC_conc_Kr]
type = ArrheniusDiffusionCoef
block = OPyC
d1 = 2.9e-8 # m^2/s
# 7.40285e8 = 1e-6 / (2.9e-8*exp(-291e3/8.3145/2073.15))
d1_function = 'if(t<4.3920001e7,1,7.40285e8)'
q1 = 291e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Kr
[]
[]
[Debug]
show_var_residual_norms = true
show_var_residual = 'conc_Cs conc_Kr'
[]
[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-19
nl_max_its = 50
l_tol = 1e-4
l_max_its = 50
start_time = 0.0
end_time = 4.464e7
num_steps = 1000
dt = 86400
dtmax = 86400
#dtmin = 86400
[TimeStepper]
type = FunctionDT
function = 'if(t<4.32e7,86400,3600)'
[]
[]
[Postprocessors]
[release_Cs_inc]
type = SideIntegralMassFlux
variable = conc_Cs
boundary = exterior
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
execute_on = 'initial timestep_end'
[]
[released_Cs]
type = TimeIntegratedPostprocessor
value = release_Cs_inc
execute_on = 'initial timestep_end'
[]
[total_Cs]
type = ElementIntegralMaterialProperty
mat_prop = Cs_generation_total
block = fuel
execute_on = 'initial timestep_end'
[]
[x_Cs_released]
type = FractionalRelease
released = released_Cs
total = total_Cs
[]
[retained_Cs]
type = ElementIntegralVariablePostprocessor
variable = conc_Cs
[]
[release_Ag_inc]
type = SideIntegralMassFlux
variable = conc_Ag
boundary = exterior
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
execute_on = 'initial timestep_end'
[]
[released_Ag]
type = TimeIntegratedPostprocessor
value = release_Ag_inc
execute_on = 'initial timestep_end'
[]
[total_Ag]
type = ElementIntegralMaterialProperty
mat_prop = Ag_generation_total
block = fuel
execute_on = 'initial timestep_end'
[]
[x_Ag_released]
type = FractionalRelease
released = released_Ag
total = total_Ag
[]
[retained_Ag]
type = ElementIntegralVariablePostprocessor
variable = conc_Ag
[]
[release_Kr_inc]
type = SideIntegralMassFlux
variable = conc_Kr
boundary = exterior
arrhenius_prpty_name = arrhenius_diffusion_coef_Kr
execute_on = 'initial timestep_end'
[]
[released_Kr]
type = TimeIntegratedPostprocessor
value = release_Kr_inc
execute_on = 'initial timestep_end'
[]
[total_Kr]
type = ElementIntegralMaterialProperty
mat_prop = Kr_generation_total
block = fuel
execute_on = 'initial timestep_end'
[]
[x_Kr_released]
type = FractionalRelease
released = released_Kr
total = total_Kr
[]
[retained_Kr]
type = ElementIntegralVariablePostprocessor
variable = conc_Kr
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = false
exodus = true
[console]
type = Console
time_step_interval = 1
[]
[out]
type = CSV
execute_on = final
[]
[]
(examples/TRISO/parfume/parfume.i)
# UCO TRISO particle using several PARFUME models
initial_fuel_density = 10400
[GlobalParams]
order = SECOND
family = LAGRANGE
displacements = 'disp_x'
initial_enrichment = 0.1955 # [wt-]
flux_conversion_factor = 1.0 # convert E>0.10 to E>0.18 MeV
stress_free_temperature = 923.15 # used for thermal expansion
energy_per_fission = 3.204e-11 # [J/fission]
O_U = 1.5 # Initial Oxygen to Uranium atom ratio
C_U = 0.4 # Initial Carbon to Uranium atom ratio
[]
[Mesh]
coord_type = RSPHERICAL
[gen]
type = TRISO1DMeshGenerator
elem_type = EDGE3
coordinates = '0 2.125e-4 3.125e-4 3.125e-4 3.525e-4 3.875e-4 4.275e-4'
mesh_density = '6 6 0 6 8 6'
block_names = 'fuel buffer IPyC SiC OPyC'
[]
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[UserObjects]
[particle_geometry]
type = TRISOGeometry
[]
[]
[Variables]
[temperature]
initial_condition = 923.15
[]
[conc]
initial_condition = 0.0
scaling = 1e18
[]
[]
[AuxVariables]
[disp_y]
[]
[disp_z]
[]
[fission_rate]
block = fuel
order = CONSTANT
family = MONOMIAL
[]
[burnup]
block = fuel
order = CONSTANT
family = MONOMIAL
[]
[fast_neutron_flux]
order = CONSTANT
family = MONOMIAL
[]
[fast_neutron_fluence]
order = CONSTANT
family = MONOMIAL
[]
[gap_condSlave]
order = CONSTANT
family = MONOMIAL
[]
[density]
order = CONSTANT
family = MONOMIAL
[]
[thermal_conductivity]
order = CONSTANT
family = MONOMIAL
[]
[swelling]
order = CONSTANT
family = MONOMIAL
[]
[specific_heat]
order = CONSTANT
family = MONOMIAL
[]
[volumetric_IIDC_strain]
order = CONSTANT
family = MONOMIAL
[]
[radial_IIDC_strain]
order = CONSTANT
family = MONOMIAL
[]
[tangential_IIDC_strain]
order = CONSTANT
family = MONOMIAL
[]
[BAF]
order = CONSTANT
family = MONOMIAL
[]
[fis_gas_produced]
order = CONSTANT
family = MONOMIAL
[]
[fis_gas_released]
order = CONSTANT
family = MONOMIAL
[]
[gap_HTC]
order = CONSTANT
family = MONOMIAL
[]
[gap_distance]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[power_history]
type = PiecewiseLinear
x = '0 76e6 76.001e6'
y = '1 1 0'
[]
[fission_rate]
type = LinearCombinationFunction
functions = power_history
w = 3.89e19
[]
[temp_bc]
type = PiecewiseLinear
x = '0 76e6 76.001e6 84.641e6 84.6482e6'
y = '1500 1500 300 300 2073'
[]
[k_function]
type = PiecewiseLinear
x = '0 200e6'
y = '4e-37 4e-37'
[]
[d1_function]
type = ParsedFunction
expression = 'exp(t/4.5e25)'
[]
[d_gap]
type = PiecewiseLinear
x = '1500 2100'
y = '1e-14 1e-12'
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[fuel]
block = fuel
add_variables = true
strain = FINITE
incremental = true
generate_output = 'hydrostatic_stress stress_xx stress_yy stress_zz strain_xx strain_yy strain_zz'
eigenstrain_names = 'UCO_swelling_eigenstrain UCO_thermal_strain'
extra_vector_tags = 'ref'
[]
[buffer]
block = buffer
add_variables = true
strain = FINITE
incremental = true
generate_output = 'hydrostatic_stress stress_xx stress_yy stress_zz strain_xx strain_yy strain_zz'
eigenstrain_names = 'buffer_IIDC_strain buffer_thermal_strain'
extra_vector_tags = 'ref'
[]
[IPyC]
block = IPyC
add_variables = true
strain = FINITE
incremental = true
generate_output = 'hydrostatic_stress stress_xx stress_yy stress_zz strain_xx strain_yy strain_zz'
eigenstrain_names = 'IPyC_IIDC_strain IPyC_thermal_strain'
extra_vector_tags = 'ref'
[]
[SiC]
block = SiC
add_variables = true
strain = FINITE
incremental = true
generate_output = 'hydrostatic_stress stress_xx stress_yy stress_zz strain_xx strain_yy strain_zz'
eigenstrain_names = 'SiC_thermal_eigenstrain'
extra_vector_tags = 'ref'
[]
[OPyC]
block = OPyC
add_variables = true
strain = FINITE
incremental = true
generate_output = 'hydrostatic_stress stress_xx stress_yy stress_zz strain_xx strain_yy strain_zz'
eigenstrain_names = 'OPyC_IIDC_strain OPyC_thermal_strain'
extra_vector_tags = 'ref'
[]
[]
[Kernels]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temperature
extra_vector_tags = 'ref'
[]
[heat]
type = HeatConduction
variable = temperature
extra_vector_tags = 'ref'
[]
[heat_source]
type = NeutronHeatSource
variable = temperature
block = fuel
fission_rate = fission_rate
extra_vector_tags = 'ref'
[]
[mass_ie]
type = TimeDerivative
variable = conc
extra_vector_tags = 'ref'
[]
[mass]
type = ArrheniusDiffusion
variable = conc
extra_vector_tags = 'ref'
[]
[mass_source]
type = BodyForce
variable = conc
function = power_history
value = 1.22e-5 # units of mol/m**3-s
block = fuel
extra_vector_tags = 'ref'
[]
[mass_decay]
type = Decay
variable = conc
radioactive_decay_constant = 7.297e-10 # units:(1/sec) The constant for Cesium
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[fissionrate]
type = MaterialRealAux
variable = fission_rate
property = fission_rate
block = fuel
execute_on = timestep_begin
[]
[burnup]
type = MaterialRealAux
variable = burnup
property = burnup
block = fuel
execute_on = timestep_begin
[]
[fast_neutron_flux]
type = MaterialRealAux
variable = fast_neutron_flux
property = fast_neutron_flux
block = 'fuel buffer IPyC SiC OPyC'
execute_on = timestep_begin
[]
[fast_neutron_fluence]
type = MaterialRealAux
variable = fast_neutron_fluence
property = fast_neutron_fluence
block = 'fuel buffer IPyC SiC OPyC'
execute_on = timestep_begin
[]
[conductanceSlave]
type = MaterialRealAux
property = gap_conductance
variable = gap_condSlave
boundary = buffer_outer_boundary
execute_on = 'initial timestep_end'
[]
[density]
type = MaterialRealAux
variable = density
property = density
block = 'fuel buffer IPyC SiC OPyC'
execute_on = 'initial linear'
[]
[thermal_conductivity]
type = MaterialRealAux
variable = thermal_conductivity
property = thermal_conductivity
block = 'fuel buffer IPyC SiC OPyC'
execute_on = timestep_end
[]
[specific_heat]
type = MaterialRealAux
variable = specific_heat
property = specific_heat
block = 'fuel buffer IPyC SiC OPyC'
execute_on = timestep_end
[]
[swelling]
type = MaterialRealAux
variable = swelling
property = swelling
block = fuel
execute_on = linear
[]
[volumetric_IIDC_strain]
type = MaterialRealAux
variable = volumetric_IIDC_strain
property = volumetric_IIDC_strain
block = 'IPyC OPyC'
execute_on = timestep_end
[]
[radial_IIDC_strain]
type = MaterialRealAux
variable = radial_IIDC_strain
property = radial_IIDC_strain
block = 'IPyC OPyC'
execute_on = timestep_end
[]
[tangential_IIDC_strain]
type = MaterialRealAux
variable = tangential_IIDC_strain
property = tangential_IIDC_strain
block = 'IPyC OPyC'
execute_on = timestep_end
[]
[BAF]
type = MaterialRealAux
variable = BAF
property = BAF
block = 'IPyC OPyC'
execute_on = timestep_end
[]
[fis_gas_produced]
type = MaterialRealAux
variable = fis_gas_produced
property = fis_gas_produced
block = fuel
execute_on = linear
[]
[fis_gas_released]
type = MaterialRealAux
variable = fis_gas_released
property = fis_gas_released
block = fuel
execute_on = linear
[]
[gap_HTC]
type = MaterialRealAux
property = gap_conductance
variable = gap_HTC
boundary = buffer_outer_boundary
execute_on = 'initial timestep_end'
[]
[gap_distance]
type = PenetrationAux
variable = gap_distance
boundary = buffer_outer_boundary
paired_boundary = IPyC_inner_boundary
quantity = distance
tangential_tolerance = 1e-6
execute_on = 'initial timestep_end'
[]
[]
[Contact]
[mechanical]
primary = IPyC_inner_boundary
secondary = buffer_outer_boundary
penalty = 1e5
model = frictionless
formulation = kinematic
[]
[]
[ThermalContact]
[thermal_contact]
type = GasGapHeatTransfer
variable = temperature
primary = IPyC_inner_boundary
secondary = buffer_outer_boundary
initial_moles = initial_moles # coupling to a postprocessor which supplies the initial plenum/gap gas mass
initial_gas_types = 'Kr Xe'
initial_fractions = '0.185 0.815'
gas_released = 'fis_gas_released'
released_gas_types = 'Kr Xe'
released_fractions = '0.185 0.815'
tangential_tolerance = 1e-6
roughness_primary = 0e-6
roughness_secondary = 0e-6
jumpdistance_primary = 0
jumpdistance_secondary = 0
quadrature = true
emissivity_secondary = 0.0
emissivity_primary = 0.0
min_gap = 1e-7
max_gap = 50e-6
gap_geometry_type = sphere
[]
[cesium_contact]
type = GapHeatTransfer
variable = conc
primary = IPyC_inner_boundary
secondary = buffer_outer_boundary
tangential_tolerance = 1e-6
gap_conductivity_function = d_gap
gap_conductivity_function_variable = temperature
appended_property_name = _conc
quadrature = true
gap_geometry_type = sphere
emissivity_primary = 0.0
emissivity_secondary = 0.0
min_gap = 1e-7
[]
[]
[BCs]
# pin particle along symmetry planes
[no_disp_x]
type = DirichletBC
variable = disp_x
boundary = xzero
value = 0.0
[]
# fix temperature on free surface
[freesurf_temp]
type = FunctionDirichletBC
variable = temperature
function = temp_bc
boundary = exterior
[]
# fix concentration on free surface
[freesurf_conc]
type = DirichletBC
variable = conc
boundary = exterior
value = 0.0
[]
# exterior and internal pressures
[exterior_pressure_x]
type = Pressure
variable = disp_x
boundary = exterior
factor = 0.1e6
[]
[PlenumPressure] # apply gas pressure on buffer and IPyC boundaries
[plenumPressure]
boundary = buffer_IPyC_boundary
initial_pressure = 100.0
startup_time = 0
R = 8.3145
output_initial_moles = initial_moles
temperature = ave_gas_temp
volume = 'gap_volume buffer_void_volume kernel_void_volume'
material_input = 'fis_gas_released'
output = gas_pressure
[]
[]
[]
[Materials]
[fission_rate]
type = GenericFunctionMaterial
prop_names = fission_rate
prop_values = fission_rate
[]
[fast_neutron_flux]
type = FastNeutronFlux
calculate_fluence = true
flux_function = power_history
factor = 5e17
[]
[normal_vectors_triso]
type = NormalVectorsTRISO
block = 'buffer IPyC OPyC'
[]
### UCO properties
[UCO_burnup]
type = TRISOBurnup
initial_density = ${initial_fuel_density}
[]
[UCO_thermal]
type = UCOThermal
block = fuel
temperature = temperature
[]
[UCO_elasticity_tensor]
type = UCOElasticityTensor
block = fuel
temperature = temperature
[]
[UCO_stress]
type = ComputeFiniteStrainElasticStress
block = fuel
[]
[UCO_VolumetricSwellingEigenstrain]
type = UCOVolumetricSwellingEigenstrain
block = fuel
eigenstrain_name = UCO_swelling_eigenstrain
[]
[UCO_thermal_strain]
type = ComputeThermalExpansionEigenstrain
block = fuel
thermal_expansion_coeff = 10e-6 # check this value for UCO
eigenstrain_name = UCO_thermal_strain
temperature = temperature
[]
[UCO_density]
type = StrainAdjustedDensity
block = fuel
strain_free_density = ${initial_fuel_density}
[]
[fission_gas_release]
type = UCOFGR
block = fuel
average_grain_radius = 10e-6
temperature = temperature
triso_geometry = particle_geometry
cutoff_neutron_flux = 0.0
[]
[fuel_conc]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 5.6e-8 # m^2/s
q1 = 209.0e+3 # J/mol
d2 = 5.2e-4 # m^2/s
q2 = 362.0e+3 # J/mol
temperature = temperature
[]
### Buffer Properties
[buffer_elasticity_tensor]
type = BufferElasticityTensor
block = buffer
temperature = temperature
[]
[buffer_stress]
type = BufferCEGACreep
block = buffer
temperature = temperature
[]
[buffer_thermal]
type = BufferThermal
block = buffer
initial_density = 1050.0
[]
[buffer_density]
type = StrainAdjustedDensity
block = buffer
strain_free_density = 1050.0
[]
[buffer_thermal_strain]
type = BufferThermalExpansionEigenstrain
block = buffer
eigenstrain_name = buffer_thermal_strain
temperature = temperature
[]
[buffer_IIDC_strain]
type = BufferCEGAIrradiationEigenstrain
block = buffer
eigenstrain_name = buffer_IIDC_strain
temperature = temperature
[]
[buffer_conc]
type = ArrheniusDiffusionCoef
block = buffer
d1 = 1.0e-12 # m^2/s
q1 = 0.0
d2 = 0.0
q2 = 0.0
temperature = temperature
[]
### IPyC properties
[IPyC_elasticity_tensor]
type = PyCElasticityTensor
block = IPyC
temperature = temperature
initial_BAF = 1.045
[]
[IPyC_stress]
type = PyCCEGACreep
block = IPyC
temperature = temperature
[]
[IPyC_thermal]
type = HeatConductionMaterial
block = IPyC
thermal_conductivity = 4.0
specific_heat = 720.0
[]
[IPyC_density]
type = GenericConstantMaterial
block = IPyC
prop_names = 'density'
prop_values = 1900.0
[]
[IPyC_IIDC_strain]
type = PyCCEGAIrradiationEigenstrain
block = IPyC
eigenstrain_name = IPyC_IIDC_strain
temperature = temperature
[]
[BAF_IPyC]
type = BaconAnisotropyFactor
initial_BAF = 1.045
block = IPyC
[]
[BAF_OPyC]
type = BaconAnisotropyFactor
initial_BAF = 1.045
block = OPyC
[]
[IPyC_thermal_strain]
type = PyCThermalExpansionEigenstrain
block = IPyC
eigenstrain_name = IPyC_thermal_strain
temperature = temperature
[]
[IPyC_conc]
type = ArrheniusDiffusionCoef
block = IPyC
d1 = 6.3e-8 # m^2/s
q1 = 222.0e+3 # J/mol
d2 = 0.0
q2 = 0.0
temperature = temperature
[]
### SiC properties
[SiC_elasticity_tensor]
type = MonolithicSiCElasticityTensor
block = SiC
temperature = temperature
elastic_modulus_model = miller
[]
[SiC_stress]
type = ComputeFiniteStrainElasticStress
block = SiC
[]
[SiC_thermal]
type = MonolithicSiCThermal
block = SiC
temperature = temperature
thermal_conductivity_model = miller
[]
[SiC_density]
type = GenericConstantMaterial
block = SiC
prop_names = 'density'
prop_values = 3200.0
[]
[SiC_thermal_strain]
type = ComputeThermalExpansionEigenstrain
block = SiC
thermal_expansion_coeff = 4.9e-6
temperature = temperature
eigenstrain_name = SiC_thermal_eigenstrain
[]
[SiC_conc]
type = ArrheniusDiffusionCoef
block = SiC
d1 = 5.5e-14 # m^2/s
d1_function = d1_function
d1_function_variable = fast_neutron_fluence
q1 = 125.0e+3 # J/mol
d2 = 1.6e-2 # m^2/s
q2 = 514.0e+3 # J/mol
temperature = temperature
[]
### OPyC properties
[OPyC_elasticity_tensor]
type = PyCElasticityTensor
block = OPyC
temperature = temperature
initial_BAF = 1.045
[]
[OPyC_stress]
type = PyCCEGACreep
block = OPyC
temperature = temperature
[]
[OPyC_thermal_conductivity]
type = HeatConductionMaterial
block = OPyC
thermal_conductivity = 4.0
specific_heat = 720.0
[]
[OPyC_density]
type = GenericConstantMaterial
block = OPyC
prop_names = 'density'
prop_values = 1900.0
[]
[OPyC_IIDC_strain]
type = PyCCEGAIrradiationEigenstrain
block = OPyC
eigenstrain_name = OPyC_IIDC_strain
temperature = temperature
[]
[OPyC_thermal_strain]
type = PyCThermalExpansionEigenstrain
block = OPyC
eigenstrain_name = OPyC_thermal_strain
temperature = temperature
[]
[OPyC_conc]
type = ArrheniusDiffusionCoef
block = OPyC
d1 = 6.3e-8 # m^2/s
q1 = 222.0e+3 # J/mol
d2 = 0.0
q2 = 0.0
temperature = temperature
[]
[]
[Dampers]
[temp]
type = MaxIncrement
variable = temperature
max_increment = 50
[]
[disp_x]
type = MaxIncrement
variable = disp_x
max_increment = 1e-6
[]
[]
[Debug]
show_var_residual_norms = true
show_var_residual = 'disp_x temperature conc'
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
nl_rel_tol = 1e-8
nl_abs_tol = 1e-7 #1e-12
nl_max_its = 15
l_tol = 1e-4 #1e-8
l_max_its = 50
start_time = 0.0
end_time = 85.3682e6 #5.0e7
num_steps = 1000
dtmax = 2e6
dtmin = 1
[TimeStepper]
type = IterationAdaptiveDT
dt = 20
growth_factor = 1.5
optimal_iterations = 8 #6
linear_iteration_ratio = 100
time_t = '0 76e6 76.001e6 84.641e6 84.6482e6'
time_dt = '20 20 20 20 20'
[]
[Quadrature]
order = THIRD
[]
[]
[Postprocessors]
[_dt]
type = TimestepSize
execute_on = timestep_end
[]
[cs_release]
type = SideIntegralMassFlux
variable = conc
boundary = exterior
[]
[int_cs_release]
type = TimeIntegratedPostprocessor
value = cs_release
[]
[cs_release_fuel]
type = SideIntegralMassFlux
variable = conc
boundary = fuel_outer_boundary
[]
[int_cs_release_fuel]
type = TimeIntegratedPostprocessor
value = cs_release_fuel
[]
[cs_release_PyCGapBndry]
type = SideIntegralMassFlux
variable = conc
boundary = IPyC_inner_boundary
[]
[int_cs_release_PyCGapBndry]
type = TimeIntegratedPostprocessor
value = cs_release_PyCGapBndry
[]
[ave_gas_temp]
type = ElementAverageValue
block = buffer
variable = temperature
execute_on = 'initial timestep_end'
[]
[ave_gap_temp]
type = SideAverageValue
boundary = buffer_IPyC_boundary
variable = temperature
execute_on = 'initial timestep_end'
[]
[fis_gas_produced]
type = ElementIntegralMaterialProperty
mat_prop = fis_gas_produced
block = fuel
execute_on = 'initial timestep_end'
[]
[fis_gas_released]
type = ElementIntegralMaterialProperty
mat_prop = fis_gas_released
block = fuel
execute_on = 'initial timestep_end'
[]
[gap_volume]
type = InternalVolume
boundary = buffer_IPyC_boundary
execute_on = 'initial linear'
use_displaced_mesh = true
[]
[buffer_void_volume]
type = VoidVolume
block = buffer
theoretical_density = 2250
execute_on = 'initial timestep_end'
use_displaced_mesh = true
[]
[kernel_th_density]
type = UCOTheoreticalDensity
execute_on = initial
[]
[kernel_void_volume]
type = VoidVolume
block = fuel
theoretical_density = kernel_th_density
execute_on = 'initial timestep_end'
use_displaced_mesh = true
[]
[volumeTotal]
type = InternalVolume
boundary = exterior
execute_on = 'initial timestep_end'
scale_factor = -1
[]
[volumeFuel]
type = InternalVolume
boundary = fuel_outer_boundary
execute_on = 'initial timestep_end'
scale_factor = -1
[]
[volumeGas]
type = InternalVolume
boundary = buffer_outer_boundary
execute_on = 'initial timestep_end'
scale_factor = -1
addition = 4.67e-11
[]
[volumeBufferShell]
type = InternalVolume
boundary = buffer_outer_boundary
execute_on = 'initial timestep_end'
[]
[ave_temp_interior]
type = SideAverageValue
boundary = buffer_outer_boundary
variable = temperature
execute_on = 'initial timestep_end'
[]
[gap_HTC]
type = ElementExtremeValue
variable = gap_HTC
block = buffer
value_type = 'max'
execute_on = 'initial timestep_end'
[]
### Postprocessors for CO production
[total_fission_rate]
type = ElementIntegralPower
variable = temperature
fission_rate = fission_rate
block = fuel
energy_per_fission = 1.0
outputs = exodus
execute_on = 'initial timestep_end'
[]
[total_fissions]
type = TimeIntegratedPostprocessor
value = total_fission_rate
outputs = exodus
execute_on = 'initial timestep_end'
[]
[avg_surface_temp]
type = SideAverageValue
variable = temperature
boundary = exterior
outputs = exodus
execute_on = 'initial timestep_end'
[]
[time_int_surf_temp]
type = TimeIntegratedPostprocessor
value = avg_surface_temp
outputs = exodus
execute_on = 'initial timestep_end'
[]
##### irradiation conditions
[particle_power]
type = ElementIntegralPower
variable = temperature
use_material_fission_rate = true
fission_rate_material = fission_rate
block = fuel
execute_on = 'initial timestep_end'
[]
[max_fluence]
type = ElementExtremeValue
variable = fast_neutron_fluence
block = 'fuel buffer IPyC SiC OPyC'
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[max_burnup]
type = ElementExtremeValue
variable = burnup
block = fuel
value_type = 'max'
execute_on = 'initial timestep_end'
[]
#### II strain
[OPyC_radial_IIDC_strain]
type = ElementExtremeValue
variable = radial_IIDC_strain
block = OPyC
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[OPyC_tangential_IIDC_strain]
type = ElementExtremeValue
variable = tangential_IIDC_strain
block = OPyC
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[IPyC_radial_IIDC_strain]
type = ElementExtremeValue
variable = radial_IIDC_strain
block = IPyC
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[IPyC_tangential_IIDC_strain]
type = ElementExtremeValue
variable = tangential_IIDC_strain
block = IPyC
value_type = 'max'
execute_on = 'initial timestep_end'
[]
#### temperatures
[max_T_kernel]
type = NodalExtremeValue
variable = temperature
block = fuel
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[max_T_buffer]
type = NodalExtremeValue
variable = temperature
block = buffer
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[min_T_buffer]
type = NodalExtremeValue
variable = temperature
block = buffer
value_type = 'min'
execute_on = 'initial timestep_end'
[]
[max_T_IPyC]
type = NodalExtremeValue
variable = temperature
block = IPyC
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[max_T_SiC]
type = NodalExtremeValue
variable = temperature
block = SiC
value_type = 'max'
execute_on = 'initial timestep_end'
[]
#### displacement BCs
[max_disp_kernel]
type = NodalExtremeValue
variable = disp_x
block = fuel
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[min_disp_buffer]
type = NodalExtremeValue
variable = disp_x
block = buffer
value_type = 'min'
execute_on = 'initial timestep_end'
[]
[max_disp_IPyC]
type = NodalExtremeValue
variable = disp_x
block = IPyC
value_type = 'max'
execute_on = 'initial timestep_end'
[]
#### hoop stresses
[hoop_opyc_max]
type = ElementExtremeValue
variable = stress_yy
block = OPyC
execute_on = 'initial timestep_end'
[]
[hoop_sic_max]
type = ElementExtremeValue
variable = stress_yy
block = SiC
execute_on = 'initial timestep_end'
[]
[hoop_ipyc_max]
type = ElementExtremeValue
variable = stress_yy
block = IPyC
execute_on = 'initial timestep_end'
[]
[hoop_buffer_max]
type = ElementExtremeValue
variable = stress_yy
block = buffer
execute_on = 'initial timestep_end'
[]
[hoop_opyc_min]
type = ElementExtremeValue
variable = stress_yy
block = OPyC
value_type = min
execute_on = 'initial timestep_end'
[]
[hoop_sic_min]
type = ElementExtremeValue
variable = stress_yy
block = SiC
value_type = min
execute_on = 'initial timestep_end'
[]
[hoop_ipyc_min]
type = ElementExtremeValue
variable = stress_yy
block = IPyC
value_type = min
execute_on = 'initial timestep_end'
[]
[hoop_buffer_min]
type = ElementExtremeValue
variable = stress_yy
block = buffer
value_type = min
execute_on = 'initial timestep_end'
[]
### Check warning for Density
[oPyC_density]
type = ElementExtremeValue
variable = density
block = OPyC
execute_on = 'initial timestep_end'
[]
[sic_density]
type = ElementExtremeValue
variable = density
block = SiC
execute_on = 'initial timestep_end'
[]
[IPyC_density]
type = ElementExtremeValue
variable = density
block = IPyC
execute_on = 'initial timestep_end'
[]
[buffer_density]
type = ElementExtremeValue
variable = density
block = buffer
execute_on = 'initial timestep_end'
[]
[kernel_density]
type = ElementExtremeValue
variable = density
block = fuel
execute_on = 'initial timestep_end'
[]
[pd_penetration]
type = PdPenetration
boundary = SiC_inner_boundary
variable = temperature
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
print_linear_residuals = true
time_step_interval = 1
exodus = true
csv = true
perf_graph = true
[]
(assessment/TRISO/validation/AGR-34/Compacts/Cs/DTF/AGR-34_dtf_Cs.i)
[Variables]
[conc_Cs_dtf]
initial_condition = 0.0
[]
[]
[AuxVariables]
[Cs_dtf_diff_coef]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[mass_Cs_dtf_dt]
type = TimeDerivative
variable = conc_Cs_dtf
extra_vector_tags = 'ref'
[]
[mass_Cs_dtf]
type = ArrheniusDiffusion
variable = conc_Cs_dtf
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs_dtf
extra_vector_tags = 'ref'
[]
[mass_source_Cs_dtf]
type = SpeciesSourceRate
variable = conc_Cs_dtf
property_name = Cs_dtf_generation
block = 'fuel'
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[Cs_dtf_diff_coef]
type = MaterialRealAux
variable = Cs_dtf_diff_coef
property = arrhenius_diffusion_coef_Cs_dtf
execute_on = timestep_end
[]
[]
[BCs]
[freesurf_conc_Cs_dtf]
type = DirichletBC
variable = conc_Cs_dtf
boundary = exterior
value = 0.0
[]
[]
[Materials]
### Kernel Properties
[fuel_conc_Cs_dtf]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 5.6e-8 # m^2/s
q1 = 209e3 # J/mol
d2 = 5.2e-4 # m^2/s
q2 = 362e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs_dtf
[]
[mass_source_Cs_dtf_property]
type = SpeciesSourceMaterial
property_name = Cs_dtf_generation
kind = Cs
block = fuel
[]
### PyC properties
[IPyC_conc_Cs_dtf]
type = ArrheniusDiffusionCoef
block = PyC
d1 = 1.0e-6 # m^2/s
q1 = 0.0
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs_dtf
[]
[]
[Postprocessors]
### Release
[release_Cs_dtf_inc]
type = SideIntegralMassFlux
variable = conc_Cs_dtf
boundary = exterior
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs_dtf
execute_on = 'initial timestep_end'
[]
[released_Cs_dtf]
type = TimeIntegratedPostprocessor # computes time integration of value
value = release_Cs_dtf_inc
execute_on = 'initial timestep_end'
[]
[total_Cs_dtf]
type = ElementIntegralMaterialProperty
mat_prop = Cs_dtf_generation_total
block = 'fuel'
execute_on = 'initial timestep_end'
[]
[x_Cs_dtf_released]
type = FractionalRelease
released = released_Cs_dtf
total = total_Cs_dtf
execute_on = 'initial timestep_end'
[]
[retained_Cs_dtf]
type = ElementIntegralVariablePostprocessor
variable = conc_Cs_dtf
execute_on = 'initial timestep_end'
[]
[]
(assessment/TRISO/validation/AGR-1/AGR-1_Sr.i)
[Variables]
[conc_Sr]
initial_condition = 0.0
scaling = 1e14
[]
[]
[AuxVariables]
[Sr_diff_coef]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[mass_Sr_dt]
type = MassLumpedTimeDerivative # Sr has extremely low diffusivity in the kernel, and the use of MassLumpedTimeDerivative can mitigate solution oscillation.
variable = conc_Sr
[]
[mass_Sr]
type = ArrheniusDiffusion
variable = conc_Sr
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
extra_vector_tags = 'ref'
[]
[mass_source_Sr]
type = SpeciesSourceRate
variable = conc_Sr
property_name = Sr_generation
block = 'fuel OPyC'
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[Sr_diff_coef]
type = MaterialRealAux
variable = Sr_diff_coef
property = arrhenius_diffusion_coef_Sr
execute_on = timestep_end
[]
[]
[BCs]
[freesurf_conc_Sr]
type = DirichletBC
variable = conc_Sr
boundary = exterior
value = 0.0
[]
[]
[Materials]
# Arrhenius diffusion coefficients for kernel, PyC, and SiC
# come from IAEA TECDOC-978, French parameters.
[fuel_conc_Sr]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 2.2e-3 # m^2/s
q1 = 488e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
[]
[mass_source_Sr_property]
type = SpeciesSourceMaterial
property_name = Sr_generation
kind = Sr
block = fuel
[]
### Buffer Properties
[buffer_conc_Sr]
type = ArrheniusDiffusionCoef
block = buffer
d1 = 1e-8 # m^2/s
q1 = 0.0
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
[]
### IPyC properties
[IPyC_conc_Sr]
type = ArrheniusDiffusionCoef
block = IPyC
d1 = 2.3e-6 # m^2/s
q1 = 197e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
[]
### SiC properties
[SiC_conc_Sr]
type = ArrheniusDiffusionCoef
block = SiC
d1 = 1.2e-9 # m^2/s
q1 = 205e3 # J/mol
d2 = 1.8e6 # m^2/s
q2 = 791e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
[]
### OPyC properties
[OPyC_conc_Sr]
type = ArrheniusDiffusionCoef
block = OPyC
d1 = 2.3e-6 # m^2/s
q1 = 197e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
[]
[mass_source_Sr_property_OPyC]
type = SpeciesSourceMaterial
property_name = Sr_generation
kind = Sr
block = OPyC
#value = impurities * vol_kernel / vol_opyc
#value = 1.59e-6 * 4.07e-11 / 9.16e-11 # for UCO
#value = 1.57e-6 * 6.85e-11 / 1.18e-10 # for UO2
value = ${mass_source_property_OPyC}
[]
[]
[Postprocessors]
[release_Sr_inc]
type = SideIntegralMassFlux
variable = conc_Sr
boundary = exterior
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
execute_on = 'initial timestep_end'
[]
[released_Sr]
type = TimeIntegratedPostprocessor
value = release_Sr_inc
execute_on = 'initial timestep_end'
[]
[total_Sr]
type = ElementIntegralMaterialProperty
mat_prop = Sr_generation_total
block = 'fuel OPyC'
execute_on = 'initial timestep_end'
[]
[x_Sr_released]
type = FractionalRelease
released = released_Sr
total = total_Sr
execute_on = 'initial timestep_end'
[]
[x_Sr_released_safety]
type = FractionalRelease
released = released_Sr
total = total_Sr
execute_on = 'initial timestep_end'
start_time = 55209600
safety_fraction_type = net
[]
[retained_Sr]
type = ElementIntegralVariablePostprocessor
variable = conc_Sr
execute_on = 'initial timestep_end'
[]
[]
(test/tests/species_source/Kr_exact.i)
#
# This test checks whether the species source for krypton is operating
# as intended. The amount of strontium produced in SpeciesSourceMaterial
# is checked against the amount computed through a ParsedMaterial.
#
# If correct, the 'diff' Postprocessor will have a value close to zero,
# and the 'fraction' Postprocessor will be one.
#
[GlobalParams]
initial_enrichment = 0.2
[]
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 1
[]
[]
[Variables]
[conc]
[]
[]
[AuxVariables]
[temperature]
initial_condition = 1000
[]
[]
[Kernels]
[conc_dt]
type = TimeDerivative
variable = conc
[]
[conc_diffusion]
type = ArrheniusDiffusion
variable = conc
arrhenius_prpty_name = diff_coef
[]
[conc_source]
type = SpeciesSourceRate
variable = conc
property_name = conc_generation
[]
[]
[BCs]
[conc]
type = FunctionDirichletBC
variable = conc
boundary = 'left right'
function = '.1 * t + .1'
[]
[]
[Materials]
[fission_rate]
type = GenericFunctionMaterial
prop_names = fission_rate
prop_values = 'if(t=0,0,t*t*1e17)'
[]
[diff_coef]
type = ArrheniusDiffusionCoef
temperature = temperature
d1 = 1e-6
q1 = 100e3
arrhenius_prpty_name = diff_coef
[]
[conc_generation]
type = SpeciesSourceMaterial
property_name = conc_generation
kind = Kr
[]
[conc_generation_exact]
type = ParsedMaterial
property_name = conc_generation_exact
material_property_names = 'fission_rate'
constant_names = 'c avo'
constant_expressions = '0.297 6.02214076e23'
expression = 'c/avo*fission_rate'
[]
[]
[Executioner]
type = Transient
num_steps = 10
[]
[Postprocessors]
[conc]
type = ElementIntegralMaterialProperty
mat_prop = conc_generation
execute_on = 'initial timestep_end'
[]
[conc_exact]
type = ElementIntegralMaterialProperty
mat_prop = conc_generation_exact
execute_on = 'initial timestep_end'
[]
[diff]
type = DifferencePostprocessor
value1 = 'conc'
value2 = 'conc_exact'
outputs = console
execute_on = 'initial timestep_end'
[]
[fraction]
type = FractionalRelease
released = conc
total = conc_exact
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
csv = true
[]
(test/tests/species_source/Sr_exact.i)
#
# This test checks whether the species source for strontium is operating
# as intended. The amount of strontium produced in SpeciesSourceMaterial
# is checked against the amount computed through a ParsedMaterial.
#
# If correct, the 'diff' Postprocessor will have a value close to zero,
# and the 'fraction' Postprocessor will be one.
#
[GlobalParams]
initial_enrichment = 0.2
[]
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 1
[]
[]
[Variables]
[conc]
[]
[]
[AuxVariables]
[temperature]
initial_condition = 1000
[]
[]
[Kernels]
[conc_dt]
type = TimeDerivative
variable = conc
[]
[conc_diffusion]
type = ArrheniusDiffusion
variable = conc
arrhenius_prpty_name = diff_coef
[]
[conc_source]
type = SpeciesSourceRate
variable = conc
property_name = conc_generation
[]
[]
[BCs]
[conc]
type = FunctionDirichletBC
variable = conc
boundary = 'left right'
function = '.1 * t + .1'
[]
[]
[Materials]
[burnup]
type = GenericFunctionMaterial
prop_names = burnup
prop_values = '0.01*t'
[]
[fission_rate]
type = GenericFunctionMaterial
prop_names = fission_rate
prop_values = 'if(t=0,0,1e19)'
[]
[diff_coef]
type = ArrheniusDiffusionCoef
temperature = temperature
d1 = 1e-6
q1 = 100e3
arrhenius_prpty_name = diff_coef
[]
[conc_generation]
type = SpeciesSourceMaterial
property_name = conc_generation
kind = Sr
[]
[conc_generation_exact]
type = ParsedMaterial
property_name = conc_generation_exact
material_property_names = 'burnup fission_rate'
constant_names = 'a1 a2 b1 b2 e limit avo'
constant_expressions = '0.11754 0.11819 -0.21762 -0.15778 0.2 0.175 6.02214076e23'
expression = 'b:=if(burnup*100<1.0,1.0,burnup*100);
if(e<limit,a1*b^b1,a2*b^b2)/avo*fission_rate'
[]
[]
[Executioner]
type = Transient
num_steps = 10
[]
[Postprocessors]
[conc]
type = ElementIntegralMaterialProperty
mat_prop = conc_generation
execute_on = 'initial timestep_end'
[]
[conc_exact]
type = ElementIntegralMaterialProperty
mat_prop = conc_generation_exact
execute_on = 'initial timestep_end'
[]
[diff]
type = DifferencePostprocessor
value1 = 'conc'
value2 = 'conc_exact'
outputs = console
execute_on = 'initial timestep_end'
[]
[fraction]
type = FractionalRelease
released = conc
total = conc_exact
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
csv = true
[]
(assessment/TRISO/validation/AGR-1/AGR-1_Cs.i)
[Variables]
[conc_Cs]
initial_condition = 0.0
scaling = 1e14
[]
[]
[AuxVariables]
[Cs_diff_coef]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[mass_Cs_dt]
type = TimeDerivative
variable = conc_Cs
[]
[mass_Cs]
type = ArrheniusDiffusion
variable = conc_Cs
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
extra_vector_tags = 'ref'
[]
[mass_source_Cs]
type = SpeciesSourceRate
variable = conc_Cs
property_name = Cs_generation
block = 'fuel OPyC'
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[Cs_diff_coef]
type = MaterialRealAux
variable = Cs_diff_coef
property = arrhenius_diffusion_coef_Cs
execute_on = timestep_end
[]
[]
[BCs]
[freesurf_conc_Cs]
type = DirichletBC
variable = conc_Cs
boundary = exterior
value = 0.0
[]
[]
[Materials]
# Arrhenius diffusion coefficients for kernel, PyC, and SiC
# come from IAEA TECDOC-978, French parameters.
[fuel_conc_Cs]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 5.6e-8 # m^2/s
q1 = 209e3 # J/mol
d2 = 5.2e-4 # m^2/s
q2 = 362e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[mass_source_Cs_property]
type = SpeciesSourceMaterial
property_name = Cs_generation
kind = Cs
block = fuel
[]
### Buffer Properties
[buffer_conc_Cs]
type = ArrheniusDiffusionCoef
block = buffer
d1 = 1e-8 # m^2/s
q1 = 0.0
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
### IPyC properties
[IPyC_conc_Cs]
type = ArrheniusDiffusionCoef
block = IPyC
d1 = 6.3e-8 # m^2/s
q1 = 222e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
### SiC properties
[SiC_conc_Cs]
type = ArrheniusDiffusionCoef
block = SiC
# IAEA TECDOC-978, p. 442
d1 = 5.5e-14 # m^2/s
# The 1.1 is a factor applied in PARFUME
d1_function = 'exp(1.1*t/5e25)'
d1_function_variable = fast_neutron_fluence
q1 = 125e3 # J/mol
d2 = 1.60e-2 # m^2/s
q2 = 514e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
### OPyC properties
[OPyC_conc_Cs]
type = ArrheniusDiffusionCoef
block = OPyC
d1 = 6.3e-8 # m^2/s
q1 = 222e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[mass_source_Cs_property_OPyC]
type = SpeciesSourceMaterial
property_name = Cs_generation
kind = Cs
block = OPyC
#value = impurities * vol_kernel / vol_opyc
#value = 1.59e-6 * 4.07e-11 / 9.16e-11 # for UCO
#value = 1.57e-6 * 6.85e-11 / 1.18e-10 # for UO2
value = ${mass_source_property_OPyC}
[]
[]
[Postprocessors]
[release_Cs_inc]
type = SideIntegralMassFlux
variable = conc_Cs
boundary = exterior
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
execute_on = 'initial timestep_end'
[]
[released_Cs]
type = TimeIntegratedPostprocessor
value = release_Cs_inc
execute_on = 'initial timestep_end'
[]
[total_Cs]
type = ElementIntegralMaterialProperty
mat_prop = Cs_generation_total
block = 'fuel OPyC'
execute_on = 'initial timestep_end'
[]
[x_Cs_released]
type = FractionalRelease
released = released_Cs
total = total_Cs
execute_on = 'initial timestep_end'
[]
[x_Cs_released_safety]
type = FractionalRelease
released = released_Cs
total = total_Cs
execute_on = 'initial timestep_end'
start_time = 55209600
safety_fraction_type = net
[]
[retained_Cs]
type = ElementIntegralVariablePostprocessor
variable = conc_Cs
execute_on = 'initial timestep_end'
[]
[]
(assessment/TRISO/benchmark/IAEA_CRP-6/diffusion/case_3b/case_3b.i)
[GlobalParams]
order = SECOND
family = LAGRANGE
[]
[Mesh]
coord_type = RSPHERICAL
[gen]
type = TRISO1DMeshGenerator
elem_type = EDGE3
coordinates = '0 250e-6 350e-6 390e-6 425e-6 465e-6'
mesh_density = '50 30 15 15 15'
block_names = 'fuel buffer IPyC SiC OPyC'
[]
[]
[Problem]
[]
[Variables]
[conc_Cs]
[]
[]
[ICs]
[conc_Cs]
type = ConstantIC
block = fuel
value = 1
variable = conc_Cs
[]
[]
[AuxVariables]
[temperature]
initial_condition = 2073.15
[]
[Cs_diff_coef]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[mass_Cs_dt]
type = TimeDerivative
variable = conc_Cs
[]
[mass_Cs]
type = ArrheniusDiffusion
variable = conc_Cs
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
temperature = temperature
[]
[]
[AuxKernels]
[Cs_diff_coef]
type = MaterialRealAux
variable = Cs_diff_coef
property = arrhenius_diffusion_coef_Cs
execute_on = timestep_end
[]
[]
[BCs]
[freesurf_conc_Cs]
type = DirichletBC
variable = conc_Cs
boundary = exterior
value = 0.0
[]
[]
[Materials]
[fuel_conc_Cs]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 5.6e-8 # m^2/s
q1 = 209e3 # J/mol
d2 = 5.2e-4
q2 = 362e3
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[buffer_conc_Cs]
type = ArrheniusDiffusionCoef
block = buffer
d1 = 1e-8 # m^2/s
q1 = 0 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[IPyC_conc_Cs]
type = ArrheniusDiffusionCoef
block = IPyC
d1 = 6.3e-8 # m^2/s
q1 = 222e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[SiC_conc_Cs]
type = ArrheniusDiffusionCoef
block = SiC
# 5.5e-14*exp(2/5) = 8.2e-14
d1 = 8.2e-14 # m^2/s
q1 = 125e3 # J/mol
d2 = 1.6e-2
q2 = 514e3
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[OPyC_conc_Cs]
type = ArrheniusDiffusionCoef
block = OPyC
d1 = 6.3e-8 # m^2/s
q1 = 222e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[]
[Debug]
show_var_residual_norms = true
show_var_residual = 'conc_Cs'
[]
[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 = 1e-20
nl_max_its = 50
l_tol = 1e-4
l_max_its = 50
start_time = 0.0
end_time = 720000
num_steps = 700
dt = 1800
dtmax = 1800
dtmin = 1800
[]
[Postprocessors]
[release_Cs_inc]
type = SideIntegralMassFlux
variable = conc_Cs
boundary = exterior
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
execute_on = 'initial timestep_end'
[]
[released_Cs]
type = TimeIntegratedPostprocessor
value = release_Cs_inc
execute_on = 'initial timestep_end'
[]
[total_Cs]
type = ElementIntegralVariablePostprocessor
variable = conc_Cs
execute_on = 'initial'
[]
[x_Cs_released]
type = FractionalRelease
released = released_Cs
total = total_Cs
[]
[retained_Cs]
type = ElementIntegralVariablePostprocessor
variable = conc_Cs
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = false
exodus = true
[console]
type = Console
time_step_interval = 1
[]
[out]
type = CSV
execute_on = final
[]
[]
(assessment/TRISO/validation/AGR-34/Compacts/Sr/Driver/AGR-34_driver_Sr.i)
[Variables]
[conc_Sr]
initial_condition = 0.0
[]
[]
[AuxVariables]
[Sr_diff_coef]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[mass_Sr_dt]
type = TimeDerivative
variable = conc_Sr
extra_vector_tags = 'ref'
[]
[mass_Sr]
type = ArrheniusDiffusion
variable = conc_Sr
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
extra_vector_tags = 'ref'
[]
[mass_source_Sr]
type = SpeciesSourceRate
variable = conc_Sr
property_name = Sr_generation
block = 'fuel'
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[Sr_diff_coef]
type = MaterialRealAux
variable = Sr_diff_coef
property = arrhenius_diffusion_coef_Sr
execute_on = timestep_end
[]
[]
[BCs]
[freesurf_conc_Sr]
type = DirichletBC
variable = conc_Sr
boundary = exterior
value = 0.0
[]
[]
[Materials]
# Arrhenius diffusion coefficients for kernel, PyC, and SiC
# come from IAEA TECDOC-978, French parameters.
[fuel_conc_Sr]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 2.2e-3 # m^2/s
q1 = 488e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
[]
[mass_source_Sr_property]
type = SpeciesSourceMaterial
property_name = Sr_generation
kind = Sr
block = fuel
[]
### Buffer Properties
[buffer_conc_Sr]
type = ArrheniusDiffusionCoef
block = buffer
d1 = 1e-8 # m^2/s
q1 = 0.0
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
[]
### IPyC properties
[IPyC_conc_Sr]
type = ArrheniusDiffusionCoef
block = IPyC
d1 = 2.3e-6 # m^2/s
q1 = 197e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
[]
### SiC properties
[SiC_conc_Sr]
type = ArrheniusDiffusionCoef
block = SiC
d1 = 1.2e-9 # m^2/s
q1 = 205e3 # J/mol
d2 = 1.8e6 # m^2/s
q2 = 791e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
[]
### OPyC properties
[OPyC_conc_Sr]
type = ArrheniusDiffusionCoef
block = OPyC
d1 = 2.3e-6 # m^2/s
q1 = 197e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
[]
[]
[Postprocessors]
### Release
[release_Sr_driver_inc]
type = SideIntegralMassFlux
variable = conc_Sr
boundary = exterior
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
execute_on = 'initial timestep_end'
[]
[released_Sr_driver]
type = TimeIntegratedPostprocessor # computes time integration of value
value = release_Sr_driver_inc
execute_on = 'initial timestep_end'
[]
[total_Sr_driver]
type = ElementIntegralMaterialProperty
mat_prop = Sr_generation_total
block = 'fuel'
execute_on = 'initial timestep_end'
[]
[x_Sr_driver_released]
type = FractionalRelease
released = released_Sr_driver
total = total_Sr_driver
execute_on = 'initial timestep_end'
[]
[retained_Sr_driver]
type = ElementIntegralVariablePostprocessor
variable = conc_Sr
execute_on = 'initial timestep_end'
[]
[]
(test/tests/fcci_ht9/eutectic_thickness/fcci_ht9.i)
# The 1D solution for diffusion from a boundary can be found in the Fick's law
# of diffusion article on Wikipedia. It involves an erfc and depends on x and
# time. The problem is a fixed boundary at a value of 1 diffusing into a medium
# with an initial condition of 0. The steep transient at the beginning of the
# simulation creates difficulty in achieving the exact solution in time.
# The coarse solution is provided below since the exact solution requires
# very small time steps. However, this test is not for the diffusion kernels,
# but is for the calculation of the thickness which depends on the mass flux
# out of the boundary.
# As a reference: The right_value of the exact solution at 0.05 seconds should
# be 0.003130805. Note that the analytical solution uses 2 as n0.
# With nx = 1000 and a dt = 0.0001 seconds, the right_value at 0.05 seconds
# is 0.003204029.
# Coarse Solution:
# time,right_flux,right_thickness,right_value
# 0,0,0,0
# 0.05,-0.021989027413385,-1.7348485913807e-07,0.027761147109407
# 0.1,-0.047042907098608,-5.4463506774072e-07,0.086877954478744
# 0.15,-0.062085213073751,-1.0344632098486e-06,0.16467249964566
# 0.2,-0.066877315681197,-1.5620991744762e-06,0.24832904552976
# 0.25,-0.065297810311153,-2.0772734571259e-06,0.3299315649044
# 0.3,-0.060671966742415,-2.5559516362949e-06,0.40571370028784
# 0.35,-0.054962463937954,-2.9895840628184e-06,0.47434541142527
# 0.4,-0.049146161838088,-3.3773281318656e-06,0.53570540945177
# 0.45,-0.043652181109991,-3.7217268334802e-06,0.59020196108017
# 0.5,-0.038639137318775,-4.026574572716e-06,0.63843821968088
[Mesh]
[mesh]
type = GeneratedMeshGenerator
dim = 1
nx = 10
elem_type = EDGE3
[]
[]
[AuxVariables]
[thickness]
order = CONSTANT
family = MONOMIAL
[]
[]
[Variables]
[conc]
order = SECOND
family = LAGRANGE
initial_condition = 0.0
scaling = 1e-5
[]
[]
[AuxKernels]
[fcci_layer]
boundary = right
execute_on = timestep_end
method = 1
postproc_flux = right_flux
type = ThicknessLayerFCCI
variable = thickness
[]
[]
[Kernels]
[mass_ie]
type = TimeDerivative
variable = conc
[]
[mass]
type = ArrheniusDiffusion
variable = conc
arrhenius_prpty_name = arr_diff
[]
[]
[BCs]
[left]
type = DirichletBC
variable = conc
boundary = left
value = 1
[]
[right]
type = DiffusionFluxBC
# Assuming D = 1 since it doesn't use a material property anywhere.
variable = conc
boundary = right
[]
[]
[Materials]
[arr_diff]
type = GenericConstantMaterial
prop_names = arr_diff
prop_values = 1.0
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
start_time = 0.0
end_time = 0.5
[TimeStepper]
type = ConstantDT
dt = 0.05
[]
[]
[Postprocessors]
[right_flux]
type = SideIntegralMassFlux
variable = conc
boundary = right
arrhenius_prpty_name = arr_diff
[]
[right_thickness]
type = SideAverageValue
variable = thickness
boundary = right
[]
[right_value]
type = AverageNodalVariableValue
boundary = right
variable = conc
[]
[]
[Outputs]
exodus = false
csv = true
[]
(assessment/TRISO/validation/AGR-34/SharedFiles/capsule_driver.i)
kernel_radius = 178.65e-6
buffer_thickness = 109.7e-6
IPyC_thickness = 40.4e-6
SiC_thickness = 33.5e-6
OPyC_thickness = 41.3e-6
buffer_density = 1100
ipyc_density = 1904
opyc_density = 1901
sic_density = 3203
coordinates1 = '${fparse kernel_radius}'
coordinates2 = '${fparse coordinates1+buffer_thickness}'
coordinates3 = '${fparse coordinates2+IPyC_thickness}'
coordinates4 = '${fparse coordinates3+SiC_thickness}'
coordinates5 = '${fparse coordinates4+OPyC_thickness}'
[GlobalParams]
order = SECOND
family = LAGRANGE
initial_enrichment = 0.19717 # [wt-]
energy_per_fission = 3.204e-11 # [J/fission]
O_U = 1.430 # Initial Oxygen to Uranium atom ratio
C_U = 0.361 # Initial Carbon to Uranium atom ratio
[]
[Mesh]
coord_type = RSPHERICAL
[mesh]
type = TRISO1DMeshGenerator
elem_type = EDGE3
coordinates = '0 ${coordinates1} ${coordinates2} ${coordinates3} ${coordinates4} ${coordinates5}'
mesh_density = '18 14 12 16 16'
block_names = 'fuel buffer IPyC SiC OPyC'
[]
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[UserObjects]
[particle_geometry]
type = TRISOGeometry
outer_OPyC = OPyC_outer_boundary
outer_SiC = SiC_outer_boundary
outer_IPyC = IPyC_outer_boundary
inner_IPyC = IPyC_inner_boundary
outer_buffer = buffer_outer_boundary
outer_kernel = fuel_outer_boundary
include_particle = true
include_pebble = false
[]
[]
[Variables]
[temperature]
initial_condition = 1200
[]
[conc_Ag]
initial_condition = 0.0
scaling = 1e12 #1e18
[]
[conc_Cs]
initial_condition = 0.0
scaling = 1e12 #1e18
[]
[conc_Sr]
initial_condition = 0.0
scaling = 1e12 #1e18
[]
[]
[AuxVariables]
[fission_rate]
order = CONSTANT
family = MONOMIAL
[]
[burnup]
order = CONSTANT
family = MONOMIAL
[]
[fast_neutron_flux]
order = CONSTANT
family = MONOMIAL
[]
[fast_neutron_fluence]
order = CONSTANT
family = MONOMIAL
[]
[fis_gas_produced]
order = CONSTANT
family = MONOMIAL
[]
[fis_gas_released]
order = CONSTANT
family = MONOMIAL
[]
[Ag_diff_coef]
order = CONSTANT
family = MONOMIAL
[]
[Cs_diff_coef]
order = CONSTANT
family = MONOMIAL
[]
[Sr_diff_coef]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[temp_bc]
type = PiecewiseLinear
x_index_in_file = 0
y_index_in_file = 1
xy_in_file_only = false
format = columns
data_file='AGR-34_capsule_daily_data/Cap1Temps.csv'
[]
[power_history]
type = PiecewiseLinear
x = '0 76e6'
y = '1 1'
[]
[fission_rate]
type = LinearCombinationFunction
functions = power_history
w = 4.8156e+19
[]
[]
[Kernels]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temperature
extra_vector_tags = 'ref'
[]
[heat]
type = HeatConduction
variable = temperature
extra_vector_tags = 'ref'
[]
[heat_source]
type = NeutronHeatSource
variable = temperature
block = fuel
fission_rate = fission_rate
extra_vector_tags = 'ref'
[]
[mass_Ag_dt]
type = TimeDerivative
variable = conc_Ag
extra_vector_tags = 'ref'
[]
[mass_Ag]
type = ArrheniusDiffusion
variable = conc_Ag
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
extra_vector_tags = 'ref'
[]
[mass_source_Ag]
type = SpeciesSourceRate
variable = conc_Ag
property_name = Ag_generation
block = fuel
extra_vector_tags = 'ref'
[]
[mass_Cs_dt]
type = TimeDerivative
variable = conc_Cs
extra_vector_tags = 'ref'
[]
[mass_Cs]
type = ArrheniusDiffusion
variable = conc_Cs
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
extra_vector_tags = 'ref'
[]
[mass_source_Cs]
type = SpeciesSourceRate
variable = conc_Cs
property_name = Cs_generation
block = fuel
extra_vector_tags = 'ref'
[]
[mass_Sr_dt]
type = TimeDerivative
variable = conc_Sr
extra_vector_tags = 'ref'
[]
[mass_Sr]
type = ArrheniusDiffusion
variable = conc_Sr
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
extra_vector_tags = 'ref'
[]
[mass_source_Sr]
type = SpeciesSourceRate
variable = conc_Sr
property_name = Sr_generation
block = fuel
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[fissionrate]
type = MaterialRealAux
variable = fission_rate
property = fission_rate
block = fuel
execute_on = timestep_begin
[]
[burnup]
type = MaterialRealAux
variable = burnup
property = burnup
block = fuel
execute_on = timestep_begin
[]
[fast_neutron_flux]
type = MaterialRealAux
variable = fast_neutron_flux
property = fast_neutron_flux
execute_on = timestep_begin
[]
[fast_neutron_fluence]
type = MaterialRealAux
variable = fast_neutron_fluence
property = fast_neutron_fluence
execute_on = timestep_begin
[]
[Ag_diff_coef]
type = MaterialRealAux
variable = Ag_diff_coef
property = arrhenius_diffusion_coef_Ag
execute_on = timestep_end
[]
[Cs_diff_coef]
type = MaterialRealAux
variable = Cs_diff_coef
property = arrhenius_diffusion_coef_Cs
execute_on = timestep_end
[]
[Sr_diff_coef]
type = MaterialRealAux
variable = Sr_diff_coef
property = arrhenius_diffusion_coef_Sr
execute_on = timestep_end
[]
[]
[BCs]
[freesurf_temp]
type = FunctionDirichletBC
variable = temperature
function = temp_bc
boundary = exterior
extra_vector_tags = 'ref'
[]
[freesurf_conc_Ag]
type = DirichletBC
variable = conc_Ag
boundary = exterior
value = 0.0
[]
[freesurf_conc_Cs]
type = DirichletBC
variable = conc_Cs
boundary = exterior
value = 0.0
[]
[freesurf_conc_Sr]
type = DirichletBC
variable = conc_Sr
boundary = exterior
value = 0.0
[]
[]
[Materials]
[fission_rate]
type = GenericFunctionMaterial
prop_names = fission_rate
prop_values = fission_rate
[]
[fast_neutron_flux]
type = FastNeutronFlux
calculate_fluence = true
flux_function = power_history
factor = 0.5519e+18
[]
[UCO_burnup]
type = TRISOBurnup
initial_density = ${initial_fuel_density}
[]
[UCO_thermal]
type = UCOThermal
block = fuel
temperature = temperature
[]
[UCO_density]
type = StrainAdjustedDensity
block = fuel
strain_free_density = 11098.0
[]
[fission_gas_release]
type = UCOFGR
block = fuel
average_grain_radius = 10e-6
temperature = temperature
triso_geometry = particle_geometry
[]
# Arrhenius diffusion coefficients for kernel, PyC, and SiC
# come from IAEA TECDOC-978, French parameters.
[fuel_conc_Ag]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 6.7e-9 # m^2/s
q1 = 165e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[fuel_conc_Cs]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 5.6e-8 # m^2/s
q1 = 209e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[fuel_conc_Sr]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 2.2e-3 # m^2/s
q1 = 488e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
[]
[mass_source_Ag_property]
type = SpeciesSourceMaterial
property_name = Ag_generation
kind = Ag
block = fuel
[]
[mass_source_Cs_property]
type = SpeciesSourceMaterial
property_name = Cs_generation
kind = Cs
block = fuel
[]
[mass_source_Sr_property]
type = SpeciesSourceMaterial
property_name = Sr_generation
kind = Sr
block = fuel
[]
### Buffer Properties
[buffer_thermal]
type = BufferThermal
block = buffer
initial_density = ${buffer_density}
[]
[Buffer_density]
type = StrainAdjustedDensity
block = buffer
strain_free_density = ${buffer_density}
[]
[buffer_conc_Ag]
type = ArrheniusDiffusionCoef
block = buffer
d1 = 1e-8 # m^2/s
q1 = 0.0
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[buffer_conc_Cs]
type = ArrheniusDiffusionCoef
block = buffer
d1 = 1e-8 # m^2/s
q1 = 0.0
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[buffer_conc_Sr]
type = ArrheniusDiffusionCoef
block = buffer
d1 = 1e-8 # m^2/s
q1 = 0.0
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
[]
### IPyC properties
[IPyC_thermal]
type = HeatConductionMaterial
block = IPyC
thermal_conductivity = 4.0
specific_heat = 720.0
[]
[IPyC_density]
type = StrainAdjustedDensity
block = IPyC
strain_free_density = ${ipyc_density}
[]
[IPyC_conc_Ag]
type = ArrheniusDiffusionCoef
block = IPyC
d1 = 5.3e-9 # m^2/s
q1 = 154e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[IPyC_conc_Cs]
type = ArrheniusDiffusionCoef
block = IPyC
d1 = 6.3e-8 # m^2/s
q1 = 222e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[IPyC_conc_Sr]
type = ArrheniusDiffusionCoef
block = IPyC
d1 = 2.3e-6 # m^2/s
q1 = 197e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
[]
### SiC properties
[SiC_thermal]
type = MonolithicSiCThermal
block = SiC
temperature = temperature
thermal_conductivity_model = miller
[]
[SiC_density]
type = StrainAdjustedDensity
block = SiC
strain_free_density = ${sic_density}
[]
[SiC_conc_Ag]
type = ArrheniusDiffusionCoef
block = SiC
d1 = 3.6e-9 # m^2/s
q1 = 215e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[SiC_conc_Cs]
type = ArrheniusDiffusionCoef
block = SiC
d1 = 5.5e-14 # m^2/s
q1 = 125e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[SiC_conc_Sr]
type = ArrheniusDiffusionCoef
block = SiC
d1 = 1.2e-9 # m^2/s
q1 = 205e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
[]
### OPyC properties
[OPyC_thermal_conductivity]
type = HeatConductionMaterial
block = OPyC
thermal_conductivity = 4.0
specific_heat = 720.0
[]
[OPyC_density]
type = StrainAdjustedDensity
block = OPyC
strain_free_density = ${opyc_density}
[]
[OPyC_conc_Ag]
type = ArrheniusDiffusionCoef
block = OPyC
d1 = 5.3e-9 # m^2/s
q1 = 154e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[OPyC_conc_Cs]
type = ArrheniusDiffusionCoef
block = OPyC
d1 = 6.3e-8 # m^2/s
q1 = 222e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[OPyC_conc_Sr]
type = ArrheniusDiffusionCoef
block = OPyC
d1 = 2.3e-6 # m^2/s
q1 = 197e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
[]
[]
[Dampers]
[temp]
type = MaxIncrement
variable = temperature
max_increment = 50
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Debug]
show_var_residual_norms = true
show_var_residual = 'temperature conc_Ag conc_Cs conc_Sr'
[]
[Executioner]
type = Transient
solve_type = 'NEWTON'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
line_search = 'none'
nl_rel_tol = 1e-8
nl_abs_tol = 1e-8
nl_max_its = 20
l_tol = 1e-4
l_max_its = 50
start_time = 0.0
dt = 86400
end_time = 31890240
[]
[Postprocessors]
[release_heat_inc]
type = SideIntegralMassFlux
variable = temperature
boundary = exterior
arrhenius_prpty_name = thermal_conductivity
execute_on = 'initial timestep_end'
[]
[release_Ag_inc]
type = SideIntegralMassFlux
variable = conc_Ag
boundary = exterior
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
execute_on = 'initial timestep_end'
[]
[released_Ag]
type = TimeIntegratedPostprocessor # computes time integration of value
value = release_Ag_inc
execute_on = 'initial timestep_end'
[]
[total_Ag]
type = ElementIntegralMaterialProperty
mat_prop = Ag_generation_total
block = fuel
execute_on = 'initial timestep_end'
[]
[x_Ag_released]
type = FractionalRelease
released = released_Ag
total = total_Ag
[]
[retained_Ag]
type = ElementIntegralVariablePostprocessor
variable = conc_Ag
[]
[release_Cs_inc]
type = SideIntegralMassFlux
variable = conc_Cs
boundary = exterior
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
execute_on = 'initial timestep_end'
[]
[released_Cs]
type = TimeIntegratedPostprocessor
value = release_Cs_inc
execute_on = 'initial timestep_end'
[]
[total_Cs]
type = ElementIntegralMaterialProperty
mat_prop = Cs_generation_total
block = fuel
execute_on = 'initial timestep_end'
[]
[x_Cs_released]
type = FractionalRelease
released = released_Cs
total = total_Cs
[]
[retained_Cs]
type = ElementIntegralVariablePostprocessor
variable = conc_Cs
[]
[release_Sr_inc]
type = SideIntegralMassFlux
variable = conc_Sr
boundary = exterior
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
execute_on = 'initial timestep_end'
[]
[released_Sr]
type = TimeIntegratedPostprocessor
value = release_Sr_inc
execute_on = 'initial timestep_end'
[]
[total_Sr]
type = ElementIntegralMaterialProperty
mat_prop = Sr_generation_total
block = fuel
execute_on = 'initial timestep_end'
[]
[x_Sr_released]
type = FractionalRelease
released = released_Sr
total = total_Sr
[]
[retained_Sr]
type = ElementIntegralVariablePostprocessor
variable = conc_Sr
[]
[fis_gas_produced]
type = ElementIntegralMaterialProperty
mat_prop = fis_gas_produced
block = fuel
execute_on = 'initial timestep_end'
[]
[fis_gas_released]
type = ElementIntegralMaterialProperty
mat_prop = fis_gas_released
block = fuel
execute_on = 'initial timestep_end'
[]
### Postprocessors for CO production
[total_fission_rate]
type = ElementIntegralPower
variable = temperature
fission_rate = fission_rate
block = fuel
energy_per_fission = 1.0
execute_on = 'initial timestep_end'
[]
[total_fissions]
type = TimeIntegratedPostprocessor
value = total_fission_rate
execute_on = 'initial timestep_end'
[]
##### irradiation conditions
[particle_power]
type = ElementIntegralPower
variable = temperature
use_material_fission_rate = true
fission_rate_material = fission_rate
block = fuel
execute_on = 'initial timestep_end'
[]
[max_fluence]
type = ElementExtremeValue
variable = fast_neutron_fluence
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[max_burnup]
type = ElementExtremeValue
variable = burnup
block = fuel
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = false
print_linear_converged_reason = false
print_nonlinear_converged_reason = false
exodus = false
csv = true
[]
(assessment/TRISO/validation/AGR-1/AGR-1_Ag.i)
[Variables]
[conc_Ag]
initial_condition = 0.0
scaling = 1e14
[]
[]
[AuxVariables]
[Ag_diff_coef]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[mass_Ag_dt]
type = TimeDerivative
variable = conc_Ag
[]
[mass_Ag]
type = ArrheniusDiffusion
variable = conc_Ag
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
extra_vector_tags = 'ref'
[]
[mass_source_Ag]
type = SpeciesSourceRate
variable = conc_Ag
property_name = Ag_generation
block = 'fuel OPyC'
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[Ag_diff_coef]
type = MaterialRealAux
variable = Ag_diff_coef
property = arrhenius_diffusion_coef_Ag
execute_on = timestep_end
[]
[]
[BCs]
[freesurf_conc_Ag]
type = DirichletBC
variable = conc_Ag
boundary = exterior
value = 0.0
[]
[]
[Materials]
# Arrhenius diffusion coefficients for kernel, PyC, and SiC
# come from IAEA TECDOC-978, French parameters.
[fuel_conc_Ag]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 6.7e-9 # m^2/s
q1 = 165e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[mass_source_Ag_property]
type = SpeciesSourceMaterial
property_name = Ag_generation
kind = Ag
block = fuel
[]
### Buffer Properties
[buffer_conc_Ag]
type = ArrheniusDiffusionCoef
block = buffer
d1 = 1e-8 # m^2/s
q1 = 0.0
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
### IPyC properties
[IPyC_conc_Ag]
type = ArrheniusDiffusionCoef
block = IPyC
d1 = 5.3e-9 # m^2/s
q1 = 154e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
### SiC properties
[SiC_conc_Ag]
type = ArrheniusDiffusionCoef
block = SiC
d1 = 3.6e-9 # m^2/s
q1 = 215e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
### OPyC properties
[OPyC_conc_Ag]
type = ArrheniusDiffusionCoef
block = OPyC
d1 = 5.3e-9 # m^2/s
q1 = 154e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[mass_source_Ag_property_OPyC]
type = SpeciesSourceMaterial
property_name = Ag_generation
kind = Ag
block = OPyC
#value = impurities * vol_kernel / vol_opyc
#value = 1.59e-6 * 4.07e-11 / 9.16e-11 # for UCO
#value = 1.57e-6 * 6.85e-11 / 1.18e-10 # for UO2
value = ${mass_source_property_OPyC}
[]
[]
[Postprocessors]
[release_Ag_inc]
type = SideIntegralMassFlux
variable = conc_Ag
boundary = exterior
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
execute_on = 'initial timestep_end'
[]
[released_Ag]
type = TimeIntegratedPostprocessor
value = release_Ag_inc
execute_on = 'initial timestep_end'
[]
[total_Ag]
type = ElementIntegralMaterialProperty
mat_prop = Ag_generation_total
block = 'fuel OPyC'
execute_on = 'initial timestep_end'
[]
[x_Ag_released]
type = FractionalRelease
released = released_Ag
total = total_Ag
execute_on = 'initial timestep_end'
[]
[x_Ag_released_safety]
type = FractionalRelease
released = released_Ag
total = total_Ag
execute_on = 'initial timestep_end'
start_time = 55209600
safety_fraction_type = net
[]
[retained_Ag]
type = ElementIntegralVariablePostprocessor
variable = conc_Ag
execute_on = 'initial timestep_end'
[]
[]
(examples/TRISO/pebble/3D_pebble.i)
[GlobalParams]
order = FIRST
family = LAGRANGE
flux_conversion_factor = 0.85
energy_per_fission = 3.204e-11 #[J/fission]
[]
[Mesh]
[file]
type = FileMeshGenerator
file = pebble.e
[]
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[Distributions]
[normal_kernel_r]
type = TruncatedNormal
mean = 213.35e-6
standard_deviation = 4.4e-6
lower_bound = 1.9575e-04
upper_bound = 2.3095e-04
[]
[normal_buffer_t]
type = TruncatedNormal
mean = 98.9e-6
standard_deviation = 8.4e-6
lower_bound = 6.53e-05
upper_bound = 1.325e-04
[]
[normal_ipyc_t]
type = TruncatedNormal
mean = 40.4e-6
standard_deviation = 2.5e-6
lower_bound = 3.0400e-05
upper_bound = 5.0400e-05
[]
[normal_sic_t]
type = TruncatedNormal
mean = 35.2e-6
standard_deviation = 1.2e-6
lower_bound = 3.0400e-05
upper_bound = 4.0000e-05
[]
[normal_opyc_t]
type = TruncatedNormal
mean = 43.4e-6
standard_deviation = 2.9e-6
lower_bound = 3.1800e-05
upper_bound = 5.5000e-05
[]
[]
[Samplers]
[sample]
type = MonteCarlo
num_rows = 100
distributions = 'normal_kernel_r normal_buffer_t normal_ipyc_t normal_sic_t normal_opyc_t'
execute_on = 'PRE_MULTIAPP_SETUP'
[]
[]
[MultiApps]
[sub]
type = SamplerTransientMultiApp
input_files = triso_1d.i
sampler = sample
execute_on = 'TIMESTEP_BEGIN'
mode = normal
[]
[]
[DiracKernels]
[heat_source]
type = TRISOMonteCarloPointSource
variable = temperature
point_source_values = release_heat_inc
value_name = release_heat_inc:release_heat_inc
point_source_location = point_source_location
[]
[Cs_source]
type = TRISOMonteCarloPointSource
variable = conc_Cs
point_source_values = release_Cs_inc
value_name = release_Cs_inc:release_Cs_inc
point_source_location = point_source_location
[]
[]
[UserObjects]
[point_source_location]
type = TRISOMonteCarloPointSourceLocation
min_radius = 0.0138
max_radius = 0.018
geometry = SPHERE
sampler = sample
fuel_element_blocks = 2
particle_space = 0.0002
execute_on = 'INITIAL'
[]
[]
[Transfers]
[release_heat_inc]
type = SamplerPostprocessorTransfer
from_multi_app = sub
sampler = sample
to_vector_postprocessor = release_heat_inc
from_postprocessor = release_heat_inc
[]
[release_Cs_inc]
type = SamplerPostprocessorTransfer
from_multi_app = sub
sampler = sample
to_vector_postprocessor = release_Cs_inc
from_postprocessor = release_Cs_inc
[]
[sub_temp_bc]
type = SamplerPostprocessorTransfer
from_multi_app = sub
sampler = sample
to_vector_postprocessor = temp_bc
from_postprocessor = aver_temp_exterior
[]
[temp_bc]
type = MultiAppVectorPostprocessorTransfer
to_multi_app = sub
vector_postprocessor = sample_points
postprocessor = temp_bc
vector_name = temperature
[]
[]
[Controls]
[cmdline]
type = MultiAppSamplerControl
multi_app = sub
sampler = sample
param_names = 'kernel_radius buffer_thickness IPyC_thickness SiC_thickness OPyC_thickness'
[]
[]
[VectorPostprocessors]
[sample_points]
type = TRISOMonteCarloPointValueSampler
variable = temperature
execute_on = 'INITIAL TIMESTEP_BEGIN'
point_source_location = point_source_location
[]
[release_heat_inc]
type = StochasticResults
execute_on = 'TIMESTEP_BEGIN'
[]
[release_Cs_inc]
type = StochasticResults
execute_on = 'TIMESTEP_BEGIN'
[]
[heat_source_output]
type = TRISOMonteCarloPointSourceOutput
vector_postprocessor = release_heat_inc
value_name = release_heat_inc:release_heat_inc
point_source_location = point_source_location
[]
[Cs_source_output]
type = TRISOMonteCarloPointSourceOutput
vector_postprocessor = release_Cs_inc
value_name = release_Cs_inc:release_Cs_inc
point_source_location = point_source_location
[]
[temp_bc]
type = StochasticResults
execute_on = 'TIMESTEP_BEGIN'
[]
[temp_bc_output]
type = TRISOMonteCarloPointSourceOutput
vector_postprocessor = temp_bc
value_name = sub_temp_bc:aver_temp_exterior
point_source_location = point_source_location
[]
[]
[Variables]
[temperature]
initial_condition = 773.15
[]
[conc_Cs]
[]
[]
[AuxVariables]
[density]
order = CONSTANT
family = MONOMIAL
[]
[thermal_conductivity]
order = CONSTANT
family = MONOMIAL
[]
[specific_heat]
order = CONSTANT
family = MONOMIAL
[]
[Cs_diff_coef]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[power_history]
type = PiecewiseLinear
x = '0 1e3 4.51008e7' #change time (s) for desired EFPD
y = '0 1 1'
[]
[fission_rate]
type = LinearCombinationFunction
functions = power_history
w = 2.927e18
[]
[]
[Kernels]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temperature
extra_vector_tags = 'ref'
[]
[heat]
type = HeatConduction
variable = temperature
extra_vector_tags = 'ref'
[]
[mass_Cs_dt]
type = TimeDerivative
variable = conc_Cs
[]
[mass_Cs]
type = ArrheniusDiffusion
variable = conc_Cs
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[density]
type = MaterialRealAux
variable = density
property = density
block = '1 2 3'
execute_on = 'initial linear'
[]
[thermal_conductivity]
type = MaterialRealAux
variable = thermal_conductivity
property = thermal_conductivity
block = '1 2 3'
execute_on = timestep_end
[]
[specific_heat]
type = MaterialRealAux
variable = specific_heat
property = specific_heat
block = '1 2 3'
execute_on = timestep_end
[]
[Cs_diff_coef]
type = MaterialRealAux
variable = Cs_diff_coef
property = arrhenius_diffusion_coef_Cs
execute_on = timestep_end
[]
[]
[BCs]
[coolant_temp]
type = DirichletBC
variable = temperature
boundary = exterior
value = 773.15
[]
[freesurf_conc_Cs]
type = DirichletBC
variable = conc_Cs
boundary = exterior
value = 0.0
[]
[]
[Materials]
[fission_rate]
type = GenericFunctionMaterial
prop_names = fission_rate
prop_values = fission_rate
[]
[fast_neutron_flux]
type = FastNeutronFlux
calculate_fluence = true
flux_function = power_history
factor = 1.109e18
[]
##### fuel region propereties
[fueled_region_thermal]
type = GraphiteMatrixThermal
block = 2
graphite_grade = A3_27_1800
packing_fraction = 0.22
temperature = temperature
initial_matrix_density = 1750.0
[]
[fueled_region_density]
type = ParsedMaterial
block = 2
property_name = density
expression = 1750.0
[]
[fuel_conc_Cs]
type = ArrheniusDiffusionCoef
block = 2
d1 = 1e-8 # m^2/s
q1 = 0.0 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
##### Shell properties
[shell_region_thermal]
type = GraphiteMatrixThermal
block = 3
graphite_grade = A3_27_1800
packing_fraction = 0.0
temperature = temperature
initial_matrix_density = 1750.0
[]
[shell_region_density]
type = ParsedMaterial
block = 3
property_name = density
expression = 1750.0
[]
[shell_conc_Cs]
type = ArrheniusDiffusionCoef
block = 3
d1 = 1e-8 # m^2/s
q1 = 0.0 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
##### pebble core
[core_region_thermal]
type = GraphiteMatrixThermal
block = 1
graphite_grade = A3_27_1800
packing_fraction = 0.0
temperature = temperature
initial_matrix_density = 1400.0
[]
[core_region_density]
type = ParsedMaterial
block = 1
property_name = density
expression = 1400.0
[]
[core_conc_Cs]
type = ArrheniusDiffusionCoef
block = 1
d1 = 1e-8 # m^2/s
q1 = 0.0 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[]
[Debug]
show_var_residual_norms = true
show_var_residual = 'temperature'
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
line_search = 'none'
nl_rel_tol = 1e-9
nl_abs_tol = 1e-9
nl_max_its = 15
l_tol = 1e-5
l_max_its = 30
start_time = 0.0
dt = 500000
num_steps = 10
[]
[Postprocessors]
### irradiation conditions
[pebble_power]
type = ElementIntegralPower
variable = temperature
use_material_fission_rate = true
fission_rate_material = fission_rate
block = 2
execute_on = 'initial timestep_end'
[]
[heat_from_pebble]
type = SideDiffusiveFluxIntegral
variable = temperature
boundary = exterior
diffusivity = thermal_conductivity
execute_on = 'initial timestep_end'
[]
[fast_neutron_maximum_fluence_MP]
type = ElementExtremeMaterialProperty
mat_prop = fast_neutron_fluence
block = '1 2 3'
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[fast_neutron_maximum_flux_MP]
type = ElementExtremeMaterialProperty
mat_prop = fast_neutron_flux
block = '1 2 3'
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[fission_rate_maximum]
type = ElementExtremeMaterialProperty
mat_prop = fission_rate
block = '1 2 3'
value_type = 'max'
execute_on = 'initial timestep_end'
[]
### temperatures
[fuel_minimum_temperature]
type = NodalExtremeValue
variable = temperature
block = '2'
value_type = 'min'
execute_on = 'initial timestep_end'
[]
[fuel_average_temperature]
type = AverageNodalVariableValue
variable = temperature
block = '2'
execute_on = 'initial timestep_end'
[]
[fuel_maximum_temperature]
type = NodalExtremeValue
variable = temperature
block = '2'
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[shell_minimum_temperature]
type = NodalExtremeValue
variable = temperature
block = '3'
value_type = 'min'
execute_on = 'initial timestep_end'
[]
[shell_average_temperature]
type = AverageNodalVariableValue
variable = temperature
block = '3'
execute_on = 'initial timestep_end'
[]
[shell_maximum_temperature]
type = NodalExtremeValue
variable = temperature
block = '3'
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[core_minimum_temperature]
type = NodalExtremeValue
variable = temperature
block = '1'
value_type = 'min'
execute_on = 'initial timestep_end'
[]
[core_average_temperature]
type = AverageNodalVariableValue
variable = temperature
block = '1'
execute_on = 'initial timestep_end'
[]
[core_maximum_temperature]
type = NodalExtremeValue
variable = temperature
block = '1'
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
print_linear_residuals = true
time_step_interval = 1
exodus = true
csv = true
perf_graph = true
[]
(test/tests/arrhenius_diffusion_coef/2d_arrhenius.i)
[Mesh]
[mesh]
type = FileMeshGenerator
file = square.e
[]
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[Variables]
[u]
order = FIRST
family = LAGRANGE
initial_condition = .5
[]
[temp]
order = FIRST
family = LAGRANGE
initial_condition = 1100
[]
[]
[Kernels]
[diff]
type = ArrheniusDiffusion
variable = u
temperature = temp
extra_vector_tags = 'ref'
[]
[heat]
type = HeatConduction
variable = temp
extra_vector_tags = 'ref'
[]
[]
[BCs]
[left]
type = DirichletBC
variable = u
boundary = 1
value = 0
[]
[right]
type = DirichletBC
variable = u
boundary = 2
value = 1
[]
[leftt]
type = DirichletBC
variable = temp
boundary = 1
value = 1100
[]
[rightt]
type = DirichletBC
variable = temp
boundary = 2
value = 1200
[]
[]
[Materials]
[UO2_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 1.0
specific_heat = 1.0
[]
[UO2_cesium_diffusion]
type = ArrheniusDiffusionCoef
d1 = 5.6e-8
q1 = 2.09e5
d2 = 5.2e-4
q2 = 3.62e5
block = 1
temperature = temp
[]
[]
[Executioner]
type = Steady
solve_type = NEWTON
line_search = none
petsc_options_iname = '-pc_type -pc_hypre_type'
petsc_options_value = 'hypre boomeramg'
nl_rel_tol = 1e-14
nl_abs_tol = 1e-50
nl_abs_step_tol = 1e-15
l_tol = 1e-14
l_max_its = 100
[]
[Outputs]
execute_on = 'timestep_end'
exodus = true
[]
(assessment/TRISO/benchmark/IAEA_CRP-6/diffusion/case_11/case_11.i)
[GlobalParams]
order = SECOND
family = LAGRANGE
initial_enrichment = 0.089
[]
[Mesh]
coord_type = RSPHERICAL
[gen]
type = TRISO1DMeshGenerator
elem_type = EDGE3
coordinates = '0 250e-6 345e-6 385e-6 420e-6 460e-6'
mesh_density = '50 30 15 15 15'
block_names = 'fuel buffer IPyC SiC OPyC'
bias = '1 1.25 1.25 1.25 1.25'
dual_bias = '0.8 0.8 0.8 0.8 1'
[]
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[Variables]
[conc_Cs]
[]
[]
[AuxVariables]
[temperature]
initial_condition = 1273.15
[]
[Cs_diff_coef]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[temperature]
type = PiecewiseLinear
data_file = temperature_history.dat
format = columns
[]
[]
[Kernels]
[mass_Cs_dt]
type = TimeDerivative
variable = conc_Cs
extra_vector_tags = 'ref'
[]
[mass_Cs]
type = ArrheniusDiffusion
variable = conc_Cs
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
temperature = temperature
extra_vector_tags = 'ref'
[]
[mass_source_Cs]
type = SpeciesSourceRate
variable = conc_Cs
property_name = Cs_generation
block = fuel
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[Cs_diff_coef]
type = MaterialRealAux
variable = Cs_diff_coef
property = arrhenius_diffusion_coef_Cs
execute_on = timestep_end
[]
[temperature]
type = FunctionAux
function = temperature
variable = temperature
[]
[]
[BCs]
[freesurf_conc_Cs]
type = DirichletBC
variable = conc_Cs
boundary = exterior
value = 0.0
[]
[]
[Materials]
[burnup]
type = GenericFunctionMaterial
block = fuel
prop_names = 'burnup'
prop_values = 'if(t<86400000,0.09/86400000*t,0.09)'
[]
[fission_rate]
type = GenericFunctionMaterial
block = fuel
prop_names = 'fission_rate'
# 2.42e19 = 0.09/86400000*10400/.27*6.0221409e23
prop_values = 'if(t<86400000,2.42e19,0)'
[]
[fuel_conc_Cs]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 5.6e-8 # m^2/s
q1 = 209e3 # J/mol
d2 = 5.2e-4
q2 = 362e3
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[mass_source_Cs_property]
type = SpeciesSourceMaterial
block = fuel
property_name = Cs_generation
kind = Cs
[]
[buffer_conc_Cs]
type = ArrheniusDiffusionCoef
block = buffer
d1 = 1e-8 # m^2/s
q1 = 0 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[IPyC_conc_Cs]
type = ArrheniusDiffusionCoef
block = IPyC
d1 = 6.3e-8 # m^2/s
q1 = 222e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[SiC_conc_Cs]
type = ArrheniusDiffusionCoef
block = SiC
d1 = 5.5e-14 # m^2/s
d1_function = 'if(t<86400000,exp(5.0e25/86400000*t/5e25),exp(5.0e25/5e25))'
q1 = 125e3 # J/mol
d2 = 1.6e-2
q2 = 514e3
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[OPyC_conc_Cs]
type = ArrheniusDiffusionCoef
block = OPyC
d1 = 6.3e-8 # m^2/s
q1 = 222e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[]
[Debug]
show_var_residual_norms = true
show_var_residual = 'conc_Cs'
[]
[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-19
nl_max_its = 50
l_tol = 1e-4
l_max_its = 50
start_time = 0.0
end_time = 89366400
num_steps = 5000
dt = 86400
dtmax = 86400
[TimeStepper]
type = FunctionDT
function = 'if(t<86400000,86400,1800)'
[]
[]
[Postprocessors]
[_temp]
type = NodalExtremeValue
variable = temperature
[]
[release_Cs_inc]
type = SideIntegralMassFlux
variable = conc_Cs
boundary = exterior
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
execute_on = 'initial timestep_end'
[]
[released_Cs]
type = TimeIntegratedPostprocessor
value = release_Cs_inc
execute_on = 'initial timestep_end'
[]
[total_Cs]
type = ElementIntegralMaterialProperty
mat_prop = Cs_generation_total
block = fuel
execute_on = 'initial timestep_end'
[]
[x_Cs_released_overall]
type = FractionalRelease
released = released_Cs
total = total_Cs
execute_on = 'initial timestep_end'
[]
[x_Cs_released]
type = FractionalRelease
released = released_Cs
total = total_Cs
execute_on = 'initial timestep_end'
start_time = 86400000
[]
[retained_Cs]
type = ElementIntegralVariablePostprocessor
variable = conc_Cs
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = false
exodus = true
[console]
type = Console
time_step_interval = 1
[]
[out]
type = CSV
[]
[out_final]
type = CSV
execute_on = final
[]
[]
(test/tests/species_source/Ag_exact.i)
#
# This test checks whether the species source for silver is operating
# as intended. The amount of silver produced in SpeciesSourceMaterial
# is checked against the amount computed through a ParsedMaterial.
#
# If correct, the 'diff' Postprocessor will have a value close to zero,
# and the 'fraction' Postprocessor will be one.
#
[GlobalParams]
initial_enrichment = 0.2
[]
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 1
[]
[]
[Variables]
[conc]
[]
[]
[AuxVariables]
[temperature]
initial_condition = 1000
[]
[]
[Kernels]
[conc_dt]
type = TimeDerivative
variable = conc
[]
[conc_diffusion]
type = ArrheniusDiffusion
variable = conc
arrhenius_prpty_name = diff_coef
[]
[conc_source]
type = SpeciesSourceRate
variable = conc
property_name = conc_generation
[]
[]
[BCs]
[conc]
type = FunctionDirichletBC
variable = conc
boundary = 'left right'
function = '.1 * t + .1'
[]
[]
[Materials]
[burnup]
type = GenericFunctionMaterial
prop_names = burnup
prop_values = '0.01*t'
[]
[fission_rate]
type = GenericFunctionMaterial
prop_names = fission_rate
prop_values = 'if(t=0,0,1e19)'
[]
[diff_coef]
type = ArrheniusDiffusionCoef
temperature = temperature
d1 = 1e-6
q1 = 100e3
arrhenius_prpty_name = diff_coef
[]
[conc_generation]
type = SpeciesSourceMaterial
property_name = conc_generation
kind = Ag
[]
[conc_generation_exact]
type = ParsedMaterial
property_name = conc_generation_exact
material_property_names = 'burnup fission_rate'
constant_names = 'a1 a2 b1 b2 e limit avo'
constant_expressions = '1.31625e-3 8.24492e-4 0.55734 0.53853 0.2 0.175 6.02214076e23'
expression = 'b:=if(burnup*100<1.0,1.0,burnup*100);
if(e<limit,a1*b^b1,a2*b^b2)/avo*fission_rate'
[]
[]
[Executioner]
type = Transient
num_steps = 10
[]
[Postprocessors]
[conc]
type = ElementIntegralMaterialProperty
mat_prop = conc_generation
execute_on = 'initial timestep_end'
[]
[conc_exact]
type = ElementIntegralMaterialProperty
mat_prop = conc_generation_exact
execute_on = 'initial timestep_end'
[]
[diff]
type = DifferencePostprocessor
value1 = 'conc'
value2 = 'conc_exact'
outputs = console
execute_on = 'initial timestep_end'
[]
[fraction]
type = FractionalRelease
released = conc
total = conc_exact
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
csv = true
[]
(examples/TRISO/accident_simulation/triso1D_accident.i)
# This example is 1D spherical analysis of a TRISO fuel particle. Fully coupled
# heat transfer and solid mechanics, plus diffusion of the fission product
# species cesium (Cs) are simulated. The mesh includes contact surfaces
# between the buffer and IPyC layers to facilitate a gap opening between
# these layers. These surfaces are initially in mechanical contact but
# are assumed to have no strength in tension. A coarse mesh is used to
# provide a short run time.
# The calculation simulates fuel-life in three steps. The first step is an
# irradiation period, where constant power and a fixed particle surface
# temperature (1500 K) are assumed over a lifetime of 76 Ms (2.4 yrs).
# For the second step, fuel removal and storage are simulated by setting
# the reactor power and Cs source terms to zero, reducing the particle
# surface temperature to ambient (300 K), and then holding it
# for 100 days. A third and final step simulates accident
# behavior by increasing the particle surface temperature from ambient
# to 2073 K over 2 hrs, and then holding it at this elevated temperature
# for an additional 200 hrs. At the particle outer boundary, the Cs
# concentration is held at zero and the pressure at ambient during the
# entire simulation. The particle is assumed to be stress-free at an
# initial temperature of 1500 K.
#
# Details about this simulation are given in Section 4 of the following
# article: J. D. Hales, R. L. Williamson, S. R. Novascone, D. M. Perez,
# B. W. Spencer and G. Pastore, "Multidimensional multiphysics simulation
# of TRISO particle fuel", Journal of Nuclear Materials, Vol. 443, p. 531,
# 2013.
# This is a version using an interface kernel to model gap mass transfer.
# Sorption constants are given in Table 1 of the following article: A.
# Londono-Hurtado, I. Szlufarska, R. Bratton and D. Morgan, "A review of
# fission product sorption in carbon structures", Journal of Nuclear
# Materials, Vol. 426, p. 254, 2012.
initial_fuel_density = 11000
[GlobalParams]
order = SECOND
family = LAGRANGE
displacements = disp_x
flux_conversion_factor = 0.85
[]
[Mesh]
coord_type = RSPHERICAL
[gen] # exclude gap to establish buffer-IPyC neighbor relationships for the sorption interface kernel
type = TRISO1DMeshGenerator
elem_type = EDGE3
coordinates = '0 2.125e-4 3.125e-4 3.525e-4 3.875e-4 4.275e-4'
mesh_density = '10 5 2 2 2'
block_names = 'fuel buffer IPyC SiC OPyC'
[]
[break] # create gap between buffer and IPyC to model mechanical and thermal contact
type = BreakMeshByBlockGenerator
input = gen
block_pairs = 'buffer IPyC'
split_interface = true
add_interface_on_two_sides = true
[]
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[Variables]
[disp_x]
[]
[temp]
initial_condition = 1500.0
[]
[conc]
initial_condition = 0.0
[]
[]
[AuxVariables]
[fission_rate]
block = fuel
order = CONSTANT
family = MONOMIAL
[]
[fluence]
order = CONSTANT
family = MONOMIAL
[]
[burnup]
block = fuel
order = CONSTANT
family = MONOMIAL
[]
[gap_cond]
order = CONSTANT
family = MONOMIAL
[]
[creep_xx]
order = CONSTANT
family = MONOMIAL
[]
[creep_yy]
order = CONSTANT
family = MONOMIAL
[]
[creep_zz]
order = CONSTANT
family = MONOMIAL
[]
[gap_HTC]
order = CONSTANT
family = MONOMIAL
[]
[gap_distance]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[power_history]
type = PiecewiseLinear
x = '0 76e6 76.001e6'
y = '1 1 0'
[]
[temp_bc]
type = PiecewiseLinear
x = '0 76e6 76.001e6 84.641e6 84.6482e6'
y = '1500 1500 300 300 2073'
[]
[k_function]
type = PiecewiseLinear
x = '0 200e6'
y = '4e-37 4e-37'
[]
[d1_function]
type = ParsedFunction
expression = 'exp(t/4.5e25)'
[]
[integral_flux_error]
type = ParsedFunction
symbol_names = 'buffer_integral_flux IPyC_integral_flux'
symbol_values = 'buffer_integral_flux IPyC_integral_flux'
expression = 'IPyC_integral_flux + buffer_integral_flux'
[]
[partial_pressure_error]
type = ParsedFunction
symbol_names = 'buffer_partial_pressure IPyC_partial_pressure'
symbol_values = 'buffer_partial_pressure IPyC_partial_pressure'
expression = 'IPyC_partial_pressure - buffer_partial_pressure'
[]
[]
[Physics/SolidMechanics/QuasiStatic]
generate_output = 'stress_xx stress_yy stress_zz stress_xy stress_yz stress_zx hydrostatic_stress'
strain = FINITE
incremental = true
add_variables = false
[default]
block = 'fuel buffer IPyC OPyC'
eigenstrain_names = 'thermal_strain swelling_strain'
extra_vector_tags = 'ref'
[]
[SiC]
block = 'SiC'
eigenstrain_names = 'thermal_strain'
extra_vector_tags = 'ref'
[]
[]
[Kernels]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temp
extra_vector_tags = 'ref'
[]
[heat]
type = HeatConduction
variable = temp
extra_vector_tags = 'ref'
[]
[heat_source]
type = NeutronHeatSource
variable = temp
block = fuel
energy_per_fission = 3.2e-11 # units of J/fission
fission_rate = fission_rate
extra_vector_tags = 'ref'
[]
[mass_ie]
type = TimeDerivative
variable = conc
extra_vector_tags = 'ref'
[]
[mass]
type = ArrheniusDiffusion
variable = conc
extra_vector_tags = 'ref'
[]
[mass_source]
type = BodyForce
variable = conc
function = power_history
value = 1.22e-5 # units of moles/m**3-s
block = fuel
extra_vector_tags = 'ref'
[]
[mass_decay]
type = Decay
variable = conc
radioactive_decay_constant = 7.297e-10 # units:(1/sec) The constant for Cesium
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[fission_rate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
block = fuel
fission_rate_function = power_history
value = 3.89e19
execute_on = timestep_begin
[]
[fluence]
type = MaterialRealAux
property = fast_neutron_fluence
variable = fluence
[]
[burnup]
type = BurnupAux
variable = burnup
block = fuel
fission_rate = fission_rate
molecular_weight = 0.270 # units of kg/mole
execute_on = timestep_begin
density = ${initial_fuel_density}
[]
[creep_xx]
type = RankTwoAux
rank_two_tensor = creep_strain
variable = creep_xx
index_i = 0
index_j = 0
block = 'buffer IPyC SiC OPyC'
execute_on = timestep_end
[]
[creep_yy]
type = RankTwoAux
rank_two_tensor = creep_strain
variable = creep_yy
index_i = 1
index_j = 1
block = 'buffer IPyC SiC OPyC'
execute_on = timestep_end
[]
[creep_zz]
type = RankTwoAux
rank_two_tensor = creep_strain
variable = creep_zz
index_i = 2
index_j = 2
block = 'buffer IPyC SiC OPyC'
execute_on = timestep_end
[]
[conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = buffer_IPyC
execute_on = linear
[]
[]
[Contact]
[pellet_clad_mechanical]
primary = IPyC_buffer
secondary = buffer_IPyC
penalty = 1e5
model = frictionless
formulation = penalty
[]
[]
[ThermalContact]
[thermal_contact]
type = GasGapHeatTransfer
variable = temp
primary = IPyC_buffer
secondary = buffer_IPyC
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'
gap_geometry_type = SPHERE
tangential_tolerance = 1e-6
roughness_coef = 0.0
quadrature = true
[]
[]
[InterfaceKernels]
[cesium_gap]
type = SorptionIsothermGapInterface
variable = conc
neighbor_var = conc
partial_pressure_name = partial_pressure
sorption_penalty = 1e5
diffusivity = arrhenius_diffusion_coef
use_flux_penalty = true
flux_penalty = 1e3
boundary = buffer_IPyC
extra_vector_tags = 'ref'
[]
[]
[BCs]
# pin particle along symmetry planes
[no_disp_x]
type = DirichletBC
variable = disp_x
boundary = xzero
value = 0.0
extra_vector_tags = 'ref'
[]
# fix temperature on free surface
[freesurf_temp]
type = FunctionDirichletBC
variable = temp
boundary = exterior
function = temp_bc
extra_vector_tags = 'ref'
[]
# fix concentration on free surface
[freesurf_conc]
type = DirichletBC
variable = conc
boundary = exterior
value = 0.0
extra_vector_tags = 'ref'
[]
[PlenumPressure] # apply plenum pressure on clad inner walls and pellet surfaces
[plenumPressure]
boundary = 'buffer_IPyC IPyC_buffer'
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 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 = 5e17
[]
[fission_gas_release] # Sifgrs fission gas release mode
type = UO2Sifgrs
block = fuel
temperature = temp
fission_rate = fission_rate # coupling to fission_rate aux variable
grain_radius_const = 5.0e-6
[]
[fuel_thermal]
type = UO2Thermal
thermal_conductivity_model = FINK_LUCUTA
block = fuel
temperature = temp
burnup = burnup
initial_porosity = 0.0
[]
[fuel_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = MATPRO
block = fuel
temperature = temp
burnup = burnup
eigenstrain_name = 'swelling_strain'
initial_fuel_density = ${initial_fuel_density}
[]
[fuel_stress]
type = ComputeFiniteStrainElasticStress
block = 'fuel'
[]
[fuel_elasticity]
type = ComputeIsotropicElasticityTensor
block = fuel
youngs_modulus = 2.2e11
poissons_ratio = .345
[]
[fuel_thermal_strain]
type = ComputeThermalExpansionEigenstrain
block = fuel
thermal_expansion_coeff = 10e-6
stress_free_temperature = 1500.0
eigenstrain_name = thermal_strain
temperature = temp
[]
[fuel_den]
type = StrainAdjustedDensity
block = fuel
strain_free_density = ${initial_fuel_density} # kg/m^3
[]
[fuel_conc]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 5.6e-8 # m^2/s
q1 = 209.0e+3 # J/mol
d2 = 5.2e-4 # m^2/s
q2 = 362.0e+3 # J/mol
gas_constant = 8.3143 # J/K-mol
temperature = temp
[]
[buffer_eigenstrain]
type = PyCIrradiationEigenstrain
block = buffer
pyc_type = buffer
eigenstrain_name = 'swelling_strain'
[]
[buffer_thermal_strain]
type = ComputeThermalExpansionEigenstrain
block = buffer
thermal_expansion_coeff = 5.65e-6
stress_free_temperature = 1500.0
eigenstrain_name = thermal_strain
temperature = temp
[]
[buffer_elasticity]
type = ComputeIsotropicElasticityTensor
block = buffer
youngs_modulus = 2e10
poissons_ratio = .23
[]
[buffer_stress]
type = PyCCreep
block = buffer
temperature = temp
[]
[buffer_temp]
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 = 1000.0 #kg/m^3
block = buffer
[]
[buffer_conc]
type = ArrheniusDiffusionCoef
block = buffer
d1 = 1.0e-12 # m^2/s
q1 = 0.0
d2 = 0.0
q2 = 0.0
gas_constant = 8.3143 # J/K-mol
temperature = temp
[]
[buffer_partial_pressure]
type = SorptionPartialPressure
A = 19.33
B = -47290
D = 1.518
E = 4338
d1 = 3.397
d2 = 6.15e-4
unit_scale = 1e3 # convert from mol to mmol
density = density # convert from mmol/m^3 to mmol/kg
concentration = conc
temperature = temp
block = 'buffer IPyC'
outputs = 'all'
output_properties = partial_pressure
[]
[normal_vectors_triso]
type = NormalVectorsTRISO
block = 'IPyC OPyC buffer'
[]
[IPyC_eigenstrain]
type = PyCIrradiationEigenstrain
block = IPyC
pyc_type = dense
eigenstrain_name = 'swelling_strain'
[]
[IPyC_thermal_strain]
type = ComputeThermalExpansionEigenstrain
block = IPyC
thermal_expansion_coeff = 5.65e-6
stress_free_temperature = 1500.0
eigenstrain_name = thermal_strain
temperature = temp
[]
[IPyC_elasticity]
type = ComputeIsotropicElasticityTensor
block = IPyC
youngs_modulus = 4.74e10
poissons_ratio = .23
[]
[IPyC_disp]
type = PyCCreep
block = 'IPyC OPyC'
temperature = temp
[]
[IPyC_temp]
type = HeatConductionMaterial
block = 'IPyC OPyC'
thermal_conductivity = 4.0
specific_heat = 720.0
[]
[IPyC_den]
type = StrainAdjustedDensity
block = 'IPyC OPyC'
strain_free_density = 1900.0
[]
[IPyC_conc]
type = ArrheniusDiffusionCoef
block = IPyC
d1 = 6.3e-8
q1 = 222.0e+3
d2 = 0.0
q2 = 0.0
gas_constant = 8.3143 # J/K-mol
temperature = temp
[]
[SiC_thermal_strain]
type = ComputeThermalExpansionEigenstrain
block = SiC
thermal_expansion_coeff = 4.9e-6
stress_free_temperature = 1500.0
eigenstrain_name = thermal_strain
temperature = temp
[]
[SiC_elasticity]
type = ComputeIsotropicElasticityTensor
block = SiC
youngs_modulus = 3.4e11
poissons_ratio = .13
[]
[SiC_creep]
type = MonolithicSiCCreepUpdate
block = SiC
temperature = temp
k_function = k_function
[]
[SiC_stress]
type = ComputeMultipleInelasticStress
block = SiC
tangent_operator = elastic
inelastic_models = 'SiC_creep'
[]
[SiC_temp]
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 = 3180.0 # kg/m^3
block = SiC
[]
[SiC_conc]
type = ArrheniusDiffusionCoef
block = SiC
d1 = 5.5e-14 # m^2/s
d1_function = d1_function
d1_function_variable = fluence
q1 = 125.0e+3 # J/mol
d2 = 1.6e-2 # m^2/s
q2 = 514.0e+3 # J/mol
gas_constant = 8.3143 # J/K-mol
temperature = temp
[]
[OPyC_eigenstrain]
type = PyCIrradiationEigenstrain
block = OPyC
pyc_type = dense
eigenstrain_name = 'swelling_strain'
[]
[OPyC_thermal_strain]
type = ComputeThermalExpansionEigenstrain
block = OPyC
thermal_expansion_coeff = 5.65e-6
stress_free_temperature = 1500.0
eigenstrain_name = thermal_strain
temperature = temp
[]
[OPyC_elasticity]
type = ComputeIsotropicElasticityTensor
block = OPyC
youngs_modulus = 4.74e10
poissons_ratio = .23
[]
[OPyC_conc]
type = ArrheniusDiffusionCoef
block = OPyC
d1 = 6.3e-8 # m^2/s
q1 = 222.0e+3 # J/mol
d2 = 0.0
q2 = 0.0
gas_constant = 8.3143 # J/K-mol
temperature = temp
[]
[]
[Dampers]
[temp]
type = MaxIncrement
variable = temp
max_increment = 50
[]
[]
[Debug]
show_var_residual_norms = true
[]
[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-4
nl_abs_tol = 1e-9
nl_max_its = 15
l_tol = 1e-3
l_max_its = 50
start_time = 0.0
end_time = 85.3682e6
dt = 100
dtmax = 2e6
dtmin = 1
[TimeStepper]
type = IterationAdaptiveDT
dt = 100
optimal_iterations = 6
growth_factor = 1.5
linear_iteration_ratio = 100
time_t = '0 76e6 76.001e6 84.641e6 84.6482e6'
time_dt = '20 20 20 20 20'
[]
[Predictor]
type = SimplePredictor
scale = 1
skip_times_old = '0 76e6 76.001e6 84.641e6 84.6482e6'
[]
[]
[Outputs]
perf_graph = true
exodus = true
[console]
type = Console
max_rows = 25
[]
[csv]
type = CSV
sync_times = '100 6308007 75696087'
sync_only = true
[]
[]
[Postprocessors]
[Cs_release]
type = SideIntegralMassFlux
variable = conc
boundary = exterior
execute_on = timestep_end
[]
[dt]
type = TimestepSize
execute_on = timestep_end
[]
[fis_gas_produced] # fission gas produced (moles)
type = ElementIntegralFisGasGeneratedSifgrs
block = fuel
execute_on = 'initial linear nonlinear timestep_begin timestep_end'
[]
[fis_gas_released] # fission gas released to plenum (moles)
type = ElementIntegralFisGasReleasedSifgrs
block = fuel
execute_on = 'initial linear nonlinear timestep_begin timestep_end'
[]
[volumeTotal]
type = InternalVolume
boundary = exterior
scale_factor = -1
execute_on = 'initial timestep_end'
[]
[volumeFuel]
type = InternalVolume
boundary = fuel_outer_boundary
scale_factor = -1
execute_on = 'initial timestep_end'
[]
[volumeGas]
type = InternalVolume
boundary = 'buffer_IPyC IPyC_buffer'
# ro = 3.125e-4
# ri = 2.125e-4
# vb = 4/3*pi*(ro^3-ri^3) = 8.76e-11
# buffer density = 1000
# PyC density = 1900
# fill ratio = 10/19
# vb*10/19 = 4.6e-11
# Must remove 4.6e-11 m^3 from the volume
addition = -4.6e-11
execute_on = 'initial linear nonlinear timestep_begin timestep_end'
[]
[volumeBufferShell]
type = InternalVolume
boundary = 'buffer_IPyC IPyC_buffer'
execute_on = 'initial timestep_end'
[]
[ave_temp_interior]
type = SideAverageValue
boundary = 'buffer_IPyC IPyC_buffer'
variable = temp
execute_on = 'initial linear nonlinear timestep_begin timestep_end'
[]
# Postprocessors for CO production
[total_fission_rate]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = fuel
energy_per_fission = 1.0
execute_on = 'initial linear nonlinear timestep_begin timestep_end'
[]
[total_fissions]
type = TimeIntegratedPostprocessor
value = total_fission_rate
execute_on = 'initial linear nonlinear timestep_begin timestep_end'
[]
[avg_surface_temp]
type = SideAverageValue
variable = temp
boundary = exterior
execute_on = 'initial linear nonlinear timestep_begin timestep_end'
[]
[time_int_surf_temp]
type = TimeIntegratedPostprocessor
value = avg_surface_temp
execute_on = 'initial linear nonlinear timestep_begin timestep_end'
[]
[co_production]
type = CarbonMonoxideProduction
total_fissions = total_fissions
time_integrated_triso_temperature = time_int_surf_temp
initial_enrichment = 0.14029
execute_on = 'initial linear nonlinear timestep_begin timestep_end'
[]
[num_lin_it]
type = NumLinearIterations
[]
[num_nonlin_it]
type = NumNonlinearIterations
[]
[tot_lin_it]
type = CumulativeValuePostprocessor
postprocessor = num_lin_it
[]
[tot_nonlin_it]
type = CumulativeValuePostprocessor
postprocessor = num_nonlin_it
[]
[alive_time]
type = PerfGraphData
section_name = Root
data_type = TOTAL
[]
[buffer_integral_flux]
type = SideDiffusiveFluxIntegral
variable = conc
boundary = buffer_IPyC
diffusivity = arrhenius_diffusion_coef
[]
[IPyC_integral_flux]
type = SideDiffusiveFluxIntegral
variable = conc
boundary = IPyC_buffer
diffusivity = arrhenius_diffusion_coef
[]
[buffer_partial_pressure]
type = SideAverageMaterialProperty
property = partial_pressure
boundary = buffer_IPyC
[]
[IPyC_partial_pressure]
type = SideAverageMaterialProperty
property = partial_pressure
boundary = IPyC_buffer
[]
[integral_flux_error]
type = FunctionValuePostprocessor
function = integral_flux_error
[]
[partial_pressure_error]
type = FunctionValuePostprocessor
function = partial_pressure_error
[]
[integral_Cs_release]
type = TimeIntegratedPostprocessor
value = Cs_release
[]
[Cs_production]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 1.22e-5 # units of moles/m**3-s
[]
[time_integral_Cs_production]
type = TimeIntegratedPostprocessor
value = Cs_production
[]
[volumeFuel_initial]
type = InternalVolume
boundary = fuel_outer_boundary
scale_factor = -1
execute_on = initial
[]
[integral_Cs_production]
type = ParsedPostprocessor
pp_names = 'time_integral_Cs_production volumeFuel_initial'
expression = 'time_integral_Cs_production * volumeFuel_initial'
[]
[Cs_release_fraction]
type = ParsedPostprocessor
pp_names = 'integral_Cs_release integral_Cs_production'
expression = 'integral_Cs_release / integral_Cs_production'
[]
[]
[VectorPostprocessors]
[temperaturevpp]
type = SideValueSampler
boundary = 11
variable = temp
sort_by = x
outputs = 'csv'
use_displaced_mesh = true
[]
[]
(assessment/TRISO/benchmark/IAEA_CRP-6/diffusion/case_6a/case_6a.i)
[GlobalParams]
order = SECOND
family = LAGRANGE
initial_enrichment = 0.0982
[]
[Mesh]
coord_type = RSPHERICAL
[gen]
type = TRISO1DMeshGenerator
elem_type = EDGE3
coordinates = '0 248.5e-6 342.5e-6 383.5e-6 419.5e-6 459.5e-6'
mesh_density = '50 30 15 15 15'
block_names = 'fuel buffer IPyC SiC OPyC'
bias = '1 1.25 1.25 1.25 1.25'
dual_bias = '0.8 0.8 0.8 0.8 1'
[]
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[Variables]
[conc_Cs]
[]
[conc_Ag]
[]
[conc_Sr]
[]
[]
[AuxVariables]
[temperature]
initial_condition = 1213.15
[]
[Cs_diff_coef]
order = CONSTANT
family = MONOMIAL
[]
[Ag_diff_coef]
order = CONSTANT
family = MONOMIAL
[]
[Sr_diff_coef]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[temperature]
type = PiecewiseLinear
data_file = temperature_history.dat
format = columns
[]
[]
[Kernels]
[mass_Cs_dt]
type = TimeDerivative
variable = conc_Cs
[]
[mass_Cs]
type = ArrheniusDiffusion
variable = conc_Cs
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
temperature = temperature
extra_vector_tags = 'ref'
[]
[mass_source_Cs]
type = SpeciesSourceRate
variable = conc_Cs
property_name = Cs_generation
block = fuel
[]
[mass_Ag_dt]
type = TimeDerivative
variable = conc_Ag
[]
[mass_Ag]
type = ArrheniusDiffusion
variable = conc_Ag
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
temperature = temperature
extra_vector_tags = 'ref'
[]
[mass_source_Ag]
type = SpeciesSourceRate
variable = conc_Ag
property_name = Ag_generation
block = fuel
[]
[mass_Sr_dt]
type = TimeDerivative
variable = conc_Sr
[]
[mass_Sr]
type = ArrheniusDiffusion
variable = conc_Sr
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
temperature = temperature
extra_vector_tags = 'ref'
[]
[mass_source_Sr]
type = SpeciesSourceRate
variable = conc_Sr
property_name = Sr_generation
block = fuel
[]
[]
[AuxKernels]
[Cs_diff_coef]
type = MaterialRealAux
variable = Cs_diff_coef
property = arrhenius_diffusion_coef_Cs
execute_on = timestep_end
[]
[Ag_diff_coef]
type = MaterialRealAux
variable = Ag_diff_coef
property = arrhenius_diffusion_coef_Ag
execute_on = timestep_end
[]
[Sr_diff_coef]
type = MaterialRealAux
variable = Sr_diff_coef
property = arrhenius_diffusion_coef_Sr
execute_on = timestep_end
[]
[temperature]
type = FunctionAux
function = temperature
variable = temperature
[]
[]
[BCs]
[freesurf_conc_Cs]
type = DirichletBC
variable = conc_Cs
boundary = exterior
value = 0.0
[]
[freesurf_conc_Ag]
type = DirichletBC
variable = conc_Ag
boundary = exterior
value = 0.0
[]
[freesurf_conc_Sr]
type = DirichletBC
variable = conc_Sr
boundary = exterior
value = 0.0
[]
[]
[Materials]
[burnup]
type = GenericFunctionMaterial
block = fuel
prop_names = 'burnup'
prop_values = 'if(t<30326400,0.111/30326400*t,0.111)'
[]
[fission_rate]
type = GenericFunctionMaterial
block = fuel
prop_names = 'fission_rate'
# 8.825e19 = 0.111/30326400*10810/.27*6.0221409e23
prop_values = 'if(t<30326400,8.825e19,0)'
[]
[fuel_conc_Cs]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 5.6e-8 # m^2/s
q1 = 209e3 # J/mol
d2 = 5.2e-4
q2 = 362e3
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[mass_source_Cs_property]
type = SpeciesSourceMaterial
block = fuel
property_name = Cs_generation
kind = Cs
[]
[buffer_conc_Cs]
type = ArrheniusDiffusionCoef
block = buffer
d1 = 1e-8 # m^2/s
q1 = 0 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[IPyC_conc_Cs]
type = ArrheniusDiffusionCoef
block = IPyC
d1 = 6.3e-8 # m^2/s
q1 = 222e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[SiC_conc_Cs]
type = ArrheniusDiffusionCoef
block = SiC
d1 = 5.5e-14 # m^2/s
d1_function = 'if(t<30326400,exp(5.5e25/30326400*t/5e25),exp(5.5e25/5e25))'
q1 = 125e3 # J/mol
d2 = 1.6e-2
q2 = 514e3
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[OPyC_conc_Cs]
type = ArrheniusDiffusionCoef
block = OPyC
d1 = 6.3e-8 # m^2/s
q1 = 222e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[fuel_conc_Ag]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 6.7e-9 # m^2/s
q1 = 165e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[mass_source_Ag_property]
type = SpeciesSourceMaterial
block = fuel
property_name = Ag_generation
kind = Ag
[]
[buffer_conc_Ag]
type = ArrheniusDiffusionCoef
block = buffer
d1 = 1e-8 # m^2/s
q1 = 0 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[IPyC_conc_Ag]
type = ArrheniusDiffusionCoef
block = IPyC
d1 = 5.3e-9 # m^2/s
q1 = 154e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[SiC_conc_Ag]
type = ArrheniusDiffusionCoef
block = SiC
d1 = 3.6e-9 # m^2/s
q1 = 215e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[OPyC_conc_Ag]
type = ArrheniusDiffusionCoef
block = OPyC
d1 = 5.3e-9 # m^2/s
q1 = 154e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[fuel_conc_Sr]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 2.2e-3 # m^2/s
q1 = 488e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
[]
[mass_source_Sr_property]
type = SpeciesSourceMaterial
block = fuel
property_name = Sr_generation
kind = Sr
[]
[buffer_conc_Sr]
type = ArrheniusDiffusionCoef
block = buffer
d1 = 1e-8 # m^2/s
q1 = 0 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
[]
[IPyC_conc_Sr]
type = ArrheniusDiffusionCoef
block = IPyC
d1 = 2.3e-6 # m^2/s
q1 = 197e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
[]
[SiC_conc_Sr]
type = ArrheniusDiffusionCoef
block = SiC
d1 = 1.2e-9 # m^2/s
q1 = 205e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
[]
[OPyC_conc_Sr]
type = ArrheniusDiffusionCoef
block = OPyC
d1 = 2.3e-6 # m^2/s
q1 = 197e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
[]
[]
[Debug]
show_var_residual_norms = true
show_var_residual = 'conc_Cs conc_Ag conc_Sr'
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
automatic_scaling = true
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
nl_rel_tol = 5e-5
nl_abs_tol = 1e-13
nl_max_its = 50
l_tol = 1e-4
l_max_its = 50
start_time = 0.0
end_time = 31525200
num_steps = 1450
dt = 86400
dtmax = 86400
#dtmin = 86400
[TimeStepper]
type = FunctionDT
function = 'if(t<30326400,86400,
if(t<30430800,1800,
3600))'
[]
[]
[Postprocessors]
[_temp]
type = NodalExtremeValue
variable = temperature
[]
[release_Cs_inc]
type = SideIntegralMassFlux
variable = conc_Cs
boundary = exterior
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
execute_on = 'initial timestep_end'
[]
[released_Cs]
type = TimeIntegratedPostprocessor
value = release_Cs_inc
execute_on = 'initial timestep_end'
[]
[total_Cs]
type = ElementIntegralMaterialProperty
mat_prop = Cs_generation_total
block = fuel
execute_on = 'initial timestep_end'
[]
[x_Cs_released_overall]
type = FractionalRelease
released = released_Cs
total = total_Cs
execute_on = 'initial timestep_end'
[]
[x_Cs_released]
type = FractionalRelease
released = released_Cs
total = total_Cs
execute_on = 'initial timestep_end'
start_time = 30326400
[]
[retained_Cs]
type = ElementIntegralVariablePostprocessor
variable = conc_Cs
execute_on = 'initial timestep_end'
[]
[release_Ag_inc]
type = SideIntegralMassFlux
variable = conc_Ag
boundary = exterior
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
execute_on = 'initial timestep_end'
[]
[released_Ag]
type = TimeIntegratedPostprocessor
value = release_Ag_inc
execute_on = 'initial timestep_end'
[]
[total_Ag]
type = ElementIntegralMaterialProperty
mat_prop = Ag_generation_total
block = fuel
execute_on = 'initial timestep_end'
[]
[x_Ag_released_overall]
type = FractionalRelease
released = released_Ag
total = total_Ag
execute_on = 'initial timestep_end'
[]
[x_Ag_released]
type = FractionalRelease
released = released_Ag
total = total_Ag
execute_on = 'initial timestep_end'
start_time = 30326400
[]
[retained_Ag]
type = ElementIntegralVariablePostprocessor
variable = conc_Ag
execute_on = 'initial timestep_end'
[]
[release_Sr_inc]
type = SideIntegralMassFlux
variable = conc_Sr
boundary = exterior
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
execute_on = 'initial timestep_end'
[]
[released_Sr]
type = TimeIntegratedPostprocessor
value = release_Sr_inc
execute_on = 'initial timestep_end'
[]
[total_Sr]
type = ElementIntegralMaterialProperty
mat_prop = Sr_generation_total
block = fuel
execute_on = 'initial timestep_end'
[]
[x_Sr_released_overall]
type = FractionalRelease
released = released_Sr
total = total_Sr
execute_on = 'initial timestep_end'
[]
[x_Sr_released]
type = FractionalRelease
released = released_Sr
total = total_Sr
execute_on = 'initial timestep_end'
start_time = 30326400
[]
[retained_Sr]
type = ElementIntegralVariablePostprocessor
variable = conc_Sr
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = false
exodus = true
[console]
type = Console
time_step_interval = 1
[]
[out]
type = CSV
[]
[out_final]
type = CSV
execute_on = final
[]
[]
(examples/TRISO/parfume/parfume_un.i)
# UN TRISO particle using several PARFUME models
[GlobalParams]
order = SECOND
family = LAGRANGE
displacements = 'disp_x'
initial_enrichment = 0.1955 # [wt-]
flux_conversion_factor = 1.0 # convert E>0.10 to E>0.18 MeV
stress_free_temperature = 923.15 # used for thermal expansion
energy_per_fission = 3.204e-11 # [J/fission]
O_U = 1.5 # Initial Oxygen to Uranium atom ratio
C_U = 0.4 # Initial Carbon to Uranium atom ratio
[]
[Mesh]
coord_type = RSPHERICAL
[gen]
type = TRISO1DMeshGenerator
elem_type = EDGE3
coordinates = '0 2.125e-4 3.125e-4 3.125e-4 3.525e-4 3.875e-4 4.275e-4'
mesh_density = '6 6 0 6 8 6'
block_names = 'fuel buffer IPyC SiC OPyC'
[]
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[UserObjects]
[particle_geometry]
type = TRISOGeometry
[]
[]
[Variables]
[temperature]
initial_condition = 923.15
[]
[conc]
initial_condition = 0.0
scaling = 1e18
[]
[]
[AuxVariables]
[disp_y]
[]
[disp_z]
[]
[fission_rate]
block = fuel
order = CONSTANT
family = MONOMIAL
[]
[burnup]
block = fuel
order = CONSTANT
family = MONOMIAL
[]
[fast_neutron_flux]
order = CONSTANT
family = MONOMIAL
[]
[fast_neutron_fluence]
order = CONSTANT
family = MONOMIAL
[]
[gap_condSlave]
order = CONSTANT
family = MONOMIAL
[]
[density]
order = CONSTANT
family = MONOMIAL
[]
[thermal_conductivity]
order = CONSTANT
family = MONOMIAL
[]
[swelling]
order = CONSTANT
family = MONOMIAL
[]
[specific_heat]
order = CONSTANT
family = MONOMIAL
[]
[volumetric_IIDC_strain]
order = CONSTANT
family = MONOMIAL
[]
[radial_IIDC_strain]
order = CONSTANT
family = MONOMIAL
[]
[tangential_IIDC_strain]
order = CONSTANT
family = MONOMIAL
[]
[BAF]
order = CONSTANT
family = MONOMIAL
[]
[fis_gas_produced]
order = CONSTANT
family = MONOMIAL
[]
[fis_gas_released]
order = CONSTANT
family = MONOMIAL
[]
[gap_HTC]
order = CONSTANT
family = MONOMIAL
[]
[gap_distance]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[power_history]
type = PiecewiseLinear
x = '0 76e6 76.001e6'
y = '1 1 0'
[]
[fission_rate]
type = LinearCombinationFunction
functions = power_history
w = 3.89e19
[]
[temp_bc]
type = PiecewiseLinear
# A final temperature ramp is not possible with the UNThermal model since
# its range of applicability ends at 1800 K
# To use the model beyond its limit but get a warning, add
# value_range_behavior = WARN in the GlobalParams block.
x = '0 76e6 76.001e6 84.641e6 84.6482e6'
y = '1500 1500 300 300 2073'
[]
[k_function]
type = PiecewiseLinear
x = '0 200e6'
y = '4e-37 4e-37'
[]
[d1_function]
type = ParsedFunction
expression = 'exp(t/4.5e25)'
[]
[d_gap]
type = PiecewiseLinear
x = '1500 2100'
y = '1e-14 1e-12'
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[fuel]
block = fuel
add_variables = true
strain = FINITE
incremental = true
generate_output = 'hydrostatic_stress stress_xx stress_yy stress_zz strain_xx strain_yy strain_zz'
eigenstrain_names = 'UN_swelling_eigenstrain UN_thermal_strain'
extra_vector_tags = 'ref'
[]
[buffer]
block = buffer
add_variables = true
strain = FINITE
incremental = true
generate_output = 'hydrostatic_stress stress_xx stress_yy stress_zz strain_xx strain_yy strain_zz'
eigenstrain_names = 'buffer_IIDC_strain buffer_thermal_strain'
extra_vector_tags = 'ref'
[]
[IPyC]
block = IPyC
add_variables = true
strain = FINITE
incremental = true
generate_output = 'hydrostatic_stress stress_xx stress_yy stress_zz strain_xx strain_yy strain_zz'
eigenstrain_names = 'IPyC_IIDC_strain IPyC_thermal_strain'
extra_vector_tags = 'ref'
[]
[SiC]
block = SiC
add_variables = true
strain = FINITE
incremental = true
generate_output = 'hydrostatic_stress stress_xx stress_yy stress_zz strain_xx strain_yy strain_zz'
eigenstrain_names = 'SiC_thermal_eigenstrain'
extra_vector_tags = 'ref'
[]
[OPyC]
block = OPyC
add_variables = true
strain = FINITE
incremental = true
generate_output = 'hydrostatic_stress stress_xx stress_yy stress_zz strain_xx strain_yy strain_zz'
eigenstrain_names = 'OPyC_IIDC_strain OPyC_thermal_strain'
extra_vector_tags = 'ref'
[]
[]
[Kernels]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temperature
extra_vector_tags = 'ref'
[]
[heat]
type = HeatConduction
variable = temperature
extra_vector_tags = 'ref'
[]
[heat_source]
type = NeutronHeatSource
variable = temperature
block = fuel
fission_rate = fission_rate
extra_vector_tags = 'ref'
[]
[mass_ie]
type = TimeDerivative
variable = conc
extra_vector_tags = 'ref'
[]
[mass]
type = ArrheniusDiffusion
variable = conc
extra_vector_tags = 'ref'
[]
[mass_source]
type = BodyForce
variable = conc
function = power_history
value = 1.22e-5 # units of mol/m**3-s
block = fuel
extra_vector_tags = 'ref'
[]
[mass_decay]
type = Decay
variable = conc
radioactive_decay_constant = 7.297e-10 # units:(1/sec) The constant for Cesium
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[fissionrate]
type = MaterialRealAux
variable = fission_rate
property = fission_rate
block = fuel
execute_on = timestep_begin
[]
[burnup]
type = MaterialRealAux
variable = burnup
property = burnup
block = fuel
execute_on = timestep_begin
[]
[fast_neutron_flux]
type = MaterialRealAux
variable = fast_neutron_flux
property = fast_neutron_flux
block = 'fuel buffer IPyC SiC OPyC'
execute_on = timestep_begin
[]
[fast_neutron_fluence]
type = MaterialRealAux
variable = fast_neutron_fluence
property = fast_neutron_fluence
block = 'fuel buffer IPyC SiC OPyC'
execute_on = timestep_begin
[]
[conductanceSlave]
type = MaterialRealAux
property = gap_conductance
variable = gap_condSlave
boundary = buffer_outer_boundary
execute_on = 'initial timestep_end'
[]
[density]
type = MaterialRealAux
variable = density
property = density
block = 'fuel buffer IPyC SiC OPyC'
execute_on = 'initial linear'
[]
[thermal_conductivity]
type = MaterialRealAux
variable = thermal_conductivity
property = thermal_conductivity
block = 'fuel buffer IPyC SiC OPyC'
execute_on = timestep_end
[]
[specific_heat]
type = MaterialRealAux
variable = specific_heat
property = specific_heat
block = 'fuel buffer IPyC SiC OPyC'
execute_on = timestep_end
[]
[swelling]
type = MaterialRealAux
variable = swelling
property = swelling
block = fuel
execute_on = linear
[]
[volumetric_IIDC_strain]
type = MaterialRealAux
variable = volumetric_IIDC_strain
property = volumetric_IIDC_strain
block = 'IPyC OPyC'
execute_on = timestep_end
[]
[radial_IIDC_strain]
type = MaterialRealAux
variable = radial_IIDC_strain
property = radial_IIDC_strain
block = 'IPyC OPyC'
execute_on = timestep_end
[]
[tangential_IIDC_strain]
type = MaterialRealAux
variable = tangential_IIDC_strain
property = tangential_IIDC_strain
block = 'IPyC OPyC'
execute_on = timestep_end
[]
[BAF]
type = MaterialRealAux
variable = BAF
property = BAF
block = 'IPyC OPyC'
execute_on = timestep_end
[]
[fis_gas_produced]
type = MaterialRealAux
variable = fis_gas_produced
property = fis_gas_produced
block = fuel
execute_on = linear
[]
[fis_gas_released]
type = MaterialRealAux
variable = fis_gas_released
property = fis_gas_released
block = fuel
execute_on = linear
[]
[gap_HTC]
type = MaterialRealAux
property = gap_conductance
variable = gap_HTC
boundary = buffer_outer_boundary
execute_on = 'initial timestep_end'
[]
[gap_distance]
type = PenetrationAux
variable = gap_distance
boundary = buffer_outer_boundary
paired_boundary = IPyC_inner_boundary
quantity = distance
tangential_tolerance = 1e-6
execute_on = 'initial timestep_end'
[]
[]
[Contact]
[mechanical]
primary = IPyC_inner_boundary
secondary = buffer_outer_boundary
penalty = 1e5
model = frictionless
formulation = kinematic
[]
[]
[ThermalContact]
[thermal_contact]
type = GasGapHeatTransfer
variable = temperature
primary = IPyC_inner_boundary
secondary = buffer_outer_boundary
initial_moles = initial_moles # coupling to a postprocessor which supplies the initial plenum/gap gas mass
initial_gas_types = 'Kr Xe'
initial_fractions = '0.185 0.815'
gas_released = 'fis_gas_released'
released_gas_types = 'Kr Xe'
released_fractions = '0.185 0.815'
tangential_tolerance = 1e-6
roughness_primary = 0e-6
roughness_secondary = 0e-6
jumpdistance_primary = 0
jumpdistance_secondary = 0
quadrature = true
emissivity_secondary = 0.0
emissivity_primary = 0.0
min_gap = 1e-7
max_gap = 50e-6
gap_geometry_type = sphere
[]
[cesium_contact]
type = GapHeatTransfer
variable = conc
primary = IPyC_inner_boundary
secondary = buffer_outer_boundary
tangential_tolerance = 1e-6
gap_conductivity_function = d_gap
gap_conductivity_function_variable = temperature
appended_property_name = _conc
quadrature = true
gap_geometry_type = sphere
emissivity_primary = 0.0
emissivity_secondary = 0.0
min_gap = 1e-7
[]
[]
[BCs]
# pin particle along symmetry planes
[no_disp_x]
type = DirichletBC
variable = disp_x
boundary = xzero
value = 0.0
[]
# fix temperature on free surface
[freesurf_temp]
type = FunctionDirichletBC
variable = temperature
function = temp_bc
boundary = exterior
[]
# fix concentration on free surface
[freesurf_conc]
type = DirichletBC
variable = conc
boundary = exterior
value = 0.0
[]
# exterior and internal pressures
[exterior_pressure_x]
type = Pressure
variable = disp_x
boundary = exterior
factor = 0.1e6
[]
[PlenumPressure] # apply gas pressure on buffer and IPyC boundaries
[plenumPressure]
boundary = buffer_IPyC_boundary
initial_pressure = 100.0
startup_time = 0
R = 8.3145
output_initial_moles = initial_moles
temperature = ave_gas_temp
volume = 'gap_volume buffer_void_volume kernel_void_volume'
material_input = 'fis_gas_released'
output = gas_pressure
[]
[]
[]
[Materials]
[fission_rate]
type = GenericFunctionMaterial
prop_names = fission_rate
prop_values = fission_rate
[]
[fast_neutron_flux]
type = FastNeutronFlux
calculate_fluence = true
flux_function = power_history
factor = 5e17
[]
[normal_vectors_triso]
type = NormalVectorsTRISO
block = 'buffer IPyC OPyC'
[]
### UN properties
[UN_burnup]
type = TRISOBurnup
initial_density = 13760.0
kernel_type = UN
[]
[UN_thermal]
type = MNThermal
block = fuel
temperature = temperature
formulation = COLLIN_BAUER
[]
[UN_elasticity_tensor]
type = UNElasticityTensor
block = fuel
temperature = temperature
[]
[UN_stress]
type = ComputeFiniteStrainElasticStress
block = fuel
[]
[UN_VolumetricSwellingEigenstrain]
type = BurnupDependentEigenstrain
block = fuel
swelling_name = swelling
eigenstrain_name = UN_swelling_eigenstrain
swelling_factor = 0.8
[]
[UN_thermal_strain]
type = ComputeThermalExpansionEigenstrain
block = fuel
thermal_expansion_coeff = 10e-6 # check this value for UN
eigenstrain_name = UN_thermal_strain
temperature = temperature
[]
[UN_density]
type = StrainAdjustedDensity
block = fuel
strain_free_density = 13760.0
[]
[fission_gas_release]
type = UNFGR
block = fuel
average_grain_radius = 10e-6
temperature = temperature
triso_geometry = particle_geometry
[]
[fuel_conc]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 5.6e-8 # m^2/s
q1 = 209.0e+3 # J/mol
d2 = 5.2e-4 # m^2/s
q2 = 362.0e+3 # J/mol
temperature = temperature
[]
### Buffer Properties
[buffer_elasticity_tensor]
type = BufferElasticityTensor
block = buffer
temperature = temperature
[]
[buffer_stress]
type = BufferCEGACreep
block = buffer
temperature = temperature
[]
[buffer_thermal]
type = BufferThermal
block = buffer
initial_density = 1050.0
[]
[buffer_density]
type = StrainAdjustedDensity
block = buffer
strain_free_density = 1050.0
[]
[buffer_thermal_strain]
type = BufferThermalExpansionEigenstrain
block = buffer
eigenstrain_name = buffer_thermal_strain
temperature = temperature
[]
[buffer_IIDC_strain]
type = BufferCEGAIrradiationEigenstrain
block = buffer
eigenstrain_name = buffer_IIDC_strain
temperature = temperature
[]
[buffer_conc]
type = ArrheniusDiffusionCoef
block = buffer
d1 = 1.0e-12 # m^2/s
q1 = 0.0
d2 = 0.0
q2 = 0.0
temperature = temperature
[]
### IPyC properties
[IPyC_elasticity_tensor]
type = PyCElasticityTensor
block = IPyC
temperature = temperature
initial_BAF = 1.045
poissons_ratio = 0.23
[]
[IPyC_stress]
type = PyCCEGACreep
block = IPyC
temperature = temperature
[]
[IPyC_thermal]
type = HeatConductionMaterial
block = IPyC
thermal_conductivity = 4.0
specific_heat = 720.0
[]
[IPyC_density]
type = GenericConstantMaterial
block = IPyC
prop_names = 'density'
prop_values = 1900.0
[]
[IPyC_IIDC_strain]
type = PyCCEGAIrradiationEigenstrain
block = IPyC
eigenstrain_name = IPyC_IIDC_strain
temperature = temperature
[]
[BAF_IPyC]
type = BaconAnisotropyFactor
initial_BAF = 1.045
block = IPyC
[]
[BAF_OPyC]
type = BaconAnisotropyFactor
initial_BAF = 1.045
block = OPyC
[]
[IPyC_thermal_strain]
type = PyCThermalExpansionEigenstrain
block = IPyC
eigenstrain_name = IPyC_thermal_strain
temperature = temperature
[]
[IPyC_conc]
type = ArrheniusDiffusionCoef
block = IPyC
d1 = 6.3e-8 # m^2/s
q1 = 222.0e+3 # J/mol
d2 = 0.0
q2 = 0.0
temperature = temperature
[]
### SiC properties
[SiC_elasticity_tensor]
type = MonolithicSiCElasticityTensor
block = SiC
temperature = temperature
elastic_modulus_model = miller
[]
[SiC_stress]
type = ComputeFiniteStrainElasticStress
block = SiC
[]
[SiC_thermal]
type = MonolithicSiCThermal
block = SiC
temperature = temperature
thermal_conductivity_model = miller
[]
[SiC_density]
type = GenericConstantMaterial
block = SiC
prop_names = 'density'
prop_values = 3200.0
[]
[SiC_thermal_strain]
type = MonolithicSiCThermalExpansionEigenstrain
block = SiC
temperature = temperature
eigenstrain_name = SiC_thermal_eigenstrain
[]
[SiC_conc]
type = ArrheniusDiffusionCoef
block = SiC
d1 = 5.5e-14 # m^2/s
d1_function = d1_function
d1_function_variable = fast_neutron_fluence
q1 = 125.0e+3 # J/mol
d2 = 1.6e-2 # m^2/s
q2 = 514.0e+3 # J/mol
temperature = temperature
[]
### OPyC properties
[OPyC_elasticity_tensor]
type = PyCElasticityTensor
block = OPyC
temperature = temperature
initial_BAF = 1.045
poissons_ratio = 0.23
[]
[OPyC_stress]
type = PyCCEGACreep
block = OPyC
temperature = temperature
[]
[OPyC_thermal_conductivity]
type = HeatConductionMaterial
block = OPyC
thermal_conductivity = 4.0
specific_heat = 720.0
[]
[OPyC_density]
type = GenericConstantMaterial
block = OPyC
prop_names = 'density'
prop_values = 1900.0
[]
[OPyC_IIDC_strain]
type = PyCCEGAIrradiationEigenstrain
block = OPyC
eigenstrain_name = OPyC_IIDC_strain
temperature = temperature
[]
[OPyC_thermal_strain]
type = PyCThermalExpansionEigenstrain
block = OPyC
eigenstrain_name = OPyC_thermal_strain
temperature = temperature
[]
[OPyC_conc]
type = ArrheniusDiffusionCoef
block = OPyC
d1 = 6.3e-8 # m^2/s
q1 = 222.0e+3 # J/mol
d2 = 0.0
q2 = 0.0
temperature = temperature
[]
[]
[Dampers]
[temp]
type = MaxIncrement
variable = temperature
max_increment = 50
[]
[disp_x]
type = MaxIncrement
variable = disp_x
max_increment = 1e-6
[]
[]
[Debug]
show_var_residual_norms = true
show_var_residual = 'disp_x temperature conc'
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
nl_rel_tol = 1e-8
nl_abs_tol = 1e-7
nl_max_its = 15
l_tol = 1e-4
l_max_its = 50
start_time = 0.0
end_time = 84.641e6 #85.3682e6
num_steps = 1000
dtmax = 2e6
dtmin = 1
[TimeStepper]
type = IterationAdaptiveDT
dt = 20
growth_factor = 1.5
optimal_iterations = 8 #6
linear_iteration_ratio = 100
time_t = '0 76e6 76.001e6 84.641e6 84.6482e6'
time_dt = '20 20 20 20 20'
[]
[Quadrature]
order = THIRD
[]
[]
[Postprocessors]
[_dt]
type = TimestepSize
execute_on = timestep_end
[]
[cs_release]
type = SideIntegralMassFlux
variable = conc
boundary = exterior
[]
[int_cs_release]
type = TimeIntegratedPostprocessor
value = cs_release
[]
[cs_release_fuel]
type = SideIntegralMassFlux
variable = conc
boundary = fuel_outer_boundary
[]
[int_cs_release_fuel]
type = TimeIntegratedPostprocessor
value = cs_release_fuel
[]
[cs_release_PyCGapBndry]
type = SideIntegralMassFlux
variable = conc
boundary = IPyC_inner_boundary
[]
[int_cs_release_PyCGapBndry]
type = TimeIntegratedPostprocessor
value = cs_release_PyCGapBndry
[]
[ave_gas_temp]
type = ElementAverageValue
block = buffer
variable = temperature
execute_on = 'initial timestep_end'
[]
[ave_gap_temp]
type = SideAverageValue
boundary = buffer_IPyC_boundary
variable = temperature
execute_on = 'initial timestep_end'
[]
[fis_gas_produced]
type = ElementIntegralMaterialProperty
mat_prop = fis_gas_produced
block = fuel
execute_on = 'initial timestep_end'
[]
[fis_gas_released]
type = ElementIntegralMaterialProperty
mat_prop = fis_gas_released
block = fuel
execute_on = 'initial timestep_end'
[]
[gap_volume]
type = InternalVolume
boundary = buffer_IPyC_boundary
execute_on = 'initial linear'
use_displaced_mesh = true
[]
[buffer_void_volume]
type = VoidVolume
block = buffer
theoretical_density = 2250
execute_on = 'initial timestep_end'
use_displaced_mesh = true
[]
[kernel_void_volume]
type = VoidVolume
block = fuel
theoretical_density = 14330
execute_on = 'initial timestep_end'
use_displaced_mesh = true
[]
[volumeTotal]
type = InternalVolume
boundary = exterior
execute_on = 'initial timestep_end'
scale_factor = -1
[]
[volumeFuel]
type = InternalVolume
boundary = fuel_outer_boundary
execute_on = 'initial timestep_end'
scale_factor = -1
[]
[volumeGas]
type = InternalVolume
boundary = buffer_outer_boundary
execute_on = 'initial timestep_end'
scale_factor = -1
addition = 4.67e-11
[]
[volumeBufferShell]
type = InternalVolume
boundary = buffer_outer_boundary
execute_on = 'initial timestep_end'
[]
[ave_temp_interior]
type = SideAverageValue
boundary = buffer_outer_boundary
variable = temperature
execute_on = 'initial timestep_end'
[]
[gap_HTC]
type = ElementExtremeValue
variable = gap_HTC
block = buffer
value_type = 'max'
execute_on = 'initial timestep_end'
[]
### Postprocessors for CO production
[total_fission_rate]
type = ElementIntegralPower
variable = temperature
fission_rate = fission_rate
block = fuel
energy_per_fission = 1.0
outputs = exodus
execute_on = 'initial timestep_end'
[]
[total_fissions]
type = TimeIntegratedPostprocessor
value = total_fission_rate
outputs = exodus
execute_on = 'initial timestep_end'
[]
[avg_surface_temp]
type = SideAverageValue
variable = temperature
boundary = exterior
outputs = exodus
execute_on = 'initial timestep_end'
[]
[time_int_surf_temp]
type = TimeIntegratedPostprocessor
value = avg_surface_temp
outputs = exodus
execute_on = 'initial timestep_end'
[]
##### irradiation conditions
[particle_power]
type = ElementIntegralPower
variable = temperature
use_material_fission_rate = true
fission_rate_material = fission_rate
block = fuel
execute_on = 'initial timestep_end'
[]
[max_fluence]
type = ElementExtremeValue
variable = fast_neutron_fluence
block = 'fuel buffer IPyC SiC OPyC'
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[max_burnup]
type = ElementExtremeValue
variable = burnup
block = fuel
value_type = 'max'
execute_on = 'initial timestep_end'
[]
#### II strain
[OPyC_radial_IIDC_strain]
type = ElementExtremeValue
variable = radial_IIDC_strain
block = OPyC
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[OPyC_tangential_IIDC_strain]
type = ElementExtremeValue
variable = tangential_IIDC_strain
block = OPyC
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[IPyC_radial_IIDC_strain]
type = ElementExtremeValue
variable = radial_IIDC_strain
block = IPyC
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[IPyC_tangential_IIDC_strain]
type = ElementExtremeValue
variable = tangential_IIDC_strain
block = IPyC
value_type = 'max'
execute_on = 'initial timestep_end'
[]
#### temperatures
[max_T_kernel]
type = NodalExtremeValue
variable = temperature
block = fuel
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[max_T_buffer]
type = NodalExtremeValue
variable = temperature
block = buffer
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[min_T_buffer]
type = NodalExtremeValue
variable = temperature
block = buffer
value_type = 'min'
execute_on = 'initial timestep_end'
[]
[max_T_IPyC]
type = NodalExtremeValue
variable = temperature
block = IPyC
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[max_T_SiC]
type = NodalExtremeValue
variable = temperature
block = SiC
value_type = 'max'
execute_on = 'initial timestep_end'
[]
#### displacement BCs
[max_disp_kernel]
type = NodalExtremeValue
variable = disp_x
block = fuel
value_type = 'max'
execute_on = 'initial timestep_end'
[]
[min_disp_buffer]
type = NodalExtremeValue
variable = disp_x
block = buffer
value_type = 'min'
execute_on = 'initial timestep_end'
[]
[max_disp_IPyC]
type = NodalExtremeValue
variable = disp_x
block = IPyC
value_type = 'max'
execute_on = 'initial timestep_end'
[]
#### hoop stresses
[hoop_opyc_max]
type = ElementExtremeValue
variable = stress_yy
block = OPyC
execute_on = 'initial timestep_end'
[]
[hoop_sic_max]
type = ElementExtremeValue
variable = stress_yy
block = SiC
execute_on = 'initial timestep_end'
[]
[hoop_ipyc_max]
type = ElementExtremeValue
variable = stress_yy
block = IPyC
execute_on = 'initial timestep_end'
[]
[hoop_buffer_max]
type = ElementExtremeValue
variable = stress_yy
block = buffer
execute_on = 'initial timestep_end'
[]
[hoop_opyc_min]
type = ElementExtremeValue
variable = stress_yy
block = OPyC
value_type = min
execute_on = 'initial timestep_end'
[]
[hoop_sic_min]
type = ElementExtremeValue
variable = stress_yy
block = SiC
value_type = min
execute_on = 'initial timestep_end'
[]
[hoop_ipyc_min]
type = ElementExtremeValue
variable = stress_yy
block = IPyC
value_type = min
execute_on = 'initial timestep_end'
[]
[hoop_buffer_min]
type = ElementExtremeValue
variable = stress_yy
block = buffer
value_type = min
execute_on = 'initial timestep_end'
[]
### Check warning for Density
[oPyC_density]
type = ElementExtremeValue
variable = density
block = OPyC
execute_on = 'initial timestep_end'
[]
[sic_density]
type = ElementExtremeValue
variable = density
block = SiC
execute_on = 'initial timestep_end'
[]
[IPyC_density]
type = ElementExtremeValue
variable = density
block = IPyC
execute_on = 'initial timestep_end'
[]
[buffer_density]
type = ElementExtremeValue
variable = density
block = buffer
execute_on = 'initial timestep_end'
[]
[kernel_density]
type = ElementExtremeValue
variable = density
block = fuel
execute_on = 'initial timestep_end'
[]
[pd_penetration]
type = PdPenetration
boundary = SiC_inner_boundary
variable = temperature
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
print_linear_residuals = true
time_step_interval = 1
exodus = true
csv = true
perf_graph = true
[]
(assessment/TRISO/benchmark/IAEA_CRP-6/diffusion/case_7b/case_7b.i)
[GlobalParams]
order = SECOND
family = LAGRANGE
initial_enrichment = 0.0407
[]
[Mesh]
coord_type = RSPHERICAL
[gen]
type = TRISO1DMeshGenerator
elem_type = EDGE3
coordinates = '0 272e-6 396e-6 402e-6 436e-6 475e-6'
mesh_density = '50 30 15 15 15'
block_names = 'fuel buffer IPyC SiC OPyC'
bias = '1 1.25 1.25 1.25 1.25'
dual_bias = '0.8 0.8 0.8 0.8 1'
[]
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[Variables]
[conc_Cs]
[]
[conc_Ag]
[]
[conc_Sr]
[]
[]
[AuxVariables]
[temperature]
initial_condition = 1304.15
[]
[Cs_diff_coef]
order = CONSTANT
family = MONOMIAL
[]
[Ag_diff_coef]
order = CONSTANT
family = MONOMIAL
[]
[Sr_diff_coef]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[temperature]
type = PiecewiseLinear
data_file = temperature_history.dat
format = columns
[]
[]
[Kernels]
[mass_Cs_dt]
type = TimeDerivative
variable = conc_Cs
[]
[mass_Cs]
type = ArrheniusDiffusion
variable = conc_Cs
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
temperature = temperature
extra_vector_tags = 'ref'
[]
[mass_source_Cs]
type = SpeciesSourceRate
variable = conc_Cs
property_name = Cs_generation
block = fuel
[]
[mass_Ag_dt]
type = TimeDerivative
variable = conc_Ag
[]
[mass_Ag]
type = ArrheniusDiffusion
variable = conc_Ag
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
temperature = temperature
extra_vector_tags = 'ref'
[]
[mass_source_Ag]
type = SpeciesSourceRate
variable = conc_Ag
property_name = Ag_generation
block = fuel
[]
[mass_Sr_dt]
type = TimeDerivative
variable = conc_Sr
[]
[mass_Sr]
type = ArrheniusDiffusion
variable = conc_Sr
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
temperature = temperature
extra_vector_tags = 'ref'
[]
[mass_source_Sr]
type = SpeciesSourceRate
variable = conc_Sr
property_name = Sr_generation
block = fuel
[]
[]
[AuxKernels]
[Cs_diff_coef]
type = MaterialRealAux
variable = Cs_diff_coef
property = arrhenius_diffusion_coef_Cs
execute_on = timestep_end
[]
[Ag_diff_coef]
type = MaterialRealAux
variable = Ag_diff_coef
property = arrhenius_diffusion_coef_Ag
execute_on = timestep_end
[]
[Sr_diff_coef]
type = MaterialRealAux
variable = Sr_diff_coef
property = arrhenius_diffusion_coef_Sr
execute_on = timestep_end
[]
[temperature]
type = FunctionAux
function = temperature
variable = temperature
[]
[]
[BCs]
[freesurf_conc_Cs]
type = DirichletBC
variable = conc_Cs
boundary = exterior
value = 0.0
[]
[freesurf_conc_Ag]
type = DirichletBC
variable = conc_Ag
boundary = exterior
value = 0.0
[]
[freesurf_conc_Sr]
type = DirichletBC
variable = conc_Sr
boundary = exterior
value = 0.0
[]
[]
[Materials]
[burnup]
type = GenericFunctionMaterial
block = fuel
prop_names = 'burnup'
prop_values = 'if(t<7682400,0.048/7682400*t,0.048)'
[]
[fission_rate]
type = GenericFunctionMaterial
block = fuel
prop_names = 'fission_rate'
# 1.699e20 = 0.048/7682400*10840/.27*6.0221409e23
prop_values = 'if(t<7682400,1.699e20,0)'
[]
[fuel_conc_Cs]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 5.6e-8 # m^2/s
q1 = 209e3 # J/mol
d2 = 5.2e-4
q2 = 362e3
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[mass_source_Cs_property]
type = SpeciesSourceMaterial
block = fuel
property_name = Cs_generation
kind = Cs
[]
[buffer_conc_Cs]
type = ArrheniusDiffusionCoef
block = buffer
d1 = 1e-8 # m^2/s
q1 = 0 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[IPyC_conc_Cs]
type = ArrheniusDiffusionCoef
block = IPyC
d1 = 6.3e-8 # m^2/s
q1 = 222e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[SiC_conc_Cs]
type = ArrheniusDiffusionCoef
block = SiC
d1 = 5.5e-14 # m^2/s
d1_function = 'if(t<7682400,exp(2.1e25/7682400*t/5e25),exp(2.1e25/5e25))'
q1 = 125e3 # J/mol
d2 = 1.6e-2
q2 = 514e3
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[OPyC_conc_Cs]
type = ArrheniusDiffusionCoef
block = OPyC
d1 = 6.3e-8 # m^2/s
q1 = 222e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[fuel_conc_Ag]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 6.7e-9 # m^2/s
q1 = 165e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[mass_source_Ag_property]
type = SpeciesSourceMaterial
block = fuel
property_name = Ag_generation
kind = Ag
[]
[buffer_conc_Ag]
type = ArrheniusDiffusionCoef
block = buffer
d1 = 1e-8 # m^2/s
q1 = 0 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[IPyC_conc_Ag]
type = ArrheniusDiffusionCoef
block = IPyC
d1 = 5.3e-9 # m^2/s
q1 = 154e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[SiC_conc_Ag]
type = ArrheniusDiffusionCoef
block = SiC
d1 = 3.6e-9 # m^2/s
q1 = 215e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[OPyC_conc_Ag]
type = ArrheniusDiffusionCoef
block = OPyC
d1 = 5.3e-9 # m^2/s
q1 = 154e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[fuel_conc_Sr]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 2.2e-3 # m^2/s
q1 = 488e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
[]
[mass_source_Sr_property]
type = SpeciesSourceMaterial
block = fuel
property_name = Sr_generation
kind = Sr
[]
[buffer_conc_Sr]
type = ArrheniusDiffusionCoef
block = buffer
d1 = 1e-8 # m^2/s
q1 = 0 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
[]
[IPyC_conc_Sr]
type = ArrheniusDiffusionCoef
block = IPyC
d1 = 2.3e-6 # m^2/s
q1 = 197e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
[]
[SiC_conc_Sr]
type = ArrheniusDiffusionCoef
block = SiC
d1 = 1.2e-9 # m^2/s
q1 = 205e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
[]
[OPyC_conc_Sr]
type = ArrheniusDiffusionCoef
block = OPyC
d1 = 2.3e-6 # m^2/s
q1 = 197e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
[]
[]
[Debug]
show_var_residual_norms = true
show_var_residual = 'conc_Cs conc_Ag'
[]
[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-21 #1e-22
nl_max_its = 50
l_tol = 1e-4
l_max_its = 50
start_time = 0.0
end_time = 8506800
num_steps = 1450
dt = 86400
dtmax = 86400
#dtmin = 86400
[TimeStepper]
type = FunctionDT
function = 'if(t<7682400,86400,
if(t<7707600,720,
3600))'
[]
[]
[Postprocessors]
[_temp]
type = NodalExtremeValue
variable = temperature
[]
[release_Cs_inc]
type = SideIntegralMassFlux
variable = conc_Cs
boundary = exterior
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
execute_on = 'initial timestep_end'
[]
[released_Cs]
type = TimeIntegratedPostprocessor
value = release_Cs_inc
execute_on = 'initial timestep_end'
[]
[total_Cs]
type = ElementIntegralMaterialProperty
mat_prop = Cs_generation_total
block = fuel
execute_on = 'initial timestep_end'
[]
[x_Cs_released_overall]
type = FractionalRelease
released = released_Cs
total = total_Cs
execute_on = 'initial timestep_end'
[]
[x_Cs_released]
type = FractionalRelease
released = released_Cs
total = total_Cs
execute_on = 'initial timestep_end'
start_time = 7682400
[]
[retained_Cs]
type = ElementIntegralVariablePostprocessor
variable = conc_Cs
execute_on = 'initial timestep_end'
[]
[release_Ag_inc]
type = SideIntegralMassFlux
variable = conc_Ag
boundary = exterior
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
execute_on = 'initial timestep_end'
[]
[released_Ag]
type = TimeIntegratedPostprocessor
value = release_Ag_inc
execute_on = 'initial timestep_end'
[]
[total_Ag]
type = ElementIntegralMaterialProperty
mat_prop = Ag_generation_total
block = fuel
execute_on = 'initial timestep_end'
[]
[x_Ag_released_overall]
type = FractionalRelease
released = released_Ag
total = total_Ag
execute_on = 'initial timestep_end'
[]
[x_Ag_released]
type = FractionalRelease
released = released_Ag
total = total_Ag
execute_on = 'initial timestep_end'
start_time = 7682400
[]
[retained_Ag]
type = ElementIntegralVariablePostprocessor
variable = conc_Ag
execute_on = 'initial timestep_end'
[]
[release_Sr_inc]
type = SideIntegralMassFlux
variable = conc_Sr
boundary = exterior
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
execute_on = 'initial timestep_end'
[]
[released_Sr]
type = TimeIntegratedPostprocessor
value = release_Sr_inc
execute_on = 'initial timestep_end'
[]
[total_Sr]
type = ElementIntegralMaterialProperty
mat_prop = Sr_generation_total
block = fuel
execute_on = 'initial timestep_end'
[]
[x_Sr_released_overall]
type = FractionalRelease
released = released_Sr
total = total_Sr
execute_on = 'initial timestep_end'
[]
[x_Sr_released]
type = FractionalRelease
released = released_Sr
total = total_Sr
execute_on = 'initial timestep_end'
start_time = 7682400
[]
[retained_Sr]
type = ElementIntegralVariablePostprocessor
variable = conc_Sr
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = false
exodus = true
[console]
type = Console
time_step_interval = 1
[]
[out]
type = CSV
[]
[out_final]
type = CSV
execute_on = final
[]
[]
(assessment/TRISO/validation/AGR-2/AGR-2_Ag.i)
[Variables]
[conc_Ag]
initial_condition = 0.0
[]
[]
[AuxVariables]
[Ag_diff_coef]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[mass_Ag_dt]
type = TimeDerivative
variable = conc_Ag
[]
[mass_Ag]
type = ArrheniusDiffusion
variable = conc_Ag
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
extra_vector_tags = 'ref'
[]
[mass_source_Ag]
type = SpeciesSourceRate
variable = conc_Ag
property_name = Ag_generation
block = 'fuel OPyC'
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[Ag_diff_coef]
type = MaterialRealAux
variable = Ag_diff_coef
property = arrhenius_diffusion_coef_Ag
execute_on = timestep_end
[]
[]
[BCs]
[freesurf_conc_Ag]
type = DirichletBC
variable = conc_Ag
boundary = exterior
value = 0.0
[]
[]
[Materials]
# Arrhenius diffusion coefficients for kernel, PyC, and SiC
# come from IAEA TECDOC-978, French parameters.
[fuel_conc_Ag]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 6.7e-9 # m^2/s
q1 = 165e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[mass_source_Ag_property]
type = SpeciesSourceMaterial
property_name = Ag_generation
kind = Ag
block = fuel
[]
### Buffer Properties
[buffer_conc_Ag]
type = ArrheniusDiffusionCoef
block = buffer
d1 = 1e-8 # m^2/s
q1 = 0.0
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
### IPyC properties
[IPyC_conc_Ag]
type = ArrheniusDiffusionCoef
block = IPyC
d1 = 5.3e-9 # m^2/s
q1 = 154e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
### SiC properties
[SiC_conc_Ag]
type = ArrheniusDiffusionCoef
block = SiC
d1 = 3.6e-9 # m^2/s
q1 = 215e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
### OPyC properties
[OPyC_conc_Ag]
type = ArrheniusDiffusionCoef
block = OPyC
d1 = 5.3e-9 # m^2/s
q1 = 154e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[mass_source_Ag_property_OPyC]
type = SpeciesSourceMaterial
property_name = Ag_generation
kind = Ag
block = OPyC
#value = impurities * vol_kernel / vol_opyc
#value = 1.59e-6 * 4.07e-11 / 9.16e-11 # for UCO
#value = 1.57e-6 * 6.85e-11 / 1.18e-10 # for UO2
value = ${mass_source_property_OPyC}
[]
[]
[Postprocessors]
[release_Ag_inc]
type = SideIntegralMassFlux
variable = conc_Ag
boundary = exterior
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
execute_on = 'initial timestep_end'
[]
[released_Ag]
type = TimeIntegratedPostprocessor
value = release_Ag_inc
execute_on = 'initial timestep_end'
[]
[total_Ag]
type = ElementIntegralMaterialProperty
mat_prop = Ag_generation_total
block = 'fuel OPyC'
execute_on = 'initial timestep_end'
[]
[x_Ag_released]
type = FractionalRelease
released = released_Ag
total = total_Ag
execute_on = 'initial timestep_end'
[]
[x_Ag_released_safety]
type = FractionalRelease
released = released_Ag
total = total_Ag
execute_on = 'initial timestep_end'
start_time = 50284800
safety_fraction_type = net
[]
[retained_Ag]
type = ElementIntegralVariablePostprocessor
variable = conc_Ag
execute_on = 'initial timestep_end'
[]
[]
(assessment/TRISO/validation/AGR-2/AGR-2_Ag_Microstructure_Irradiation.i)
[Variables]
[conc_Ag]
initial_condition = 0.0
[]
[]
[AuxVariables]
[Ag_diff_coef]
order = CONSTANT
family = MONOMIAL
[]
[flux]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[flux]
type = PiecewiseLinear
#data_file = DATA_FILE
x_index_in_file = 0
y_index_in_file = 5
xy_in_file_only = false
format = columns
[]
[]
[Kernels]
[mass_Ag_dt]
type = TimeDerivative
variable = conc_Ag
[]
[mass_Ag]
type = ArrheniusDiffusion
variable = conc_Ag
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
extra_vector_tags = 'ref'
[]
[mass_source_Ag]
type = SpeciesSourceRate
variable = conc_Ag
property_name = Ag_generation
block = 'fuel OPyC'
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[Ag_diff_coef]
type = MaterialRealAux
variable = Ag_diff_coef
property = arrhenius_diffusion_coef_Ag
execute_on = timestep_end
[]
[flux]
type = FunctionAux
variable = flux
function = flux
block = 'fuel buffer IPyC SiC OPyC'
execute_on = timestep_begin
[]
[]
[BCs]
[freesurf_conc_Ag]
type = DirichletBC
variable = conc_Ag
boundary = exterior
value = 0.0
[]
[]
[Materials]
# Arrhenius diffusion coefficients for kernel, PyC, and SiC
# come from IAEA TECDOC-978, French parameters.
[fuel_conc_Ag]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 6.7e-9 # m^2/s
q1 = 165e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[mass_source_Ag_property]
type = SpeciesSourceMaterial
property_name = Ag_generation
kind = Ag
block = fuel
[]
### Buffer Properties
[buffer_conc_Ag]
type = ArrheniusDiffusionCoef
block = buffer
d1 = 1e-8 # m^2/s
q1 = 0.0
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
### IPyC properties
[IPyC_conc_Ag]
type = ArrheniusDiffusionCoef
block = IPyC
d1 = 5.3e-9 # m^2/s
q1 = 154e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
### SiC properties
[SiC_conc_Ag]
type = ArrheniusDiffusionCoefMicrostructureIrradiation
block = SiC
scalar = 10
d1 = 6.88e-10 # m^2/s
d1_coef = -5.10e-4 # m/s
q1 = 211e3 # J/mol
q1_coef = 3.82e9 # J/mol/m
grain_minor_axis_length = 0.4e-6 # m
d1_irr_0 = 2.80e-13 # (n/m^2/s)^-1
d1_irr_1 = 0.458 # (-)
d1_irr_2 = 8.30e6 # m^-1
d1_irr_3 = 9.41e3 # K^-1
temperature = temperature # K
flux = flux # n/m^2/s
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
### OPyC properties
[OPyC_conc_Ag]
type = ArrheniusDiffusionCoef
block = OPyC
d1 = 5.3e-9 # m^2/s
q1 = 154e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[mass_source_Ag_property_OPyC]
type = SpeciesSourceMaterial
property_name = Ag_generation
kind = Ag
block = OPyC
#value = impurities * vol_kernel / vol_opyc
#value = 1.59e-6 * 4.07e-11 / 9.16e-11 # for UCO
#value = 1.57e-6 * 6.85e-11 / 1.18e-10 # for UO2
value = ${mass_source_property_OPyC}
[]
[]
[Postprocessors]
[release_Ag_inc]
type = SideIntegralMassFlux
variable = conc_Ag
boundary = exterior
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
execute_on = 'initial timestep_end'
[]
[released_Ag]
type = TimeIntegratedPostprocessor
value = release_Ag_inc
execute_on = 'initial timestep_end'
[]
[total_Ag]
type = ElementIntegralMaterialProperty
mat_prop = Ag_generation_total
block = 'fuel OPyC'
execute_on = 'initial timestep_end'
[]
[x_Ag_released]
type = FractionalRelease
released = released_Ag
total = total_Ag
execute_on = 'initial timestep_end'
[]
[x_Ag_released_safety]
type = FractionalRelease
released = released_Ag
total = total_Ag
execute_on = 'initial timestep_end'
start_time = 55209600
safety_fraction_type = net
[]
[retained_Ag]
type = ElementIntegralVariablePostprocessor
variable = conc_Ag
execute_on = 'initial timestep_end'
[]
[]
(assessment/TRISO/benchmark/IAEA_CRP-6/diffusion/case_9/case_9.i)
[GlobalParams]
order = SECOND
family = LAGRANGE
initial_enrichment = 0.106
constant_expressions = 57294000.0
[]
[Mesh]
coord_type = RSPHERICAL
[gen]
type = TRISO1DMeshGenerator
elem_type = EDGE3
coordinates = '0 254e-6 356e-6 395e-6 431e-6 469e-6'
mesh_density = '50 30 15 15 15'
block_names = 'fuel buffer IPyC SiC OPyC'
bias = '1 1.25 1.25 1.25 1.25'
dual_bias = '0.8 0.8 0.8 0.8 1'
[]
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[Variables]
[conc_Cs]
[]
[conc_Ag]
[]
[]
[AuxVariables]
[temperature]
initial_condition = 1391.15
[]
[Cs_diff_coef]
order = CONSTANT
family = MONOMIAL
[]
[Ag_diff_coef]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[temperature]
type = PiecewiseLinear
data_file = temperature_history.dat
format = columns
[]
[]
[Kernels]
[mass_Cs_dt]
type = TimeDerivative
variable = conc_Cs
[]
[mass_Cs]
type = ArrheniusDiffusion
variable = conc_Cs
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
temperature = temperature
extra_vector_tags = 'ref'
[]
[mass_source_Cs]
type = SpeciesSourceRate
variable = conc_Cs
property_name = Cs_generation
block = fuel
[]
[mass_Ag_dt]
type = TimeDerivative
variable = conc_Ag
[]
[mass_Ag]
type = ArrheniusDiffusion
variable = conc_Ag
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
temperature = temperature
extra_vector_tags = 'ref'
[]
[mass_source_Ag]
type = SpeciesSourceRate
variable = conc_Ag
property_name = Ag_generation
block = fuel
[]
[]
[AuxKernels]
[Cs_diff_coef]
type = MaterialRealAux
variable = Cs_diff_coef
property = arrhenius_diffusion_coef_Cs
execute_on = timestep_end
[]
[Ag_diff_coef]
type = MaterialRealAux
variable = Ag_diff_coef
property = arrhenius_diffusion_coef_Ag
execute_on = timestep_end
[]
[temperature]
type = FunctionAux
function = temperature
variable = temperature
[]
[]
[BCs]
[freesurf_conc_Cs]
type = DirichletBC
variable = conc_Cs
boundary = exterior
value = 0.0
[]
[freesurf_conc_Ag]
type = DirichletBC
variable = conc_Ag
boundary = exterior
value = 0.0
[]
[]
[Materials]
[burnup]
type = GenericFunctionMaterial
block = fuel
prop_names = 'burnup'
prop_values = 'if(t<54777600,0.109/54777600*t,0.109)'
[]
[fission_rate]
type = GenericFunctionMaterial
block = fuel
prop_names = 'fission_rate'
# 4.76e19 = 0.109/54777600*10720/.27*6.0221409e23
prop_values = 'if(t<54777600,4.76e19,0)'
[]
[fuel_conc_Cs]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 5.6e-8 # m^2/s
q1 = 209e3 # J/mol
d2 = 5.2e-4
q2 = 362e3
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[mass_source_Cs_property]
type = SpeciesSourceMaterial
block = fuel
property_name = Cs_generation
kind = Cs
[]
[buffer_conc_Cs]
type = ArrheniusDiffusionCoef
block = buffer
d1 = 1e-8 # m^2/s
q1 = 0 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[IPyC_conc_Cs]
type = ArrheniusDiffusionCoef
block = IPyC
d1 = 6.3e-8 # m^2/s
q1 = 222e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[SiC_conc_Cs_intact]
type = ArrheniusDiffusionCoef
block = SiC
d1 = 5.5e-14 # m^2/s
d1_function = 'if(t<31017600,exp(4.8e25/54777600*t/5e25),exp(4.8e25/5e25))'
q1 = 125e3 # J/mol
d2 = 1.6e-2
q2 = 514e3
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs_intact
[]
[time]
type = TimeStepMaterial
[]
[SiC_conc_Cs]
type = ParsedMaterial
block = SiC
property_name = arrhenius_diffusion_coef_Cs
coupled_variables = 'temperature'
material_property_names = 'time arrhenius_diffusion_coef_Cs_intact'
constant_names = 'failure_time'
expression = 'if(time<=failure_time, arrhenius_diffusion_coef_Cs_intact, 1e-6)'
[]
[SiC_conc_Cs_dT]
type = ParsedMaterial
block = SiC
property_name = arrhenius_diffusion_coef_Cs_dT
coupled_variables = 'temperature'
material_property_names = 'time arrhenius_diffusion_coef_Cs_intact_dT'
constant_names = 'failure_time'
expression = 'if(time<=failure_time, arrhenius_diffusion_coef_Cs_intact_dT, 0)'
[]
[OPyC_conc_Cs]
type = ArrheniusDiffusionCoef
block = OPyC
d1 = 6.3e-8 # m^2/s
q1 = 222e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[fuel_conc_Ag]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 6.7e-9 # m^2/s
q1 = 165e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[mass_source_Ag_property]
type = SpeciesSourceMaterial
block = fuel
property_name = Ag_generation
kind = Ag
[]
[buffer_conc_Ag]
type = ArrheniusDiffusionCoef
block = buffer
d1 = 1e-8 # m^2/s
q1 = 0 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[IPyC_conc_Ag]
type = ArrheniusDiffusionCoef
block = IPyC
d1 = 5.3e-9 # m^2/s
q1 = 154e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[SiC_conc_Ag_intact]
type = ArrheniusDiffusionCoef
block = SiC
d1 = 3.6e-9 # m^2/s
q1 = 215e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag_intact
[]
[SiC_conc_Ag]
type = ParsedMaterial
block = SiC
property_name = arrhenius_diffusion_coef_Ag
material_property_names = 'time arrhenius_diffusion_coef_Ag_intact'
constant_names = 'failure_time'
expression = 'if(time<=failure_time, arrhenius_diffusion_coef_Ag_intact, 1e-6)'
[]
[SiC_conc_Ag_dT]
type = ParsedMaterial
block = SiC
property_name = arrhenius_diffusion_coef_Ag_dT
material_property_names = 'time arrhenius_diffusion_coef_Ag_intact_dT'
constant_names = 'failure_time'
expression = 'if(time<=failure_time, arrhenius_diffusion_coef_Ag_intact_dT, 0)'
[]
[OPyC_conc_Ag]
type = ArrheniusDiffusionCoef
block = OPyC
d1 = 5.3e-9 # m^2/s
q1 = 154e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[]
[Debug]
show_var_residual_norms = true
show_var_residual = 'conc_Cs conc_Ag'
[]
[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 = 1e-20
nl_max_its = 50
l_tol = 1e-4
l_max_its = 50
start_time = 0.0
end_time = 57294000
num_steps = 2600
dt = 86400
dtmax = 86400
#dtmin = 86400
[TimeStepper]
type = FunctionDT
function = 'if(t<54777600,86400,
if(t<56214000,900,
3600))'
[]
[]
[Postprocessors]
[_temp]
type = NodalExtremeValue
variable = temperature
[]
[release_Cs_inc]
type = SideIntegralMassFlux
variable = conc_Cs
boundary = exterior
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
execute_on = 'initial timestep_end'
[]
[released_Cs]
type = TimeIntegratedPostprocessor
value = release_Cs_inc
execute_on = 'initial timestep_end'
[]
[total_Cs]
type = ElementIntegralMaterialProperty
mat_prop = Cs_generation_total
block = fuel
execute_on = 'initial timestep_end'
[]
[x_Cs_released_overall]
type = FractionalRelease
released = released_Cs
total = total_Cs
execute_on = 'initial timestep_end'
[]
[x_Cs_released]
type = FractionalRelease
released = released_Cs
total = total_Cs
execute_on = 'initial timestep_end'
start_time = 54777600
[]
[retained_Cs]
type = ElementIntegralVariablePostprocessor
variable = conc_Cs
execute_on = 'initial timestep_end'
[]
[release_Ag_inc]
type = SideIntegralMassFlux
variable = conc_Ag
boundary = exterior
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
execute_on = 'initial timestep_end'
[]
[released_Ag]
type = TimeIntegratedPostprocessor
value = release_Ag_inc
execute_on = 'initial timestep_end'
[]
[total_Ag]
type = ElementIntegralMaterialProperty
mat_prop = Ag_generation_total
block = fuel
execute_on = 'initial timestep_end'
[]
[x_Ag_released_overall]
type = FractionalRelease
released = released_Ag
total = total_Ag
execute_on = 'initial timestep_end'
[]
[x_Ag_released]
type = FractionalRelease
released = released_Ag
total = total_Ag
execute_on = 'initial timestep_end'
start_time = 54777600
[]
[retained_Ag]
type = ElementIntegralVariablePostprocessor
variable = conc_Ag
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = false
exodus = true
[console]
type = Console
time_step_interval = 1
[]
[out]
type = CSV
[]
[out_final]
type = CSV
execute_on = final
[]
[]
(assessment/TRISO/benchmark/IAEA_CRP-6/diffusion/case_7a/case_7a.i)
[GlobalParams]
order = SECOND
family = LAGRANGE
initial_enrichment = 0.0407
[]
[Mesh]
coord_type = RSPHERICAL
[gen]
type = TRISO1DMeshGenerator
elem_type = EDGE3
coordinates = '0 272e-6 396e-6 402e-6 436e-6 475e-6'
mesh_density = '50 30 15 15 15'
block_names = 'fuel buffer IPyC SiC OPyC'
bias = '1 1.25 1.25 1.25 1.25'
dual_bias = '0.8 0.8 0.8 0.8 1'
[]
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[Variables]
[conc_Cs]
[]
[conc_Ag]
[]
[conc_Sr]
[]
[]
[AuxVariables]
[temperature]
initial_condition = 1304.15
[]
[Cs_diff_coef]
order = CONSTANT
family = MONOMIAL
[]
[Ag_diff_coef]
order = CONSTANT
family = MONOMIAL
[]
[Sr_diff_coef]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[temperature]
type = PiecewiseLinear
data_file = temperature_history.dat
format = columns
[]
[]
[Kernels]
[mass_Cs_dt]
type = TimeDerivative
variable = conc_Cs
[]
[mass_Cs]
type = ArrheniusDiffusion
variable = conc_Cs
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
temperature = temperature
extra_vector_tags = 'ref'
[]
[mass_source_Cs]
type = SpeciesSourceRate
variable = conc_Cs
property_name = Cs_generation
block = fuel
[]
[mass_Ag_dt]
type = TimeDerivative
variable = conc_Ag
[]
[mass_Ag]
type = ArrheniusDiffusion
variable = conc_Ag
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
temperature = temperature
extra_vector_tags = 'ref'
[]
[mass_source_Ag]
type = SpeciesSourceRate
variable = conc_Ag
property_name = Ag_generation
block = fuel
[]
[mass_Sr_dt]
type = TimeDerivative
variable = conc_Sr
[]
[mass_Sr]
type = ArrheniusDiffusion
variable = conc_Sr
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
temperature = temperature
extra_vector_tags = 'ref'
[]
[mass_source_Sr]
type = SpeciesSourceRate
variable = conc_Sr
property_name = Sr_generation
block = fuel
[]
[]
[AuxKernels]
[Cs_diff_coef]
type = MaterialRealAux
variable = Cs_diff_coef
property = arrhenius_diffusion_coef_Cs
execute_on = timestep_end
[]
[Ag_diff_coef]
type = MaterialRealAux
variable = Ag_diff_coef
property = arrhenius_diffusion_coef_Ag
execute_on = timestep_end
[]
[Sr_diff_coef]
type = MaterialRealAux
variable = Sr_diff_coef
property = arrhenius_diffusion_coef_Sr
execute_on = timestep_end
[]
[temperature]
type = FunctionAux
function = temperature
variable = temperature
[]
[]
[BCs]
[freesurf_conc_Cs]
type = DirichletBC
variable = conc_Cs
boundary = exterior
value = 0.0
[]
[freesurf_conc_Ag]
type = DirichletBC
variable = conc_Ag
boundary = exterior
value = 0.0
[]
[freesurf_conc_Sr]
type = DirichletBC
variable = conc_Sr
boundary = exterior
value = 0.0
[]
[]
[Materials]
[burnup]
type = GenericFunctionMaterial
block = fuel
prop_names = 'burnup'
prop_values = 'if(t<7682400,0.048/7682400*t,0.048)'
[]
[fission_rate]
type = GenericFunctionMaterial
block = fuel
prop_names = 'fission_rate'
# 1.699e20 = 0.048/7682400*10840/.27*6.0221409e23
prop_values = 'if(t<7682400,1.699e20,0)'
[]
[fuel_conc_Cs]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 5.6e-8 # m^2/s
q1 = 209e3 # J/mol
d2 = 5.2e-4
q2 = 362e3
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[mass_source_Cs_property]
type = SpeciesSourceMaterial
block = fuel
property_name = Cs_generation
kind = Cs
[]
[buffer_conc_Cs]
type = ArrheniusDiffusionCoef
block = buffer
d1 = 1e-8 # m^2/s
q1 = 0 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[IPyC_conc_Cs]
type = ArrheniusDiffusionCoef
block = IPyC
d1 = 6.3e-8 # m^2/s
q1 = 222e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[SiC_conc_Cs]
type = ArrheniusDiffusionCoef
block = SiC
d1 = 5.5e-14 # m^2/s
d1_function = 'if(t<7682400,exp(2.1e25/7682400*t/5e25),exp(2.1e25/5e25))'
q1 = 125e3 # J/mol
d2 = 1.6e-2
q2 = 514e3
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[OPyC_conc_Cs]
type = ArrheniusDiffusionCoef
block = OPyC
d1 = 6.3e-8 # m^2/s
q1 = 222e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[fuel_conc_Ag]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 6.7e-9 # m^2/s
q1 = 165e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[mass_source_Ag_property]
type = SpeciesSourceMaterial
block = fuel
property_name = Ag_generation
kind = Ag
[]
[buffer_conc_Ag]
type = ArrheniusDiffusionCoef
block = buffer
d1 = 1e-8 # m^2/s
q1 = 0 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[IPyC_conc_Ag]
type = ArrheniusDiffusionCoef
block = IPyC
d1 = 5.3e-9 # m^2/s
q1 = 154e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[SiC_conc_Ag]
type = ArrheniusDiffusionCoef
block = SiC
d1 = 3.6e-9 # m^2/s
q1 = 215e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[OPyC_conc_Ag]
type = ArrheniusDiffusionCoef
block = OPyC
d1 = 5.3e-9 # m^2/s
q1 = 154e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
[]
[fuel_conc_Sr]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 2.2e-3 # m^2/s
q1 = 488e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
[]
[mass_source_Sr_property]
type = SpeciesSourceMaterial
block = fuel
property_name = Sr_generation
kind = Sr
[]
[buffer_conc_Sr]
type = ArrheniusDiffusionCoef
block = buffer
d1 = 1e-8 # m^2/s
q1 = 0 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
[]
[IPyC_conc_Sr]
type = ArrheniusDiffusionCoef
block = IPyC
d1 = 2.3e-6 # m^2/s
q1 = 197e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
[]
[SiC_conc_Sr]
type = ArrheniusDiffusionCoef
block = SiC
d1 = 1.2e-9 # m^2/s
q1 = 205e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
[]
[OPyC_conc_Sr]
type = ArrheniusDiffusionCoef
block = OPyC
d1 = 2.3e-6 # m^2/s
q1 = 197e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
[]
[]
[Debug]
show_var_residual_norms = true
show_var_residual = 'conc_Cs conc_Ag'
[]
[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-21 #1e-22
nl_max_its = 50
l_tol = 1e-4
l_max_its = 50
start_time = 0.0
end_time = 8679600
num_steps = 1450
dt = 86400
dtmax = 86400
#dtmin = 86400
[TimeStepper]
type = FunctionDT
function = 'if(t<7682400,86400,
if(t<7707600,720,
3600))'
[]
[]
[Postprocessors]
[_temp]
type = NodalExtremeValue
variable = temperature
[]
[release_Cs_inc]
type = SideIntegralMassFlux
variable = conc_Cs
boundary = exterior
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
execute_on = 'initial timestep_end'
[]
[released_Cs]
type = TimeIntegratedPostprocessor
value = release_Cs_inc
execute_on = 'initial timestep_end'
[]
[total_Cs]
type = ElementIntegralMaterialProperty
mat_prop = Cs_generation_total
block = fuel
execute_on = 'initial timestep_end'
[]
[x_Cs_released_overall]
type = FractionalRelease
released = released_Cs
total = total_Cs
execute_on = 'initial timestep_end'
[]
[x_Cs_released]
type = FractionalRelease
released = released_Cs
total = total_Cs
execute_on = 'initial timestep_end'
start_time = 7682400
[]
[retained_Cs]
type = ElementIntegralVariablePostprocessor
variable = conc_Cs
execute_on = 'initial timestep_end'
[]
[release_Ag_inc]
type = SideIntegralMassFlux
variable = conc_Ag
boundary = exterior
arrhenius_prpty_name = arrhenius_diffusion_coef_Ag
execute_on = 'initial timestep_end'
[]
[released_Ag]
type = TimeIntegratedPostprocessor
value = release_Ag_inc
execute_on = 'initial timestep_end'
[]
[total_Ag]
type = ElementIntegralMaterialProperty
mat_prop = Ag_generation_total
block = fuel
execute_on = 'initial timestep_end'
[]
[x_Ag_released_overall]
type = FractionalRelease
released = released_Ag
total = total_Ag
execute_on = 'initial timestep_end'
[]
[x_Ag_released]
type = FractionalRelease
released = released_Ag
total = total_Ag
execute_on = 'initial timestep_end'
start_time = 7682400
[]
[retained_Ag]
type = ElementIntegralVariablePostprocessor
variable = conc_Ag
execute_on = 'initial timestep_end'
[]
[release_Sr_inc]
type = SideIntegralMassFlux
variable = conc_Sr
boundary = exterior
arrhenius_prpty_name = arrhenius_diffusion_coef_Sr
execute_on = 'initial timestep_end'
[]
[released_Sr]
type = TimeIntegratedPostprocessor
value = release_Sr_inc
execute_on = 'initial timestep_end'
[]
[total_Sr]
type = ElementIntegralMaterialProperty
mat_prop = Sr_generation_total
block = fuel
execute_on = 'initial timestep_end'
[]
[x_Sr_released_overall]
type = FractionalRelease
released = released_Sr
total = total_Sr
execute_on = 'initial timestep_end'
[]
[x_Sr_released]
type = FractionalRelease
released = released_Sr
total = total_Sr
execute_on = 'initial timestep_end'
start_time = 7682400
[]
[retained_Sr]
type = ElementIntegralVariablePostprocessor
variable = conc_Sr
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = false
exodus = true
[console]
type = Console
time_step_interval = 1
[]
[out]
type = CSV
[]
[out_final]
type = CSV
execute_on = final
[]
[]
(assessment/TRISO/benchmark/IAEA_CRP-6/diffusion/case_3a/case_3a.i)
[GlobalParams]
order = SECOND
family = LAGRANGE
[]
[Mesh]
coord_type = RSPHERICAL
[gen]
type = TRISO1DMeshGenerator
elem_type = EDGE3
coordinates = '0 250e-6 350e-6 390e-6 425e-6 465e-6'
mesh_density = '50 30 15 15 15'
block_names = 'fuel buffer IPyC SiC OPyC'
[]
[]
[Problem]
[]
[Variables]
[conc_Cs]
[]
[]
[ICs]
[conc_Cs]
type = ConstantIC
block = fuel
value = 1
variable = conc_Cs
[]
[]
[AuxVariables]
[temperature]
initial_condition = 1873.15
[]
[Cs_diff_coef]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[mass_Cs_dt]
type = TimeDerivative
variable = conc_Cs
[]
[mass_Cs]
type = ArrheniusDiffusion
variable = conc_Cs
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
temperature = temperature
[]
[]
[AuxKernels]
[Cs_diff_coef]
type = MaterialRealAux
variable = Cs_diff_coef
property = arrhenius_diffusion_coef_Cs
execute_on = timestep_end
[]
[]
[BCs]
[freesurf_conc_Cs]
type = DirichletBC
variable = conc_Cs
boundary = exterior
value = 0.0
[]
[]
[Materials]
[fuel_conc_Cs]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 5.6e-8 # m^2/s
q1 = 209e3 # J/mol
d2 = 5.2e-4
q2 = 362e3
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[buffer_conc_Cs]
type = ArrheniusDiffusionCoef
block = buffer
d1 = 1e-8 # m^2/s
q1 = 0 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[IPyC_conc_Cs]
type = ArrheniusDiffusionCoef
block = IPyC
d1 = 6.3e-8 # m^2/s
q1 = 222e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[SiC_conc_Cs]
type = ArrheniusDiffusionCoef
block = SiC
# 5.5e-14*exp(2/5) = 8.2e-14
d1 = 8.2e-14 # m^2/s
q1 = 125e3 # J/mol
d2 = 1.6e-2
q2 = 514e3
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[OPyC_conc_Cs]
type = ArrheniusDiffusionCoef
block = OPyC
d1 = 6.3e-8 # m^2/s
q1 = 222e3 # J/mol
temperature = temperature
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
[]
[]
[Debug]
show_var_residual_norms = true
show_var_residual = 'conc_Cs'
[]
[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 = 1e-20
nl_max_its = 50
l_tol = 1e-4
l_max_its = 50
start_time = 0.0
end_time = 720000
num_steps = 700
dt = 1800
dtmax = 1800
dtmin = 1800
[]
[Postprocessors]
[release_Cs_inc]
type = SideIntegralMassFlux
variable = conc_Cs
boundary = exterior
arrhenius_prpty_name = arrhenius_diffusion_coef_Cs
execute_on = 'initial timestep_end'
[]
[released_Cs]
type = TimeIntegratedPostprocessor
value = release_Cs_inc
execute_on = 'initial timestep_end'
[]
[total_Cs]
type = ElementIntegralVariablePostprocessor
variable = conc_Cs
execute_on = 'initial'
[]
[x_Cs_released]
type = FractionalRelease
released = released_Cs
total = total_Cs
[]
[retained_Cs]
type = ElementIntegralVariablePostprocessor
variable = conc_Cs
[]
[]
[Outputs]
perf_graph = true
print_linear_residuals = false
exodus = true
[console]
type = Console
time_step_interval = 1
[]
[out]
type = CSV
execute_on = final
[]
[]