- rod_ave_lin_powThe power function
C++ Type:FunctionName
Unit:(no unit assumed)
Controllable:No
Description:The power function
AverageFissionRate
Computes the average fission rate (average over time and space).
Description
This Postprocessor computes the global average fission rate. This is computed as where is the average fission rate, is the average (over time) of the rod average linear power, is the cross sectional area (supplied directly or computed from given radii), and is the energy released per fission.
Example Input Syntax
[Postprocessors<<<{"href": "../../syntax/Postprocessors/index.html"}>>>]
[avg_fission_rate]
type = AverageFissionRate<<<{"description": "Computes the average fission rate (average over time and space).", "href": "AverageFissionRate.html"}>>>
fuel_inner_radius<<<{"description": "The inner radius"}>>> = 0.0
fuel_outer_radius<<<{"description": "The outer radius"}>>> = 4.92e-3
rod_ave_lin_pow<<<{"description": "The power function"}>>> = power_profile
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 timestep_end'
[]
[](test/tests/gap_jump_distance/gap_jump_distance_test.i)Input Parameters
- area0Cross sectional area
Default:0
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Cross sectional area
- energy_per_fission3.28451e-11Energy released per fission (J/fission)
Default:3.28451e-11
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Energy released per fission (J/fission)
- fuel_inner_radius0The inner radius
Default:0
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:The inner radius
- fuel_outer_radius0.0041The outer radius
Default:0.0041
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:The outer radius
Optional Parameters
- allow_duplicate_execution_on_initialFalseIn the case where this UserObject is depended upon by an initial condition, allow it to be executed twice during the initial setup (once before the IC and again after mesh adaptivity (if applicable).
Default:False
C++ Type:bool
Controllable:No
Description:In the case where this UserObject is depended upon by an initial condition, allow it to be executed twice during the initial setup (once before the IC and again after mesh adaptivity (if applicable).
- execute_onTIMESTEP_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: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, TRANSFER
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.
- execution_order_group0Execution order groups are executed in increasing order (e.g., the lowest number is executed first). Note that negative group numbers may be used to execute groups before the default (0) group. Please refer to the user object documentation for ordering of user object execution within a group.
Default:0
C++ Type:int
Controllable:No
Description:Execution order groups are executed in increasing order (e.g., the lowest number is executed first). Note that negative group numbers may be used to execute groups before the default (0) group. Please refer to the user object documentation for ordering of user object execution within a group.
- force_postauxFalseForces the UserObject to be executed in POSTAUX
Default:False
C++ Type:bool
Controllable:No
Description:Forces the UserObject to be executed in POSTAUX
- force_preauxFalseForces the UserObject to be executed in PREAUX
Default:False
C++ Type:bool
Controllable:No
Description:Forces the UserObject to be executed in PREAUX
- force_preicFalseForces the UserObject to be executed in PREIC during initial setup
Default:False
C++ Type:bool
Controllable:No
Description:Forces the UserObject to be executed in PREIC during initial setup
Execution Scheduling 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.
- outputsVector of output names where you would like to restrict the output of variables(s) associated with this object
C++ Type:std::vector<OutputName>
Controllable:No
Description:Vector of output names where you would like to restrict the output of variables(s) associated with this object
- 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/IFA_597_3/analysis/rod_8/IFA_597_rod8_frictionless.i)
- (examples/3D_rodlet_3pellets/smeared/smearedTest3D.i)
- (examples/temperature_tables/layered1D_cases/1pt5D.i)
- (assessment/LWR/validation/IFA_597_3/analysis/rod_7/IFA_597_rod7_frictionless.i)
- (test/tests/gap_jump_distance/gap_jump_distance_test.i)
- (assessment/LWR/validation/IFA_597_3/analysis/rod_7/IFA_597_rod7_glued.i)
(test/tests/gap_jump_distance/gap_jump_distance_test.i)
#--------------------------------------------------------------------------------
# Gap conductance test
#
# This provides an input for a test on jump distance calculation in gap conductance
# model.
#
# The mesh consists of two blocks (fuel and cladding).
#
# As-fabricated fuel-cladding diametral_gap =80 micron
# Fuel roughness = 1 micron
# Clad roughness = 1 micron
# Fill gas = Helium
# Gas pressure = 0.5 MPa
# Fuel and clad height = 0.01 m
#
# Jump distance is calculated as a function of temperature, pressure, and fill gas
# composition
#
# Power ramps from 0 to 20 kW/m. Output of gap conductance is compared to a spreadsheet
# calculation.
#
#
# Spreadsheet calculation results:
#
# ==================================================
# T Gap conductance Jump distance
# K W/m^2-K micron
# ==================================================
# 500.0 2.58E+03 1.4
# 583.2 2.87E+03 1.9
# 662.8 3.12E+03 2.4
# 739.9 3.35E+03 2.9
# 815.3 3.56E+03 3.6
# 889.5 3.76E+03 4.3
# ===================================================
#
# W. Liu
#--------------------------------------------------------------------------------
[GlobalParams]
energy_per_fission = 3.2e-11 # J/fission
density = 1
[]
[Mesh]
coord_type = RZ
[mesh]
type = FileMeshGenerator
file = pellet_clad.e
[]
[]
[Functions]
[power_profile]
type = PiecewiseLinear
x = '0 10'
y = '0 20000'
[]
[axial_peaking_factors]
type = PiecewiseBilinear
data_file = peakingfactors.csv
scale_factor = 1
axis = 1 # (0,1,2) => (x,y,z)
[]
[q]
type = CompositeFunction
functions = 'power_profile axial_peaking_factors'
[]
[]
[Variables]
[temp]
order = FIRST
family = LAGRANGE
initial_condition = 500
[]
[]
[AuxVariables]
[gap_cond]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temp
[]
[heat_ie] # time term in heat conduction equation
type = HeatConductionTimeDerivative
variable = temp
[]
[heat_source] # source term in heat conduction equation
type = NeutronHeatSource
variable = temp
block = 2
fission_rate = fission_rate
[]
[]
[Burnup]
[burnup]
block = 2
order = FIRST
family = LAGRANGE
rod_ave_lin_pow = power_profile
axial_power_profile = axial_peaking_factors
num_radial = 80
num_axial = 11
a_lower = 0.0
a_upper = 0.01
fuel_inner_radius = 0
fuel_outer_radius = .00492
fuel_volume_ratio = 1.0
[]
[]
[BCs]
[adiabatic]
type = NeumannBC
boundary = '2 4 6 8'
variable = temp
value = 0
[]
[clad]
type = DirichletBC
boundary = '3'
variable = temp
value = 500
[]
[]
[AuxKernels]
[conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 7
execute_on = 'initial linear'
[]
[]
[ThermalContact]
[thermal_contact]
type = GasGapHeatTransfer
variable = temp
primary = 1
secondary = 7
roughness_coef = 1.0
roughness_primary = 1.0e-6
roughness_secondary = 1.0e-6
emissivity_primary = 0
emissivity_secondary = 0
external_pressure = 0.5e6
jump_distance_model = LANNING
[]
[]
[Materials]
[heat1]
type = HeatConductionMaterial
block = 1
specific_heat = 1.0
thermal_conductivity = 1.0
[]
[heat2]
type = HeatConductionMaterial
block = 2
specific_heat = 1.0
thermal_conductivity = 1.0
[]
[density]
type = ParsedMaterial
block = '1 2'
property_name = density
expression = 1
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
nl_abs_tol = 1e-6
nl_rel_tol = 1e-8
l_tol = 1e-3
l_max_its = 100
start_time = 0.0
dt = 2
end_time = 10
[]
[Postprocessors]
[avg_clad_surface_temp] # average temperature of cladding interior
type = SideAverageValue
boundary = 1
variable = temp
execute_on = 'initial timestep_end'
[]
[avg_fuel_surface_temp] # average temperature of fuel outer surface
type = SideAverageValue
boundary = 7
variable = temp
execute_on = 'initial timestep_end'
[]
[rod_input_power]
type = FunctionValuePostprocessor
function = power_profile
[]
[avg_fission_rate]
type = AverageFissionRate
fuel_inner_radius = 0.0
fuel_outer_radius = 4.92e-3
rod_ave_lin_pow = power_profile
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
[out]
type = Exodus
[]
[]
(assessment/LWR/validation/IFA_597_3/analysis/rod_8/IFA_597_rod8_frictionless.i)
initial_fuel_density = 10500.0
[GlobalParams]
density = ${initial_fuel_density}
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11
volumetric_locking_correction = false
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
acceptable_iterations = 10
acceptable_multiplier = 10
[]
[Mesh]
coord_type = RZ
patch_size = 10
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[mesh]
type = FileMeshGenerator
file = ifa_597r8.e
[]
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[temp]
initial_condition = 300.0
[]
[]
[AuxVariables]
[fast_neutron_flux]
block = 1
[]
[fast_neutron_fluence]
block = 1
[]
[grain_radius]
block = '3 4'
initial_condition = 6.1074e-6
[]
[creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[power_profile]
type = PiecewiseLinear
data_file = 597-R8_linear_power.csv
format = columns
scale_factor = 1.0526316
[]
[axial_peaking_factors]
type = PiecewiseBilinear
data_file = 597-R8_axial_power_peaking_factors.csv
scale_factor = 1
axis = 1
[]
[pressure_ramp]
type = PiecewiseLinear
x = '-100 0 269029548 269030508 269055648 269056588 280124964 280125417'
y = '0 1 1 0.014475 0.014475 0.457 0.457 0.014475'
[]
[flux]
type = PiecewiseLinear
data_file = flux.csv
format = columns
[]
[clad_average_temp]
type = PiecewiseLinear
data_file = 597-R8_clad_outer_temperature.csv
format = columns
[]
[q]
type = CompositeFunction
functions = 'power_profile axial_peaking_factors'
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[pellets]
block = '3 4'
strain = FINITE
temperature = temp
eigenstrain_names = 'fuel_relocation_eigenstrain fuel_thermal_eigenstrain
fuel_volumetric_swelling_eigenstrain'
extra_vector_tags = 'ref'
generate_output = 'stress_xx stress_yy stress_zz vonmises_stress
hydrostatic_stress'
decomposition_method = EigenSolution
[]
[clad]
block = 1
strain = FINITE
temperature = temp
eigenstrain_names = 'clad_irradiation_growth_eigenstrain
clad_thermal_eigenstrain'
extra_vector_tags = 'ref'
generate_output = 'stress_xx stress_yy stress_zz vonmises_stress'
decomposition_method = EigenSolution
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temp
extra_vector_tags = 'ref'
[]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temp
extra_vector_tags = 'ref'
[]
[heat_source_fuel]
type = NeutronHeatSource
variable = temp
block = '3 4'
fission_rate = fission_rate
fraction = 0.95 # per Glyn Rossiter's suggestion
extra_vector_tags = 'ref'
[]
[]
[Burnup]
[burnup]
block = '3 4'
rod_ave_lin_pow = power_profile
axial_power_profile = axial_peaking_factors
num_radial = 80
num_axial = 20
a_lower = 0.00324
a_upper = 0.3571
fuel_inner_radius = 0.000
fuel_outer_radius = 0.0052195
fuel_volume_ratio = .994899
isotopes = 'U235 U238 Pu239 Pu240 Pu241 Pu242'
isotope_fractions = '0.03347 0.96653 0 0 0 0'
RPF = RPF
[]
[]
[AuxKernels]
[fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = 1
axial_power_profile = axial_peaking_factors
function = flux
factor = 1
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 = '3 4'
variable = grain_radius
temperature = temp
execute_on = linear
[]
[creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
block = 1
variable = creep_strain_mag
execute_on = timestep_end
[]
[]
[Contact]
[pellet_clad_mechanical]
primary = 5
secondary = 10
formulation = penalty
model = frictionless
normalize_penalty = true
penalty = 1e14
normal_smoothing_distance = 0.1
[]
[]
[ThermalContact]
[thermal_contact]
type = GasGapHeatTransfer
variable = temp
primary = 5
secondary = 10
initial_moles = initial_moles
gas_released = fission_gas_released
roughness_secondary = 1.3e-6
roughness_primary = 1.38e-6
roughness_coef = 3.2
contact_pressure = contact_pressure
plenum_pressure = plenum_pressure
jump_distance_model = LANNING
refab_time = 269055648
refab_gas_types = He
refab_fractions = 1
quadrature = true
normal_smoothing_distance = 0.1
[]
[]
[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 = temp
function = clad_average_temp
[]
[Pressure]
[coolantPressure]
boundary = '1 2 3'
factor = 7.0e6 #changes to 3.2e6 after 59 MWd/kgUO2
function = pressure_ramp
[]
[]
[PlenumPressure]
[plenumPressure]
boundary = 9
initial_pressure = 1.0e5 #changes to 5e5 after 59 MWd/kgUO2
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
refab_time = 269055648
refab_pressure = 5e5
refab_temperature = 500
refab_volume = 6e-6
[]
[]
[]
[Materials]
[fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
block = '3 4'
burnup_function = burnup
temperature = temp
eigenstrain_name = fuel_volumetric_swelling_eigenstrain
initial_fuel_density = 10500.0
[]
[fuel_thermal]
type = UO2Thermal
block = '3 4'
thermal_conductivity_model = NFIR
temperature = temp
burnup = burnup
initial_porosity = 0.04372
[]
[fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = '3 4'
[]
[fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = '3 4'
temperature = temp
stress_free_temperature = 297
thermal_expansion_coeff = 10e-6
eigenstrain_name = fuel_thermal_eigenstrain
[]
[fuel_elasticity_tensor]
type = UO2ElasticityTensor
block = '3 4'
temperature = temp
[]
[fuel_relocation]
type = UO2RelocationEigenstrain
block = '3 4'
burnup_function = burnup
diameter = 0.010439
rod_ave_lin_pow = power_profile
axial_power_profile = axial_peaking_factors
diametral_gap =2.11e-4
relocation_activation1 = 5000
burnup_relocation_stop = 0.029
eigenstrain_name = fuel_relocation_eigenstrain
[]
[clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[]
[clad_creep_stress]
type = ZryCreepLimbackHoppeUpdate
block = 1
temperature = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
[]
[clad_inelastic_stress]
type = ComputeMultipleInelasticStress
block = 1
tangent_operator = elastic
inelastic_models ='clad_creep_stress'
[]
[clad_elasticity_tensor]
type = ZryElasticityTensor
block = 1
[]
[clad_irradiation_growth]
type = ZryIrradiationGrowthEigenstrain
block = 1
fast_neutron_fluence = fast_neutron_fluence
eigenstrain_name = clad_irradiation_growth_eigenstrain
[]
[clad_thermal_expansion]
type = ZryThermalExpansionMATPROEigenstrain
block = 1
stress_free_temperature = 297
temperature = temp
eigenstrain_name = 'clad_thermal_eigenstrain'
[]
[fission_gas_release]
type = UO2Sifgrs
block = '3 4'
temperature = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
initial_porosity = 0.04372
diff_coeff_option = TURNBULL_D1_D2
transient_option = MICROCRACKING
[]
[density_clad]
type = StrainAdjustedDensity
block = 1
strain_free_density = 6551.0
[]
[density_fuel]
type = StrainAdjustedDensity
block = '3 4'
strain_free_density = ${initial_fuel_density}
[]
[]
[Dampers]
[limitT]
type = MaxIncrement
max_increment = 100.0
variable = temp
[]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
l_max_its = 100
l_tol = 8e-3
nl_max_its = 25
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
start_time = -100
end_time = 280125417
dtmax = 2e6
dtmin = 1
[TimeStepper]
type = IterationAdaptiveDT
optimal_iterations = 20
linear_iteration_ratio = 100
dt = 100
force_step_every_function_point = true
timestep_limiting_function = power_profile
[]
[Quadrature]
order = FIFTH
side_order = SEVENTH
[]
[]
[Postprocessors]
[clad_inner_vol]
type = InternalVolume
boundary = 7
outputs = exodus
[]
[fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block ='3 4'
outputs = exodus
[]
[fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = '3 4'
outputs = exodus
[]
[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 4'
[]
[rod_input_power]
type = FunctionValuePostprocessor
function = power_profile
scale_factor = 0.3539 # rod height
[]
[average_fission_rate]
type = AverageFissionRate
rod_ave_lin_pow = power_profile
fuel_outer_radius = 0.0052195
fuel_inner_radius = 0.000
outputs = exodus
[]
[power_tc_location]
type = FunctionValuePostprocessor
function = q
point = '0 0.33319 0'
[]
[TC_temp]
type = NodalVariableValue
variable = temp
nodeid = 7476 # Global NodeID 7477
[]
[elongation]
type = NodalVariableValue
variable = disp_y
nodeid = 1887 # Global NodeID 1888
[]
[]
[PerformanceMetricOutputs]
[]
[StandardLWRFuelRodOutputs]
temperature = temp
fuel_pellet_blocks = '3 4'
[]
[Outputs]
perf_graph = true
csv = 1
exodus = true
color = false
[console]
type = Console
max_rows = 25
[]
[chkfile]
type = CSV
show = 'average_burnup fission_gas_released_percentage TC_temp rod_total_power elongation'
execute_on = 'FINAL'
[]
[]
(examples/3D_rodlet_3pellets/smeared/smearedTest3D.i)
initial_fuel_density = 10431.0
[GlobalParams]
density = ${initial_fuel_density} # initial fuel density 95.0% of theoretical (10980 kg/m3)
displacements = 'disp_x disp_y disp_z'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
[]
[Mesh]
patch_size = 20
patch_update_strategy = iteration
partitioner = centroid
centroid_partitioner_direction = y
[mesh]
type = FileMeshGenerator
file = smearedTest3.e
[]
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
group_variables = 'disp_x disp_y disp_z'
[]
[Variables]
[temp]
initial_condition = 580
[]
[]
[AuxVariables]
[fast_neutron_flux]
block = clad
[]
[fast_neutron_fluence]
block = clad
[]
[grain_radius]
block = pellet_type_1
initial_condition = 10e-6
[]
[gap_cond]
order = CONSTANT
family = MONOMIAL
[]
[coolant_htc]
order = CONSTANT
family = MONOMIAL
[]
[hoop_inelastic_strain]
order = CONSTANT
family = MONOMIAL
block = clad
[]
[]
[Functions]
[power_history]
type = PiecewiseLinear
data_file = powerhistory.csv
scale_factor = 1
[]
[axial_peaking_factors]
type = ParsedFunction
expression = 1
[]
[pressure_ramp]
type = PiecewiseLinear
x = '-200 0'
y = '0 1'
[]
[]
[Kernels]
[gravity]
type = Gravity
variable = disp_y
value = -9.81
[]
[heat]
type = HeatConduction
variable = temp
extra_vector_tags = 'ref'
[]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temp
extra_vector_tags = 'ref'
[]
[heat_source]
type = NeutronHeatSource
variable = temp
block = pellet_type_1
fission_rate = fission_rate
extra_vector_tags = 'ref'
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[pellets]
block = pellet_type_1
add_variables = true
strain = FINITE
eigenstrain_names = 'fuel_relocation_eigenstrain fuel_thermal_strain fuel_volumetric_swelling_eigenstrain'
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
add_variables = true
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'
[]
[]
[Burnup]
[burnup]
block = pellet_type_1
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
num_radial = 80
num_axial = 11
a_lower = 2.49e-3
a_upper = 2.621e-2
fuel_inner_radius = 0
fuel_outer_radius = 0.0041
fuel_volume_ratio = 1.0
RPF = RPF
[]
[]
[AuxKernels]
[fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
factor = 3e13
execute_on = timestep_begin
[]
[fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = clad
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[]
[grain_radius]
type = GrainRadiusAux
block = pellet_type_1
variable = grain_radius
temperature = temp
execute_on = linear
[]
[conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[]
[coolant_htc]
type = MaterialRealAux
property = coolant_channel_htc
variable = coolant_htc
boundary = 2
[]
[hoop_inelastic_strain]
type = RankTwoScalarAux
rank_two_tensor = creep_strain
variable = hoop_inelastic_strain
scalar_type = HoopStress
execute_on = timestep_end
[]
[]
[Contact]
[pellet_clad_mechanical]
primary = 5
secondary = 10
formulation = kinematic
penalty = 1e14
normalize_penalty = true
model = frictionless
normal_smoothing_distance = 0.1
[]
[]
[ThermalContact]
[thermal_contact]
type = GasGapHeatTransfer
variable = temp
primary = 5
secondary = 10
initial_moles = initial_moles
gas_released = fission_gas_released
tangential_tolerance = 1e-4
contact_pressure = contact_pressure
quadrature = true
normal_smoothing_distance = 0.1
[]
[]
[BCs]
[no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[]
[no_z_all]
type = DirichletBC
variable = disp_z
boundary = 13
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
[]
[Pressure]
[coolantPressure]
boundary = '1 2 3'
factor = 15.5e6
function = pressure_ramp
[]
[]
[PlenumPressure]
[plenumPressure]
boundary = 9
initial_pressure = 2.0e6
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = interior_temp
volume = gas_volume
material_input = fission_gas_released
output = plenum_pressure
[]
[]
[]
[CoolantChannel]
[convective_clad_surface]
boundary = '1 2 3'
variable = temp
inlet_temperature = 580 # K
inlet_pressure = 15.5e6 # Pa
inlet_massflux = 3800 # kg/m^2-sec
rod_diameter = 0.948e-2 # m
rod_pitch = 1.26e-2 # m
linear_heat_rate = power_history
axial_power_profile = axial_peaking_factors
[]
[]
[Materials]
[fuel_thermal]
type = UO2Thermal
block = pellet_type_1
thermal_conductivity_model = NFIR
temperature = temp
burnup_function = burnup
initial_porosity = 0.05
[]
[fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = pellet_type_1
[]
[fuel_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = pellet_type_1
youngs_modulus = 2.0e11
poissons_ratio = 0.345
[]
[fuel_relocation]
type = UO2RelocationEigenstrain
block = pellet_type_1
burnup_function = burnup
diameter = 0.0082
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
diametral_gap =160e-6
relocation_activation1 = 5000
burnup_relocation_stop = 0.02
eigenstrain_name = 'fuel_relocation_eigenstrain'
[]
[fuel_swelling]
type = UO2VolumetricSwellingEigenstrain
block = pellet_type_1
burnup_function = burnup
temperature = temp
initial_fuel_density = 10431.0
eigenstrain_name = 'fuel_volumetric_swelling_eigenstrain'
[]
[fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = pellet_type_1
thermal_expansion_coeff = 10.0e-6
temperature = temp
stress_free_temperature = 580.0
eigenstrain_name = 'fuel_thermal_strain'
[]
[fission_gas_release]
type = UO2Sifgrs
block = pellet_type_1
temperature = temp
fission_rate = fission_rate
grain_radius = grain_radius
gbs_model = true
[]
[fuel_density]
type = StrainAdjustedDensity
block = pellet_type_1
strain_free_density = ${initial_fuel_density}
[]
[clad_thermal]
type = HeatConductionMaterial
block = clad
thermal_conductivity = 16.0
specific_heat = 330.0
[]
[clad_elasticity_tensor]
type = ZryElasticityTensor
block = clad
[]
[clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'clad_zrycreep'
block = clad
[]
[clad_zrycreep]
type = ZryCreepLimbackHoppeUpdate
block = clad
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 = clad
temperature = temp
stress_free_temperature = 580.0
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 = 6551.0
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package -ksp_gmres_restart'
petsc_options_value = ' lu superlu_dist 51'
line_search = 'none'
l_max_its = 50
l_tol = 8e-3
nl_max_its = 15
nl_rel_tol = 1e-5
nl_abs_tol = 1e-10
start_time = -200
end_time = 3.0e7
dtmax = 2e6
dtmin = 1
[TimeStepper]
type = IterationAdaptiveDT
dt = 200
optimal_iterations = 15
iteration_window = 3
linear_iteration_ratio = 100
[]
[Quadrature]
order = fifth
side_order = seventh
[]
[]
[Postprocessors]
[interior_temp]
type = SideAverageValue
boundary = 7
variable = temp
execute_on = 'initial linear'
[]
[clad_inner_vol]
type = InternalVolume
boundary = 7
outputs = exodus
[]
[pellet_volume]
type = InternalVolume
boundary = 8
outputs = exodus
[]
[avg_clad_temp]
type = SideAverageValue
boundary = 7
variable = temp
[]
[fis_gas_produced]
type = ElementIntegralFisGasGeneratedSifgrs
block = pellet_type_1
[]
[fission_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = pellet_type_1
[]
[fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = pellet_type_1
outputs = exodus
[]
[fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = pellet_type_1
outputs = exodus
[]
[gas_volume]
type = InternalVolume
boundary = 9
execute_on = 'initial linear'
[]
[flux_from_clad]
type = SideDiffusiveFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[]
[flux_from_fuel]
type = SideDiffusiveFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[]
[average_fissionrate]
type = ElementAverageValue
block = 3
variable = fission_rate
[]
[rod_total_power] # should be 1/4 of the rod_input_power as we are using in quarter symmetry
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = pellet_type_1
[]
[rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 0.02372
[]
[average_fission_rate]
type = AverageFissionRate
rod_ave_lin_pow = power_history
[]
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = true
[console]
type = Console
max_rows = 25
[]
[chkfile]
type = CSV
execute_on = FINAL
show = 'fission_gas_released plenum_pressure interior_temp gas_volume'
[]
[]
(examples/temperature_tables/layered1D_cases/1pt5D.i)
#
# This calculation originates in CASL, where there was a need to compute a fuel
# temperature table to be used in another application.
#
# The set of calculations done here through the 'examples' file can be visually
# checked by running './create_temp_table.py files.txt' and examining the
# raw_data.png file. The temperatures in the plot increase with increasing
# linear heat rate. At 15 kW/ft, it appears that the high power and centerline
# temperature cause a small gap and a relatively low rod average fuel
# temperature. If the centerline temperature is plotted instead, the expected
# increase in temperature with increase in linear heat rate is clear.
#
initial_fuel_density = 10257.0
[GlobalParams]
density = ${initial_fuel_density}
initial_porosity = 0.05
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
displacements = disp_x
temperature = temp
volumetric_locking_correction = false
slice_heights = '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 0.16152' #VERA_DEFINED <<VERA MODIFIED>>
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[Mesh]
coord_type = RZ
partitioner = centroid
centroid_partitioner_direction = y
patch_update_strategy = auto
[layered1D_mesh]
type = Layered1DMeshGenerator
clad_mesh_density = customize
pellet_mesh_density = customize
clad_thickness = 0.00057
slices_per_block = 49
uniform_slice_heights = false
pellet_outer_radius = 0.004096
clad_gap_width = 8.4e-05
nx_p = 6
nx_c = 3
elem_type = EDGE3
bx_p = 0.5
[]
[]
[UserObjects]
[pin_geometry]
type = Layered1DFuelPinGeometry
mesh_generator = layered1D_mesh
[]
[terminator1]
type = Terminator
expression = 'burnup_EAV >= 0.0632'
[]
[terminator2]
type = Terminator
expression = 'plenum_pressure >= 1.55e7'
[]
[]
[Variables]
[temp]
initial_condition = 293.0
[]
[]
[AuxVariables]
[fast_neutron_flux]
block = clad
[]
[fast_neutron_fluence]
block = clad
[]
[grain_radius]
block = fuel
initial_condition = 2.50e-06
[]
[stress_xx]
order = CONSTANT
family = MONOMIAL
[]
[stress_yy]
order = CONSTANT
family = MONOMIAL
[]
[stress_zz]
order = CONSTANT
family = MONOMIAL
[]
[vonmises]
order = CONSTANT
family = MONOMIAL
[]
[creep_strain_rate]
order = CONSTANT
family = MONOMIAL
[]
[creep_strain]
order = CONSTANT
family = MONOMIAL
[]
[strain_xx]
order = CONSTANT
family = MONOMIAL
[]
[gap_cond]
order = CONSTANT
family = MONOMIAL
[]
[coolant_htc]
order = CONSTANT
family = MONOMIAL
[]
[solid_swell]
order = CONSTANT
family = MONOMIAL
block = fuel
[]
[gas_swell]
order = CONSTANT
family = MONOMIAL
block = fuel
[]
[densification]
order = CONSTANT
family = MONOMIAL
block = fuel
[]
[volumetric_swelling_strain]
order = CONSTANT
family = MONOMIAL
block = fuel
[]
[relocation]
order = CONSTANT
family = MONOMIAL
block = fuel
[]
[]
[Functions]
[power_history]
type = PiecewiseLinear
x = '0.000000 10800 97200 500000000.000000'
# y = '0.000000 0.000000 16404.200000 16404.200000' #LHR5
scale_factor = 1
[]
[axial_peaking_factors]
type = PiecewiseBilinear
x = '0.00324 3.77797'
y = '0.000000 10800 97200 500000000.000000'
z = '1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000'
axis = 1
scale_factor = 1
[]
[bc_temperature]
type = PiecewiseBilinear
x = '0.00324 3.77797'
y = '0.000000 10800 97200 500000000.000000'
z = '300.000000 300.000000 585.000000 585.000000 585.000000 585.000000 585.000000 585.000000'
axis = 1
[]
[pressure_ramp]
type = PiecewiseLinear
scale_factor = 1
x = '0 10800.0'
y = '0.00651 1.0'
[]
[clad_axial_pressure]
type = CladdingAxialPressureFunction
plenum_pressure = plenum_pressure
coolant_pressure = pressure_ramp
coolant_pressure_scaling_factor = 1.55132e+07
fuel_pin_geometry = pin_geometry
[]
[fuel_axial_pressure]
type = ParsedFunction
expression = plenum_pressure
symbol_names = plenum_pressure
symbol_values = plenum_pressure
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temp
extra_vector_tags = 'ref'
[]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temp
extra_vector_tags = 'ref'
[]
[heat_source]
type = NeutronHeatSource
variable = temp
extra_vector_tags = 'ref'
block = fuel
fission_rate = fission_rate
[]
[]
[Physics]
[SolidMechanics]
[Layered1D]
[fuel]
add_variables = true
add_scalar_variables = true
out_of_plane_strain_name = strain_yy
fuel_pin_geometry = pin_geometry
block = fuel
out_of_plane_pressure_function = fuel_axial_pressure
strain = finite
eigenstrain_names = 'fuelthermal_strain fuel_swelling fuel_relocation'
extra_vector_tags = 'ref'
mesh_generator = layered1D_mesh
group_scalar_vars_in_reference_residual = true
[]
[clad]
add_variables = true
add_scalar_variables = true
out_of_plane_strain_name = strain_yy
fuel_pin_geometry = pin_geometry
block = clad
out_of_plane_pressure_function = clad_axial_pressure
strain = finite
eigenstrain_names = 'clad_thermal_eigenstrain clad_irradiation_strain'
extra_vector_tags = 'ref'
mesh_generator = layered1D_mesh
group_scalar_vars_in_reference_residual = true
[]
[]
[]
[]
[Burnup]
[burnup]
block = fuel
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
num_radial = 80
num_axial = 100
order = CONSTANT
family = MONOMIAL
RPF = RPF
isotopes = 'U235 U238'
isotope_fractions = '0.001 0.999'
fuel_volume_ratio = 1.0
fuel_pin_geometry = pin_geometry
[]
[]
[AuxKernels]
[fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
factor = 4.29768e13
execute_on = timestep_begin
[]
[fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = clad
fast_neutron_flux = fast_neutron_flux
execute_on = timestep_begin
[]
[grain_radius]
type = GrainRadiusAux
block = fuel
variable = grain_radius
temperature = temp
execute_on = linear
[]
[stress_xx]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_xx
index_i = 0
index_j = 0
execute_on = timestep_end
[]
[stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
execute_on = timestep_end
[]
[stress_zz]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_zz
index_i = 2
index_j = 2
execute_on = timestep_end
[]
[vonmises]
type = RankTwoScalarAux
rank_two_tensor = stress
variable = vonmises
scalar_type = VonMisesStress
execute_on = timestep_end
[]
[creep_strain]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain
block = clad
execute_on = timestep_end
[]
[strain_xx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_xx
index_i = 0
index_j = 0
execute_on = timestep_end
[]
[creep_strain_rate]
type = MaterialRealAux
property = creep_rate
variable = creep_strain_rate
block = clad
[]
[solid_swell]
type = MaterialRealAux
variable = solid_swell
property = solid_swelling
execute_on = timestep_end
block = fuel
[]
[gas_swell]
type = MaterialRealAux
variable = gas_swell
property = gas_swelling
execute_on = timestep_end
block = fuel
[]
[densification]
type = MaterialRealAux
variable = densification
property = densification
execute_on = timestep_end
block = fuel
[]
[volumetric_swelling_strain]
type = MaterialRealAux
variable = volumetric_swelling_strain
property = volumetric_swelling_strain
execute_on = timestep_end
block = fuel
[]
[relocation_strain]
type = MaterialRealAux
variable = relocation
property = relocation_strain
execute_on = timestep_end
block = fuel
[]
[]
[Contact]
[pellet_clad_mechanical]
primary = 5
secondary = 10
formulation = kinematic
model = frictionless
normalize_penalty = true
penalty = 5e13
[]
[]
[ThermalContact]
[thermal_contact]
type = GasGapHeatTransfer
variable = temp
primary = 5
secondary = 10
roughness_secondary = 1e-06
roughness_coef = 1.5
roughness_primary = 1e-06
jump_distance_model = LANNING
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
initial_moles = initial_moles
gas_released = fis_gas_released
tangential_tolerance = 1.0e-4
# quadrature = true
[]
[]
[BCs]
[no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[]
[Pressure]
[coolantPressure]
boundary = 2
function = pressure_ramp
factor = 1.55132e+07
[]
[]
[PlenumPressure]
[plenumPressure]
boundary = 9
initial_pressure = 1.99948e+06
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temp
volume = gas_volume
material_input = fis_gas_released
output = plenum_pressure
[]
[]
[clad_coolant_surface]
type = FunctionDirichletBC
variable = temp
boundary = '2'
function = bc_temperature
[]
[]
[LayeredPlenumTemperature]
[plenum_temp]
boundary = 5
inner_surfaces = '5'
outer_surfaces = '10'
temperature = temp
out_of_plane_strain = strain_yy
fuel_pin_geometry = pin_geometry
[]
[]
[Materials]
[fuel_thermal]
type = UO2Thermal
block = fuel
thermal_conductivity_model = NFIR
temperature = temp
burnup_function = burnup
[]
[fuel_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = fuel
youngs_modulus = 2.0e11
poissons_ratio = 0.345
[]
[fuel_stress]
type = ComputeFiniteStrainElasticStress
block = fuel
[]
[relocation]
type = UO2RelocationEigenstrain
block = fuel
burnup_function = burnup
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
burnup_relocation_stop = 0.017
relocation_activation1 = 5000.0
relocation_model = ESCORE_modified
eigenstrain_name = fuel_relocation
fuel_pin_geometry = pin_geometry
[]
[fuel_thermal_strain]
type = ComputeThermalExpansionEigenstrain
block = fuel
thermal_expansion_coeff = 10.0e-6
stress_free_temperature = 293.0
eigenstrain_name = fuelthermal_strain
[]
[fuel_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
block = fuel
burnup_function = burnup
total_densification = 0.005
initial_fuel_density = 10257.0
eigenstrain_name = fuel_swelling
[]
[fuel_density]
type = StrainAdjustedDensity
block = fuel
strain_free_density = ${initial_fuel_density}
[]
[clad_thermal]
type = HeatConductionMaterial
block = clad
thermal_conductivity = 16.0
specific_heat = 330.0
[]
[clad_elasticity_tensor]
type = ZryElasticityTensor
matpro_poissons_ratio = false
matpro_youngs_modulus = false
block = clad
[]
[stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'zrycreep'
block = clad
[]
[zrycreep]
type = ZryCreepLimbackHoppeUpdate
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 = zirlo
block = clad
[]
[thermal_expansion]
type = ZryThermalExpansionMATPROEigenstrain
block = clad
stress_free_temperature = 293.0
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 = 6560.0
[]
[fission_gas_release]
type = UO2Sifgrs
block = fuel
temperature = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
[]
[]
[Dampers]
[temp]
type = MaxIncrement
variable = temp
max_increment = 50
[]
[disp_x]
type = MaxIncrement
variable = disp_x
max_increment = 1e-5
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
verbose = true
l_max_its = 50
l_tol = 8e-3
nl_max_its = 25
nl_rel_tol = 5e-5
nl_abs_tol = 1e-10
start_time = -200
n_startup_steps = 1
end_time = 1e9
dtmin = 1
[TimeStepper]
type = IterationAdaptiveDT
dt = 2e2
optimal_iterations = 10
iteration_window = 2
linear_iteration_ratio = 100
growth_factor = 2
cutback_factor = 0.5
force_step_every_function_point = true
timestep_limiting_function = power_history
[]
[Predictor]
type = SimplePredictor
scale = 1.0
skip_times_old = '0 10800 97200'
[]
[]
[Postprocessors]
[ave_temp_interior]
type = LayeredSideAverageValuePostprocessor
boundary = 9
variable = temp
execute_on = 'initial linear'
fuel_pin_geometry = pin_geometry
[]
[fis_gas_released]
type = LayeredElementIntegralFisGasReleasedSifgrsPostprocessor
block = fuel
fuel_pin_geometry = pin_geometry
execute_on = 'initial timestep_end'
[]
[gas_volume]
type = LayeredInternalVolumePostprocessor
boundary = 9
execute_on = 'initial linear'
component = 0
out_of_plane_strain = strain_yy
fuel_pin_geometry = pin_geometry
[]
[fis_gas_grain]
type = LayeredElementIntegralFisGasGrainSifgrsPostprocessor
block = fuel
fuel_pin_geometry = pin_geometry
[]
[fis_gas_boundary]
type = LayeredElementIntegralFisGasBoundarySifgrsPostprocessor
block = fuel
fuel_pin_geometry = pin_geometry
[]
[average_clad_temp]
type = ElementAverageValue
block = clad
variable = temp
execute_on = 'initial timestep_end'
[]
[max_clad_temp]
type = ElementExtremeValue
value_type = MAX
block = clad
variable = temp
execute_on = 'initial timestep_end'
[]
[min_clad_temp]
type = ElementExtremeValue
value_type = MIN
block = clad
variable = temp
execute_on = 'initial timestep_end'
[]
[average_grain_radius]
type = ElementAverageValue
variable = grain_radius
block = fuel
[]
[clad_inner_vol]
type = LayeredInternalVolumePostprocessor
boundary = 7
component = 0
fuel_pin_geometry = pin_geometry
out_of_plane_strain = strain_yy
[]
[pellet_volume]
type = LayeredInternalVolumePostprocessor
boundary = 8
component = 0
fuel_pin_geometry = pin_geometry
out_of_plane_strain = strain_yy
[]
[fis_gas_produced]
type = LayeredElementIntegralFisGasGeneratedSifgrsPostprocessor
block = fuel
fuel_pin_geometry = pin_geometry
[]
[flux_from_clad]
type = LayeredSideFluxIntegralPostprocessor
variable = temp
boundary = 5
diffusivity = thermal_conductivity
fuel_pin_geometry = pin_geometry
[]
[flux_from_fuel]
type = LayeredSideFluxIntegralPostprocessor
variable = temp
boundary = 10
diffusivity = thermal_conductivity
fuel_pin_geometry = pin_geometry
[]
[_dt]
type = TimestepSize
[]
[nonlinear_its]
type = NumNonlinearIterations
[]
[linear_its]
type = NumLinearIterations
[]
[rod_average_fuel_temp]
type = ElementAverageValue
block = fuel
variable = temp
execute_on = 'initial timestep_end'
[]
[rod_total_power]
type = LayeredElementIntegralPowerPostprocessor
variable = temp
fission_rate = fission_rate
block = fuel
fuel_pin_geometry = pin_geometry
execute_on = 'initial timestep_end'
[]
[rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 3.6576
execute_on = 'initial timestep_end'
[]
[average_fission_rate]
type = AverageFissionRate
rod_ave_lin_pow = power_history
[]
[clad_hoop_stress_max]
type = ElementExtremeValue
value_type = MAX
variable = stress_zz
block = clad
execute_on = 'initial timestep_end'
[]
[clad_hoop_stress_min]
type = ElementExtremeValue
value_type = MIN
variable = stress_zz
block = clad
execute_on = 'initial timestep_end'
[]
[max_fuel_centerline_temp]
type = NodalExtremeValue
variable = temp
boundary = 12
execute_on = 'initial timestep_end'
[]
[max_fuel_surface_temp]
type = NodalExtremeValue
value_type = MAX
variable = temp
boundary = 10
execute_on = 'initial timestep_end'
[]
[max_gap_distance]
type = NodalExtremeValue
value_type = MAX
variable = penetration
boundary = 10
execute_on = 'initial timestep_end'
[]
[burnup_EAV]
type = ElementAverageValue
block = fuel
variable = burnup
[]
[average_burnup]
type = RodAverageBurnup
burnup_function = burnup
[]
[fission_gas_release]
type = FGRPercent
fission_gas_released = fis_gas_released
fission_gas_generated = fis_gas_produced
[]
[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
[]
[]
[Outputs]
perf_graph = true
exodus = false
color = false
[csv]
type = CSV
execute_on = 'initial timestep_end'
[]
[chkfile]
type = CSV
show = 'fission_gas_release plenum_pressure rod_average_fuel_temp max_fuel_centerline_temp burnup_EAV'
sync_only = true
sync_times = '0 10800 97200'
[]
[]
(assessment/LWR/validation/IFA_597_3/analysis/rod_7/IFA_597_rod7_frictionless.i)
initial_fuel_density = 10500.0
[GlobalParams]
density = ${initial_fuel_density}
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11
volumetric_locking_correction = false
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
acceptable_iterations = 10
acceptable_multiplier = 10
[]
[Mesh]
coord_type = RZ
patch_size = 10
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[mesh]
type = FileMeshGenerator
file = ifa_597r7.e
[]
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[temp]
initial_condition = 300.0
[]
[]
[AuxVariables]
[fast_neutron_flux]
block = 1
[]
[fast_neutron_fluence]
block = 1
[]
[grain_radius]
block = '3 4'
initial_condition = 6.1074e-6
[]
[creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[power_profile]
type = PiecewiseLinear
data_file = 597-R7_linear_power.csv
format = columns
scale_factor = 1.0526316
[]
[axial_peaking_factors]
type = PiecewiseBilinear
data_file = 597-R7_axial_power_peaking_factors.csv
scale_factor = 1
axis = 1
[]
[pressure_ramp]
type = PiecewiseLinear
x = '-100 0 269029548 269030508 269055648 269056588 280124964 280125427'
y = '0 1 1 0.014475 0.014475 0.457 0.457 0.014475'
[]
[flux]
type = PiecewiseLinear
data_file = flux.csv
format = columns
[]
[clad_average_temp]
type = PiecewiseLinear
data_file = 597-R7_clad_outer_temperature.csv
format = columns
[]
[q]
type = CompositeFunction
functions = 'power_profile axial_peaking_factors'
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[pellets]
block = '3 4'
strain = FINITE
temperature = temp
eigenstrain_names = 'fuel_relocation_eigenstrain fuel_thermal_eigenstrain
fuel_volumetric_swelling_eigenstrain'
extra_vector_tags = 'ref'
generate_output = 'stress_xx stress_yy stress_zz vonmises_stress
hydrostatic_stress'
decomposition_method = EigenSolution
[]
[clad]
block = 1
strain = FINITE
temperature = temp
eigenstrain_names = 'clad_irradiation_growth_eigenstrain
clad_thermal_eigenstrain'
extra_vector_tags = 'ref'
generate_output = 'stress_xx stress_yy stress_zz vonmises_stress'
decomposition_method = EigenSolution
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temp
extra_vector_tags = 'ref'
[]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temp
extra_vector_tags = 'ref'
[]
[heat_source_fuel]
type = NeutronHeatSource
variable = temp
block = '3 4'
fission_rate = fission_rate
fraction = 0.95 # per Glyn Rossiter's suggestion
extra_vector_tags = 'ref'
[]
[]
[Burnup]
[burnup]
block = '3 4'
rod_ave_lin_pow = power_profile
axial_power_profile = axial_peaking_factors
num_radial = 80
num_axial = 20
a_lower = 0.00324
a_upper = 0.3571
fuel_inner_radius = 0.000
fuel_outer_radius = 0.0052195
fuel_volume_ratio = .994899
isotopes = 'U235 U238 Pu239 Pu240 Pu241 Pu242'
isotope_fractions = '0.03347 0.96653 0 0 0 0'
RPF = RPF
[]
[]
[AuxKernels]
[fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = 1
axial_power_profile = axial_peaking_factors
function = flux
factor = 1
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 = '3 4'
variable = grain_radius
temperature = temp
execute_on = linear
[]
[creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
block = 1
variable = creep_strain_mag
execute_on = timestep_end
[]
[]
[Contact]
[pellet_clad_mechanical]
primary = 5
secondary = 10
formulation = penalty
model = frictionless
normalize_penalty = true
penalty = 1e14
normal_smoothing_distance = 0.1
[]
[]
[ThermalContact]
[thermal_contact]
type = GasGapHeatTransfer
variable = temp
primary = 5
secondary = 10
initial_moles = initial_moles
gas_released = fission_gas_released
roughness_secondary = 1.3e-6
roughness_primary = 1.38e-6
roughness_coef = 3.2
contact_pressure = contact_pressure
plenum_pressure = plenum_pressure
jump_distance_model = LANNING
refab_time = 269055648
refab_gas_types = He
refab_fractions = 1
quadrature = true
normal_smoothing_distance = 0.1
[]
[]
[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 = temp
function = clad_average_temp
[]
[Pressure]
[coolantPressure]
boundary = '1 2 3'
factor = 7.0e6 #changes to 3.2e6 after 59 MWd/kgUO2
function = pressure_ramp
[]
[]
[PlenumPressure]
[plenumPressure]
boundary = 9
initial_pressure = 1.0e5 #changes to 5e5 after 59 MWd/kgUO2
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
refab_time = 269055648
refab_pressure = 5e5
refab_temperature = 500
refab_volume = 6e-6
[]
[]
[]
[Materials]
[fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
block = '3 4'
burnup_function = burnup
temperature = temp
eigenstrain_name = fuel_volumetric_swelling_eigenstrain
initial_fuel_density = 10500.0
[]
[fuel_thermal]
type = UO2Thermal
block = '3 4'
thermal_conductivity_model = NFIR
temperature = temp
burnup = burnup
initial_porosity = 0.04372
[]
[fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = '3 4'
[]
[fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = '3 4'
temperature = temp
stress_free_temperature = 297
thermal_expansion_coeff = 10e-6
eigenstrain_name = fuel_thermal_eigenstrain
[]
[fuel_elasticity_tensor]
type = UO2ElasticityTensor
block = '3 4'
temperature = temp
[]
[fuel_relocation]
type = UO2RelocationEigenstrain
block = '3 4'
burnup_function = burnup
diameter = 0.010439
rod_ave_lin_pow = power_profile
axial_power_profile = axial_peaking_factors
diametral_gap =2.11e-4
relocation_activation1 = 5000
burnup_relocation_stop = 0.029
eigenstrain_name = fuel_relocation_eigenstrain
[]
[clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[]
[clad_creep_stress]
type = ZryCreepLimbackHoppeUpdate
block = 1
temperature = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
[]
[clad_inelastic_stress]
type = ComputeMultipleInelasticStress
block = 1
tangent_operator = elastic
inelastic_models ='clad_creep_stress'
[]
[clad_elasticity_tensor]
type = ZryElasticityTensor
block = 1
[]
[clad_irradiation_growth]
type = ZryIrradiationGrowthEigenstrain
block = 1
fast_neutron_fluence = fast_neutron_fluence
eigenstrain_name = clad_irradiation_growth_eigenstrain
[]
[clad_thermal_expansion]
type = ZryThermalExpansionMATPROEigenstrain
block = 1
stress_free_temperature = 297
temperature = temp
eigenstrain_name = 'clad_thermal_eigenstrain'
[]
[fission_gas_release]
type = UO2Sifgrs
block = '3 4'
temperature = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
initial_porosity = 0.04372
diff_coeff_option = TURNBULL_D1_D2
transient_option = MICROCRACKING
[]
[density_clad]
type = StrainAdjustedDensity
block = 1
strain_free_density = 6551.0
[]
[density_fuel]
type = StrainAdjustedDensity
block = '3 4'
strain_free_density = ${initial_fuel_density}
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Dampers]
[limitT]
type = MaxIncrement
max_increment = 100.0
variable = temp
[]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
l_max_its = 100
l_tol = 8e-3
nl_max_its = 25
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
start_time = -100
end_time = 280125427
dtmax = 2e6
dtmin = 1
[TimeStepper]
type = IterationAdaptiveDT
optimal_iterations = 20
linear_iteration_ratio = 100
dt = 100
force_step_every_function_point = true
timestep_limiting_function = power_profile
[]
[Quadrature]
order = FIFTH
side_order = SEVENTH
[]
[]
[Postprocessors]
[clad_inner_vol]
type = InternalVolume
boundary = 7
outputs = exodus
[]
[fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block ='3 4'
outputs = exodus
[]
[fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = '3 4'
outputs = exodus
[]
[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 4'
[]
[rod_input_power]
type = FunctionValuePostprocessor
function = power_profile
scale_factor = 0.3539 # rod height
[]
[average_fission_rate]
type = AverageFissionRate
rod_ave_lin_pow = power_profile
fuel_outer_radius = 0.0052195
fuel_inner_radius = 0.000
outputs = exodus
[]
[power_tc_location]
type = FunctionValuePostprocessor
function = q
point = '0 0.33319 0'
[]
[TC_temp]
type = NodalVariableValue
variable = temp
nodeid = 7476 # Global NodeID 7477
[]
[elongation]
type = NodalVariableValue
variable = disp_y
nodeid = 1887 # Global NodeID 1888
[]
[]
[PerformanceMetricOutputs]
[]
[StandardLWRFuelRodOutputs]
temperature = temp
fuel_pellet_blocks = '3 4'
[]
[Outputs]
perf_graph = true
csv = 1
exodus = true
color = false
[console]
type = Console
max_rows = 25
[]
[chkfile]
type = CSV
show = 'average_burnup fission_gas_released_percentage TC_temp rod_total_power elongation'
execute_on = 'FINAL'
[]
[]
(test/tests/gap_jump_distance/gap_jump_distance_test.i)
#--------------------------------------------------------------------------------
# Gap conductance test
#
# This provides an input for a test on jump distance calculation in gap conductance
# model.
#
# The mesh consists of two blocks (fuel and cladding).
#
# As-fabricated fuel-cladding diametral_gap =80 micron
# Fuel roughness = 1 micron
# Clad roughness = 1 micron
# Fill gas = Helium
# Gas pressure = 0.5 MPa
# Fuel and clad height = 0.01 m
#
# Jump distance is calculated as a function of temperature, pressure, and fill gas
# composition
#
# Power ramps from 0 to 20 kW/m. Output of gap conductance is compared to a spreadsheet
# calculation.
#
#
# Spreadsheet calculation results:
#
# ==================================================
# T Gap conductance Jump distance
# K W/m^2-K micron
# ==================================================
# 500.0 2.58E+03 1.4
# 583.2 2.87E+03 1.9
# 662.8 3.12E+03 2.4
# 739.9 3.35E+03 2.9
# 815.3 3.56E+03 3.6
# 889.5 3.76E+03 4.3
# ===================================================
#
# W. Liu
#--------------------------------------------------------------------------------
[GlobalParams]
energy_per_fission = 3.2e-11 # J/fission
density = 1
[]
[Mesh]
coord_type = RZ
[mesh]
type = FileMeshGenerator
file = pellet_clad.e
[]
[]
[Functions]
[power_profile]
type = PiecewiseLinear
x = '0 10'
y = '0 20000'
[]
[axial_peaking_factors]
type = PiecewiseBilinear
data_file = peakingfactors.csv
scale_factor = 1
axis = 1 # (0,1,2) => (x,y,z)
[]
[q]
type = CompositeFunction
functions = 'power_profile axial_peaking_factors'
[]
[]
[Variables]
[temp]
order = FIRST
family = LAGRANGE
initial_condition = 500
[]
[]
[AuxVariables]
[gap_cond]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temp
[]
[heat_ie] # time term in heat conduction equation
type = HeatConductionTimeDerivative
variable = temp
[]
[heat_source] # source term in heat conduction equation
type = NeutronHeatSource
variable = temp
block = 2
fission_rate = fission_rate
[]
[]
[Burnup]
[burnup]
block = 2
order = FIRST
family = LAGRANGE
rod_ave_lin_pow = power_profile
axial_power_profile = axial_peaking_factors
num_radial = 80
num_axial = 11
a_lower = 0.0
a_upper = 0.01
fuel_inner_radius = 0
fuel_outer_radius = .00492
fuel_volume_ratio = 1.0
[]
[]
[BCs]
[adiabatic]
type = NeumannBC
boundary = '2 4 6 8'
variable = temp
value = 0
[]
[clad]
type = DirichletBC
boundary = '3'
variable = temp
value = 500
[]
[]
[AuxKernels]
[conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 7
execute_on = 'initial linear'
[]
[]
[ThermalContact]
[thermal_contact]
type = GasGapHeatTransfer
variable = temp
primary = 1
secondary = 7
roughness_coef = 1.0
roughness_primary = 1.0e-6
roughness_secondary = 1.0e-6
emissivity_primary = 0
emissivity_secondary = 0
external_pressure = 0.5e6
jump_distance_model = LANNING
[]
[]
[Materials]
[heat1]
type = HeatConductionMaterial
block = 1
specific_heat = 1.0
thermal_conductivity = 1.0
[]
[heat2]
type = HeatConductionMaterial
block = 2
specific_heat = 1.0
thermal_conductivity = 1.0
[]
[density]
type = ParsedMaterial
block = '1 2'
property_name = density
expression = 1
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '201 hypre boomeramg 4'
line_search = 'none'
nl_abs_tol = 1e-6
nl_rel_tol = 1e-8
l_tol = 1e-3
l_max_its = 100
start_time = 0.0
dt = 2
end_time = 10
[]
[Postprocessors]
[avg_clad_surface_temp] # average temperature of cladding interior
type = SideAverageValue
boundary = 1
variable = temp
execute_on = 'initial timestep_end'
[]
[avg_fuel_surface_temp] # average temperature of fuel outer surface
type = SideAverageValue
boundary = 7
variable = temp
execute_on = 'initial timestep_end'
[]
[rod_input_power]
type = FunctionValuePostprocessor
function = power_profile
[]
[avg_fission_rate]
type = AverageFissionRate
fuel_inner_radius = 0.0
fuel_outer_radius = 4.92e-3
rod_ave_lin_pow = power_profile
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
[out]
type = Exodus
[]
[]
(assessment/LWR/validation/IFA_597_3/analysis/rod_7/IFA_597_rod7_glued.i)
initial_fuel_density = 10500.0
[GlobalParams]
density = ${initial_fuel_density}
displacements = 'disp_x disp_y'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11
volumetric_locking_correction = false
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
acceptable_iterations = 10
acceptable_multiplier = 10
[]
[Mesh]
coord_type = RZ
patch_size = 10
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[mesh]
type = FileMeshGenerator
file = ifa_597r7.e
[]
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[temp]
initial_condition = 300.0
[]
[]
[AuxVariables]
[fast_neutron_flux]
block = 1
[]
[fast_neutron_fluence]
block = 1
[]
[grain_radius]
block = '3 4'
initial_condition = 6.1074e-6
[]
[creep_strain_mag]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[power_profile]
type = PiecewiseLinear
data_file = 597-R7_linear_power.csv
format = columns
scale_factor = 1.0526316
[]
[axial_peaking_factors]
type = PiecewiseBilinear
data_file = 597-R7_axial_power_peaking_factors.csv
scale_factor = 1
axis = 1
[]
[pressure_ramp]
type = PiecewiseLinear
x = '-100 0 269029548 269030508 269055648 269056588 280124964 280125427'
y = '0 1 1 0.014475 0.014475 0.457 0.457 0.014475'
[]
[flux]
type = PiecewiseLinear
data_file = flux.csv
format = columns
[]
[clad_average_temp]
type = PiecewiseLinear
data_file = 597-R7_clad_outer_temperature.csv
format = columns
[]
[q]
type = CompositeFunction
functions = 'power_profile axial_peaking_factors'
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[pellets]
block = '3 4'
strain = FINITE
temperature = temp
eigenstrain_names = 'fuel_relocation_eigenstrain fuel_thermal_eigenstrain
fuel_volumetric_swelling_eigenstrain'
extra_vector_tags = 'ref'
generate_output = 'stress_xx stress_yy stress_zz vonmises_stress
hydrostatic_stress'
decomposition_method = EigenSolution
[]
[clad]
block = 1
strain = FINITE
temperature = temp
eigenstrain_names = 'clad_irradiation_growth_eigenstrain
clad_thermal_eigenstrain'
extra_vector_tags = 'ref'
generate_output = 'stress_xx stress_yy stress_zz vonmises_stress'
decomposition_method = EigenSolution
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temp
extra_vector_tags = 'ref'
[]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temp
extra_vector_tags = 'ref'
[]
[heat_source_fuel]
type = NeutronHeatSource
variable = temp
block = '3 4'
fission_rate = fission_rate
fraction = 0.95 # per Glyn Rossiter's suggestion
extra_vector_tags = 'ref'
[]
[]
[Burnup]
[burnup]
block = '3 4'
rod_ave_lin_pow = power_profile
axial_power_profile = axial_peaking_factors
num_radial = 80
num_axial = 20
a_lower = 0.00324
a_upper = 0.3571
fuel_inner_radius = 0.000
fuel_outer_radius = 0.0052195
fuel_volume_ratio = .994899
isotopes = 'U235 U238 Pu239 Pu240 Pu241 Pu242'
isotope_fractions = '0.03347 0.96653 0 0 0 0'
RPF = RPF
[]
[]
[AuxKernels]
[fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = 1
axial_power_profile = axial_peaking_factors
function = flux
factor = 1
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 = '3 4'
variable = grain_radius
temperature = temp
execute_on = linear
[]
[creep_strain_mag]
type = MaterialRealAux
property = effective_creep_strain
block = 1
variable = creep_strain_mag
execute_on = timestep_end
[]
[]
[Contact]
[pellet_clad_mechanical]
primary = 5
secondary = 10
penalty = 1e9
formulation = penalty
model = glued
normal_smoothing_distance = 0.1
[]
[]
[ThermalContact]
[thermal_contact]
type = GasGapHeatTransfer
variable = temp
primary = 5
secondary = 10
initial_moles = initial_moles
gas_released = fission_gas_released
roughness_secondary = 1.3e-6
roughness_primary = 1.38e-6
roughness_coef = 3.2
contact_pressure = contact_pressure
plenum_pressure = plenum_pressure
jump_distance_model = LANNING
refab_time = 269055648
refab_gas_types = He
refab_fractions = 1
quadrature = true
normal_smoothing_distance = 0.1
[]
[]
[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 = temp
function = clad_average_temp
[]
[Pressure]
[coolantPressure]
boundary = '1 2 3'
factor = 7.0e6 #changes to 3.2e6 after 59 MWd/kgUO2
function = pressure_ramp
[]
[]
[PlenumPressure]
[plenumPressure]
boundary = 9
initial_pressure = 1.0e5 #changes to 5e5 after 59 MWd/kgUO2
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = plenum_temperature
volume = plenum_volume
material_input = fission_gas_released
output = plenum_pressure
refab_time = 269055648
refab_pressure = 5e5
refab_temperature = 500
refab_volume = 6e-6
[]
[]
[]
[Materials]
[fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
block = '3 4'
burnup_function = burnup
temperature = temp
eigenstrain_name = fuel_volumetric_swelling_eigenstrain
initial_fuel_density = 10500.0
[]
[fuel_thermal]
type = UO2Thermal
block = '3 4'
thermal_conductivity_model = NFIR
temperature = temp
burnup = burnup
initial_porosity = 0.04372
[]
[fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = '3 4'
[]
[fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = '3 4'
temperature = temp
stress_free_temperature = 297
thermal_expansion_coeff = 10e-6
eigenstrain_name = fuel_thermal_eigenstrain
[]
[fuel_elasticity_tensor]
type = UO2ElasticityTensor
block = '3 4'
temperature = temp
[]
[fuel_relocation]
type = UO2RelocationEigenstrain
block = '3 4'
burnup_function = burnup
diameter = 0.010439
rod_ave_lin_pow = power_profile
axial_power_profile = axial_peaking_factors
diametral_gap =2.11e-4
relocation_activation1 = 5000
burnup_relocation_stop = 0.029
eigenstrain_name = fuel_relocation_eigenstrain
[]
[clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[]
[clad_creep_stress]
type = ZryCreepLimbackHoppeUpdate
block = 1
temperature = temp
fast_neutron_flux = fast_neutron_flux
fast_neutron_fluence = fast_neutron_fluence
[]
[clad_inelastic_stress]
type = ComputeMultipleInelasticStress
block = 1
tangent_operator = elastic
inelastic_models ='clad_creep_stress'
[]
[clad_elasticity_tensor]
type = ZryElasticityTensor
block = 1
[]
[clad_irradiation_growth]
type = ZryIrradiationGrowthEigenstrain
block = 1
fast_neutron_fluence = fast_neutron_fluence
eigenstrain_name = clad_irradiation_growth_eigenstrain
[]
[clad_thermal_expansion]
type = ZryThermalExpansionMATPROEigenstrain
block = 1
stress_free_temperature = 297
temperature = temp
eigenstrain_name = 'clad_thermal_eigenstrain'
[]
[fission_gas_release]
type = UO2Sifgrs
block = '3 4'
temperature = temp
burnup_function = burnup
grain_radius = grain_radius
gbs_model = true
initial_porosity = 0.04372
diff_coeff_option = TURNBULL_D1_D2
transient_option = MICROCRACKING
[]
[density_clad]
type = StrainAdjustedDensity
block = 1
strain_free_density = 6551.0
[]
[density_fuel]
type = StrainAdjustedDensity
block = '3 4'
strain_free_density = ${initial_fuel_density}
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Dampers]
[limitT]
type = MaxIncrement
max_increment = 100.0
variable = temp
[]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = ' lu superlu_dist'
line_search = 'none'
l_max_its = 100
l_tol = 8e-3
nl_max_its = 25
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
start_time = -100
end_time = 280125427
dtmax = 2e6
dtmin = 1
[TimeStepper]
type = IterationAdaptiveDT
optimal_iterations = 20
linear_iteration_ratio = 100
dt = 100
force_step_every_function_point = true
timestep_limiting_function = power_profile
[]
[Quadrature]
order = FIFTH
side_order = SEVENTH
[]
[]
[Postprocessors]
[clad_inner_vol]
type = InternalVolume
boundary = 7
outputs = exodus
[]
[fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block ='3 4'
outputs = exodus
[]
[fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = '3 4'
outputs = exodus
[]
[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 4'
[]
[rod_input_power]
type = FunctionValuePostprocessor
function = power_profile
scale_factor = 0.3539 # rod height
[]
[average_fission_rate]
type = AverageFissionRate
rod_ave_lin_pow = power_profile
fuel_outer_radius = 0.0052195
fuel_inner_radius = 0.000
outputs = exodus
[]
[power_tc_location]
type = FunctionValuePostprocessor
function = q
point = '0 0.33319 0'
[]
[TC_temp]
type = NodalVariableValue
variable = temp
nodeid = 7476 # Global NodeID 7477
[]
[elongation]
type = NodalVariableValue
variable = disp_y
nodeid = 1887 # Global NodeID 1888
[]
[]
[PerformanceMetricOutputs]
[]
[StandardLWRFuelRodOutputs]
temperature = temp
fuel_pellet_blocks = '3 4'
[]
[Outputs]
perf_graph = true
csv = 1
exodus = true
color = false
[console]
type = Console
max_rows = 25
[]
[chkfile]
type = CSV
show = 'average_burnup fission_gas_released_percentage TC_temp rod_total_power elongation'
execute_on = 'FINAL'
[]
[]