- variableThe name of the variable that this object applies to
C++ Type:AuxVariableName
Unit:(no unit assumed)
Controllable:No
Description:The name of the variable that this object applies to
PorosityAuxUO2
Compute total porosity (sum of fabrication, gaseous, and sintering).
Description
PorosityAuxUO2 computes a total porosity as the sum of the fabrication, gaseous, and sintering porosities. It is used in conjunction with UO2VolumetricSwellingEigenstrain.
Example Input Syntax
[AuxKernels<<<{"href": "../../syntax/AuxKernels/index.html"}>>>]
[por]
type = PorosityAuxUO2<<<{"description": "Compute total porosity (sum of fabrication, gaseous, and sintering).", "href": "PorosityAuxUO2.html"}>>>
variable<<<{"description": "The name of the variable that this object applies to"}>>> = porosity
execute_on<<<{"description": "The list of flag(s) indicating when this object should be executed. For a description of each flag, see https://mooseframework.inl.gov/source/interfaces/SetupInterface.html."}>>> = 'initial linear'
[]
[](test/tests/sifgrs/uo2/swelling_porosity.i)Input Parameters
- blockThe list of blocks (ids or names) that this object will be applied
C++ Type:std::vector<SubdomainName>
Controllable:No
Description:The list of blocks (ids or names) that this object will be applied
- boundaryThe list of boundaries (ids or names) from the mesh where this object applies
C++ Type:std::vector<BoundaryName>
Controllable:No
Description:The list of boundaries (ids or names) from the mesh where this object applies
- check_boundary_restrictedTrueWhether to check for multiple element sides on the boundary in the case of a boundary restricted, element aux variable. Setting this to false will allow contribution to a single element's elemental value(s) from multiple boundary sides on the same element (example: when the restricted boundary exists on two or more sides of an element, such as at a corner of a mesh
Default:True
C++ Type:bool
Controllable:No
Description:Whether to check for multiple element sides on the boundary in the case of a boundary restricted, element aux variable. Setting this to false will allow contribution to a single element's elemental value(s) from multiple boundary sides on the same element (example: when the restricted boundary exists on two or more sides of an element, such as at a corner of a mesh
- execute_onLINEAR TIMESTEP_ENDThe list of flag(s) indicating when this object should be executed. For a description of each flag, see https://mooseframework.inl.gov/source/interfaces/SetupInterface.html.
Default:LINEAR TIMESTEP_END
C++ Type:ExecFlagEnum
Options:XFEM_MARK, NONE, INITIAL, LINEAR, NONLINEAR_CONVERGENCE, NONLINEAR, POSTCHECK, TIMESTEP_END, TIMESTEP_BEGIN, MULTIAPP_FIXED_POINT_END, MULTIAPP_FIXED_POINT_BEGIN, FINAL, CUSTOM, PRE_DISPLACE
Controllable:No
Description:The list of flag(s) indicating when this object should be executed. For a description of each flag, see https://mooseframework.inl.gov/source/interfaces/SetupInterface.html.
Optional Parameters
- control_tagsAdds user-defined labels for accessing object parameters via control logic.
C++ Type:std::vector<std::string>
Controllable:No
Description:Adds user-defined labels for accessing object parameters via control logic.
- enableTrueSet the enabled status of the MooseObject.
Default:True
C++ Type:bool
Controllable:Yes
Description:Set the enabled status of the MooseObject.
- 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/LWR/validation/RIA_NSRR_FK/analysis/FK5/FK05.i)
- (assessment/LWR/validation/RIA_NSRR_FK/analysis/FK2/FK02.i)
- (assessment/LWR/validation/RIA_NSRR_FK/analysis/FK9/FK09.i)
- (assessment/LWR/validation/RIA_NSRR_FK/analysis/FK2/FK02_action.i)
- (assessment/LWR/validation/Super_Ramp/analysis/Super_Ramp_Base.i)
- (assessment/LWR/validation/Super_Ramp/analysis/PK62/PK62_weighted_gap_VCP.i)
- (assessment/LWR/validation/Riso_AN8/analysis/Riso_AN8.i)
- (examples/multiapp/pin2.i)
- (assessment/LWR/validation/RIA_NSRR_FK/analysis/FK8/FK08.i)
- (assessment/LWR/validation/RIA_NSRR_FK/analysis/FK1/FK01_action.i)
- (assessment/LWR/validation/RIA_NSRR_FK/analysis/FK3/FK03_ccm.i)
- (assessment/LWR/validation/RIA_NSRR_FK/analysis/FK6/FK06.i)
- (test/tests/sifgrs/uo2/swelling_porosity.i)
- (test/tests/sifgrs/uo2/ad_swelling_porosity.i)
- (examples/multiapp/pin1.i)
- (test/tests/solid_mechanics/uo2_eigenstrains/uo2_vswelling/gas_only3.i)
- (assessment/LWR/validation/RIA_NSRR_FK/analysis/FK4/FK04.i)
- (test/tests/meso_thcond_test/sifgrs_swelling_fissiongas_graingrowth.i)
- (test/tests/meso_thcond_test/sifgrs_swelling_fissiongas.i)
- (assessment/LWR/validation/RIA_NSRR_FK/analysis/FK3/FK03.i)
- (assessment/LWR/validation/RIA_NSRR_FK/analysis/FK1/FK01.i)
- (assessment/LWR/validation/RIA_NSRR_FK/analysis/FK7/FK07.i)
References
No citations exist within this document.(test/tests/sifgrs/uo2/swelling_porosity.i)
# This test is for the fuel swelling and porosity computation in the Sifgrs fission gas behavior model for UO2.
# As complementary to the fission gas release process, the fission gas swelling is related to gas retention in the fuel in the form of bubbles. Through a direct description of the gas bubble development, the fission gas swelling and release are modeled as inherently coupled processes, on a physical basis. Only the fission gas swelling due to grain-face bubbles is considered.
# In a comprehensive treatment of fission gas release and fuel swelling, Sifgrs also incorporates empirical models for the swelling due to solid fission products and the fuel densification.
# Moreover, the different contributions to fuel porosity, namely, those due to fabrication pores, gas bubbles (thus associated with fission gas swelling) , and sintering (densification), are computed consistently with the swelling calculations. Then, the fuel total porosity in each mesh location can be tracked (auxkernel PorosityAuxUO2), and considered in the computation of other relevant material properties like the fuel thermal conductivity (material model UO2Thermal).
# This test aims at demonstrating the above model capabilities. The considered case involves a single-element cubic domain, constant temperature (1400 K) and fission rate (1e19 f/(m**3s)), and a irradiation time of 1e8 s. The Sifgrs model is adopted for calculating the fission gas release and fuel swelling. Starting from a typical as-fabricated value of 5%, the fuel porosity evolves consistently with the swelling. The fuel thermal conductivity is calculated as coupled with porosity, which allows taking into account the conductivity degradation due to progressive increase of gaseous porosity (see also the attached file regression_tests_sifgrs.xlsx).
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
[mesh]
type = FileMeshGenerator
file = cube_111.e
[]
[]
[Functions]
[Temp_func]
type = ParsedFunction
expression = '1400.'
[]
[Fiss_func]
type = ParsedFunction
expression = '1.e19'
[]
[]
[Variables]
[temp]
initial_condition = 1400.
[]
[disp_x]
[]
[disp_y]
[]
[disp_z]
[]
[]
[AuxVariables]
[fission_rate]
[]
[burnup]
[]
[porosity]
order = CONSTANT
family = MONOMIAL
initial_condition = 0.05
[]
[density]
order = CONSTANT
family = MONOMIAL
[]
[deltav_v0_bubble_GB]
order = CONSTANT
family = MONOMIAL
[]
[deltav_v0_sl]
order = CONSTANT
family = MONOMIAL
[]
[deltav_v0_dn]
order = CONSTANT
family = MONOMIAL
[]
[deltav_v0_swe]
order = CONSTANT
family = MONOMIAL
[]
[fabrication_porosity]
order = CONSTANT
family = MONOMIAL
[]
[gaseous_porosity]
order = CONSTANT
family = MONOMIAL
[]
[sintering_porosity]
order = CONSTANT
family = MONOMIAL
[]
[thermal_conductivity]
order = CONSTANT
family = MONOMIAL
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[pellets]
add_variables = false
strain = FINITE
eigenstrain_names = 'fuel_volumetric_strain'
volumetric_locking_correction = false
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temp
[]
[]
[AuxKernels]
[frate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
fission_rate_function = Fiss_func
execute_on = 'initial timestep_begin'
[]
[brnp]
type = BurnupAux
variable = burnup
fission_rate = fission_rate
density = 10417.
execute_on = 'initial timestep_begin'
[]
[por]
type = PorosityAuxUO2
variable = porosity
execute_on = 'initial linear'
[]
[rho]
type = MaterialRealAux
variable = density
property = density
execute_on = 'initial linear'
[]
[dvv0bd]
type = MaterialRealAux
variable = deltav_v0_bubble_GB
property = deltav_v0_bubble_GB
[]
[dvv0sl]
type = MaterialRealAux
variable = deltav_v0_sl
property = solid_swelling
[]
[dvv0dn]
type = MaterialRealAux
variable = deltav_v0_dn
property = densification
[]
[dvv0swe]
type = MaterialRealAux
variable = deltav_v0_swe
property = volumetric_swelling_strain
[]
[fabpor]
type = MaterialRealAux
variable = fabrication_porosity
property = fabrication_porosity
execute_on = 'initial linear'
[]
[gaspor]
type = MaterialRealAux
variable = gaseous_porosity
property = gaseous_porosity
[]
[sinpor]
type = MaterialRealAux
variable = sintering_porosity
property = sintering_porosity
[]
[thcond]
type = MaterialRealAux
variable = thermal_conductivity
property = thermal_conductivity
execute_on = 'initial linear'
[]
[]
[BCs]
[bottom_T]
type = FunctionDirichletBC
variable = temp
function = Temp_func
boundary = 1
[]
[x_disp]
type = DirichletBC
variable = disp_x
value = 0
boundary = 1
[]
[y_disp]
type = DirichletBC
variable = disp_y
value = 0
boundary = 2
[]
[z_disp]
type = DirichletBC
variable = disp_z
value = 0
boundary = 3
[]
[]
[Materials]
[fuel_thermal]
type = UO2Thermal
temperature = temp
burnup = burnup
initial_porosity = 0.05
porosity = porosity
thermal_conductivity_model = NFIR
[]
[fuel_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 2.0e11
poissons_ratio = 0.3
[]
[fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
[]
[fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
temperature = temp
burnup = burnup
initial_fuel_density = 10417.0
eigenstrain_name = fuel_volumetric_strain
[]
[density]
type = StrainAdjustedDensity
strain_free_density = 10417.0
[]
[fission_gas_release_and_swelling]
type = UO2Sifgrs
temperature = temp
fission_rate = fission_rate
burnup = burnup
initial_porosity = 0.05
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
l_tol = 1.e-04
nl_abs_tol = 1.e-05
nl_rel_tol = 1.e-05
start_time = 0.
num_steps = 100
dt = 1.e+06
end_time = 1.e+08
[]
[Postprocessors]
[fis_gas_generated]
type = ElementIntegralFisGasGeneratedSifgrs
[]
[fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
[]
[]
[Outputs]
[out]
type = Exodus
[]
[]
(assessment/LWR/validation/RIA_NSRR_FK/analysis/FK5/FK05.i)
# This file was created using BIF with the following inputs:
# FK05/FK05.var - md5sum: 789d603cfbdaaeb2625ea98056214f6f
# pulse.tpl - md5sum: 37e5a6b8a0c63ad020906dada3472585
initial_fuel_density = 10310.8809782
[GlobalParams]
density = ${initial_fuel_density}
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11
a_lower = 0.01822
a_upper = 0.12422
temperature = temp
volumetric_locking_correction = false
[]
[Mesh]
coord_type = RZ
[smeared_pellet_mesh]
type = FuelPinMeshGenerator
clad_mesh_density = customize
pellet_mesh_density = customize
elem_type = QUAD8
ny_p = 100
nx_c = 4
ny_c = 100
nx_p = 12
ny_cu = 3
ny_cl = 3
bx_p = 0.75
clad_bot_gap_height = 0.00152
bottom_clad_height = 0.0167
top_clad_height = 0.0167
clad_thickness = 0.00086
pellet_outer_radius = 0.00527
clad_top_gap_height = 0.05265
pellet_height = 0.106
clad_gap_width = 1e-05
pellet_quantity = 1
[]
patch_size = 5
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
converge_on = 'disp_x disp_y temp'
[]
[Variables]
[temp]
initial_condition = 293
block = '1 3'
[]
[]
[AuxVariables]
[BuTC]
[]
[gap]
order = CONSTANT
family = MONOMIAL
[]
[fast_neutron_flux]
block = 1
[]
[fast_neutron_fluence]
block = 1
[]
[buavg]
order = CONSTANT
family = MONOMIAL
[]
[fission_rate]
initial_condition = 0
[]
[grain_radius]
block = 3
initial_condition = 5.96e-6
[]
[integral_burnup]
order = CONSTANT
family = MONOMIAL
[]
[pellet_id]
order = CONSTANT
family = MONOMIAL
block = 3
[]
[porosity]
order = CONSTANT
family = MONOMIAL
initial_condition = 0.0592261881186
[]
[SED]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[linear_heat_rate_profile]
type = PiecewiseLinear
data_file = pulse.csv
format = columns
[]
[flux]
type = ConstantFunction
value = 0.0
[]
[axial_peaking_factors]
type = ConstantFunction
value = 1
[]
[coolant_pressure_ramp]
type = ConstantFunction
value = 101325
[]
[linear_heat_generation_rate]
type = CompositeFunction
functions = 'linear_heat_rate_profile axial_peaking_factors'
[]
[axial_flux]
type = CompositeFunction
functions = 'flux axial_peaking_factors'
[]
[burnup_thermal_conductivity]
type = ConstantFunction
value = 1 # should be burnup / 950
[]
[radial_power_profile]
type = PiecewiseLinear
data_file = RadialPowerProfile.csv
format = columns
axis = X
[]
[radial_burnup_profile]
type = PiecewiseLinear
data_file = RadialBurnupProfile.csv
format = columns
axis = X
[]
[initial_burnup]
type = CompositeFunction
functions = 'burnup_thermal_conductivity radial_burnup_profile'
[]
[]
[Burnup]
[burnup]
block = 3
rod_ave_lin_pow = linear_heat_rate_profile
axial_power_profile = axial_peaking_factors
rpf_input = radial_power_profile
num_radial = 80
num_axial = 49
fuel_inner_radius = 0.0
fuel_outer_radius = 0.00527
fuel_volume_ratio = 1.0
isotopes = 'U235 U238 Pu239 Pu240 Pu241 Pu242'
isotope_fractions = '0.045 0.955 0.0 0.0 0.0 0.0'
[]
[]
[Physics/SolidMechanics/QuasiStatic]
add_variables = true
[fuel]
block = 3
strain = FINITE
incremental = true
eigenstrain_names = 'fuel_thermal_eigenstrain
fuel_volumetric_swelling_eigenstrain'
extra_vector_tags = 'ref'
generate_output = 'vonmises_stress hydrostatic_stress elastic_strain_xx
elastic_strain_yy elastic_strain_zz stress_xx stress_yy stress_zz strain_xx
strain_yy strain_zz'
decomposition_method = EigenSolution
[]
[clad]
block = 1
strain = FINITE
incremental = true
eigenstrain_names = 'clad_thermal_eigenstrain'
extra_vector_tags = 'ref'
generate_output = 'vonmises_stress elastic_strain_xx
elastic_strain_yy elastic_strain_zz stress_xx stress_yy stress_zz strain_xx
strain_yy strain_zz creep_strain_xx creep_strain_yy creep_strain_zz'
decomposition_method = EigenSolution
[]
[]
[Kernels]
[gravity]
type = Gravity
variable = disp_y
value = -9.81
block = '1 3'
extra_vector_tags = 'ref'
[]
[heat]
type = HeatConduction
variable = temp
block = '1 3'
extra_vector_tags = 'ref'
[]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temp
block = '1 3'
extra_vector_tags = 'ref'
[]
[heat_source]
type = NeutronHeatSource
fission_rate = fission_rate
variable = temp
block = 3
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[BuTC]
type = FunctionAux
block = 3
variable = BuTC
function = initial_burnup
[]
[pelletid]
type = PelletIdAux
block = 3
variable = pellet_id
number_pellets = 1
execute_on = initial
[]
[gap]
type = SpatialUserObjectAux
block = 3
variable = gap
execute_on = timestep_end
user_object = avg_gap
[]
[buavg]
type = SpatialUserObjectAux
block = 3
variable = buavg
execute_on = timestep_end
user_object = integral_burnup
[]
[fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
function = axial_flux
block = 1
execute_on = timestep_begin
[]
[fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = 1
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[]
[fuel_porosity]
type = PorosityAuxUO2
block = 3
variable = porosity
execute_on = timestep_begin
[]
[grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temperature = temp
execute_on = timestep_begin
[]
[SED]
type = MaterialRealAux
variable = SED
property = strain_energy_density
execute_on = timestep_end
block = 1
[]
[]
[Contact]
[mechanical]
model = coulomb
formulation = mortar
primary = 5
secondary = 10
friction_coefficient = 0.4
c_normal = 1e+12
c_tangential = 1e+24
tangential_lm_scaling = 1.0e-16
normal_lm_scaling = 1.0e-10
[]
[]
[ThermalContactMortar]
[thermal_contact]
secondary_variable = temp
primary_boundary = '5'
secondary_boundary = '10'
layer_thickness = layer_thickness_action
roughness_coef = 3.2
roughness_primary = 1.5e-6
roughness_secondary = 1.75e-6
jump_distance_model = LANNING
plenum_pressure = plenum_pressure
initial_moles = initial_moles
gas_released = fission_gas_released
contact_pressure = mechanical_normal_lm
thermal_lm_scaling = 1.0e-2
[]
[]
[BCs]
[no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[]
[no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 20
value = 0.0
[]
[no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[]
[coolant_temp]
type = DirichletBC
boundary = '1 2 3'
variable = temp
value = 293
[]
[Pressure]
[coolantPressure]
boundary = '1 2 3'
factor = 1
function = coolant_pressure_ramp
[]
[]
[PlenumPressure]
[plenumPressure]
boundary = '10 5'
initial_pressure = 0.5e6
startup_time = 0
R = 8.314462
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
initial_temperature = 293
[]
[]
[]
[Materials]
[fuel_swelling]
type = UO2VolumetricSwellingEigenstrain
block = 3
burnup = burnup
initial_fuel_density = 10310.8809782
total_densification = 0.006
gas_swelling_model_type = SIFGRS
eigenstrain_name = 'fuel_volumetric_swelling_eigenstrain'
[]
[fuel_thermal]
type = UO2Thermal
thermal_conductivity_model = NFIR
block = 3
temperature = temp
burnup = BuTC
initial_porosity = 0.0592261881186
[]
[fuel_elasticity_tensor]
type = UO2ElasticityTensor
block = 3
[]
[fuel_thermal_expansion]
type = UO2ThermalExpansionMartinEigenstrain
block = 3
stress_free_temperature = 293
eigenstrain_name = 'fuel_thermal_eigenstrain'
[]
[fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = '3'
[]
[clad_thermal]
type = ZryThermal
block = 1
temperature = temp
[]
[clad_inelastic_stress]
type = ComputeMultipleInelasticStress
block = 1
tangent_operator = elastic
inelastic_models ='plasticity'
[]
[clad_elasticity_tensor]
type = ZryElasticityTensor
block = 1
fast_neutron_fluence = fast_neutron_fluence
initial_fast_fluence = 1.20e26
cold_work_factor = 0.01
matpro_youngs_modulus = true
matpro_poissons_ratio = true
[]
## TODO: Creep is not active, but is transfered from the SM version.
## Adding creep causes the Peak Hoop strain to best match the FALCON
## results given by R. Montgomery and D. Sunderland. Only retaining
## plasticity matches the results from Wenfeng Liu, John Alvis, Robert Montgomery, and Ken Yueh
[clad_creep_stress]
type = ZryCreepLimbackHoppeUpdate
block = 1
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
initial_fast_fluence = 1.20e26
[]
[clad_thermal_expansion]
type = ZryThermalExpansionMATPROEigenstrain
block = 1
stress_free_temperature = 293.0
eigenstrain_name = 'clad_thermal_eigenstrain'
[]
[plasticity]
type = ZryPlasticityUpdate
block = 1
initial_fast_fluence = 1.20e26
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
cold_work_factor = .01
plasticity_model_type = MATPRO
output_properties = yield_stress
outputs = all
zircaloy_alloy_type = 4
[]
[fission_gas_release]
type = UO2Sifgrs
block = 3
temperature = temp
fission_rate = fission_rate
grain_radius = grain_radius
gbs_model = true
burnup = BuTC
transient_option = MICROCRACKING
[]
[clad_density]
type = StrainAdjustedDensity
block = 1
strain_free_density = 6551
[]
[fuel_density]
type = StrainAdjustedDensity
block = 3
strain_free_density = ${initial_fuel_density}
[]
[strain_energy_density]
type = StrainEnergyDensity
block = '1 3'
incremental = true
[]
[]
[UserObjects]
[avg_gap]
type = LayeredAverage
block = 3
variable = penetration
direction = y
num_layers = 48
[]
[pbz]
type = PelletBrittleZone
block = 3
pellet_id = pellet_id
temperature = temp
pellet_radius = 0.00527
number_pellets = 1
execute_on = timestep_begin
[]
[integral_burnup]
type = LayeredAverage
block = 3
variable = burnup
direction = y
num_layers = 1
[]
[]
[Executioner]
type = Transient
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-12'
line_search = 'none'
l_max_its = 40
l_tol = 8e-3
nl_max_its = 40
nl_rel_tol = 1e-3
nl_abs_tol = 1e-10
dtmin = 0.00001
dtmax = 1.0
start_time = 0
end_time = 100
[TimeStepper]
type = IterationAdaptiveDT
dt = 0.0001
optimal_iterations = 200
linear_iteration_ratio = 100
timestep_limiting_function = linear_heat_rate_profile
max_function_change = 500000
force_step_every_function_point = true
[]
[]
[Dampers]
[limitT]
type = MaxIncrement
max_increment = 200.0
variable = temp
[]
[limitX]
type = MaxIncrement
max_increment = 1e-4
variable = disp_x
[]
[]
[Postprocessors]
[max_hoop_strain]
type = ElementExtremeValue
variable = strain_zz
block = 1
[]
[max_SED]
type = ElementExtremeValue
variable = SED
block = 1
[]
[average_grain_radius]
type = ElementAverageValue
block = 3
outputs = 'exodus'
variable = grain_radius
[]
[clad_inner_vol]
type = InternalVolume
boundary = 7
outputs = 'exodus'
execute_on = 'timestep_begin initial'
[]
[flux_from_clad]
type = SideDiffusiveFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
outputs = 'exodus'
[]
[flux_from_fuel]
type = SideDiffusiveFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
outputs = 'exodus'
[]
[rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = 3
[]
[rod_input_power]
type = FunctionValuePostprocessor
function = linear_heat_rate_profile
scale_factor = 0.106
[]
[average_fission_rate]
type = ElementAverageValue
variable = fission_rate
block = '3'
[]
[RAE]
type = RadialAverageEnthalpy
vector_postprocessor = rad_temp
radial_direction = x
axial_direction = y
axial_position = 0.0503
temperature_name = temp
[]
[peak_RAE]
type = TimeExtremeValue
postprocessor = RAE
[]
[]
[VectorPostprocessors]
[rad_temp]
type = NodalValueSampler
block = 3
sort_by = y
variable = temp
execute_on = timestep_end
outputs = dummy
[]
[]
[StandardLWRFuelRodOutputs]
fuel_pellet_blocks = 3
cladding_blocks = 1
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = true
csv = true
[chkfile]
type = CSV
show = 'average_centerline_fuel_temperature average_fission_rate fission_gas_released_percentage peak_RAE rod_total_power'
execute_on = 'FINAL'
[]
[console]
type = Console
max_rows = 25
output_linear = true
[]
[dummy]
type = CSV
enable = false
[]
[]
(assessment/LWR/validation/RIA_NSRR_FK/analysis/FK2/FK02.i)
# This file was created using BIF with the following inputs:
# FK02.var - md5sum: 123016ae8f3283a45bae816a366f93b1
# ../pulse_rev1.tpl - md5sum: 8d6b8b4bce1dd830dea2d8522009e514
initial_fuel_density = 10020.6066633
[GlobalParams]
density = ${initial_fuel_density}
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11
a_lower = 0.01822
a_upper = 0.12422
temperature = temp
volumetric_locking_correction = false
[]
[Mesh]
coord_type = RZ
[smeared_pellet_mesh]
type = FuelPinMeshGenerator
clad_mesh_density = customize
pellet_mesh_density = customize
elem_type = QUAD8
ny_p = 100
nx_c = 4
ny_c = 100
nx_p = 12
ny_cu = 3
ny_cl = 3
bx_p = 0.75
clad_bot_gap_height = 0.00152
bottom_clad_height = 0.0167
top_clad_height = 0.0167
clad_thickness = 0.00086
pellet_outer_radius = 0.00527
clad_top_gap_height = 0.03481
pellet_height = 0.106
clad_gap_width = 1e-05
pellet_quantity = 1
[]
patch_size = 5
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[Variables]
[temp]
initial_condition = 293
[]
[]
[AuxVariables]
[BuTC]
[]
[gap]
order = CONSTANT
family = MONOMIAL
[]
[fast_neutron_flux]
block = 1
[]
[fast_neutron_fluence]
block = 1
[]
[buavg]
order = CONSTANT
family = MONOMIAL
[]
[fission_rate]
initial_condition = 0
[]
[grain_radius]
block = 3
initial_condition = 5.96e-6
[]
[integral_burnup]
order = CONSTANT
family = MONOMIAL
[]
[pellet_id]
order = CONSTANT
family = MONOMIAL
block = 3
[]
[gap_conductivity]
order = CONSTANT
family = MONOMIAL
[]
[porosity]
order = CONSTANT
family = MONOMIAL
initial_condition = 0.085711070864
[]
[SED]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[linear_heat_rate_profile]
type = PiecewiseLinear
data_file = pulse.csv
format = columns
[]
[flux]
type = ConstantFunction
value = 0.0
[]
[axial_peaking_factors]
type = ConstantFunction
value = 1
[]
[coolant_pressure_ramp]
type = ConstantFunction
value = 101325
[]
[linear_heat_generation_rate]
type = CompositeFunction
functions = 'linear_heat_rate_profile axial_peaking_factors'
[]
[axial_flux]
type = CompositeFunction
functions = 'flux axial_peaking_factors'
[]
[burnup_thermal_conductivity]
type = ConstantFunction
value = 0.0473684210526 # should be burnup / 950
[]
[radial_power_profile]
type = PiecewiseBilinear
data_file = RadialPowerProfile.csv
axis = 0
[]
[radial_burnup_profile]
type = PiecewiseBilinear
data_file = RadialBurnupProfile.csv
axis = 0
[]
[initial_burnup]
type = CompositeFunction
functions = 'burnup_thermal_conductivity radial_burnup_profile'
[]
[]
[Burnup]
[burnup]
block = 3
rod_ave_lin_pow = linear_heat_rate_profile
axial_power_profile = axial_peaking_factors
rpf_input = radial_power_profile
num_radial = 80
num_axial = 49
fuel_inner_radius = 0.0
fuel_outer_radius = 0.00527
fuel_volume_ratio = 1.0
isotopes = 'U235 U238 Pu239 Pu240 Pu241 Pu242'
isotope_fractions = '0.039 0.961 0.0 0.0 0.0 0.0'
[]
[]
[Physics/SolidMechanics/QuasiStatic]
add_variables = true
[fuel]
block = 3
strain = FINITE
incremental = true
eigenstrain_names = 'fuel_thermal_eigenstrain
fuel_volumetric_swelling_eigenstrain'
extra_vector_tags = 'ref'
generate_output = 'vonmises_stress hydrostatic_stress elastic_strain_xx
elastic_strain_yy elastic_strain_zz stress_xx stress_yy stress_zz strain_xx
strain_yy strain_zz'
decomposition_method = EigenSolution
[]
[clad]
block = 1
strain = FINITE
incremental = true
eigenstrain_names = 'clad_thermal_eigenstrain'
extra_vector_tags = 'ref'
generate_output = 'vonmises_stress elastic_strain_xx
elastic_strain_yy elastic_strain_zz stress_xx stress_yy stress_zz strain_xx
strain_yy strain_zz creep_strain_xx creep_strain_yy creep_strain_zz'
decomposition_method = EigenSolution
[]
[]
[Kernels]
[gravity]
type = Gravity
variable = disp_y
value = -9.81
extra_vector_tags = 'ref'
[]
[heat]
type = HeatConduction
variable = temp
extra_vector_tags = 'ref'
[]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temp
extra_vector_tags = 'ref'
[]
[heat_source]
type = NeutronHeatSource
fission_rate = fission_rate
variable = temp
block = 3
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[BuTC]
type = FunctionAux
block = 3
variable = BuTC
function = initial_burnup
[]
[pelletid]
type = PelletIdAux
block = 3
variable = pellet_id
number_pellets = 1
execute_on = initial
[]
[gap]
type = SpatialUserObjectAux
block = 3
variable = gap
execute_on = timestep_end
user_object = avg_gap
[]
[buavg]
type = SpatialUserObjectAux
block = 3
variable = buavg
execute_on = timestep_end
user_object = integral_burnup
[]
[fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
function = axial_flux
block = 1
execute_on = timestep_begin
[]
[fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = 1
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[]
[fuel_porosity]
type = PorosityAuxUO2
block = 3
variable = porosity
execute_on = timestep_begin
[]
[grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temperature = temp
execute_on = timestep_begin
[]
[gap_conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_conductivity
boundary = 10
[]
[SED]
type = MaterialRealAux
variable = SED
property = strain_energy_density
execute_on = timestep_end
block = 1
[]
[]
[Contact]
[pellet_clad_mechanical]
primary = 5
secondary = 10
penalty = 1e14
normalize_penalty = true
model = frictionless
friction_coefficient = 2.5
normal_smoothing_distance = 0.1
formulation = penalty
[]
[]
[ThermalContact]
[thermal_contact]
type = GasGapHeatTransfer
variable = temp
primary = 5
secondary = 10
roughness_coef = 3.2
roughness_primary = 1.5e-6
roughness_secondary = 1.75e-6
jump_distance_model = LANNING
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
initial_moles = initial_moles
gas_released = fission_gas_released
tangential_tolerance = 1.0e-6
quadrature = true
[]
[]
[BCs]
[no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[]
[no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 20
value = 0.0
[]
[no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[]
[coolant_temp]
type = DirichletBC
boundary = '1 2 3'
variable = temp
value = 293
[]
[Pressure]
[coolantPressure]
boundary = '1 2 3'
factor = 1
function = coolant_pressure_ramp
[]
[]
[PlenumPressure]
[plenumPressure]
boundary = '10 5'
initial_pressure = 0.3e6
startup_time = 0
R = 8.314462
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
initial_temperature = 293
[]
[]
[]
[Materials]
[fuel_swelling]
type = UO2VolumetricSwellingEigenstrain
block = 3
burnup = burnup
initial_fuel_density = 10020.6066633
total_densification = 0.006
gas_swelling_model_type = SIFGRS
eigenstrain_name = 'fuel_volumetric_swelling_eigenstrain'
[]
[fuel_thermal]
type = UO2Thermal
thermal_conductivity_model = NFIR
block = 3
temperature = temp
burnup = BuTC
initial_porosity = 0.085711070864
[]
[fuel_elasticity_tensor]
type = UO2ElasticityTensor
block = 3
[]
[fuel_thermal_expansion]
type = UO2ThermalExpansionMartinEigenstrain
block = 3
stress_free_temperature = 293
eigenstrain_name = 'fuel_thermal_eigenstrain'
[]
[fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = '3'
[]
[clad_thermal]
type = ZryThermal
block = 1
temperature = temp
[]
## TODO: Creep is not active, but is transfered from the SM version.
## Adding creep causes the Peak Hoop strain to best match the FALCON
## results given by R. Montgomery and D. Sunderland. Only retaining
## plasticity matches the results from Wenfeng Liu, John Alvis, Robert Montgomery, and Ken Yueh
[clad_creep_stress]
type = ZryCreepLimbackHoppeUpdate
block = 1
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
initial_fast_fluence = 8.40e25
[]
[clad_elasticity_tensor]
type = ZryElasticityTensor
block = 1
fast_neutron_fluence = fast_neutron_fluence
initial_fast_fluence = 8.40e25
cold_work_factor = 0.01
matpro_youngs_modulus = true
matpro_poissons_ratio = true
[]
[clad_thermal_expansion]
type = ZryThermalExpansionMATPROEigenstrain
block = 1
stress_free_temperature = 293.0
eigenstrain_name = 'clad_thermal_eigenstrain'
[]
[clad_inelastic_stress]
type = ComputeMultipleInelasticStress
block = 1
tangent_operator = elastic
inelastic_models ='plasticity'
[]
[plasticity]
type = ZryPlasticityUpdate
block = 1
initial_fast_fluence = 8.40e25
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
cold_work_factor = 0.01
plasticity_model_type = MATPRO
output_properties = yield_stress
outputs = all
zircaloy_alloy_type = 4
[]
[fission_gas_release]
type = UO2Sifgrs
block = 3
temperature = temp
fission_rate = fission_rate
grain_radius = grain_radius
gbs_model = true
burnup = BuTC
transient_option = MICROCRACKING
[]
[clad_density]
type = StrainAdjustedDensity
block = 1
strain_free_density = 6551
[]
[fuel_density]
type = StrainAdjustedDensity
block = 3
strain_free_density = ${initial_fuel_density}
[]
[strain_energy_density]
type = StrainEnergyDensity
incremental = true
[]
[]
[UserObjects]
[avg_gap]
type = LayeredAverage
block = 3
variable = penetration
direction = y
num_layers = 48
[]
[pbz]
type = PelletBrittleZone
block = 3
pellet_id = pellet_id
temperature = temp
pellet_radius = 0.00527
number_pellets = 1
execute_on = timestep_begin
[]
[integral_burnup]
type = LayeredAverage
block = 3
variable = burnup
direction = y
num_layers = 1
[]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
l_max_its = 40
l_tol = 8e-3
nl_max_its = 40
nl_rel_tol = 1e-3
nl_abs_tol = 1e-10
dtmin = 0.00001
dtmax = 1.0
start_time = 0
end_time = 100
[TimeStepper]
type = IterationAdaptiveDT
dt = 0.0001
optimal_iterations = 200
linear_iteration_ratio = 100
timestep_limiting_function = linear_heat_rate_profile
max_function_change = 500000
force_step_every_function_point = true
[]
[]
[Dampers]
[limitT]
type = MaxIncrement
max_increment = 100.0
variable = temp
[]
[limitX]
type = MaxIncrement
max_increment = 1e-5
variable = disp_x
[]
[contactslip]
type = ContactSlipDamper
primary = 5
secondary = 8
min_damping_factor = 0.05
[]
[]
[Postprocessors]
[max_hoop_strain]
type = ElementExtremeValue
variable = strain_zz
block = 1
[]
[max_SED]
type = ElementExtremeValue
variable = SED
block = 1
[]
[average_grain_radius]
type = ElementAverageValue
block = 3
outputs = 'exodus'
variable = grain_radius
[]
[clad_inner_vol]
type = InternalVolume
boundary = 7
outputs = 'exodus'
execute_on = 'timestep_begin initial'
[]
[flux_from_clad]
type = SideDiffusiveFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
outputs = 'exodus'
[]
[flux_from_fuel]
type = SideDiffusiveFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
outputs = 'exodus'
[]
[rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = 3
[]
[rod_input_power]
type = FunctionValuePostprocessor
function = linear_heat_rate_profile
scale_factor = 0.106
[]
[average_fission_rate]
type = ElementAverageValue
variable = fission_rate
block = '3'
[]
[RAE]
type = RadialAverageEnthalpy
vector_postprocessor = rad_temp
radial_direction = x
axial_direction = y
axial_position = 0.0503
temperature_name = temp
[]
[peak_RAE]
type = TimeExtremeValue
postprocessor = RAE
[]
[]
[VectorPostprocessors]
[rad_temp]
type = NodalValueSampler
block = 3
sort_by = y
variable = temp
execute_on = timestep_end
outputs = dummy
[]
[]
[StandardLWRFuelRodOutputs]
fuel_pellet_blocks = 3
cladding_blocks = 1
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = true
csv = true
[chkfile]
type = CSV
show = 'average_centerline_fuel_temperature average_fission_rate fission_gas_released_percentage peak_RAE rod_total_power'
execute_on = 'FINAL'
[]
[console]
type = Console
max_rows = 25
output_linear = true
[]
[dummy]
type = CSV
enable = false
[]
[]
(assessment/LWR/validation/RIA_NSRR_FK/analysis/FK9/FK09.i)
# This file was created using BIF with the following inputs:
# FK06/FK06.var - md5sum: 5a60c05af67ba840a89caacf70b852e2
# pulse.tpl - md5sum: 37e5a6b8a0c63ad020906dada3472585
initial_fuel_density = 10310.8809782
[GlobalParams]
density = ${initial_fuel_density}
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11
a_lower = 0.01822
a_upper = 0.12422
temperature = temp
volumetric_locking_correction = false
[]
[Mesh]
coord_type = RZ
[smeared_pellet_mesh]
type = FuelPinMeshGenerator
clad_mesh_density = customize
pellet_mesh_density = customize
elem_type = QUAD8
ny_p = 100
nx_c = 4
ny_c = 100
nx_p = 12
ny_cu = 3
ny_cl = 3
bx_p = 0.75
clad_bot_gap_height = 0.00152
bottom_clad_height = 0.0167
top_clad_height = 0.0167
clad_thickness = 0.00086
pellet_outer_radius = 0.00527
clad_top_gap_height = 0.05265
pellet_height = 0.106
clad_gap_width = 1e-05
pellet_quantity = 1
[]
patch_size = 5
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
converge_on = 'disp_x disp_y temp'
[]
[Variables]
[temp]
initial_condition = 293
block = '1 3'
[]
[]
[AuxVariables]
[BuTC]
[]
[gap]
order = CONSTANT
family = MONOMIAL
[]
[fast_neutron_flux]
block = 1
[]
[fast_neutron_fluence]
block = 1
[]
[buavg]
order = CONSTANT
family = MONOMIAL
[]
[fission_rate]
initial_condition = 0
[]
[grain_radius]
block = 3
initial_condition = 5.96e-6
[]
[integral_burnup]
order = CONSTANT
family = MONOMIAL
[]
[pellet_id]
order = CONSTANT
family = MONOMIAL
block = 3
[]
[porosity]
order = CONSTANT
family = MONOMIAL
initial_condition = 0.0592261881186
[]
[SED]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[linear_heat_rate_profile]
type = PiecewiseLinear
data_file = pulse.csv
format = columns
[]
[flux]
type = ConstantFunction
value = 0.0
[]
[axial_peaking_factors]
type = ConstantFunction
value = 1
[]
[coolant_pressure_ramp]
type = ConstantFunction
value = 101325
[]
[linear_heat_generation_rate]
type = CompositeFunction
functions = 'linear_heat_rate_profile axial_peaking_factors'
[]
[axial_flux]
type = CompositeFunction
functions = 'flux axial_peaking_factors'
[]
[burnup_thermal_conductivity]
type = ConstantFunction
value = 1 # should be burnup / 950
[]
[radial_power_profile]
type = PiecewiseLinear
data_file = RadialPowerProfile.csv
format = columns
axis = X
[]
[radial_burnup_profile]
type = PiecewiseLinear
data_file = RadialBurnupProfile.csv
format = columns
axis = X
[]
[initial_burnup]
type = CompositeFunction
functions = 'burnup_thermal_conductivity radial_burnup_profile'
[]
[]
[Burnup]
[burnup]
block = 3
rod_ave_lin_pow = linear_heat_rate_profile
axial_power_profile = axial_peaking_factors
rpf_input = radial_power_profile
num_radial = 80
num_axial = 49
fuel_inner_radius = 0.0
fuel_outer_radius = 0.00527
fuel_volume_ratio = 1.0
isotopes = 'U235 U238 Pu239 Pu240 Pu241 Pu242'
isotope_fractions = '0.045 0.955 0.0 0.0 0.0 0.0'
[]
[]
[Physics/SolidMechanics/QuasiStatic]
add_variables = true
[fuel]
block = 3
strain = FINITE
incremental = true
eigenstrain_names = 'fuel_thermal_eigenstrain
fuel_volumetric_swelling_eigenstrain'
extra_vector_tags = 'ref'
generate_output = 'vonmises_stress hydrostatic_stress elastic_strain_xx
elastic_strain_yy elastic_strain_zz stress_xx stress_yy stress_zz strain_xx
strain_yy strain_zz'
decomposition_method = EigenSolution
[]
[clad]
block = 1
strain = FINITE
incremental = true
eigenstrain_names = 'clad_thermal_eigenstrain'
extra_vector_tags = 'ref'
generate_output = 'vonmises_stress elastic_strain_xx
elastic_strain_yy elastic_strain_zz stress_xx stress_yy stress_zz strain_xx
strain_yy strain_zz creep_strain_xx creep_strain_yy creep_strain_zz'
decomposition_method = EigenSolution
[]
[]
[Kernels]
[gravity]
type = Gravity
variable = disp_y
value = -9.81
block = '1 3'
extra_vector_tags = 'ref'
[]
[heat]
type = HeatConduction
variable = temp
block = '1 3'
extra_vector_tags = 'ref'
[]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temp
block = '1 3'
extra_vector_tags = 'ref'
[]
[heat_source]
type = NeutronHeatSource
fission_rate = fission_rate
variable = temp
block = 3
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[BuTC]
type = FunctionAux
block = 3
variable = BuTC
function = initial_burnup
[]
[pelletid]
type = PelletIdAux
block = 3
variable = pellet_id
number_pellets = 1
execute_on = initial
[]
[gap]
type = SpatialUserObjectAux
block = 3
variable = gap
execute_on = timestep_end
user_object = avg_gap
[]
[buavg]
type = SpatialUserObjectAux
block = 3
variable = buavg
execute_on = timestep_end
user_object = integral_burnup
[]
[fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
function = axial_flux
block = 1
execute_on = timestep_begin
[]
[fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = 1
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[]
[fuel_porosity]
type = PorosityAuxUO2
block = 3
variable = porosity
execute_on = timestep_begin
[]
[grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temperature = temp
execute_on = timestep_begin
[]
[SED]
type = MaterialRealAux
variable = SED
property = strain_energy_density
execute_on = timestep_end
block = 1
[]
[]
[Contact]
[mechanical]
model = coulomb
formulation = mortar
primary = 5
secondary = 10
friction_coefficient = 0.4
c_normal = 1e+12
c_tangential = 1e+24
tangential_lm_scaling = 1.0e-16
normal_lm_scaling = 1.0e-10
[]
[]
[ThermalContactMortar]
[thermal_contact]
secondary_variable = temp
primary_boundary = '5'
secondary_boundary = '10'
layer_thickness = layer_thickness_action
roughness_coef = 3.2
roughness_primary = 1.5e-6
roughness_secondary = 1.75e-6
jump_distance_model = LANNING
plenum_pressure = plenum_pressure
initial_moles = initial_moles
initial_gas_types = 'He Ar'
initial_fractions = '0.25 0.75'
gas_released = fission_gas_released
contact_pressure = mechanical_normal_lm
thermal_lm_scaling = 1.0e-2
[]
[]
[BCs]
[no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[]
[no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 20
value = 0.0
[]
[no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[]
[coolant_temp]
type = DirichletBC
boundary = '1 2 3'
variable = temp
value = 293
[]
[Pressure]
[coolantPressure]
boundary = '1 2 3'
factor = 1
function = coolant_pressure_ramp
[]
[]
[PlenumPressure]
[plenumPressure]
boundary = '10 5'
initial_pressure = 0.1e6
startup_time = 0
R = 8.314462
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
initial_temperature = 293
[]
[]
[]
[Materials]
[fuel_swelling]
type = UO2VolumetricSwellingEigenstrain
block = 3
burnup = burnup
initial_fuel_density = 10310.8809782
total_densification = 0.006
gas_swelling_model_type = SIFGRS
eigenstrain_name = 'fuel_volumetric_swelling_eigenstrain'
[]
[fuel_thermal]
type = UO2Thermal
thermal_conductivity_model = NFIR
block = 3
temperature = temp
burnup = BuTC
initial_porosity = 0.0592261881186
[]
[fuel_elasticity_tensor]
type = UO2ElasticityTensor
block = 3
[]
[fuel_thermal_expansion]
type = UO2ThermalExpansionMartinEigenstrain
block = 3
stress_free_temperature = 293
eigenstrain_name = 'fuel_thermal_eigenstrain'
[]
[fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = '3'
[]
[clad_thermal]
type = ZryThermal
block = 1
temperature = temp
[]
[clad_inelastic_stress]
type = ComputeMultipleInelasticStress
block = 1
tangent_operator = elastic
inelastic_models ='plasticity'
[]
[clad_elasticity_tensor]
type = ZryElasticityTensor
block = 1
fast_neutron_fluence = fast_neutron_fluence
initial_fast_fluence = 1.30e26
cold_work_factor = 0.01
matpro_youngs_modulus = true
matpro_poissons_ratio = true
[]
## TODO: Creep is not active, but is transfered from the SM version.
## Adding creep causes the Peak Hoop strain to best match the FALCON
## results given by R. Montgomery and D. Sunderland. Only retaining
## plasticity matches the results from Wenfeng Liu, John Alvis, Robert Montgomery, and Ken Yueh
[clad_creep_stress]
type = ZryCreepLimbackHoppeUpdate
block = 1
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
initial_fast_fluence = 1.30e26
[]
[clad_thermal_expansion]
type = ZryThermalExpansionMATPROEigenstrain
block = 1
stress_free_temperature = 293.0
eigenstrain_name = 'clad_thermal_eigenstrain'
[]
[plasticity]
type = ZryPlasticityUpdate
block = 1
initial_fast_fluence = 1.30e26
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
cold_work_factor = .01
plasticity_model_type = MATPRO
output_properties = yield_stress
outputs = all
zircaloy_alloy_type = 4
[]
[fission_gas_release]
type = UO2Sifgrs
block = 3
temperature = temp
fission_rate = fission_rate
grain_radius = grain_radius
gbs_model = true
burnup = BuTC
transient_option = MICROCRACKING
[]
[clad_density]
type = StrainAdjustedDensity
block = 1
strain_free_density = 6551
[]
[fuel_density]
type = StrainAdjustedDensity
block = 3
strain_free_density = ${initial_fuel_density}
[]
[strain_energy_density]
type = StrainEnergyDensity
block = '1 3'
incremental = true
[]
[]
[UserObjects]
[avg_gap]
type = LayeredAverage
block = 3
variable = penetration
direction = y
num_layers = 48
[]
[pbz]
type = PelletBrittleZone
block = 3
pellet_id = pellet_id
temperature = temp
pellet_radius = 0.00527
number_pellets = 1
execute_on = timestep_begin
[]
[integral_burnup]
type = LayeredAverage
block = 3
variable = burnup
direction = y
num_layers = 1
[]
[]
[Executioner]
type = Transient
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-12'
line_search = 'none'
l_max_its = 40
l_tol = 8e-3
nl_max_its = 40
nl_rel_tol = 1e-3
nl_abs_tol = 1e-10
dtmin = 0.00001
dtmax = 1.0
start_time = 0
end_time = 100
[TimeStepper]
type = IterationAdaptiveDT
dt = 0.0001
optimal_iterations = 200
linear_iteration_ratio = 100
timestep_limiting_function = linear_heat_rate_profile
max_function_change = 500000
force_step_every_function_point = true
[]
[]
[Dampers]
[limitT]
type = MaxIncrement
max_increment = 200.0
variable = temp
[]
[limitX]
type = MaxIncrement
max_increment = 1e-4
variable = disp_x
[]
[]
[Postprocessors]
[max_hoop_strain]
type = ElementExtremeValue
variable = strain_zz
block = 1
[]
[max_SED]
type = ElementExtremeValue
variable = SED
block = 1
[]
[average_grain_radius]
type = ElementAverageValue
block = 3
outputs = 'exodus'
variable = grain_radius
[]
[clad_inner_vol]
type = InternalVolume
boundary = 7
outputs = 'exodus'
execute_on = 'timestep_begin initial'
[]
[flux_from_clad]
type = SideDiffusiveFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
outputs = 'exodus'
[]
[flux_from_fuel]
type = SideDiffusiveFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
outputs = 'exodus'
[]
[rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = 3
[]
[rod_input_power]
type = FunctionValuePostprocessor
function = linear_heat_rate_profile
scale_factor = 0.106
[]
[average_fission_rate]
type = ElementAverageValue
variable = fission_rate
block = '3'
[]
[RAE]
type = RadialAverageEnthalpy
vector_postprocessor = rad_temp
radial_direction = x
axial_direction = y
axial_position = 0.0503
temperature_name = temp
[]
[peak_RAE]
type = TimeExtremeValue
postprocessor = RAE
[]
[]
[VectorPostprocessors]
[rad_temp]
type = NodalValueSampler
block = 3
sort_by = y
variable = temp
execute_on = timestep_end
outputs = dummy
[]
[]
[StandardLWRFuelRodOutputs]
fuel_pellet_blocks = 3
cladding_blocks = 1
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = true
csv = true
[chkfile]
type = CSV
show = 'average_centerline_fuel_temperature average_fission_rate fission_gas_released_percentage peak_RAE rod_total_power'
execute_on = 'FINAL'
[]
[console]
type = Console
max_rows = 25
output_linear = true
[]
[dummy]
type = CSV
enable = false
[]
[]
(assessment/LWR/validation/RIA_NSRR_FK/analysis/FK2/FK02_action.i)
# This file was created using BIF with the following inputs:
# FK02.var - md5sum: 123016ae8f3283a45bae816a366f93b1
# ../pulse_rev1.tpl - md5sum: 8d6b8b4bce1dd830dea2d8522009e514
initial_fuel_density = 10020.6066633
[GlobalParams]
density = ${initial_fuel_density}
initial_porosity = 0.085711070864
initial_grain_radius = 5.96e-6
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11
volumetric_locking_correction = false
total_densification = 0.006
temperature = temperature
[]
[Mesh]
coord_type = RZ
[smeared_pellet_mesh]
type = FuelPinMeshGenerator
clad_mesh_density = customize
pellet_mesh_density = customize
elem_type = QUAD8
ny_p = 100
nx_c = 4
ny_c = 100
nx_p = 12
ny_cu = 3
ny_cl = 3
bx_p = 0.75
clad_bot_gap_height = 0.00152
bottom_clad_height = 0.0167
top_clad_height = 0.0167
clad_thickness = 0.00086
pellet_outer_radius = 0.00527
clad_top_gap_height = 0.03481
pellet_height = 0.106
clad_gap_width = 1e-05
pellet_quantity = 1
[]
patch_size = 5
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
converge_on = 'disp_x disp_y temperature'
[]
[AuxVariables]
[gap]
order = CONSTANT
family = MONOMIAL
[]
[buavg]
order = CONSTANT
family = MONOMIAL
[]
[integral_burnup]
order = CONSTANT
family = MONOMIAL
[]
[pellet_id]
order = CONSTANT
family = MONOMIAL
block = 3
[]
[porosity]
order = CONSTANT
family = MONOMIAL
initial_condition = 0.085711070864
[]
[SED]
order = CONSTANT
family = MONOMIAL
[]
[]
[UserObjects]
[pin_geometry]
type = FuelPinGeometry
[]
[]
[Functions]
[linear_heat_rate_profile]
type = PiecewiseLinear
data_file = pulse.csv
format = columns
[]
[flux]
type = ConstantFunction
value = 0.0
[]
[axial_peaking_factors]
type = ConstantFunction
value = 1
[]
[coolant_pressure_ramp]
type = ConstantFunction
value = 101325
[]
[linear_heat_generation_rate]
type = CompositeFunction
functions = 'linear_heat_rate_profile axial_peaking_factors'
[]
[axial_flux]
type = CompositeFunction
functions = 'flux axial_peaking_factors'
[]
[burnup_thermal_conductivity]
type = ConstantFunction
value = 0.0473684210526 # should be burnup / 950
[]
[radial_power_profile]
type = PiecewiseBilinear
data_file = RadialPowerProfile.csv
axis = 0
[]
[radial_burnup_profile]
type = PiecewiseBilinear
data_file = RadialBurnupProfile.csv
axis = 0
[]
[initial_burnup]
type = CompositeFunction
functions = 'burnup_thermal_conductivity radial_burnup_profile'
[]
[]
[Kernels]
[gravity]
type = Gravity
variable = disp_y
value = -9.81
block = '1 3'
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[pelletid]
type = PelletIdAux
block = 3
fuel_pin_geometry = pin_geometry
variable = pellet_id
number_pellets = 1
execute_on = initial
[]
[gap]
type = SpatialUserObjectAux
block = 3
variable = gap
execute_on = timestep_end
user_object = avg_gap
[]
[buavg]
type = SpatialUserObjectAux
block = 3
variable = buavg
execute_on = timestep_end
user_object = integral_burnup
[]
[fuel_porosity]
type = PorosityAuxUO2
block = 3
variable = porosity
execute_on = timestep_begin
[]
[SED]
type = MaterialRealAux
variable = SED
property = strain_energy_density
execute_on = timestep_end
block = 1
[]
[]
[Contact]
[mechanical]
model = coulomb
formulation = mortar
primary = 5
secondary = 10
friction_coefficient = 0.4
c_normal = 1e+12
c_tangential = 1e+24
tangential_lm_scaling = 1.0e-16
normal_lm_scaling = 1.0e-10
[]
[]
[ThermalContactMortar]
[thermal_contact]
secondary_variable = temperature
primary_boundary = '5'
secondary_boundary = '10'
layer_thickness = layer_thickness_action
contact_pressure = mechanical_normal_lm
roughness_coef = 3.2
roughness_primary = 1.5e-6
roughness_secondary = 1.75e-6
jump_distance_model = LANNING
plenum_pressure = plenum_pressure
initial_moles = initial_moles
gas_released = fission_gas_released
thermal_lm_scaling = 1.0e-2
[]
[]
[BCs]
[no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[]
[no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 20
value = 0.0
[]
[no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[]
[coolant_temperature]
type = DirichletBC
boundary = '1 2 3'
variable = temperature
value = 293
[]
[Pressure]
[coolantPressure]
boundary = '1 2 3'
factor = 1
function = coolant_pressure_ramp
[]
[]
[PlenumPressure]
[plenumPressure]
boundary = '10 5'
initial_pressure = 0.3e6
startup_time = 0
R = 8.314462
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
initial_temperature = 293
[]
[]
[]
[NuclearMaterials]
generate_output = 'elastic_strain_xx elastic_strain_yy elastic_strain_zz
stress_xx stress_yy '
'stress_zz strain_xx strain_yy strain_zz vonmises_stress'
fission_operation = 'RIA'
physics = 'Mechanics Thermal'
strain = FINITE
incremental = true
add_variables = true
initial_temperature = 293
stress_free_temperature = 293
extra_vector_tags = 'ref'
[UO2]
[fuel]
block = 3
uo2_models = 'Elastic Burnup Swelling ThermalExpansion'
isotopes = 'U238 U235'
isotope_fractions = '0.961 0.039'
fuel_pin_geometry = pin_geometry
rod_ave_lin_pow = linear_heat_rate_profile
rpf_input = radial_power_profile
fuel_volume_ratio = 1
num_radial = 80
num_axial = 49
RIA_initial_burnup = initial_burnup
axial_power_profile = axial_peaking_factors
additional_generate_output = 'hydrostatic_stress'
[]
[]
[ZirconiumAlloy]
[clad]
block = 1
cladding_models = 'Elastic Creep Plasticity ThermalExpansion'
initial_fast_fluence = 8.40e25
flux_function = axial_flux
zircaloy_alloy_type = 4
cold_work_factor = 0.01
plasticity_model_type = MATPRO
matpro_poissons_ratio = true
matpro_youngs_modulus = true
material_output_properties = yield_stress
additional_generate_output = 'creep_strain_xx creep_strain_yy creep_strain_zz'
[]
[]
[]
[Materials]
[strain_energy_density]
type = StrainEnergyDensity
block = '1 3'
incremental = true
[]
[]
[UserObjects]
[avg_gap]
type = LayeredAverage
block = 3
variable = penetration
direction = y
num_layers = 48
[]
[pbz]
type = PelletBrittleZone
block = 3
pellet_id = pellet_id
temperature = temperature
fuel_pin_geometry = pin_geometry
number_pellets = 1
execute_on = timestep_begin
[]
[integral_burnup]
type = LayeredAverage
block = 3
variable = burnup
direction = y
num_layers = 1
[]
[]
[Executioner]
type = Transient
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-12'
line_search = 'none'
l_max_its = 40
l_tol = 8e-3
nl_max_its = 40
nl_rel_tol = 1e-3
nl_abs_tol = 1e-10
dtmin = 0.00001
dtmax = 1.0
start_time = 0
end_time = 100
[TimeStepper]
type = IterationAdaptiveDT
dt = 0.0001
optimal_iterations = 200
linear_iteration_ratio = 100
timestep_limiting_function = linear_heat_rate_profile
max_function_change = 500000
force_step_every_function_point = true
[]
[]
[Dampers]
[limitT]
type = MaxIncrement
max_increment = 200.0
variable = temperature
[]
[limitX]
type = MaxIncrement
max_increment = 1e-4
variable = disp_x
[]
[]
[Postprocessors]
[max_hoop_strain]
type = ElementExtremeValue
variable = strain_zz
block = 1
[]
[max_SED]
type = ElementExtremeValue
variable = SED
block = 1
[]
[average_grain_radius]
type = ElementAverageValue
block = 3
outputs = 'exodus'
variable = grain_radius
[]
[clad_inner_vol]
type = InternalVolume
boundary = 7
outputs = 'exodus'
execute_on = 'timestep_begin initial'
[]
[flux_from_clad]
type = SideDiffusiveFluxIntegral
variable = temperature
boundary = 5
diffusivity = thermal_conductivity
outputs = 'exodus'
[]
[flux_from_fuel]
type = SideDiffusiveFluxIntegral
variable = temperature
boundary = 10
diffusivity = thermal_conductivity
outputs = 'exodus'
[]
[rod_total_power]
type = ElementIntegralPower
variable = temperature
fission_rate = fission_rate
block = 3
[]
[rod_input_power]
type = FunctionValuePostprocessor
function = linear_heat_rate_profile
scale_factor = 0.106
[]
[average_fission_rate]
type = ElementAverageValue
variable = fission_rate
block = '3'
[]
[RAE]
type = RadialAverageEnthalpy
vector_postprocessor = rad_temp
radial_direction = x
axial_direction = y
axial_position = 0.0503
temperature_name = temperature
[]
[peak_RAE]
type = TimeExtremeValue
postprocessor = RAE
[]
[]
[VectorPostprocessors]
[rad_temp]
type = NodalValueSampler
block = 3
sort_by = y
variable = temperature
execute_on = timestep_end
outputs = dummy
[]
[]
[StandardLWRFuelRodOutputs]
fuel_pellet_blocks = 3
cladding_blocks = 1
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = true
csv = true
[chkfile]
type = CSV
show = 'average_centerline_fuel_temperature average_fission_rate fission_gas_released_percentage '
'peak_RAE rod_total_power'
execute_on = 'FINAL'
[]
[console]
type = Console
max_rows = 25
output_linear = true
[]
[dummy]
type = CSV
enable = false
[]
[]
(assessment/LWR/validation/Super_Ramp/analysis/Super_Ramp_Base.i)
#This is a partial input file base with information/features common to several experiments within this assessment
#NOTE: This file will NOT run on its own, it requires a PK#X.params file and a PK##.params file to run
# physical constants
R = 8.3143 # (J/K*mol) -- THIS SHOULD BE EDITED TO USE PHYSICALCONSTANTS' VALUE
# fuel isotope fractions and fission energy
energy_per_fission = 3.28451e-11 # (J/fission)
isotope_fraction_Pu239 = 0.0
isotope_fraction_Pu240 = 0.0
isotope_fraction_Pu241 = 0.0
isotope_fraction_Pu242 = 0.0
# rod geometry
clad_bot_gap_height = 1.0e-3 # (m)
# variable and kernel initial values
initial_temperature = 293.15 # (K)
gravity_constant = -9.81 # (m/s^2)
# fuel/cladding contact
friction_coefficient = 0.4
c_normal = 1e+12
c_tangential = 1e+24
tangential_lm_scaling = 1.0e-16
normal_lm_scaling = 1.0e-10
roughness_secondary = 1.0e-6 # (m)
roughness_primary = 2.0e-6 # (m)
roughness_coef = 3.2
jump_distance_model = LANNING
contact_pressure = mechanical_normal_lm
thermal_lm_scaling = 1.0e-2
# plenum parameters
initial_pressure = 2.25e6 # (Pa)
startup_time = 0 # (s)
# fuel/clad material properties
fuel_cracking_stress = 1.68e8
stress_free_temperature = 293.15 # (K)
clad_density = 6550.0 # (kg/m^3)
# numerical options
l_max_its = 100
l_tol = 1e-4
nl_max_its = 30
start_time = 0.0 # s
dtmin = 1.0 # s
[GlobalParams]
density = ${fuel_density}
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = ${energy_per_fission}
volumetric_locking_correction = false
initial_porosity = ${initial_fuel_porosity}
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
converge_on = 'disp_x disp_y temperature'
[]
[Mesh]
coord_type = RZ
[smeared_pellet_mesh]
type = FuelPinMeshGenerator
pellet_quantity = ${number_pellets}
pellet_height = ${pellet_height}
pellet_outer_radius = ${pellet_outer_radius}
pellet_mesh_density = customize
nx_p = 11
ny_p = 84
clad_mesh_density = customize
nx_c = 4
ny_c = 84
clad_gap_width = ${clad_gap_width}
clad_thickness = ${clad_thickness}
clad_bot_gap_height = ${clad_bot_gap_height}
bottom_clad_height = ${bottom_clad_height}
top_clad_height = ${top_clad_height}
clad_top_gap_height = ${clad_top_gap_height}
ny_cu = 3
ny_cl = 3
elem_type = QUAD8
[]
patch_size = 10
patch_update_strategy = iteration
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[temperature]
initial_condition = ${initial_temperature}
[]
[]
[Functions]
[power_history]
type = PiecewiseLinear
data_file = ${power_history_data_file}
format = columns
[]
[axial_power_factors]
type = PiecewiseBilinear
data_file = ${axial_power_factors_data_file}
axis = 1
[]
[clad_out_temp]
type = PiecewiseLinear
data_file = ${clad_out_temp_data_file}
format = columns
[]
[axial_temp_factors]
type = PiecewiseBilinear
data_file = ${axial_temp_factors_data_file}
axis = 1
[]
[clad_temp_bc]
type = CompositeFunction
functions = 'clad_out_temp axial_temp_factors'
[]
[coolant_pressure]
type = PiecewiseLinear
data_file = ${coolant_pressure_data_file}
format = columns
[]
[fast_flux]
type = PiecewiseLinear
data_file = ${fast_neutron_flux_data_file}
format = columns
[]
[]
[AuxVariables]
[gap_conductance]
block = 'mechanical_secondary_subdomain'
[]
[fast_neutron_flux]
block = clad
[]
[fast_neutron_fluence]
block = clad
[]
[grain_radius]
block = pellet
initial_condition = ${initial_grain_radius}
[]
[porosity]
order = CONSTANT
family = MONOMIAL
block = pellet
initial_condition = ${initial_fuel_porosity}
[]
[pellet_id]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[oxide_thickness]
order = CONSTANT
family = MONOMIAL
[]
[creep_strain_mag]
order = CONSTANT
family = MONOMIAL
block = clad
[]
[gas_gen_3]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[gas_grn_3]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[gas_bdr_3]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[gas_rel_3]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[bbl_bdr_2]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[prs_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[prseq_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[rad_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[GBCoverage]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[sat_coverage]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[eff_diff_coeff]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[deltav_v0_bd]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[gaseous_porosity]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[thermal_conductivity]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[layered_average_contact_pressure]
order = CONSTANT
family = MONOMIAL
[]
[volumetric_swelling_strain]
order = CONSTANT
family = MONOMIAL
[]
[gap_cond]
order = CONSTANT
family = MONOMIAL
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[pellets]
block = pellet
temperature = temperature
add_variables = true
strain = FINITE
eigenstrain_names = 'fuel_relocation_strain fuel_thermal_strain
fuel_volumetric_strain'
generate_output = 'vonmises_stress hydrostatic_stress stress_xx stress_yy
stress_zz strain_xx strain_yy strain_zz'
extra_vector_tags = 'ref'
[]
[clad]
block = clad
temperature = temperature
add_variables = true
strain = FINITE
cylindrical_axis_point1 = '0 0 0'
cylindrical_axis_point2 = '0 1 0'
eigenstrain_names = 'clad_thermal_eigenstrain clad_irradiation_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz
creep_strain_xx creep_strain_yy creep_strain_xy creep_strain_zz strain_xx
strain_yy strain_zz hoop_stress'
extra_vector_tags = 'ref'
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temperature
extra_vector_tags = 'ref'
block = '1 3'
[]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temperature
extra_vector_tags = 'ref'
block = '1 3'
[]
[heat_source]
type = NeutronHeatSource
variable = temperature
block = pellet
burnup_function = burnup
extra_vector_tags = 'ref'
[]
[gravity]
type = Gravity
variable = disp_y
value = ${gravity_constant}
block = '1 3'
[]
[]
[AuxKernels]
[gap_conductance]
type = GapConductanceMortar
primary_boundary = 5
secondary_boundary = 10
primary_subdomain = 'mechanical_primary_subdomain'
secondary_subdomain = 'mechanical_secondary_subdomain'
heat_flux = thermal_contact_thermal_lm
temperature = temperature
variable = gap_conductance
[]
[fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
function = fast_flux
execute_on = timestep_begin
[]
[fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[]
[grain_radius]
type = GrainRadiusAux
block = pellet
variable = grain_radius
temperature = temperature
execute_on = linear
[]
[porosity]
type = PorosityAuxUO2
block = pellet
variable = porosity
execute_on = linear
[]
[pelletid]
type = PelletIdAux
block = pellet
variable = pellet_id
fuel_pin_geometry = pin_geometry
number_pellets = ${number_pellets}
execute_on = initial
[]
[oxi_thickness]
type = MaterialRealAux
variable = oxide_thickness
property = oxide_scale_thickness
boundary = 2
[]
[creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain_mag
execute_on = timestep_end
[]
[fggen]
type = MaterialRealAux
variable = gas_gen_3
property = gas_concentration_generated_total
[]
[fggrn]
type = MaterialRealAux
variable = gas_grn_3
property = gas_concentration_intra_total
[]
[fgbdr]
type = MaterialRealAux
variable = gas_bdr_3
property = gas_concentration_GB_bubble_volume
[]
[fgrel]
type = MaterialRealAux
variable = gas_rel_3
property = gas_concentration_release_total
[]
[nbbl2]
type = MaterialRealAux
variable = bbl_bdr_2
property = bubble_GB_surface_density
[]
[prsbbl]
type = MaterialRealAux
variable = prs_bbl_bdr
property = bubble_GB_pressure
[]
[prseqbbl]
type = MaterialRealAux
variable = prseq_bbl_bdr
property = bubble_GB_pressure_equilibrium
[]
[radbbl]
type = MaterialRealAux
variable = rad_bbl_bdr
property = bubble_radius_GB
[]
[frcvrg]
type = MaterialRealAux
variable = GBCoverage
property = GBCoverage
[]
[stcvrg]
type = MaterialRealAux
variable = sat_coverage
property = sat_coverage
[]
[diffc]
type = MaterialRealAux
variable = eff_diff_coeff
property = eff_diff_coeff
[]
[dvv0bd]
type = MaterialRealAux
variable = deltav_v0_bd
property = deltav_v0_bubble_GB
[]
[gaspor]
type = MaterialRealAux
variable = gaseous_porosity
property = gaseous_porosity
[]
[fuel_conductivity]
type = MaterialRealAux
variable = thermal_conductivity
property = thermal_conductivity
[]
[layered_average_contact_pressure]
type = SpatialUserObjectAux
block = pellet
variable = layered_average_contact_pressure
execute_on = nonlinear
user_object = layered_average_contact_pressure
[]
[volumetric_swelling_strain]
type = MaterialRealAux
variable = volumetric_swelling_strain
property = volumetric_swelling_strain
block = pellet
execute_on = nonlinear
[]
[]
[Burnup]
[burnup]
block = pellet
rod_ave_lin_pow = power_history
axial_power_profile = axial_power_factors
num_radial = 80
num_axial = 20
isotopes = 'U235 U238 Pu239 Pu240 Pu241 Pu242'
isotope_fractions = '${isotope_fraction_U235} ${isotope_fraction_U238} ${isotope_fraction_Pu239} ${isotope_fraction_Pu240} ${isotope_fraction_Pu241} ${isotope_fraction_Pu242}'
RPF = RPF
fuel_pin_geometry = pin_geometry
fuel_volume_ratio = 1.0
[]
[]
[Contact]
[mechanical]
model = coulomb
formulation = mortar
primary = 5
secondary = 10
friction_coefficient = ${friction_coefficient}
c_normal = ${c_normal}
c_tangential = ${c_tangential}
tangential_lm_scaling = ${tangential_lm_scaling}
normal_lm_scaling = ${normal_lm_scaling}
[]
[]
[ThermalContactMortar]
[thermal_contact]
secondary_variable = temperature
primary_boundary = '5'
secondary_boundary = '10'
initial_moles = initial_moles
gas_released = fission_gas_released
roughness_secondary = ${roughness_secondary}
roughness_primary = ${roughness_primary}
roughness_coef = ${roughness_coef}
plenum_pressure = plenum_pressure
jump_distance_model = ${jump_distance_model}
contact_pressure = ${contact_pressure}
thermal_lm_scaling = ${thermal_lm_scaling}
[]
[]
[PlenumTemperature]
[plenum_temp]
boundary = 5
inner_surfaces = 5
outer_surfaces = 10
temperature = temperature
[]
[]
[BCs]
[no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[]
[no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[]
[no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 1020
value = 0.0
[]
[temp]
type = FunctionDirichletBC
boundary = '1 2 3'
variable = temperature
function = clad_temp_bc
[]
[Pressure]
[coolantPressure]
boundary = '1 2 3'
function = coolant_pressure
[]
[]
[PlenumPressure]
[plenumPressure]
boundary = 9
initial_pressure = ${initial_pressure}
startup_time = ${startup_time}
R = ${R}
output_initial_moles = initial_moles
temperature = plenum_temp
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
[]
[]
[]
[Materials]
[fuel_thermal]
type = UO2Thermal
block = pellet
thermal_conductivity_model = NFIR
temperature = temperature
burnup_function = burnup
[]
[fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
block = pellet
temperature = temperature
burnup_function = burnup
initial_fuel_density = ${fuel_density}
eigenstrain_name = fuel_volumetric_strain
[]
[fuel_elasticity_tensor]
type = UO2ElasticityTensor
block = pellet
density = ${fuel_density}
temperature = temperature
matpro_youngs_modulus = true
matpro_poissons_ratio = true
[]
[fuel_creep]
type = UO2CreepUpdate
block = pellet
temperature = temperature
burnup_function = burnup
initial_grain_radius = ${initial_grain_radius}
[]
[fuel_stress]
type = ComputeSmearedCrackingStress
block = pellet
cracking_stress = ${fuel_cracking_stress}
inelastic_models = 'fuel_creep'
softening_models = exponential_softening
shear_retention_factor = 0.1
max_stress_correction = 0
cracked_elasticity_type = DIAGONAL
output_properties = crack_damage
outputs = exodus
[]
[exponential_softening]
type = ExponentialSoftening
[]
[fuel_relocation]
type = UO2RelocationEigenstrain
block = pellet
burnup_function = burnup
rod_ave_lin_pow = power_history
axial_power_profile = axial_power_factors
relocation_activation1 = 5000
relocation_model = ESCORE_modified
eigenstrain_name = fuel_relocation_strain
fuel_pin_geometry = pin_geometry
model_relocation_recovery = true
max_relocation_recovery_fraction = 0.5
relocation_scaling_factor = 1
volumetric_swelling_increment = vol_swell_increment
layered_average_contact_pressure = layered_average_contact_pressure
outputs = all
output_properties = 'relocation_strain recovered_relocation_strain'
[]
[fuel_thermal_expansion]
type = UO2ThermalExpansionMATPROEigenstrain
block = pellet
temperature = temperature
stress_free_temperature = ${stress_free_temperature}
eigenstrain_name = fuel_thermal_strain
[]
[fission_gas_release]
type = UO2Sifgrs
block = pellet
hydrostatic_stress = hydrostatic_stress
diff_coeff_option = TURNBULL_D1_4D2_D3
transient_option = MICROCRACKING_BURNUP
res_param_option = HETEROGENEOUS_WHITE
ig_bubble_model = NUCLEATION_RESOLUTION
ig_diff_algorithm = polypole2
temperature = temperature
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
pellet_id = pellet_id
pellet_brittle_zone = pbz
ath_model = true
rod_ave_lin_pow = power_history
axial_power_profile = axial_power_factors
[]
[fuel_density]
type = StrainAdjustedDensity
block = pellet
strain_free_density = ${fuel_density}
[]
[clad_thermal]
type = ZryThermal
block = clad
temperature = temperature
[]
[clad_elasticity_tensor]
type = ZryElasticityTensor
block = clad
fast_neutron_fluence = fast_neutron_fluence
temperature = temperature
matpro_youngs_modulus = true
matpro_poissons_ratio = true
[]
[clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = nonlinear
inelastic_models = 'clad_zrycreep'
block = clad
[]
[clad_zrycreep]
type = ZryCreepLimbackHoppeUpdate
block = clad
temperature = temperature
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
model_irradiation_creep = true
model_primary_creep = true
model_thermal_creep = true
zircaloy_material_type = stress_relief_annealed
[]
[thermal_expansion]
type = ZryThermalExpansionMATPROEigenstrain
block = clad
temperature = temperature
stress_free_temperature = ${stress_free_temperature}
eigenstrain_name = clad_thermal_eigenstrain
[]
[irradiation_swelling]
type = ZryIrradiationGrowthEigenstrain
block = clad
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type = stress_relief_annealed
eigenstrain_name = clad_irradiation_strain
[]
[clad_density]
type = StrainAdjustedDensity
block = clad
strain_free_density = ${clad_density}
[]
[clad_oxidation]
type = ZryOxidation
boundary = 2
temperature = temperature
normal_operating_temperature_model = epri_kwu_ce
high_temperature_model = leistikow
fuel_pin_geometry = pin_geometry
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
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 = ${petsc_options_value}
line_search = 'none'
verbose = true
l_max_its = ${l_max_its}
l_tol = ${l_tol}
nl_max_its = ${nl_max_its}
nl_rel_tol = ${nl_rel_tol}
nl_abs_tol = ${nl_abs_tol}
start_time = ${start_time}
n_startup_steps = 1
end_time = ${end_time}
dtmax = ${dtmax}
dtmin = ${dtmin}
[TimeStepper]
type = IterationAdaptiveDT
dt = 100
optimal_iterations = ${optimal_iterations}
iteration_window = ${iteration_window}
timestep_limiting_function = power_history
force_step_every_function_point = true
[]
[]
[Postprocessors]
[avg_gap_conductance]
type = ElementAverageValue
block = 'mechanical_secondary_subdomain'
variable = gap_conductance
execute_on = 'initial timestep_end'
[]
[central_fuel_temp]
type = NodalVariableValue
variable = temperature
nodeid = 3110 #Mesh dependent!
execute_on = 'initial timestep_end'
[]
[max_fuel_temp]
type = NodalExtremeValue
block = pellet
value_type = max
variable = temperature
execute_on = 'initial timestep_end'
[]
[max_clad_temp]
type = NodalExtremeValue
block = clad
value_type = max
variable = temperature
execute_on = 'initial timestep_end'
[]
[midplane_hoop_strain_inner_clad]
type = ElementalVariableValue
elementid = 209 # Mesh dependent
variable = strain_zz
execute_on = 'initial timestep_end'
[]
[midplane_hoop_stress_inner_clad]
type = ElementalVariableValue
elementid = 209 # Mesh dependent
variable = hoop_stress
execute_on = 'initial timestep_end'
[]
[midplane_contact_pressure]
type = NodalVariableValue
variable = contact_pressure
nodeid = 3141 # Mesh dependent
execute_on = 'initial timestep_end'
[]
[total_rod_integral_power]
type = ElementIntegralPower
variable = temperature
burnup_function = burnup
block = pellet
[]
[total_rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = ${scale_factor}
[]
[vol_swell_increment]
type = SideAverageIncrementTensorComponent
boundary = 10
variable = volumetric_swelling_strain
execute_on = nonlinear
[]
[midplane_clad_outer_temp]
type = NodalVariableValue
nodeid = 757 # Mesh dependent
variable = temperature
[]
[midplane_clad_inner_temp]
type = NodalVariableValue
nodeid = 747 # Mesh dependent
variable = temperature
[]
[]
[StandardLWRFuelRodOutputs]
fuel_pellet_blocks = 3
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
color = false
[csv]
type = CSV
file_base = '${id}_csv'
[]
[exodus]
type = Exodus
file_base = '${id}_exodus'
[]
[console]
type = Console
max_rows = 25
[]
[chkfile]
type = CSV
file_base = '${id}_chkfile'
show = 'average_burnup fission_gas_released_percentage central_fuel_temp midplane_contact_pressure'
execute_on = 'FINAL'
[]
[]
[UserObjects]
[pin_geometry]
type = FuelPinGeometry
[]
[pbz]
type = PelletBrittleZone
block = pellet
pellet_id = pellet_id
temperature = temperature
fuel_pin_geometry = pin_geometry
number_pellets = ${number_pellets}
execute_on = 'initial linear'
[]
[layered_average_contact_pressure]
type = LayeredSideAverage
variable = contact_pressure
direction = y
num_layers = 1
execute_on = timestep_end
boundary = 10
[]
[]
(assessment/LWR/validation/Super_Ramp/analysis/PK62/PK62_weighted_gap_VCP.i)
# This assessment case requires increasing the default automatic differentiation
# vector (AD size). At the time of writing, the default size is 50. This test
# requires, at least, 56. The minimum size required for a test to run can be
# specified in the 'assesment' file via "min_ad_size". To configure MOOSE
# to increase the AD vector size, one can use the command below in the MOOSE
# folder to expand this size, e.g., to 200:
#
# ./configure --with-derivative-type=sparse --with-ad-indexing-type=global --with-derivative-size=200
# physical constants
R = 8.3143 # J/mol*K -- THIS SHOULD BE EDITED TO USE PHYSICALCONSTANTS' VALUE
# fuel isotope fractions and fission energy
energy_per_fission = 3.28451e-11 # J/fission
isotope_fraction_U235 = 0.02985
isotope_fraction_U238 = 0.97015
isotope_fraction_Pu239 = 0.0
isotope_fraction_Pu240 = 0.0
isotope_fraction_Pu241 = 0.0
isotope_fraction_Pu242 = 0.0
# rod geometry
pellet_quantity = 29 # (-)
pellet_height = 0.010862 # m
pellet_outer_radius = 4.57e-3 # m
clad_gap_width = 75.0e-6 # m
clad_thickness = 0.725e-3 # m
clad_bot_gap_height = 1.0e-3 # m
bottom_clad_height = 15.5e-3 # m
top_clad_height = 15.5e-3 # m
clad_top_gap_height = 32.5e-3 # m
fuel_volume_ratio = 1.0 # (-)
rod_input_power_scale_factor = 0.376004 # m (rod height)
# variable and kernel initial values
initial_temperature = 293.15 # K
gravity_constant = -9.81 # m/s^2
# fuel/cladding contact
c_normal = 1e+05 # (-)
jump_distance_model = 'LANNING'
roughness_primary = 2e-6 # (-)
roughness_secondary = 1e-6 # (-)
roughness_coef = 3.2 # (-)
relocation_activation1 = 5000 # W/m
max_relocation_recovery_fraction = 0.5 # (-)
relocation_scaling_factor = 1 # (-)
# plenum parameters
initial_plenum_pressure = 2.25e6 # Pa
startup_time = 0 # s
# fuel/clad material properties
initial_fuel_density = 10420.0 # kg/m^3
initial_fuel_porosity = 0.049 # (-)
initial_grain_radius = 17.16e-6 # m
fuel_cracking_stress = 1.68e8 # Pa
fuel_shear_retention_factor = 0.1 # (-)
fuel_max_stress_correction = 0 # (-)
stress_free_temperature = 293.15 # K
cladding_density = 6550.0 # kg/m^3
# numerical options
damper_max_temperature_increment = 150.0 # K (was 30 K)
l_max_its = 35
l_tol = 1e-5
nl_max_its = 30
nl_rel_tol = 2e-6
nl_abs_tol = 1e-5
start_time = 0.0 # s
n_startup_steps = 1
dtmax = 1.0e6 # s
dtmin = 1.0 # s
Timestepper_dt = 100 # s
Timestepper_optimal_iterations = 15
Timestepper_iteration_window = 3
# irradiation history
end_time = 76630068.0 # s
# data files
power_history_data_file = 'alhr_history.csv'
axial_power_factors_data_file = 'axial_lhr_factors.csv'
clad_out_temp_data_file = 'temp_outer_clad_history.csv'
axial_temp_factors_data_file = 'axial_temp_factors.csv'
coolant_pressure_data_file = 'pressure_coolant.csv'
fast_neutron_flux_data_file = 'fast_neutron_flux.csv'
[GlobalParams]
density = ${initial_fuel_density}
displacements = 'disp_x disp_y'
order = FIRST
family = LAGRANGE
energy_per_fission = ${energy_per_fission}
volumetric_locking_correction = true
initial_porosity = ${initial_fuel_porosity}
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[Mesh]
coord_type = RZ
patch_size = 80
patch_update_strategy = iteration
[smeared_pellet_mesh]
type = FuelPinMeshGenerator
pellet_quantity = ${pellet_quantity}
pellet_height = ${pellet_height}
pellet_outer_radius = ${pellet_outer_radius}
pellet_mesh_density = customize
nx_p = 11
ny_p = 168
clad_mesh_density = customize
nx_c = 4
ny_c = 84
clad_gap_width = ${clad_gap_width}
clad_thickness = ${clad_thickness}
clad_bot_gap_height = ${clad_bot_gap_height}
bottom_clad_height = ${bottom_clad_height}
top_clad_height = ${top_clad_height}
clad_top_gap_height = ${clad_top_gap_height}
ny_cu = 3
ny_cl = 3
elem_type = QUAD4
[]
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[temperature]
initial_condition = ${initial_temperature}
block = '1 3'
[]
[disp_x]
order = FIRST
family = LAGRANGE
block = '1 3'
scaling = 1.0e3
[]
[disp_y]
order = FIRST
family = LAGRANGE
block = '1 3'
scaling = 1.0e3
[]
[]
[Functions]
[power_history]
type = PiecewiseLinear
data_file = ${power_history_data_file}
format = columns
[]
[axial_power_factors]
type = PiecewiseBilinear
data_file = ${axial_power_factors_data_file}
axis = 1
[]
[clad_out_temp]
type = PiecewiseLinear
data_file = ${clad_out_temp_data_file}
format = columns
[]
[axial_temp_factors]
type = PiecewiseBilinear
data_file = ${axial_temp_factors_data_file}
axis = 1
[]
[clad_temp_bc]
type = CompositeFunction
functions = 'clad_out_temp axial_temp_factors'
[]
[coolant_pressure]
type = PiecewiseLinear
data_file = ${coolant_pressure_data_file}
format = columns
[]
[fast_flux]
type = PiecewiseLinear
data_file = ${fast_neutron_flux_data_file}
format = columns
[]
[axial_power_constant]
type = ConstantFunction
value = 1
[]
[]
[AuxVariables]
[fast_neutron_flux]
block = clad
[]
[fast_neutron_fluence]
block = clad
[]
[grain_radius]
block = pellet
initial_condition = ${initial_grain_radius}
[]
[porosity]
order = CONSTANT
family = MONOMIAL
block = pellet
initial_condition = ${initial_fuel_porosity}
[]
[pellet_id]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[oxide_thickness]
order = CONSTANT
family = MONOMIAL
[]
[creep_strain_mag]
order = CONSTANT
family = MONOMIAL
block = clad
[]
[gas_gen_3]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[gas_grn_3]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[gas_bdr_3]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[gas_rel_3]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[bbl_bdr_2]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[prs_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[prseq_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[rad_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[GBCoverage]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[sat_coverage]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[eff_diff_coeff]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[deltav_v0_bd]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[gaseous_porosity]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[thermal_conductivity]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[gap_cond]
order = CONSTANT
family = MONOMIAL
[]
[layered_average_contact_pressure]
order = CONSTANT
family = MONOMIAL
[]
[volumetric_swelling_strain]
order = CONSTANT
family = MONOMIAL
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[pellets]
block = pellet
temperature = temperature
strain = FINITE
eigenstrain_names = 'fuel_relocation_strain fuel_thermal_strain
fuel_volumetric_strain'
generate_output = 'vonmises_stress hydrostatic_stress stress_xx stress_yy
stress_zz strain_xx strain_yy strain_zz'
extra_vector_tags = 'ref'
[]
[clad]
block = clad
temperature = temperature
strain = FINITE
cylindrical_axis_point1 = '0 0 0'
cylindrical_axis_point2 = '0 1 0'
eigenstrain_names = 'clad_thermal_eigenstrain clad_irradiation_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz
creep_strain_xx creep_strain_yy creep_strain_xy creep_strain_zz strain_xx
strain_yy strain_zz hoop_stress'
extra_vector_tags = 'ref'
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temperature
extra_vector_tags = 'ref'
block = '1 3'
[]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temperature
extra_vector_tags = 'ref'
block = '1 3'
[]
[heat_source]
type = NeutronHeatSource
variable = temperature
block = pellet
burnup_function = burnup
extra_vector_tags = 'ref'
[]
[gravity]
type = Gravity
variable = disp_y
value = ${gravity_constant}
[]
[]
[AuxKernels]
[fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
function = fast_flux
execute_on = timestep_begin
[]
[fast_neutron_fluence]
block = clad
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[]
[grain_radius]
type = GrainRadiusAux
block = pellet
variable = grain_radius
temperature = temperature
execute_on = linear
[]
[porosity]
type = PorosityAuxUO2
block = pellet
variable = porosity
execute_on = linear
[]
[pelletid]
type = PelletIdAux
block = pellet
variable = pellet_id
fuel_pin_geometry = pin_geometry
number_pellets = ${pellet_quantity}
execute_on = initial
[]
[oxi_thickness]
type = MaterialRealAux
variable = oxide_thickness
property = oxide_scale_thickness
boundary = 2
[]
[creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain_mag
execute_on = timestep_end
[]
[fggen]
type = MaterialRealAux
variable = gas_gen_3
property = gas_concentration_generated_total
[]
[fggrn]
type = MaterialRealAux
variable = gas_grn_3
property = gas_concentration_intra_total
[]
[fgbdr]
type = MaterialRealAux
variable = gas_bdr_3
property = gas_concentration_GB_bubble_volume
[]
[fgrel]
type = MaterialRealAux
variable = gas_rel_3
property = gas_concentration_release_total
[]
[nbbl2]
type = MaterialRealAux
variable = bbl_bdr_2
property = bubble_GB_surface_density
[]
[prsbbl]
type = MaterialRealAux
variable = prs_bbl_bdr
property = bubble_GB_pressure
[]
[prseqbbl]
type = MaterialRealAux
variable = prseq_bbl_bdr
property = bubble_GB_pressure_equilibrium
[]
[radbbl]
type = MaterialRealAux
variable = rad_bbl_bdr
property = bubble_radius_GB
[]
[frcvrg]
type = MaterialRealAux
variable = GBCoverage
property = GBCoverage
[]
[stcvrg]
type = MaterialRealAux
variable = sat_coverage
property = sat_coverage
[]
[diffc]
type = MaterialRealAux
variable = eff_diff_coeff
property = eff_diff_coeff
[]
[dvv0bd]
type = MaterialRealAux
variable = deltav_v0_bd
property = deltav_v0_bubble_GB
[]
[gaspor]
type = MaterialRealAux
variable = gaseous_porosity
property = gaseous_porosity
[]
[fuel_conductivity]
type = MaterialRealAux
variable = thermal_conductivity
property = thermal_conductivity
[]
[layered_average_contact_pressure]
type = SpatialUserObjectAux
block = pellet
variable = layered_average_contact_pressure
execute_on = nonlinear
user_object = layered_average_contact_pressure
[]
[volumetric_swelling_strain]
type = MaterialRealAux
variable = volumetric_swelling_strain
property = volumetric_swelling_strain
block = pellet
execute_on = nonlinear
[]
[]
[Burnup]
[burnup]
block = pellet
fuel_volume_ratio = ${fuel_volume_ratio}
rod_ave_lin_pow = power_history
axial_power_profile = axial_power_factors
num_radial = 80
num_axial = 20
isotopes = 'U235 U238 Pu239 Pu240 Pu241 Pu242'
isotope_fractions = '${isotope_fraction_U235} ${isotope_fraction_U238} ${isotope_fraction_Pu239} ${isotope_fraction_Pu240} ${isotope_fraction_Pu241} ${isotope_fraction_Pu242}'
RPF = RPF
fuel_pin_geometry = pin_geometry
[]
[]
[Contact]
[mechanical]
model = frictionless
formulation = mortar
primary = 5
secondary = 10
c_normal = ${c_normal}
[]
[]
[ThermalContactMortar]
[thermal]
secondary_variable = temperature
primary_boundary = 5
secondary_boundary = 10
initial_moles = initial_moles
gas_released = fission_gas_released
jump_distance_model = ${jump_distance_model}
plenum_pressure = plenum_pressure
roughness_primary = ${roughness_primary}
roughness_secondary = ${roughness_secondary}
roughness_coef = ${roughness_coef}
contact_pressure = mechanical_normal_lm
layer_thickness = layer_thickness_action
[]
[]
[PlenumTemperature]
[plenum_temp]
boundary = 5
inner_surfaces = 5
outer_surfaces = 10
temperature = temperature
[]
[]
[BCs]
[no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[]
[no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[]
[no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 1020
value = 0.0
[]
[temp]
type = FunctionDirichletBC
boundary = '1 2 3'
variable = temperature
function = clad_temp_bc
[]
[Pressure]
[coolantPressure]
boundary = '1 2 3'
function = coolant_pressure
[]
[]
[PlenumPressure]
[plenumPressure]
boundary = 9
initial_pressure = ${initial_plenum_pressure}
startup_time = ${startup_time}
R = ${R}
output_initial_moles = initial_moles
temperature = plenum_temp
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
[]
[]
[]
[Materials]
[fuel_thermal]
type = UO2Thermal
block = pellet
thermal_conductivity_model = NFIR
temperature = temperature
burnup_function = burnup
[]
[fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
block = pellet
temperature = temperature
burnup_function = burnup
initial_fuel_density = ${initial_fuel_density}
eigenstrain_name = fuel_volumetric_strain
[]
[fuel_elasticity_tensor]
type = UO2ElasticityTensor
block = pellet
density = ${initial_fuel_density}
temperature = temperature
matpro_youngs_modulus = true
matpro_poissons_ratio = true
[]
[fuel_creep]
type = UO2CreepUpdate
block = pellet
temperature = temperature
burnup_function = burnup
initial_grain_radius = ${initial_grain_radius}
[]
[fuel_stress]
type = ComputeSmearedCrackingStress
block = pellet
cracking_stress = ${fuel_cracking_stress}
inelastic_models = 'fuel_creep'
softening_models = exponential_softening
shear_retention_factor = ${fuel_shear_retention_factor}
max_stress_correction = ${fuel_max_stress_correction}
cracked_elasticity_type = DIAGONAL
output_properties = crack_damage
outputs = exodus
[]
[exponential_softening]
type = ExponentialSoftening
[]
[fuel_relocation]
type = UO2RelocationEigenstrain
block = pellet
burnup_function = burnup
rod_ave_lin_pow = power_history
axial_power_profile = axial_power_factors
relocation_activation1 = ${relocation_activation1}
relocation_model = ESCORE_modified
eigenstrain_name = fuel_relocation_strain
fuel_pin_geometry = pin_geometry
model_relocation_recovery = true
max_relocation_recovery_fraction = ${max_relocation_recovery_fraction}
relocation_scaling_factor = ${relocation_scaling_factor}
volumetric_swelling_increment = vol_swell_increment
layered_average_contact_pressure = layered_average_contact_pressure
outputs = all
output_properties = 'relocation_strain recovered_relocation_strain'
[]
[fuel_thermal_expansion]
type = UO2ThermalExpansionMATPROEigenstrain
block = pellet
temperature = temperature
stress_free_temperature = ${stress_free_temperature}
eigenstrain_name = fuel_thermal_strain
[]
[fission_gas_release]
type = UO2Sifgrs
block = pellet
hydrostatic_stress = hydrostatic_stress
diff_coeff_option = TURNBULL_D1_4D2_D3
transient_option = MICROCRACKING_BURNUP
res_param_option = HETEROGENEOUS_WHITE
ig_bubble_model = NUCLEATION_RESOLUTION
ig_diff_algorithm = polypole2
temperature = temperature
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
pellet_id = pellet_id
pellet_brittle_zone = pbz
ath_model = true
rod_ave_lin_pow = power_history
axial_power_profile = axial_power_factors
[]
[fuel_density]
type = StrainAdjustedDensity
block = pellet
strain_free_density = ${initial_fuel_density}
[]
[clad_thermal]
type = ZryThermal
block = clad
temperature = temperature
[]
[clad_elasticity_tensor]
type = ZryElasticityTensor
block = clad
fast_neutron_fluence = fast_neutron_fluence
temperature = temperature
matpro_youngs_modulus = true
matpro_poissons_ratio = true
[]
[clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = nonlinear
inelastic_models = 'clad_zrycreep'
block = clad
[]
[clad_zrycreep]
type = ZryCreepLimbackHoppeUpdate
block = clad
temperature = temperature
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
model_irradiation_creep = true
model_primary_creep = true
model_thermal_creep = true
[]
[thermal_expansion]
type = ZryThermalExpansionMATPROEigenstrain
block = clad
temperature = temperature
stress_free_temperature = ${stress_free_temperature}
eigenstrain_name = clad_thermal_eigenstrain
[]
[irradiation_swelling]
type = ZryIrradiationGrowthEigenstrain
block = clad
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type = stress_relief_annealed
eigenstrain_name = clad_irradiation_strain
[]
[clad_density]
type = StrainAdjustedDensity
block = clad
strain_free_density = ${cladding_density}
[]
[clad_oxidation]
type = ZryOxidation
boundary = 2
temperature = temperature
normal_operating_temperature_model = epri_kwu_ce
high_temperature_model = leistikow
fuel_pin_geometry = pin_geometry
[]
[]
#### This is the part where VCP is set up
[Preconditioning]
[vcp]
type = VCP
full = true
# condense out the normal LM from mechanical contact and the LM from thermal contact
lm_variable = 'mechanical_normal_lm thermal_thermal_lm'
primary_variable = 'disp_x temperature'
# we use LU to solve the system after condensation
# AMG and other solver types have shown convergence for simpler mechanical/thermo-mechanical contact problems but has not luck with this one
preconditioner = 'LU'
is_lm_coupling_diagonal = true
adaptive_condensation = true
[]
[]
[Dampers]
[maxincrement]
type = MaxIncrement
max_increment = ${damper_max_temperature_increment}
variable = temperature
[]
[]
[Debug]
show_var_residual_norms = true
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_converged_reason -ksp_converged_reason'
# IMPORTANT: we should not specify the pc_type below, otherwise the VCP setting will be overriden
petsc_options_iname = ' -mat_mffd_err -pc_factor_shift_type -pc_factor_shift_amount'
petsc_options_value = ' 1e-5 NONZERO 1e-15'
snesmf_reuse_base = false
line_search = 'none'
verbose = true
l_max_its = ${l_max_its}
l_tol = ${l_tol}
nl_max_its = ${nl_max_its}
nl_rel_tol = ${nl_rel_tol}
nl_abs_tol = ${nl_abs_tol}
start_time = ${start_time}
n_startup_steps = ${n_startup_steps}
end_time = ${end_time}
dtmax = ${dtmax}
dtmin = ${dtmin}
[TimeStepper]
type = IterationAdaptiveDT
dt = ${Timestepper_dt}
optimal_iterations = ${Timestepper_optimal_iterations}
iteration_window = ${Timestepper_iteration_window}
timestep_limiting_function = power_history
force_step_every_function_point = true
[]
[]
[Postprocessors]
[avg_gap_conductance]
type = SideAverageValue
boundary = 10
variable = gap_cond
execute_on = 'initial timestep_end'
[]
[max_fuel_temp]
type = NodalExtremeValue
block = pellet
value_type = max
variable = temperature
execute_on = 'initial timestep_end'
[]
[max_clad_temp]
type = NodalExtremeValue
block = clad
value_type = max
variable = temperature
execute_on = 'initial timestep_end'
[]
[total_rod_integral_power]
type = ElementIntegralPower
variable = temperature
burnup_function = burnup
block = pellet
[]
[total_rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = ${rod_input_power_scale_factor}
[]
[vol_swell_increment]
type = SideAverageIncrementTensorComponent
boundary = 10
variable = volumetric_swelling_strain
execute_on = nonlinear
[]
[contact_dof]
type = ContactDOFSetSize
variable = 'mechanical_normal_lm'
subdomain = 'secondary_lower'
execute_on = 'nonlinear timestep_end'
[]
[nl_its]
type = NumNonlinearIterations
[]
[total_nl_its]
type = CumulativeValuePostprocessor
postprocessor = nl_its
[]
[l_its]
type = NumLinearIterations
[]
[total_l_its]
type = CumulativeValuePostprocessor
postprocessor = l_its
[]
[]
[StandardLWRFuelRodOutputs]
fuel_pellet_blocks = 3
[]
[Outputs]
perf_graph = true
csv = true
exodus = true
color = false
[console]
type = Console
max_rows = 25
[]
[chkfile]
type = CSV
show = 'average_burnup fission_gas_released_percentage'
execute_on = 'FINAL'
[]
[]
[VectorPostprocessors]
[temperature_post]
type = NodalValueSampler
variable = temperature
boundary = '10'
sort_by = y
[]
[contact_post]
type = NodalValueSampler
variable = mechanical_normal_lm
boundary = '10'
sort_by = y
[]
[disp_x]
type = NodalValueSampler
variable = disp_x
boundary = '10'
sort_by = y
[]
[disp_y]
type = NodalValueSampler
variable = disp_y
boundary = '10'
sort_by = y
[]
[]
[UserObjects]
[pin_geometry]
type = FuelPinGeometry
[]
[pbz]
type = PelletBrittleZone
block = pellet
pellet_id = pellet_id
temperature = temperature
fuel_pin_geometry = pin_geometry
number_pellets = ${pellet_quantity}
execute_on = 'initial linear'
[]
[layered_average_contact_pressure]
type = LayeredSideAverage
variable = mechanical_normal_lm
direction = y
num_layers = 1
execute_on = timestep_end
boundary = 10
[]
[]
(assessment/LWR/validation/Riso_AN8/analysis/Riso_AN8.i)
id = Riso_AN8
# Fuel material properties
initial_fuel_density = 10273.9 # kg/m^3 (TD assumed: 10960 kg/m^3)
initial_grain_radius = 4.68e-06 # m
initial_fuel_porosity = 0.063 # (-)
fuel_thermal_expansion_coeff = 10.0e-06 # K^-1
# Cladding material properties
cladding_density = 6550.0 # kg/m^3
cladding_thermal_conductivity = 16.0 # W/m-K
cladding_specific_heat = 330.0 # J/kg-K
# Cladding geometry
clad_inner_radius = 4.6305e-03 # m
clad_outer_radius = 5.405e-03 # m
# Rod geometry
a_lower = 0.0153 # m
a_upper = 0.52935 # m
number_pellets = 75
fuel_inner_radius = 0.0 # m
fuel_outer_radius = 4.5265e-03 # m
fuel_volume_ratio = 1.0 # (-)
fuel_diameter = 9.053e-03 # m
diametral_gap = 208.0e-06 # m
patch_size = 10 # (-)
num_radial_burnup = 50 # (-)
bias_radial_burnup = 0.95 # (-)
num_axial_burnup = 75 # (-)
# Neutronics, power, and isotope fractions
energy_per_fission = 3.28451e-11 # J/fission
fast_neutron_flux_factor = 1 # (-)
isotope_fraction_U235 = 0.0295
isotope_fraction_U238 = 0.9705
isotope_fraction_Pu239 = 0.0
isotope_fraction_Pu240 = 0.0
isotope_fraction_Pu241 = 0.0
isotope_fraction_Pu242 = 0.0
# Temperature conditions
initial_temperature = 293 # K
temperature_scaling = 1e2 # (-)
stress_free_temperature = 293.15 # K
# Contact
friction_coefficient = 0.4
c_normal = 1e+8
c_tangential = 1e+18
tangential_lm_scaling = 1.0e-12
normal_lm_scaling = 1.0e-12
roughness_secondary = 1.0e-6
roughness_primary = 2.0e-6
roughness_coef = 3.2
thermal_lm_scaling = 1.0e-2
# Relocation
burnup_relocation_stop = 0.031 # FIMA
relocation_activation1 = 5000 # W/m
# Plenum parameters
initial_plenum_pressure = 2.31e+06 # Pa
startup_time = 0 # s
# Problem parameters
acceptable_multiplier = 10
acceptable_iterations = 15
# Numerical options
l_max_its = 200
l_tol = 1.0e-02
nl_max_its = 30
nl_rel_tol = 1e-04
nl_abs_tol = 1e-06
start_time = -100.0 # s
n_startup_steps = 1
end_time = 103599691.0 # s
dtmax = 1.0e+06 # s
dtmin = 0.01 # s
TimeStepper_dt = 1.0e+02 # s
TimeStepper_growth_factor = 2.0
TimeStepper_optimal_iterations = 100
TimeStepper_linear_iteration_ratio = 100
TimeStepper_iteration_window = 2
TimeStepper_max_function_change = 3000.0
# Coolant pressure ramp parameters
power_history_scale_factor = 1 # (-)
# Postprocessor parameters
central_fuel_temperature_nodeid = 54 # !! Mesh dependent
midplane_hoop_strain_inner_clad_nodeid = 1138 # !! Mesh dependent
midplane_hoop_stress_inner_clad_nodeid = 1138 # !! Mesh dependent
midplane_contact_pressure_nodeid = 163 # !! Mesh dependent
# blocks
blocks_fuel = 'pellet_type_1'
blocks_all = 'pellet_type_1 clad'
chkfile_show = 'average_burnup average_centerline_fuel_temperature fission_gas_released_percentage rod_total_power average_fission_rate max_fuel_temperature'
# Data file pathways
rod_mesh_file = Riso_AN8/analysis/mesh_AN8.e
power_history_data_file = Riso_AN8/analysis/alhr_history.csv
axial_peaking_data_file = Riso_AN8/analysis/axial_lhr_factors.csv
clad_out_temperature_data_file = temp_outer_clad_history.csv
axial_temperature_factors_data_file = axial_temp_factors.csv
coolant_pressure_data_file = pressure_coolant.csv
flux_data_file = Riso_AN8/analysis/fast_neutron_flux.csv
!include ../../Riso_Base.i
!include ../../Riso_Base_sub.i
[Problem]
acceptable_multiplier = ${acceptable_multiplier}
acceptable_iterations = ${acceptable_iterations}
[]
[Variables]
[temperature]
scaling = ${temperature_scaling}
[]
[]
[Functions]
[clad_out_temperature]
type = PiecewiseLinear
data_file = ${clad_out_temperature_data_file}
format = columns
[]
[axial_temperature_factors]
type = PiecewiseBilinear
data_file = ${axial_temperature_factors_data_file}
axis = 1
[]
[coolant_pressure]
type = PiecewiseLinear
data_file = ${coolant_pressure_data_file}
format = columns
[]
[clad_temperature_bc]
type = CompositeFunction
functions = 'clad_out_temperature axial_temperature_factors'
[]
[]
[AuxVariables]
[porosity]
order = CONSTANT
family = MONOMIAL
block = ${blocks_fuel}
initial_condition = ${initial_fuel_porosity}
[]
[oxide_thickness]
order = CONSTANT
family = MONOMIAL
[]
[gas_gen_3]
order = CONSTANT
family = MONOMIAL
block = ${blocks_fuel}
[]
[gas_grn_3]
order = CONSTANT
family = MONOMIAL
block = ${blocks_fuel}
[]
[gas_bdr_3]
order = CONSTANT
family = MONOMIAL
block = ${blocks_fuel}
[]
[gas_rel_3]
order = CONSTANT
family = MONOMIAL
block = ${blocks_fuel}
[]
[bbl_bdr_2]
order = CONSTANT
family = MONOMIAL
block = ${blocks_fuel}
[]
[prs_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = ${blocks_fuel}
[]
[prseq_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = ${blocks_fuel}
[]
[rad_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = ${blocks_fuel}
[]
[GBCoverage]
order = CONSTANT
family = MONOMIAL
block = ${blocks_fuel}
[]
[sat_coverage]
order = CONSTANT
family = MONOMIAL
block = ${blocks_fuel}
[]
[eff_diff_coeff]
order = CONSTANT
family = MONOMIAL
block = ${blocks_fuel}
[]
[deltav_v0_bd]
order = CONSTANT
family = MONOMIAL
block = ${blocks_fuel}
[]
[gaseous_porosity]
order = CONSTANT
family = MONOMIAL
block = ${blocks_fuel}
[]
[thermal_conductivity]
order = CONSTANT
family = MONOMIAL
block = ${blocks_fuel}
[]
[]
[AuxKernels]
[porosity]
type = PorosityAuxUO2
block = ${blocks_fuel}
variable = porosity
execute_on = linear
[]
[oxi_thickness]
type = MaterialRealAux
variable = oxide_thickness
property = oxide_scale_thickness
boundary = 2
[]
[fggen]
type = MaterialRealAux
variable = gas_gen_3
property = gas_concentration_generated_total
[]
[fggrn]
type = MaterialRealAux
variable = gas_grn_3
property = gas_concentration_intra_total
[]
[fgbdr]
type = MaterialRealAux
variable = gas_bdr_3
property = gas_concentration_GB_bubble_volume
[]
[fgrel]
type = MaterialRealAux
variable = gas_rel_3
property = gas_concentration_release_total
[]
[nbbl2]
type = MaterialRealAux
variable = bbl_bdr_2
property = bubble_GB_surface_density
[]
[prsbbl]
type = MaterialRealAux
variable = prs_bbl_bdr
property = bubble_GB_pressure
[]
[prseqbbl]
type = MaterialRealAux
variable = prseq_bbl_bdr
property = bubble_GB_pressure_equilibrium
[]
[radbbl]
type = MaterialRealAux
variable = rad_bbl_bdr
property = bubble_radius_GB
[]
[frcvrg]
type = MaterialRealAux
variable = GBCoverage
property = GBCoverage
[]
[stcvrg]
type = MaterialRealAux
variable = sat_coverage
property = sat_coverage
[]
[diffc]
type = MaterialRealAux
variable = eff_diff_coeff
property = eff_diff_coeff
[]
[dvv0bd]
type = MaterialRealAux
variable = deltav_v0_bd
property = deltav_v0_bubble_GB
[]
[gaspor]
type = MaterialRealAux
variable = gaseous_porosity
property = gaseous_porosity
[]
[fuel_conductivity]
type = MaterialRealAux
variable = thermal_conductivity
property = thermal_conductivity
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[fuel]
add_variables = false
generate_output = 'hydrostatic_stress stress_xx stress_yy stress_zz
vonmises_stress strain_zz'
eigenstrain_names = 'fuel_volumetric_swelling_eigenstrain
fuel_thermal_eigenstrain fuel_relocation_eigenstrain'
[]
[clad]
add_variables = false
cylindrical_axis_point1 = '0 0 0'
cylindrical_axis_point2 = '0 1 0'
generate_output = 'hydrostatic_stress stress_xx stress_yy stress_zz
vonmises_stress strain_zz creep_strain_xx creep_strain_zz hoop_stress'
eigenstrain_names = 'clad_irradiation_growth_eigenstrain
clad_thermal_eigenstrain'
[]
[]
[Kernels]
[heat_source]
fission_rate = fission_rate
[]
[]
[Contact]
[mechanical]
correct_edge_dropping = true
[]
[]
[ThermalContactMortar]
[thermal_contact]
correct_edge_dropping = true
[]
[]
[BCs]
[no_y_fuel_all]
type = DirichletBC
variable = disp_y
boundary = 4
value = 0.0
[]
[Pressure]
[coolantPressure]
boundary = '1 2 3'
function = coolant_pressure
[]
[]
[]
[Materials]
[fuel_swelling]
gas_swelling_model_type = SIFGRS
[]
[fuel_thermal]
initial_porosity = ${initial_fuel_porosity}
[]
[clad_irradiation_growth_eigenstrain]
zircaloy_material_type = stress_relief_annealed
[]
[clad_oxidation]
type = ZryOxidation
boundary = 2
temperature = temperature
clad_inner_radius = ${clad_inner_radius}
clad_outer_radius = ${clad_outer_radius}
normal_operating_temperature_model = epri_kwu_ce
high_temperature_model = leistikow
[]
[]
[Executioner]
[TimeStepper]
max_function_change = ${TimeStepper_max_function_change}
growth_factor = ${TimeStepper_growth_factor}
[]
[]
[Postprocessors]
[central_fuel_temperature]
type = NodalVariableValue
variable = temperature
nodeid = ${central_fuel_temperature_nodeid}
[]
[midplane_hoop_strain_inner_clad]
type = ElementalVariableValue
elementid = ${midplane_hoop_strain_inner_clad_nodeid}
variable = strain_zz
[]
[midplane_hoop_stress_inner_clad]
type = ElementalVariableValue
elementid = ${midplane_hoop_stress_inner_clad_nodeid}
variable = hoop_stress
[]
[midplane_contact_pressure]
type = ElementalVariableValue
elementid = ${midplane_contact_pressure_nodeid}
variable = contact_pressure
[]
[]
(examples/multiapp/pin2.i)
## In this example the multiapp system is called to run another BISON simulation.
## (input1.i calls input2.i) An application of this might be multiple fuel pins
## in an assembly. This example also demonstrates the internal mesh maker.
initial_fuel_density = 10200
[GlobalParams]
density = ${initial_fuel_density}
displacements = 'disp_x disp_y'
order = FIRST
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
a_lower = 0.06951
a_upper = 3.72711
initial_porosity = 0.04
[]
# ==================================================== #
# Mesh (and Geometry, internally-meshed)
# ==================================================== #
[Mesh]
coord_type = RZ
[smeared_pellet_mesh]
type = FuelPinMeshGenerator
clad_mesh_density = customize
pellet_mesh_density = customize
clad_thickness = 0.0005
pellet_outer_radius = 0.0041
clad_bot_gap_height = 0.00152
clad_top_gap_height = 0.16
pellet_quantity = 1
pellet_height = 3.6576
clad_gap_width = 8.0e-05
bottom_clad_height = 0.0167
top_clad_height = 0.0167
nx_p = 6 # number of radial elements in the fuel
ny_p = 48 # number of axial elements in the fuel
nx_c = 3 # number of elements in the clad thickness
ny_c = 48 # number of elements in the axially in the clad
ny_cu = 1
ny_cl = 1
intervals = '0.03866 0.08211 0.08211 0.08211 0.08212 0.08211 0.08211 0.08211 0.0381 0.08065 0.08065 0.08065 0.08065 0.08065 0.08065 0.0381 0.08065 0.08065 0.08065 0.08065 0.08065 0.08065 0.0381 0.08065 0.08065 0.08065 0.08065 0.08065 0.08065 0.0381 0.08065 0.08065 0.08065 0.08065 0.08065 0.08065 0.0381 0.08065 0.08065 0.08065 0.08065 0.08065 0.08065 0.0381 0.079212 0.079212 0.079212 0.079212 0.079212'
elem_type = QUAD4
[]
partitioner = centroid
centroid_partitioner_direction = y
patch_size = 10
patch_update_strategy = auto
[]
[DefaultElementQuality]
aspect_ratio_upper_bound = 493
[]
# ==================================================== #
# Dimensions and Primary Variables
# ==================================================== #
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
group_variables = 'disp_x disp_y'
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[temp]
initial_condition = 3.000000e+02
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[pellets]
block = 3
add_variables = false
strain = FINITE
eigenstrain_names = 'fuel_relocation_strain fuel_thermal_strain fuel_volumetric_strain'
generate_output = 'vonmises_stress hydrostatic_stress stress_xx stress_yy stress_zz strain_xx strain_yy strain_zz'
extra_vector_tags = 'ref'
[]
[clad]
block = 1
add_variables = false
strain = FINITE
eigenstrain_names = 'clad_thermal_eigenstrain clad_irradiation_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz creep_strain_xx creep_strain_yy creep_strain_xy creep_strain_zz strain_xx strain_yy strain_zz'
extra_vector_tags = 'ref'
[]
[]
# ==================================================== #
# Auxiliary Variables
# ==================================================== #
[AuxVariables]
# ================================================== #
# Nodal Quantities
# ================================================== #
[htcl]
initial_condition = 500.0
[]
[htcv]
initial_condition = 0.0
[]
[Tl]
initial_condition = 565.0
[]
[Tv]
initial_condition = 565.0
[]
[burnup]
block = 3
[]
[fast_neutron_flux]
block = 1
[]
[fast_neutron_fluence]
block = 1
[]
[grain_radius]
block = 3
initial_condition = 5.240000e-06
[]
# ================================================== #
# Constant Monomial Quantities (Non-Mechanics)
# ================================================== #
[pellet_id]
order = CONSTANT
family = MONOMIAL
block = 3
[]
[axial_fission_rate]
order = CONSTANT
family = MONOMIAL
[]
[axial_burnup]
order = CONSTANT
family = MONOMIAL
[]
[axial_temperature]
order = CONSTANT
family = MONOMIAL
[]
[gap_conductivity]
order = CONSTANT
family = MONOMIAL
[]
[porosity]
order = CONSTANT
family = MONOMIAL
initial_condition = 0.04
[]
[]
# ==================================================== #
# Time- and Space-Dependent Source and BCs
# ==================================================== #
[Functions]
[linear_heat_rate_profile]
type = PiecewiseLinear
x = '-100 0 5000'
y = '0 0 25000'
scale_factor = 1
[]
[axial_peaking_factors]
type = ParsedFunction
expression = 1
[]
[coolant_temperature]
type = PiecewiseLinear
x = '-100 0'
y = '293 565'
axis = y
[]
[coolant_pressure_ramp]
# used in coolantPressure BC
type = PiecewiseLinear
scale_factor = 1
x = '0 10000.0'
y = '0 1.0'
[]
[]
# ==================================================== #
# Burnup Equation Set
# ==================================================== #
[Burnup]
[burnup]
block = 3
rod_ave_lin_pow = linear_heat_rate_profile
axial_power_profile = axial_peaking_factors
num_radial = 80
num_axial = 49
fuel_inner_radius = 0.0
fuel_outer_radius = 0.0041
fuel_volume_ratio = 1.0
isotopes = 'U235 U238'
isotope_fractions = '3.100e-02 9.690e-01'
RPF = RPF
[]
[]
# ==================================================== #
# Primary Kernels used in Heat Transfer
# ==================================================== #
[Kernels]
[gravity]
type = Gravity
variable = disp_y
value = -9.81
[]
[heat]
# gradient term in heat conduction equation
type = HeatConduction
variable = temp
extra_vector_tags = 'ref'
[]
[heat_ie]
# time term in heat conduction equation
type = HeatConductionTimeDerivative
variable = temp
extra_vector_tags = 'ref'
[]
[heat_source]
type = NeutronHeatSource
fission_rate = fission_rate
variable = temp
extra_vector_tags = 'ref'
block = 3
[]
[]
[AuxKernels]
# ================================================== #
# Pre-Defined Types
# ================================================== #
[pelletid]
type = PelletIdAux
block = 3
variable = pellet_id
number_pellets = 1
execute_on = initial
[]
[fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = 1
rod_ave_lin_pow = linear_heat_rate_profile
axial_power_profile = axial_peaking_factors
factor = 1.27e+14 # (n/m2-s per W/m)
execute_on = timestep_begin
[]
[fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = 1
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[]
[fuel_porosity]
type = PorosityAuxUO2
block = 3
variable = porosity
execute_on = linear
[]
[grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temperature = temp
execute_on = linear
[]
[gap_conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_conductivity
boundary = 10
execute_on = linear
[]
[conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_conductivity
boundary = 10
execute_on = linear
[]
# ================================================== #
# Other General Types
# ================================================== #
[axial_burnup]
type = SpatialUserObjectAux
block = 3
variable = axial_burnup
user_object = axial_burnup
execute_on = timestep_begin
[]
[axial_temperature]
type = SpatialUserObjectAux
block = 3
variable = axial_temperature
user_object = axial_temperature
execute_on = timestep_begin
[]
[]
# ==================================================== #
# Mechanical and Thermal Contact
# ==================================================== #
[Contact]
[pellet_clad_mechanical]
primary = 5
secondary = 10
penalty = 1e14
normalize_penalty = true
normal_smoothing_distance = 0.1
model = frictionless
formulation = Kinematic
[]
[]
[ThermalContact]
[thermal_contact]
type = GasGapHeatTransfer
variable = temp
primary = 5
secondary = 10
roughness_coef = 3.200000e+00
roughness_primary = 1.8e-06
roughness_secondary = 8e-07
jump_distance_model = LANNING
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
initial_moles = initial_moles
gas_released = fission_gas_released
tangential_tolerance = 0.0001
normal_smoothing_distance = 0.1
order = FIRST
[]
[]
[BCs]
[no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[]
[no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 20
value = 0.0
[]
[no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[]
[convective_clad_surface_bottom]
type = ConvectiveFluxBC
boundary = '1 2 3'
variable = temp
rate = 38200.0 #convection coefficient (h)
initial = 565.0
final = 585.0
duration = 1.0e4 #duration of initial power ramp
[]
[Pressure]
[coolantPressure]
boundary = '1 2 3'
factor = 1.55132e+07
function = coolant_pressure_ramp
[]
[]
[PlenumPressure]
# apply plenum pressure on clad inner walls and pellet surfaces
[plenumPressure]
boundary = 9
initial_pressure = 1.99948e+06
startup_time = 0
R = 8.314462
output_initial_moles = initial_moles
temperature = ave_temp_interior
volume = gas_volume
material_input = fission_gas_released
output = plenum_pressure
[]
[]
[]
# ==================================================== #
# Specification of Material Properties
# ==================================================== #
[Materials]
[fuel_thermal]
type = UO2Thermal
thermal_conductivity_model = NFIR
block = 3
temperature = temp
burnup = burnup
[]
[fuel_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = 3
youngs_modulus = 2.0e11
poissons_ratio = 0.345
[]
[fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = 3
[]
[fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = 3
thermal_expansion_coeff = 10.0e-6
temperature = temp
stress_free_temperature = 300.0
eigenstrain_name = fuel_thermal_strain
[]
[fuel_relocation]
type = UO2RelocationEigenstrain
block = 3
burnup = burnup
rod_ave_lin_pow = linear_heat_rate_profile
axial_power_profile = axial_peaking_factors
relocation_activation1 = 5000
relocation_model = ESCORE_modified
eigenstrain_name = fuel_relocation_strain
diameter = 0.008192
diametral_gap =0.000168
# Average burnup at which fuel comes into contact with clad at 25kW/m
burnup_relocation_stop = 0.0315
[]
[fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
block = 3
temperature = temp
burnup = burnup
initial_fuel_density = 10200.0
eigenstrain_name = fuel_volumetric_strain
total_densification = 0.01
[]
[fission_gas_release]
type = UO2Sifgrs
axial_power_profile = axial_peaking_factors
block = 3
burnup = burnup
fission_rate = fission_rate
hydrostatic_stress = hydrostatic_stress
grain_radius = grain_radius
pellet_brittle_zone = pbz
pellet_id = pellet_id
rod_ave_lin_pow = linear_heat_rate_profile
temperature = temp
[]
[fuel_density]
type = StrainAdjustedDensity
block = 3
strain_free_density = ${initial_fuel_density}
[]
[clad_thermal]
type = ZryThermal
block = 1
temperature = temp
[]
[clad_elasticity_tensor]
type = ZryElasticityTensor
block = 1
[]
[clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'clad_zrycreep'
block = 1
[]
[clad_zrycreep]
type = ZryCreepLimbackHoppeUpdate
block = 1
temperature = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
model_irradiation_creep = true
model_primary_creep = true
model_thermal_creep = true
[]
[thermal_expansion]
type = ZryThermalExpansionMATPROEigenstrain
block = 1
temperature = temp
stress_free_temperature = 300.0
eigenstrain_name = clad_thermal_eigenstrain
[]
[irradiation_swelling]
type = ZryIrradiationGrowthEigenstrain
block = 1
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type = stress_relief_annealed
eigenstrain_name = clad_irradiation_strain
[]
[clad_density]
type = StrainAdjustedDensity
block = 1
strain_free_density = 7833
[]
[]
# ==================================================== #
# User Objects for Output Processing
# ==================================================== #
[UserObjects]
[pbz]
type = PelletBrittleZone
block = 3
pellet_id = pellet_id
temperature = temp
pellet_radius = 0.0041
number_pellets = 1
execute_on = linear
[]
[averagefissionrate]
type = LayeredAverage
block = 3
variable = fission_rate
direction = y
num_layers = 49
execute_on = timestep_begin
[]
[average_temp]
type = LayeredAverage
block = 3
variable = temp
direction = y
num_layers = 49
execute_on = timestep_begin
[]
[averagebu]
type = LayeredAverage
block = 3
variable = burnup
direction = y
num_layers = 49
execute_on = timestep_begin
[]
[casl_average_fission_rate]
variable = fission_rate
type = LayeredAverage
block = 3
direction = y
bounds = '0.01822 0.05688 0.13899 0.2211 0.30321 0.38533 0.46744 0.54955 0.63166 0.66976 0.75041 0.83106 0.91171 0.99236 1.07301 1.15366 1.19176 1.27241 1.35306 1.43371 1.51436 1.59501 1.67566 1.71376 1.79441 1.87506 1.95571 2.03636 2.11701 2.19766 2.23576 2.31641 2.39706 2.47771 2.55836 2.63901 2.71966 2.75776 2.83841 2.91906 2.99971 3.08036 3.16101 3.24166 3.27976 3.35897 3.43818 3.5174 3.59661 3.67582'
execute_on = timestep_begin
[]
[surface_temp]
type = LayeredSideAverage
boundary = 2
variable = temp
direction = y
bounds = '0.01822 0.05688 0.13899 0.2211 0.30321 0.38533 0.46744 0.54955 0.63166 0.66976 0.75041 0.83106 0.91171 0.99236 1.07301 1.15366 1.19176 1.27241 1.35306 1.43371 1.51436 1.59501 1.67566 1.71376 1.79441 1.87506 1.95571 2.03636 2.11701 2.19766 2.23576 2.31641 2.39706 2.47771 2.55836 2.63901 2.71966 2.75776 2.83841 2.91906 2.99971 3.08036 3.16101 3.24166 3.27976 3.35897 3.43818 3.5174 3.59661 3.67582'
use_displaced_mesh = 0
execute_on = timestep_begin
[]
[axial_temperature]
type = LayeredAverage
block = 3
variable = temp
direction = y
bounds = '0.01822 0.05688 0.13899 0.2211 0.30321 0.38533 0.46744 0.54955 0.63166 0.66976 0.75041 0.83106 0.91171 0.99236 1.07301 1.15366 1.19176 1.27241 1.35306 1.43371 1.51436 1.59501 1.67566 1.71376 1.79441 1.87506 1.95571 2.03636 2.11701 2.19766 2.23576 2.31641 2.39706 2.47771 2.55836 2.63901 2.71966 2.75776 2.83841 2.91906 2.99971 3.08036 3.16101 3.24166 3.27976 3.35897 3.43818 3.5174 3.59661 3.67582'
execute_on = timestep_begin
[]
[axial_burnup]
type = LayeredAverage
block = 3
variable = burnup
direction = y
bounds = '0.01822 0.05688 0.13899 0.2211 0.30321 0.38533 0.46744 0.54955 0.63166 0.66976 0.75041 0.83106 0.91171 0.99236 1.07301 1.15366 1.19176 1.27241 1.35306 1.43371 1.51436 1.59501 1.67566 1.71376 1.79441 1.87506 1.95571 2.03636 2.11701 2.19766 2.23576 2.31641 2.39706 2.47771 2.55836 2.63901 2.71966 2.75776 2.83841 2.91906 2.99971 3.08036 3.16101 3.24166 3.27976 3.35897 3.43818 3.5174 3.59661 3.67582'
execute_on = timestep_begin
[]
[integral_temperature]
type = LayeredAverage
block = 3
variable = temp
direction = y
num_layers = 1
execute_on = timestep_begin
[]
[integral_burnup]
type = LayeredAverage
block = 3
variable = burnup
direction = y
num_layers = 1
execute_on = timestep_begin
[]
[average]
type = LayeredAverage
block = 3
variable = temp
direction = y
bounds = '0.01822 0.05688 0.13899 0.2211 0.30321 0.38533 0.46744 0.54955 0.63166 0.66976 0.75041 0.83106 0.91171 0.99236 1.07301 1.15366 1.19176 1.27241 1.35306 1.43371 1.51436 1.59501 1.67566 1.71376 1.79441 1.87506 1.95571 2.03636 2.11701 2.19766 2.23576 2.31641 2.39706 2.47771 2.55836 2.63901 2.71966 2.75776 2.83841 2.91906 2.99971 3.08036 3.16101 3.24166 3.27976 3.35897 3.43818 3.5174 3.59661 3.67582'
execute_on = timestep_begin
[]
[axial_surface_temperature]
type = LayeredSideAverage
boundary = 2
variable = temp
direction = y
bounds = '0.01822 0.05688 0.13899 0.2211 0.30321 0.38533 0.46744 0.54955 0.63166 0.66976 0.75041 0.83106 0.91171 0.99236 1.07301 1.15366 1.19176 1.27241 1.35306 1.43371 1.51436 1.59501 1.67566 1.71376 1.79441 1.87506 1.95571 2.03636 2.11701 2.19766 2.23576 2.31641 2.39706 2.47771 2.55836 2.63901 2.71966 2.75776 2.83841 2.91906 2.99971 3.08036 3.16101 3.24166 3.27976 3.35897 3.43818 3.5174 3.59661 3.67582'
use_displaced_mesh = 0
execute_on = timestep_begin
[]
[rod_avg_fast_fluence]
type = LayeredSideAverage
boundary = 2
variable = fast_neutron_fluence
direction = y
num_layers = 1
use_displaced_mesh = 0
execute_on = timestep_begin
[]
[casl_clad_surface_heat_flux]
type = LayeredSideDiffusiveFluxAverage
variable = temp
boundary = 2
direction = y
bounds = '0.01822 0.05688 0.13899 0.2211 0.30321 0.38533 0.46744 0.54955 0.63166 0.66976 0.75041 0.83106 0.91171 0.99236 1.07301 1.15366 1.19176 1.27241 1.35306 1.43371 1.51436 1.59501 1.67566 1.71376 1.79441 1.87506 1.95571 2.03636 2.11701 2.19766 2.23576 2.31641 2.39706 2.47771 2.55836 2.63901 2.71966 2.75776 2.83841 2.91906 2.99971 3.08036 3.16101 3.24166 3.27976 3.35897 3.43818 3.5174 3.59661 3.67582'
diffusivity = thermal_conductivity
execute_on = timestep_begin
[]
[]
[Dampers]
[BoundingValueNodalDamper]
type = BoundingValueNodalDamper
variable = temp
max_value = 3200
min_value = 293
[]
[]
# ==================================================== #
# Solver Options
# ==================================================== #
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package -ksp_gmres_restart'
petsc_options_value = 'lu superlu_dist 51'
verbose = true
line_search = 'none'
# controls for linear iterations
l_max_its = 100
l_tol = 8e-3
# controls for nonlinear iterations
nl_max_its = 15
nl_rel_tol = 1e-6
nl_abs_tol = 1e-10
# ================================================== #
# Time Step Control
# ================================================== #
start_time = -100
end_time = 5e6
dtmin = 0.1
dtmax = 1e6
dt = 10
[TimeStepper]
type = IterationAdaptiveDT
dt = 1.0e2
optimal_iterations = 1000
time_t = '0 1.0e4 53200 1.0e5'
time_dt = '1.0e3 1.0e3 1.0e3 1.0e5'
[]
[]
[Postprocessors]
# ================================================== #
# Required for Fission Gas Release Models
# ================================================== #
[ave_temp_interior]
# used to compute temperature of plenum
type = SideAverageValue
boundary = 9
variable = temp
outputs = exodus
execute_on = 'initial linear'
[]
[fission_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = 3
outputs = exodus
execute_on = linear
[]
[gas_volume]
type = InternalVolume
boundary = 9
outputs = exodus
execute_on = 'initial linear'
[]
[fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = 3
outputs = exodus
execute_on = linear
[]
[fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = 3
outputs = exodus
execute_on = linear
[]
[_dt]
type = TimestepSize
execute_on = 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
[]
[]
# ==================================================== #
# Location and format of output
# ==================================================== #
[Outputs]
perf_graph = true
exodus = true
file_base = pin2_output
time_step_interval = 1
[console]
type = Console
max_rows = 25
output_linear = true
[]
[]
(assessment/LWR/validation/RIA_NSRR_FK/analysis/FK8/FK08.i)
# This file was created using BIF with the following inputs:
# FK06/FK06.var - md5sum: 5a60c05af67ba840a89caacf70b852e2
# pulse.tpl - md5sum: 37e5a6b8a0c63ad020906dada3472585
initial_fuel_density = 10310.8809782
[GlobalParams]
density = ${initial_fuel_density}
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11
a_lower = 0.01822
a_upper = 0.12422
temperature = temp
volumetric_locking_correction = false
[]
[Mesh]
coord_type = RZ
[smeared_pellet_mesh]
type = FuelPinMeshGenerator
clad_mesh_density = customize
pellet_mesh_density = customize
elem_type = QUAD8
ny_p = 100
nx_c = 4
ny_c = 100
nx_p = 12
ny_cu = 3
ny_cl = 3
bx_p = 0.75
clad_bot_gap_height = 0.00152
bottom_clad_height = 0.0167
top_clad_height = 0.0167
clad_thickness = 0.00086
pellet_outer_radius = 0.00527
clad_top_gap_height = 0.05265
pellet_height = 0.106
clad_gap_width = 1e-05
pellet_quantity = 1
[]
patch_size = 5
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
converge_on = 'disp_x disp_y temp'
[]
[Variables]
[temp]
initial_condition = 293
block = '1 3'
[]
[]
[AuxVariables]
[BuTC]
[]
[gap]
order = CONSTANT
family = MONOMIAL
[]
[fast_neutron_flux]
block = 1
[]
[fast_neutron_fluence]
block = 1
[]
[buavg]
order = CONSTANT
family = MONOMIAL
[]
[fission_rate]
initial_condition = 0
[]
[grain_radius]
block = 3
initial_condition = 5.96e-6
[]
[integral_burnup]
order = CONSTANT
family = MONOMIAL
[]
[pellet_id]
order = CONSTANT
family = MONOMIAL
block = 3
[]
[porosity]
order = CONSTANT
family = MONOMIAL
initial_condition = 0.0592261881186
[]
[SED]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[linear_heat_rate_profile]
type = PiecewiseLinear
data_file = pulse.csv
format = columns
[]
[flux]
type = ConstantFunction
value = 0.0
[]
[axial_peaking_factors]
type = ConstantFunction
value = 1
[]
[coolant_pressure_ramp]
type = ConstantFunction
value = 101325
[]
[linear_heat_generation_rate]
type = CompositeFunction
functions = 'linear_heat_rate_profile axial_peaking_factors'
[]
[axial_flux]
type = CompositeFunction
functions = 'flux axial_peaking_factors'
[]
[burnup_thermal_conductivity]
type = ConstantFunction
value = 1 # should be burnup / 950
[]
[radial_power_profile]
type = PiecewiseLinear
data_file = RadialPowerProfile.csv
format = columns
axis = X
[]
[radial_burnup_profile]
type = PiecewiseLinear
data_file = RadialBurnupProfile.csv
format = columns
axis = X
[]
[initial_burnup]
type = CompositeFunction
functions = 'burnup_thermal_conductivity radial_burnup_profile'
[]
[]
[Burnup]
[burnup]
block = 3
rod_ave_lin_pow = linear_heat_rate_profile
axial_power_profile = axial_peaking_factors
rpf_input = radial_power_profile
num_radial = 80
num_axial = 49
fuel_inner_radius = 0.0
fuel_outer_radius = 0.00527
fuel_volume_ratio = 1.0
isotopes = 'U235 U238 Pu239 Pu240 Pu241 Pu242'
isotope_fractions = '0.045 0.955 0.0 0.0 0.0 0.0'
[]
[]
[Physics/SolidMechanics/QuasiStatic]
add_variables = true
[fuel]
block = 3
strain = FINITE
incremental = true
eigenstrain_names = 'fuel_thermal_eigenstrain
fuel_volumetric_swelling_eigenstrain'
extra_vector_tags = 'ref'
generate_output = 'vonmises_stress hydrostatic_stress elastic_strain_xx
elastic_strain_yy '
'elastic_strain_zz stress_xx stress_yy stress_zz strain_xx
strain_yy '
'strain_zz'
decomposition_method = EigenSolution
[]
[clad]
block = 1
strain = FINITE
incremental = true
eigenstrain_names = 'clad_thermal_eigenstrain'
extra_vector_tags = 'ref'
generate_output = 'vonmises_stress elastic_strain_xx
elastic_strain_yy elastic_strain_zz '
'stress_xx stress_yy stress_zz strain_xx
strain_yy strain_zz '
'creep_strain_xx creep_strain_yy creep_strain_zz'
decomposition_method = EigenSolution
[]
[]
[Kernels]
[gravity]
type = Gravity
variable = disp_y
value = -9.81
block = '1 3'
extra_vector_tags = 'ref'
[]
[heat]
type = HeatConduction
variable = temp
block = '1 3'
extra_vector_tags = 'ref'
[]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temp
block = '1 3'
extra_vector_tags = 'ref'
[]
[heat_source]
type = NeutronHeatSource
fission_rate = fission_rate
variable = temp
block = 3
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[BuTC]
type = FunctionAux
block = 3
variable = BuTC
function = initial_burnup
[]
[pelletid]
type = PelletIdAux
block = 3
variable = pellet_id
number_pellets = 1
execute_on = initial
[]
[gap]
type = SpatialUserObjectAux
block = 3
variable = gap
execute_on = timestep_end
user_object = avg_gap
[]
[buavg]
type = SpatialUserObjectAux
block = 3
variable = buavg
execute_on = timestep_end
user_object = integral_burnup
[]
[fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
function = axial_flux
block = 1
execute_on = timestep_begin
[]
[fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = 1
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[]
[fuel_porosity]
type = PorosityAuxUO2
block = 3
variable = porosity
execute_on = timestep_begin
[]
[grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temperature = temp
execute_on = timestep_begin
[]
[SED]
type = MaterialRealAux
variable = SED
property = strain_energy_density
execute_on = timestep_end
block = 1
[]
[]
[Contact]
[mechanical]
model = coulomb
formulation = mortar
primary = 5
secondary = 10
friction_coefficient = 0.4
c_normal = 1e+12
c_tangential = 1e+24
tangential_lm_scaling = 1.0e-16
normal_lm_scaling = 1.0e-10
[]
[]
[ThermalContactMortar]
[thermal_contact]
secondary_variable = temp
primary_boundary = '5'
secondary_boundary = '10'
layer_thickness = layer_thickness_action
roughness_coef = 3.2
roughness_primary = 1.5e-6
roughness_secondary = 1.75e-6
jump_distance_model = LANNING
plenum_pressure = plenum_pressure
initial_moles = initial_moles
initial_gas_types = 'He Ar'
initial_fractions = '0.25 0.75'
gas_released = fission_gas_released
contact_pressure = mechanical_normal_lm
thermal_lm_scaling = 1.0e-2
[]
[]
[BCs]
[no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[]
[no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 20
value = 0.0
[]
[no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[]
[coolant_temp]
type = DirichletBC
boundary = '1 2 3'
variable = temp
value = 293
[]
[Pressure]
[coolantPressure]
boundary = '1 2 3'
factor = 1
function = coolant_pressure_ramp
[]
[]
[PlenumPressure]
[plenumPressure]
boundary = '10 5'
initial_pressure = 0.1e6
startup_time = 0
R = 8.314462
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
initial_temperature = 293
[]
[]
[]
[Materials]
[fuel_swelling]
type = UO2VolumetricSwellingEigenstrain
block = 3
burnup = burnup
initial_fuel_density = 10310.8809782
total_densification = 0.006
gas_swelling_model_type = SIFGRS
eigenstrain_name = 'fuel_volumetric_swelling_eigenstrain'
[]
[fuel_thermal]
type = UO2Thermal
thermal_conductivity_model = NFIR
block = 3
temperature = temp
burnup = BuTC
initial_porosity = 0.0592261881186
[]
[fuel_elasticity_tensor]
type = UO2ElasticityTensor
block = 3
[]
[fuel_thermal_expansion]
type = UO2ThermalExpansionMartinEigenstrain
block = 3
stress_free_temperature = 293
eigenstrain_name = 'fuel_thermal_eigenstrain'
[]
[fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = '3'
[]
[clad_thermal]
type = ZryThermal
block = 1
temperature = temp
[]
[clad_inelastic_stress]
type = ComputeMultipleInelasticStress
block = 1
tangent_operator = elastic
inelastic_models = 'plasticity'
[]
[clad_elasticity_tensor]
type = ZryElasticityTensor
block = 1
fast_neutron_fluence = fast_neutron_fluence
initial_fast_fluence = 1.30e26
cold_work_factor = 0.01
matpro_youngs_modulus = true
matpro_poissons_ratio = true
[]
## TODO: Creep is not active, but is transfered from the SM version.
## Adding creep causes the Peak Hoop strain to best match the FALCON
## results given by R. Montgomery and D. Sunderland. Only retaining
## plasticity matches the results from Wenfeng Liu, John Alvis, Robert Montgomery, and Ken Yueh
[clad_creep_stress]
type = ZryCreepLimbackHoppeUpdate
block = 1
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
initial_fast_fluence = 1.30e26
[]
[clad_thermal_expansion]
type = ZryThermalExpansionMATPROEigenstrain
block = 1
stress_free_temperature = 293.0
eigenstrain_name = 'clad_thermal_eigenstrain'
[]
[plasticity]
type = ZryPlasticityUpdate
block = 1
initial_fast_fluence = 1.30e26
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
cold_work_factor = .01
plasticity_model_type = MATPRO
output_properties = yield_stress
outputs = all
zircaloy_alloy_type = 4
[]
[fission_gas_release]
type = UO2Sifgrs
block = 3
temperature = temp
fission_rate = fission_rate
grain_radius = grain_radius
gbs_model = true
burnup = BuTC
transient_option = MICROCRACKING
[]
[clad_density]
type = StrainAdjustedDensity
block = 1
strain_free_density = 6551
[]
[fuel_density]
type = StrainAdjustedDensity
block = 3
strain_free_density = ${initial_fuel_density}
[]
[strain_energy_density]
type = StrainEnergyDensity
block = '1 3'
incremental = true
[]
[]
[UserObjects]
[avg_gap]
type = LayeredAverage
block = 3
variable = penetration
direction = y
num_layers = 48
[]
[pbz]
type = PelletBrittleZone
block = 3
pellet_id = pellet_id
temperature = temp
pellet_radius = 0.00527
number_pellets = 1
execute_on = timestep_begin
[]
[integral_burnup]
type = LayeredAverage
block = 3
variable = burnup
direction = y
num_layers = 1
[]
[]
[Executioner]
type = Transient
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-12'
line_search = 'none'
l_max_its = 40
l_tol = 8e-3
nl_max_its = 40
nl_rel_tol = 1e-3
nl_abs_tol = 1e-10
dtmin = 0.00001
dtmax = 1.0
start_time = 0
end_time = 100
[TimeStepper]
type = IterationAdaptiveDT
dt = 0.0001
optimal_iterations = 200
linear_iteration_ratio = 100
timestep_limiting_function = linear_heat_rate_profile
max_function_change = 500000
force_step_every_function_point = true
[]
[]
[Dampers]
[limitT]
type = MaxIncrement
max_increment = 100.0
variable = temp
[]
[limitX]
type = MaxIncrement
max_increment = 1e-4
variable = disp_x
[]
[]
[Postprocessors]
[max_hoop_strain]
type = ElementExtremeValue
variable = strain_zz
block = 1
[]
[max_SED]
type = ElementExtremeValue
variable = SED
block = 1
[]
[average_grain_radius]
type = ElementAverageValue
block = 3
outputs = 'exodus'
variable = grain_radius
[]
[clad_inner_vol]
type = InternalVolume
boundary = 7
outputs = 'exodus'
execute_on = 'timestep_begin initial'
[]
[flux_from_clad]
type = SideDiffusiveFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
outputs = 'exodus'
[]
[flux_from_fuel]
type = SideDiffusiveFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
outputs = 'exodus'
[]
[rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = 3
[]
[rod_input_power]
type = FunctionValuePostprocessor
function = linear_heat_rate_profile
scale_factor = 0.106
[]
[average_fission_rate]
type = ElementAverageValue
variable = fission_rate
block = '3'
[]
[RAE]
type = RadialAverageEnthalpy
vector_postprocessor = rad_temp
radial_direction = x
axial_direction = y
axial_position = 0.0503
temperature_name = temp
[]
[peak_RAE]
type = TimeExtremeValue
postprocessor = RAE
[]
[]
[VectorPostprocessors]
[rad_temp]
type = NodalValueSampler
block = 3
sort_by = y
variable = temp
execute_on = timestep_end
outputs = dummy
[]
[]
[StandardLWRFuelRodOutputs]
fuel_pellet_blocks = 3
cladding_blocks = 1
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = true
csv = true
[chkfile]
type = CSV
show = 'average_centerline_fuel_temperature average_fission_rate fission_gas_released_percentage '
'peak_RAE rod_total_power'
execute_on = 'FINAL'
[]
[console]
type = Console
max_rows = 25
output_linear = true
[]
[dummy]
type = CSV
enable = false
[]
[]
(assessment/LWR/validation/RIA_NSRR_FK/analysis/FK1/FK01_action.i)
# This file was created using BIF with the following inputs:
# FK01.var - md5sum: 123016ae8f3283a45bae816a366f93b1
# ../pulse_rev1.tpl - md5sum: 8d6b8b4bce1dd830dea2d8522009e514
initial_fuel_density = 10020.6066633
[GlobalParams]
density = ${initial_fuel_density}
initial_porosity = 0.085711070864
initial_grain_radius = 5.96e-6
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11
a_lower = 0.01822
a_upper = 0.12422
volumetric_locking_correction = false
total_densification = 0.006
temperature = temperature
[]
[Mesh]
coord_type = RZ
[smeared_pellet_mesh]
type = FuelPinMeshGenerator
clad_mesh_density = customize
pellet_mesh_density = customize
elem_type = QUAD8
ny_p = 100
nx_c = 4
ny_c = 100
nx_p = 12
ny_cu = 3
ny_cl = 3
bx_p = 0.75
clad_bot_gap_height = 0.00152
bottom_clad_height = 0.0167
top_clad_height = 0.0167
clad_thickness = 0.00086
pellet_outer_radius = 0.00527
clad_top_gap_height = 0.04298
pellet_height = 0.106
clad_gap_width = 1e-05
pellet_quantity = 1
[]
patch_size = 5
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
converge_on = 'disp_x disp_y temperature'
[]
[AuxVariables]
[BuTC]
[]
[gap]
order = CONSTANT
family = MONOMIAL
[]
[buavg]
order = CONSTANT
family = MONOMIAL
[]
[fission_rate]
initial_condition = 0
[]
[integral_burnup]
order = CONSTANT
family = MONOMIAL
[]
[pellet_id]
order = CONSTANT
family = MONOMIAL
block = 3
[]
[porosity]
order = CONSTANT
family = MONOMIAL
initial_condition = 0.085711070864
[]
[SED]
order = CONSTANT
family = MONOMIAL
[]
[]
[UserObjects]
[pin_geometry]
type = FuelPinGeometry
[]
[]
[Functions]
[linear_heat_rate_profile]
type = PiecewiseLinear
data_file = pulse.csv
format = columns
[]
[flux]
type = ConstantFunction
value = 0.0
[]
[axial_peaking_factors]
type = ConstantFunction
value = 1
[]
[coolant_pressure_ramp]
type = ConstantFunction
value = 101325
[]
[linear_heat_generation_rate]
type = CompositeFunction
functions = 'linear_heat_rate_profile axial_peaking_factors'
[]
[axial_flux]
type = CompositeFunction
functions = 'flux axial_peaking_factors'
[]
[burnup_thermal_conductivity]
type = ConstantFunction
value = 0.0473684210526 # should be burnup / 950
[]
[radial_power_profile]
type = PiecewiseBilinear
data_file = RadialPowerProfile.csv
axis = 0
[]
[radial_burnup_profile]
type = PiecewiseBilinear
data_file = RadialBurnupProfile.csv
axis = 0
[]
[initial_burnup]
type = CompositeFunction
functions = 'burnup_thermal_conductivity radial_burnup_profile'
[]
[]
[Kernels]
[gravity]
type = Gravity
block = '1 3'
variable = disp_y
value = -9.81
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[BuTC]
type = FunctionAux
block = 3
variable = BuTC
function = initial_burnup
[]
[pelletid]
type = PelletIdAux
block = 3
variable = pellet_id
number_pellets = 1
execute_on = initial
[]
[gap]
type = SpatialUserObjectAux
block = 3
variable = gap
execute_on = timestep_end
user_object = avg_gap
[]
[buavg]
type = SpatialUserObjectAux
block = 3
variable = buavg
execute_on = timestep_end
user_object = integral_burnup
[]
[fuel_porosity]
type = PorosityAuxUO2
block = 3
variable = porosity
execute_on = timestep_begin
[]
[SED]
type = MaterialRealAux
variable = SED
property = strain_energy_density
execute_on = timestep_end
block = 1
[]
[]
[Contact]
[mechanical]
model = coulomb
formulation = mortar
primary = 5
secondary = 10
friction_coefficient = 0.4
c_normal = 1e+12
c_tangential = 1e+24
tangential_lm_scaling = 1.0e-16
normal_lm_scaling = 1.0e-10
[]
[]
[ThermalContactMortar]
[thermal_contact]
secondary_variable = temperature
primary_boundary = '5'
secondary_boundary = '10'
layer_thickness = layer_thickness_action
initial_moles = initial_moles # coupling to a postprocessor which supplies the initial plenum/gap gas mass
gas_released = fission_gas_released # coupling to a postprocessor which supplies the fission gas addition
roughness_coef = 3.2
roughness_primary = 1.5e-6
roughness_secondary = 1.75e-6
jump_distance_model = LANNING
plenum_pressure = plenum_pressure
contact_pressure = mechanical_normal_lm
thermal_lm_scaling = 1.0e-2
[]
[]
[BCs]
[no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[]
[no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 20
value = 0.0
[]
[no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[]
[coolant_temperature]
type = DirichletBC
boundary = '1 2 3'
variable = temperature
value = 293
[]
[Pressure]
[coolantPressure]
boundary = '1 2 3'
factor = 1
function = coolant_pressure_ramp
[]
[]
[PlenumPressure]
[plenumPressure]
boundary = '10 5'
initial_pressure = 0.3e6
startup_time = 0
R = 8.314462
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
initial_temperature = 293
[]
[]
[]
[NuclearMaterials]
generate_output = 'elastic_strain_xx
elastic_strain_yy elastic_strain_zz stress_xx stress_yy stress_zz strain_xx
strain_yy strain_zz vonmises_stress'
fission_operation = 'RIA'
incremental = true
physics = 'Mechanics Thermal'
initial_temperature = 293
stress_free_temperature = 293
extra_vector_tags = 'ref'
strain = FINITE
[UO2]
[fuel]
block = 3
uo2_models = 'Burnup Elastic Swelling ThermalExpansion'
isotopes = 'U238 U235'
isotope_fractions = '0.961 0.039'
fuel_pin_geometry = pin_geometry
rod_ave_lin_pow = linear_heat_rate_profile
rpf_input = radial_power_profile
fuel_volume_ratio = 1
num_radial = 80
num_axial = 49
axial_power_profile = axial_peaking_factors
additional_generate_output = 'hydrostatic_stress'
[]
[]
[ZirconiumAlloy]
[clad]
block = 1
cladding_models = 'Elastic Creep Plasticity ThermalExpansion'
initial_fast_fluence = 8.40e25
zircaloy_alloy_type = 4
cold_work_factor = 0.01
plasticity_model_type = MATPRO
matpro_poissons_ratio = true
matpro_youngs_modulus = true
material_output_properties = yield_stress
additional_generate_output = 'creep_strain_xx creep_strain_yy creep_strain_zz'
[]
[]
[]
[Materials]
[strain_energy_density]
type = StrainEnergyDensity
block = 1
incremental = true
[]
[]
[UserObjects]
[avg_gap]
type = LayeredAverage
block = 3
variable = penetration
direction = y
num_layers = 48
[]
[pbz]
type = PelletBrittleZone
block = 3
pellet_id = pellet_id
temperature = temperature
pellet_radius = 0.00527
number_pellets = 1
execute_on = timestep_begin
[]
[integral_burnup]
type = LayeredAverage
block = 3
variable = burnup
direction = y
num_layers = 1
[]
[]
[Executioner]
type = Transient
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-12'
line_search = 'none'
l_max_its = 40
l_tol = 8e-3
nl_max_its = 40
nl_rel_tol = 1e-3
nl_abs_tol = 1e-10
dtmin = 0.00001
dtmax = 1.0
start_time = 0
end_time = 100
[TimeStepper]
type = IterationAdaptiveDT
dt = 0.0001
optimal_iterations = 200
linear_iteration_ratio = 100
timestep_limiting_function = linear_heat_rate_profile
max_function_change = 500000
force_step_every_function_point = true
[]
[]
[Dampers]
[limitT]
type = MaxIncrement
max_increment = 200.0
variable = temperature
[]
[limitX]
type = MaxIncrement
max_increment = 1e-4
variable = disp_x
[]
[]
[Postprocessors]
[max_hoop_strain]
type = ElementExtremeValue
variable = strain_zz
block = 1
[]
[max_SED]
type = ElementExtremeValue
variable = SED
block = 1
[]
[average_grain_radius]
type = ElementAverageValue
block = 3
outputs = 'exodus'
variable = grain_radius
[]
[clad_inner_vol]
type = InternalVolume
boundary = 7
outputs = 'exodus'
execute_on = 'timestep_begin initial'
[]
[flux_from_clad]
type = SideDiffusiveFluxIntegral
variable = temperature
boundary = 5
diffusivity = thermal_conductivity
outputs = 'exodus'
[]
[flux_from_fuel]
type = SideDiffusiveFluxIntegral
variable = temperature
boundary = 10
diffusivity = thermal_conductivity
outputs = 'exodus'
[]
[rod_total_power]
type = ElementIntegralPower
variable = temperature
fission_rate = fission_rate
block = 3
[]
[rod_input_power]
type = FunctionValuePostprocessor
function = linear_heat_rate_profile
scale_factor = 0.106
[]
[average_fission_rate]
type = ElementAverageValue
variable = fission_rate
block = '3'
[]
[RAE]
type = RadialAverageEnthalpy
vector_postprocessor = rad_temp
radial_direction = x
axial_direction = y
axial_position = 0.0503
temperature_name = temperature
[]
[peak_RAE]
type = TimeExtremeValue
postprocessor = RAE
[]
[]
[VectorPostprocessors]
[rad_temp]
type = NodalValueSampler
block = 3
sort_by = y
variable = temperature
execute_on = timestep_end
outputs = dummy
[]
[]
[StandardLWRFuelRodOutputs]
fuel_pellet_blocks = 3
cladding_blocks = 1
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = true
csv = true
[chkfile]
type = CSV
show = 'average_centerline_fuel_temperature average_fission_rate fission_gas_released_percentage peak_RAE rod_total_power'
execute_on = 'FINAL'
[]
[console]
type = Console
max_rows = 25
output_linear = true
[]
[dummy]
type = CSV
enable = false
[]
[]
(assessment/LWR/validation/RIA_NSRR_FK/analysis/FK3/FK03_ccm.i)
# This file was created using BIF with the following inputs:
# FK03/FK03.var - md5sum: 63fb064f9380e246b80d3fb7762c0b71
# pulse.tpl - md5sum: 37e5a6b8a0c63ad020906dada3472585
initial_fuel_density = 10020.6066633
[GlobalParams]
density = ${initial_fuel_density}
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11
a_lower = 0.01822
a_upper = 0.12422
temperature = temp
volumetric_locking_correction = false
[]
[Mesh]
coord_type = RZ
[smeared_pellet_mesh]
type = FuelPinMeshGenerator
clad_mesh_density = customize
pellet_mesh_density = customize
elem_type = QUAD8
ny_p = 100
nx_c = 4
ny_c = 100
nx_p = 12
ny_cu = 3
ny_cl = 3
bx_p = 0.75
clad_bot_gap_height = 0.00152
bottom_clad_height = 0.0167
top_clad_height = 0.0167
clad_thickness = 0.00086
pellet_outer_radius = 0.00527
clad_top_gap_height = 0.05265
pellet_height = 0.106
clad_gap_width = 1e-05
pellet_quantity = 1
[]
patch_size = 5
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[Variables]
[temp]
initial_condition = 293
[]
[]
[AuxVariables]
[BuTC]
[]
[gap]
order = CONSTANT
family = MONOMIAL
[]
[fast_neutron_flux]
block = 1
[]
[fast_neutron_fluence]
block = 1
[]
[buavg]
order = CONSTANT
family = MONOMIAL
[]
[fission_rate]
initial_condition = 0
[]
[grain_radius]
block = 3
initial_condition = 5.96e-6
[]
[integral_burnup]
order = CONSTANT
family = MONOMIAL
[]
[pellet_id]
order = CONSTANT
family = MONOMIAL
block = 3
[]
[gap_conductivity]
order = CONSTANT
family = MONOMIAL
[]
[porosity]
order = CONSTANT
family = MONOMIAL
initial_condition = 0.085711070864
[]
[SED]
order = CONSTANT
family = MONOMIAL
[]
[coolant_channel_htc]
order = CONSTANT
family = MONOMIAL
[]
[coolant_channel_hmode]
order = CONSTANT
family = MONOMIAL
[]
[coolant_channel_htype]
order = CONSTANT
family = MONOMIAL
[]
[critical_heat_flux]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[linear_heat_rate_profile]
type = PiecewiseLinear
data_file = pulse.csv
format = columns
[]
[flux]
type = ConstantFunction
value = 0.0
[]
[axial_peaking_factors]
type = ConstantFunction
value = 1
[]
[coolant_pressure_ramp]
type = ConstantFunction
value = 101325
[]
[linear_heat_generation_rate]
type = CompositeFunction
functions = 'linear_heat_rate_profile axial_peaking_factors'
[]
[axial_flux]
type = CompositeFunction
functions = 'flux axial_peaking_factors'
[]
[burnup_thermal_conductivity]
type = ConstantFunction
value = 1 # should be burnup / 950
[]
[radial_power_profile]
type = PiecewiseLinear
data_file = RadialPowerProfile.csv
format = columns
axis = X
[]
[radial_burnup_profile]
type = PiecewiseLinear
data_file = RadialBurnupProfile.csv
format = columns
axis = X
[]
[initial_burnup]
type = CompositeFunction
functions = 'burnup_thermal_conductivity radial_burnup_profile'
[]
[]
[Burnup]
[burnup]
block = 3
rod_ave_lin_pow = linear_heat_rate_profile
axial_power_profile = axial_peaking_factors
rpf_input = radial_power_profile
num_radial = 80
num_axial = 49
fuel_inner_radius = 0.0
fuel_outer_radius = 0.00527
fuel_volume_ratio = 1.0
isotopes = 'U235 U238 Pu239 Pu240 Pu241 Pu242'
isotope_fractions = '0.039 0.961 0.0 0.0 0.0 0.0'
[]
[]
[Physics/SolidMechanics/QuasiStatic]
add_variables = true
[fuel]
block = 3
strain = FINITE
incremental = true
eigenstrain_names = 'fuel_thermal_eigenstrain
fuel_volumetric_swelling_eigenstrain'
extra_vector_tags = 'ref'
generate_output = 'vonmises_stress hydrostatic_stress elastic_strain_xx
elastic_strain_yy elastic_strain_zz stress_xx stress_yy stress_zz strain_xx
strain_yy strain_zz'
decomposition_method = EigenSolution
[]
[clad]
block = 1
strain = FINITE
incremental = true
eigenstrain_names = 'clad_thermal_eigenstrain'
extra_vector_tags = 'ref'
generate_output = 'vonmises_stress elastic_strain_xx
elastic_strain_yy elastic_strain_zz stress_xx stress_yy stress_zz strain_xx
strain_yy strain_zz creep_strain_xx creep_strain_yy creep_strain_zz'
decomposition_method = EigenSolution
[]
[]
[Kernels]
[gravity]
type = Gravity
variable = disp_y
value = -9.81
extra_vector_tags = 'ref'
[]
[heat]
type = HeatConduction
variable = temp
extra_vector_tags = 'ref'
[]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temp
extra_vector_tags = 'ref'
[]
[heat_source]
type = NeutronHeatSource
fission_rate = fission_rate
variable = temp
block = 3
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[BuTC]
type = FunctionAux
block = 3
variable = BuTC
function = initial_burnup
[]
[pelletid]
type = PelletIdAux
block = 3
variable = pellet_id
number_pellets = 1
execute_on = initial
[]
[gap]
type = SpatialUserObjectAux
block = 3
variable = gap
execute_on = timestep_end
user_object = avg_gap
[]
[buavg]
type = SpatialUserObjectAux
block = 3
variable = buavg
execute_on = timestep_end
user_object = integral_burnup
[]
[fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
function = axial_flux
block = 1
execute_on = timestep_begin
[]
[fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = 1
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[]
[fuel_porosity]
type = PorosityAuxUO2
block = 3
variable = porosity
execute_on = timestep_begin
[]
[grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temperature = temp
execute_on = timestep_begin
[]
[gap_conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_conductivity
boundary = 10
[]
[SED]
type = MaterialRealAux
variable = SED
property = strain_energy_density
execute_on = timestep_end
block = 1
[]
[coolant_channel_htc]
type = MaterialRealAux
variable = coolant_channel_htc
property = coolant_channel_htc
boundary = 2
[]
[coolant_channel_hmode]
type = MaterialRealAux
variable = coolant_channel_hmode
property = coolant_channel_hmode
boundary = 2
[]
[coolant_channel_htype]
type = MaterialRealAux
variable = coolant_channel_htype
property = coolant_channel_htype
boundary = 2
[]
[critical_heat_flux]
type = MaterialRealAux
variable = critical_heat_flux
property = critical_heat_flux
boundary = 2
[]
[]
[Contact]
[pellet_clad_mechanical]
primary = 5
secondary = 10
penalty = 1e14
normalize_penalty = true
model = frictionless
friction_coefficient = 2.5
normal_smoothing_distance = 0.1
formulation = penalty
[]
[]
[ThermalContact]
[thermal_contact]
type = GasGapHeatTransfer
variable = temp
primary = 5
secondary = 10
roughness_coef = 3.2
roughness_primary = 1.5e-6
roughness_secondary = 1.75e-6
jump_distance_model = LANNING
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
initial_moles = initial_moles
gas_released = fission_gas_released
tangential_tolerance = 1.0e-6
quadrature = true
[]
[]
[BCs]
[no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[]
[no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 20
value = 0.0
[]
[no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[]
[Pressure]
[coolantPressure]
boundary = '1 2 3'
factor = 1
function = coolant_pressure_ramp
[]
[]
[PlenumPressure]
[plenumPressure]
boundary = '10 5'
initial_pressure = 0.3e6
startup_time = 0
R = 8.314462
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
initial_temperature = 293
[]
[]
[]
[CoolantChannel]
[clad_outer_surface]
boundary = '1 2 3'
variable = temp
inlet_temperature = 295
inlet_pressure = 0.1E6 # Pa
inlet_massflux = 100.0 # kg/m^2-sec
rod_diameter = 1.10e-2 # m
rod_pitch = 1.26e-2 # m
compute_enthalpy = false
chf_scalef = 5.0
htc_correlation_type = 9
chf_correlation_type = 5
[]
[]
[Materials]
[fuel_swelling]
type = UO2VolumetricSwellingEigenstrain
block = 3
burnup = burnup
initial_fuel_density = 10020.6066633
total_densification = 0.006
gas_swelling_model_type = SIFGRS
eigenstrain_name = 'fuel_volumetric_swelling_eigenstrain'
[]
[fuel_thermal]
type = UO2Thermal
thermal_conductivity_model = NFIR
block = 3
temperature = temp
burnup = BuTC
initial_porosity = 0.085711070864
[]
[fuel_elasticity_tensor]
type = UO2ElasticityTensor
block = 3
[]
[fuel_thermal_expansion]
type = UO2ThermalExpansionMartinEigenstrain
block = 3
stress_free_temperature = 293
eigenstrain_name = 'fuel_thermal_eigenstrain'
[]
[fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = '3'
[]
[clad_thermal]
type = ZryThermal
block = 1
temperature = temp
[]
[clad_inelastic_stress]
type = ComputeMultipleInelasticStress
block = 1
tangent_operator = elastic
inelastic_models ='plasticity'
[]
[clad_elasticity_tensor]
type = ZryElasticityTensor
block = 1
fast_neutron_fluence = fast_neutron_fluence
initial_fast_fluence = 8.40e25
cold_work_factor = 0.01
matpro_youngs_modulus = true
matpro_poissons_ratio = true
[]
## TODO: Creep is not active, but is transfered from the SM version.
## Adding creep causes the Peak Hoop strain to best match the FALCON
## results given by R. Montgomery and D. Sunderland. Only retaining
## plasticity matches the results from Wenfeng Liu, John Alvis, Robert Montgomery, and Ken Yueh
[clad_creep_stress]
type = ZryCreepLimbackHoppeUpdate
block = 1
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
initial_fast_fluence = 8.40e25
[]
[clad_thermal_expansion]
type = ZryThermalExpansionMATPROEigenstrain
block = 1
stress_free_temperature = 293.0
eigenstrain_name = 'clad_thermal_eigenstrain'
[]
[plasticity]
type = ZryPlasticityUpdate
block = 1
initial_fast_fluence = 8.40e25
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
cold_work_factor = .01
plasticity_model_type = MATPRO
output_properties = yield_stress
outputs = all
zircaloy_alloy_type = 4
[]
[fission_gas_release]
type = UO2Sifgrs
block = 3
temperature = temp
fission_rate = fission_rate
grain_radius = grain_radius
gbs_model = true
burnup = BuTC
transient_option = MICROCRACKING
[]
[clad_density]
type = StrainAdjustedDensity
block = 1
strain_free_density = 6551
[]
[fuel_density]
type = StrainAdjustedDensity
block = 3
strain_free_density = ${initial_fuel_density}
[]
[strain_energy_density]
type = StrainEnergyDensity
incremental = true
[]
[]
[UserObjects]
[avg_gap]
type = LayeredAverage
block = 3
variable = penetration
direction = y
num_layers = 48
[]
[pbz]
type = PelletBrittleZone
block = 3
pellet_id = pellet_id
temperature = temp
pellet_radius = 0.00527
number_pellets = 1
execute_on = timestep_begin
[]
[integral_burnup]
type = LayeredAverage
block = 3
variable = burnup
direction = y
num_layers = 1
[]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
l_max_its = 40
l_tol = 8e-3
nl_max_its = 40
nl_rel_tol = 1e-3
nl_abs_tol = 1e-10
dtmin = 0.00001
dtmax = 1.0
start_time = 0
end_time = 100
[TimeStepper]
type = IterationAdaptiveDT
dt = 0.0001
optimal_iterations = 200
linear_iteration_ratio = 100
timestep_limiting_function = linear_heat_rate_profile
max_function_change = 550000
force_step_every_function_point = true
[]
[]
[Dampers]
[limitT]
type = MaxIncrement
max_increment = 100.0
variable = temp
[]
[limitX]
type = MaxIncrement
max_increment = 1e-5
variable = disp_x
[]
[contactslip]
type = ContactSlipDamper
primary = 5
secondary = 8
min_damping_factor = 0.05
[]
[]
[Postprocessors]
[max_hoop_strain]
type = ElementExtremeValue
variable = strain_zz
block = 1
[]
[max_SED]
type = ElementExtremeValue
variable = SED
block = 1
[]
[average_grain_radius]
type = ElementAverageValue
block = 3
outputs = 'exodus'
variable = grain_radius
[]
[clad_inner_vol]
type = InternalVolume
boundary = 7
outputs = 'exodus'
execute_on = 'timestep_begin initial'
[]
[flux_from_clad]
type = SideDiffusiveFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
outputs = 'exodus'
[]
[flux_from_fuel]
type = SideDiffusiveFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
outputs = 'exodus'
[]
[rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = 3
[]
[rod_input_power]
type = FunctionValuePostprocessor
function = linear_heat_rate_profile
scale_factor = 0.106
[]
[average_fission_rate]
type = ElementAverageValue
variable = fission_rate
block = '3'
[]
[RAE]
type = RadialAverageEnthalpy
vector_postprocessor = rad_temp
radial_direction = x
axial_direction = y
axial_position = 0.0503
temperature_name = temp
[]
[peak_RAE]
type = TimeExtremeValue
postprocessor = RAE
[]
[]
[VectorPostprocessors]
[rad_temp]
type = NodalValueSampler
block = 3
sort_by = y
variable = temp
execute_on = timestep_end
outputs = dummy
[]
[]
[StandardLWRFuelRodOutputs]
fuel_pellet_blocks = 3
cladding_blocks = 1
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = true
csv = true
[chkfile]
type = CSV
show = 'average_centerline_fuel_temperature average_fission_rate fission_gas_released_percentage peak_RAE rod_total_power'
execute_on = 'FINAL'
[]
[console]
type = Console
max_rows = 25
output_linear = true
[]
[dummy]
type = CSV
enable = false
[]
[]
(assessment/LWR/validation/RIA_NSRR_FK/analysis/FK6/FK06.i)
# This file was created using BIF with the following inputs:
# FK06/FK06.var - md5sum: 5a60c05af67ba840a89caacf70b852e2
# pulse.tpl - md5sum: 37e5a6b8a0c63ad020906dada3472585
initial_fuel_density = 10310.8809782
[GlobalParams]
density = ${initial_fuel_density}
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11
a_lower = 0.01822
a_upper = 0.12422
temperature = temp
volumetric_locking_correction = false
[]
[Mesh]
coord_type = RZ
[smeared_pellet_mesh]
type = FuelPinMeshGenerator
clad_mesh_density = customize
pellet_mesh_density = customize
elem_type = QUAD8
ny_p = 100
nx_c = 4
ny_c = 100
nx_p = 12
ny_cu = 3
ny_cl = 3
bx_p = 0.75
clad_bot_gap_height = 0.00152
bottom_clad_height = 0.0167
top_clad_height = 0.0167
clad_thickness = 0.00086
pellet_outer_radius = 0.00527
clad_top_gap_height = 0.05265
pellet_height = 0.106
clad_gap_width = 1e-05
pellet_quantity = 1
[]
patch_size = 5
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
converge_on = 'disp_x disp_y temp'
[]
[Variables]
[temp]
initial_condition = 293
block = '1 3'
[]
[]
[AuxVariables]
[BuTC]
[]
[gap]
order = CONSTANT
family = MONOMIAL
[]
[fast_neutron_flux]
block = 1
[]
[fast_neutron_fluence]
block = 1
[]
[buavg]
order = CONSTANT
family = MONOMIAL
[]
[fission_rate]
initial_condition = 0
[]
[grain_radius]
block = 3
initial_condition = 5.96e-6
[]
[integral_burnup]
order = CONSTANT
family = MONOMIAL
[]
[pellet_id]
order = CONSTANT
family = MONOMIAL
block = 3
[]
[porosity]
order = CONSTANT
family = MONOMIAL
initial_condition = 0.0592261881186
[]
[SED]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[linear_heat_rate_profile]
type = PiecewiseLinear
data_file = pulse.csv
format = columns
[]
[flux]
type = ConstantFunction
value = 0.0
[]
[axial_peaking_factors]
type = ConstantFunction
value = 1
[]
[coolant_pressure_ramp]
type = ConstantFunction
value = 101325
[]
[linear_heat_generation_rate]
type = CompositeFunction
functions = 'linear_heat_rate_profile axial_peaking_factors'
[]
[axial_flux]
type = CompositeFunction
functions = 'flux axial_peaking_factors'
[]
[burnup_thermal_conductivity]
type = ConstantFunction
value = 1 # should be burnup / 950
[]
[radial_power_profile]
type = PiecewiseLinear
data_file = RadialPowerProfile.csv
format = columns
axis = X
[]
[radial_burnup_profile]
type = PiecewiseLinear
data_file = RadialBurnupProfile.csv
format = columns
axis = X
[]
[initial_burnup]
type = CompositeFunction
functions = 'burnup_thermal_conductivity radial_burnup_profile'
[]
[]
[Burnup]
[burnup]
block = 3
rod_ave_lin_pow = linear_heat_rate_profile
axial_power_profile = axial_peaking_factors
rpf_input = radial_power_profile
num_radial = 80
num_axial = 49
fuel_inner_radius = 0.0
fuel_outer_radius = 0.00527
fuel_volume_ratio = 1.0
isotopes = 'U235 U238 Pu239 Pu240 Pu241 Pu242'
isotope_fractions = '0.045 0.955 0.0 0.0 0.0 0.0'
[]
[]
[Physics/SolidMechanics/QuasiStatic]
add_variables = true
[fuel]
block = 3
strain = FINITE
incremental = true
eigenstrain_names = 'fuel_thermal_eigenstrain
fuel_volumetric_swelling_eigenstrain'
extra_vector_tags = 'ref'
generate_output = 'vonmises_stress hydrostatic_stress elastic_strain_xx
elastic_strain_yy '
'elastic_strain_zz stress_xx stress_yy stress_zz strain_xx
strain_yy '
'strain_zz'
decomposition_method = EigenSolution
[]
[clad]
block = 1
strain = FINITE
incremental = true
eigenstrain_names = 'clad_thermal_eigenstrain'
extra_vector_tags = 'ref'
generate_output = 'vonmises_stress elastic_strain_xx
elastic_strain_yy elastic_strain_zz '
'stress_xx stress_yy stress_zz strain_xx
strain_yy strain_zz '
'creep_strain_xx creep_strain_yy creep_strain_zz'
decomposition_method = EigenSolution
[]
[]
[Kernels]
[gravity]
type = Gravity
variable = disp_y
value = -9.81
block = '1 3'
extra_vector_tags = 'ref'
[]
[heat]
type = HeatConduction
variable = temp
block = '1 3'
extra_vector_tags = 'ref'
[]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temp
block = '1 3'
extra_vector_tags = 'ref'
[]
[heat_source]
type = NeutronHeatSource
fission_rate = fission_rate
variable = temp
block = 3
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[BuTC]
type = FunctionAux
block = 3
variable = BuTC
function = initial_burnup
[]
[pelletid]
type = PelletIdAux
block = 3
variable = pellet_id
number_pellets = 1
execute_on = initial
[]
[gap]
type = SpatialUserObjectAux
block = 3
variable = gap
execute_on = timestep_end
user_object = avg_gap
[]
[buavg]
type = SpatialUserObjectAux
block = 3
variable = buavg
execute_on = timestep_end
user_object = integral_burnup
[]
[fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
function = axial_flux
block = 1
execute_on = timestep_begin
[]
[fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = 1
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[]
[fuel_porosity]
type = PorosityAuxUO2
block = 3
variable = porosity
execute_on = timestep_begin
[]
[grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temperature = temp
execute_on = timestep_begin
[]
[SED]
type = MaterialRealAux
variable = SED
property = strain_energy_density
execute_on = timestep_end
block = 1
[]
[]
[Contact]
[mechanical]
model = coulomb
formulation = mortar
primary = 5
secondary = 10
friction_coefficient = 0.4
c_normal = 1e+12
c_tangential = 1e+24
tangential_lm_scaling = 1.0e-16
normal_lm_scaling = 1.0e-10
[]
[]
[ThermalContactMortar]
[thermal_contact]
secondary_variable = temp
primary_boundary = '5'
secondary_boundary = '10'
layer_thickness = layer_thickness_action
roughness_coef = 3.2
roughness_primary = 1.5e-6
roughness_secondary = 1.75e-6
jump_distance_model = LANNING
plenum_pressure = plenum_pressure
initial_moles = initial_moles
initial_gas_types = 'He Ar'
initial_fractions = '0.25 0.75'
gas_released = fission_gas_released
contact_pressure = mechanical_normal_lm
thermal_lm_scaling = 1.0e-2
[]
[]
[BCs]
[no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[]
[no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 20
value = 0.0
[]
[no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[]
[coolant_temp]
type = DirichletBC
boundary = '1 2 3'
variable = temp
value = 293
[]
[Pressure]
[coolantPressure]
boundary = '1 2 3'
factor = 1
function = coolant_pressure_ramp
[]
[]
[PlenumPressure]
[plenumPressure]
boundary = '10 5'
initial_pressure = 0.1e6
startup_time = 0
R = 8.314462
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
initial_temperature = 293
[]
[]
[]
[Materials]
[fuel_swelling]
type = UO2VolumetricSwellingEigenstrain
block = 3
burnup = burnup
initial_fuel_density = 10310.8809782
total_densification = 0.006
gas_swelling_model_type = SIFGRS
eigenstrain_name = 'fuel_volumetric_swelling_eigenstrain'
[]
[fuel_thermal]
type = UO2Thermal
thermal_conductivity_model = NFIR
block = 3
temperature = temp
burnup = BuTC
initial_porosity = 0.0592261881186
[]
[fuel_elasticity_tensor]
type = UO2ElasticityTensor
block = 3
[]
[fuel_thermal_expansion]
type = UO2ThermalExpansionMartinEigenstrain
block = 3
stress_free_temperature = 293
eigenstrain_name = 'fuel_thermal_eigenstrain'
[]
[fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = '3'
[]
[clad_thermal]
type = ZryThermal
block = 1
temperature = temp
[]
[clad_inelastic_stress]
type = ComputeMultipleInelasticStress
block = 1
tangent_operator = elastic
inelastic_models = 'plasticity'
[]
[clad_elasticity_tensor]
type = ZryElasticityTensor
block = 1
fast_neutron_fluence = fast_neutron_fluence
initial_fast_fluence = 1.30e26
cold_work_factor = 0.01
matpro_youngs_modulus = true
matpro_poissons_ratio = true
[]
## TODO: Creep is not active, but is transfered from the SM version.
## Adding creep causes the Peak Hoop strain to best match the FALCON
## results given by R. Montgomery and D. Sunderland. Only retaining
## plasticity matches the results from Wenfeng Liu, John Alvis, Robert Montgomery, and Ken Yueh
[clad_creep_stress]
type = ZryCreepLimbackHoppeUpdate
block = 1
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
initial_fast_fluence = 1.30e26
[]
[clad_thermal_expansion]
type = ZryThermalExpansionMATPROEigenstrain
block = 1
stress_free_temperature = 293.0
eigenstrain_name = 'clad_thermal_eigenstrain'
[]
[plasticity]
type = ZryPlasticityUpdate
block = 1
initial_fast_fluence = 1.30e26
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
cold_work_factor = .01
plasticity_model_type = MATPRO
output_properties = yield_stress
outputs = all
zircaloy_alloy_type = 4
[]
[fission_gas_release]
type = UO2Sifgrs
block = 3
temperature = temp
fission_rate = fission_rate
grain_radius = grain_radius
gbs_model = true
burnup = BuTC
transient_option = MICROCRACKING
[]
[clad_density]
type = StrainAdjustedDensity
block = 1
strain_free_density = 6551
[]
[fuel_density]
type = StrainAdjustedDensity
block = 3
strain_free_density = ${initial_fuel_density}
[]
[strain_energy_density]
type = StrainEnergyDensity
block = '1 3'
incremental = true
[]
[]
[UserObjects]
[avg_gap]
type = LayeredAverage
block = 3
variable = penetration
direction = y
num_layers = 48
[]
[pbz]
type = PelletBrittleZone
block = 3
pellet_id = pellet_id
temperature = temp
pellet_radius = 0.00527
number_pellets = 1
execute_on = timestep_begin
[]
[integral_burnup]
type = LayeredAverage
block = 3
variable = burnup
direction = y
num_layers = 1
[]
[]
[Executioner]
type = Transient
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-12'
line_search = 'none'
l_max_its = 40
l_tol = 8e-3
nl_max_its = 40
nl_rel_tol = 1e-3
nl_abs_tol = 1e-10
dtmin = 0.00001
dtmax = 1.0
start_time = 0
end_time = 100
[TimeStepper]
type = IterationAdaptiveDT
dt = 0.0001
optimal_iterations = 200
linear_iteration_ratio = 100
timestep_limiting_function = linear_heat_rate_profile
max_function_change = 500000
force_step_every_function_point = true
[]
[]
[Dampers]
[limitT]
type = MaxIncrement
max_increment = 200.0
variable = temp
[]
[limitX]
type = MaxIncrement
max_increment = 1e-4
variable = disp_x
[]
[]
[Postprocessors]
[max_hoop_strain]
type = ElementExtremeValue
variable = strain_zz
block = 1
[]
[max_SED]
type = ElementExtremeValue
variable = SED
block = 1
[]
[average_grain_radius]
type = ElementAverageValue
block = 3
outputs = 'exodus'
variable = grain_radius
[]
[clad_inner_vol]
type = InternalVolume
boundary = 7
outputs = 'exodus'
execute_on = 'timestep_begin initial'
[]
[flux_from_clad]
type = SideDiffusiveFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
outputs = 'exodus'
[]
[flux_from_fuel]
type = SideDiffusiveFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
outputs = 'exodus'
[]
[rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = 3
[]
[rod_input_power]
type = FunctionValuePostprocessor
function = linear_heat_rate_profile
scale_factor = 0.106
[]
[average_fission_rate]
type = ElementAverageValue
variable = fission_rate
block = '3'
[]
[RAE]
type = RadialAverageEnthalpy
vector_postprocessor = rad_temp
radial_direction = x
axial_direction = y
axial_position = 0.0503
temperature_name = temp
[]
[peak_RAE]
type = TimeExtremeValue
postprocessor = RAE
[]
[]
[VectorPostprocessors]
[rad_temp]
type = NodalValueSampler
block = 3
sort_by = y
variable = temp
execute_on = timestep_end
outputs = dummy
[]
[]
[StandardLWRFuelRodOutputs]
fuel_pellet_blocks = 3
cladding_blocks = 1
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = true
csv = true
[chkfile]
type = CSV
show = 'average_centerline_fuel_temperature average_fission_rate fission_gas_released_percentage '
'peak_RAE rod_total_power'
execute_on = 'FINAL'
[]
[console]
type = Console
max_rows = 25
output_linear = true
[]
[dummy]
type = CSV
enable = false
[]
[]
(test/tests/sifgrs/uo2/swelling_porosity.i)
# This test is for the fuel swelling and porosity computation in the Sifgrs fission gas behavior model for UO2.
# As complementary to the fission gas release process, the fission gas swelling is related to gas retention in the fuel in the form of bubbles. Through a direct description of the gas bubble development, the fission gas swelling and release are modeled as inherently coupled processes, on a physical basis. Only the fission gas swelling due to grain-face bubbles is considered.
# In a comprehensive treatment of fission gas release and fuel swelling, Sifgrs also incorporates empirical models for the swelling due to solid fission products and the fuel densification.
# Moreover, the different contributions to fuel porosity, namely, those due to fabrication pores, gas bubbles (thus associated with fission gas swelling) , and sintering (densification), are computed consistently with the swelling calculations. Then, the fuel total porosity in each mesh location can be tracked (auxkernel PorosityAuxUO2), and considered in the computation of other relevant material properties like the fuel thermal conductivity (material model UO2Thermal).
# This test aims at demonstrating the above model capabilities. The considered case involves a single-element cubic domain, constant temperature (1400 K) and fission rate (1e19 f/(m**3s)), and a irradiation time of 1e8 s. The Sifgrs model is adopted for calculating the fission gas release and fuel swelling. Starting from a typical as-fabricated value of 5%, the fuel porosity evolves consistently with the swelling. The fuel thermal conductivity is calculated as coupled with porosity, which allows taking into account the conductivity degradation due to progressive increase of gaseous porosity (see also the attached file regression_tests_sifgrs.xlsx).
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
[mesh]
type = FileMeshGenerator
file = cube_111.e
[]
[]
[Functions]
[Temp_func]
type = ParsedFunction
expression = '1400.'
[]
[Fiss_func]
type = ParsedFunction
expression = '1.e19'
[]
[]
[Variables]
[temp]
initial_condition = 1400.
[]
[disp_x]
[]
[disp_y]
[]
[disp_z]
[]
[]
[AuxVariables]
[fission_rate]
[]
[burnup]
[]
[porosity]
order = CONSTANT
family = MONOMIAL
initial_condition = 0.05
[]
[density]
order = CONSTANT
family = MONOMIAL
[]
[deltav_v0_bubble_GB]
order = CONSTANT
family = MONOMIAL
[]
[deltav_v0_sl]
order = CONSTANT
family = MONOMIAL
[]
[deltav_v0_dn]
order = CONSTANT
family = MONOMIAL
[]
[deltav_v0_swe]
order = CONSTANT
family = MONOMIAL
[]
[fabrication_porosity]
order = CONSTANT
family = MONOMIAL
[]
[gaseous_porosity]
order = CONSTANT
family = MONOMIAL
[]
[sintering_porosity]
order = CONSTANT
family = MONOMIAL
[]
[thermal_conductivity]
order = CONSTANT
family = MONOMIAL
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[pellets]
add_variables = false
strain = FINITE
eigenstrain_names = 'fuel_volumetric_strain'
volumetric_locking_correction = false
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temp
[]
[]
[AuxKernels]
[frate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
fission_rate_function = Fiss_func
execute_on = 'initial timestep_begin'
[]
[brnp]
type = BurnupAux
variable = burnup
fission_rate = fission_rate
density = 10417.
execute_on = 'initial timestep_begin'
[]
[por]
type = PorosityAuxUO2
variable = porosity
execute_on = 'initial linear'
[]
[rho]
type = MaterialRealAux
variable = density
property = density
execute_on = 'initial linear'
[]
[dvv0bd]
type = MaterialRealAux
variable = deltav_v0_bubble_GB
property = deltav_v0_bubble_GB
[]
[dvv0sl]
type = MaterialRealAux
variable = deltav_v0_sl
property = solid_swelling
[]
[dvv0dn]
type = MaterialRealAux
variable = deltav_v0_dn
property = densification
[]
[dvv0swe]
type = MaterialRealAux
variable = deltav_v0_swe
property = volumetric_swelling_strain
[]
[fabpor]
type = MaterialRealAux
variable = fabrication_porosity
property = fabrication_porosity
execute_on = 'initial linear'
[]
[gaspor]
type = MaterialRealAux
variable = gaseous_porosity
property = gaseous_porosity
[]
[sinpor]
type = MaterialRealAux
variable = sintering_porosity
property = sintering_porosity
[]
[thcond]
type = MaterialRealAux
variable = thermal_conductivity
property = thermal_conductivity
execute_on = 'initial linear'
[]
[]
[BCs]
[bottom_T]
type = FunctionDirichletBC
variable = temp
function = Temp_func
boundary = 1
[]
[x_disp]
type = DirichletBC
variable = disp_x
value = 0
boundary = 1
[]
[y_disp]
type = DirichletBC
variable = disp_y
value = 0
boundary = 2
[]
[z_disp]
type = DirichletBC
variable = disp_z
value = 0
boundary = 3
[]
[]
[Materials]
[fuel_thermal]
type = UO2Thermal
temperature = temp
burnup = burnup
initial_porosity = 0.05
porosity = porosity
thermal_conductivity_model = NFIR
[]
[fuel_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 2.0e11
poissons_ratio = 0.3
[]
[fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
[]
[fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
temperature = temp
burnup = burnup
initial_fuel_density = 10417.0
eigenstrain_name = fuel_volumetric_strain
[]
[density]
type = StrainAdjustedDensity
strain_free_density = 10417.0
[]
[fission_gas_release_and_swelling]
type = UO2Sifgrs
temperature = temp
fission_rate = fission_rate
burnup = burnup
initial_porosity = 0.05
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
l_tol = 1.e-04
nl_abs_tol = 1.e-05
nl_rel_tol = 1.e-05
start_time = 0.
num_steps = 100
dt = 1.e+06
end_time = 1.e+08
[]
[Postprocessors]
[fis_gas_generated]
type = ElementIntegralFisGasGeneratedSifgrs
[]
[fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
[]
[]
[Outputs]
[out]
type = Exodus
[]
[]
(test/tests/sifgrs/uo2/ad_swelling_porosity.i)
# This test is for the fuel swelling and porosity computation in the Sifgrs fission gas behavior model for UO2.
# As complementary to the fission gas release process, the fission gas swelling is related to gas retention in the fuel in the form of bubbles. Through a direct description of the gas bubble development, the fission gas swelling and release are modeled as inherently coupled processes, on a physical basis. Only the fission gas swelling due to grain-face bubbles is considered.
# In a comprehensive treatment of fission gas release and fuel swelling, Sifgrs also incorporates empirical models for the swelling due to solid fission products and the fuel densification.
# Moreover, the different contributions to fuel porosity, namely, those due to fabrication pores, gas bubbles (thus associated with fission gas swelling) , and sintering (densification), are computed consistently with the swelling calculations. Then, the fuel total porosity in each mesh location can be tracked (auxkernel PorosityAuxUO2), and considered in the computation of other relevant material properties like the fuel thermal conductivity (material model UO2Thermal).
# This test aims at demonstrating the above model capabilities. The considered case involves a single-element cubic domain, constant temperature (1400 K) and fission rate (1e19 f/(m**3s)), and a irradiation time of 1e8 s. The Sifgrs model is adopted for calculating the fission gas release and fuel swelling. Starting from a typical as-fabricated value of 5%, the fuel porosity evolves consistently with the swelling. The fuel thermal conductivity is calculated as coupled with porosity, which allows taking into account the conductivity degradation due to progressive increase of gaseous porosity (see also the attached file regression_tests_sifgrs.xlsx).
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
[mesh]
type = FileMeshGenerator
file = cube_111.e
[]
[]
[Functions]
[Temp_func]
type = ParsedFunction
expression = '1400.'
[]
[Fiss_func]
type = ParsedFunction
expression = '1.e19'
[]
[]
[Variables]
[temp]
initial_condition = 1400.
[]
[disp_x]
[]
[disp_y]
[]
[disp_z]
[]
[]
[AuxVariables]
[fission_rate]
[]
[burnup]
[]
[porosity]
order = CONSTANT
family = MONOMIAL
initial_condition = 0.05
[]
[density]
order = CONSTANT
family = MONOMIAL
[]
[deltav_v0_bubble_GB]
order = CONSTANT
family = MONOMIAL
[]
[deltav_v0_sl]
order = CONSTANT
family = MONOMIAL
[]
[deltav_v0_dn]
order = CONSTANT
family = MONOMIAL
[]
[deltav_v0_swe]
order = CONSTANT
family = MONOMIAL
[]
[fabrication_porosity]
order = CONSTANT
family = MONOMIAL
[]
[gaseous_porosity]
order = CONSTANT
family = MONOMIAL
[]
[sintering_porosity]
order = CONSTANT
family = MONOMIAL
[]
[thermal_conductivity]
order = CONSTANT
family = MONOMIAL
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[pellets]
use_automatic_differentiation = true
add_variables = false
strain = FINITE
eigenstrain_names = 'fuel_volumetric_strain'
volumetric_locking_correction = false
[]
[]
[Kernels]
[heat]
type = ADHeatConduction
variable = temp
[]
[]
[AuxKernels]
[frate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
fission_rate_function = Fiss_func
execute_on = 'initial timestep_begin'
[]
[brnp]
type = BurnupAux
variable = burnup
fission_rate = fission_rate
density = 10417.
execute_on = 'initial timestep_begin'
[]
[por]
type = ADPorosityAuxUO2
variable = porosity
execute_on = 'initial linear'
[]
[rho]
type = ADMaterialRealAux
variable = density
property = density
execute_on = 'initial linear'
[]
[dvv0bd]
type = ADMaterialRealAux
variable = deltav_v0_bubble_GB
property = deltav_v0_bubble_GB
[]
[dvv0sl]
type = ADMaterialRealAux
variable = deltav_v0_sl
property = solid_swelling
[]
[dvv0dn]
type = ADMaterialRealAux
variable = deltav_v0_dn
property = densification
[]
[dvv0swe]
type = ADMaterialRealAux
variable = deltav_v0_swe
property = volumetric_swelling_strain
[]
[fabpor]
type = ADMaterialRealAux
variable = fabrication_porosity
property = fabrication_porosity
execute_on = 'initial linear'
[]
[gaspor]
type = ADMaterialRealAux
variable = gaseous_porosity
property = gaseous_porosity
[]
[sinpor]
type = ADMaterialRealAux
variable = sintering_porosity
property = sintering_porosity
[]
[thcond]
type = ADMaterialRealAux
variable = thermal_conductivity
property = thermal_conductivity
execute_on = 'initial linear'
[]
[]
[BCs]
[bottom_T]
type = ADFunctionDirichletBC
variable = temp
function = Temp_func
boundary = 1
[]
[x_disp]
type = ADDirichletBC
variable = disp_x
value = 0
boundary = 1
[]
[y_disp]
type = ADDirichletBC
variable = disp_y
value = 0
boundary = 2
[]
[z_disp]
type = ADDirichletBC
variable = disp_z
value = 0
boundary = 3
[]
[]
[Materials]
[fuel_thermal]
type = ADUO2Thermal
temperature = temp
burnup = burnup
initial_porosity = 0.05
porosity = porosity
thermal_conductivity_model = NFIR
[]
[fuel_elasticity_tensor]
type = ADComputeIsotropicElasticityTensor
youngs_modulus = 2.0e11
poissons_ratio = 0.3
[]
[fuel_elastic_stress]
type = ADComputeFiniteStrainElasticStress
[]
[fuel_volumetric_swelling]
type = ADUO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
temperature = temp
burnup = burnup
initial_fuel_density = 10417.0
eigenstrain_name = fuel_volumetric_strain
[]
[density]
type = ADStrainAdjustedDensity
strain_free_density = 10417.0
[]
[fission_gas_release_and_swelling]
type = ADUO2Sifgrs
temperature = temp
fission_rate = fission_rate
burnup = burnup
initial_porosity = 0.05
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
l_tol = 1.e-04
nl_abs_tol = 1.e-05
nl_rel_tol = 1.e-05
start_time = 0.
num_steps = 100
dt = 1.e+06
end_time = 1.e+08
[]
[Postprocessors]
[fis_gas_generated]
type = ADElementIntegralFisGasGeneratedSifgrs
[]
[fis_gas_released]
type = ADElementIntegralFisGasReleasedSifgrs
[]
[]
[Outputs]
[out]
type = Exodus
[]
[]
(examples/multiapp/pin1.i)
## In this example the multiapp system is called to run another BISON simulation.
## (input1.i calls input2.i) An application of this might be multiple fuel pins
## in an assembly. This example also demonstrates the internal mesh maker.
initial_fuel_density = 10200
[GlobalParams]
density = ${initial_fuel_density}
displacements = 'disp_x disp_y'
order = FIRST
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
a_lower = 0.06951
a_upper = 3.72711
initial_porosity = 0.04
[]
# ==================================================== #
# Mesh (and Geometry, internally-meshed)
# ==================================================== #
[Mesh]
coord_type = RZ
[smeared_pellet_mesh]
type = FuelPinMeshGenerator
clad_mesh_density = customize
pellet_mesh_density = customize
clad_thickness = 0.0005
pellet_outer_radius = 0.0041
clad_bot_gap_height = 0.00152
clad_top_gap_height = 0.16
pellet_quantity = 1
pellet_height = 3.6576
clad_gap_width = 8.0e-05
bottom_clad_height = 0.0167
top_clad_height = 0.0167
nx_p = 6 # number of radial elements in the fuel
ny_p = 48 # number of axial elements in the fuel
nx_c = 3 # number of elements in the clad thickness
ny_c = 48 # number of elements in the axially in the clad
ny_cu = 1
ny_cl = 1
intervals = '0.03866 0.08211 0.08211 0.08211 0.08212 0.08211 0.08211 0.08211 0.0381 0.08065 0.08065 0.08065 0.08065 0.08065 0.08065 0.0381 0.08065 0.08065 0.08065 0.08065 0.08065 0.08065 0.0381 0.08065 0.08065 0.08065 0.08065 0.08065 0.08065 0.0381 0.08065 0.08065 0.08065 0.08065 0.08065 0.08065 0.0381 0.08065 0.08065 0.08065 0.08065 0.08065 0.08065 0.0381 0.079212 0.079212 0.079212 0.079212 0.079212'
elem_type = QUAD4
[]
partitioner = centroid
centroid_partitioner_direction = y
patch_size = 10
patch_update_strategy = auto
[]
[DefaultElementQuality]
aspect_ratio_upper_bound = 493
[]
# ==================================================== #
# Dimensions and Primary Variables
# ==================================================== #
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
group_variables = 'disp_x disp_y'
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[temp]
initial_condition = 3.000000e+02
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[pellets]
block = 3
add_variables = false
strain = FINITE
eigenstrain_names = 'fuel_relocation_strain fuel_thermal_strain fuel_volumetric_strain'
generate_output = 'vonmises_stress hydrostatic_stress stress_xx stress_yy stress_zz strain_xx strain_yy strain_zz'
extra_vector_tags = 'ref'
[]
[clad]
block = 1
add_variables = false
strain = FINITE
eigenstrain_names = 'clad_thermal_eigenstrain clad_irradiation_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz creep_strain_xx creep_strain_yy creep_strain_xy creep_strain_zz strain_xx strain_yy strain_zz'
extra_vector_tags = 'ref'
[]
[]
# ==================================================== #
# Auxiliary Variables
# ==================================================== #
[AuxVariables]
# ================================================== #
# Nodal Quantities
# ================================================== #
[htcl]
initial_condition = 500.0
[]
[htcv]
initial_condition = 0.0
[]
[Tl]
initial_condition = 565.0
[]
[Tv]
initial_condition = 565.0
[]
[burnup]
block = 3
[]
[fast_neutron_flux]
block = 1
[]
[fast_neutron_fluence]
block = 1
[]
[grain_radius]
block = 3
initial_condition = 5.240000e-06
[]
# ================================================== #
# Constant Monomial Quantities (Non-Mechanics)
# ================================================== #
[pellet_id]
order = CONSTANT
family = MONOMIAL
block = 3
[]
[axial_fission_rate]
order = CONSTANT
family = MONOMIAL
[]
[axial_burnup]
order = CONSTANT
family = MONOMIAL
[]
[axial_temperature]
order = CONSTANT
family = MONOMIAL
[]
[gap_conductivity]
order = CONSTANT
family = MONOMIAL
[]
[porosity]
order = CONSTANT
family = MONOMIAL
initial_condition = 0.04
[]
[]
# ==================================================== #
# Time- and Space-Dependent Source and BCs
# ==================================================== #
[Functions]
[linear_heat_rate_profile]
type = PiecewiseLinear
x = '-100 0 5000'
y = '0 0 25000'
scale_factor = 1
[]
[axial_peaking_factors]
type = ParsedFunction
expression = 1
[]
[coolant_temperature]
type = PiecewiseLinear
x = '-100 0'
y = '293 565'
axis = y
[]
[coolant_pressure_ramp]
# used in coolantPressure BC
type = PiecewiseLinear
scale_factor = 1
x = '0 10000.0'
y = '0 1.0'
[]
[]
# ==================================================== #
# Burnup Equation Set
# ==================================================== #
[Burnup]
[burnup]
block = 3
rod_ave_lin_pow = linear_heat_rate_profile
axial_power_profile = axial_peaking_factors
num_radial = 80
num_axial = 49
fuel_inner_radius = 0.0
fuel_outer_radius = 0.0041
fuel_volume_ratio = 1.0
isotopes = 'U235 U238'
isotope_fractions = '3.100e-02 9.690e-01'
RPF = RPF
[]
[]
# ==================================================== #
# Primary Kernels used in Heat Transfer
# ==================================================== #
[Kernels]
[gravity]
type = Gravity
variable = disp_y
value = -9.81
[]
[heat]
# gradient term in heat conduction equation
type = HeatConduction
variable = temp
extra_vector_tags = 'ref'
[]
[heat_ie]
# time term in heat conduction equation
type = HeatConductionTimeDerivative
variable = temp
extra_vector_tags = 'ref'
[]
[heat_source]
type = NeutronHeatSource
fission_rate = fission_rate
variable = temp
extra_vector_tags = 'ref'
block = 3
[]
[]
[AuxKernels]
# ================================================== #
# Pre-Defined Types
# ================================================== #
[pelletid]
type = PelletIdAux
block = 3
variable = pellet_id
number_pellets = 1
execute_on = initial
[]
[fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = 1
rod_ave_lin_pow = linear_heat_rate_profile
axial_power_profile = axial_peaking_factors
factor = 1.27e+14 # (n/m2-s per W/m)
execute_on = timestep_begin
[]
[fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = 1
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[]
[fuel_porosity]
type = PorosityAuxUO2
block = 3
variable = porosity
execute_on = linear
[]
[grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temperature = temp
execute_on = linear
[]
[gap_conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_conductivity
boundary = 10
execute_on = linear
[]
[conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_conductivity
boundary = 10
execute_on = linear
[]
# ================================================== #
# Other General Types
# ================================================== #
[axial_burnup]
type = SpatialUserObjectAux
block = 3
variable = axial_burnup
user_object = axial_burnup
execute_on = timestep_begin
[]
[axial_temperature]
type = SpatialUserObjectAux
block = 3
variable = axial_temperature
user_object = axial_temperature
execute_on = timestep_begin
[]
[]
# ==================================================== #
# Mechanical and Thermal Contact
# ==================================================== #
[Contact]
[pellet_clad_mechanical]
primary = 5
secondary = 10
penalty = 1e14
normalize_penalty = true
normal_smoothing_distance = 0.1
model = frictionless
formulation = Kinematic
[]
[]
[ThermalContact]
[thermal_contact]
type = GasGapHeatTransfer
variable = temp
primary = 5
secondary = 10
roughness_coef = 3.200000e+00
roughness_primary = 1.8e-06
roughness_secondary = 8e-07
jump_distance_model = LANNING
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
initial_moles = initial_moles
gas_released = fission_gas_released
tangential_tolerance = 0.0001
normal_smoothing_distance = 0.1
order = FIRST
[]
[]
[BCs]
[no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[]
[no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 20
value = 0.0
[]
[no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[]
[convective_clad_surface_bottom]
type = ConvectiveFluxBC
boundary = '1 2 3'
variable = temp
rate = 38200.0 #convection coefficient (h)
initial = 565.0
final = 585.0
duration = 1.0e4 #duration of initial power ramp
[]
[Pressure]
[coolantPressure]
boundary = '1 2 3'
factor = 1.55132e+07
function = coolant_pressure_ramp
[]
[]
[PlenumPressure]
# apply plenum pressure on clad inner walls and pellet surfaces
[plenumPressure]
boundary = 9
initial_pressure = 1.99948e+06
startup_time = 0
R = 8.314462
output_initial_moles = initial_moles
temperature = ave_temp_interior
volume = gas_volume
material_input = fission_gas_released
output = plenum_pressure
[]
[]
[]
# ==================================================== #
# Specification of Material Properties
# ==================================================== #
[Materials]
[fuel_thermal]
type = UO2Thermal
thermal_conductivity_model = NFIR
block = 3
temperature = temp
burnup = burnup
[]
[fuel_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = 3
youngs_modulus = 2.0e11
poissons_ratio = 0.345
[]
[fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = 3
[]
[fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = 3
thermal_expansion_coeff = 10.0e-6
temperature = temp
stress_free_temperature = 300.0
eigenstrain_name = fuel_thermal_strain
[]
[fuel_relocation]
type = UO2RelocationEigenstrain
block = 3
burnup = burnup
rod_ave_lin_pow = linear_heat_rate_profile
axial_power_profile = axial_peaking_factors
relocation_activation1 = 5000
relocation_model = ESCORE_modified
eigenstrain_name = fuel_relocation_strain
diameter = 0.008192
diametral_gap =0.000168
# Average burnup at which fuel comes into contact with clad at 25kW/m
burnup_relocation_stop = 0.0315
[]
[fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
block = 3
temperature = temp
burnup = burnup
initial_fuel_density = 10200.0
eigenstrain_name = fuel_volumetric_strain
total_densification = 0.01
[]
[fission_gas_release]
type = UO2Sifgrs
axial_power_profile = axial_peaking_factors
block = 3
burnup = burnup
fission_rate = fission_rate
hydrostatic_stress = hydrostatic_stress
grain_radius = grain_radius
pellet_brittle_zone = pbz
pellet_id = pellet_id
rod_ave_lin_pow = linear_heat_rate_profile
temperature = temp
[]
[fuel_density]
type = StrainAdjustedDensity
block = 3
strain_free_density = ${initial_fuel_density}
[]
[clad_thermal]
type = ZryThermal
block = 1
temperature = temp
[]
[clad_elasticity_tensor]
type = ZryElasticityTensor
block = 1
[]
[clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'clad_zrycreep'
block = 1
[]
[clad_zrycreep]
type = ZryCreepLimbackHoppeUpdate
block = 1
temperature = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
model_irradiation_creep = true
model_primary_creep = true
model_thermal_creep = true
[]
[thermal_expansion]
type = ZryThermalExpansionMATPROEigenstrain
block = 1
temperature = temp
stress_free_temperature = 300.0
eigenstrain_name = clad_thermal_eigenstrain
[]
[irradiation_swelling]
type = ZryIrradiationGrowthEigenstrain
block = 1
fast_neutron_fluence = fast_neutron_fluence
zircaloy_material_type = stress_relief_annealed
eigenstrain_name = clad_irradiation_strain
[]
[clad_density]
type = StrainAdjustedDensity
block = 1
strain_free_density = 7833
[]
[]
# ==================================================== #
# User Objects for Output Processing
# ==================================================== #
[UserObjects]
[pbz]
type = PelletBrittleZone
block = 3
pellet_id = pellet_id
temperature = temp
pellet_radius = 0.0041
number_pellets = 1
execute_on = linear
[]
[averagefissionrate]
type = LayeredAverage
block = 3
variable = fission_rate
direction = y
num_layers = 49
execute_on = timestep_begin
[]
[average_temp]
type = LayeredAverage
block = 3
variable = temp
direction = y
num_layers = 49
execute_on = timestep_begin
[]
[averagebu]
type = LayeredAverage
block = 3
variable = burnup
direction = y
num_layers = 49
execute_on = timestep_begin
[]
[casl_average_fission_rate]
variable = fission_rate
type = LayeredAverage
block = 3
direction = y
bounds = '0.01822 0.05688 0.13899 0.2211 0.30321 0.38533 0.46744 0.54955 0.63166 0.66976 0.75041 0.83106 0.91171 0.99236 1.07301 1.15366 1.19176 1.27241 1.35306 1.43371 1.51436 1.59501 1.67566 1.71376 1.79441 1.87506 1.95571 2.03636 2.11701 2.19766 2.23576 2.31641 2.39706 2.47771 2.55836 2.63901 2.71966 2.75776 2.83841 2.91906 2.99971 3.08036 3.16101 3.24166 3.27976 3.35897 3.43818 3.5174 3.59661 3.67582'
execute_on = timestep_begin
[]
[surface_temp]
type = LayeredSideAverage
boundary = 2
variable = temp
direction = y
bounds = '0.01822 0.05688 0.13899 0.2211 0.30321 0.38533 0.46744 0.54955 0.63166 0.66976 0.75041 0.83106 0.91171 0.99236 1.07301 1.15366 1.19176 1.27241 1.35306 1.43371 1.51436 1.59501 1.67566 1.71376 1.79441 1.87506 1.95571 2.03636 2.11701 2.19766 2.23576 2.31641 2.39706 2.47771 2.55836 2.63901 2.71966 2.75776 2.83841 2.91906 2.99971 3.08036 3.16101 3.24166 3.27976 3.35897 3.43818 3.5174 3.59661 3.67582'
use_displaced_mesh = 0
execute_on = timestep_begin
[]
[axial_temperature]
type = LayeredAverage
block = 3
variable = temp
direction = y
bounds = '0.01822 0.05688 0.13899 0.2211 0.30321 0.38533 0.46744 0.54955 0.63166 0.66976 0.75041 0.83106 0.91171 0.99236 1.07301 1.15366 1.19176 1.27241 1.35306 1.43371 1.51436 1.59501 1.67566 1.71376 1.79441 1.87506 1.95571 2.03636 2.11701 2.19766 2.23576 2.31641 2.39706 2.47771 2.55836 2.63901 2.71966 2.75776 2.83841 2.91906 2.99971 3.08036 3.16101 3.24166 3.27976 3.35897 3.43818 3.5174 3.59661 3.67582'
execute_on = timestep_begin
[]
[axial_burnup]
type = LayeredAverage
block = 3
variable = burnup
direction = y
bounds = '0.01822 0.05688 0.13899 0.2211 0.30321 0.38533 0.46744 0.54955 0.63166 0.66976 0.75041 0.83106 0.91171 0.99236 1.07301 1.15366 1.19176 1.27241 1.35306 1.43371 1.51436 1.59501 1.67566 1.71376 1.79441 1.87506 1.95571 2.03636 2.11701 2.19766 2.23576 2.31641 2.39706 2.47771 2.55836 2.63901 2.71966 2.75776 2.83841 2.91906 2.99971 3.08036 3.16101 3.24166 3.27976 3.35897 3.43818 3.5174 3.59661 3.67582'
execute_on = timestep_begin
[]
[integral_temperature]
type = LayeredAverage
block = 3
variable = temp
direction = y
num_layers = 1
execute_on = timestep_begin
[]
[integral_burnup]
type = LayeredAverage
block = 3
variable = burnup
direction = y
num_layers = 1
execute_on = timestep_begin
[]
[average]
type = LayeredAverage
block = 3
variable = temp
direction = y
bounds = '0.01822 0.05688 0.13899 0.2211 0.30321 0.38533 0.46744 0.54955 0.63166 0.66976 0.75041 0.83106 0.91171 0.99236 1.07301 1.15366 1.19176 1.27241 1.35306 1.43371 1.51436 1.59501 1.67566 1.71376 1.79441 1.87506 1.95571 2.03636 2.11701 2.19766 2.23576 2.31641 2.39706 2.47771 2.55836 2.63901 2.71966 2.75776 2.83841 2.91906 2.99971 3.08036 3.16101 3.24166 3.27976 3.35897 3.43818 3.5174 3.59661 3.67582'
execute_on = timestep_begin
[]
[axial_surface_temperature]
type = LayeredSideAverage
boundary = 2
variable = temp
direction = y
bounds = '0.01822 0.05688 0.13899 0.2211 0.30321 0.38533 0.46744 0.54955 0.63166 0.66976 0.75041 0.83106 0.91171 0.99236 1.07301 1.15366 1.19176 1.27241 1.35306 1.43371 1.51436 1.59501 1.67566 1.71376 1.79441 1.87506 1.95571 2.03636 2.11701 2.19766 2.23576 2.31641 2.39706 2.47771 2.55836 2.63901 2.71966 2.75776 2.83841 2.91906 2.99971 3.08036 3.16101 3.24166 3.27976 3.35897 3.43818 3.5174 3.59661 3.67582'
use_displaced_mesh = 0
execute_on = timestep_begin
[]
[rod_avg_fast_fluence]
type = LayeredSideAverage
boundary = 2
variable = fast_neutron_fluence
direction = y
num_layers = 1
use_displaced_mesh = 0
execute_on = timestep_begin
[]
[casl_clad_surface_heat_flux]
type = LayeredSideDiffusiveFluxAverage
variable = temp
boundary = 2
direction = y
bounds = '0.01822 0.05688 0.13899 0.2211 0.30321 0.38533 0.46744 0.54955 0.63166 0.66976 0.75041 0.83106 0.91171 0.99236 1.07301 1.15366 1.19176 1.27241 1.35306 1.43371 1.51436 1.59501 1.67566 1.71376 1.79441 1.87506 1.95571 2.03636 2.11701 2.19766 2.23576 2.31641 2.39706 2.47771 2.55836 2.63901 2.71966 2.75776 2.83841 2.91906 2.99971 3.08036 3.16101 3.24166 3.27976 3.35897 3.43818 3.5174 3.59661 3.67582'
diffusivity = thermal_conductivity
execute_on = timestep_begin
[]
[]
[Dampers]
[BoundingValueNodalDamper]
type = BoundingValueNodalDamper
variable = temp
max_value = 3200
min_value = 293
[]
[]
# ==================================================== #
# Solver Options
# ==================================================== #
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package -ksp_gmres_restart'
petsc_options_value = 'lu superlu_dist 51'
verbose = true
line_search = 'none'
# controls for linear iterations
l_max_its = 100
l_tol = 8e-3
# controls for nonlinear iterations
nl_max_its = 15
nl_rel_tol = 1e-6
nl_abs_tol = 1e-10
# ================================================== #
# Time Step Control
# ================================================== #
start_time = -100
end_time = 5e6
dtmin = 0.1
dtmax = 1e6
dt = 10
[TimeStepper]
type = IterationAdaptiveDT
dt = 1.0e2
optimal_iterations = 1000
time_t = '0 1.0e4 53200 1.0e5'
time_dt = '1.0e3 1.0e3 1.0e3 1.0e5'
[]
[]
[Postprocessors]
# ================================================== #
# Required for Fission Gas Release Models
# ================================================== #
[ave_temp_interior]
# used to compute temperature of plenum
type = SideAverageValue
boundary = 9
variable = temp
outputs = exodus
execute_on = 'initial linear'
[]
[fission_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = 3
outputs = exodus
execute_on = linear
[]
[gas_volume]
type = InternalVolume
boundary = 9
outputs = exodus
execute_on = 'initial linear'
[]
[fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = 3
outputs = exodus
execute_on = linear
[]
[fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = 3
outputs = exodus
execute_on = linear
[]
[_dt]
type = TimestepSize
execute_on = 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
[]
[]
# ==================================================== #
# Location and format of output
# ==================================================== #
[Outputs]
perf_graph = true
exodus = true
file_base = pin1_output
time_step_interval = 1
[console]
type = Console
max_rows = 25
output_linear = true
[]
[]
[MultiApps]
[sub]
type = TransientMultiApp
app_type = BisonApp
execute_on = timestep_end
positions = '10 0 0'
input_files = 'pin2.i'
[]
[]
(test/tests/solid_mechanics/uo2_eigenstrains/uo2_vswelling/gas_only3.i)
#
# Test of fission product swelling - SIFGRS_IG option
#
# The first step has zero power. The porosity should be 0.05. Since the first step has zero power, gas swelling should be 0.
#
[GlobalParams]
density = 10430.0
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
[gen]
type = ExamplePatchMeshGenerator
dim = 3
[]
[]
[Functions]
[power]
type = PiecewiseLinear
x = '0 0.1 0.2'
y = '0 0 2e16'
[]
[]
[AuxVariables]
[temperature]
order = FIRST
family = LAGRANGE
initial_condition = 1400
[]
[burnup]
order = FIRST
family = LAGRANGE
[]
[gas_swell]
order = CONSTANT
family = MONOMIAL
[]
[grain_radius]
initial_condition = 10e-6
[]
[porosity]
order = CONSTANT
family = MONOMIAL
[]
[volumetric_strain]
order = CONSTANT
family = MONOMIAL
[]
[initial_bubble_GB_volume_fraction]
order = CONSTANT
family = MONOMIAL
[]
[]
[Burnup]
[burnup]
block = '1 2 3 4 5 6 7'
rod_ave_lin_pow = power
axial_power_profile = '1e0'
num_radial = 80
num_axial = 11
rpf_active = false
fuel_volume_ratio = 1
a_lower = 0
a_upper = 1
fuel_inner_radius = 0
fuel_outer_radius = 1
[]
[]
[Physics/SolidMechanics/QuasiStatic/all]
add_variables = true
eigenstrain_names = swelling
strain = finite
[]
[AuxKernels]
[gas_swell]
type = MaterialRealAux
variable = gas_swell
property = gas_swelling
execute_on = timestep_end
[]
[grain_radius]
type = GrainRadiusAux
block = '1 2 3 4 5 6 7'
variable = grain_radius
temperature = temperature
execute_on = linear
[]
[volumetric_strain]
type = RankTwoScalarAux
rank_two_tensor = total_strain
variable = volumetric_strain
scalar_type = VolumetricStrain
execute_on = timestep_end
[]
[por]
type = PorosityAuxUO2
variable = porosity
execute_on = 'initial timestep_end'
[]
[ibvf]
type = MaterialRealAux
variable = initial_bubble_GB_volume_fraction
property = initial_bubble_GB_volume_fraction
execute_on = 'initial timestep_end'
[]
[]
[BCs]
[bottom_x]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[]
[bottom_y]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[]
[bottom_z]
type = DirichletBC
variable = disp_z
boundary = back
value = 0.0
[]
[]
[Materials]
[fuel_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = '1 2 3 4 5 6 7'
youngs_modulus = 1
poissons_ratio = 0.3
[]
[fuel_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS_IG
block = '1 2 3 4 5 6 7'
temperature = temperature
burnup_function = burnup
complete_burnup = 5
total_densification = 0.01
initial_fuel_density = 10430.0
include_gas_swelling = true
include_solid_swelling = false
include_densification = false
eigenstrain_name = swelling
[]
[fuel_stress]
type = ComputeFiniteStrainElasticStress
block = '1 2 3 4 5 6 7'
[]
[fission_gas_release]
type = UO2Sifgrs
block = '1 2 3 4 5 6 7'
temperature = temperature
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
ig_bubble_model = NUCLEATION_RESOLUTION
[]
[thermal]
type = UO2Thermal
block = '1 2 3 4 5 6 7'
thermal_conductivity_model = FINK_LUCUTA
temperature = temperature
burnup_function = burnup
[]
[density]
type = StrainAdjustedDensity
block = '1 2 3 4 5 6 7'
strain_free_density = 10430.0
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew '
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
l_max_its = 60
nl_rel_tol = 1e-8
nl_abs_tol = 1e-10
l_tol = 1e-5
start_time = 0.0
dt = 0.1
num_steps = 11
[]
[Postprocessors]
[volume]
type = InternalVolume
boundary = '1 2 3 4 5 6'
execute_on = 'initial timestep_end'
[]
[ave_burnup]
type = ElementAverageValue
variable = burnup
block = 4
[]
[volumetric_strain]
type = ElementAverageValue
variable = volumetric_strain
[]
[porosity]
type = ElementAverageValue
variable = porosity
[]
[initial_bubble_GB_volume_fraction]
type = ElementAverageValue
variable = initial_bubble_GB_volume_fraction
[]
[]
[Outputs]
exodus = true
hide = 'disp_x disp_y disp_z temperature'
[]
(assessment/LWR/validation/RIA_NSRR_FK/analysis/FK4/FK04.i)
# This file was created using BIF with the following inputs:
# FK04/FK04.var - md5sum: 789d603cfbdaaeb2625ea98056214f6f
# pulse.tpl - md5sum: 37e5a6b8a0c63ad020906dada3472585
initial_fuel_density = 10310.8809782
[GlobalParams]
density = ${initial_fuel_density}
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11
a_lower = 0.01822
a_upper = 0.12422
temperature = temp
volumetric_locking_correction = false
[]
[Mesh]
coord_type = RZ
[smeared_pellet_mesh]
type = FuelPinMeshGenerator
clad_mesh_density = customize
pellet_mesh_density = customize
elem_type = QUAD8
ny_p = 100
nx_c = 4
ny_c = 100
nx_p = 12
ny_cu = 3
ny_cl = 3
bx_p = 0.75
clad_bot_gap_height = 0.00152
bottom_clad_height = 0.0167
top_clad_height = 0.0167
clad_thickness = 0.00086
pellet_outer_radius = 0.00527
clad_top_gap_height = 0.053182
pellet_height = 0.106
clad_gap_width = 1e-05
pellet_quantity = 1
[]
patch_size = 5
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
converge_on = 'disp_x disp_y temp'
[]
[Variables]
[temp]
block = '1 3'
initial_condition = 293
[]
[]
[AuxVariables]
[BuTC]
[]
[gap]
order = CONSTANT
family = MONOMIAL
[]
[fast_neutron_flux]
block = 1
[]
[fast_neutron_fluence]
block = 1
[]
[buavg]
order = CONSTANT
family = MONOMIAL
[]
[fission_rate]
initial_condition = 0
[]
[grain_radius]
block = 3
initial_condition = 5.96e-6
[]
[integral_burnup]
order = CONSTANT
family = MONOMIAL
[]
[pellet_id]
order = CONSTANT
family = MONOMIAL
block = 3
[]
[porosity]
order = CONSTANT
family = MONOMIAL
initial_condition = 0.0592261881186
[]
[SED]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[linear_heat_rate_profile]
type = PiecewiseLinear
data_file = pulse.csv
format = columns
[]
[flux]
type = ConstantFunction
value = 0.0
[]
[axial_peaking_factors]
type = ConstantFunction
value = 1
[]
[coolant_pressure_ramp]
type = ConstantFunction
value = 101325
[]
[linear_heat_generation_rate]
type = CompositeFunction
functions = 'linear_heat_rate_profile axial_peaking_factors'
[]
[axial_flux]
type = CompositeFunction
functions = 'flux axial_peaking_factors'
[]
[burnup_thermal_conductivity]
type = ConstantFunction
value = 1 # should be burnup / 950
[]
[radial_power_profile]
type = PiecewiseLinear
data_file = RadialPowerProfile.csv
format = columns
axis = X
[]
[radial_burnup_profile]
type = PiecewiseLinear
data_file = RadialBurnupProfile.csv
format = columns
axis = X
[]
[initial_burnup]
type = CompositeFunction
functions = 'burnup_thermal_conductivity radial_burnup_profile'
[]
[]
[Burnup]
[burnup]
block = 3
rod_ave_lin_pow = linear_heat_rate_profile
axial_power_profile = axial_peaking_factors
rpf_input = radial_power_profile
num_radial = 80
num_axial = 49
fuel_inner_radius = 0.0
fuel_outer_radius = 0.00527
fuel_volume_ratio = 1.0
isotopes = 'U235 U238 Pu239 Pu240 Pu241 Pu242'
isotope_fractions = '0.045 0.955 0.0 0.0 0.0 0.0'
[]
[]
[Physics/SolidMechanics/QuasiStatic]
add_variables = true
[fuel]
block = 3
strain = FINITE
incremental = true
eigenstrain_names = 'fuel_thermal_eigenstrain
fuel_volumetric_swelling_eigenstrain'
extra_vector_tags = 'ref'
generate_output = 'vonmises_stress hydrostatic_stress elastic_strain_xx
elastic_strain_yy elastic_strain_zz stress_xx stress_yy stress_zz strain_xx
strain_yy strain_zz'
decomposition_method = EigenSolution
[]
[clad]
block = 1
strain = FINITE
incremental = true
eigenstrain_names = 'clad_thermal_eigenstrain'
extra_vector_tags = 'ref'
generate_output = 'vonmises_stress elastic_strain_xx
elastic_strain_yy elastic_strain_zz stress_xx stress_yy stress_zz strain_xx
strain_yy strain_zz creep_strain_xx creep_strain_yy creep_strain_zz'
decomposition_method = EigenSolution
[]
[]
[Kernels]
[gravity]
type = Gravity
variable = disp_y
value = -9.81
block = '1 3'
extra_vector_tags = 'ref'
[]
[heat]
type = HeatConduction
variable = temp
block = '1 3'
extra_vector_tags = 'ref'
[]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temp
block = '1 3'
extra_vector_tags = 'ref'
[]
[heat_source]
type = NeutronHeatSource
fission_rate = fission_rate
variable = temp
block = 3
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[BuTC]
type = FunctionAux
block = 3
variable = BuTC
function = initial_burnup
[]
[pelletid]
type = PelletIdAux
block = 3
variable = pellet_id
number_pellets = 1
execute_on = initial
[]
[gap]
type = SpatialUserObjectAux
block = 3
variable = gap
execute_on = timestep_end
user_object = avg_gap
[]
[buavg]
type = SpatialUserObjectAux
block = 3
variable = buavg
execute_on = timestep_end
user_object = integral_burnup
[]
[fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
function = axial_flux
block = 1
execute_on = timestep_begin
[]
[fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = 1
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[]
[fuel_porosity]
type = PorosityAuxUO2
block = 3
variable = porosity
execute_on = timestep_begin
[]
[grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temperature = temp
execute_on = timestep_begin
[]
[SED]
type = MaterialRealAux
variable = SED
property = strain_energy_density
execute_on = timestep_end
block = 1
[]
[]
[Contact]
[mechanical]
model = coulomb
formulation = mortar
primary = 5
secondary = 10
friction_coefficient = 0.4
c_normal = 1e+12
c_tangential = 1e+24
tangential_lm_scaling = 1.0e-16
normal_lm_scaling = 1.0e-10
[]
[]
[ThermalContactMortar]
[thermal_contact]
secondary_variable = temp
primary_boundary = '5'
secondary_boundary = '10'
layer_thickness = layer_thickness_action
roughness_coef = 3.2
roughness_primary = 1.5e-6
roughness_secondary = 1.75e-6
jump_distance_model = LANNING
plenum_pressure = plenum_pressure
initial_moles = initial_moles
gas_released = fission_gas_released
contact_pressure = mechanical_normal_lm
thermal_lm_scaling = 1.0e-2
[]
[]
[BCs]
[no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[]
[no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 20
value = 0.0
[]
[no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[]
[coolant_temp]
type = DirichletBC
boundary = '1 2 3'
variable = temp
value = 293
[]
[Pressure]
[coolantPressure]
boundary = '1 2 3'
factor = 1
function = coolant_pressure_ramp
[]
[]
[PlenumPressure]
[plenumPressure]
boundary = '10 5'
initial_pressure = 0.5e6
startup_time = 0
R = 8.314462
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
initial_temperature = 293
[]
[]
[]
[Materials]
[fuel_swelling]
type = UO2VolumetricSwellingEigenstrain
block = 3
burnup = burnup
initial_fuel_density = 10310.8809782
total_densification = 0.006
gas_swelling_model_type = SIFGRS
eigenstrain_name = 'fuel_volumetric_swelling_eigenstrain'
[]
[fuel_thermal]
type = UO2Thermal
thermal_conductivity_model = NFIR
block = 3
temperature = temp
burnup = BuTC
initial_porosity = 0.0592261881186
[]
[fuel_elasticity_tensor]
type = UO2ElasticityTensor
block = 3
[]
[fuel_thermal_expansion]
type = UO2ThermalExpansionMartinEigenstrain
block = 3
stress_free_temperature = 293
eigenstrain_name = 'fuel_thermal_eigenstrain'
[]
[fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = '3'
[]
[clad_thermal]
type = ZryThermal
block = 1
temperature = temp
[]
[clad_inelastic_stress]
type = ComputeMultipleInelasticStress
block = 1
tangent_operator = elastic
inelastic_models ='plasticity'
[]
[clad_elasticity_tensor]
type = ZryElasticityTensor
block = 1
fast_neutron_fluence = fast_neutron_fluence
initial_fast_fluence = 1.20e26
cold_work_factor = 0.01
matpro_youngs_modulus = true
matpro_poissons_ratio = true
[]
## TODO: Creep is not active, but is transfered from the SM version.
## Adding creep causes the Peak Hoop strain to best match the FALCON
## results given by R. Montgomery and D. Sunderland. Only retaining
## plasticity matches the results from Wenfeng Liu, John Alvis, Robert Montgomery, and Ken Yueh
[clad_creep_stress]
type = ZryCreepLimbackHoppeUpdate
block = 1
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
initial_fast_fluence = 1.20e26
[]
[clad_thermal_expansion]
type = ZryThermalExpansionMATPROEigenstrain
block = 1
stress_free_temperature = 293.0
eigenstrain_name = 'clad_thermal_eigenstrain'
[]
[plasticity]
type = ZryPlasticityUpdate
block = 1
initial_fast_fluence = 1.20e26
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
cold_work_factor = .01
plasticity_model_type = MATPRO
output_properties = yield_stress
outputs = all
zircaloy_alloy_type = 4
[]
[fission_gas_release]
type = UO2Sifgrs
block = 3
temperature = temp
fission_rate = fission_rate
grain_radius = grain_radius
gbs_model = true
burnup = BuTC
transient_option = MICROCRACKING
[]
[clad_density]
type = StrainAdjustedDensity
block = 1
strain_free_density = 6551
[]
[fuel_density]
type = StrainAdjustedDensity
block = 3
strain_free_density = ${initial_fuel_density}
[]
[strain_energy_density]
type = StrainEnergyDensity
block = '1 3'
incremental = true
[]
[]
[UserObjects]
[avg_gap]
type = LayeredAverage
block = 3
variable = penetration
direction = y
num_layers = 48
[]
[pbz]
type = PelletBrittleZone
block = 3
pellet_id = pellet_id
temperature = temp
pellet_radius = 0.00527
number_pellets = 1
execute_on = timestep_begin
[]
[integral_burnup]
type = LayeredAverage
block = 3
variable = burnup
direction = y
num_layers = 1
[]
[]
[Executioner]
type = Transient
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-12'
line_search = 'none'
l_max_its = 40
l_tol = 8e-3
nl_max_its = 40
nl_rel_tol = 1e-3
nl_abs_tol = 1e-10
dtmin = 0.00001
dtmax = 1.0
start_time = 0
end_time = 100
[TimeStepper]
type = IterationAdaptiveDT
dt = 0.0001
optimal_iterations = 200
linear_iteration_ratio = 100
timestep_limiting_function = linear_heat_rate_profile
max_function_change = 500000
force_step_every_function_point = true
[]
[]
[Dampers]
[limitT]
type = MaxIncrement
max_increment = 200.0
variable = temp
[]
[limitX]
type = MaxIncrement
max_increment = 1e-4
variable = disp_x
[]
[]
[Postprocessors]
[max_hoop_strain]
type = ElementExtremeValue
variable = strain_zz
block = 1
[]
[max_SED]
type = ElementExtremeValue
variable = SED
block = 1
[]
[average_grain_radius]
type = ElementAverageValue
block = 3
outputs = 'exodus'
variable = grain_radius
[]
[clad_inner_vol]
type = InternalVolume
boundary = 7
outputs = 'exodus'
execute_on = 'timestep_begin initial'
[]
[flux_from_clad]
type = SideDiffusiveFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
outputs = 'exodus'
[]
[flux_from_fuel]
type = SideDiffusiveFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
outputs = 'exodus'
[]
[rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = 3
[]
[rod_input_power]
type = FunctionValuePostprocessor
function = linear_heat_rate_profile
scale_factor = 0.106
[]
[average_fission_rate]
type = ElementAverageValue
variable = fission_rate
block = '3'
[]
[RAE]
type = RadialAverageEnthalpy
vector_postprocessor = rad_temp
radial_direction = x
axial_direction = y
axial_position = 0.0503
temperature_name = temp
[]
[peak_RAE]
type = TimeExtremeValue
postprocessor = RAE
[]
[]
[VectorPostprocessors]
[rad_temp]
type = NodalValueSampler
block = 3
sort_by = y
variable = temp
execute_on = timestep_end
outputs = dummy
[]
[]
[StandardLWRFuelRodOutputs]
fuel_pellet_blocks = 3
cladding_blocks = 1
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = true
csv = true
[chkfile]
type = CSV
show = 'average_centerline_fuel_temperature average_fission_rate fission_gas_released_percentage peak_RAE rod_total_power'
execute_on = 'FINAL'
[]
[console]
type = Console
max_rows = 25
output_linear = true
[]
[dummy]
type = CSV
enable = false
[]
[]
(test/tests/meso_thcond_test/sifgrs_swelling_fissiongas_graingrowth.i)
# This test is for the fuel swelling and porosity computation in the Sifgrs
# fission gas behavior model for UO2 (UO2Sifgrs).
# As complementary to the fission gas release process, the fission gas
# swelling is related to gas retention in the fuel in the form of bubbles.
# Through a direct description of the gas bubble development, the fission
# gas swelling and release are modeled as inherently coupled processes, on a
# physical basis. Only the fission gas swelling due to grain-face bubbles is
# considered.
# In a comprehensive treatment of fission gas release and fuel swelling, Sifgrs
# also incorporates empirical models for the swelling due to solid fission
# products and the fuel densification.
# Moreover, the different contributions to fuel porosity, namely, those due to
# fabrication pores, gas bubbles (thus associated with fission gas swelling),
# and sintering (densification), are computed consistently with the swelling
# calculations. Then, the fuel total porosity in each mesh location can be
# tracked (auxkernel PorosityAuxUO2), and considered in the computation of
# other relevant material properties like the fuel thermal conductivity
# (material model UO2Thermal).
# This test aims at demonstrating the above model capabilities. The considered
# case involves a single-element cubic domain, constant temperature (1400 K)
# and fission rate (1e19 f/(m**3s)), and a irradiation time of 1e8 s. The
# Sifgrs model is adopted for calculating the fission gas release and fuel
# swelling. Starting from a typical as-fabricated value of 5%, the fuel
# porosity evolves consistently with the swelling. The fuel thermal
# conductivity is calculated as coupled with porosity, which allows taking
# into account the conductivity degradation due to progressive increase of
# gaseous porosity (see also the attached file regression_tests_sifgrs.xlsx).
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
volumetric_locking_correction = true
[]
[Mesh]
[mesh]
type = FileMeshGenerator
file = cube_111.e
[]
[]
[Functions]
[Temp_func]
type = ParsedFunction
expression = 1400.
[]
[Fiss_func]
type = ParsedFunction
expression = 1.e19
[]
[]
[Variables]
[temp]
order = FIRST
family = LAGRANGE
initial_condition = 1400.
[]
[disp_x]
order = FIRST
family = LAGRANGE
[]
[disp_y]
order = FIRST
family = LAGRANGE
[]
[disp_z]
order = FIRST
family = LAGRANGE
[]
[]
[AuxVariables]
[fission_rate]
order = FIRST
family = LAGRANGE
[]
[burnup]
order = FIRST
family = LAGRANGE
[]
[porosity]
order = CONSTANT
family = MONOMIAL
initial_condition = 0.05
[]
[density]
order = CONSTANT
family = MONOMIAL
[]
[deltav_v0_bubble_GB]
order = CONSTANT
family = MONOMIAL
[]
[deltav_v0_sl]
order = CONSTANT
family = MONOMIAL
[]
[deltav_v0_dn]
order = CONSTANT
family = MONOMIAL
[]
[deltav_v0_swe]
order = CONSTANT
family = MONOMIAL
[]
[thermal_conductivity]
order = CONSTANT
family = MONOMIAL
[]
[GBCoverage]
order = CONSTANT
family = MONOMIAL
[]
[intra_porosity]
order = CONSTANT
family = MONOMIAL
[]
[gas_atom_conc]
order = CONSTANT
family = MONOMIAL
[]
[rad_bbl_bdr]
order = CONSTANT
family = MONOMIAL
[]
[GBresistance]
order = CONSTANT
family = MONOMIAL
[]
[grain_radius]
order = CONSTANT
family = MONOMIAL
initial_condition = 5e-6
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[pellets]
strain = FINITE
temperature = temp
eigenstrain_names = 'fuel_thermal_strain fuel_volumetric_strain'
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temp
[]
[]
[AuxKernels]
[frate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
block = 1
fission_rate_function = Fiss_func
execute_on = 'initial timestep_begin'
[]
[brnp]
type = BurnupAux
variable = burnup
block = 1
fission_rate = fission_rate
density = 10417.
execute_on = 'initial timestep_begin'
[]
[por]
type = PorosityAuxUO2
block = 1
variable = porosity
execute_on = linear
[]
[rho]
type = MaterialRealAux
variable = density
property = density
execute_on = 'initial timestep_end'
[]
[dvv0bd]
type = MaterialRealAux
variable = deltav_v0_bubble_GB
property = deltav_v0_bubble_GB
[]
[dvv0swe]
type = MaterialRealAux
variable = deltav_v0_swe
property = volumetric_swelling_strain
[]
[thcond]
type = MaterialRealAux
variable = thermal_conductivity
property = thermal_conductivity
execute_on = 'initial timestep_end'
[]
[GBCoverage]
type = MaterialRealAux
variable = GBCoverage
property = GBCoverage
execute_on = 'initial timestep_end'
[]
[intra_porosity]
type = MaterialRealAux
variable = intra_porosity
property = intra_porosity
[]
[gas_atom_conc]
type = MaterialRealAux
variable = gas_atom_conc
property = gas_atom_conc
[]
[deltav_v0_dn]
type = MaterialRealAux
variable = deltav_v0_dn
property = densification
[]
[deltav_v0_sl]
type = MaterialRealAux
variable = deltav_v0_sl
property = solid_swelling
[]
[rad_bbl_bdr]
type = MaterialRealAux
variable = rad_bbl_bdr
property = bubble_radius_GB
execute_on = 'initial timestep_end'
[]
[GBresistance]
type = MaterialRealAux
variable = GBresistance
property = GBresistance
execute_on = 'initial timestep_end'
[]
[grain_radius]
type = GrainRadiusAux
variable = grain_radius
temperature = temp
[]
[]
[BCs]
[bottom_T]
type = FunctionDirichletBC
variable = temp
function = Temp_func
boundary = 1
[]
[x_disp]
type = DirichletBC
variable = disp_x
value = 0
boundary = 1
[]
[y_disp]
type = DirichletBC
variable = disp_y
value = 0
boundary = 2
[]
[z_disp]
type = DirichletBC
variable = disp_z
value = 0
boundary = 3
[]
[]
[Materials]
[swelling]
type = UO2VolumetricSwellingEigenstrain
block = 1
burnup = burnup
temperature = temp
initial_fuel_density = 10417.0
eigenstrain_name = fuel_volumetric_strain
[]
[thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = 1
thermal_expansion_coeff = 1.0e-5
temperature = temp
stress_free_temperature = 1400.0
eigenstrain_name = fuel_thermal_strain
[]
[elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = 1
youngs_modulus = 2.0e11
poissons_ratio = 0.3
[]
[stress]
type = ComputeFiniteStrainElasticStress
block = 1
[]
[density]
type = StrainAdjustedDensity
block = 1
strain_free_density = 10417.0
[]
[fission_gas_release_and_swelling]
type = UO2Sifgrs
block = 1
temperature = temp
fission_rate = fission_rate
burnup = burnup
initial_porosity = 0.05
[]
[fuel_thermal_meso]
type = UO2FissionGasThermal
block = 1
temperature = temp
burnup = burnup
grain_radius = grain_radius
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
l_tol = 1.e-04
nl_abs_tol = 1.e-05
nl_rel_tol = 1.e-05
start_time = 0.
num_steps = 100
dt = 1.e+06
end_time = 1.e+08
[]
[Postprocessors]
[fis_gas_generated]
type = ElementIntegralFisGasGeneratedSifgrs
block = 1
[]
[fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = 1
[]
[GBCov]
type = ElementalVariableValue
variable = GBCoverage
elementid = 0
execute_on = 'initial timestep_end'
[]
[gas_atom_conc]
type = ElementalVariableValue
variable = gas_atom_conc
elementid = 0
[]
[thcond]
type = ElementalVariableValue
variable = thermal_conductivity
elementid = 0
execute_on = 'initial timestep_end'
[]
[intra_porosity]
type = ElementalVariableValue
variable = intra_porosity
elementid = 0
[]
[rad_bbl_bdr]
type = ElementalVariableValue
variable = rad_bbl_bdr
elementid = 0
execute_on = 'initial timestep_end'
[]
[GBresistance]
type = ElementalVariableValue
variable = GBresistance
elementid = 0
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
file_base = graingrowth
csv = true
[exodus]
type = Exodus
[]
[]
(test/tests/meso_thcond_test/sifgrs_swelling_fissiongas.i)
# This test is for the fuel swelling and porosity computation in the Sifgrs
# fission gas behavior model for UO2 (UO2Sifgrs).
# As complementary to the fission gas release process, the fission gas
# swelling is related to gas retention in the fuel in the form of bubbles.
# Through a direct description of the gas bubble development, the fission
# gas swelling and release are modeled as inherently coupled processes, on a
# physical basis. Only the fission gas swelling due to grain-face bubbles is
# considered.
# In a comprehensive treatment of fission gas release and fuel swelling, Sifgrs
# also incorporates empirical models for the swelling due to solid fission
# products and the fuel densification.
# Moreover, the different contributions to fuel porosity, namely, those due to
# fabrication pores, gas bubbles (thus associated with fission gas swelling),
# and sintering (densification), are computed consistently with the swelling
# calculations. Then, the fuel total porosity in each mesh location can be
# tracked (auxkernel PorosityAuxUO2), and considered in the computation of
# other relevant material properties like the fuel thermal conductivity
# (material model UO2Thermal).
# This test aims at demonstrating the above model capabilities. The considered
# case involves a single-element cubic domain, constant temperature (1400 K)
# and fission rate (1e19 f/(m**3s)), and a irradiation time of 1e8 s. The
# Sifgrs model is adopted for calculating the fission gas release and fuel
# swelling. Starting from a typical as-fabricated value of 5%, the fuel
# porosity evolves consistently with the swelling. The fuel thermal
# conductivity is calculated as coupled with porosity, which allows taking
# into account the conductivity degradation due to progressive increase of
# gaseous porosity (see also the attached file regression_tests_sifgrs.xlsx).
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
volumetric_locking_correction = true
[]
[Mesh]
[mesh]
type = FileMeshGenerator
file = cube_111.e
[]
[]
[Functions]
[Temp_func]
type = ParsedFunction
expression = 1400.
[]
[Fiss_func]
type = ParsedFunction
expression = 1.e19
[]
[]
[Variables]
[temp]
order = FIRST
family = LAGRANGE
initial_condition = 1400.
[]
[disp_x]
order = FIRST
family = LAGRANGE
[]
[disp_y]
order = FIRST
family = LAGRANGE
[]
[disp_z]
order = FIRST
family = LAGRANGE
[]
[]
[AuxVariables]
[fission_rate]
order = FIRST
family = LAGRANGE
[]
[burnup]
order = FIRST
family = LAGRANGE
[]
[porosity]
order = CONSTANT
family = MONOMIAL
initial_condition = 0.05
[]
[density]
order = CONSTANT
family = MONOMIAL
[]
[deltav_v0_bubble_GB]
order = CONSTANT
family = MONOMIAL
[]
[deltav_v0_sl]
order = CONSTANT
family = MONOMIAL
[]
[deltav_v0_dn]
order = CONSTANT
family = MONOMIAL
[]
[deltav_v0_swe]
order = CONSTANT
family = MONOMIAL
[]
[thermal_conductivity]
order = CONSTANT
family = MONOMIAL
[]
[GBCoverage]
order = CONSTANT
family = MONOMIAL
[]
[intra_porosity]
order = CONSTANT
family = MONOMIAL
[]
[gas_atom_conc]
order = CONSTANT
family = MONOMIAL
[]
[rad_bbl_bdr]
order = CONSTANT
family = MONOMIAL
[]
[GBresistance]
order = CONSTANT
family = MONOMIAL
[]
[grain_radius]
order = CONSTANT
family = MONOMIAL
initial_condition = 5e-6
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[pellets]
strain = FINITE
temperature = temp
eigenstrain_names = 'fuel_thermal_strain fuel_volumetric_strain'
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temp
[]
[]
[AuxKernels]
[frate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
block = 1
fission_rate_function = Fiss_func
execute_on = 'initial timestep_begin'
[]
[brnp]
type = BurnupAux
variable = burnup
block = 1
fission_rate = fission_rate
density = 10417.
execute_on = 'initial timestep_begin'
[]
[por]
type = PorosityAuxUO2
block = 1
variable = porosity
execute_on = linear
[]
[rho]
type = MaterialRealAux
variable = density
property = density
execute_on = 'initial timestep_end'
[]
[dvv0bd]
type = MaterialRealAux
variable = deltav_v0_bubble_GB
property = deltav_v0_bubble_GB
[]
[dvv0swe]
type = MaterialRealAux
variable = deltav_v0_swe
property = volumetric_swelling_strain
[]
[thcond]
type = MaterialRealAux
variable = thermal_conductivity
property = thermal_conductivity
execute_on = 'initial timestep_end'
[]
[GBCoverage]
type = MaterialRealAux
variable = GBCoverage
property = GBCoverage
execute_on = 'initial timestep_end'
[]
[intra_porosity]
type = MaterialRealAux
variable = intra_porosity
property = intra_porosity
[]
[gas_atom_conc]
type = MaterialRealAux
variable = gas_atom_conc
property = gas_atom_conc
[]
[deltav_v0_dn]
type = MaterialRealAux
variable = deltav_v0_dn
property = densification
[]
[deltav_v0_sl]
type = MaterialRealAux
variable = deltav_v0_sl
property = solid_swelling
[]
[rad_bbl_bdr]
type = MaterialRealAux
variable = rad_bbl_bdr
property = bubble_radius_GB
execute_on = 'initial timestep_end'
[]
[GBresistance]
type = MaterialRealAux
variable = GBresistance
property = GBresistance
execute_on = 'initial timestep_end'
[]
# [grain_radius]
# type = GrainRadiusAux
# variable = grain_radius
# temperature = temp
# []
[]
[BCs]
[bottom_T]
type = FunctionDirichletBC
variable = temp
function = Temp_func
boundary = 1
[]
[x_disp]
type = DirichletBC
variable = disp_x
value = 0
boundary = 1
[]
[y_disp]
type = DirichletBC
variable = disp_y
value = 0
boundary = 2
[]
[z_disp]
type = DirichletBC
variable = disp_z
value = 0
boundary = 3
[]
[]
[Materials]
[swelling]
type = UO2VolumetricSwellingEigenstrain
block = 1
burnup = burnup
temperature = temp
initial_fuel_density = 10417.0
eigenstrain_name = fuel_volumetric_strain
[]
[thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = 1
thermal_expansion_coeff = 1.0e-5
temperature = temp
stress_free_temperature = 1400.0
eigenstrain_name = fuel_thermal_strain
[]
[elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = 1
youngs_modulus = 2.0e11
poissons_ratio = 0.3
[]
[stress]
type = ComputeFiniteStrainElasticStress
block = 1
[]
[density]
type = StrainAdjustedDensity
block = 1
strain_free_density = 10417.0
[]
[fission_gas_release_and_swelling]
type = UO2Sifgrs
block = 1
temperature = temp
fission_rate = fission_rate
burnup = burnup
initial_porosity = 0.05
[]
[fuel_thermal_meso]
type = UO2FissionGasThermal
block = 1
temperature = temp
burnup = burnup
grain_radius = 5e-6
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
l_tol = 1.e-04
nl_abs_tol = 1.e-05
nl_rel_tol = 1.e-05
start_time = 0.
num_steps = 100
dt = 1.e+06
end_time = 1.e+08
[]
[Postprocessors]
[fis_gas_generated]
type = ElementIntegralFisGasGeneratedSifgrs
block = 1
[]
[fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = 1
[]
[GBCov]
type = ElementalVariableValue
variable = GBCoverage
elementid = 0
execute_on = 'initial timestep_end'
[]
[gas_atom_conc]
type = ElementalVariableValue
variable = gas_atom_conc
elementid = 0
[]
[thcond]
type = ElementalVariableValue
variable = thermal_conductivity
elementid = 0
execute_on = 'initial timestep_end'
[]
[intra_porosity]
type = ElementalVariableValue
variable = intra_porosity
elementid = 0
[]
[rad_bbl_bdr]
type = ElementalVariableValue
variable = rad_bbl_bdr
elementid = 0
execute_on = 'initial timestep_end'
[]
[GBresistance]
type = ElementalVariableValue
variable = GBresistance
elementid = 0
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
file_base = fissiongas
csv = true
[exodus]
type = Exodus
[]
[]
(assessment/LWR/validation/RIA_NSRR_FK/analysis/FK3/FK03.i)
# This file was created using BIF with the following inputs:
# FK03/FK03.var - md5sum: 63fb064f9380e246b80d3fb7762c0b71
# pulse.tpl - md5sum: 37e5a6b8a0c63ad020906dada3472585
initial_fuel_density = 10020.6066633
[GlobalParams]
density = ${initial_fuel_density}
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11
a_lower = 0.01822
a_upper = 0.12422
temperature = temp
volumetric_locking_correction = false
[]
[Mesh]
coord_type = RZ
[smeared_pellet_mesh]
type = FuelPinMeshGenerator
clad_mesh_density = customize
pellet_mesh_density = customize
elem_type = QUAD8
ny_p = 100
nx_c = 4
ny_c = 100
nx_p = 12
ny_cu = 3
ny_cl = 3
bx_p = 0.75
clad_bot_gap_height = 0.00152
bottom_clad_height = 0.0167
top_clad_height = 0.0167
clad_thickness = 0.00086
pellet_outer_radius = 0.00527
clad_top_gap_height = 0.05265
pellet_height = 0.106
clad_gap_width = 1e-05
pellet_quantity = 1
[]
patch_size = 5
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
converge_on = 'disp_x disp_y temp'
[]
[Variables]
[temp]
block = '1 3'
initial_condition = 293
[]
[]
[AuxVariables]
[BuTC]
[]
[gap]
order = CONSTANT
family = MONOMIAL
[]
[fast_neutron_flux]
block = 1
[]
[fast_neutron_fluence]
block = 1
[]
[buavg]
order = CONSTANT
family = MONOMIAL
[]
[fission_rate]
initial_condition = 0
[]
[grain_radius]
block = 3
initial_condition = 5.96e-6
[]
[integral_burnup]
order = CONSTANT
family = MONOMIAL
[]
[pellet_id]
order = CONSTANT
family = MONOMIAL
block = 3
[]
[porosity]
order = CONSTANT
family = MONOMIAL
initial_condition = 0.085711070864
[]
[SED]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[linear_heat_rate_profile]
type = PiecewiseLinear
data_file = pulse.csv
format = columns
[]
[flux]
type = ConstantFunction
value = 0.0
[]
[axial_peaking_factors]
type = ConstantFunction
value = 1
[]
[coolant_pressure_ramp]
type = ConstantFunction
value = 101325
[]
[linear_heat_generation_rate]
type = CompositeFunction
functions = 'linear_heat_rate_profile axial_peaking_factors'
[]
[axial_flux]
type = CompositeFunction
functions = 'flux axial_peaking_factors'
[]
[burnup_thermal_conductivity]
type = ConstantFunction
value = 1 # should be burnup / 950
[]
[radial_power_profile]
type = PiecewiseLinear
data_file = RadialPowerProfile.csv
format = columns
axis = X
[]
[radial_burnup_profile]
type = PiecewiseLinear
data_file = RadialBurnupProfile.csv
format = columns
axis = X
[]
[initial_burnup]
type = CompositeFunction
functions = 'burnup_thermal_conductivity radial_burnup_profile'
[]
[]
[Burnup]
[burnup]
block = 3
rod_ave_lin_pow = linear_heat_rate_profile
axial_power_profile = axial_peaking_factors
rpf_input = radial_power_profile
num_radial = 80
num_axial = 49
fuel_inner_radius = 0.0
fuel_outer_radius = 0.00527
fuel_volume_ratio = 1.0
isotopes = 'U235 U238 Pu239 Pu240 Pu241 Pu242'
isotope_fractions = '0.039 0.961 0.0 0.0 0.0 0.0'
[]
[]
[Physics/SolidMechanics/QuasiStatic]
add_variables = true
[fuel]
block = 3
strain = FINITE
incremental = true
eigenstrain_names = 'fuel_thermal_eigenstrain
fuel_volumetric_swelling_eigenstrain'
extra_vector_tags = 'ref'
generate_output = 'vonmises_stress hydrostatic_stress elastic_strain_xx
elastic_strain_yy elastic_strain_zz stress_xx stress_yy stress_zz strain_xx
strain_yy strain_zz'
decomposition_method = EigenSolution
[]
[clad]
block = 1
strain = FINITE
incremental = true
eigenstrain_names = 'clad_thermal_eigenstrain'
extra_vector_tags = 'ref'
generate_output = 'vonmises_stress elastic_strain_xx
elastic_strain_yy elastic_strain_zz stress_xx stress_yy stress_zz strain_xx
strain_yy strain_zz creep_strain_xx creep_strain_yy creep_strain_zz'
decomposition_method = EigenSolution
[]
[]
[Kernels]
[gravity]
type = Gravity
variable = disp_y
value = -9.81
extra_vector_tags = 'ref'
block = '1 3'
[]
[heat]
type = HeatConduction
variable = temp
extra_vector_tags = 'ref'
block = '1 3'
[]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temp
extra_vector_tags = 'ref'
block = '1 3'
[]
[heat_source]
type = NeutronHeatSource
fission_rate = fission_rate
variable = temp
block = 3
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[BuTC]
type = FunctionAux
block = 3
variable = BuTC
function = initial_burnup
[]
[pelletid]
type = PelletIdAux
block = 3
variable = pellet_id
number_pellets = 1
execute_on = initial
[]
[gap]
type = SpatialUserObjectAux
block = 3
variable = gap
execute_on = timestep_end
user_object = avg_gap
[]
[buavg]
type = SpatialUserObjectAux
block = 3
variable = buavg
execute_on = timestep_end
user_object = integral_burnup
[]
[fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
function = axial_flux
block = 1
execute_on = timestep_begin
[]
[fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = 1
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[]
[fuel_porosity]
type = PorosityAuxUO2
block = 3
variable = porosity
execute_on = timestep_begin
[]
[grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temperature = temp
execute_on = timestep_begin
[]
[SED]
type = MaterialRealAux
variable = SED
property = strain_energy_density
execute_on = timestep_end
block = 1
[]
[]
[Contact]
[mechanical]
model = coulomb
formulation = mortar
primary = 5
secondary = 10
friction_coefficient = 0.4
c_normal = 1e+12
c_tangential = 1e+24
tangential_lm_scaling = 1.0e-16
normal_lm_scaling = 1.0e-10
[]
[]
[ThermalContactMortar]
[thermal_contact]
secondary_variable = temp
primary_boundary = '5'
secondary_boundary = '10'
layer_thickness = layer_thickness_action
roughness_coef = 3.2
roughness_primary = 1.5e-6
roughness_secondary = 1.75e-6
jump_distance_model = LANNING
plenum_pressure = plenum_pressure
contact_pressure = mechanical_normal_lm
initial_moles = initial_moles
gas_released = fission_gas_released
thermal_lm_scaling = 1.0e-2
[]
[]
[BCs]
[no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[]
[no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 20
value = 0.0
[]
[no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[]
[coolant_temp]
type = DirichletBC
boundary = '1 2 3'
variable = temp
value = 293
[]
[Pressure]
[coolantPressure]
boundary = '1 2 3'
factor = 1
function = coolant_pressure_ramp
[]
[]
[PlenumPressure]
[plenumPressure]
boundary = '10 5'
initial_pressure = 0.3e6
startup_time = 0
R = 8.314462
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
initial_temperature = 293
[]
[]
[]
[Materials]
[fuel_swelling]
type = UO2VolumetricSwellingEigenstrain
block = 3
burnup = burnup
initial_fuel_density = 10020.6066633
total_densification = 0.006
gas_swelling_model_type = SIFGRS
eigenstrain_name = 'fuel_volumetric_swelling_eigenstrain'
[]
[fuel_thermal]
type = UO2Thermal
thermal_conductivity_model = NFIR
block = 3
temperature = temp
burnup = BuTC
initial_porosity = 0.085711070864
[]
[fuel_elasticity_tensor]
type = UO2ElasticityTensor
block = 3
[]
[fuel_thermal_expansion]
type = UO2ThermalExpansionMartinEigenstrain
block = 3
stress_free_temperature = 293
eigenstrain_name = 'fuel_thermal_eigenstrain'
[]
[fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = '3'
[]
[clad_thermal]
type = ZryThermal
block = 1
temperature = temp
[]
[clad_inelastic_stress]
type = ComputeMultipleInelasticStress
block = 1
tangent_operator = elastic
inelastic_models ='plasticity'
[]
[clad_elasticity_tensor]
type = ZryElasticityTensor
block = 1
fast_neutron_fluence = fast_neutron_fluence
initial_fast_fluence = 8.40e25
cold_work_factor = 0.01
matpro_youngs_modulus = true
matpro_poissons_ratio = true
[]
## TODO: Creep is not active, but is transfered from the SM version.
## Adding creep causes the Peak Hoop strain to best match the FALCON
## results given by R. Montgomery and D. Sunderland. Only retaining
## plasticity matches the results from Wenfeng Liu, John Alvis, Robert Montgomery, and Ken Yueh
[clad_creep_stress]
type = ZryCreepLimbackHoppeUpdate
block = 1
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
initial_fast_fluence = 8.40e25
[]
[clad_thermal_expansion]
type = ZryThermalExpansionMATPROEigenstrain
block = 1
stress_free_temperature = 293.0
eigenstrain_name = 'clad_thermal_eigenstrain'
[]
[plasticity]
type = ZryPlasticityUpdate
block = 1
initial_fast_fluence = 8.40e25
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
cold_work_factor = .01
plasticity_model_type = MATPRO
output_properties = yield_stress
outputs = all
zircaloy_alloy_type = 4
[]
[fission_gas_release]
type = UO2Sifgrs
block = 3
temperature = temp
fission_rate = fission_rate
grain_radius = grain_radius
gbs_model = true
burnup = BuTC
transient_option = MICROCRACKING
[]
[clad_density]
type = StrainAdjustedDensity
block = 1
strain_free_density = 6551
[]
[fuel_density]
type = StrainAdjustedDensity
block = 3
strain_free_density = ${initial_fuel_density}
[]
[strain_energy_density]
type = StrainEnergyDensity
incremental = true
block = '1 3'
[]
[]
[UserObjects]
[avg_gap]
type = LayeredAverage
block = 3
variable = penetration
direction = y
num_layers = 48
[]
[pbz]
type = PelletBrittleZone
block = 3
pellet_id = pellet_id
temperature = temp
pellet_radius = 0.00527
number_pellets = 1
execute_on = timestep_begin
[]
[integral_burnup]
type = LayeredAverage
block = 3
variable = burnup
direction = y
num_layers = 1
[]
[]
[Executioner]
type = Transient
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-12'
line_search = 'none'
l_max_its = 40
l_tol = 8e-3
nl_max_its = 40
nl_rel_tol = 1e-3
nl_abs_tol = 1e-10
dtmin = 0.00001
dtmax = 1.0
start_time = 0
end_time = 100
[TimeStepper]
type = IterationAdaptiveDT
dt = 0.0001
optimal_iterations = 200
linear_iteration_ratio = 100
timestep_limiting_function = linear_heat_rate_profile
max_function_change = 550000
force_step_every_function_point = true
[]
[]
[Dampers]
[limitT]
type = MaxIncrement
max_increment = 200.0
variable = temp
[]
[limitX]
type = MaxIncrement
max_increment = 1e-4
variable = disp_x
[]
[]
[Postprocessors]
[max_hoop_strain]
type = ElementExtremeValue
variable = strain_zz
block = 1
[]
[max_SED]
type = ElementExtremeValue
variable = SED
block = 1
[]
[average_grain_radius]
type = ElementAverageValue
block = 3
outputs = 'exodus'
variable = grain_radius
[]
[clad_inner_vol]
type = InternalVolume
boundary = 7
outputs = 'exodus'
execute_on = 'timestep_begin initial'
[]
[flux_from_clad]
type = SideDiffusiveFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
outputs = 'exodus'
[]
[flux_from_fuel]
type = SideDiffusiveFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
outputs = 'exodus'
[]
[rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = 3
[]
[rod_input_power]
type = FunctionValuePostprocessor
function = linear_heat_rate_profile
scale_factor = 0.106
[]
[average_fission_rate]
type = ElementAverageValue
variable = fission_rate
block = '3'
[]
[RAE]
type = RadialAverageEnthalpy
vector_postprocessor = rad_temp
radial_direction = x
axial_direction = y
axial_position = 0.0503
temperature_name = temp
[]
[peak_RAE]
type = TimeExtremeValue
postprocessor = RAE
[]
[]
[VectorPostprocessors]
[rad_temp]
type = NodalValueSampler
block = 3
sort_by = y
variable = temp
execute_on = timestep_end
outputs = dummy
[]
[]
[StandardLWRFuelRodOutputs]
fuel_pellet_blocks = 3
cladding_blocks = 1
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = true
csv = true
[chkfile]
type = CSV
show = 'average_centerline_fuel_temperature average_fission_rate fission_gas_released_percentage peak_RAE rod_total_power'
execute_on = 'FINAL'
[]
[console]
type = Console
max_rows = 25
output_linear = true
[]
[dummy]
type = CSV
enable = false
[]
[]
(assessment/LWR/validation/RIA_NSRR_FK/analysis/FK1/FK01.i)
# This file was created using BIF with the following inputs:
# FK01.var - md5sum: 123016ae8f3283a45bae816a366f93b1
# ../pulse_rev1.tpl - md5sum: 8d6b8b4bce1dd830dea2d8522009e514
initial_fuel_density = 10020.6066633
[GlobalParams]
density = ${initial_fuel_density}
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11
a_lower = 0.01822
a_upper = 0.12422
temperature = temp
volumetric_locking_correction = false
[]
[Mesh]
coord_type = RZ
[smeared_pellet_mesh]
type = FuelPinMeshGenerator
clad_mesh_density = customize
pellet_mesh_density = customize
elem_type = QUAD8
ny_p = 100
nx_c = 4
ny_c = 100
nx_p = 12
ny_cu = 3
ny_cl = 3
bx_p = 0.75
clad_bot_gap_height = 0.00152
bottom_clad_height = 0.0167
top_clad_height = 0.0167
clad_thickness = 0.00086
pellet_outer_radius = 0.00527
clad_top_gap_height = 0.04298
pellet_height = 0.106
clad_gap_width = 1e-05
pellet_quantity = 1
[]
patch_size = 5
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[Variables]
[temp]
initial_condition = 293
[]
[]
[AuxVariables]
[BuTC]
[]
[gap]
order = CONSTANT
family = MONOMIAL
[]
[fast_neutron_flux]
block = 1
[]
[fast_neutron_fluence]
block = 1
[]
[buavg]
order = CONSTANT
family = MONOMIAL
[]
[fission_rate]
initial_condition = 0
[]
[grain_radius]
block = 3
initial_condition = 5.96e-6
[]
[integral_burnup]
order = CONSTANT
family = MONOMIAL
[]
[pellet_id]
order = CONSTANT
family = MONOMIAL
block = 3
[]
[gap_conductivity]
order = CONSTANT
family = MONOMIAL
[]
[porosity]
order = CONSTANT
family = MONOMIAL
initial_condition = 0.085711070864
[]
[SED]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[linear_heat_rate_profile]
type = PiecewiseLinear
data_file = pulse.csv
format = columns
[]
[flux]
type = ConstantFunction
value = 0.0
[]
[axial_peaking_factors]
type = ConstantFunction
value = 1
[]
[coolant_pressure_ramp]
type = ConstantFunction
value = 101325
[]
[linear_heat_generation_rate]
type = CompositeFunction
functions = 'linear_heat_rate_profile axial_peaking_factors'
[]
[axial_flux]
type = CompositeFunction
functions = 'flux axial_peaking_factors'
[]
[burnup_thermal_conductivity]
type = ConstantFunction
value = 0.0473684210526 # should be burnup / 950
[]
[radial_power_profile]
type = PiecewiseBilinear
data_file = RadialPowerProfile.csv
axis = 0
[]
[radial_burnup_profile]
type = PiecewiseBilinear
data_file = RadialBurnupProfile.csv
axis = 0
[]
[initial_burnup]
type = CompositeFunction
functions = 'burnup_thermal_conductivity radial_burnup_profile'
[]
[]
[Burnup]
[burnup]
block = 3
rod_ave_lin_pow = linear_heat_rate_profile
axial_power_profile = axial_peaking_factors
rpf_input = radial_power_profile
num_radial = 80
num_axial = 49
fuel_inner_radius = 0.0
fuel_outer_radius = 0.00527
fuel_volume_ratio = 1.0
isotopes = 'U235 U238 Pu239 Pu240 Pu241 Pu242'
isotope_fractions = '0.039 0.961 0.0 0.0 0.0 0.0'
[]
[]
[Physics/SolidMechanics/QuasiStatic]
add_variables = true
[fuel]
block = 3
strain = FINITE
incremental = true
eigenstrain_names = 'fuel_thermal_eigenstrain
fuel_volumetric_swelling_eigenstrain'
extra_vector_tags = 'ref'
generate_output = 'vonmises_stress hydrostatic_stress elastic_strain_xx
elastic_strain_yy elastic_strain_zz stress_xx stress_yy stress_zz strain_xx
strain_yy strain_zz'
decomposition_method = EigenSolution
[]
[clad]
block = 1
strain = FINITE
incremental = true
eigenstrain_names = 'clad_thermal_eigenstrain'
extra_vector_tags = 'ref'
generate_output = 'vonmises_stress elastic_strain_xx
elastic_strain_yy elastic_strain_zz stress_xx stress_yy stress_zz strain_xx
strain_yy strain_zz creep_strain_xx creep_strain_yy creep_strain_zz'
decomposition_method = EigenSolution
[]
[]
[Kernels]
[gravity]
type = Gravity
variable = disp_y
value = -9.81
extra_vector_tags = 'ref'
[]
[heat]
type = HeatConduction
variable = temp
extra_vector_tags = 'ref'
[]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temp
extra_vector_tags = 'ref'
[]
[heat_source]
type = NeutronHeatSource
fission_rate = fission_rate
variable = temp
block = 3
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[BuTC]
type = FunctionAux
block = 3
variable = BuTC
function = initial_burnup
[]
[pelletid]
type = PelletIdAux
block = 3
variable = pellet_id
number_pellets = 1
execute_on = initial
[]
[gap]
type = SpatialUserObjectAux
block = 3
variable = gap
execute_on = timestep_end
user_object = avg_gap
[]
[buavg]
type = SpatialUserObjectAux
block = 3
variable = buavg
execute_on = timestep_end
user_object = integral_burnup
[]
[fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
function = axial_flux
block = 1
execute_on = timestep_begin
[]
[fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = 1
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[]
[fuel_porosity]
type = PorosityAuxUO2
block = 3
variable = porosity
execute_on = timestep_begin
[]
[grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temperature = temp
execute_on = timestep_begin
[]
[gap_conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_conductivity
boundary = 10
[]
[SED]
type = MaterialRealAux
variable = SED
property = strain_energy_density
execute_on = timestep_end
block = 1
[]
[]
[Contact]
[pellet_clad_mechanical]
primary = 5
secondary = 10
penalty = 1e14
normalize_penalty = true
model = frictionless
friction_coefficient = 2.5
normal_smoothing_distance = 0.1
formulation = penalty
[]
[]
[ThermalContact]
[thermal_contact]
type = GasGapHeatTransfer
variable = temp
primary = 5
secondary = 10
roughness_coef = 3.2
roughness_primary = 1.5e-6
roughness_secondary = 1.75e-6
jump_distance_model = LANNING
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
initial_moles = initial_moles
gas_released = fission_gas_released
tangential_tolerance = 1.0e-6
quadrature = true
[]
[]
[BCs]
[no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[]
[no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 20
value = 0.0
[]
[no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[]
[coolant_temp]
type = DirichletBC
boundary = '1 2 3'
variable = temp
value = 293
[]
[Pressure]
[coolantPressure]
boundary = '1 2 3'
factor = 1
function = coolant_pressure_ramp
[]
[]
[PlenumPressure]
[plenumPressure]
boundary = '10 5'
initial_pressure = 0.3e6
startup_time = 0
R = 8.314462
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
initial_temperature = 293
[]
[]
[]
[Materials]
[fuel_swelling]
type = UO2VolumetricSwellingEigenstrain
block = 3
burnup = burnup
initial_fuel_density = 10020.6066633
total_densification = 0.006
gas_swelling_model_type = SIFGRS
eigenstrain_name = 'fuel_volumetric_swelling_eigenstrain'
[]
[fuel_thermal]
type = UO2Thermal
thermal_conductivity_model = NFIR
block = 3
temperature = temp
burnup = BuTC
initial_porosity = 0.085711070864
[]
[fuel_elasticity_tensor]
type = UO2ElasticityTensor
block = 3
[]
[fuel_thermal_expansion]
type = UO2ThermalExpansionMartinEigenstrain
block = 3
stress_free_temperature = 293
eigenstrain_name = 'fuel_thermal_eigenstrain'
[]
[fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = 3
[]
[clad_thermal]
type = ZryThermal
block = 1
temperature = temp
[]
[clad_inelastic_stress]
type = ComputeMultipleInelasticStress
block = 1
tangent_operator = elastic
inelastic_models ='plasticity'
[]
[clad_elasticity_tensor]
type = ZryElasticityTensor
block = 1
fast_neutron_fluence = fast_neutron_fluence
initial_fast_fluence = 8.40e25
cold_work_factor = 0.01
matpro_youngs_modulus = true
matpro_poissons_ratio = true
[]
## TODO: Creep is not active, but is transfered from the SM version.
## Adding creep causes the Peak Hoop strain to best match the FALCON
## results given by R. Montgomery and D. Sunderland. Only retaining
## plasticity matches the results from Wenfeng Liu, John Alvis, Robert Montgomery, and Ken Yueh
[clad_creep_stress]
type = ZryCreepLimbackHoppeUpdate
block = 1
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
initial_fast_fluence = 8.40e25
[]
[clad_thermal_expansion]
type = ZryThermalExpansionMATPROEigenstrain
block = 1
stress_free_temperature = 293.0
eigenstrain_name = 'clad_thermal_eigenstrain'
[]
[plasticity]
type = ZryPlasticityUpdate
block = 1
initial_fast_fluence = 8.40e25
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
cold_work_factor = 0.01
plasticity_model_type = MATPRO
output_properties = yield_stress
outputs = all
zircaloy_alloy_type = 4
[]
[fission_gas_release]
type = UO2Sifgrs
block = 3
temperature = temp
fission_rate = fission_rate
grain_radius = grain_radius
gbs_model = true
burnup = BuTC
transient_option = MICROCRACKING
[]
[clad_density]
type = StrainAdjustedDensity
block = 1
strain_free_density = 6551
[]
[fuel_density]
type = StrainAdjustedDensity
block = 3
strain_free_density = ${initial_fuel_density}
[]
[strain_energy_density]
type = StrainEnergyDensity
block = 1
incremental = true
[]
[]
[UserObjects]
[avg_gap]
type = LayeredAverage
block = 3
variable = penetration
direction = y
num_layers = 48
[]
[pbz]
type = PelletBrittleZone
block = 3
pellet_id = pellet_id
temperature = temp
pellet_radius = 0.00527
number_pellets = 1
execute_on = timestep_begin
[]
[integral_burnup]
type = LayeredAverage
block = 3
variable = burnup
direction = y
num_layers = 1
[]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
l_max_its = 40
l_tol = 8e-3
nl_max_its = 40
nl_rel_tol = 1e-3
nl_abs_tol = 1e-10
dtmin = 0.00001
dtmax = 1.0
start_time = 0
end_time = 100
[TimeStepper]
type = IterationAdaptiveDT
dt = 0.0001
optimal_iterations = 200
linear_iteration_ratio = 100
timestep_limiting_function = linear_heat_rate_profile
max_function_change = 500000
force_step_every_function_point = true
[]
[]
[Dampers]
[limitT]
type = MaxIncrement
max_increment = 100.0
variable = temp
[]
[limitX]
type = MaxIncrement
max_increment = 1e-5
variable = disp_x
[]
[contactslip]
type = ContactSlipDamper
primary = 5
secondary = 8
min_damping_factor = 0.05
[]
[]
[Postprocessors]
[max_hoop_strain]
type = ElementExtremeValue
variable = strain_zz
block = 1
[]
[max_SED]
type = ElementExtremeValue
variable = SED
block = 1
[]
[average_grain_radius]
type = ElementAverageValue
block = 3
outputs = 'exodus'
variable = grain_radius
[]
[clad_inner_vol]
type = InternalVolume
boundary = 7
outputs = 'exodus'
execute_on = 'timestep_begin initial'
[]
[flux_from_clad]
type = SideDiffusiveFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
outputs = 'exodus'
[]
[flux_from_fuel]
type = SideDiffusiveFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
outputs = 'exodus'
[]
[rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = 3
[]
[rod_input_power]
type = FunctionValuePostprocessor
function = linear_heat_rate_profile
scale_factor = 0.106
[]
[average_fission_rate]
type = ElementAverageValue
variable = fission_rate
block = '3'
[]
[RAE]
type = RadialAverageEnthalpy
vector_postprocessor = rad_temp
radial_direction = x
axial_direction = y
axial_position = 0.0503
temperature_name = temp
[]
[peak_RAE]
type = TimeExtremeValue
postprocessor = RAE
[]
[]
[VectorPostprocessors]
[rad_temp]
type = NodalValueSampler
block = 3
sort_by = y
variable = temp
execute_on = timestep_end
outputs = dummy
[]
[]
[StandardLWRFuelRodOutputs]
fuel_pellet_blocks = 3
cladding_blocks = 1
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = true
csv = true
[chkfile]
type = CSV
show = 'average_centerline_fuel_temperature average_fission_rate fission_gas_released_percentage peak_RAE rod_total_power'
execute_on = 'FINAL'
[]
[console]
type = Console
max_rows = 25
output_linear = true
[]
[dummy]
type = CSV
enable = false
[]
[]
(assessment/LWR/validation/RIA_NSRR_FK/analysis/FK7/FK07.i)
# This file was created using BIF with the following inputs:
# FK06/FK06.var - md5sum: 5a60c05af67ba840a89caacf70b852e2
# pulse.tpl - md5sum: 37e5a6b8a0c63ad020906dada3472585
# Other changes were added after that process.
initial_fuel_density = 10310.8809782
[GlobalParams]
density = ${initial_fuel_density}
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11
a_lower = 0.01822
a_upper = 0.12422
temperature = temp
volumetric_locking_correction = false
[]
[Mesh]
coord_type = RZ
[smeared_pellet_mesh]
type = FuelPinMeshGenerator
clad_mesh_density = customize
pellet_mesh_density = customize
elem_type = QUAD8
ny_p = 100
nx_c = 4
ny_c = 100
nx_p = 12
ny_cu = 3
ny_cl = 3
bx_p = 0.75
clad_bot_gap_height = 0.00152
bottom_clad_height = 0.0167
top_clad_height = 0.0167
clad_thickness = 0.00086
pellet_outer_radius = 0.00527
clad_top_gap_height = 0.05265
pellet_height = 0.106
clad_gap_width = 1e-05
pellet_quantity = 1
[]
patch_size = 5
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
converge_on = 'disp_x disp_y temp'
[]
[Variables]
[temp]
initial_condition = 293
block = '1 3'
[]
[]
[AuxVariables]
[BuTC]
[]
[gap]
order = CONSTANT
family = MONOMIAL
[]
[fast_neutron_flux]
block = 1
[]
[fast_neutron_fluence]
block = 1
[]
[buavg]
order = CONSTANT
family = MONOMIAL
[]
[fission_rate]
initial_condition = 0
[]
[grain_radius]
block = 3
initial_condition = 5.96e-6
[]
[integral_burnup]
order = CONSTANT
family = MONOMIAL
[]
[pellet_id]
order = CONSTANT
family = MONOMIAL
block = 3
[]
[porosity]
order = CONSTANT
family = MONOMIAL
initial_condition = 0.0592261881186
[]
[SED]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[linear_heat_rate_profile]
type = PiecewiseLinear
data_file = pulse.csv
format = columns
[]
[flux]
type = ConstantFunction
value = 0.0
[]
[axial_peaking_factors]
type = ConstantFunction
value = 1
[]
[coolant_pressure_ramp]
type = ConstantFunction
value = 101325
[]
[linear_heat_generation_rate]
type = CompositeFunction
functions = 'linear_heat_rate_profile axial_peaking_factors'
[]
[axial_flux]
type = CompositeFunction
functions = 'flux axial_peaking_factors'
[]
[burnup_thermal_conductivity]
type = ConstantFunction
value = 1 # should be burnup / 950
[]
[radial_power_profile]
type = PiecewiseLinear
data_file = RadialPowerProfile.csv
format = columns
axis = X
[]
[radial_burnup_profile]
type = PiecewiseLinear
data_file = RadialBurnupProfile.csv
format = columns
axis = X
[]
[initial_burnup]
type = CompositeFunction
functions = 'burnup_thermal_conductivity radial_burnup_profile'
[]
[]
[Burnup]
[burnup]
block = 3
rod_ave_lin_pow = linear_heat_rate_profile
axial_power_profile = axial_peaking_factors
rpf_input = radial_power_profile
num_radial = 80
num_axial = 49
fuel_inner_radius = 0.0
fuel_outer_radius = 0.00527
fuel_volume_ratio = 1.0
isotopes = 'U235 U238 Pu239 Pu240 Pu241 Pu242'
isotope_fractions = '0.045 0.955 0.0 0.0 0.0 0.0'
[]
[]
[Physics/SolidMechanics/QuasiStatic]
add_variables = true
[fuel]
block = 3
strain = FINITE
incremental = true
eigenstrain_names = 'fuel_thermal_eigenstrain
fuel_volumetric_swelling_eigenstrain'
extra_vector_tags = 'ref'
generate_output = 'vonmises_stress hydrostatic_stress elastic_strain_xx
elastic_strain_yy elastic_strain_zz stress_xx stress_yy stress_zz strain_xx
strain_yy strain_zz'
decomposition_method = EigenSolution
[]
[clad]
block = 1
strain = FINITE
incremental = true
eigenstrain_names = 'clad_thermal_eigenstrain'
extra_vector_tags = 'ref'
generate_output = 'vonmises_stress elastic_strain_xx
elastic_strain_yy elastic_strain_zz stress_xx stress_yy stress_zz strain_xx
strain_yy strain_zz creep_strain_xx creep_strain_yy creep_strain_zz'
decomposition_method = EigenSolution
[]
[]
[Kernels]
[gravity]
type = Gravity
variable = disp_y
value = -9.81
block = '1 3'
extra_vector_tags = 'ref'
[]
[heat]
type = HeatConduction
variable = temp
block = '1 3'
extra_vector_tags = 'ref'
[]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temp
block = '1 3'
extra_vector_tags = 'ref'
[]
[heat_source]
type = NeutronHeatSource
fission_rate = fission_rate
variable = temp
block = 3
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[BuTC]
type = FunctionAux
block = 3
variable = BuTC
function = initial_burnup
[]
[pelletid]
type = PelletIdAux
block = 3
variable = pellet_id
number_pellets = 1
execute_on = initial
[]
[gap]
type = SpatialUserObjectAux
block = 3
variable = gap
execute_on = timestep_end
user_object = avg_gap
[]
[buavg]
type = SpatialUserObjectAux
block = 3
variable = buavg
execute_on = timestep_end
user_object = integral_burnup
[]
[fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
function = axial_flux
block = 1
execute_on = timestep_begin
[]
[fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = 1
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[]
[fuel_porosity]
type = PorosityAuxUO2
block = 3
variable = porosity
execute_on = timestep_begin
[]
[grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temperature = temp
execute_on = timestep_begin
[]
[SED]
type = MaterialRealAux
variable = SED
property = strain_energy_density
execute_on = timestep_end
block = 1
[]
[]
[Contact]
[mechanical]
model = coulomb
formulation = mortar
primary = 5
secondary = 10
friction_coefficient = 0.4
c_normal = 1e+12
c_tangential = 1e+24
tangential_lm_scaling = 1.0e-16
normal_lm_scaling = 1.0e-10
[]
[]
[ThermalContactMortar]
[thermal_contact]
secondary_variable = temp
primary_boundary = '5'
secondary_boundary = '10'
layer_thickness = layer_thickness_action
roughness_coef = 3.2
roughness_primary = 1.5e-6
roughness_secondary = 1.75e-6
jump_distance_model = LANNING
plenum_pressure = plenum_pressure
initial_moles = initial_moles
initial_gas_types = 'He Ar'
initial_fractions = '0.25 0.75'
gas_released = fission_gas_released
contact_pressure = mechanical_normal_lm
thermal_lm_scaling = 1.0e-2
[]
[]
[BCs]
[no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[]
[no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 20
value = 0.0
[]
[no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[]
[coolant_temp]
type = DirichletBC
boundary = '1 2 3'
variable = temp
value = 293
[]
[Pressure]
[coolantPressure]
boundary = '1 2 3'
factor = 1
function = coolant_pressure_ramp
[]
[]
[PlenumPressure]
[plenumPressure]
boundary = '10 5'
initial_pressure = 0.1e6
startup_time = 0
R = 8.314462
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
initial_temperature = 293
[]
[]
[]
[Materials]
[fuel_swelling]
type = UO2VolumetricSwellingEigenstrain
block = 3
burnup = burnup
initial_fuel_density = 10310.8809782
total_densification = 0.006
gas_swelling_model_type = SIFGRS
eigenstrain_name = 'fuel_volumetric_swelling_eigenstrain'
[]
[fuel_thermal]
type = UO2Thermal
thermal_conductivity_model = NFIR
block = 3
temperature = temp
burnup = BuTC
initial_porosity = 0.0592261881186
[]
[fuel_elasticity_tensor]
type = UO2ElasticityTensor
block = 3
[]
[fuel_thermal_expansion]
type = UO2ThermalExpansionMartinEigenstrain
block = 3
stress_free_temperature = 293
eigenstrain_name = 'fuel_thermal_eigenstrain'
[]
[fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = '3'
[]
[clad_thermal]
type = ZryThermal
block = 1
temperature = temp
[]
[clad_inelastic_stress]
type = ComputeMultipleInelasticStress
block = 1
tangent_operator = elastic
inelastic_models ='plasticity'
[]
[clad_elasticity_tensor]
type = ZryElasticityTensor
block = 1
fast_neutron_fluence = fast_neutron_fluence
initial_fast_fluence = 1.30e26
cold_work_factor = 0.01
matpro_youngs_modulus = true
matpro_poissons_ratio = true
[]
## TODO: Creep is not active, but is transfered from the SM version.
## Adding creep causes the Peak Hoop strain to best match the FALCON
## results given by R. Montgomery and D. Sunderland. Only retaining
## plasticity matches the results from Wenfeng Liu, John Alvis, Robert Montgomery, and Ken Yueh
[clad_creep_stress]
type = ZryCreepLimbackHoppeUpdate
block = 1
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
initial_fast_fluence = 1.30e26
[]
[clad_thermal_expansion]
type = ZryThermalExpansionMATPROEigenstrain
block = 1
stress_free_temperature = 293.0
eigenstrain_name = 'clad_thermal_eigenstrain'
[]
[plasticity]
type = ZryPlasticityUpdate
block = 1
initial_fast_fluence = 1.30e26
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
cold_work_factor = .01
plasticity_model_type = MATPRO
output_properties = yield_stress
outputs = all
zircaloy_alloy_type = 4
[]
[fission_gas_release]
type = UO2Sifgrs
block = 3
temperature = temp
fission_rate = fission_rate
grain_radius = grain_radius
gbs_model = true
burnup = BuTC
transient_option = MICROCRACKING
[]
[clad_density]
type = StrainAdjustedDensity
block = 1
strain_free_density = 6551
[]
[fuel_density]
type = StrainAdjustedDensity
block = 3
strain_free_density = ${initial_fuel_density}
[]
[strain_energy_density]
type = StrainEnergyDensity
block = '1 3'
incremental = true
[]
[]
[UserObjects]
[avg_gap]
type = LayeredAverage
block = 3
variable = penetration
direction = y
num_layers = 48
[]
[pbz]
type = PelletBrittleZone
block = 3
pellet_id = pellet_id
temperature = temp
pellet_radius = 0.00527
number_pellets = 1
execute_on = timestep_begin
[]
[integral_burnup]
type = LayeredAverage
block = 3
variable = burnup
direction = y
num_layers = 1
[]
[]
[Executioner]
type = Transient
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-12'
line_search = 'none'
l_max_its = 40
l_tol = 8e-3
nl_max_its = 40
nl_rel_tol = 1e-3
nl_abs_tol = 1e-10
dtmin = 0.00001
dtmax = 1.0
start_time = 0
end_time = 100
[TimeStepper]
type = IterationAdaptiveDT
dt = 0.0001
optimal_iterations = 200
linear_iteration_ratio = 100
timestep_limiting_function = linear_heat_rate_profile
max_function_change = 500000
force_step_every_function_point = true
[]
[]
[Dampers]
[limitT]
type = MaxIncrement
max_increment = 200.0
variable = temp
[]
[limitX]
type = MaxIncrement
max_increment = 1e-4
variable = disp_x
[]
[]
[Postprocessors]
[max_hoop_strain]
type = ElementExtremeValue
variable = strain_zz
block = 1
[]
[max_SED]
type = ElementExtremeValue
variable = SED
block = 1
[]
[average_grain_radius]
type = ElementAverageValue
block = 3
outputs = 'exodus'
variable = grain_radius
[]
[clad_inner_vol]
type = InternalVolume
boundary = 7
outputs = 'exodus'
execute_on = 'timestep_begin initial'
[]
[flux_from_clad]
type = SideDiffusiveFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
outputs = 'exodus'
[]
[flux_from_fuel]
type = SideDiffusiveFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
outputs = 'exodus'
[]
[rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = 3
[]
[rod_input_power]
type = FunctionValuePostprocessor
function = linear_heat_rate_profile
scale_factor = 0.106
[]
[average_fission_rate]
type = ElementAverageValue
variable = fission_rate
block = '3'
[]
[RAE]
type = RadialAverageEnthalpy
vector_postprocessor = rad_temp
radial_direction = x
axial_direction = y
axial_position = 0.0503
temperature_name = temp
[]
[peak_RAE]
type = TimeExtremeValue
postprocessor = RAE
[]
[]
[VectorPostprocessors]
[rad_temp]
type = NodalValueSampler
block = 3
sort_by = y
variable = temp
execute_on = timestep_end
outputs = dummy
[]
[]
[StandardLWRFuelRodOutputs]
fuel_pellet_blocks = 3
cladding_blocks = 1
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = true
csv = true
[chkfile]
type = CSV
show = 'average_centerline_fuel_temperature average_fission_rate fission_gas_released_percentage peak_RAE rod_total_power'
execute_on = 'FINAL'
[]
[console]
type = Console
max_rows = 25
output_linear = true
[]
[dummy]
type = CSV
enable = false
[]
[]