- fission_rate_formulationGENERICThe active fission rate formulation.
Default:GENERIC
C++ Type:MooseEnum
Controllable:No
Description:The active fission rate formulation.
- 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
FissionRateGeneral
Provides various implementations which allow the user to set the fission rate.
Description
The FissionRateGeneral AuxKernel computes the fission rate (fissions/m/s) according to the formulation selected by the user. The available formulations are GENERIC, POWER_DENSITY, LWR, MOX and AXIAL.
Generic Formulation
The generic formulation simply sets the value of a variable that stores the fission rate to either a constant value or a value prescribed by a function that is passed in through an inputParameter called fission_rate_function. This can be utilized through setting fission_rate_formulation to GENERIC. This is the default formulation.
Power Density Formulation
Like the generic formulation, the power density formulation sets the fission rate based on a function and a scaling factor. This formulation is intended to be used specifically in the case where the input function, power_density_functoin, defines the power density (in W/m). The power density is divided by a user-provided constant, energy_per_fission (J/fission), to provide the fission rate in (fissions/m/s). This can be utilized through setting the fission_rate_formulation to POWER_DENSITY.
LWR Formulation
This formulatin is designed to calculate fission rate given rod averaged linear power and pellet dimensions. This can be utilized through setting fission_rate_formulation to LWR.
MOX Formulation
The MOX formulation is designed to calculate fission rate given rod averaged linear power and pellet dimensions and porosity as a coupled variable. The fission rate is scaled by the following term:
This can be utilized through setting fission_rate_formulation to MOX.
Axial Formulation
The axial formulation calculates the fission rate from the user defined fuel stack top and bottom with a normalized sixth order polynomial function. where is the normalized current node location, defined as
This can be utilized through setting fission_rate_formulation to AXIAL.
Example Input Syntax
[AuxKernels<<<{"href": "../../syntax/AuxKernels/index.html"}>>>]
[fissionrate]
type = FissionRateGeneral<<<{"description": "Provides various implementations which allow the user to set the fission rate.", "href": "FissionRateGeneral.html"}>>>
variable<<<{"description": "The name of the variable that this object applies to"}>>> = fission_rate
fission_rate_formulation<<<{"description": "The active fission rate formulation."}>>> = 'GENERIC'
value<<<{"description": "If no function is provided, the value of the fission rate, otherwise, a scaling factor for the function."}>>> = 100
fission_rate_function<<<{"description": "The function that describes the fission rate."}>>> = Fiss_func
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_begin'
[]
[](test/tests/fission_rate_generic/generic_form.i)Input Parameters
- axial_power_profileThe axial power profile function.
C++ Type:FunctionName
Unit:(no unit assumed)
Controllable:No
Description:The axial power profile function.
- axisThe axis used (0, 1, or 2 for x, y, or z).
C++ Type:int
Controllable:No
Description:The axis used (0, 1, or 2 for x, y, or z).
- 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
- energy_per_fission3.28451e-11Energy in Joules per fission.
Default:3.28451e-11
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Energy in Joules per fission.
- 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.
- fission_rate_functionThe function that describes the fission rate.
C++ Type:FunctionName
Unit:(no unit assumed)
Controllable:No
Description:The function that describes the fission rate.
- fuel_bottomThe coordinate at the bottom of the fuel stack.
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:The coordinate at the bottom of the fuel stack.
- fuel_bottom_boundaryThe bottom boundary of the pellet stack.
C++ Type:unsigned int
Controllable:No
Description:The bottom boundary of the pellet stack.
- fuel_topThe coordinate at the top of the fuel stack.
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:The coordinate at the top of the fuel stack.
- fuel_top_boundaryThe top boundary of the pellet stack.
C++ Type:unsigned int
Controllable:No
Description:The top boundary of the pellet stack.
- fuel_volume_ratio1Reduction factor for deviation from right circular cylinder fuel. The ratio of actual volume to right circular cylinder volume.
Default:1
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Reduction factor for deviation from right circular cylinder fuel. The ratio of actual volume to right circular cylinder volume.
- initial_porosity0Initial porosity. Must be the same as the initial condition in the variable block.
Default:0
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Initial porosity. Must be the same as the initial condition in the variable block.
- pellet_diameterFuel pellet diameter in meters.
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Fuel pellet diameter in meters.
- pellet_inner_diameter0Pellet inner diameter in meters for an annular pellet.
Default:0
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Pellet inner diameter in meters for an annular pellet.
- porosityCoupled porosity
C++ Type:std::vector<VariableName>
Unit:(no unit assumed)
Controllable:No
Description:Coupled porosity
- power_density_functionThe function that describes the power density in W/m^3.
C++ Type:FunctionName
Unit:(no unit assumed)
Controllable:No
Description:The function that describes the power density in W/m^3.
- radial_power_profileThe radial power profile function.
C++ Type:FunctionName
Unit:(no unit assumed)
Controllable:No
Description:The radial power profile function.
- rod_ave_lin_powThe rod power history function.
C++ Type:FunctionName
Unit:(no unit assumed)
Controllable:No
Description:The rod power history function.
- value1If no function is provided, the value of the fission rate, otherwise, a scaling factor for the function.
Default:1
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:If no function is provided, the value of the fission rate, otherwise, a scaling factor for the function.
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
- (test/tests/sifgrs/uo2/ad_first_stage.i)
- (test/tests/sifgrs/uo2/first_stage_restart2.i)
- (assessment/MOX/JOYO/MK-I/analysis/MK-I_75MW_master_new_bubble_gb_lim.i)
- (assessment/MOX/JOYO/B14/PTM003/analysis/b14_ptm003_1D_sample2.i)
- (examples/mox_fuel/mox_porosity_demo.i)
- (test/tests/uo2_thermal/Ronchi/ad_test.i)
- (test/tests/uo2_thermal/Ronchi/test.i)
- (test/tests/solid_mechanics/uo2_hotpressing/plasticity.i)
- (test/tests/sifgrs/uo2/ad_chromia_doped.i)
- (assessment/MOX/FFTF/FO-2/L09/analysis/fftf_fo2_L09_sub_1D.i)
- (test/tests/mox_thermal/Halden/test.i)
- (test/tests/thermalMOX/ThermalMOX_test.i)
- (assessment/verification/thermal/2d_3d_thermal_mesh_study/analysis/quad/test_2d.i)
- (test/tests/triso/buffer_thermal_material/buffer_thermal_specific_heat.i)
- (assessment/MOX/JOYO/MK-II/analysis/MK-II_master_new_bubble_gb_lim.i)
- (test/tests/uo2_thermal/FinkLucuta/test.i)
- (test/tests/sifgrs/uo2/polypole2.i)
- (assessment/MOX/JOYO/B14/PTM001/analysis/b14_ptm001_1D_sample3_ox_noAm.i)
- (test/tests/sifgrs/uo2/ad_mechanistic_igmodel.i)
- (assessment/MOX/JOYO/B14/PTM001/analysis/b14_ptm001_1D_sample3.i)
- (test/tests/carbon_monoxide_production/carbon_monoxide_production_test.i)
- (assessment/metallic_fuel/TREAT/M7/analysis/binary_t427.i)
- (test/tests/sifgrs/uo2/swelling_porosity.i)
- (test/tests/sifgrs/uo2/ad_ig_bubble_coarsening.i)
- (test/tests/solid_mechanics/zry_mechanics/zry_irradiation_growth/irradiation_growth_Zr4_rz_var.i)
- (test/tests/element_integral_power/ad_fission_gas_sifgrs_1D.i)
- (test/tests/triso/buffer_thermal_material/buffer_thermal_conductivity.i)
- (test/tests/sifgrs/uo2/negative_temperature_exception.i)
- (test/tests/sifgrs/uo2/ad_scidac_resolution.i)
- (test/tests/grain_radius_aux/grain_radius_hbs.i)
- (test/tests/thermalUO2/thermalUO2_test.i)
- (test/tests/solid_mechanics/uo2_creep/adUo2_creep_rate.i)
- (test/tests/uo2_thermal/NFIR/ad_test.i)
- (test/tests/mox_pore_velocity/MOXActinide_simple.i)
- (assessment/MOX/JOYO/B14/PTM002/analysis/b14_ptm002_1D_sample2.i)
- (test/tests/high_burnup_structure_formation/hbs_formation_varying_temperature.i)
- (test/tests/solid_mechanics/uo2_creep/uo2_creep_x01.i)
- (test/tests/sifgrs/uo2/percolation.i)
- (test/tests/solid_mechanics/uo2_creep/uo2_creep_irradiation.i)
- (assessment/MOX/FFTF/FO-2/L09/analysis/L09_2DRZ_new_bubble_gb_lim_DiffCoeff4_GrainGrowth.i)
- (test/tests/decay_heating/decay_heat_function.i)
- (test/tests/meso_thcond_test/sifgrs_swelling_fissiongas.i)
- (assessment/MOX/FFTF/FO-2/L09/analysis/L09_2DRZ_old_bubble_gb_lim.i)
- (test/tests/solid_mechanics/uo2_creep/adUo2_creep_rz.i)
- (assessment/MOX/JOYO/B14/PTM010/analysis/b14_ptm010_2DRZ_t.i)
- (test/tests/sifgrs/u3si2/burnup_function.i)
- (test/tests/sifgrs/uo2/scidac_resolution.i)
- (test/tests/solid_mechanics/uo2_creep/uo2_creep_rz.i)
- (test/tests/solid_mechanics/uo2_hotpressing/creep_plasticity.i)
- (test/tests/sifgrs/uo2/ad_polypole2.i)
- (test/tests/fgr_fraction/fgr_fraction_test_3D.i)
- (test/tests/solid_mechanics/mox_creep/fastmox_creep_routbort.i)
- (test/tests/sifgrs/uo2/transient_model.i)
- (test/tests/sifgrs/uo2/ad_first_stage_restart2.i)
- (assessment/MOX/JOYO/B14/PTM001/analysis/b14_ptm001_1D_sample2.i)
- (assessment/verification/thermal/2d_3d_thermal_mesh_study/analysis/linear/test_3d.i)
- (test/tests/uo2_transient_fission_gas_release/uo2_pulverization_phasefield2_transient_FGR.i)
- (assessment/MOX/FFTF/FO-2/L09/analysis/fftf_fo2_L09_master.i)
- (test/tests/sifgrs/u3si2/polypole2.i)
- (assessment/MOX/JOYO/B14/PTM010/analysis/b14_ptm010_mechanics.i)
- (test/tests/ifba_he_production/ifba_examp_template.i)
- (test/tests/uo2_thermal/HBSporosity/test.i)
- (test/tests/thermalUO2/thermalUO2_jac_test.i)
- (test/tests/sifgrs/uo2/fast_mox.i)
- (test/tests/high_burnup_structure_formation/hbs_formation_Lassmann.i)
- (test/tests/fission_rate_LWR/fission_to_thermal_power_deprecated.i)
- (test/tests/solid_mechanics/zry_mechanics/zry_irradiation_growth/ad_irradiation_growth_Zr4_test.i)
- (test/tests/sifgrs/uo2/first_stage.i)
- (test/tests/solid_mechanics/mox_creep/fastmox_creep_therm_only.i)
- (test/tests/mox_pore_velocity/MOXPoreVelocityVaporPressure.i)
- (assessment/MOX/JOYO/B14/PTM003/analysis/b14_ptm003_1D_sample1.i)
- (assessment/MOX/JOYO/B14/PTM002/analysis/b14_ptm002_1D_sample1.i)
- (examples/pore_migration/mox_porosity_demo_2D_concentric.i)
- (test/tests/axial_relocation/uo2_pulverization_phasefield2.i)
- (assessment/MOX/JOYO/B14/PTM010/analysis/b14_ptm010_1D_sample1.i)
- (test/tests/sifgrs/uo2/second_stage.i)
- (test/tests/mox_thermal/Amaya/ad_test.i)
- (test/tests/sifgrs/uo2/ad_swelling_porosity.i)
- (test/tests/effective_burnup_aux/effective_burnup.i)
- (test/tests/mox_pore_velocity/MOXPoreVelocity.i)
- (assessment/MOX/JOYO/B14/PTM010/analysis/b14_ptm010_1D_sample2.i)
- (test/tests/sifgrs/uo2/first_stage_restart1.i)
- (test/tests/sifgrs/uo2/ad_diffusion_coefficient.i)
- (test/tests/thermalUO2/ad_thermalUO2_jac_test.i)
- (examples/3D_rodlet_3pellets/discrete_half_symm/3d_3pellets.i)
- (assessment/MOX/JOYO/B14/PTM002/analysis/b14_ptm002_2DRZ_t.i)
- (test/tests/fission_rate_axial/ssets.i)
- (test/tests/uo2_thermal/Toptan/ad_test.i)
- (examples/pore_migration/paper_solid.i)
- (assessment/MOX/JOYO/B14/PTM003/analysis/b14_ptm003_2DRZ_t.i)
- (test/tests/element_integral_power/element_integral_power_rz_test.i)
- (test/tests/sifgrs/uo2/ig_bubble_coarsening.i)
- (examples/TRISO/accident_simulation/triso1D_accident.i)
- (test/tests/solid_mechanics/uo2_creep/uo2_creep_smeared_cracking.i)
- (test/tests/fission_rate_LWR/fission_to_thermal_power.i)
- (test/tests/element_integral_power/element_integral_power_test.i)
- (examples/3D_rodlet_3pellets/discrete_full/3d_3pellets_mortar.i)
- (test/tests/sifgrs/uo2/polypole1_intergranular_coarsening.i)
- (examples/fast_mox_sifgrs/input_single_pellet_sifgrs_mox.i)
- (test/tests/solid_mechanics/mox_creep/mox_creep.i)
- (assessment/MOX/JOYO/MK-II/analysis/MK-II_master_old_bubble_gb_lim.i)
- (test/tests/sifgrs/u3si2/negative_temperature_exception.i)
- (test/tests/axial_relocation/axial_relocation_eigenstrain_action_phasefield.i)
- (test/tests/solid_mechanics/uo2_creep/uo2_creep_rate.i)
- (test/tests/fission_rate_generic/generic_form.i)
- (examples/TRISO/accident_simulation/triso2D_accident.i)
- (test/tests/ifba_he_production/doc/fill_gas_xenon.i)
- (assessment/MOX/FFTF/FO-2/L09/analysis/L09_2DRZ_new_bubble_gb_lim_DiffCoeff4.i)
- (test/tests/element_integral_power/fission_gas_sifgrs_1D.i)
- (test/tests/sifgrs/uo2/chromia_doped.i)
- (test/tests/uo2_thermal/FinkLucuta/ad_test.i)
- (test/tests/uo2_thermal/HBSporosity/ad_test.i)
- (test/tests/sifgrs/uo2/grain_growth.i)
- (assessment/verification/thermal/2d_3d_thermal_mesh_study/analysis/linear/test_2d.i)
- (test/tests/mox_pore_velocity/MOXActinide.i)
- (test/tests/uo2_thermal/NFImod/test.i)
- (assessment/MOX/JOYO/B14/PTM001/analysis/b14_ptm001_2DRZ_t.i)
- (test/tests/sifgrs/uo2/ad_percolation_xfem.i)
- (test/tests/solid_mechanics/u3si2_eigenstrains/u3si2_vswelling/swelling_mechanistic.i)
- (test/tests/fission_rate_MOX/general_form.i)
- (assessment/LWR/validation/Separate_effects_FGB/analysis/Baker_TEM/Baker_TEM_Base.i)
- (assessment/MOX/JOYO/B14/PTM001/analysis/b14_ptm001_1D_sample3_noAm.i)
- (test/tests/sifgrs/uo2/ad_grain_growth.i)
- (examples/3D_rodlet_3pellets/discrete_quarter_symm/3d_3pellets_mortar.i)
- (test/tests/mox_oxygen_transport/mox_oxygen_transport_hypo_V_Pu_low3.3.i)
- (test/tests/solid_mechanics/uo2_creep/adUo2_creep.i)
- (assessment/LWR/validation/Separate_effects_FGB/analysis/White_AGR_SEM/White_AGR_SEM_Base.i)
- (examples/pore_migration/mox_porosity_demo_2D_offset.i)
- (test/tests/mox_thermal/Duriez/ad_test.i)
- (test/tests/axial_relocation/ad_uo2_pulverization_phasefield.i)
- (test/tests/uo2_thermal/Toptan/test.i)
- (test/tests/solid_mechanics/uo2_creep/uo2_creep.i)
- (test/tests/uo2_thermal/Halden/test.i)
- (test/tests/sifgrs/u3si2/intergranular.i)
- (examples/3D_rodlet_3pellets/discrete_quarter_symm/3d_3pellets.i)
- (test/tests/mox_thermal/Duriez/test.i)
- (test/tests/sifgrs/uo2/polypole2_ext_fsngas.i)
- (test/tests/ifba_he_production/doc/fill_gas_helium.i)
- (test/tests/sifgrs/uo2/ad_first_stage_restart1.i)
- (assessment/MOX/JOYO/MK-I/analysis/MK-I_50MW_master_new_bubble_gb_lim.i)
- (test/tests/high_burnup_structure_formation/hbs_formation_constant_temperature.i)
- (test/tests/sifgrs/uo2/ig_bubble_coarsening_disl_density_material.i)
- (examples/TRISO/accident_simulation/triso2D_accident_ad.i)
- (test/tests/uo2_thermal/NFIR/test.i)
- (test/tests/solid_mechanics/uo2_hotpressing/hotpressing_creep_plasticity.i)
- (test/tests/ifba_he_production/fill_gas_xenon_w_ifba.i)
- (test/tests/mox_thermal/Halden/ad_test.i)
- (assessment/MOX/JOYO/B14/PTM002/analysis/b14_ptm002_p-15_percent.i)
- (assessment/MOX/FFTF/FO-2/L09/analysis/fftf_fo2_L09_master_sampleH.i)
- (test/tests/mox_oxygen_transport/mox_oxygen_transport_hypo_V_Pu_up3.3.i)
- (test/tests/meso_thcond_test/onlymeso_thcond_test.i)
- (test/tests/sifgrs/uo2/ad_fast_mox.i)
- (test/tests/sifgrs/uo2/mechanistic_igmodel.i)
- (test/tests/decay_heating/interpolate_vs_series.i)
- (test/tests/gamma_heating/gamma_heating.i)
- (test/tests/sifgrs/uo2/ad_polypole1.i)
- (test/tests/dislocation_density/isotropic_dislocation_density_burnup_aux.i)
- (test/tests/axial_relocation/uo2_pulverization_phasefield.i)
- (assessment/MOX/JOYO/B14/PTM010/analysis/b14_ptm010_p-15_percent.i)
- (assessment/MOX/FFTF/FO-2/L09/analysis/L09_2DRZ_new_bubble_gb_lim.i)
- (test/tests/solid_mechanics/uo2_creep/adUo2_creep_smeared_cracking.i)
- (test/tests/element_integral_power/element_integral_power_1D.i)
- (test/tests/axial_relocation/ad_uo2_pulverization_mesoscale.i)
- (test/tests/thermalUO2/ad_thermalUO2_test.i)
- (test/tests/ifba_he_production/ifba_only_template.i)
- (test/tests/meso_thcond_test/meso_thcond_test.i)
- (assessment/verification/thermal/2d_3d_thermal_mesh_study/analysis/quad/test_3d.i)
- (test/tests/axial_relocation/uo2_pulverization_mesoscale.i)
- (assessment/MOX/JOYO/B14/PTM001/analysis/b14_ptm001_1D_sample3_ox.i)
- (test/tests/mox_oxygen_transport/mox_oxygen_transport_hyper.i)
- (test/tests/axial_relocation/ad_uo2_pulverization_phasefield2.i)
- (test/tests/multi_sample_action/test2.i)
- (test/tests/sifgrs/uo2/polypole2_hbs.i)
- (test/tests/sifgrs/uo2/ad_percolation.i)
- (assessment/MOX/JOYO/B14/PTM002/analysis/b14_ptm002_mechanics.i)
- (examples/TRISO/accident_simulation/triso2D_accident_mortar.i)
- (assessment/MOX/JOYO/MK-I/analysis/MK-I_75MW_master_old_bubble_gb_lim.i)
- (test/tests/decay_heating/decay_heating_rz.i)
- (test/tests/fission_rate_axial/coords.i)
- (assessment/MOX/JOYO/MK-I/analysis/MK-I_50MW_master_old_bubble_gb_lim.i)
- (assessment/MOX/FFTF/FO-2/L09/analysis/L09_2DRZ_new_bubble_gb_lim_grainGrowth.i)
- (assessment/MOX/FFTF/FO-2/L09/analysis/fftf_fo2_L09_master_sampleL.i)
- (test/tests/solid_mechanics/zry_mechanics/zry_irradiation_growth/irradiation_growth_Zr4_test.i)
- (test/tests/sifgrs/uo2/diffusion_coefficient.i)
- (test/tests/uo2_transient_fission_gas_release/ad_uo2_pulverization_phasefield2_transient_FGR.i)
- (test/tests/uo2_thermal/Staicu/ad_test.i)
- (test/tests/sifgrs/uo2/material_input_fission_rate.i)
- (test/tests/sifgrs/u3si2/intergranular_ext_fsngas.i)
- (test/tests/sifgrs/uo2/polypole1.i)
- (assessment/MOX/FFTF/FO-2/L09/analysis/fftf_fo2_L09_master_sampleJ.i)
- (test/tests/thermalFastMOX/test2.i)
- (test/tests/mox_thermal/Amaya/test.i)
- (test/tests/sifgrs/uo2/ad_transient_model.i)
- (test/tests/thermalMOX/ThermalMOX_porosity_function_test.i)
- (test/tests/fission_rate_LWR/LWR.i)
- (test/tests/grain_radius_aux/grain_radius.i)
- (test/tests/fgr_fraction/fgr_fraction_test_RZ.i)
- (test/tests/uo2_thermal/Staicu/test.i)
- (test/tests/sifgrs/u3si2/intragranular.i)
- (test/tests/thermalFastMOX/test1.i)
- (test/tests/fission_rate_from_power_density/power_density.i)
- (test/tests/thermalUO2/thermalUO2_new_test.i)
- (test/tests/sifgrs/uo2/percolation_xfem.i)
- (test/tests/meso_thcond_test/sifgrs_swelling_fissiongas_graingrowth.i)
- (test/tests/sifgrs/uo2/polypole1_intergranular.i)
- (test/tests/uo2_thermal/Halden/ad_test.i)
- (test/tests/sifgrs/uo2/pbz_negative_temperature_exception.i)
- (assessment/MOX/JOYO/B14/PTM001/analysis/b14_ptm001_1D_sample1.i)
- (test/tests/uo2_thermal/NFImod/ad_test.i)
- (test/tests/sifgrs/uo2/ad_second_stage.i)
- (test/tests/uo2_transient_fission_gas_release/uo2_pulverization_transient_FGR_1D.i)
- (test/tests/sifgrs/u3si2/polypole2_ext_fsngas.i)
(test/tests/fission_rate_generic/generic_form.i)
# Tests the GENERIC implementation of the FissionRateGeneral AuxKernel
# Fission rate was perscribed with a linear piecewise function, as well as a prefactor of 100. If properly implemented, the reported fission rate at
# the end of the simulation will be 100*1100 = 1.1e5
[Mesh]
[mesh]
type = FileMeshGenerator
file = 1hex8_10mm_cube.e
[]
[]
[Functions]
[Temp_func]
type = PiecewiseLinear
x = '0. 1.e+08 2.e+08'
y = '1100. 1400. 1100. '
[]
[Fiss_func]
type = PiecewiseLinear
x = '0. 1.e+08 2.e+08'
y = '1100. 1400. 1100. '
[]
[]
[Variables]
[temp]
order = FIRST
family = LAGRANGE
initial_condition = 1100
[]
[]
[AuxVariables]
[fission_rate]
order = FIRST
family = LAGRANGE
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temp
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
variable = fission_rate
fission_rate_formulation = 'GENERIC'
value = 100
fission_rate_function = Fiss_func
execute_on = 'initial timestep_begin'
[]
[]
[BCs]
[bottom_T]
type = FunctionDirichletBC
variable = temp
function = Temp_func
boundary = 1
[]
[]
[Materials]
[UO2]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 1.0
specific_heat = 1.0
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
l_tol = 1.e-04
nl_abs_tol = 1.e-08
nl_rel_tol = 1.e-08
start_time = 0.
num_steps = 500
dt = 1.e+06
end_time = 2.e+08
[]
[Postprocessors]
[fiss_rate]
type = ElementalVariableValue
elementid = 0
variable = fission_rate
[]
[]
[Outputs]
[out]
type = Exodus
[]
[]
(test/tests/sifgrs/uo2/ad_first_stage.i)
# @Requirement F2.40
# This test is for evaluating the first stage (i.e., the intra-granular diffusion calculation) of the Sifgrs fission gas behavior model.
# The first stage is isolated by setting the fractional bubble coverage at grain boundary saturation to zero (saturation_coverage = 0). Under this condition (i.e. gas reaching the grain boundaries goes instantaneously to the plenum), the ratio of fission gas released to fission gas generated calculated by the model should compare very closely with the analytical expression for fractional fission gas release fraction from the grains published by Speight (Nuclear Science and Engineering 37, 180, 1969). The Speight equation for fission gas release fraction (released/produced) is
#
# parameters:
# n and no are summation integers
# a = grain radius in m
# pi = the number pi 3.14159...
# D = effective diffusion coefficient in m^2/s where D includes the effects of intragranular trapping and resolution (see White, JNM 118, 1, 1983, and the
# fgr_diffusion_coefficient_test in BISON for a description)
# t = time in seconds
#
# 6*a^2
# f = 1 - sum(n=1, to no) ---------------- * {1 - exp -[D*n^2*pi^2*t/a^2]}
# pi^4 * D*t*n^4
#
# For no = 1, D = 4.123e-19 m^2/s, a = 1e-5 m, t = 1e6 s, f = 0.596.
# For no = 50, and the same parameters defined above, f = 0.1388
#
# With the output from this test, if one calculates fission gas released / fission gas produced at
# t = 1.e+06, the result should be 0.1032, which compares well with the analytical solution from Speight.
#
# See also the sheet sifgrs_first_stage of the attached excel file (regression_tests_sifgrs.xlsx).
# Check of fission gas produced
# beta = rate of gas production per unit volume by fission
# beta * time * volume = gas produced
# The following parameters are used to calculate beta
#
# t = time in seconds = 5e7
# Avogadros number = 6.023e23 atoms/mol
# FY = fractional yield = fraction of fission gas atoms per fission = 0.3017 atoms/fission
# Y = yield = FY/Avogadros number = atoms/fission / atoms/mol to give mols/fission
# F = fission rate = fissions/m^3*s = 2.5e19
# beta = F*Y = fissions/m^3s * mols/fission = mols/m^3*s
# gas produced = beta * time * volume
# For this test problem, volume = (0.01m)^3 = 1e-6m^3 = volume of single finite element in this problem
#
# Y = 0.3017/6.023e23 = 5.0091e-25 mol/fission
# beta = 2.5e19*5.009e-25 = 1.25e-5 mol/m^3s
# gas produced = 1.25e-5*5e7*1e-6 = 6.26e-4 mols
#
[Mesh]
[mesh]
type = FileMeshGenerator
file = 1hex8_10mm_cube.e
[]
[]
[Functions]
[Temp_func]
type = ParsedFunction
expression = '1700'
[]
[Fiss_func]
type = ParsedFunction
expression = '2.5e19'
[]
[]
[Variables]
[T]
initial_condition = 1700
[]
[]
[AuxVariables]
[fission_rate]
[]
[fract_FGR_analytical]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[heat]
type = ADHeatConduction
variable = T
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
value = 1
fission_rate_function = Fiss_func
execute_on = 'initial timestep_begin'
[]
[FRA]
type = ADMaterialRealAux
variable = fract_FGR_analytical
property = fract_FGR_analytical
[]
[]
[BCs]
[bottom_T]
type = ADFunctionDirichletBC
variable = T
function = Temp_func
boundary = 1
[]
[]
[Materials]
[UO2]
type = ADHeatConductionMaterial
block = 1
thermal_conductivity = 1.0
specific_heat = 1.0
[]
[fission_gas_behavior]
type = ADUO2Sifgrs
block = 1
skip_bdr_model = true
temperature = T
fission_rate = fission_rate
testing_output = true
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
l_tol = 1e-4
nl_abs_tol = 1e-5
nl_rel_tol = 1e-5
start_time = 0.0
num_steps = 50
dt = 1e6
[]
[Postprocessors]
[fis_gas_generated]
type = ADElementIntegralFisGasGeneratedSifgrs
block = 1
[]
[fis_gas_released]
type = ADElementIntegralFisGasReleasedSifgrs
block = 1
[]
[]
[Outputs]
[out]
type = Exodus
[]
[csv]
type = CSV
[]
[]
(test/tests/sifgrs/uo2/first_stage_restart2.i)
# This test is for evaluating the first stage (i.e., the intra-granular diffusion calculation) of the Sifgrs fission gas behavior model.
# The first stage is isolated by setting the fractional bubble coverage at grain boundary saturation to zero (saturation_coverage = 0). Under this condition (i.e. gas reaching the grain boundaries goes instantaneously to the plenum), the ratio of fission gas released to fission gas generated calculated by the model should compare very closely with the analytical expression for fractional fission gas release fraction from the grains published by Speight (Nuclear Science and Engineering 37, 180, 1969). The Speight equation for fission gas release fraction (released/produced) is
#
# parameters:
# n and no are summation integers
# a = grain radius in m
# pi = the number pi 3.14159...
# D = effective diffusion coefficient in m^2/s where D includes the effects of intragranular trapping and resolution (see White, JNM 118, 1, 1983, and the
# fgr_diffusion_coefficient_test in BISON for a description)
# t = time in seconds
#
# 6*a^2
# f = 1 - sum(n=1, to no) ---------------- * {1 - exp -[D*n^2*pi^2*t/a^2]}
# pi^4 * D*t*n^4
#
# For no = 1, D = 4.123e-19 m^2/s, a = 1e-5 m, t = 1e6 s, f = 0.596.
# For no = 50, and the same parameters defined above, f = 0.1388
#
# With the output from this test, if one calculates fission gas released / fission gas produced at
# t = 1.e+06, the result should be 0.1032, which compares well with the analytical solution from Speight.
#
# See also the sheet sifgrs_first_stage of the attached excel file (regression_tests_sifgrs.xlsx).
# Check of fission gas produced
# beta = rate of gas production per unit volume by fission
# beta * time * volume = gas produced
# The following parameters are used to calculate beta
#
# t = time in seconds = 5e7
# Avogadros number = 6.023e23 atoms/mol
# FY = fractional yield = fraction of fission gas atoms per fission = 0.3017 atoms/fission
# Y = yield = FY/Avogadros number = atoms/fission / atoms/mol to give mols/fission
# F = fission rate = fissions/m^3*s = 2.5e19
# beta = F*Y = fissions/m^3s * mols/fission = mols/m^3*s
# gas produced = beta * time * volume
# For this test problem, volume = (0.01m)^3 = 1e-6m^3 = volume of single finite element in this problem
#
# Y = 0.3017/6.023e23 = 5.0091e-25 mol/fission
# beta = 2.5e19*5.009e-25 = 1.25e-5 mol/m^3s
# gas produced = 1.25e-5*5e7*1e-6 = 6.26e-4 mols
#
[Mesh]
[mesh]
type = FileMeshGenerator
file = 1hex8_10mm_cube.e
[]
[]
[Functions]
[Temp_func]
type = ParsedFunction
expression = '1700'
[]
[Fiss_func]
type = ParsedFunction
expression = '2.5e19'
[]
[]
[Variables]
[T]
order = FIRST
family = LAGRANGE
initial_condition = 1700
[]
[]
[AuxVariables]
[fission_rate]
order = FIRST
family = LAGRANGE
[]
[fract_FGR_analytical]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = T
diffusion_coefficient = 1
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
value = 1
fission_rate_function = Fiss_func
execute_on = timestep_begin
[]
[FRA]
type = MaterialRealAux
variable = fract_FGR_analytical
property = fract_FGR_analytical
[]
[]
[BCs]
[bottom_T]
type = FunctionDirichletBC
variable = T
function = Temp_func
boundary = 1
[]
[]
[Materials]
[fission_gas_behavior]
type = UO2Sifgrs
block = 1
saturation_coverage = 0
temperature = T
fission_rate = fission_rate
testing_output = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
l_tol = 1e-4
nl_abs_tol = 1e-5
nl_rel_tol = 1e-5
start_time = 28e6
num_steps = 50
dt = 1e6
[]
[Postprocessors]
[fis_gas_generated]
type = ElementIntegralFisGasGeneratedSifgrs
[]
[fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
[]
[]
[Outputs]
file_base = first_stage_out
exodus = true
[]
[Problem]
restart_file_base = first_stage_restart1_checkpoint_cp/0028
# Initial condition for T overrides the restart
allow_initial_conditions_with_restart = true
[]
(assessment/MOX/JOYO/MK-I/analysis/MK-I_75MW_master_new_bubble_gb_lim.i)
initial_fuel_density = 10836.8
[GlobalParams]
density = ${initial_fuel_density}
initial_porosity = 0.065
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
volumetric_locking_correction = false
displacements = 'disp_x disp_y'
[]
[Problem]
type = ReferenceResidualProblem
extra_tag_vectors = 'ref'
reference_vector = 'ref'
[]
[Mesh]
coord_type = RZ
[smeared_pellet_mesh]
type = FuelPinMeshGenerator
pellet_quantity = 1
pellet_height = 0.6
pellet_outer_radius = 0.0027
pellet_mesh_density = customize
clad_mesh_density = customize
clad_gap_width = 0.000100
clad_thickness = 0.00035
clad_bot_gap_height = 1.0e-3
bottom_clad_height = 2.24e-3
top_clad_height = 2.24e-3
clad_top_gap_height = 0.599
elem_type = QUAD8
nx_c = 4
ny_c = 200
nx_p = 20
ny_p = 200
ny_cu = 3
ny_cl = 3
[]
patch_size = 50
patch_update_strategy = iteration
partitioner = centroid
centroid_partitioner_direction = y
[]
[UserObjects]
[pin_geometry]
type = FuelPinGeometry
[]
[]
[Variables]
[temp]
initial_condition = 295.0
[]
[]
[AuxVariables]
[pore]
[]
[fission_rate]
block = pellet
[]
[burnup]
block = pellet
[]
[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
[]
[vcn_bdr_2]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[atm_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[vcn_bbl_bdr]
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
[]
[vol_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[GBCoverage]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[eff_diff_coeff]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[deltav_v0_bd]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[radial_strain]
order = CONSTANT
family = MONOMIAL
[]
[effective_creep_strain]
block = clad
order = CONSTANT
family = MONOMIAL
[]
[gap_cond]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[power_history] #related to the LHGR at the midplane
type = PiecewiseLinear
x = '0 70000 25000000'
y = '0 38974.7 38974.7'
[]
[fast_neutron_flux_function]
type = PiecewiseLinear
x = '0 70000 25000000'
y = '0 1.9e+19 1.9e+19'
[]
[axial_peaking_factors]
type = PiecewiseBilinear
x = '0 0.071 0.146 0.221 0.296 0.37 0.443 0.566'
y = '0 25000000'
z = '0.889 1.041 1.152 1.173 1.129 0.971 0.782 0.672 0.889 1.041 1.152 1.173 1.129 0.971 0.782 0.672'
scale_factor = 1
axis = 1
[]
[q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[]
[average_power_history]
type = PiecewiseLinear
x = '0 70000 25000000'
y = '0 32000 32000'
[]
[clad_surface_temp]
type = PiecewiseBilinear
x = '0 0.071 0.146 0.221 0.296 0.37 0.443 0.566'
y = '0 25000000'
z = '295 295 295 295 295 295 295 295 593.58 606.36 619.13 630.26 640.87 651.76 662.67 673.67'
scale_factor = 1
axis = 1
[]
[pressure_ramp]
type = PiecewiseLinear
x = '0 1'
y = '1 1'
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[pellets]
block = pellet
add_variables = true
strain = FINITE
eigenstrain_names = 'fuel_thermal_strain fuel_volumetric_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
use_finite_deform_jacobian = true
extra_vector_tags = 'ref'
[]
[clad]
block = clad
add_variables = true
strain = FINITE
eigenstrain_names = 'clad_thermal_eigenstrain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
use_finite_deform_jacobian = true
extra_vector_tags = 'ref'
[]
[]
[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
variable = temp
block = pellet
fission_rate = fission_rate
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[fission_rate]
type = FissionRateGeneral
fission_rate_formulation = MOX
variable = fission_rate
block = pellet
initial_porosity = 0.065
axial_power_profile = axial_peaking_factors
rod_ave_lin_pow = power_history
pellet_diameter = 0.0054
execute_on = timestep_begin
porosity = pore
[]
[burnup]
type = BurnupAux
block = pellet
fission_rate = fission_rate
variable = burnup
execute_on = timestep_begin
[]
[fggen]
type = MaterialRealAux
variable = gas_gen_3
property = gas_concentration_generated_total
execute_on = timestep_end
[]
[fggrn]
type = MaterialRealAux
variable = gas_grn_3
property = gas_concentration_intra_total
execute_on = timestep_end
[]
[fgbdr]
type = MaterialRealAux
variable = gas_bdr_3
property = gas_concentration_GB_bubble_volume
execute_on = timestep_end
[]
[fgrel]
type = MaterialRealAux
variable = gas_rel_3
property = gas_concentration_release_total
execute_on = timestep_end
[]
[nbbl2]
type = MaterialRealAux
variable = bbl_bdr_2
property = bubble_GB_surface_density
execute_on = timestep_end
[]
[nvcn2]
type = MaterialRealAux
variable = vcn_bdr_2
property = vacancy_concentration_GB_surface
execute_on = timestep_end
[]
[atmbbl]
type = MaterialRealAux
variable = atm_bbl_bdr
property = atom_per_bubble_GB
execute_on = timestep_end
[]
[vcnbbl]
type = MaterialRealAux
variable = vcn_bbl_bdr
property = vacancy_per_bubble_GB
execute_on = timestep_end
[]
[prsbbl]
type = MaterialRealAux
variable = prs_bbl_bdr
property = bubble_GB_pressure
execute_on = timestep_end
[]
[prseqbbl]
type = MaterialRealAux
variable = prseq_bbl_bdr
property = bubble_GB_pressure_equilibrium
execute_on = timestep_end
[]
[radbbl]
type = MaterialRealAux
variable = rad_bbl_bdr
property = bubble_radius_GB
execute_on = timestep_end
[]
[volbbl]
type = MaterialRealAux
variable = vol_bbl_bdr
property = bubble_GB_volume
execute_on = timestep_end
[]
[frcvrg]
type = MaterialRealAux
variable = GBCoverage
property = GBCoverage
execute_on = timestep_end
[]
[diffc]
type = MaterialRealAux
variable = eff_diff_coeff
property = eff_diff_coeff
execute_on = timestep_end
[]
[dvv0bd]
type = MaterialRealAux
variable = deltav_v0_bd
property = deltav_v0_bubble_GB
execute_on = timestep_end
[]
[radial_strain]
type = RankTwoAux
rank_two_tensor = total_strain
variable = radial_strain
index_i = 0
index_j = 0
execute_on = timestep_end
[]
[effective_creep_strain]
type = MaterialRealAux
property = effective_creep_strain
variable = effective_creep_strain
block = clad
execute_on = timestep_end
[]
[conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
execute_on = 'linear'
[]
[]
[Contact]
[pellet_clad_mechanical]
primary = 5
secondary = 10
formulation = kinematic
model = frictionless
penalty = 1e7
[]
[]
[ThermalContact]
[thermal_contact]
type = GasGapHeatTransfer
variable = temp
primary = 5
secondary = 10
initial_moles = initial_moles
gas_released = fis_gas_released
contact_pressure = contact_pressure
quadrature = true
[]
[]
[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 = 20
value = 0.0
[]
[temp_clad_out]
type = FunctionDirichletBC
variable = temp
boundary = '2'
function = clad_surface_temp
[]
[Pressure]
[coolantPressure]
boundary = '1 2 3'
factor = 101325
function = pressure_ramp
[]
[]
[PlenumPressure]
[plenumPressure]
boundary = 9
initial_pressure = 300000
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = ave_temp_interior
volume = gas_volume
material_input = fis_gas_released
output = plenum_pressure
[]
[]
[]
[Materials]
[fast_neutron_flux]
type = FastNeutronFlux
calculate_fluence = true
block = clad
flux_function = fast_neutron_flux_function
[]
[fuel_thermal]
type = MAMOXThermal
block = pellet
temperature = temp
Am_content = 0.0
Np_content = 0.0
porosity = pore
output_properties = 'thermal_conductivity'
[]
[fuel_elasticity_tensor]
type = MAMOXElasticityTensor
block = pellet
[]
[elastic_stress]
type = ComputeFiniteStrainElasticStress
block = pellet
[]
[fuel_thermal_expansion]
type = MAMOXThermalExpansionEigenstrain
block = pellet
temperature = temp
stress_free_temperature = 295.0
oxygen_to_metal_ratio = 1.98
eigenstrain_name = fuel_thermal_strain
[]
[fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
block = pellet
temperature = temp
burnup = burnup
initial_fuel_density = 10836.8
eigenstrain_name = fuel_volumetric_strain
[]
[clad_thermal]
type = SS316Thermal
block = clad
temperature = temp
[]
[clad_density]
type = StrainAdjustedDensity
block = clad
strain_free_density = 8000
[]
[clad_elasticity_tensor]
type = SS316ElasticityTensor
block = clad
temperature = temp
elastic_constants_model = legacy_ifr
[]
[thermal_expansion]
type = SS316ThermalExpansionEigenstrain
block = clad
temperature = temp
stress_free_temperature = 295.0
eigenstrain_name = clad_thermal_eigenstrain
[]
[clad_ss316creep]
type = SS316CreepUpdate
block = clad
temperature = temp
fast_neutron_flux = fast_neutron_flux
[]
[clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'clad_ss316creep'
block = clad
[]
[fission_gas_release]
type = UO2Sifgrs
block = pellet
temperature = temp
burnup = burnup
diff_coeff_option = TURNBULL_D1_4D2_4D3
fission_rate = fission_rate
grain_radius_const = 8.01e-6 #I'm keeping the grain radius const because the grain growth in MOX is probably different due to high Temp
bubble_gb_limit = 1.0e+11
[]
[fuel_density]
type = StrainAdjustedDensity
block = pellet
strain_free_density = ${initial_fuel_density}
[]
[]
[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'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
fixed_point_abs_tol = 1e-5
fixed_point_rel_tol = 1e-5
fixed_point_max_its = 1
l_max_its = 70
l_tol = 8e-3
nl_max_its = 70
nl_rel_tol = 1e-5
nl_abs_tol = 1e-5
start_time = 0
n_startup_steps = 1
end_time = 25000000
dtmax = 1e6
dtmin = 0.25
[TimeStepper]
type = IterationAdaptiveDT
dt = 5000
optimal_iterations = 15
iteration_window = 2
linear_iteration_ratio = 100
growth_factor = 2
cutback_factor = .5
force_step_every_function_point = true
timestep_limiting_function = power_history
[]
[]
[Postprocessors]
[ave_temp_interior]
type = SideAverageValue
boundary = 9
variable = temp
execute_on = 'initial linear'
[]
[average_burnup]
type = ElementAverageValue
block = pellet
variable = burnup
[]
[clad_inner_vol]
type = InternalVolume
boundary = 7
execute_on = 'initial timestep_end'
[]
[pellet_volume]
type = InternalVolume
boundary = 8
execute_on = 'initial timestep_end'
[]
[avg_clad_temp]
type = SideAverageValue
boundary = 7
variable = temp
execute_on = 'initial timestep_end'
[]
[fis_gas_produced]
type = ElementIntegralFisGasGeneratedSifgrs
block = pellet
execute_on = 'linear'
[]
[fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = pellet
execute_on = 'linear'
[]
[fis_gas_released_percentage]
type = FGRPercent
fission_gas_generated = fis_gas_produced
fission_gas_released = fis_gas_released
execute_on = 'linear'
[]
[fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = pellet
execute_on = 'linear'
[]
[fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = pellet
execute_on = 'linear'
[]
[gas_volume]
type = InternalVolume
boundary = 9
execute_on = 'initial linear'
[]
[flux_from_fuel]
type = SideDiffusiveFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[]
[rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = pellet
[]
[rod_input_power]
type = FunctionValuePostprocessor
function = average_power_history
scale_factor = 0.6 # rod height
[]
[average_vonMises_fuel]
type = ElementAverageValue
variable = vonmises_stress
block = pellet
[]
[average_vonMises_clad]
type = ElementAverageValue
variable = vonmises_stress
block = clad
[]
[average_strain_rr_fuel]
type = ElementAverageValue
variable = radial_strain
block = pellet
[]
[average_strain_rr_clad]
type = ElementAverageValue
variable = radial_strain
block = clad
[]
[average_creep_strain_clad]
type = ElementAverageValue
variable = effective_creep_strain
block = clad
[]
[ave_pore]
type = ElementAverageValue
variable = pore
[]
[max_pore]
type = NodalExtremeValue
value_type = max
variable = pore
[]
[min_pore]
type = NodalExtremeValue
value_type = min
variable = pore
[]
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = true
color = true
csv = true
[console]
type = Console
max_rows = 25
[]
[chkfile]
type = CSV
execute_on = FINAL
show = 'ave_temp_interior fis_gas_released_percentage max_pore'
[]
[]
[MultiApps]
[sub]
type = TransientMultiApp
app_type = BisonApp
execute_on = timestep_end
catch_up = true
max_catch_up_steps = 10
positions_file = positions.txt
input_files = MK-I_75MW_sub_new_bubble_gb_lim.i
[]
[]
[Transfers]
[temp_to_sub]
type = MultiAppProjectionTransfer
to_multi_app = sub
source_variable = temp
variable = temp
[]
[pore_from_sub]
type = MultiAppGeometricInterpolationTransfer
from_multi_app = sub
source_variable = pore
variable = pore
[]
[]
[Debug]
show_var_residual_norms = true
show_var_residual = 'temp disp_x disp_y'
[]
(assessment/MOX/JOYO/B14/PTM003/analysis/b14_ptm003_1D_sample2.i)
# Sample at +97mm from midplane
initial_fuel_density = 11172.82
[GlobalParams]
density = ${initial_fuel_density}
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
[]
[Problem]
[]
[Mesh]
coord_type = RZ
[layered1D_mesh]
type = Layered1DMeshGenerator
fuel_height = 10e-3
pellet_outer_radius = 0.0027
pellet_bottom_coor = 0.0
pellet_mesh_density = customize
nx_p = 200
elem_type = EDGE2
slices_per_block = 1
include_plenum = false
include_clad = false
[]
[]
[UserObjects]
[pin_geometry]
type = Layered1DFuelPinGeometry
include_clad = false
mesh_generator = layered1D_mesh
[]
[]
[Variables]
[temp]
initial_condition = 295.0
[]
[pore]
initial_condition = 0.1409
scaling = 1e14
block = fuel
[]
[]
[AuxVariables]
[fission_rate]
[]
[burnup]
[]
[pore_speed_aux]
order = constant
family = monomial
[]
[]
[Functions]
[power_history]
type = PiecewiseLinear
x = '-200 0 72000 158040 160200 246600 248400 249000.012 251280'
y = '0 0 36350.6 36350.6 40436.1 40436.1 49235.7 49235.7 0'
[]
[f_temp_out_fuel]
type = PiecewiseLinear
x = '-200 0 251280'
y = '295 295 1159.5'
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temp
[]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temp
[]
[heat_source]
type = NeutronHeatSource
variable = temp
fission_rate = fission_rate
[]
[pore_continuity]
type = MOXPoreContinuity
variable = pore
temperature = temp
debug = 0
alpha = 0.25
beta = 1
heating_function = power_history
block = fuel
[]
[pore_diffusion]
type = MOXPoreDiffusion
variable = pore
debug = 0
nu = 1e-12
heating_function = power_history
v_upper = 1e-12
v_lower = 1e-20
block = fuel
[]
[poretimederivative]
type = CoefTimeDerivative
variable = pore
Coefficient = 1
block = fuel
[]
[]
[AuxKernels]
[pore_speed_aux]
type = MaterialRealAux
variable = pore_speed_aux
property = pore_velocity
block = fuel
execute_on = 'initial timestep_end'
[]
[fission_rate]
type = FissionRateGeneral
fission_rate_formulation = MOX
variable = fission_rate
block = fuel
initial_porosity = 0.1409
rod_ave_lin_pow = power_history
pellet_diameter = 0.0054
execute_on = timestep_begin
porosity = pore
energy_per_fission = 3.2e-11
[]
[burnup]
type = BurnupAux
block = fuel
fission_rate = fission_rate
variable = burnup
execute_on = timestep_begin
[]
[]
[BCs]
[temp_fuel_outside]
type = FunctionDirichletBC
variable = temp
function = f_temp_out_fuel
boundary = 10
[]
[]
[Materials]
[fuel_thermal]
type = MAMOXThermal
temperature = temp
porosity = pore
block = fuel
Am_content = 0.0237
oxy_to_metal_ratio = 1.961
[]
[fuel_density]
type = ParsedMaterial
block = fuel
property_name = density
expression = ${initial_fuel_density}
[]
[pore_velocity]
type = MOXPoreVelocity
temperature = temp
limit = 1e-3
scale_factor = 0.1
block = fuel
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Dampers]
[bound]
type = BoundingValueNodalDamper
max_value = 1
min_value = 0
variable = pore
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -sub_pc_type'
petsc_options_value = 'asm lu'
line_search = 'none'
l_max_its = 50
l_tol = 8e-3
nl_max_its = 50
nl_rel_tol = 1e-5
nl_abs_tol = 1e-5
start_time = -200
n_startup_steps = 1
end_time = 251280
dtmax = 10000
dtmin = 0.25
[TimeStepper]
type = IterationAdaptiveDT
dt = 1e1
optimal_iterations = 15
iteration_window = 2
linear_iteration_ratio = 100
growth_factor = 2
cutback_factor = .5
force_step_every_function_point = true
timestep_limiting_function = power_history
[]
[]
[Postprocessors]
[ave_temp_interior]
type = ElementAverageValue
variable = temp
execute_on = 'initial linear'
[]
[average_burnup]
type = ElementAverageValue
variable = burnup
[]
[ave_pore]
type = ElementAverageValue
block = fuel
variable = pore
[]
[max_pore]
type = NodalExtremeValue
block = fuel
value_type = max
variable = pore
[]
[min_pore]
type = NodalExtremeValue
block = fuel
value_type = min
variable = pore
[]
[max_pore_speed]
type = ElementExtremeValue
block = fuel
value_type = max
variable = pore_speed_aux
[]
[rod_total_power]
type = LayeredElementIntegralPowerPostprocessor
variable = temp
fission_rate = fission_rate
block = fuel
fuel_pin_geometry = pin_geometry
[]
[rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 10e-3 # rod height
[]
[]
[VectorPostprocessors]
[fuel_radial_temperature_Sample]
type = LineValueSampler
variable = temp
start_point = '0.0 0.005 0.0'
end_point = '0.0027 0.005 0.0'
num_points = 200
execute_on = final
sort_by = x
outputs = line_plot
[]
[radial_porosity_Sample]
type = LineValueSampler
variable = pore
start_point = '0.0 0.005 0.0'
end_point = '0.0027 0.005 0.0'
num_points = 200
execute_on = final
sort_by = x
outputs = line_plot
[]
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = true
color = true
csv = true
[console]
type = Console
max_rows = 25
[]
[line_plot]
type = CSV
execute_on = 'FINAL'
time_step_interval = 1
file_base = 1d
create_final_symlink = true
[]
[chkfile]
type = CSV
execute_on = FINAL
show = 'ave_temp_interior max_pore'
[]
[]
[Debug]
show_var_residual_norms = true
[]
(examples/mox_fuel/mox_porosity_demo.i)
[UserObjects]
[pin_geometry]
type = Layered1DFuelPinGeometry
include_clad = false
mesh_generator = layered1D_mesh
[]
[]
[Mesh]
coord_type = RZ
[layered1D_mesh]
type = Layered1DMeshGenerator
fuel_height = 0.1
pellet_outer_radius = 0.00541
include_clad = false
pellet_bottom_coor = 0.0
pellet_mesh_density = customize
nx_p = 200
elem_type = EDGE2
slices_per_block = 1
include_plenum = false
[]
[]
[Variables]
[temp]
initial_condition = 300
[]
[pore]
initial_condition = 0.15
scaling = 1e14
[]
[]
[AuxVariables]
[pore_speed_aux]
order = constant
family = monomial
[]
[fission_rate_aux_variable]
order = first
family = lagrange
[]
[fission_rate_aux_variable_mox]
order = first
family = lagrange
[]
[grad_temp_x]
order = CONSTANT
family = MONOMIAL
[]
[thermal_conductivity]
order = CONSTANT
family = MONOMIAL
block = fuel
[]
[]
[Functions]
[power_history1]
type = PiecewiseLinear
x = '0 10000'
y = '0 50000'
[]
[fuel_surface_temp]
type = PiecewiseLinear
data_file = fuel_surface_temp_bc.csv
scale_factor = 1
format = columns
[]
[]
[Kernels]
[heat] # gradient term in heat conduction equation
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 = fuel # fission rate applied to the fuel (block 2) only
fission_rate = fission_rate_aux_variable_mox
[]
[pore_continuity]
type = MOXPoreContinuity
variable = pore
temperature = temp
debug = 0
alpha = 0.25
beta = 1
heating_function = power_history1
[]
[pore_diffusion]
type = MOXPoreDiffusion
variable = pore
debug = 0
# nu = 3.25e-8 #seems to be THE value to use... result is super sensitive to this number
# nu = 10e-10
nu = 1e-12
heating_function = power_history1
v_upper = 1e-12
v_lower = 1e-20
# v_upper = 1
# v_lower = 1
[]
[poretimederivative]
type = CoefTimeDerivative
variable = pore
Coefficient = 1
[]
[]
[AuxKernels]
[pore_speed_aux]
type = MaterialRealAux
variable = pore_speed_aux
property = pore_velocity
block = fuel
execute_on = 'initial timestep_end'
[]
[fission_rate_aux_kernel]
type = FissionRateGeneral
fission_rate_formulation = LWR
variable = fission_rate_aux_variable
block = fuel
rod_ave_lin_pow = power_history1
# axial_power_profile = axial_peaking_factors # using the axial power profile function defined above
pellet_diameter = 0.01082
pellet_inner_diameter = 0
energy_per_fission = 3.2e-11
execute_on = 'initial timestep_end'
value = 1.0
[]
[fission_rate_aux_kernel_mox]
type = FissionRateGeneral
fission_rate_formulation = MOX
variable = fission_rate_aux_variable_mox
block = fuel
porosity = pore
initial_porosity = 0.15
rod_ave_lin_pow = power_history1
pellet_diameter = 0.01082
pellet_inner_diameter = 0
energy_per_fission = 3.2e-11
execute_on = 'initial timestep_end'
value = 1.0
[]
[grad_temp_x_aux]
type = VariableGradientComponent
variable = grad_temp_x
component = x
gradient_variable = temp
execute_on = 'initial timestep_end'
[]
[ThermalConductivityAux]
type = MaterialRealAux
block = fuel
execute_on = linear
property = thermal_conductivity
variable = thermal_conductivity
[]
[]
[BCs]
[temp_outside] # pin pellets and clad along axis of symmetry (y)
type = FunctionDirichletBC
variable = temp
boundary = 10
function = fuel_surface_temp
[]
[]
[Materials]
[fuel_thermal]
type = MAMOXThermal
block = fuel
temperature = temp
porosity = pore
porosity_limit = 0.95
[]
[density_block]
type = GenericConstantMaterial
block = fuel
prop_names = density
prop_values = 10662.0
[]
[pore_velocity]
type = MOXPoreVelocity
block = fuel
temperature = temp
limit = 1e-3
#go back to this if necessary scale_factor = 0.05
scale_factor = 0.1
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Dampers]
[limitT]
type = MaxIncrement
max_increment = 100.0
variable = temp
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
#petsc_options_iname = '-pc_type -pc_factor_mat_solver_package' # -mat_superlu_dist_fact'
#petsc_options_value = 'lu superlu_dist' # SamePattern_SameRowPerm'
petsc_options_iname = '-pc_type -sub_pc_type'
petsc_options_value = 'asm lu'
line_search = 'none'
l_max_its = 50
l_tol = 8e-3
nl_max_its = 50
nl_rel_tol = 1e-5
nl_abs_tol = 1e-6
end_time = 10000
dtmax = 100
dtmin = 0.25
[TimeStepper]
type = IterationAdaptiveDT
dt = 1e1
optimal_iterations = 15
iteration_window = 2
linear_iteration_ratio = 100
growth_factor = 2
cutback_factor = .5
force_step_every_function_point = true
timestep_limiting_function = power_history1
[]
[]
[Postprocessors]
[_dt] # time step
type = TimestepSize
[]
[z_nonlinear_its] # number of nonlinear iterations at each timestep
type = NumNonlinearIterations
[]
[a_run_time] # average temperature of cladding interior
type = PerfGraphData
section_name = Root
data_type = TOTAL
[]
[ave_fuel_temp]
type = ElementAverageValue
block = fuel
variable = temp
[]
[max_fuel_temp]
type = NodalExtremeValue
block = fuel
value_type = max
variable = temp
[]
[ave_pore]
type = ElementAverageValue
block = fuel
variable = pore
[]
[max_pore]
type = NodalExtremeValue
block = fuel
value_type = max
variable = pore
[]
[min_pore]
type = NodalExtremeValue
block = fuel
value_type = min
variable = pore
[]
[max_pore_speed]
type = ElementExtremeValue
block = fuel
value_type = max
variable = pore_speed_aux
[]
[ave_fission_rate]
type = ElementAverageValue
block = fuel
variable = fission_rate_aux_variable
[]
[rod_total_power]
type = LayeredElementIntegralPowerPostprocessor
variable = temp
block = fuel
fission_rate = fission_rate_aux_variable
fuel_pin_geometry = pin_geometry
[]
[rod_total_power_mox]
type = LayeredElementIntegralPowerPostprocessor
variable = temp
block = fuel
fission_rate = fission_rate_aux_variable_mox
fuel_pin_geometry = pin_geometry
[]
[rod_input_power]
type = FunctionValuePostprocessor
function = power_history1
scale_factor = 0.1 # rod height
[]
[ave_themal_conductivity]
type = ElementAverageValue
block = fuel
variable = thermal_conductivity
[] # end element average burnup
[]
#[VectorPostprocessors]
# [line_value_vector_postprocessor_pore]
# type = LineValueSampler
# variable = pore
# start_point = '0.0 0.05 0'
# end_point = '0.0041 0.05 0'
# num_points = 100
# sort_by = x
# execute_on = linear
# outputs = stuff_v_rad
# control_tags = a
# []
# [line_value_vector_postprocessor_gradT]
# type = LineValueSampler
# variable = grad_temp_x
# start_point = '0.0 0.05 0'
# end_point = '0.0041 0.05 0'
# num_points = 100
# sort_by = x
# execute_on = linear
# outputs = stuff_v_rad
# []
# [line_value_vector_postprocessor_pore_speed]
# type = LineValueSampler
# variable = pore_speed_aux
# start_point = '0.0 0.05 0'
# end_point = '0.0041 0.05 0'
# num_points = 100
# sort_by = x
# execute_on = linear
# outputs = stuff_v_rad
# []
# [line_value_vector_postprocessor_temp]
# type = LineValueSampler
# variable = temp
# start_point = '0.0 0.05 0'
# end_point = '0.0041 0.05 0'
# num_points = 100
# sort_by = x
# execute_on = linear
# outputs = stuff_v_rad
# []
#[]
[Outputs]
perf_graph = true
exodus = true
csv = false
color = false
[console]
type = Console
max_rows = 25
all_variable_norms = true
[]
#[stuff_v_rad]
# type = CSV
# execute_on = 'FINAL'
#[]
[]
[Debug]
show_var_residual_norms = true
[]
(test/tests/uo2_thermal/Ronchi/ad_test.i)
# This test case is prepared to test the thermal conductivity using the Ronchi model.
#
# The temperature is ramped on all BCs of the unit line from 500K to 3000K over 100 Ms.
# The fission rate is 2e19 n/m3/s, so that the burnup goes from 0 to
# ~ 8.6 at.% (82 MWd/kgU) at the end of the simulation.
#
initial_fuel_density = 10431.0
[GlobalParams]
order = FIRST
family = LAGRANGE
[]
[Mesh]
[geom]
type = GeneratedMeshGenerator
dim = 1
elem_type= EDGE2
[]
[]
[Variables]
[T]
initial_condition = 500
[]
[]
[AuxVariables]
[fission_rate]
[]
[burnup]
[]
[th_cond]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[heat]
type = ADHeatConduction
variable = T
[]
[heat_ie]
type = ADHeatConductionTimeDerivative
variable = T
[]
[heat_source]
type = ADNeutronHeatSource
variable = T
energy_per_fission = 3.2e-11
fission_rate = fission_rate
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable= fission_rate
value = 2e19 # Standard fission_rate fissions/m^3/s
execute_on = 'initial timestep_begin'
[]
[th_cond]
type = ADMaterialRealAux
variable = th_cond
property = thermal_conductivity
execute_on = 'initial linear'
[]
[burnup]
type = ADBurnupAux
variable = burnup
density = ${initial_fuel_density} # 95% TD
fission_rate = fission_rate
execute_on = timestep_begin
[]
[]
[Functions]
[temp_ramp]
type = PiecewiseLinear
x = '0.0 100.e6'
y = '500 3000'
[]
[]
[BCs]
[VariableT]
type = ADFunctionDirichletBC
boundary = 'left right'
variable = T
function = temp_ramp
[]
[]
[Materials]
[fuel_thermal]
type = ADUO2Thermal
temperature = T
burnup = burnup
thermal_conductivity_model = RONCHI
oxy_to_metal_ratio = 2.0
initial_porosity = 0.05
Gd_content = 0.0
[]
[density]
type = ADParsedMaterial
property_name = density
expression = ${initial_fuel_density}
[]
[]
[Executioner]
type = Transient
start_time = 0
num_steps = 100
dt = 1.0e6
[]
[Postprocessors]
[avg_th_cond]
type = ElementAverageValue
variable = th_cond
execute_on = 'initial timestep_end'
[]
[average_rod_burnup]
type = ElementAverageValue
variable = burnup
execute_on = timestep_end
[]
[average_fuel_T]
type = ElementAverageValue
variable = T
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
csv = true
[]
(test/tests/uo2_thermal/Ronchi/test.i)
# This test case is prepared to test the thermal conductivity using the Ronchi model.
#
# The temperature is ramped on all BCs of the unit line from 500K to 3000K over 100 Ms.
# The fission rate is 2e19 n/m3/s, so that the burnup goes from 0 to
# ~ 8.6 at.% (82 MWd/kgU) at the end of the simulation.
#
initial_fuel_density = 10431.0
[GlobalParams]
order = FIRST
family = LAGRANGE
[]
[Mesh]
[geom]
type = GeneratedMeshGenerator
dim = 1
elem_type= EDGE2
[]
[]
[Variables]
[T]
initial_condition = 500
[]
[]
[AuxVariables]
[fission_rate]
[]
[burnup]
[]
[th_cond]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = T
[]
[heat_ie]
type = HeatConductionTimeDerivative
variable = T
[]
[heat_source]
type = NeutronHeatSource
variable = T
energy_per_fission = 3.2e-11
fission_rate = fission_rate
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable= fission_rate
value = 2e19 # Standard fission_rate fissions/m^3/s
execute_on = 'initial timestep_begin'
[]
[th_cond]
type = MaterialRealAux
variable = th_cond
property = thermal_conductivity
execute_on = 'initial linear'
[]
[burnup]
type = BurnupAux
variable = burnup
density = ${initial_fuel_density} # 95% TD
fission_rate = fission_rate
execute_on = timestep_begin
[]
[]
[Functions]
[temp_ramp]
type = PiecewiseLinear
x = '0.0 100.e6'
y = '500 3000'
[]
[]
[BCs]
[VariableT]
type = FunctionDirichletBC
boundary = 'left right'
variable = T
function = temp_ramp
[]
[]
[Materials]
[fuel_thermal]
type = UO2Thermal
temperature = T
burnup = burnup
thermal_conductivity_model = RONCHI
oxy_to_metal_ratio = 2.0
initial_porosity = 0.05
Gd_content = 0.0
[]
[density]
type = ParsedMaterial
property_name = density
expression = ${initial_fuel_density}
[]
[]
[Executioner]
type = Transient
start_time = 0
num_steps = 100
dt = 1.0e6
[]
[Postprocessors]
[avg_th_cond]
type = ElementAverageValue
variable = th_cond
execute_on = 'initial timestep_end'
[]
[average_rod_burnup]
type = ElementAverageValue
variable = burnup
execute_on = timestep_end
[]
[average_fuel_T]
type = ElementAverageValue
variable = T
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
csv = true
[]
(test/tests/solid_mechanics/uo2_hotpressing/plasticity.i)
#===========================================================================================
# Tests plasticity in material model UO2HotPressingPlasticityUpdate
#
# The test is a single element with an initial inner radius of 1, outer radius of 2, and
# a height of 1 under RZ coordinate system.
#
# Two nodes on the top surface of the element are pulled.
# Temperature = 1500 K
# Fission density = 2e18 fissios/m**3-s
# Initial fuel density = 95% TD
#
# Linear hardening material is used.
#
#============================================================================================
[GlobalParams]
density = 10431.0
displacements = 'disp_r disp_z'
[]
[Mesh]
coord_type = RZ
use_displaced_mesh = false
[mesh]
type = FileMeshGenerator
file = 1x1_rz_rev1.e
[]
[]
[Variables]
[disp_r]
order = FIRST
family = LAGRANGE
[]
[disp_z]
order = FIRST
family = LAGRANGE
[]
[temp]
order = FIRST
family = LAGRANGE
initial_condition = 1500.0
[]
[]
[AuxVariables]
[fission_rate]
order = FIRST
family = LAGRANGE
[]
[stress_yy]
order = CONSTANT
family = MONOMIAL
[]
[yield_stress]
order = CONSTANT
family = MONOMIAL
[]
[plastic_strain_xx]
order = CONSTANT
family = MONOMIAL
[]
[plastic_strain_yy]
order = CONSTANT
family = MONOMIAL
[]
[plastic_strain_zz]
order = CONSTANT
family = MONOMIAL
[]
[plastic_strain_xy]
order = CONSTANT
family = MONOMIAL
[]
[plastic_strain_yz]
order = CONSTANT
family = MONOMIAL
[]
[plastic_strain_zx]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[top_pull]
type = PiecewiseLinear
x = '0 50000 100000'
y = '0 0.5e-3 5.5e-3'
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
incremental = true
strain = small
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temp
[]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temp
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
value = 2.0e18
[]
[stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[]
[yield_stress]
type = MaterialRealAux
variable = yield_stress
property = yield_stress
[]
[plastic_strain_xx]
type = RankTwoAux
variable = plastic_strain_xx
rank_two_tensor = plastic_strain
index_i = 0
index_j = 0
[]
[plastic_strain_yy]
type = RankTwoAux
variable = plastic_strain_yy
rank_two_tensor = plastic_strain
index_i = 1
index_j = 1
[]
[plastic_strain_zz]
type = RankTwoAux
variable = plastic_strain_zz
rank_two_tensor = plastic_strain
index_i = 2
index_j = 2
[]
[plastic_strain_xy]
type = RankTwoAux
variable = plastic_strain_xy
rank_two_tensor = plastic_strain
index_i = 0
index_j = 1
[]
[plastic_strain_yz]
type = RankTwoAux
variable = plastic_strain_yz
rank_two_tensor = plastic_strain
index_i = 1
index_j = 2
[]
[plastic_strain_zx]
type = RankTwoAux
variable = plastic_strain_zx
rank_two_tensor = plastic_strain
index_i = 2
index_j = 0
[]
[]
[BCs]
[u_top_pull]
type = FunctionDirichletBC
variable = disp_z
boundary = '2 3'
function = top_pull
[]
[u_bottom_fix]
type = DirichletBC
variable = disp_z
boundary = '1 4'
value = 0.0
[]
[temp_fix]
type = DirichletBC
variable = temp
boundary = '1 2 3 4'
value = 1500.0
[]
[]
[Materials]
[hotpressing_plasticity]
type = UO2HotPressingPlasticityUpdate
block = 1
input_yield_stress = 100
input_hardening_modulus = 1000
model_hotpressing = true
input_hotpressing = true
hotpressing_alpha = 0.01
debug_output = true
[]
[radial_return_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'hotpressing_plasticity'
block = 1
[]
[elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = 1
youngs_modulus = 2.e5
poissons_ratio = 0.3
[]
[thermal]
type = HeatConductionMaterial
block = 1
specific_heat = 1.0
thermal_conductivity = 100.
[]
[density]
type = StrainAdjustedDensity
block = 1
strain_free_density = 6550
[]
[]
[Postprocessors]
[elem_yield_stress]
type = ElementalVariableValue
variable = yield_stress
elementid = 0
[]
[elem_stress_yy]
type = ElementalVariableValue
variable = stress_yy
elementid = 0
[]
[elem_plastic_strain_xx]
type = ElementalVariableValue
variable = plastic_strain_xx
elementid = 0
[]
[elem_plastic_strain_yy]
type = ElementalVariableValue
variable = plastic_strain_yy
elementid = 0
[]
[elem_plastic_strain_zz]
type = ElementalVariableValue
variable = plastic_strain_zz
elementid = 0
[]
[]
[Executioner]
type = Transient
solve_type = PJFNK
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart'
petsc_options_value = '101'
line_search = 'none'
l_max_its = 100
nl_max_its = 10
nl_rel_tol = 1e-16
nl_abs_tol = 1e-9
l_tol = 1e-5
start_time = 0.0
num_steps = 10
dtmin = 10000
dt = 10000
[]
[Outputs]
csv = true
[out]
type = Exodus
[]
[]
(test/tests/sifgrs/uo2/ad_chromia_doped.i)
[Mesh]
[mesh]
type = FileMeshGenerator
file = 1hex8_10mm_cube.e
[]
[]
[Functions]
[Temp_func]
type = PiecewiseLinear
x = '0. 2.2e7'
y = '300. 2500.'
scale_factor = 1
[]
[Fiss_func]
type = PiecewiseLinear
x = '0 2.2e7'
y = '1.e19 1.e19'
[]
[]
[Variables]
[T]
initial_condition = 300
[]
[]
[AuxVariables]
[fission_rate]
initial_condition = 1.e19
[]
[eff_diff_coeff]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[heat]
type = ADHeatConduction
variable = T
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
value = 1
fission_rate_function = Fiss_func
execute_on = 'initial timestep_end'
[]
[eff_diffusion_coefficient]
type = ADMaterialRealAux
variable = eff_diff_coeff
property = eff_diff_coeff
execute_on = 'initial timestep_end'
[]
[]
[BCs]
[bottom_T]
type = ADFunctionDirichletBC
variable = T
function = Temp_func
boundary = 1
[]
[]
[Materials]
[UO2]
type = ADHeatConductionMaterial
block = 1
thermal_conductivity = 1.0
specific_heat = 1.0
[]
[fission_gas_behavior]
type = ADUO2Sifgrs
block = 1
temperature = T
fission_rate = fission_rate
skip_bdr_model = true
eff_diff_coeff_option = BULK
diff_coeff_option = TURNBULL_D1_4D2_4D3
doping_type = CR2O3_DOPED
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
start_time = 0.0
num_steps = 22
dt = 1e6
[]
[Postprocessors]
[temperature]
type = FunctionValuePostprocessor
function = Temp_func
execute_on = 'initial timestep_end'
[]
[fission_rate]
type = FunctionValuePostprocessor
function = Fiss_func
execute_on = 'initial timestep_end'
[]
[diffusion_coefficient]
type = ElementalVariableValue
elementid = 0
variable = eff_diff_coeff
execute_on = 'initial timestep_end'
[]
[fis_gas_generated]
type = ADElementIntegralFisGasGeneratedSifgrs
execute_on = 'initial timestep_end'
[]
[fis_gas_released]
type = ADElementIntegralFisGasReleasedSifgrs
execute_on = 'initial timestep_end'
[]
[fgr_percent]
type = FGRPercent
fission_gas_released = fis_gas_released
fission_gas_generated = fis_gas_generated
[]
[]
[Outputs]
exodus = true
[console]
type = Console
output_linear = true
max_rows = 23
[]
[]
(assessment/MOX/FFTF/FO-2/L09/analysis/fftf_fo2_L09_sub_1D.i)
#sens porosity velocity
initial_fuel_density = 10431.0
[GlobalParams]
density = ${initial_fuel_density}
energy_per_fission = 3.2e-11 # J/fission
[]
[Problem]
type = ReferenceResidualProblem
extra_tag_vectors = 'ref'
reference_vector = 'ref'
[]
[Mesh]
coord_type = RZ
[mesh]
type = GeneratedMeshGenerator
dim = 1
xmax = 2.794e-3
xmin = 6.985e-4
nx = 1000
elem_type = EDGE
[]
[]
[Variables]
[pore]
initial_condition = 0.2
scaling = 1e14
[]
[]
[AuxVariables]
[temp]
initial_condition = 295
[]
[pore_speed_aux]
order = constant
family = monomial
[]
[fission_rate]
[]
[burnup]
[]
[]
[Functions]
[power_history]
type = PiecewiseLinear
x = '0 74993.42422 31858942.74'
y = '0 24065.94372 24065.94372'
[]
[]
[Kernels]
[pore_continuity]
type = MOXPoreContinuity
variable = pore
temperature = temp
debug = 0
alpha = 0.25
beta = 1
heating_function = power_history
extra_vector_tags = 'ref'
[]
[pore_diffusion]
type = MOXPoreDiffusion
variable = pore
debug = 0
nu = 1e-12
heating_function = power_history
v_upper = 1e-12
v_lower = 1e-20
extra_vector_tags = 'ref'
[]
[poretimederivative]
type = CoefTimeDerivative
variable = pore
Coefficient = 1
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[pore_speed_aux]
type = MaterialRealAux
variable = pore_speed_aux
property = pore_velocity
execute_on = 'initial timestep_end'
[]
[fission_rate]
type = FissionRateGeneral
fission_rate_formulation = MOX
variable = fission_rate
initial_porosity = 0.2
rod_ave_lin_pow = power_history
pellet_diameter = 0.005588
execute_on = timestep_begin
pellet_inner_diameter = 0.001397
porosity = pore
[]
[burnup]
type = BurnupAux
fission_rate = fission_rate
variable = burnup
execute_on = timestep_begin
[]
[]
[Materials]
[pore_velocity]
type = MOXPoreVelocity
temperature = temp
limit = 1e-3
scale_factor = 0.1
[]
[]
[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'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
l_max_its = 50
l_tol = 8e-3
nl_max_its = 15
nl_rel_tol = 1e-4
nl_abs_tol = 1e-4
start_time = -200
n_startup_steps = 1
end_time = 31858942.74
dtmax = 1e6
dtmin = 1
[TimeStepper]
type = IterationAdaptiveDT
dt = 2e2
optimal_iterations = 10
iteration_window = 2
linear_iteration_ratio = 100
growth_factor = 2
cutback_factor = .5
force_step_every_function_point = true
timestep_limiting_function = power_history
[]
[]
[Postprocessors]
[ave_pore]
type = ElementAverageValue
variable = pore
[]
[max_pore]
type = NodalExtremeValue
value_type = max
variable = pore
[]
[min_pore]
type = NodalExtremeValue
value_type = min
variable = pore
[]
[max_pore_speed]
type = ElementExtremeValue
value_type = max
variable = pore_speed_aux
[]
[]
[VectorPostprocessors]
[radial_porosity]
type = LineValueSampler
variable = pore
start_point = '6.985e-4 0 0.0'
end_point = '2.794e-3 0 0.0'
num_points = 200
execute_on = final
sort_by = x
outputs = line_plot
[]
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = false
color = true
csv = false
[console]
type = Console
max_rows = 25
[]
[line_plot]
type = CSV
execute_on = 'FINAL'
time_step_interval = 1
file_base = 1d
create_final_symlink = true
[]
[]
[Debug]
show_var_residual_norms = true
show_var_residual = 'pore'
[]
(test/tests/mox_thermal/Halden/test.i)
# This test case is prepared to test the thermal conductivity using the Halden model.
#
# The temperature is ramped on all BCs of the unit line from 500 K to 3000K over 100 Ms.
# The fission rate is 2e19 n/m3/s, so that the burnup goes from 0 to
# ~ 8.6 at.% (82 MWd/kgU) at the end of the simulation.
#
# Thermal conductivity of UO2 fuel at 95%TD is computed using the Halden UO2 thermal conductivity model.
# The BISON predictions (BISON_k) compared to the expected results (expected_k)
# are summarized (see: post_processing.py --> comparison_results.csv) as:
#
# expected_k BISON_k percent_error expected_Pu_k BISON_Pu_k percent_error_Pu
# 5.869784658 5.869784658 -7.55E-13 5.401819451 5.401819451 -1.55E-13
# 5.580850701 5.580850701 5.44E-13 5.136078051 5.136078051 -3.55E-13
# 5.320173923 5.320173923 -5.55E-13 4.896337002 4.896337002 6.55E-13
# 5.083833746 5.083833746 3.11E-13 4.678989552 4.678989552 2.11E-13
# 4.86860483 4.86860483 1.44E-13 4.481068576 4.481068576 -5.77E-13
[GlobalParams]
order = FIRST
family = LAGRANGE
[]
[Mesh]
[geom]
type = GeneratedMeshGenerator
dim = 1
elem_type= EDGE2
[]
[]
[Variables]
[T]
initial_condition = 500
[]
[]
[AuxVariables]
[fission_rate]
[]
[burnup]
[]
[th_cond]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = T
[]
[heat_ie]
type = HeatConductionTimeDerivative
variable = T
[]
[heat_source]
type = NeutronHeatSource
variable = T
energy_per_fission = 3.2e-11
fission_rate = fission_rate
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable= fission_rate
value = 2e19 # Standard fission_rate fissions/m^3/s
execute_on = 'initial timestep_begin'
[]
[th_cond]
type = MaterialRealAux
variable = th_cond
property = thermal_conductivity
execute_on = 'initial linear'
[]
[burnup]
type = BurnupAux
variable = burnup
density = 10431.0 # 95% TD
fission_rate = fission_rate
execute_on = timestep_begin
[]
[]
[Functions]
[temp_ramp]
type = PiecewiseLinear
x = '0.0 100.e6'
y = '500 3000'
[]
[]
[BCs]
[VariableT]
type = FunctionDirichletBC
boundary = 'left right'
variable = T
function = temp_ramp
[]
[]
[Materials]
[fuel_thermal]
type = MOXThermal
temperature = T
burnup = burnup
thermal_conductivity_model = HALDEN
oxy_to_metal_ratio = 2.0
initial_porosity = 0.05
Pu_content = 0.07
[]
[density]
type = ParsedMaterial
property_name = density
expression = 10431.0
[]
[]
[Executioner]
type = Transient
start_time = 0
num_steps = 100
dt = 1.0e6
[]
[Postprocessors]
[avg_th_cond]
type = ElementAverageValue
variable = th_cond
execute_on = 'initial timestep_end'
[]
[average_rod_burnup]
type = ElementAverageValue
variable = burnup
execute_on = timestep_end
[]
[average_fuel_T]
type = ElementAverageValue
variable = T
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
csv = true
[]
(test/tests/thermalMOX/ThermalMOX_test.i)
# The mesh is 2 1x1x1 cubes. The mesh density is of 1 interval per edge.
# The temperature is ramped on all faces of each cube from 500 K to 1500K.
# The fission rate is from 2e19 n/m3/s, so that the burnup is from 5 at.%
# at the end of the simulation.
# Unirradiated thermal conductivity of block 1 is calculated using Duriez
# model. Then Lucuta's corrections are applied to account for burnup effect.
# Unirradiated thermal conductivity of block 2 is calculated using Fink-Amaya
# model. Then Lucuta's corrections for burnup are applied. For block2, a Pu
# content of 7 wt.% is assumed in MOX.
#
#
# The thermal conductivity computed by BISON was picked up each 10 time
# steps for each block, and compared with analytical solution for both Duriez
# and Amaya's models.The results are the following:
# DURIEZ
# Temp (k) Bu (at. %) BISON k (W/m/K) analytical k (W/m/K)
# 700.172 0.999619 3.32809 3.32809
# 900.344 1.99924 2.70782 2.70782
# 1100.52 2.99886 2.39556 2.39556
# 1300.69 3.99848 2.07969 2.07969
# 1500.00 4.99810 1.84994 1.84994
#
# AMAYA
# Temp (K) Bu (at. %) BISON k (W/m/K) analytical k (W/m/K)
# 700.172 0.999619 3.33664 3.33665
# 900.344 1.99924 2.75682 2.75682
# 1100.52 2.99886 2.43412 2.43411
# 1300.69 3.99848 2.08601 2.08601
# 1500.00 4.99810 1.81671 1.81671
# Note, you have to use PorosityMOX to define the porosity
# as a constant or a function of temperature.
initial_fuel_density = 10431.0
[Mesh]
[mesh]
type = FileMeshGenerator
file = 2cubes.e
[]
[]
[Variables]
[T]
order = FIRST
family = LAGRANGE
initial_condition = 500 # set initial T to 500 K
[]
[]
[AuxVariables]
[porosity_var]
order = CONSTANT
family = MONOMIAL
block = '1 2'
[]
[fission_rate]
order = FIRST
family = LAGRANGE
block = '1 2'
[]
[burnup]
order = FIRST
family = LAGRANGE
block = '1 2'
[]
[th_cond]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = T
[]
[heat_ie]
type = HeatConductionTimeDerivative
variable = T
[]
[heat_source]
type = NeutronHeatSource
variable = T
block = '1 2'
energy_per_fission = 3.2e-11
fission_rate = fission_rate
[]
[]
[AuxKernels]
[porosity_aux]
type = MaterialRealAux
variable = porosity_var
property = porosity
[]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable= fission_rate
block = '1 2'
value = 2e19 # Standard fission_rate
execute_on = 'initial timestep_begin'
[]
[th_cond]
type = MaterialRealAux
variable = th_cond
property = thermal_conductivity
block = '1 2'
[]
[burnup]
type = BurnupAux
block = '1 2'
variable = burnup
density = ${initial_fuel_density}
fission_rate = fission_rate
execute_on = timestep_begin
[]
[]
[Functions]
[temp_ramp]
type = PiecewiseLinear
x = '0.0 5.81e7'
y = '500 1500'
[]
[]
[BCs]
[VariableT]
type = FunctionDirichletBC
boundary = 3
variable = T
function = temp_ramp
[]
[]
[Materials]
[porosity]
type = PorosityMOX
block = '1 2'
# temperature = temp
porosity = 0.05
# anneal_temp = 200
[]
[fuel_thermal_Duriez]
type = MOXThermal
thermal_conductivity_model = DURIEZ
block = 1
temperature = T
burnup = burnup
# initial_porosity = 0.05
oxy_to_metal_ratio = 2.0
# t_porosity = porosity
[]
[fuel_thermal_Amaya]
type = MOXThermal
thermal_conductivity_model = AMAYA
block = 2
temperature = T
burnup = burnup
# initial_porosity = 0.05
Pu_content = 0.07
# t_porosity = porosity
[]
[fuel_density]
type = ParsedMaterial
block = '1 2'
property_name = density
expression = ${initial_fuel_density}
[]
[]
[Executioner]
type = Transient
solve_type = PJFNK
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart'
petsc_options_value = '101'
line_search = 'none'
l_max_its = 100
nl_max_its = 100
nl_rel_tol = 1e-4
nl_abs_tol = 1e-6
l_tol = 1e-5
start_time = 0.0
num_steps = 50
dt = 1.163e6
[]
[Outputs]
file_base = out_constant
[exodus]
type = Exodus
[]
[]
(assessment/verification/thermal/2d_3d_thermal_mesh_study/analysis/quad/test_2d.i)
[GlobalParams]
order = SECOND
family = LAGRANGE
[]
[Mesh]
coord_type=RZ
[mesh]
type = FileMeshGenerator
file = 'coarse_rz_quad8.e'
[]
[]
[Problem]
[]
[Variables]
[temp]
[]
[]
[AuxVariables]
[fission_rate]
block = 'pellet_type_1'
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temp
[]
[heat_source]
type = NeutronHeatSource
variable = temp
block = 'pellet_type_1'
fission_rate = fission_rate
energy_per_fission = 3.28451e-11
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
block = 'pellet_type_1'
value = 1.21783766833e19 #fissions/m3s
[]
[]
[BCs]
[side_temp]
type = DirichletBC
variable = temp
boundary = 10
value = 500
[]
[ ]
[Materials]
[fuel_thermal]
type = HeatConductionMaterial
block = 'pellet_type_1'
thermal_conductivity = 5.2
[]
[]
[Executioner]
type = Steady
[]
[Postprocessors]
[center_temp]
type = PointValue
point = '0.0 0.003 0'
variable = temp
[]
[avg_temp]
type = ElementAverageValue
block = 'pellet_type_1'
variable = temp
[]
[rod_total_power]
type = ElementIntegralPower
variable = temp
block = 'pellet_type_1'
fission_rate = fission_rate
[]
[]
[Outputs]
perf_graph = true
csv = true
[]
(test/tests/triso/buffer_thermal_material/buffer_thermal_specific_heat.i)
#Specific Heat Capacity of the Buffer
# The geometry is a cube (edge length = 5 cm) made of buffer material (initial density = 1.0 g/cm$^{3}$) subject to internal heat generation.
# The cube is under uniform temperature (initially 673.15 K) and has no heat sink.
# The thermal power is ramped linearly from 0 to 0.08 Watts over 10$^{4}$ seconds and then remains constant.
# Since the specific heat capacity of the buffer is constant ($C_{P}$ = 720 J/kg-K), the temperature increase $\Delta\T_{K}$ (K) in the cube during a timestep $\Delta\t$ (s) can be calculated by:
# \Delta\T_{K} = \frac{P \cdot \Delta\t}{V \cdot \rho \cdot C_{P}}
# Where $P$ (W) is the thermal power during the timestep, $V$ (1.25x10$^{-4}$ m$^{3}$) is the volume of the cube, and $\rho$ (1000 kg/m$^{3}$) is the density of the buffer.
# A sample of the BISON and analytical calculated temperatures is shown in below.
#
# |BISON $T$ (K) | Analytical $T$ (K)|
# |----------------|-------------------|
# | 677.82 | 677.82 |
# | 846.71 | 846.71 |
# | 1024.48 | 1024.48 |
# | 1202.26 | 1202.26 |
# | 1380.04 | 1380.04 |
# | 1468.93 | 1468.93 |
# | 1557.82 | 1557.82 |
# | 1735.59 | 1735.59 |
# | 1913.37 | 1913.37 |
[GlobalParams]
order = FIRST
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
[]
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 3
xmin = 0.0
xmax = 0.05
ymin = 0.0
ymax = 0.05
zmin = 0.0
zmax = 0.05
[]
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[Variables]
[temp]
initial_condition = 673.15
[]
[]
[AuxVariables]
[fission_rate]
[]
[specific_heat]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[power_history]
type = PiecewiseLinear
x = '0 1e4 1e8'
y = '0 2e13 2e13'
[]
[temp_func]
type = PiecewiseLinear
x = ' 0 5.3e6 6.3e6 1e8'
y = '673 673 673 673'
[]
[HTC_func]
type = PiecewiseLinear
x = '0 5.3e6 6.3e6 6.4e6 1e8'
y = '0 0 0 0 0'
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temp
[]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temp
[]
[heat_source]
type = NeutronHeatSource
variable = temp
fission_rate = fission_rate
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
fission_rate_function = power_history
value = 1.0
[]
[specific_heat]
type = MaterialRealAux
variable = specific_heat
property = specific_heat
execute_on = timestep_end
[]
[]
[BCs]
[heat_removal]
type = ConvectiveFluxFunction
boundary = 'back front top bottom left right'
variable = temp
T_infinity = temp_func
coefficient = HTC_func
[]
[]
[Materials]
[Buffer_thermal_conductivity]
type = BufferThermal
thermal_conductivity_scale_factor = 1.0
specific_heat_scale_factor = 1.0
initial_density = 1000
[]
[Buffer_density]
type = ParsedMaterial
block = '0'
property_name = density
expression = 1000
[]
[]
[Dampers]
[limitT]
type = MaxIncrement
max_increment = 100.0
variable = temp
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package -ksp_gmres_restart'
petsc_options_value = 'lu superlu_dist 51'
line_search = 'none'
l_max_its = 50
l_tol = 1e-2
nl_max_its = 150
nl_rel_tol = 1e-4
nl_abs_tol = 1e-6
start_time = 0.0
end_time = 1.4e6
num_steps = 100
dtmax = 2e6
dtmin = 1e-6
[TimeStepper]
type = IterationAdaptiveDT
dt = 5e2
time_t = '1e4 1e5'
time_dt = '5e2 1e5'
[]
[]
[Postprocessors]
[temp]
type = ElementAverageValue
variable = temp
execute_on = 'initial timestep_end'
[]
[specific_heat]
type = ElementAverageValue
variable = specific_heat
execute_on = 'initial timestep_end'
[]
[total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
execute_on = timestep_end
[]
[volume]
type = VolumePostprocessor
use_displaced_mesh = true
[]
[]
[Outputs]
csv = true
exodus = false
[console]
type = Console
[]
[]
(assessment/MOX/JOYO/MK-II/analysis/MK-II_master_new_bubble_gb_lim.i)
initial_fuel_density = 10920.4
[GlobalParams]
density = ${initial_fuel_density}
initial_porosity = 0.07
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
volumetric_locking_correction = false
displacements = 'disp_x disp_y'
[]
[Problem]
type = ReferenceResidualProblem
extra_tag_vectors = 'ref'
reference_vector = 'ref'
[]
[Mesh]
coord_type = RZ
[smeared_pellet_mesh]
type = FuelPinMeshGenerator
pellet_quantity = 1
pellet_height = 0.55
pellet_outer_radius = 0.002315
pellet_mesh_density = customize
clad_mesh_density = customize
clad_gap_width = 0.000085
clad_thickness = 0.00035
clad_bot_gap_height = 1.0e-3
bottom_clad_height = 2.24e-3
top_clad_height = 2.24e-3
clad_top_gap_height = 0.549
elem_type = QUAD8
nx_c = 4
ny_c = 100
nx_p = 10
ny_p = 100
ny_cu = 3
ny_cl = 3
[]
patch_size = 50
patch_update_strategy = iteration
partitioner = centroid
centroid_partitioner_direction = y
[]
[UserObjects]
[pin_geometry]
type = FuelPinGeometry
[]
[]
[Variables]
[temp]
initial_condition = 295.0
[]
[]
[AuxVariables]
[pore]
[]
[fission_rate]
block = pellet
[]
[burnup]
block = pellet
[]
[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
[]
[vcn_bdr_2]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[atm_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[vcn_bbl_bdr]
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
[]
[vol_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[GBCoverage]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[eff_diff_coeff]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[deltav_v0_bd]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[radial_strain]
order = CONSTANT
family = MONOMIAL
[]
[effective_creep_strain]
block = clad
order = CONSTANT
family = MONOMIAL
[]
[gap_cond]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[power_history] #related to the LHGR at the midplane
type = PiecewiseLinear
x = '0 70000 12970000'
y = '0 48827.8 48827.8'
[]
[fast_neutron_flux_function]
type = PiecewiseLinear
x = '0 70000 12970000'
y = '0 2.6e+19 2.6e+19'
[]
[axial_peaking_factors]
type = PiecewiseBilinear
x = '0 0.065 0.134 0.202 0.271 0.339 0.406 0.519'
y = '0 12970000'
z = '0.889 1.041 1.152 1.173 1.129 0.971 0.782 0.672 0.889 1.041 1.152 1.173 1.129 0.971 0.782 0.672'
scale_factor = 1
axis = 1
[]
[q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[]
[average_power_history]
type = PiecewiseLinear
x = '0 70000 12970000'
y = '0 40000 40000'
[]
[clad_surface_temp]
type = PiecewiseBilinear
x = '0 0.065 0.134 0.202 0.271 0.339 0.406 0.519'
y = '0 12970000'
z = '295 295 295 295 295 295 295 295 416.36 422.49 428.63 434.27 439.36 444.71 450.07 455.48'
scale_factor = 1
axis = 1
[]
[pressure_ramp]
type = PiecewiseLinear
x = '0 1'
y = '1 1'
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[pellets]
block = pellet
add_variables = true
strain = FINITE
eigenstrain_names = 'fuel_thermal_strain fuel_volumetric_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
use_finite_deform_jacobian = true
extra_vector_tags = 'ref'
[]
[clad]
block = clad
add_variables = true
strain = FINITE
eigenstrain_names = 'clad_thermal_eigenstrain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
use_finite_deform_jacobian = true
extra_vector_tags = 'ref'
[]
[]
[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
variable = temp
block = pellet
fission_rate = fission_rate
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[fission_rate]
type = FissionRateGeneral
fission_rate_formulation = MOX
variable = fission_rate
block = pellet
initial_porosity = 0.07
axial_power_profile = axial_peaking_factors
rod_ave_lin_pow = power_history
pellet_diameter = 0.00463
execute_on = timestep_begin
porosity = pore
[]
[burnup]
type = BurnupAux
block = pellet
fission_rate = fission_rate
variable = burnup
execute_on = timestep_begin
[]
[fggen]
type = MaterialRealAux
variable = gas_gen_3
property = gas_concentration_generated_total
execute_on = timestep_end
[]
[fggrn]
type = MaterialRealAux
variable = gas_grn_3
property = gas_concentration_intra_total
execute_on = timestep_end
[]
[fgbdr]
type = MaterialRealAux
variable = gas_bdr_3
property = gas_concentration_GB_bubble_volume
execute_on = timestep_end
[]
[fgrel]
type = MaterialRealAux
variable = gas_rel_3
property = gas_concentration_release_total
execute_on = timestep_end
[]
[nbbl2]
type = MaterialRealAux
variable = bbl_bdr_2
property = bubble_GB_surface_density
execute_on = timestep_end
[]
[nvcn2]
type = MaterialRealAux
variable = vcn_bdr_2
property = vacancy_concentration_GB_surface
execute_on = timestep_end
[]
[atmbbl]
type = MaterialRealAux
variable = atm_bbl_bdr
property = atom_per_bubble_GB
execute_on = timestep_end
[]
[vcnbbl]
type = MaterialRealAux
variable = vcn_bbl_bdr
property = vacancy_per_bubble_GB
execute_on = timestep_end
[]
[prsbbl]
type = MaterialRealAux
variable = prs_bbl_bdr
property = bubble_GB_pressure
execute_on = timestep_end
[]
[prseqbbl]
type = MaterialRealAux
variable = prseq_bbl_bdr
property = bubble_GB_pressure_equilibrium
execute_on = timestep_end
[]
[radbbl]
type = MaterialRealAux
variable = rad_bbl_bdr
property = bubble_radius_GB
execute_on = timestep_end
[]
[volbbl]
type = MaterialRealAux
variable = vol_bbl_bdr
property = bubble_GB_volume
execute_on = timestep_end
[]
[frcvrg]
type = MaterialRealAux
variable = GBCoverage
property = GBCoverage
execute_on = timestep_end
[]
[diffc]
type = MaterialRealAux
variable = eff_diff_coeff
property = eff_diff_coeff
execute_on = timestep_end
[]
[dvv0bd]
type = MaterialRealAux
variable = deltav_v0_bd
property = deltav_v0_bubble_GB
execute_on = timestep_end
[]
[radial_strain]
type = RankTwoAux
rank_two_tensor = total_strain
variable = radial_strain
index_i = 0
index_j = 0
execute_on = timestep_end
[]
[effective_creep_strain]
type = MaterialRealAux
property = effective_creep_strain
variable = effective_creep_strain
block = clad
execute_on = timestep_end
[]
[conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
execute_on = 'linear'
[]
[]
[Contact]
[pellet_clad_mechanical]
primary = 5
secondary = 10
formulation = kinematic
model = frictionless
penalty = 1e7
[]
[]
[ThermalContact]
[thermal_contact]
type = GasGapHeatTransfer
variable = temp
primary = 5
secondary = 10
initial_moles = initial_moles
gas_released = fis_gas_released
contact_pressure = contact_pressure
quadrature = true
[]
[]
[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 = 20
value = 0.0
[]
[temp_clad_out]
type = FunctionDirichletBC
variable = temp
boundary = '2'
function = clad_surface_temp
[]
[Pressure]
[coolantPressure]
boundary = '1 2 3'
factor = 101325
function = pressure_ramp
[]
[]
[PlenumPressure]
[plenumPressure]
boundary = 9
initial_pressure = 300000
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = ave_temp_interior
volume = gas_volume
material_input = fis_gas_released
output = plenum_pressure
[]
[]
[]
[Materials]
[fast_neutron_flux]
type = FastNeutronFlux
calculate_fluence = true
block = clad
flux_function = fast_neutron_flux_function
[]
[fuel_thermal]
type = MAMOXThermal
block = pellet
temperature = temp
Am_content = 0.0
Np_content = 0.0
porosity = pore
output_properties = 'thermal_conductivity'
[]
[fuel_elasticity_tensor]
type = MAMOXElasticityTensor
block = pellet
[]
[elastic_stress]
type = ComputeFiniteStrainElasticStress
block = pellet
[]
[fuel_thermal_expansion]
type = MAMOXThermalExpansionEigenstrain
block = pellet
temperature = temp
stress_free_temperature = 295.0
oxygen_to_metal_ratio = 1.98
eigenstrain_name = fuel_thermal_strain
[]
[fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
block = pellet
temperature = temp
burnup = burnup
initial_fuel_density = 10920.4
eigenstrain_name = fuel_volumetric_strain
[]
[clad_thermal]
type = SS316Thermal
block = clad
temperature = temp
[]
[clad_density]
type = StrainAdjustedDensity
block = clad
strain_free_density = 8000
[]
[clad_elasticity_tensor]
type = SS316ElasticityTensor
block = clad
temperature = temp
elastic_constants_model = legacy_ifr
[]
[thermal_expansion]
type = SS316ThermalExpansionEigenstrain
block = clad
temperature = temp
stress_free_temperature = 295.0
eigenstrain_name = clad_thermal_eigenstrain
[]
[clad_ss316creep]
type = SS316CreepUpdate
block = clad
temperature = temp
fast_neutron_flux = fast_neutron_flux
[]
[clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'clad_ss316creep'
block = clad
[]
[fission_gas_release]
type = UO2Sifgrs
block = pellet
temperature = temp
burnup = burnup
diff_coeff_option = TURNBULL_D1_4D2_4D3
fission_rate = fission_rate
grain_radius_const = 8.01e-6
bubble_gb_limit = 1.0e+11
[]
[fuel_density]
type = StrainAdjustedDensity
block = pellet
strain_free_density = ${initial_fuel_density}
[]
[]
[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'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
fixed_point_abs_tol = 1e-3
fixed_point_rel_tol = 1e-3
fixed_point_max_its = 1
l_max_its = 70
l_tol = 8e-3
nl_max_its = 70
nl_rel_tol = 1e-3
nl_abs_tol = 1e-3
start_time = 0
n_startup_steps = 1
end_time = 12970000
dtmax = 5e5
dtmin = 0.25
[TimeStepper]
type = IterationAdaptiveDT
dt = 5000
optimal_iterations = 15
iteration_window = 2
linear_iteration_ratio = 100
growth_factor = 2
cutback_factor = .5
force_step_every_function_point = true
timestep_limiting_function = power_history
[]
[]
[Postprocessors]
[ave_temp_interior]
type = SideAverageValue
boundary = 9
variable = temp
execute_on = 'initial linear'
[]
[average_burnup]
type = ElementAverageValue
block = pellet
variable = burnup
[]
[clad_inner_vol]
type = InternalVolume
boundary = 7
execute_on = 'initial timestep_end'
[]
[pellet_volume]
type = InternalVolume
boundary = 8
execute_on = 'initial timestep_end'
[]
[avg_clad_temp]
type = SideAverageValue
boundary = 7
variable = temp
execute_on = 'initial timestep_end'
[]
[fis_gas_produced]
type = ElementIntegralFisGasGeneratedSifgrs
block = pellet
execute_on = 'linear'
[]
[fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = pellet
execute_on = 'linear'
[]
[fis_gas_released_percentage]
type = FGRPercent
fission_gas_generated = fis_gas_produced
fission_gas_released = fis_gas_released
execute_on = 'linear'
[]
[fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = pellet
execute_on = 'linear'
[]
[fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = pellet
execute_on = 'linear'
[]
[gas_volume]
type = InternalVolume
boundary = 9
execute_on = 'initial linear'
[]
[flux_from_fuel]
type = SideDiffusiveFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[]
[rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = pellet
[]
[rod_input_power]
type = FunctionValuePostprocessor
function = average_power_history
scale_factor = 0.55 # rod height
[]
[average_vonMises_fuel]
type = ElementAverageValue
variable = vonmises_stress
block = pellet
[]
[average_vonMises_clad]
type = ElementAverageValue
variable = vonmises_stress
block = clad
[]
[average_strain_rr_fuel]
type = ElementAverageValue
variable = radial_strain
block = pellet
[]
[average_strain_rr_clad]
type = ElementAverageValue
variable = radial_strain
block = clad
[]
[average_creep_strain_clad]
type = ElementAverageValue
variable = effective_creep_strain
block = clad
[]
[ave_pore]
type = ElementAverageValue
variable = pore
[]
[max_pore]
type = NodalExtremeValue
value_type = max
variable = pore
[]
[min_pore]
type = NodalExtremeValue
value_type = min
variable = pore
[]
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = true
color = true
csv = true
[console]
type = Console
max_rows = 25
[]
[chkfile]
type = CSV
execute_on = FINAL
show = 'ave_temp_interior fis_gas_released_percentage max_pore'
[]
[]
[MultiApps]
[sub]
type = TransientMultiApp
app_type = BisonApp
execute_on = timestep_end
catch_up = true
max_catch_up_steps = 10
positions_file = positions.txt
input_files = MK-II_sub_new_bubble_gb_lim.i
[]
[]
[Transfers]
[temp_to_sub]
type = MultiAppProjectionTransfer
to_multi_app = sub
source_variable = temp
variable = temp
[]
[pore_from_sub]
type = MultiAppGeometricInterpolationTransfer
from_multi_app = sub
source_variable = pore
variable = pore
[]
[]
[Debug]
show_var_residual_norms = true
show_var_residual = 'temp disp_x disp_y'
[]
(test/tests/uo2_thermal/FinkLucuta/test.i)
# This test case is prepared to test the thermal conductivity using the Fink-Lucuta model.
#
# The temperature is ramped on all BCs of the unit line from 500 K to 3000K over 100 Ms.
# The fission rate is 2e19 n/m3/s, so that the burnup goes from 0 to
# ~ 8.6 at.% (82 MWd/kgU) at the end of the simulation.
#
# Thermal conductivity of UO2 fuel at 95%TD is computed using the Fink-Lucuta UO2
# thermal conductivity model.
# The BISON predictions (BISON_k) compared to the expected results (expected_k)
# are summarized (see: post_processing.py --> comparison_results.csv) as:
#
# expected_k BISON_k percent_error
# 4.867402805 4.867402805 7.33E-13
# 4.720864317 4.720864317 5.44E-13
# 4.582724225 4.582724225 3.11E-13
# 4.452567436 4.452567436 7.77E-14
# 4.329713424 4.329713424 1.67E-13
initial_fuel_density = 10431.0
[GlobalParams]
order = FIRST
family = LAGRANGE
[]
[Mesh]
[geom]
type = GeneratedMeshGenerator
dim = 1
elem_type= EDGE2
[]
[]
[Variables]
[T]
initial_condition = 500
[]
[]
[AuxVariables]
[fission_rate]
[]
[burnup]
[]
[th_cond]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = T
[]
[heat_ie]
type = HeatConductionTimeDerivative
variable = T
[]
[heat_source]
type = NeutronHeatSource
variable = T
energy_per_fission = 3.2e-11
fission_rate = fission_rate
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable= fission_rate
value = 2e19 # Standard fission_rate fissions/m^3/s
execute_on = 'initial timestep_begin'
[]
[th_cond]
type = MaterialRealAux
variable = th_cond
property = thermal_conductivity
execute_on = 'initial linear'
[]
[burnup]
type = BurnupAux
variable = burnup
density = ${initial_fuel_density} # 95% TD
fission_rate = fission_rate
execute_on = timestep_begin
[]
[]
[Functions]
[temp_ramp]
type = PiecewiseLinear
x = '0.0 100.e6'
y = '500 3000'
[]
[]
[BCs]
[VariableT]
type = FunctionDirichletBC
boundary = 'left right'
variable = T
function = temp_ramp
[]
[]
[Materials]
[fuel_thermal]
type = UO2Thermal
temperature = T
burnup = burnup
thermal_conductivity_model = FINK_LUCUTA
oxy_to_metal_ratio = 2.0
initial_porosity = 0.05
Gd_content = 0.0
[]
[density]
type = ParsedMaterial
property_name = density
expression = ${initial_fuel_density}
[]
[]
[Executioner]
type = Transient
start_time = 0
num_steps = 100
dt = 1.0e6
[]
[Postprocessors]
[avg_th_cond]
type = ElementAverageValue
variable = th_cond
execute_on = 'initial timestep_end'
[]
[average_rod_burnup]
type = ElementAverageValue
variable = burnup
execute_on = timestep_end
[]
[average_fuel_T]
type = ElementAverageValue
variable = T
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
csv = true
[]
(test/tests/sifgrs/uo2/polypole2.i)
# This input is to test polypole-2 for UO2Sifgrs
[Mesh]
[mesh]
type = FileMeshGenerator
file = 1hex8_10mm_cube.e
[]
[]
[Functions]
[temperature_function]
type = ParsedFunction
expression = '1700'
[]
[fission_rate_function]
type = ParsedFunction
expression = '2.5e19'
[]
[]
[Variables]
[temperature]
initial_condition = 1700
[]
[]
[AuxVariables]
[fission_rate]
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temperature
diffusion_coefficient = 1
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
value = 1
fission_rate_function = fission_rate_function
execute_on = 'initial timestep_begin'
[]
[]
[BCs]
[bottom_temperature]
type = FunctionDirichletBC
variable = temperature
function = temperature_function
boundary = '1 2'
[]
[]
[Materials]
[fission_gas_behavior]
type = UO2Sifgrs
skip_bdr_model = true
temperature = temperature
fission_rate = fission_rate
ig_diff_algorithm = POLYPOLE2
output_properties = 'bubble_concentration_intra bubble_radius_intra gas_concentration_bubble_intra gas_concentration_matrix_intra deltav_v0_intra_total'
outputs = 'all'
[]
[]
[Executioner]
type = Transient
solve_type = 'NEWTON'
l_tol = 1e-12
nl_abs_tol = 5e-16
nl_rel_tol = 1e-17
start_time = 0.0
num_steps = 50
dt = 3e6
[]
[Postprocessors]
[fis_gas_generated]
type = ElementIntegralMaterialProperty
mat_prop = gas_concentration_generated_total
[]
[fis_gas_released]
type = ElementIntegralMaterialProperty
mat_prop = gas_concentration_release_total
[]
[fgr_percent]
type = FGRPercent
fission_gas_released = fis_gas_released
fission_gas_generated = fis_gas_generated
[]
[intrag_swelling]
type = ElementIntegralMaterialProperty
mat_prop = deltav_v0_intra_total
[]
[gas_amount_bubble_intra]
type = ElementIntegralMaterialProperty
mat_prop = gas_concentration_bubble_intra
[]
[gas_amount_matrix_intra]
type = ElementIntegralMaterialProperty
mat_prop = gas_concentration_matrix_intra
[]
[bubble_amount_intra]
type = ElementIntegralMaterialProperty
mat_prop = bubble_concentration_intra
[]
[bubble_radius_intra_average]
type = ElementAverageMaterialProperty
mat_prop = bubble_radius_intra
[]
[temperature]
type = ElementAverageValue
variable = temperature
[]
[fission_rate]
type = ElementAverageValue
variable = fission_rate
[]
[]
[Outputs]
exodus = true
csv = true
[]
(assessment/MOX/JOYO/B14/PTM001/analysis/b14_ptm001_1D_sample3_ox_noAm.i)
# Sample at midplane
initial_fuel_density = 11026.4
[GlobalParams]
density = ${initial_fuel_density}
family = LAGRANGE
[]
[Problem]
type = ReferenceResidualProblem
extra_tag_vectors = 'ref'
reference_vector = 'ref'
[]
[Mesh]
coord_type = RZ
[layered1D_mesh]
type = Layered1DMeshGenerator
fuel_height = 10e-3
pellet_outer_radius = 0.0027
pellet_bottom_coor = 0.0
pellet_mesh_density = customize
nx_p = 200
elem_type = EDGE2
slices_per_block = 1
include_plenum = false
include_clad = false
[]
[]
[UserObjects]
[pin_geometry]
type = Layered1DFuelPinGeometry
include_clad = false
mesh_generator = layered1D_mesh
[]
[]
[Variables]
[oxygen]
initial_condition = 0.009 #nominal value
scaling = 1e-20
[]
[]
[AuxVariables]
[temp]
[]
[fission_rate]
[]
[burnup]
[]
[oxygen_to_metal_ratio]
order = CONSTANT
family = MONOMIAL
initial_condition = 1.982
[]
[saved_t]
[]
[saved_o]
[]
[]
[Functions]
[power_history]
type = PiecewiseLinear
x = '-200 0 72000 158040 160200 246600 248400 249000.012 251280'
y = '0 0 39456.16 39456.16 43890.71 43890.71 53442.06 53442.06 0'
[]
[]
[Kernels]
[oxygen_time_derivative]
type = TimeDerivative
variable = oxygen
[]
[oxygen]
type = MOXOxygenDiffusion
variable = oxygen
temperature = temp
burnup = burnup
oxygen_to_metal_ratio = oxygen_to_metal_ratio
O_M_initial = 1.982
q0 = 0.3
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[fission_rate]
type = FissionRateGeneral
fission_rate_formulation = MOX
variable = fission_rate
block = fuel
initial_porosity = 0.1372
rod_ave_lin_pow = power_history
pellet_diameter = 0.0054
execute_on = timestep_begin
energy_per_fission = 3.2e-11
[]
[burnup]
type = BurnupAux
block = fuel
fission_rate = fission_rate
variable = burnup
execute_on = timestep_begin
[]
[OM]
type = MaterialRealAux
variable = oxygen_to_metal_ratio
property = oxygen_to_metal_ratio
execute_on = timestep_end
[]
[]
[Materials]
[fuel_thermal]
type = MAMOXThermal
temperature = temp
porosity = 0.1372
block = fuel
Am_content = 0.0
oxy_to_metal_ratio = 1.982
[]
[fuel_density]
type = ParsedMaterial
block = fuel
property_name = density
expression = ${initial_fuel_density}
[]
[O_M_ratio]
type = MOXOxygenToMetalRatio
oxygen = oxygen
output_properties = 'oxygen_to_metal_ratio'
O_M_initial = 1.982
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Dampers]
[bound]
type = BoundingValueNodalDamper
max_value = 1
min_value = 0
variable = oxygen
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -sub_pc_type'
petsc_options_value = 'asm lu'
line_search = 'none'
l_max_its = 50
l_tol = 8e-3
nl_max_its = 50
nl_rel_tol = 1e-5
nl_abs_tol = 1e-5
start_time = -200
n_startup_steps = 1
end_time = 251280
dtmax = 10000
dtmin = 0.25
[TimeStepper]
type = IterationAdaptiveDT
dt = 1e1
optimal_iterations = 15
iteration_window = 2
linear_iteration_ratio = 100
growth_factor = 2
cutback_factor = .5
force_step_every_function_point = true
timestep_limiting_function = power_history
[]
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = false
color = true
csv = false
[console]
type = Console
max_rows = 25
[]
[line_plot]
type = CSV
execute_on = 'TIMESTEP_END'
time_step_interval = 1
file_base = 1d
create_final_symlink = true
[]
[]
(test/tests/sifgrs/uo2/ad_mechanistic_igmodel.i)
# @Requirement F2.40
# This test is for evaluating the mechanistic model for the intra-granular fission gas behavior and bubble evolution in the Sifgrs fission gas model.
#
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 3
xmin = 0
xmax = 0.01
ymin = 0
ymax = 0.01
zmin = 0
zmax = 0.01
nx = 1
ny = 1
nz = 1
[]
[]
[Functions]
[Temp_func]
type = ParsedFunction
expression = '1273'
[]
[Fiss_func]
type = ParsedFunction
expression = '1.e19'
[]
[]
[Variables]
[T]
initial_condition = 1273
[]
[]
[AuxVariables]
[fission_rate]
[]
[fract_FGR_analytical]
order = CONSTANT
family = MONOMIAL
[]
[rad_bbl_grn]
order = CONSTANT
family = MONOMIAL
[]
[bbl_grn_3]
order = CONSTANT
family = MONOMIAL
[]
[gas_bbl_grn]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[heat]
type = ADHeatConduction
variable = T
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
value = 1
fission_rate_function = Fiss_func
execute_on = 'initial timestep_begin'
[]
[bbl_cnc]
type = ADMaterialRealAux
variable = bbl_grn_3
property = bubble_concentration_intra
execute_on = 'TIMESTEP_END'
[]
[rad_bbl]
type = ADMaterialRealAux
variable = rad_bbl_grn
property = bubble_radius_intra
execute_on = 'TIMESTEP_END'
[]
[gascnc_bbl]
type = ADMaterialRealAux
variable = gas_bbl_grn
property = gas_concentration_bubble_intra
execute_on = 'TIMESTEP_END'
[]
[]
[BCs]
[bottom_T]
type = ADFunctionDirichletBC
variable = T
function = Temp_func
boundary = bottom
[]
[]
[Materials]
[UO2]
type = ADHeatConductionMaterial
thermal_conductivity = 1.0
specific_heat = 1.0
[]
[fission_gas_behavior]
type = ADUO2Sifgrs
skip_bdr_model = true
temperature = T
fission_rate = fission_rate
grain_radius_const = 5.e-6
ig_bubble_model = NUCLEATION_RESOLUTION
initial_porosity = 0.0
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
l_tol = 1e-4
nl_abs_tol = 1e-5
nl_rel_tol = 1e-5
start_time = 0.0
num_steps = 10
dt = 19800.
[]
[Postprocessors]
[fis_gas_generated]
type = ADElementIntegralFisGasGeneratedSifgrs
block = 0
[]
[fis_gas_released]
type = ADElementIntegralFisGasReleasedSifgrs
block = 0
[]
[]
[Outputs]
exodus = true
[]
(assessment/MOX/JOYO/B14/PTM001/analysis/b14_ptm001_1D_sample3.i)
# Sample at midplane
initial_fuel_density = 11057.75
[GlobalParams]
density = ${initial_fuel_density}
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
[]
[Problem]
type = ReferenceResidualProblem
extra_tag_vectors = 'ref'
reference_vector = 'ref'
[]
[Mesh]
coord_type = RZ
[layered1D_mesh]
type = Layered1DMeshGenerator
fuel_height = 10e-3
pellet_outer_radius = 0.0027
pellet_bottom_coor = 0.0
pellet_mesh_density = customize
nx_p = 200
elem_type = EDGE2
slices_per_block = 1
include_plenum = false
include_clad = false
[]
[]
[UserObjects]
[pin_geometry]
type = Layered1DFuelPinGeometry
include_clad = false
mesh_generator = layered1D_mesh
[]
[]
[Variables]
[temp]
initial_condition = 295.0
[]
[]
[AuxVariables]
[oxygen]
[]
[fission_rate]
[]
[burnup]
[]
[oxygen_to_metal_ratio]
order = CONSTANT
family = MONOMIAL
initial_condition = 1.982
[]
[]
[Functions]
[power_history]
type = PiecewiseLinear
x = '-200 0 72000 158040 160200 246600 248400 249000.012 251280'
y = '0 0 39456.16 39456.16 43890.71 43890.71 53442.06 53442.06 0'
[]
[f_temp_out_fuel]
type = PiecewiseLinear
x = '-200 0 251280'
y = '295 295 1148'
[]
[]
[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
fission_rate = fission_rate
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[fission_rate]
type = FissionRateGeneral
fission_rate_formulation = MOX
variable = fission_rate
block = fuel
initial_porosity = 0.1372
rod_ave_lin_pow = power_history
pellet_diameter = 0.0054
execute_on = timestep_begin
energy_per_fission = 3.2e-11
[]
[burnup]
type = BurnupAux
block = fuel
fission_rate = fission_rate
variable = burnup
execute_on = timestep_begin
[]
[]
[BCs]
[temp_fuel_outside]
type = FunctionDirichletBC
variable = temp
function = f_temp_out_fuel
boundary = 10
[]
[]
[Materials]
[fuel_thermal]
type = MAMOXThermal
temperature = temp
porosity = 0.1372
block = fuel
Am_content = 0.0237
oxy_to_metal_ratio = 1.982
[]
[fuel_density]
type = ParsedMaterial
block = fuel
property_name = density
expression = ${initial_fuel_density}
[]
[oxygen_partial_pressure_integral]
type = MOXOxygenPartialPressure
block = fuel
temperature = temp
o2m_deviation = 0.02
po2_initial = 0.01
outputs = exodus
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -sub_pc_type'
petsc_options_value = 'asm lu'
line_search = 'none'
fixed_point_rel_tol = 1e-05
fixed_point_abs_tol = 1e-05
fixed_point_max_its = 1
l_max_its = 50
l_tol = 8e-3
nl_max_its = 50
nl_rel_tol = 1e-5
nl_abs_tol = 1e-5
start_time = -200
n_startup_steps = 1
end_time = 251280
dtmax = 10000
dtmin = 0.25
[TimeStepper]
type = IterationAdaptiveDT
dt = 1e1
optimal_iterations = 15
iteration_window = 2
linear_iteration_ratio = 100
growth_factor = 2
cutback_factor = .5
force_step_every_function_point = true
timestep_limiting_function = power_history
[]
[]
[Postprocessors]
[ave_temp_interior]
type = ElementAverageValue
variable = temp
execute_on = 'initial linear'
[]
[average_burnup]
type = ElementAverageValue
variable = burnup
[]
[ave_ox]
type = ElementAverageValue
variable = oxygen
[]
[max_ox]
type = NodalExtremeValue
value_type = max
variable = oxygen
[]
[min_ox]
type = NodalExtremeValue
value_type = min
variable = oxygen
[]
[ave_om_ratio]
type = ElementAverageValue
variable = oxygen_to_metal_ratio
[]
[max_om_ratio]
type = ElementExtremeValue
value_type = max
variable = oxygen_to_metal_ratio
[]
[min_om_ratio]
type = ElementExtremeValue
value_type = min
variable = oxygen_to_metal_ratio
[]
[rod_total_power]
type = LayeredElementIntegralPowerPostprocessor
variable = temp
fission_rate = fission_rate
block = fuel
fuel_pin_geometry = pin_geometry
[]
[rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 10e-3 # rod height
[]
[]
[VectorPostprocessors]
[fuel_radial_temperature_Sample]
type = LineValueSampler
variable = temp
start_point = '0.0 0.005 0.0'
end_point = '0.0027 0.005 0.0'
num_points = 200
execute_on = final
sort_by = x
outputs = line_plot
[]
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = true
color = true
csv = true
[console]
type = Console
max_rows = 25
[]
[line_plot]
type = CSV
execute_on = 'FINAL'
time_step_interval = 1
file_base = 1d
create_final_symlink = true
[]
[chkfile]
type = CSV
execute_on = FINAL
show = 'ave_temp_interior ave_om_ratio'
[]
[]
[MultiApps]
[sub]
type = TransientMultiApp
app_type = BisonApp
execute_on = timestep_end
catch_up = true
max_catch_up_steps = 10
positions = '0 0.005 0'
input_files = b14_ptm001_1D_sample3_ox.i
[]
[]
[Transfers]
[temp_to_sub]
type = MultiAppCopyTransfer
to_multi_app = sub
source_variable = temp
variable = temp
[]
[ox_from_sub]
type = MultiAppCopyTransfer
from_multi_app = sub
source_variable = oxygen
variable = oxygen
[]
[ox_to_met_from_sub]
type = MultiAppCopyTransfer
from_multi_app = sub
source_variable = oxygen_to_metal_ratio
variable = oxygen_to_metal_ratio
[]
[]
[Debug]
show_var_residual_norms = true
[]
(test/tests/carbon_monoxide_production/carbon_monoxide_production_test.i)
# Tests the carbon monoxide production postprocessor
# A constant volumetric fission rate of 1e19 fissions/m^3-s is applied to a 1 cm cube.
# All sides of the cube are held at 1000K to force a constant average surface temperature.
# The problem is solved over ten time steps of 1e7 s.
#
# The total number of fissions is computed using:
# 1) the ElementIntegralPower post processor and specifying energy_per_fission = 1 to
# get the total fission rate
# 2) the TimeIntegratedPostprocessor post processor to time integrate the total fission rate
#
# The time integrated particle surface temperature is computed using:
# 1) the SideAverageValue post processor to give the time dependent average temperature
# over the particle surface
# 2) the TimeIntegratedPostprocessor post processor to give the time integrated average temperature
# over the particle surface
#
# At t=1e8 (after ten time steps)
# _total_fissions = 1e19(fissions/m^3-s)*(0.01m)**3*1e8
# = 1e21 fissions
# _time_avg_surf_temp = _time_int_surf_temp/total_time
# = 1e11/1e8
# = 1000K
#
# 1. For the Proksch model, the moles of oxygen (and thus carbon monoxide) are given by:
#
# moles CO = [_total_fissions*_t^2/((1.211e10)*10^(8500/(_time_avg_surf_temp))] / Avogadros_number
#
# moles co = (1e21*1e8^2/((1.211e10)*10^(8500/1000))) / 6.02214076e23
# = 4.336156561E-06 moles
#
# which is what the post processor gets
#
# 2. For the GA model, the moles of oxygen are given by:
#
# moles co = (1.64*exp(-3311/1000)) * 1e21 / 6.02214076e23 = 9.934452008E-05
#
[Mesh]
[mesh]
type = FileMeshGenerator
file = cube_1cm.e
[]
[]
[Variables]
[T]
order = FIRST
family = LAGRANGE
initial_condition = 1000
[]
[]
[AuxVariables]
[fission_rate]
order = FIRST
family = LAGRANGE
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = T
[]
[ie]
type = HeatConductionTimeDerivative
variable = T
[]
[heat_source]
type = NeutronHeatSource
variable = T
energy_per_fission = 3.2e-11
fission_rate = fission_rate
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
value = 1.0e19
execute_on = 'initial timestep_begin'
[]
[]
[BCs]
[bottom_T]
type = DirichletBC
variable = T
boundary = '1 2 3 4 5 6'
value = 1000.0
[]
[]
[Materials]
[fuel]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 10
specific_heat = 100
[]
[density]
type = ParsedMaterial
block = 1
property_name = density
expression = 10000
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
nl_abs_tol = 1e-10
nl_rel_tol = 1e-8
start_time = 0.0
num_steps = 10
dt = 1.0e7
[]
[Postprocessors]
[total_fission_rate]
type = ElementIntegralPower
variable = T
fission_rate = fission_rate
block = 1
energy_per_fission = 1.0
execute_on = 'initial timestep_end'
[]
[total_fissions]
type = TimeIntegratedPostprocessor
value = total_fission_rate
[]
[avg_surface_temp]
type = SideAverageValue
variable = T
boundary = '1 2 3 4 5 6'
execute_on = 'initial timestep_end'
[]
[time_int_surf_temp]
type = TimeIntegratedPostprocessor
value = avg_surface_temp
execute_on = 'initial timestep_end'
[]
[co_production]
type = CarbonMonoxideProduction
total_fissions = total_fissions
initial_enrichment = 0.14029
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
csv = true
[]
(assessment/metallic_fuel/TREAT/M7/analysis/binary_t427.i)
# TREAT M7 U-10Zr pin clad in HT9 transient only simulation.
# Not using transferred initial condition.
# ANL-IFR-124 Test M7 T-427
# Units: m, W, kg, Pa
[Debug]
show_var_residual = 'disp_x disp_y temperature'
show_var_residual_norms = true
[]
[GlobalParams]
order = SECOND
family = LAGRANGE
energy_per_fission = 3.28451e-11
displacements = 'disp_x disp_y'
stress_free_temperature = 586.0
temperature = temperature
# Some calculated values, which are nice to know.
# u_weight = 0.90126
# pu_weight = 0.00115
# zr_weight = 0.0976
# X_U = 0.779
X_Pu = 0.000969
X_Zr = 0.22
[]
[Problem]
type = ReferenceResidualProblem
extra_tag_vectors = 'ref'
reference_vector = 'ref'
group_variables = 'disp_x disp_y'
[]
[Mesh]
coord_type = RZ
[smeared_pellet_mesh]
type = FuelPinMeshGenerator
clad_bot_gap_height = 0.38e-3
clad_gap_width = 1e-6
clad_thickness = 0.38e-3
clad_top_gap_height = 252.35e-3
pellet_height = 37.3e-2
pellet_outer_radius = 2.54e-3
pellet_quantity = 1
bottom_clad_height = 1.9e-3
top_clad_height = 1.9e-3
elem_type = QUAD8
clad_mesh_density = customize
pellet_mesh_density = customize
nx_c = 3
nx_p = 5
ny_c = 150
ny_cl = 3
ny_cu = 3
ny_p = 175
[]
patch_size = 25
partitioner = centroid
patch_update_strategy = auto
centroid_partitioner_direction = y
[]
[Functions]
[power_history] # Peak power density
type = PiecewiseLinear
data_file = 'm7fa_digitized.csv'
format = columns
scale_factor = 78.8 # g; grams of fuel in pellet for W/g to W
[]
[axial_peaking_factors] # Peak factor (1 max)
type = PiecewiseBilinear
data_file = 'm7_axial_tranAlone.csv'
axis = 1
[]
[q_heat]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
scale_factor = 132273.8097 # m^-3; volume of fuel slug, 1/V, to make power density
[]
[dt_fun]
type = PiecewiseLinear
x = '0 6 7 9 15 20 25'
y = '0.5 0.5 0.01 0.01 0.01 0.001 0.1'
[]
[]
[Variables]
[temperature]
initial_condition = 586.0
[]
[]
[Physics/SolidMechanics/QuasiStatic]
add_variables = true
strain = FINITE
generate_output = 'stress_xx stress_yy stress_zz vonmises_stress hydrostatic_stress elastic_strain_xx elastic_strain_yy elastic_strain_zz strain_xx strain_yy strain_zz'
[slug_mech]
block = pellet
additional_generate_output = 'creep_strain_xx creep_strain_yy creep_strain_zz'
eigenstrain_names = 'slug_thermal_strain'
extra_vector_tags = 'ref'
[]
[clad_mech]
block = clad
additional_generate_output = 'creep_strain_xx creep_strain_yy creep_strain_zz'
eigenstrain_names = 'clad_thermal_eigenstrain'
extra_vector_tags = 'ref'
[]
[]
[Kernels]
[gravity]
type = Gravity
variable = disp_y
value = -9.81
extra_vector_tags = 'ref'
[]
[heat]
type = ConstitutiveHeatConduction
extra_vector_tags = 'ref'
variable = temperature
thermal_conductivity = 'thermal_conductivity'
thermal_conductivity_args = 'temperature'
thermal_conductivity_derivs = 'thermal_conductivity_dT'
[]
[heat_ie]
type = ConstitutiveHeatConductionTimeDerivative
extra_vector_tags = 'ref'
variable = temperature
specific_heat = 'specific_heat'
specific_heat_args = 'temperature'
specific_heat_derivs = 'specific_heat_dT'
[]
[vol_heat_source]
type = HeatSource
extra_vector_tags = 'ref'
block = pellet
function = q_heat
variable = temperature
[]
[]
[AuxVariables]
[power_density]
block = pellet
[]
[fission_rate]
block = pellet
[]
[fast_neutron_flux]
block = clad
[]
[fast_neutron_fluence]
block = clad
[]
[creep_rate_aux]
order = CONSTANT
family = MONOMIAL
[]
# Aux variables for output
[energy_density]
block = pellet
initial_condition = 0.0
[]
[gap_cond]
order = CONSTANT
family = MONOMIAL
[]
[coolant_htc]
order = CONSTANT
family = MONOMIAL
block = clad
[]
[coolant_temperature]
order = CONSTANT
family = MONOMIAL
block = clad
[]
[cumulative_damage_index]
order = CONSTANT
family = MONOMIAL
block = clad
[]
[element_failed]
order = CONSTANT
family = MONOMIAL
[]
[eutectic_thickness_in]
order = CONSTANT
family = MONOMIAL
block = clad
[]
[eutectic_thickness_out]
order = CONSTANT
family = MONOMIAL
block = clad
[]
[]
[AuxKernels]
[calc_fission_rate]
type = FissionRateGeneral
fission_rate_formulation = POWER_DENSITY
block = pellet
power_density_function = q_heat
variable = fission_rate
execute_on = 'initial timestep_end'
[]
[fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = clad
factor = 0.6e19
execute_on = 'initial timestep_end'
[]
[fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
block = clad
fast_neutron_flux = fast_neutron_flux
execute_on = 'initial timestep_end'
[]
[calc_power_density]
type = FunctionAux
block = pellet
function = q_heat
variable = power_density
execute_on = 'initial timestep_end'
[]
[calc_energy_density]
type = VariableTimeIntegrationAux
block = pellet
order = 2
variable_to_integrate = power_density
variable = energy_density
execute_on = timestep_end
[]
# Hoop stress_zz.
[creep_rate_aux]
type = MaterialRealAux
property = creep_rate
variable = creep_rate_aux
execute_on = timestep_end
[]
[conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
[]
[coolant_temperature]
type = MaterialRealAux
property = coolant_temperature
variable = coolant_temperature
boundary = 2
[]
[coolant_htc]
type = MaterialRealAux
property = coolant_channel_htc
variable = coolant_htc
boundary = 2
[]
[cdf_amount]
block = clad
type = MaterialRealAux
property = cdf_failure
variable = cumulative_damage_index
[]
[failed_element]
type = MaterialRealAux
property = failed
variable = element_failed
[]
[fcci_eutectic_in]
execute_on = timestep_end
type = EutecticThicknessFCCI
boundary = 5
variable = eutectic_thickness_in
[]
[fcci_eutectic_out]
execute_on = timestep_end
type = EutecticThicknessFCCI
boundary = 2
variable = eutectic_thickness_out
[]
[]
[Postprocessors]
[_dt]
type = TimestepSize
outputs = all
[]
[fis_gas_released]
type = ElementIntegralMaterialProperty
mat_prop = fis_gas_rel
block = pellet
execute_on = 'initial timestep_end'
[]
[ave_temp_interior]
type = SideAverageValue
boundary = 9
variable = temperature
execute_on = 'initial linear'
[]
[avg_clad_temp]
type = ElementAverageValue
variable = temperature
outputs = all
block = clad
[]
[avg_fuel_temp]
type = ElementAverageValue
variable = temperature
outputs = all
block = pellet
[]
[max_outer_clad_temp]
type = NodalExtremeValue
variable = temperature
value_type = max
boundary = 2
[]
[peak_clad_temp]
type = ElementExtremeValue
variable = temperature
value_type = max
block = clad
outputs = all
[]
[peak_fuel_temp]
type = ElementExtremeValue
variable = temperature
value_type = max
block = pellet
outputs = all
[]
[peak_outer_fuel_temp]
type = NodalExtremeValue
variable = temperature
value_type = max
boundary = 10
[]
[peak_coolant_temperature]
type = ElementExtremeValue
variable = coolant_temperature
value_type = max
block = clad
outputs = all
[]
[max_power_density]
type = ElementExtremeValue
variable = power_density
value_type = max
block = pellet
[]
[avg_power_density]
type = ElementAverageValue
variable = power_density
block = pellet
outputs = all
[]
[total_deposit_pin_energy]
type = ElementIntegralVariablePostprocessor
variable = energy_density
block = pellet
[]
[clad_inner_vol]
type = InternalVolume
boundary = 7
[]
[pellet_volume]
type = InternalVolume
boundary = 8
execute_on = 'initial timestep_end'
[]
[gas_volume]
type = InternalVolume
boundary = 9
execute_on = 'initial linear'
outputs = all
addition = -2.0e-6 # m3; assuming all bond sodium displaced by closed gap
[]
[clad_fuel_gap]
type = NodalExtremeValue
variable = penetration
boundary = 10
outputs = all
[]
[max_eutectic_pen_in]
type = ElementExtremeValue
variable = eutectic_thickness_in
block = clad
value_type = max
execute_on = timestep_end
outputs = all
[]
[max_eutectic_pen_out]
type = ElementExtremeValue
variable = eutectic_thickness_out
block = clad
value_type = max
execute_on = timestep_end
outputs = all
[]
[]
[Contact]
[pellet_clad_mechanical]
primary = 5
secondary = 10
penalty = 1e12
model = frictionless
normalize_penalty = true
tangential_tolerance = 1e-3
normal_smoothing_distance = 0.1
[]
[]
[ThermalContact]
[thermal_contact]
type = GapHeatTransfer
variable = temperature
primary = 5
secondary = 10
quadrature = true
gap_conductivity = 73.70
min_gap = 1e-3
[]
[]
[BCs]
[no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[]
[no_y_fuel]
type = PenaltyDirichletBC
penalty = 1e10
variable = disp_y
boundary = 20
value = 0.0
[]
[no_y_clad]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[]
[Pressure]
[coolantPressure]
boundary = '1 2 3'
factor = 455054.0
[]
[]
[PlenumPressure]
[plenumPressure]
boundary = 9
initial_pressure = 1.41343e6
initial_temperature = 309.0
startup_time = 0.0
R = 8.3143
temperature = ave_temp_interior
volume = gas_volume
output = plenum_pressure
material_input = fis_gas_released
output_initial_moles = plenum_moles
[]
[]
[]
[CoolantChannel]
[convective_clad_surface]
boundary = '1 2 3'
variable = temperature
inlet_temperature = 586.0
inlet_pressure = 455054.0
inlet_massflux = 4520.72
coolant_material = sodium
flow_area = 2.22e-5
hydraulic_diameter = 2.057e-3
heated_perimeter = 1.835e-2
heated_diameter = 4.84e-3
number_axial_zone = 50
htc_correlation_type = 3
compute_enthalpy = true
[]
[]
[Materials]
# Fuel Slug Properties
[set_porosity]
type = GenericConstantMaterial
block = pellet
prop_names = porosity
prop_values = 0.31
[]
[set_mat_fission_rate]
type = ParsedMaterial
block = pellet
coupled_variables = 'fission_rate'
expression = 'fission_rate * 1.0'
property_name = 'fission_rate'
[]
[melted]
type = GenericMaterialFailure
block = pellet
compared = greater_than
variable_check = temperature
constant_criteria = 1600.0
[]
[for_youngs]
# Pulled equation from Bison manual and added temperature limit.
type = ParsedMaterial
block = pellet
outputs = all
output_properties = 'youngs_modulus'
property_name = 'youngs_modulus'
coupled_variables = 'temperature'
material_property_names = 'porosity'
constant_names = 'T_limit E_U T_meltU W_Zr W_Pu B_E Ta_start Ta_end'
constant_expressions = '1550.0 1.6e11 1405.0 0.0976 0.00115 1.2 923.0 973.0'
expression = 'E_p := 1.0 - B_E * porosity; E_W := (1.0 + 0.17 * W_Zr) / (1.0 + 1.34 * W_Zr) - W_Pu; T_act := if(temperature > T_limit, T_limit, temperature); x_smooth := (T_act - Ta_start) / (Ta_end - Ta_start); f_smooth := if(T_act < Ta_start, 0.0, if(T_act > Ta_end, 1.0, 6.0 * pow(x_smooth, 5) - 15.0 * pow(x_smooth, 4) + 10.0 * pow(x_smooth, 3))); E_T := 1.0 - 1.06 * (T_act - 588.0) / T_meltU - f_smooth * 0.3 * (1.0 - 1.06 * (Ta_end - 588.0) / T_meltU); E_U * E_T * E_p * E_W'
[]
[for_poissons]
# Pulled equation from Bison manual and added temperature limit.
type = ParsedMaterial
block = pellet
outputs = all
output_properties = 'poissons_ratio'
property_name = 'poissons_ratio'
coupled_variables = 'temperature'
material_property_names = 'porosity'
constant_names = 'T_limit nu_U T_meltU W_Zr B_nu'
constant_expressions = '1550.0 0.24 1405.0 0.0976 0.8'
expression = 'nu_p := 1.0 - B_nu * porosity; nu_W := (1.0 + 3.4 * W_Zr) / (1.0 + 1.9 * W_Zr); T_act := if(temperature > T_limit, T_limit, temperature); nu_T := 1.0 + 1.2 * (T_act - 588.0) / T_meltU; nu_U *nu_p * nu_W * nu_T'
[]
[slug_elasticity_tensor]
type = ComputeVariableIsotropicElasticityTensor
block = pellet
args = temperature
youngs_modulus = youngs_modulus
poissons_ratio = poissons_ratio
[]
[slug_stress]
type = ComputeMultipleInelasticStress
tangent_operator = nonlinear
inelastic_models = 'slug_creep'
block = pellet
[]
[slug_creep]
type = UPuZrCreepUpdate
block = pellet
porosity = porosity
max_inelastic_increment = 1e-3
[]
[slug_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = pellet
thermal_expansion_coeff = 1.18e-5
eigenstrain_name = slug_thermal_strain
[]
[slug_thermal]
type = UPuZrThermal
block = pellet
Na_depth = 0.0673
fuel_outer_radius = 2.54e-3
spheat_model = savage
thcond_model = billone
porosity_model = partially_logged
initiating_porosity = 0.24
outputs = all
output_properties = thermal_conductivity
porosity = porosity
[]
[slug_density]
type = StrainAdjustedDensity
block = pellet
strain_free_density = 15700.0
[]
[slug_fission_gas_release]
block = pellet
type = UPuZrFissionGasRelease
fission_rate = fission_rate
[]
# Cladding Properties
[clad_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1.88e11
poissons_ratio = 0.236
block = clad
[]
[clad_stress]
type = ComputeMultipleInelasticStress
block = clad
tangent_operator = nonlinear
inelastic_models = 'clad_creep'
[]
[clad_fast_flux]
type = FastNeutronFlux
block = clad
factor = 0.6e19
[]
[clad_creep]
type = HT9CreepUpdate
block = clad
[]
[clad_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = clad
thermal_expansion_coeff = 1.2e-5
eigenstrain_name = clad_thermal_eigenstrain
[]
[clad_thermal]
type = HT9Thermal
block = clad
[]
[clad_density]
type = StrainAdjustedDensity
block = clad
strain_free_density = 7874.0
[]
[failclad]
block = clad
type = HT9FailureClad
hoop_stress = stress_zz
method = cdf_short
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew -snes_converged_reason'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package -ksp_gmres_restart'
petsc_options_value = 'lu superlu_dist 51'
[]
[]
[Executioner]
type = Transient
automatic_scaling = true
compute_scaling_once = true
line_search = 'none'
l_max_its = 100
l_tol = 1e-3
nl_max_its = 200
nl_rel_tol = 1e-6
nl_abs_tol = 1e-9
start_time = 0.0
end_time = 25.0
dtmin = 0.0001
dtmax = 1.0
[TimeStepper]
type = FunctionDT
function = dt_fun
[]
[Quadrature]
order = FIFTH
side_order = SEVENTH
[]
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
time_step_interval = 1
exodus = true
csv = true # Figures comparing to experiment results are based off this csv output.
[console]
type = Console
output_linear = true
output_nonlinear = true
[]
[check]
# Numerical assessment test check at points near important features.
# Checking near the feature but not during it hopefully will not affect the feature computation.
type = CSV
execute_on = TIMESTEP_END
sync_only = true
sync_times = '10 16.5 20'
[]
[]
(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_ig_bubble_coarsening.i)
# This test is veryfing the implementation of the intragranular coarsening capability in Sifgrs.
# The results have been benchmarked to a stand-alone implementation of the model.
# The resulting amount of intragranular swelling can feed the thermomechanical analysis
# using the swelling model SIFGR_IG in the constitutive relation block.
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 3
xmin = 0
xmax = 0.01
ymin = 0
ymax = 0.01
zmin = 0
zmax = 0.01
nx = 1
ny = 1
nz = 1
[]
[]
[Functions]
[Temp_func]
type = PiecewiseLinear
x = '0. 6.07e7 60700250. 60700500. 60704100. 60704600.'
y = '600. 600. 1450. 2300. 2300. 600.'
[]
[Fiss_func]
type = PiecewiseLinear
x = '0. 6.07e7 60700250. 60700500. 60704100. 60704600.'
y = '1.e19 1.e19 1.e19 1.e19 1.e19 1.e19'
[]
[]
[Variables]
[T]
initial_condition = 600.
[]
[]
[AuxVariables]
[fission_rate]
[]
[fract_FGR_analytical]
order = CONSTANT
family = MONOMIAL
[]
[rad_bbl_grn]
order = CONSTANT
family = MONOMIAL
[]
[bbl_grn_3]
order = CONSTANT
family = MONOMIAL
[]
[gas_bbl_grn]
order = CONSTANT
family = MONOMIAL
[]
[bbl_disl_grn]
order = CONSTANT
family = MONOMIAL
[]
[rad_bbl_disl_grn]
order = CONSTANT
family = MONOMIAL
[]
[gas_bbl_disl_grn]
order = CONSTANT
family = MONOMIAL
[]
[deltav_v0_intra_total]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[heat]
type = ADHeatConduction
variable = T
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
value = 1
fission_rate_function = Fiss_func
execute_on = 'initial timestep_begin'
[]
[bbl_cnc]
type = ADMaterialRealAux
variable = bbl_grn_3
property = bubble_concentration_intra
execute_on = 'linear'
[]
[rad_bbl]
type = ADMaterialRealAux
variable = rad_bbl_grn
property = bubble_radius_intra
execute_on = 'linear'
[]
[gascnc_bbl]
type = ADMaterialRealAux
variable = gas_bbl_grn
property = gas_concentration_bubble_intra
execute_on = 'linear'
[]
[bbl_cnc_disl]
type = ADMaterialRealAux
variable = bbl_disl_grn
property = bubble_concentration_intra_dislocation
execute_on = 'linear'
[]
[rad_bbl_disl]
type = ADMaterialRealAux
variable = rad_bbl_disl_grn
property = bubble_radius_intra_dislocation
execute_on = 'linear'
[]
[gascnc_bbl_disl]
type = ADMaterialRealAux
variable = gas_bbl_disl_grn
property = gas_concentration_bubble_intra_dislocation
execute_on = 'linear'
[]
[dvv0gr]
type = ADMaterialRealAux
variable = deltav_v0_intra_total
property = deltav_v0_intra_total
execute_on = 'linear'
[]
[]
[BCs]
[bottom_T]
type = ADFunctionDirichletBC
variable = T
function = Temp_func
boundary = bottom
[]
[]
[Materials]
[UO2]
type = ADHeatConductionMaterial
block = 0
thermal_conductivity = 1.0
specific_heat = 1.0
[]
[fission_gas_behavior]
type = ADUO2Sifgrs
block = 0
skip_bdr_model = true
temperature = T
fission_rate = fission_rate
grain_radius_const = 5.e-6
ig_bubble_model = NUCLEATION_RESOLUTION
diff_coeff_option = TURNBULL_D1_4D2_D3
res_param_option = HETEROGENEOUS_SETYAWAN
ig_bubble_coarsening = WITH_COARSENING
ig_diff_algorithm = POLYPOLE1
nuclerate_scalef = 0.5
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
l_tol = 1e-4
nl_abs_tol = 1e-5
nl_rel_tol = 1e-5
start_time = -100
end_time = 60704600.
[TimeStepper]
type = IterationAdaptiveDT
dt = 100
optimal_iterations = 10
iteration_window = 4
growth_factor = 2.
linear_iteration_ratio = 100
time_t = '0 6.0e+7 6.07e7 60704600'
time_dt = '1000 10000 100 1'
force_step_every_function_point = true
timestep_limiting_function = Temp_func
[]
[]
[Postprocessors]
[fis_gas_generated]
type = ADElementIntegralFisGasGeneratedSifgrs
block = 0
[]
[fis_gas_released]
type = ADElementIntegralFisGasReleasedSifgrs
block = 0
[]
[radius_bubbles_at_dislocations]
type = ElementAverageValue
variable = rad_bbl_disl_grn
block = 0
execute_on = TIMESTEP_END
[]
[density_bbl_dislocations]
type = ElementAverageValue
variable = bbl_disl_grn
block = 0
execute_on = TIMESTEP_END
[]
[intrag_swelling]
type = ElementAverageValue
variable = deltav_v0_intra_total
block = 0
execute_on = TIMESTEP_END
[]
[]
[Outputs]
exodus = true
[]
(test/tests/solid_mechanics/zry_mechanics/zry_irradiation_growth/irradiation_growth_Zr4_rz_var.i)
# This test applies the ESCORE_IrradiationGrowthZr4 legacy model to a unit cube to check the
# calculated axial strain for Zr4. Note that the Franklin (1982) models are preferred over
# this legacy IrradiationGrowthZr4 model.
#
# For time 0.5:
# A = 3e-20
# n = .794
# fluence = 1.0647e20 n/m^2
#
# Theoretical calc:
# Irradiation growth strain = A*power(fluence/10000, n)
# = 3.0e-20 * (1.0647e20/1e4)^0.794
# = 1.595e-7
#
# BISON results: The value of the calculated irradiation growth strain in the axial direction
# (total_strain_yy) is 1.595e-7. The volume remains constant for irradiation growth.
#
[Mesh]
coord_type = RZ
[mesh]
type = GeneratedMeshGenerator
dim = 2
xmin = 0
xmax = 1
ymin = 0
ymax = 2
[]
[]
[GlobalParams]
displacements = 'disp_x disp_y'
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[]
[AuxVariables]
[fission_rate]
[]
[fast_neutron_flux]
[]
[fast_neutron_fluence]
[]
[q_variable]
[]
[total_strain_yy]
order = CONSTANT
family = MONOMIAL
[]
[total_strain_xx]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[initial_power_ramp]
type = PiecewiseLinear
x = '0 1 2 3 4 5'
y = '0 1 2 2 3 2'
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
value = 1.183e20 # corrected average power to 200 W/cm
fission_rate_function = initial_power_ramp
[]
[q_variable]
type = FunctionAux
variable = q_variable
function = initial_power_ramp
[]
[fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
factor = 1.183e19 # fission_rate * 0.1
q_variable = q_variable
[]
[fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
[]
[total_strain_yy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = total_strain_yy
index_i = 1
index_j = 1
execute_on = timestep_end
[]
[total_strain_xx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = total_strain_xx
index_i = 0
index_j = 0
execute_on = timestep_end
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
strain = finite
eigenstrain_names = irradiation_strain
[]
[]
[BCs]
[x]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[]
[y]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1.0
poissons_ratio = 0.3
[]
[stress]
type = ComputeFiniteStrainElasticStress
[]
[irradiation_swelling]
type = ZryIrradiationGrowthEigenstrain
zircaloy_material_type = ESCORE_IrradiationGrowthZr4
fast_neutron_fluence = fast_neutron_fluence
eigenstrain_name = irradiation_strain
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew '
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type'
petsc_options_value = '70 hypre boomeramg'
l_max_its = 60
nl_rel_tol = 1e-8
nl_abs_tol = 1e-10
l_tol = 1e-5
start_time = 0.0
dt = 0.5
num_steps = 10
[]
[Outputs]
exodus = true
[]
[Postprocessors]
[fast_neutron_fluence]
type = AverageNodalVariableValue
variable = fast_neutron_fluence
[]
[volume]
type = InternalVolume
boundary = 'left right bottom top'
execute_on = 'initial timestep_end'
[]
[total_strain_xx]
type = ElementAverageValue
variable = total_strain_xx
[]
[total_strain_yy]
type = ElementAverageValue
variable = total_strain_yy
[]
[]
(test/tests/element_integral_power/ad_fission_gas_sifgrs_1D.i)
# Tests the ElementIntegralPower postprocessor
#
# A constant volumetric fission rate of 3.125e18 fissions/m^3-s is applied to a RZ cylinder
# having an inner radius of 0.01 m, outer radius of 0.0114818 m and height of 0.01 m.
# The power is thus constant with magnitude:
#
# Power = Fdot * Energy_per_fission * Volume
# = 3.125e18 * 3.2e-11 * Pi*(0.0114818^2 - 0.01^2) * 0.01
# = 100
[GlobalParams]
order = FIRST
family = LAGRANGE
[]
[Mesh]
coord_type = RZ
[layered1D_mesh]
type = Layered1DMeshGenerator
fuel_height = 0.01
include_clad = false
include_plenum = false
slices_per_block = 1
pellet_bottom_coor = 0
pellet_outer_radius = 0.011481768
pellet_inner_radius = 0.01
clad_gap_width = 0
clad_thickness = 0
elem_type = EDGE2
pellet_mesh_density = customize
nx_p = 1
[]
[]
[Functions]
[unity]
type = ParsedFunction
expression = '1.0'
[]
[]
[Variables]
[temp]
initial_condition = 500.0
[]
[]
[AuxVariables]
[fission_rate]
[]
[]
[Kernels]
[heat]
type = ADHeatConduction
variable = temp
[]
[ie]
type = ADHeatConductionTimeDerivative
variable = temp
[]
[heat_source]
type = NeutronHeatSource
variable = temp
energy_per_fission = 3.2e-11
fission_rate = fission_rate
[]
[]
[AuxKernels]
[fission_rate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
value = 3.125e18
fission_rate_function = unity
execute_on = 'initial timestep_begin'
[]
[]
[BCs]
[left_T]
type = ADDirichletBC
variable = temp
boundary = 13
value = 500.0
[]
[]
[Materials]
[fuel]
type = ADHeatConductionMaterial
block = fuel
thermal_conductivity = 10
specific_heat = 100
[]
[density]
type = ADParsedMaterial
block = fuel
property_name = density
expression = 10000
[]
[fission_gas_release]
type = ADUO2Sifgrs
temperature = temp
fission_rate = fission_rate
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
petsc_options_iname = -pc_factor_shift_type
petsc_options_value = nonzero
start_time = 0.0
num_steps = 2
dt = 1.0e6
nl_abs_tol = 1e-8
[]
[Postprocessors]
[fis_gas_generated]
type = ADLayeredElementIntegralFisGasGeneratedSifgrsPostprocessor
block = fuel
fuel_pin_geometry = pin_geometry
[]
[fis_gas_released]
type = ADLayeredElementIntegralFisGasReleasedSifgrsPostprocessor
block = fuel
fuel_pin_geometry = pin_geometry
[]
[fis_gas_grain]
type = ADLayeredElementIntegralFisGasGrainSifgrsPostprocessor
block = fuel
fuel_pin_geometry = pin_geometry
[]
[fis_gas_boundary]
type = ADLayeredElementIntegralFisGasBoundarySifgrsPostprocessor
block = fuel
fuel_pin_geometry = pin_geometry
[]
[]
[UserObjects]
[pin_geometry]
type = Layered1DFuelPinGeometry
include_clad = false
mesh_generator = layered1D_mesh
[]
[]
[Outputs]
exodus = true
[]
(test/tests/triso/buffer_thermal_material/buffer_thermal_conductivity.i)
#Thermal Conductivity of the Buffer
# The geometry is a cube (edge length = 5 cm) made of buffer material (initial density = 1.0 g/cm$^{3}$) subject to internal heat generation.
# The thermal power density is ramped linearly from 0 to 4x10$^{5}$ W/m$^{3}$ over 10$^{4}$ seconds and then held constant.
# Heat flows from the left surface (heat flux = 0) through the right surface (Dirichlet boundary condition).
# The temperature of the right surface is ramped from 673.15 to 1673.15 K.
# The specific heat capacity of the buffer was multiplied by 10$^{-6}$ to allow analytical solving of the steady-state heat equation.
# The density is varied from 1000 to 2240 kg/m$^{3}$ using a FunctionAux auxkernel.
# The maximum temperature $T_{max}$ (K) at the left surface is obtained by solving the 1D heat equation:
# T_{max} = \frac{q \cdot l^{2}}{2 \cdot k} + T_{BC}
# Where $q$ (W/m$^{3}$) is the thermal power density, $l$ (0.05 m) is the edge length of the cube, and $T_{BC}$ (K) is the boundary condition temperature of the right surface.
#
# A sample of the analytical and BISON values for thermal conductivities and calculated temperatures is shown below.
#
# |Density (kg/m$^{3}$) | Analytical k (W/m-K) | BISON k (W/m-K) | Analytical max T (K) | BISON max T (K) |
# |---------------------|----------------------|-----------------|----------------------|-----------------|
# | 1000.117 | 0.50004 | 0.50000 | 723.24 | 723.24 |
# | 1002.106 | 0.50080 | 0.50075 | 1573.42 | 1573.50 |
# | 1701.887 | 1.01713 | 1.01705 | 1730.77 | 1730.81 |
# | 2076.226 | 2.09794 | 2.09783 | 1779.40 | 1779.42 |
# | 2240.000 | 3.80376 | 3.80374 | 1804.60 | 1804.60 |
[GlobalParams]
order = FIRST
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
[]
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 3
xmin = 0.0
xmax = 0.05
ymin = 0.0
ymax = 0.05
zmin = 0.0
zmax = 0.05
[]
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[Variables]
[temp]
initial_condition = 673.15
[]
[]
[AuxVariables]
[fission_rate]
block = '0'
[]
[density]
order = CONSTANT
family = MONOMIAL
[]
[thermal_conductivity]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[power_history]
type = PiecewiseLinear
x = '0 1e4 1e8'
y = '0 1.25e16 1.25e16'
[]
[density_multiplier]
type = PiecewiseLinear
x = '0 5.3e6'
y = '1000 2240'
[]
[temp_func]
type = PiecewiseLinear
x = ' 0 5.3e6'
y = '673.15 1673.15'
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temp
[]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temp
[]
[heat_source]
type = NeutronHeatSource
variable = temp
block = '0'
fission_rate = fission_rate
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
fission_rate_function = power_history
block = '0'
value = 1.0
[]
[density]
type = MaterialRealAux
variable = density
property = density
block = '0'
execute_on = 'initial linear'
[]
[thermal_conductivity]
type = MaterialRealAux
variable = thermal_conductivity
property = thermal_conductivity
execute_on = timestep_end
[]
[]
[BCs]
[temp_BC]
type = FunctionDirichletBC
variable = temp
boundary = 'right'
function = temp_func
[]
[]
[Materials]
[Buffer_thermal_conductivity]
type = BufferThermal
thermal_conductivity_scale_factor = 1.0
specific_heat_scale_factor = 1.0e-6
initial_density = 1000
[]
[Buffer_density]
type = GenericFunctionMaterial
prop_names = 'density'
prop_values = density_multiplier
[]
[]
[Dampers]
[limitT]
type = MaxIncrement
max_increment = 100.0
variable = temp
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package -ksp_gmres_restart'
petsc_options_value = 'lu superlu_dist 51'
line_search = 'none'
l_max_its = 50
l_tol = 1e-2
nl_max_its = 150
nl_rel_tol = 1e-4
nl_abs_tol = 1e-6
start_time = 0.0
end_time = 6e6
num_steps = 100
dtmax = 2e6
dtmin = 1e-6
[TimeStepper]
type = IterationAdaptiveDT
dt = 5e2
time_t = '1e4 1e5'
time_dt = '5e2 1e5'
[]
[]
[Postprocessors]
# Define postprocessors (some are required as specified above; others are optional; many others are available)
[temp]
type = ElementAverageValue
variable = temp
execute_on = 'initial timestep_end'
[]
[thermal_conductivity]
type = ElementAverageValue
variable = thermal_conductivity
execute_on = 'initial timestep_end'
[]
[density]
type = ElementAverageValue
variable = density
execute_on = 'initial timestep_end'
[]
[total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
execute_on = timestep_end
[]
[]
[Outputs]
csv = true
exodus = false
[console]
type = Console
[]
[]
(test/tests/sifgrs/uo2/negative_temperature_exception.i)
# This test ensures that the moose exception to cut the timestep when a
# negative temperature is detected in UO2Sifgrs is properly executed.
[Mesh]
[square]
type = GeneratedMeshGenerator
dim = 2
[]
[]
[Functions]
[temperature_func]
type = PiecewiseLinear
x = '0 2'
y = '300 -100.0'
[]
[Fiss_func]
type = ConstantFunction
value = 1e19
[]
[]
[Variables]
[T]
initial_condition = 800.0
[]
[]
[AuxVariables]
[fission_rate]
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = T
diffusion_coefficient = 1
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
value = 1
fission_rate_function = Fiss_func
execute_on = 'initial timestep_begin'
[]
[]
[BCs]
[all_T]
type = FunctionDirichletBC
variable = T
function = temperature_func
boundary = 'bottom right left top'
[]
[]
[Materials]
[fission_gas_release]
type = UO2Sifgrs
temperature = T
fission_rate = fission_rate
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
start_time = 0.0
num_steps = 2
dt = 2
[]
[Postprocessors]
[dt]
type = TimestepSize
[]
[]
[UserObjects]
[terminator]
type = Terminator
expression = 'dt = 1'
execute_on = timestep_end
[]
[]
[Outputs]
csv = true
[]
(test/tests/sifgrs/uo2/ad_scidac_resolution.i)
# @Requirement F2.40
# This test is for evaluating the mechanistic model for the intra-granular fission gas behavior,
# considering the re-solution parameter as proposed by Setyawan et al. 2018 JoAP
#
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 3
xmin = 0
xmax = 0.01
ymin = 0
ymax = 0.01
zmin = 0
zmax = 0.01
nx = 1
ny = 1
nz = 1
[]
[]
[Functions]
[Temp_func]
type = ParsedFunction
expression = '1273'
[]
[Fiss_func]
type = ParsedFunction
expression = '1.e19'
[]
[]
[Variables]
[T]
initial_condition = 1273
[]
[]
[AuxVariables]
[fission_rate]
[]
[fract_FGR_analytical]
order = CONSTANT
family = MONOMIAL
[]
[rad_bbl_grn]
order = CONSTANT
family = MONOMIAL
[]
[bbl_grn_3]
order = CONSTANT
family = MONOMIAL
[]
[gas_bbl_grn]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[heat]
type = ADHeatConduction
variable = T
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
value = 1
fission_rate_function = Fiss_func
execute_on = 'initial timestep_begin'
[]
[bbl_cnc]
type = ADMaterialRealAux
variable = bbl_grn_3
property = bubble_concentration_intra
execute_on = 'TIMESTEP_END'
[]
[rad_bbl]
type = ADMaterialRealAux
variable = rad_bbl_grn
property = bubble_radius_intra
execute_on = 'TIMESTEP_END'
[]
[gascnc_bbl]
type = ADMaterialRealAux
variable = gas_bbl_grn
property = gas_concentration_bubble_intra
execute_on = 'TIMESTEP_END'
[]
[]
[BCs]
[bottom_T]
type = ADFunctionDirichletBC
variable = T
function = Temp_func
boundary = bottom
[]
[]
[Materials]
[UO2]
type = ADHeatConductionMaterial
block = 0
thermal_conductivity = 1.0
specific_heat = 1.0
[]
[fission_gas_behavior]
type = ADUO2Sifgrs
block = 0
skip_bdr_model = true
temperature = T
fission_rate = fission_rate
grain_radius_const = 5.e-6
ig_bubble_model = NUCLEATION_RESOLUTION
res_param_option = HETEROGENEOUS_SETYAWAN
initial_porosity = 0.0
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
l_tol = 1e-4
nl_abs_tol = 1e-5
nl_rel_tol = 1e-5
start_time = 0.0
num_steps = 10
dt = 19800.
[]
[Postprocessors]
[fis_gas_generated]
type = ADElementIntegralFisGasGeneratedSifgrs
block = 0
[]
[fis_gas_released]
type = ADElementIntegralFisGasReleasedSifgrs
block = 0
[]
[bubble_density]
type = ElementAverageValue
block = 0
variable = bbl_grn_3
execute_on = TIMESTEP_END
[]
[bubble_radius]
type = ElementAverageValue
block = 0
variable = rad_bbl_grn
execute_on = TIMESTEP_END
[]
[]
[Outputs]
exodus = true
[]
(test/tests/grain_radius_aux/grain_radius_hbs.i)
# Tests the GrainRadius aux kernel
# Starting from a user/model specified grain size (e.g 5 microns), the grain radius evolves through growth, stagnant, and decay phases as dictated by the following temperature transient.
[Mesh]
[mesh]
type = FileMeshGenerator
file = 1hex8_10mm_cube.e
[]
[]
[Functions]
[Temp_func]
type = PiecewiseLinear
x = '0. 2.0e+08 4.0e+08'
y = '1100. 1800. 600. '
[]
[Fiss_func]
type = ParsedFunction
expression = '1.0e19'
[]
[]
[Variables]
[temp]
order = FIRST
family = LAGRANGE
initial_condition = 1100.
[]
[]
[AuxVariables]
[fission_rate]
order = FIRST
family = LAGRANGE
[]
[burnup]
order = FIRST
family = LAGRANGE
[]
[burnupeff]
order = FIRST
family = LAGRANGE
[]
[grain_size]
order = FIRST
family = LAGRANGE
initial_condition = 5.0e-6
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temp
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
value = 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'
[]
[brnpeff]
type = EffectiveBurnupAux
variable = burnupeff
temperature = temp
burnup = burnup
block = 1
temp_cutoff = 1273.15
[]
[grainsize]
type = GrainRadiusAux
variable = grain_size
temperature = temp
burnup_eff = burnupeff
block = 1
include_hbs = true
[]
[]
[BCs]
[bottom_T]
type = FunctionDirichletBC
variable = temp
function = Temp_func
boundary = 1
[]
[]
[Materials]
[UO2]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 1.0
specific_heat = 1.0
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
l_tol = 1.0e-04
nl_abs_tol = 1.0e-08
nl_rel_tol = 1.0e-08
start_time = 0.
num_steps = 500
dt = 1.0e+06
end_time = 4.0e+08
[]
[Postprocessors]
[brnp]
type = ElementalVariableValue
elementid = 0
variable = burnup
[]
[brnpeff]
type = ElementalVariableValue
elementid = 0
variable = burnupeff
[]
[grainsize]
type = ElementalVariableValue
elementid = 0
variable = grain_size
[]
[temperature]
type = ElementalVariableValue
elementid = 0
variable = temp
[]
[]
[Outputs]
[out]
type = Exodus
[]
[]
(test/tests/thermalUO2/thermalUO2_test.i)
[Mesh]
[mesh]
type = FileMeshGenerator
file = pelletfine1_rz.e
[]
[]
[Variables]
[T]
order = FIRST
family = LAGRANGE
initial_condition = 300.0 # set initial T to ambient
[]
[]
[AuxVariables]
[fission_rate]
order = FIRST
family = LAGRANGE
block = 2
[]
[burnup]
order = FIRST
family = LAGRANGE
block = 2
[]
[th_cond]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = T
[]
[heat_source]
type = NeutronHeatSource
variable = T
block = 2
energy_per_fission = 3.2e-11
fission_rate = fission_rate
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable= fission_rate
block = 2
value = 1.183e19 # corrected average power to 200 W/cm
execute_on = 'initial timestep_begin'
[]
[th_cond]
type = MaterialRealAux
variable = th_cond
property = thermal_conductivity
block = 2
execute_on = linear
[]
[burnup]
type = ConstantAux
variable = burnup
value = 0.001
execute_on = 'initial timestep_begin'
[]
[]
[BCs]
[ConstantT]
type = DirichletBC
boundary = 10
variable = T
value = 500
[]
[]
[Materials]
[fuel_thermal]
type = UO2Thermal
block = 2
thermal_conductivity_model = FINK_LUCUTA
temperature = T
# burnup_material = burnup or burnup = burnup specified in cli_args
initial_porosity = 0.015
[]
[density]
type = ParsedMaterial
block = 2
property_name = density
expression = 10431.0
[]
[]
[Executioner]
type = Steady
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '100 hypre boomeramg 4'
line_search = 'none'
solve_type = 'PJFNK'
l_max_its = 60
nl_max_its = 15
nl_rel_tol = 1e-9
nl_abs_tol = 1e-10
l_tol = 1e-5
[]
[Outputs]
file_base = out
[exodus]
type = Exodus
[]
[]
(test/tests/solid_mechanics/uo2_creep/adUo2_creep_rate.i)
# Tests material model CreepUO2 which computes the combined thermal
# and irradiation creep for UO2 fuel.
#
# The test is a single element unit cube which is pulled in the y direction
# with a pressure of 5.0e7 Pa. The temperature and fission rate within the cube
# are uniform and constant at 1500 K and 2e18 fissios/m**3-s. The total time is
# 1e5, which is solved in 10 equal steps of 1e4.
# The small-strain anaytical solution for the total y displacement (elastic + thermal
# creep + irradiation creep) is 4.12825e-4. BISON gets 4.12910e-4 using large
# deformation solid mechanics. The difference in the two solutions is 0.021%.
[GlobalParams]
density = 10431.0
displacements = 'disp_x disp_y disp_z'
order = FIRST
family = LAGRANGE
[]
[Mesh]
[mesh]
type = FileMeshGenerator
file = 1x1x1_cube.e
[]
[]
[Variables]
[temp]
initial_condition = 1500.0
[]
[]
[AuxVariables]
[fission_rate]
[]
[creep_strain]
order = CONSTANT
family = MONOMIAL
[]
[creep_rate]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[top_pull]
type = PiecewiseLinear
x = '0 1'
y = '1 1'
[]
[]
[Physics/SolidMechanics/QuasiStatic/system]
add_variables = true
strain = FINITE
use_automatic_differentiation = true
generate_output = 'stress_yy'
[]
[Kernels]
[heat]
type = ADHeatConduction
variable = temp
[]
[heat_ie]
type = ADHeatConductionTimeDerivative
variable = temp
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
value = 2.0e18
[]
[stress_yy]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[]
[creep_strain]
type = ADMaterialRealAux
property = effective_creep_strain
variable = creep_strain
execute_on = 'TIMESTEP_END'
[]
[creep_rate]
type = ADMaterialRealAux
property = creep_rate
variable = creep_rate
execute_on = 'TIMESTEP_END'
[]
[]
[BCs]
[u_top_pull]
type = Pressure
variable = disp_y
boundary = 5
factor = -0.5e8
function = top_pull
[]
[u_bottom_fix]
type = ADDirichletBC
variable = disp_y
boundary = 3
value = 0.0
[]
[u_yz_fix]
type = ADDirichletBC
variable = disp_x
boundary = 4
value = 0.0
[]
[u_xy_fix]
type = ADDirichletBC
variable = disp_z
boundary = 2
value = 0.0
[]
[temp_top_fix]
type = ADDirichletBC
variable = temp
boundary = '3 5'
value = 1500.0
[]
[]
[Materials]
[elasticity_tensor]
type = ADComputeIsotropicElasticityTensor
youngs_modulus = 2e11
poissons_ratio = 0.3
[]
[creep]
type = ADUO2CreepUpdate
temperature = temp
fission_rate = fission_rate
initial_grain_radius = 10.0e-6
oxygen_to_metal_ratio = 2.0
a7 = 3.72264e-35
q3 = 2617
[]
[radial_return_stress]
type = ADComputeMultipleInelasticStress
## ** ## tangent_operator = elastic
inelastic_models = 'creep'
[]
[thermal]
type = ADHeatConductionMaterial
specific_heat = 1.0
thermal_conductivity = 100.
[]
[density]
type = ADStrainAdjustedDensity
strain_free_density = 10431.0
[]
[]
[Postprocessors]
[creep_strain]
type = ElementAverageValue
variable = creep_strain
[]
[creep_rate]
type = ElementAverageValue
variable = creep_rate
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart'
petsc_options_value = '101'
line_search = 'none'
l_max_its = 100
nl_max_its = 100
nl_rel_tol = 1e-8
nl_abs_tol = 1e-10
l_tol = 1e-5
start_time = 0.0
num_steps = 10
dt = 10000
[]
[Outputs]
csv = true
[]
(test/tests/uo2_thermal/NFIR/ad_test.i)
# This test case is prepared to test the thermal conductivity using the NFIR model.
#
# The temperature is ramped on all BCs of the unit line from 500 K to 3000K over 100 Ms.
# The fission rate is 2e19 n/m3/s, so that the burnup goes from 0 to
# ~ 8.6 at.% (82 MWd/kgU) at the end of the simulation.
#
# Thermal conductivity of UO2 fuel at 95%TD is computed using the NFIR thermal conductivity model.
# The BISON predictions (BISON_k for UO2, BISON_Gd_k for UO2 with a 2% gadolinia content)
# compared to the expected results (expected_k for UO2, expected_Gd_k for UO2 with a 2% gadolinia content)
# are summarized (see: post_processing.py --> comparison_results.csv) as:
#
# expected_k BISON_k percent_error expected_Gd_k BISON_Gd_k percent_error_Gd
# 6.571905059 6.571905059 -6.88E-13 9.136048213 9.136048213 -8.88E-14
# 6.136875752 6.136875752 -4.88E-13 8.314492721 8.314492721 3.66E-13
# 5.759359735 5.759359735 -6.88E-13 7.634515412 7.634515412 -3.77E-13
# 5.428740977 5.428740977 -1.55E-13 7.062551903 7.062551903 3.55E-13
# 5.136871127 5.136871127 -7.33E-13 6.574880462 6.574880462 4.11E-13
[GlobalParams]
order = FIRST
family = LAGRANGE
[]
[Mesh]
[geom]
type = GeneratedMeshGenerator
dim = 1
elem_type= EDGE2
[]
[]
[Variables]
[T]
initial_condition = 500
[]
[]
[AuxVariables]
[fission_rate]
[]
[burnup]
[]
[th_cond]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[heat]
type = ADHeatConduction
variable = T
[]
[heat_ie]
type = ADHeatConductionTimeDerivative
variable = T
[]
[heat_source]
type = ADNeutronHeatSource
variable = T
energy_per_fission = 3.2e-11
fission_rate = fission_rate
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable= fission_rate
value = 2e19 # Standard fission_rate fissions/m^3/s
execute_on = 'initial timestep_begin'
[]
[th_cond]
type = ADMaterialRealAux
variable = th_cond
property = thermal_conductivity
execute_on = 'initial linear'
[]
[burnup]
type = ADBurnupAux
variable = burnup
density = 10431.0 # 95% TD
fission_rate = fission_rate
execute_on = timestep_begin
[]
[]
[Functions]
[temp_ramp]
type = PiecewiseLinear
x = '0.0 100.e6'
y = '500 3000'
[]
[]
[BCs]
[VariableT]
type = ADFunctionDirichletBC
boundary = 'left right'
variable = T
function = temp_ramp
[]
[]
[Materials]
[fuel_thermal]
type = ADUO2Thermal
temperature = T
burnup = burnup
thermal_conductivity_model = NFIR
oxy_to_metal_ratio = 2.0
initial_porosity = 0.05
Gd_content = 0.0
[]
[density]
type = ADParsedMaterial
property_name = density
expression = 10431.0
[]
[]
[Executioner]
type = Transient
start_time = 0
num_steps = 100
dt = 1.0e6
[]
[Postprocessors]
[avg_th_cond]
type = ElementAverageValue
variable = th_cond
execute_on = 'initial timestep_end'
[]
[average_rod_burnup]
type = ElementAverageValue
variable = burnup
execute_on = timestep_end
[]
[average_fuel_T]
type = ElementAverageValue
variable = T
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
csv = true
[]
(test/tests/mox_pore_velocity/MOXActinide_simple.i)
# This input files uses the actinide redistribution kernels
[UserObjects]
[pin_geometry]
type = Layered1DFuelPinGeometry
include_clad = false
mesh_generator = layered1D_mesh
[]
[]
[Mesh]
coord_type = RZ
[layered1D_mesh]
type = Layered1DMeshGenerator
fuel_height = 0.1
pellet_outer_radius = 0.0041
include_clad = false
pellet_bottom_coor = 0.0
pellet_mesh_density = customize
nx_p = 200
elem_type = EDGE2
slices_per_block = 1
include_plenum = false
[]
[]
[Variables]
[temperature]
initial_condition = 1400.0
[]
[actinide]
initial_condition = 20
scaling = 1e8
[]
[]
[AuxVariables]
[fission_rate_aux_variable_mox]
order = first
family = lagrange
[]
[pore]
[]
[]
[Functions]
[power_history1]
type = PiecewiseLinear
x = '0 10000'
y = '0 50000'
[]
[]
[Kernels]
[heat] # gradient term in heat conduction equation
type = HeatConduction
variable = temperature
[]
[heat_ie] # time term in heat conduction equation
type = HeatConductionTimeDerivative
variable = temperature
[]
[heat_source] # source term in heat conduction equation
type = NeutronHeatSource
variable = temperature
block = fuel # fission rate applied to the fuel (block 2) only
fission_rate = fission_rate_aux_variable_mox
[]
[actinide_redistribution]
type = MOXActinideRedistribution
variable = actinide
debug = 0
temperature = temperature
scale_factor = 0.5
v_upper = 0
v_lower = 0
heating_function = power_history1
[]
[actinide_redistribution_enhancement]
type = MOXActinideRedistributionEnhancement
variable = actinide
debug = 0
temperature = temperature
pore = pore
pore_diameter = 1e-10
pore_thickness = 1e-11
scaling_parameter_A = 0.35
scale_factor = 0.5
v_upper = 0
v_lower = 0
heating_function = power_history1
[]
[actinide_time_derivative]
type = CoefTimeDerivative
variable = actinide
Coefficient = 1
[]
[]
[AuxKernels]
[fission_rate_aux_kernel_mox]
type = FissionRateGeneral
fission_rate_formulation = MOX
variable = fission_rate_aux_variable_mox
block = fuel
porosity = pore
initial_porosity = 0.12
rod_ave_lin_pow = power_history1
pellet_diameter = 0.0082
pellet_inner_diameter = 0
energy_per_fission = 3.2e-11
execute_on = 'initial timestep_end'
[]
[pore]
type = ConstantAux
value = 0.12
variable = pore
[]
[]
[BCs]
[temp_outside] # pin pellets and clad along axis of symmetry (y)
type = DirichletBC
variable = temperature
boundary = 10
value = 1400
[]
[]
[Materials]
[fuel_thermal]
type = MAMOXThermal
block = fuel
temperature = temperature
porosity = pore
[]
[density_block]
type = GenericConstantMaterial
block = fuel
prop_names = density
prop_values = 10431.0
[]
[pore_velocity]
type = ParsedMaterial
block = fuel
expression = '1e-2'
property_name = pore_velocity
[]
[]
[Dampers]
[limitT]
type = MaxIncrement
max_increment = 100.0
variable = temperature
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package' # -mat_superlu_dist_fact'
petsc_options_value = 'lu superlu_dist' # SamePattern_SameRowPerm'
line_search = 'none'
l_max_its = 50
l_tol = 8e-3
nl_max_its = 25
nl_rel_tol = 1e-5
nl_abs_tol = 1e-8 #1e-10
n_startup_steps = 1
end_time = 8e4
num_steps = 2
dtmax = 1000
dtmin = 1
[TimeStepper]
type = IterationAdaptiveDT
dt = 2e2
optimal_iterations = 8
iteration_window = 2
linear_iteration_ratio = 100
growth_factor = 2
cutback_factor = .5
force_step_every_function_point = true
timestep_limiting_function = power_history1
[]
[]
[Postprocessors]
[_dt] # time step
type = TimestepSize
[]
[z_nonlinear_its] # number of nonlinear iterations at each timestep
type = NumNonlinearIterations
[]
[power_input]
type = FunctionValuePostprocessor
function = power_history1
scale_factor = 0.1 # rod height
[]
[rod_total_power_mox]
type = LayeredElementIntegralPowerPostprocessor
variable = temperature
block = fuel
fission_rate = fission_rate_aux_variable_mox
fuel_pin_geometry = pin_geometry
[]
[ave_fuel_temp]
type = ElementAverageValue
block = fuel
variable = temperature
[]
[max_fuel_temp]
type = NodalExtremeValue
block = fuel
value_type = max
variable = temperature
[]
[ave_pore]
type = ElementAverageValue
block = fuel
variable = pore
[]
[max_pore]
type = NodalExtremeValue
block = fuel
value_type = max
variable = pore
[]
[min_pore]
type = NodalExtremeValue
block = fuel
value_type = min
variable = pore
[]
[max_actinide]
type = NodalExtremeValue
variable = actinide
block = fuel
execute_on = 'initial timestep_end'
[]
[min_actinide]
type = NodalExtremeValue
variable = actinide
block = fuel
value_type = min
execute_on = 'initial timestep_end'
[]
[average_actinide]
type = AverageNodalVariableValue
variable = actinide
block = fuel
execute_on = 'initial timestep_end'
[]
[]
# The MOX capabilities are under active development and the blocks below are useful for
# development and debugging by providing the profiles of the desired quantities.
# They are commented out for the tests, as it would unnecessarily increase computational costs
# and memory requirements.
# [VectorPostprocessors]
# [line_value_vector_postprocessor_pore]
# type = LineValueSampler
# variable = pore
# start_point = '0.0 0.05 0'
# end_point = '0.0041 0.05 0'
# num_points = 100
# sort_by = x
# execute_on = linear
# outputs = stuff_v_rad
# control_tags = a
# []
# [line_value_vector_postprocessor_pore_speed]
# type = LineValueSampler
# variable = pore_speed_aux
# start_point = '0.0 0.05 0'
# end_point = '0.0041 0.05 0'
# num_points = 100
# sort_by = x
# execute_on = linear
# outputs = stuff_v_rad
# []
# [line_value_vector_postprocessor_temperature]
# type = LineValueSampler
# variable = temperature
# start_point = '0.0 0.05 0'
# end_point = '0.0041 0.05 0'
# num_points = 100
# sort_by = x
# execute_on = linear
# outputs = stuff_v_rad
# []
# [line_value_vector_postprocessor_actinide]
# type = LineValueSampler
# variable = actinide
# start_point = '0.0 0.05 0'
# end_point = '0.0041 0.05 0'
# num_points = 100
# sort_by = x
# execute_on = linear
# outputs = stuff_v_rad
# []
# []
[Outputs]
exodus = true
csv = false
color = false
[console]
type = Console
max_rows = 25
all_variable_norms = true
[]
# [stuff_v_rad]
# type = CSV
# execute_on = 'FINAL'
# []
[]
[Debug]
show_var_residual_norms = true
[]
(assessment/MOX/JOYO/B14/PTM002/analysis/b14_ptm002_1D_sample2.i)
# Sample at +97mm from midplane
initial_fuel_density = 11057.75
[GlobalParams]
density = ${initial_fuel_density}
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
[]
[Mesh]
coord_type = RZ
[layered1D_mesh]
type = Layered1DMeshGenerator
fuel_height = 10e-3
pellet_outer_radius = 0.002675
pellet_bottom_coor = 0.0
pellet_mesh_density = customize
nx_p = 200
elem_type = EDGE2
slices_per_block = 1
include_plenum = false
include_clad = false
[]
[]
[UserObjects]
[pin_geometry]
type = Layered1DFuelPinGeometry
include_clad = false
mesh_generator = layered1D_mesh
[]
[]
[Variables]
[temp]
initial_condition = 295.0
[]
[pore]
initial_condition = 0.1372
scaling = 1e14
block = fuel
[]
[]
[AuxVariables]
[fission_rate]
[]
[burnup]
[]
[pore_speed_aux]
order = constant
family = monomial
[]
[]
[Functions]
[power_history]
type = PiecewiseLinear
x = '-200 0 72000 158040 160200 246600 248400 249000.012 251280'
y = '0 0 36350.6 36350.6 40436.1 40436.1 49235.7 49235.7 0'
[]
[f_temp_out_fuel]
type = PiecewiseLinear
x = '-200 0 251280'
y = '295 295 1315'
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temp
[]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temp
[]
[heat_source]
type = NeutronHeatSource
variable = temp
fission_rate = fission_rate
[]
[pore_continuity]
type = MOXPoreContinuity
variable = pore
temperature = temp
debug = 0
alpha = 0.25
beta = 1
heating_function = power_history
block = fuel
[]
[pore_diffusion]
type = MOXPoreDiffusion
variable = pore
debug = 0
nu = 1e-12
heating_function = power_history
v_upper = 1e-12
v_lower = 1e-20
block = fuel
[]
[poretimederivative]
type = CoefTimeDerivative
variable = pore
Coefficient = 1
block = fuel
[]
[]
[AuxKernels]
[pore_speed_aux]
type = MaterialRealAux
variable = pore_speed_aux
property = pore_velocity
block = fuel
execute_on = 'initial timestep_end'
[]
[fission_rate]
type = FissionRateGeneral
fission_rate_formulation = MOX
variable = fission_rate
block = fuel
initial_porosity = 0.1372
rod_ave_lin_pow = power_history
pellet_diameter = 0.00535
execute_on = timestep_begin
porosity = pore
energy_per_fission = 3.2e-11
[]
[burnup]
type = BurnupAux
block = fuel
fission_rate = fission_rate
variable = burnup
execute_on = timestep_begin
[]
[]
[BCs]
[temp_fuel_outside]
type = FunctionDirichletBC
variable = temp
function = f_temp_out_fuel
boundary = 10
[]
[]
[Materials]
[fuel_thermal]
type = MAMOXThermal
temperature = temp
porosity = pore
block = fuel
Am_content = 0.0237
oxy_to_metal_ratio = 1.982
[]
[fuel_density]
type = ParsedMaterial
block = fuel
property_name = density
expression = ${initial_fuel_density}
[]
[pore_velocity]
type = MOXPoreVelocity
temperature = temp
limit = 1e-3
scale_factor = 0.1
block = fuel
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Dampers]
[bound]
type = BoundingValueNodalDamper
max_value = 1
min_value = 0
variable = pore
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -sub_pc_type'
petsc_options_value = 'asm lu'
line_search = 'none'
l_max_its = 50
l_tol = 8e-3
nl_max_its = 50
nl_rel_tol = 1e-5
nl_abs_tol = 1e-5
start_time = -200
n_startup_steps = 1
end_time = 251280
dtmax = 10000
dtmin = 0.25
[TimeStepper]
type = IterationAdaptiveDT
dt = 1e1
optimal_iterations = 15
iteration_window = 2
linear_iteration_ratio = 100
growth_factor = 2
cutback_factor = .5
force_step_every_function_point = true
timestep_limiting_function = power_history
[]
[]
[Postprocessors]
[ave_temp_interior]
type = ElementAverageValue
variable = temp
execute_on = 'initial linear'
[]
[average_burnup]
type = ElementAverageValue
variable = burnup
[]
[ave_pore]
type = ElementAverageValue
block = fuel
variable = pore
[]
[max_pore]
type = NodalExtremeValue
block = fuel
value_type = max
variable = pore
[]
[min_pore]
type = NodalExtremeValue
block = fuel
value_type = min
variable = pore
[]
[max_pore_speed]
type = ElementExtremeValue
block = fuel
value_type = max
variable = pore_speed_aux
[]
[rod_total_power]
type = LayeredElementIntegralPowerPostprocessor
variable = temp
fission_rate = fission_rate
block = fuel
fuel_pin_geometry = pin_geometry
[]
[rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 10e-3 # rod height
[]
[]
[VectorPostprocessors]
[fuel_radial_temperature_Sample]
type = LineValueSampler
variable = temp
start_point = '0.0 0.005 0.0'
end_point = '0.002675 0.005 0.0'
num_points = 200
execute_on = final
sort_by = x
outputs = line_plot
[]
[radial_porosity_Sample]
type = LineValueSampler
variable = pore
start_point = '0.0 0.005 0.0'
end_point = '0.002675 0.005 0.0'
num_points = 200
execute_on = final
sort_by = x
outputs = line_plot
[]
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = true
color = true
csv = true
[console]
type = Console
max_rows = 25
[]
[line_plot]
type = CSV
execute_on = 'FINAL'
time_step_interval = 1
file_base = 1d
create_final_symlink = true
[]
[chkfile]
type = CSV
execute_on = FINAL
show = 'ave_temp_interior max_pore'
[]
[]
[Debug]
show_var_residual_norms = true
[]
(test/tests/high_burnup_structure_formation/hbs_formation_varying_temperature.i)
#-----------------------------------------------------------------------------------------------------------------------------
#
# This is a test for the high burnup structure (HBS) formation model implemented in the HighBurnupStructureFormation routine.
# The model computes the volume fraction of HBS as a function of the local effective burnup and temperature.
# The effective burnup is defined as the burnup accumulated below a threshold temperature for thermal annealing of defects.
# This test, in particular, verifies the temperature dependence of the effective burnup and HBS volume fraction calculation.
# The temperature is kept below the threshold of 1273.15 K for time t < 1.00e+08 s and t > 1.75e+08 s, and above the threshold
# for 1.00e+08 s < t < 1.75e+08 s. The two transients consist of linear variations at a constant rate of 2*10^(-5) K/s between
# the reference low and high temperatures of 1173.15 K and 1373.15 K, respectively. The fission rate kept is constant.
#
# - Geometry: cube of 10 mm side
#
# - Single element
#
# - Temperature < 1273.15 K for t < 1.00e+08 and t > 1.75e+08. Temperature > 1273.15 K for 1.00e+08 < t < 1.75e+08
#
# - Fission rate = 2.e+19/m^3s
#
# - Irradiation time: 2.00e+08 s
#
# With these settings, while the burnup increases linearly throughout the simulation, the effective burnup increase only for
# t < 1.e+08 and t > 1.75e+08, reaching a value of 0.10756 FIMA, or 103.5 MWd/kgU, at the end of the simulation (2.00e+08 s).
# The calculated fraction of HBS increases with increasing effective burnup, and takes values of 0.07727, 0.60758 and 0.87267
# after 0.50e+08 s, 1.00e+08 s and 2.00e+08 s, respectively.
#
#-----------------------------------------------------------------------------------------------------------------------------
[Mesh]
[generated_mesh]
type = GeneratedMeshGenerator
dim = 3
nx = 1
ny = 1
nz = 1
xmin = 0.
xmax = 0.01
ymin = 0.0
ymax = 0.01
zmin = 0.0
zmax = 0.01
[]
[]
[Functions]
[temperature_func]
type = PiecewiseLinear
x = '0. 9.5e+07 1.05e+08 1.7e+08 1.8e+08 2.e+08'
y = '1173.15 1173.15 1373.15 1373.15 1173.15 1173.15'
[]
[fissionrate_func]
type = PiecewiseLinear
x = '0. 2.e+08'
y = '2.e+19 2.e+19'
[]
[]
[Variables]
[temperature]
order = FIRST
family = LAGRANGE
initial_condition = 1173.15
[]
[]
[AuxVariables]
[fission_rate]
order = FIRST
family = LAGRANGE
[]
[burnup]
order = FIRST
family = LAGRANGE
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temperature
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
block = 0
variable = fission_rate
value = 1
fission_rate_function = fissionrate_func
execute_on = 'initial timestep_begin'
[]
[brnp]
type = BurnupAux
block = 0
variable = burnup
fission_rate = fission_rate
density = 10421.5
execute_on = 'initial timestep_end'
[]
[]
[BCs]
[bottom_temp]
type = FunctionDirichletBC
variable = temperature
function = temperature_func
boundary = '1 2 3 4'
preset = false
[]
[]
[Materials]
[hbs_formation]
type = HighBurnupStructureFormation
block = 0
temperature = temperature
burnup = burnup
threshold_temperature = 1273.15 # default
energy_per_fission = 3.28451e-11 # default
output_properties = 'hbs_volume_fraction hbs_volume_fraction_burnup_rate'
outputs = 'all'
[]
[thermal]
type = HeatConductionMaterial
block = 0
specific_heat = 1.0
thermal_conductivity = 100.
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart'
petsc_options_value = '101'
line_search = 'none'
l_max_its = 100
nl_max_its = 100
nl_rel_tol = 1e-8
nl_abs_tol = 1e-6
l_tol = 1e-5
start_time = 0.0
end_time = 2.e+08
dtmax = 5.e+06
dtmin = 1.
[TimeStepper]
type = IterationAdaptiveDT
dt = 5.e+06
optimal_iterations = 6
linear_iteration_ratio = 100
[]
[]
[Postprocessors]
[_dt]
type = TimestepSize
[]
[temperature]
type = NodalVariableValue
variable = temperature
nodeid = 0
execute_on = 'initial timestep_end'
[]
[burnup]
type = ElementalVariableValue
elementid = 0
variable = burnup
[]
[effective_burnup]
type = ElementAverageMaterialProperty
mat_prop = effective_burnup
[]
[hbs_volume_fraction]
type = ElementAverageMaterialProperty
mat_prop = hbs_volume_fraction
[]
[hbs_volume_fraction_burnup_rate]
type = ElementAverageMaterialProperty
mat_prop = hbs_volume_fraction_burnup_rate
[]
[]
[Outputs]
csv = true
perf_graph = true
[console]
type = Console
max_rows = 15
[]
[]
(test/tests/solid_mechanics/uo2_creep/uo2_creep_x01.i)
# Tests material model CreepUO2 which computes the combined thermal
# and irradiation creep for non-stoichiometric UO2 fuel.
#
# The test is a single element unit cube which is pulled in the y direction
# with a pressure of 5.0e7 Pa. The temperature and fission rate within the cube
# are uniform and constant at 1500 K and 2e18 fissios/m**3-s. The oxygen to
# metal ratio, which strongly influences the activation energies, is set to 2.01.
# The total time is 1e3, which is solved in 10 equal steps of 1e2.
# The small-strain anaytical solution for the total y displacement (elastic + thermal
# creep + irradiation creep) is 4.620188e-4. BISON gets 4.62126e-4 using large
# deformation solid mechanics. The difference in the two solutions is 0.023%.
#
[GlobalParams]
density = 10431.0
displacements = 'x_disp y_disp z_disp'
[]
[Mesh]
[mesh]
type = FileMeshGenerator
file = 1x1x1_cube.e
[]
[]
[Variables]
[temp]
order = FIRST
family = LAGRANGE
initial_condition = 1500.0
[]
[]
[AuxVariables]
[fission_rate]
order = FIRST
family = LAGRANGE
[]
[]
[Functions]
[top_pull]
type = PiecewiseLinear
x = '0 1'
y = '1 1'
[]
[]
[Physics]
[SolidMechanics]
[QuasiStatic]
[clad]
block = 1
add_variables = true
strain = FINITE
generate_output = 'stress_yy'
[]
[]
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temp
[]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temp
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
value = 2.0e18
[]
[]
[BCs]
[u_top_pull]
type = Pressure
variable = y_disp
boundary = 5
factor = -0.5e8
function = top_pull
[]
[u_bottom_fix]
type = DirichletBC
variable = y_disp
boundary = 3
value = 0.0
[]
[u_yz_fix]
type = DirichletBC
variable = x_disp
boundary = 4
value = 0.0
[]
[u_xy_fix]
type = DirichletBC
variable = z_disp
boundary = 2
value = 0.0
[]
[temp_fix]
type = DirichletBC
variable = temp
boundary = '3 5'
value = 1500.0
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = 1
youngs_modulus = 2e11
poissons_ratio = 0.3
[]
[creep]
type = UO2CreepUpdate
block = 1
temperature = temp
fission_rate = fission_rate
initial_grain_radius = 10.0e-6
oxygen_to_metal_ratio = 2.01
a7 = 3.72264e-35
q3 = 2617
[]
[radial_return_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'creep'
block = 1
[]
[thermal]
type = HeatConductionMaterial
block = 1
specific_heat = 1.0
thermal_conductivity = 100.
[]
[density]
type = StrainAdjustedDensity
block = 1
strain_free_density = 10431.0
[]
[]
[Executioner]
type = Transient
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart'
petsc_options_value = '101'
line_search = 'none'
l_max_its = 100
nl_max_its = 100
nl_rel_tol = 1e-8
nl_abs_tol = 1e-10
l_tol = 1e-5
start_time = 0.0
num_steps = 10
dt = 100
[]
[Outputs]
exodus = true
[]
(test/tests/sifgrs/uo2/percolation.i)
# This test is to verify that the optional check for a path to a free surface for gas release works correctly.
# When the optional percolation AuxVariable is supplied to Sifgrs, gas release is not allowed unless
# that variable is > 0.5 locally. The PercolationUserObject checks whether each position is connected
# to a free surface and sets the AuxVariable accordingly.
# In this test, the gas released should be nearly the same as the sifgrs_second_stage test.
[Mesh]
[mesh]
type = FileMeshGenerator
file = 1hex8_10mm_cube.e
[]
[free1]
type = SideSetsAroundSubdomainGenerator
new_boundary = free1
normal = '1 0 0'
block = 1
input = mesh
[]
[]
[Functions]
[Temp_func]
type = ParsedFunction
expression = '1400'
[]
[Fiss_func]
type = ParsedFunction
expression = '1.e19'
[]
[]
[Variables]
[T]
initial_condition = 1400
[]
[]
[AuxVariables]
[fission_rate]
[]
[GBCoverage]
order = CONSTANT
family = MONOMIAL
[]
# percolation AuxVariables
[open_coverage]
order = CONSTANT
family = MONOMIAL
[]
[open_threshold]
order = CONSTANT
family = MONOMIAL
[]
[open]
order = CONSTANT
family = MONOMIAL
[]
[cluster]
order = CONSTANT
family = MONOMIAL
[]
[percolated]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = T
diffusion_coefficient = 1
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
value = 1
fission_rate_function = Fiss_func
execute_on = 'initial timestep_begin'
[]
[frcvrg]
type = MaterialRealAux
variable = GBCoverage
property = GBCoverage
execute_on = 'initial linear'
[]
# percolation auxkernels
[open_coverage]
type = MaterialRealAux
variable = open_coverage
property = GBCoverage
[]
[open_threshold]
type = MaterialRealAux
variable = open_threshold
property = sat_coverage
[]
[open]
type = ParsedAux
variable = open
coupled_variables = 'open_coverage open_threshold'
expression = 'open_coverage-open_threshold'
[]
[cluster]
type = FeatureFloodCountAux
variable = cluster
execute_on = 'timestep_begin'
field_display = UNIQUE_REGION
flood_counter = percolate
[]
[percolated]
type = PercolationAux
variable = percolated
execute_on = 'timestep_begin'
percolation = percolate
[]
[]
[BCs]
[bottom_T]
type = FunctionDirichletBC
variable = T
function = Temp_func
boundary = 1
[]
[]
[Materials]
[fission_gas_behavior]
type = UO2Sifgrs
block = 1
temperature = T
fission_rate = fission_rate
percolation_to_surface = percolated
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
l_tol = 1e-4
nl_abs_tol = 1e-5
nl_rel_tol = 1e-5
start_time = 0.0
num_steps = 50
dt = 1e6
end_time = 5e7
[]
[Postprocessors]
[fis_gas_generated]
type = ElementIntegralFisGasGeneratedSifgrs
[]
[fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
[]
[]
[UserObjects]
[percolate]
type = PercolationUserObject
execute_on = 'timestep_begin'
boundaries = 'free1'
variable = open
threshold = 0.0
[]
[]
[Outputs]
exodus = true
[]
(test/tests/solid_mechanics/uo2_creep/uo2_creep_irradiation.i)
# Tests material model CreepUO2, which computes the combined thermal and
# irradiation creep for UO2 fuel. This test is specifically designed
# to verify the non temperature dependent irradiation creep option, which
# differs from the original MATPRO correlation (which included temperature
# dependence via an exponential term). The material parameters for the irradiation
# creep term (code defaults) are:
#
# A7 = 7.78e-37
# Q3 = 0
#
# The test is a single element unit cube which is pulled in the y direction
# with a pressure of 5.0e6 Pa. The temperature and fission rate within the cube
# are uniform and constant at 600 K and 2e19 fissios/m**3-s. The total time is
# 1e6, which is solved in 10 equal steps of 1e5.
# The small-strain anaytical solution for the total y displacement at time=1e6s is:
# y_disp = elastic_component + irradiation_creep_component + thermal_creep_component
# = (uniaxial_stress/elastic_modulus)*cube_height + (A7*mises_stress*fission_rate)*time + negligible
# = (5e6/2e11)*1 + (7.78e-37*5e6*2e19)*1e6
# = 1.02800e-4.
#
# BISON gets 1.02805e-4 using large deformation solid mechanics. The difference in the two solutions is 0.005%.
[GlobalParams]
density = 10431.0
displacements = 'disp_x disp_y disp_z'
order = FIRST
family = LAGRANGE
[]
[Mesh]
[mesh]
type = FileMeshGenerator
file = 1x1x1_cube.e
[]
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[disp_z]
[]
[temp]
initial_condition = 600.0
[]
[]
[AuxVariables]
[fission_rate]
[]
[stress_yy]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[top_pull]
type = PiecewiseLinear
x = '0 1'
y = '1 1'
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
strain = finite
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temp
[]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temp
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
value = 2.0e19
[]
[stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[]
[]
[BCs]
[u_top_pull]
type = Pressure
variable = disp_y
boundary = 5
factor = -5e6
function = top_pull
[]
[u_bottom_fix]
type = DirichletBC
variable = disp_y
boundary = 3
value = 0.0
[]
[u_yz_fix]
type = DirichletBC
variable = disp_x
boundary = 4
value = 0.0
[]
[u_xy_fix]
type = DirichletBC
variable = disp_z
boundary = 2
value = 0.0
[]
[temp_top_bottom_fix]
type = DirichletBC
variable = temp
boundary = '3 5'
value = 600.0
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = 1
youngs_modulus = 2e11
poissons_ratio = 0.3
[]
[creep]
type = UO2CreepUpdate
block = 1
temperature = temp
fission_rate = fission_rate
initial_grain_radius = 10.0e-6
oxygen_to_metal_ratio = 2.0
[]
[radial_return_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'creep'
block = 1
[]
[thermal]
type = HeatConductionMaterial
block = 1
specific_heat = 1.0
thermal_conductivity = 100.
[]
[density]
type = StrainAdjustedDensity
block = 1
strain_free_density = 10431.0
[]
[]
[Executioner]
type = Transient
solve_type = PJFNK
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart'
petsc_options_value = '101'
line_search = 'none'
l_max_its = 100
nl_max_its = 100
nl_rel_tol = 1e-8
nl_abs_tol = 1e-10
l_tol = 1e-5
start_time = 0.0
num_steps = 10
dt = 100000
[]
[Outputs]
exodus = true
[]
(assessment/MOX/FFTF/FO-2/L09/analysis/L09_2DRZ_new_bubble_gb_lim_DiffCoeff4_GrainGrowth.i)
initial_fuel_density = 10431.0
[GlobalParams]
density = ${initial_fuel_density}
initial_porosity = 0.2
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
volumetric_locking_correction = false
displacements = 'disp_x disp_y'
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[Mesh]
coord_type = RZ
[smeared_pellet_mesh]
type = FuelPinMeshGenerator
pellet_quantity = 1
pellet_height = 0.9144
pellet_outer_radius = 2.794e-3
pellet_inner_radius = 6.985e-4
pellet_mesh_density = customize
clad_mesh_density = customize
clad_gap_width = 101.6e-6
clad_thickness = 0.5334e-3
clad_bot_gap_height = 1.0e-3
bottom_clad_height = 2.24e-3
top_clad_height = 2.24e-3
clad_top_gap_height = 1.057
elem_type = QUAD8
nx_c = 4
ny_c = 1000
nx_p = 10
ny_p = 500
ny_cu = 3
ny_cl = 3
[]
patch_size = 50
patch_update_strategy = iteration
partitioner = centroid
centroid_partitioner_direction = y
[]
[UserObjects]
[pin_geometry]
type = FuelPinGeometry
[]
[]
[Variables]
[temp]
initial_condition = 295.0
scaling = 1
[]
[]
[AuxVariables]
[fission_rate]
block = pellet
[]
[burnup]
block = pellet
[]
[grain_radius]
block = pellet
initial_condition = 10e-6
[]
[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
[]
[vcn_bdr_2]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[atm_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[vcn_bbl_bdr]
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
[]
[vol_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[GBCoverage]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[eff_diff_coeff]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[deltav_v0_bd]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[radial_strain]
order = CONSTANT
family = MONOMIAL
[]
[effective_creep_strain]
block = clad
order = CONSTANT
family = MONOMIAL
[]
[gap_cond]
order = CONSTANT
family = MONOMIAL
[]
[coolant_htc]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[fraction_history]
type = PiecewiseLinear
x = '0 74993.42422 31858942.74'
y = '0 0.854004932 0.854004932'
[]
[fast_neutron_flux_function]
type = PiecewiseLinear
x = '0 74993.42422 31858942.74'
y = '0 2.99513e+19 2.99513e+19'
[]
[axial_power_profile]
type = PiecewiseBilinear
x = '0.0334152 0.09468 0.1559448 0.2162952 0.27756 0.3388248 0.3991752 0.46044 0.5217048 0.5820552 0.64332 0.7045848 0.7649352 0.8262 0.8874648'
y = '0 31858942.74'
z = '5493.43832 7183.727034 29157.48031 34228.34646 37608.92388 40144.35696 41412.07349 42257.21785 41834.64567 39721.78478 37608.92388 33805.77428 28312.33596 4225.721785 2535.433071 5041.338583 6592.519685 26757.87402 31411.41732 34513.77953 36840.55118 38003.93701 38779.52756 38391.73228 36452.75591 34513.77953 31023.62205 25982.28346 3877.952756 2326.771654'
scale_factor = 1
axis = 1
[]
[average_power_history]
type = PiecewiseLinear
x = '0 74993.42422 31858942.74'
y = '0 24264.05646 24264.05646'
[]
[pressure_ramp]
type = PiecewiseLinear
x = '-200 0'
y = '0 1'
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[pellets]
block = pellet
add_variables = true
strain = FINITE
eigenstrain_names = 'fuel_thermal_strain fuel_volumetric_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
extra_vector_tags = 'ref'
use_finite_deform_jacobian = true
[]
[clad]
block = clad
add_variables = true
strain = FINITE
eigenstrain_names = 'clad_thermal_eigenstrain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
extra_vector_tags = 'ref'
use_finite_deform_jacobian = true
[]
[]
[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
extra_vector_tags = 'ref'
block = pellet
fission_rate = fission_rate
[]
[]
[AuxKernels]
[fission_rate]
type = FissionRateGeneral
fission_rate_formulation = MOX
variable = fission_rate
block = pellet
initial_porosity = 0.2
axial_power_profile = axial_power_profile
rod_ave_lin_pow = fraction_history
pellet_diameter = 0.005588
execute_on = timestep_begin
pellet_inner_diameter = 0.001397
[]
[burnup]
type = BurnupAux
block = pellet
fission_rate = fission_rate
variable = burnup
execute_on = timestep_begin
[]
[grain_radius]
type = GrainRadiusAux
block = pellet
variable = grain_radius
temperature = temp
execute_on = linear
[]
[fggen]
type = MaterialRealAux
variable = gas_gen_3
property = gas_concentration_generated_total
execute_on = timestep_end
[]
[fggrn]
type = MaterialRealAux
variable = gas_grn_3
property = gas_concentration_intra_total
execute_on = timestep_end
[]
[fgbdr]
type = MaterialRealAux
variable = gas_bdr_3
property = gas_concentration_GB_bubble_volume
execute_on = timestep_end
[]
[fgrel]
type = MaterialRealAux
variable = gas_rel_3
property = gas_concentration_release_total
execute_on = timestep_end
[]
[nbbl2]
type = MaterialRealAux
variable = bbl_bdr_2
property = bubble_GB_surface_density
execute_on = timestep_end
[]
[nvcn2]
type = MaterialRealAux
variable = vcn_bdr_2
property = vacancy_concentration_GB_surface
execute_on = timestep_end
[]
[atmbbl]
type = MaterialRealAux
variable = atm_bbl_bdr
property = atom_per_bubble_GB
execute_on = timestep_end
[]
[vcnbbl]
type = MaterialRealAux
variable = vcn_bbl_bdr
property = vacancy_per_bubble_GB
execute_on = timestep_end
[]
[prsbbl]
type = MaterialRealAux
variable = prs_bbl_bdr
property = bubble_GB_pressure
execute_on = timestep_end
[]
[prseqbbl]
type = MaterialRealAux
variable = prseq_bbl_bdr
property = bubble_GB_pressure_equilibrium
execute_on = timestep_end
[]
[radbbl]
type = MaterialRealAux
variable = rad_bbl_bdr
property = bubble_radius_GB
execute_on = timestep_end
[]
[volbbl]
type = MaterialRealAux
variable = vol_bbl_bdr
property = bubble_GB_volume
execute_on = timestep_end
[]
[frcvrg]
type = MaterialRealAux
variable = GBCoverage
property = GBCoverage
execute_on = timestep_end
[]
[diffc]
type = MaterialRealAux
variable = eff_diff_coeff
property = eff_diff_coeff
execute_on = timestep_end
[]
[dvv0bd]
type = MaterialRealAux
variable = deltav_v0_bd
property = deltav_v0_bubble_GB
execute_on = timestep_end
[]
[radial_strain]
type = RankTwoAux
rank_two_tensor = total_strain
variable = radial_strain
index_i = 0
index_j = 0
execute_on = timestep_end
[]
[effective_creep_strain]
type = MaterialRealAux
property = effective_creep_strain
variable = effective_creep_strain
block = clad
execute_on = timestep_end
[]
[conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
execute_on = 'linear'
[]
[coolant_htc]
type = MaterialRealAux
property = coolant_channel_htc
variable = coolant_htc
boundary = 2
execute_on = 'linear'
[]
[]
[Contact]
[pellet_clad_mechanical]
primary = 5
secondary = 10
formulation = kinematic
model = frictionless
penalty = 1e7
[]
[]
[ThermalContact]
[thermal_contact]
type = GasGapHeatTransfer
variable = temp
primary = 5
secondary = 10
initial_moles = initial_moles
gas_released = fis_gas_released
contact_pressure = contact_pressure
quadrature = true
[]
[]
[BCs]
[no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[]
[no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 20
value = 0.0
[]
[Pressure]
[coolantPressure]
boundary = '1 2 3'
factor = 0.151e6
function = pressure_ramp
[]
[]
[PlenumPressure]
[plenumPressure]
boundary = 9
initial_pressure = 101325
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = ave_temp_interior
volume = gas_volume
material_input = fis_gas_released
output = plenum_pressure
[]
[]
[]
[CoolantChannel]
[convective_clad_surface]
boundary = '1 2 3'
variable = temp
inlet_temperature = 580
inlet_pressure = 0.151e6
inlet_massflux = 1687.43
rod_diameter = 6.858e-3
rod_pitch = 1.7e-2
linear_heat_rate = fraction_history
axial_power_profile = axial_power_profile
coolant_material = sodium
[]
[]
[Materials]
[fuel_thermal]
type = MAMOXThermal
block = pellet
temperature = temp
Am_content = 0.0
Np_content = 0.0
porosity = 0.2
output_properties = 'thermal_conductivity'
[]
[fuel_elasticity_tensor]
type = MAMOXElasticityTensor
block = pellet
[]
[elastic_stress]
type = ComputeFiniteStrainElasticStress
block = pellet
outputs = exodus
[]
[fuel_thermal_expansion]
type = MAMOXThermalExpansionEigenstrain
block = pellet
temperature = temp
stress_free_temperature = 295.0
oxygen_to_metal_ratio = 2.0
eigenstrain_name = fuel_thermal_strain
[]
[fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
block = pellet
temperature = temp
burnup = burnup
initial_fuel_density = 10431.0
eigenstrain_name = fuel_volumetric_strain
[]
[clad_thermal]
type = HT9Thermal
block = clad
temperature = temp
[]
[clad_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1.88e11
poissons_ratio = 0.236
block = clad
[]
[clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = nonlinear
inelastic_models = 'clad_ht9creep'
block = clad
[]
[clad_ht9creep]
type = HT9CreepUpdate
block = clad
temperature = temp
[]
[thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = clad
thermal_expansion_coeff = 1.2e-5
temperature = temp
stress_free_temperature = 295.0
eigenstrain_name = clad_thermal_eigenstrain
[]
[fission_gas_release]
type = UO2Sifgrs
block = pellet
temperature = temp
burnup = burnup
fission_rate = fission_rate
grain_radius = grain_radius
gbs_model = true
bubble_gb_limit = 1.0e+11
diff_coeff_option = TURNBULL_D1_4D2_4D3
[]
[clad_density]
type = StrainAdjustedDensity
block = clad
strain_free_density = 7874.0
[]
[fuel_density]
type = StrainAdjustedDensity
block = pellet
strain_free_density = ${initial_fuel_density}
[]
[fast_neutron_flux]
type = GenericFunctionMaterial
block = clad
prop_names = fast_neutron_flux
prop_values = fast_neutron_flux_function
[]
[]
[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'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
l_max_its = 50
l_tol = 8e-3
nl_max_its = 15
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
start_time = -200
n_startup_steps = 1
end_time = 31858942.74
dtmax = 1e6
dtmin = 1
[TimeStepper]
type = IterationAdaptiveDT
dt = 2e2
optimal_iterations = 10
iteration_window = 2
linear_iteration_ratio = 100
growth_factor = 2
cutback_factor = .5
force_step_every_function_point = true
timestep_limiting_function = fraction_history
[]
[Quadrature]
order = FIFTH
side_order = SEVENTH
[]
[]
[Postprocessors]
[ave_temp_interior]
type = SideAverageValue
boundary = 9
variable = temp
execute_on = 'initial linear'
[]
[average_burnup]
type = ElementAverageValue
block = pellet
variable = burnup
[]
[clad_inner_vol]
type = InternalVolume
boundary = 7
execute_on = 'initial timestep_end'
[]
[pellet_volume]
type = InternalVolume
boundary = 8
execute_on = 'initial timestep_end'
[]
[avg_clad_temp]
type = SideAverageValue
boundary = 7
variable = temp
execute_on = 'initial timestep_end'
[]
[fis_gas_produced]
type = ElementIntegralFisGasGeneratedSifgrs
block = pellet
execute_on = 'linear'
[]
[fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = pellet
execute_on = 'linear'
[]
[fis_gas_released_percentage]
type = FGRPercent
fission_gas_generated = fis_gas_produced
fission_gas_released = fis_gas_released
execute_on = 'linear'
[]
[fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = pellet
execute_on = 'linear'
[]
[fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = pellet
execute_on = 'linear'
[]
[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
[]
[rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = pellet
[]
[rod_input_power]
type = FunctionValuePostprocessor
function = average_power_history
scale_factor = 0.9144 # rod height
[]
[average_vonMises_fuel]
type = ElementAverageValue
variable = vonmises_stress
block = pellet
[]
[average_vonMises_clad]
type = ElementAverageValue
variable = vonmises_stress
block = clad
[]
[average_strain_rr_fuel]
type = ElementAverageValue
variable = radial_strain
block = pellet
[]
[average_strain_rr_clad]
type = ElementAverageValue
variable = radial_strain
block = clad
[]
[average_creep_strain_clad]
type = ElementAverageValue
variable = effective_creep_strain
block = clad
[]
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = true
color = true
csv = true
[console]
type = Console
max_rows = 25
[]
[chkfile]
type = CSV
file_base = fftf_fo2_L09_new_DiffCoeff4_GrainGrowth_chkfile
execute_on = FINAL
show = 'ave_temp_interior fis_gas_released_percentage'
[]
[]
[Debug]
show_var_residual_norms = true
[]
(test/tests/decay_heating/decay_heat_function.i)
# Tests the DecayHeatFunction postprocessor
#
# The test solves a simple lumped heat capacity problem (ODE):
#
# rho*C dT/dt = Fdot*Ef
# where rho = density
# C = heat capacity
# Fdot = fission density rate
# Ef = energy per fission
#
# over a time period of 1e8 s to generate an initial state for decay heating.
#
# The fission rate drops to zero at 1e8 and decay heating begins. The decay period
# is ten seconds and the decay heat function is compared to hand calculation at
# 1 and 10 seconds.
#
# At one second:
# decay_heat_value = [f(time_after_shutdown) - f(total_time)] * 1.02*neutron_capture_factor/energy_per_fission_mev
# = [f(1) - f(1e8 + 1)] * 1.02 * 1 / 205
# = (12.31 - 0.1165) * 1.02 * 1 / 205
# = 6.067010e-2
# At ten seconds:
# decay_heat_value = [f(time_after_shutdown) - f(total_time)] * 1.02*neutron_capture_factor/energy_per_fission_mev
# = [f(10) - f(1e8 + 10)] * 1.02 * 1 / 205
# = (9.494 - 0.1165) * 1.02 * 1 / 205
# = 4.665878e-2
#
# where the f values are taken from the ANS 5.1-1979 Standard
#
# The DecayHeatFunction post processor matches these values precisely.
#
[Mesh]
coord_type = RZ
[mesh]
type = FileMeshGenerator
file = cylinder.e
[]
[]
[Functions]
[power_function]
type = PiecewiseLinear
x = '0 1e8 1.00000001e8 2e8'
y = '0 1 0 0'
[]
[time_function]
type = PiecewiseLinear
x = '0 1e8 1.00000001e8 1.0000001e8'
y = '6.25e5 6.25e5 1 1'
[]
[]
[Variables]
[temp]
order = FIRST
family = LAGRANGE
initial_condition = 0.0
[]
[]
[AuxVariables]
[fission_rate]
block = 1
[]
[]
[Kernels]
[ie]
type = HeatConductionTimeDerivative
variable = temp
[]
[fission_heat_source]
type = NeutronHeatSource
variable = temp
fission_rate = fission_rate
[]
[]
[AuxKernels]
[fission_rate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
block = 1
value = 1e10
fission_rate_function = power_function
execute_on = timestep_begin
[]
[]
[Materials]
[mat]
type = GenericConstantMaterial
prop_names = 'thermal_conductivity specific_heat density'
prop_values = '10 1 1'
block = 1
[]
[]
[Executioner]
type = Transient
solve_type = 'NEWTON'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
start_time = 0.0
end_time = 1.0000001e8
nl_rel_tol = 1e-8
nl_abs_tol = 1e-14
dt = 1
[TimeStepper]
type = FunctionDT
function = time_function
[]
[]
[Postprocessors]
[decay_heat_function]
type = DecayHeatFunction
time_at_shutdown = 1e8
neutron_capture_factor = 1
[]
[]
[Outputs]
exodus = true
[]
(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/MOX/FFTF/FO-2/L09/analysis/L09_2DRZ_old_bubble_gb_lim.i)
initial_fuel_density = 10431.0
[GlobalParams]
density = ${initial_fuel_density}
initial_porosity = 0.2
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
volumetric_locking_correction = false
displacements = 'disp_x disp_y'
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[Mesh]
coord_type = RZ
[smeared_pellet_mesh]
type = FuelPinMeshGenerator
pellet_quantity = 1
pellet_height = 0.9144
pellet_outer_radius = 2.794e-3
pellet_inner_radius = 6.985e-4
pellet_mesh_density = customize
clad_mesh_density = customize
clad_gap_width = 101.6e-6
clad_thickness = 0.5334e-3
clad_bot_gap_height = 1.0e-3
bottom_clad_height = 2.24e-3
top_clad_height = 2.24e-3
clad_top_gap_height = 1.057
elem_type = QUAD8
nx_c = 4
ny_c = 1000
nx_p = 10
ny_p = 500
ny_cu = 3
ny_cl = 3
[]
patch_size = 50
patch_update_strategy = iteration
partitioner = centroid
centroid_partitioner_direction = y
[]
[UserObjects]
[pin_geometry]
type = FuelPinGeometry
[]
[]
[Variables]
[temp]
initial_condition = 295.0
scaling = 1
[]
[]
[AuxVariables]
[fission_rate]
block = pellet
[]
[burnup]
block = pellet
[]
[grain_radius]
block = pellet
initial_condition = 10e-6
[]
[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
[]
[vcn_bdr_2]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[atm_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[vcn_bbl_bdr]
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
[]
[vol_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[GBCoverage]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[eff_diff_coeff]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[deltav_v0_bd]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[radial_strain]
order = CONSTANT
family = MONOMIAL
[]
[effective_creep_strain]
block = clad
order = CONSTANT
family = MONOMIAL
[]
[gap_cond]
order = CONSTANT
family = MONOMIAL
[]
[coolant_htc]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[fraction_history]
type = PiecewiseLinear
x = '0 74993.42422 31858942.74'
y = '0 0.854004932 0.854004932'
[]
[fast_neutron_flux_function]
type = PiecewiseLinear
x = '0 74993.42422 31858942.74'
y = '0 2.99513e+19 2.99513e+19'
[]
[axial_power_profile]
type = PiecewiseBilinear
x = '0.0334152 0.09468 0.1559448 0.2162952 0.27756 0.3388248 0.3991752 0.46044 0.5217048 0.5820552 0.64332 0.7045848 0.7649352 0.8262 0.8874648'
y = '0 31858942.74'
z = '5493.43832 7183.727034 29157.48031 34228.34646 37608.92388 40144.35696 41412.07349 42257.21785 41834.64567 39721.78478 37608.92388 33805.77428 28312.33596 4225.721785 2535.433071 5041.338583 6592.519685 26757.87402 31411.41732 34513.77953 36840.55118 38003.93701 38779.52756 38391.73228 36452.75591 34513.77953 31023.62205 25982.28346 3877.952756 2326.771654'
scale_factor = 1
axis = 1
[]
[average_power_history]
type = PiecewiseLinear
x = '0 74993.42422 31858942.74'
y = '0 24264.05646 24264.05646'
[]
[pressure_ramp]
type = PiecewiseLinear
x = '-200 0'
y = '0 1'
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[pellets]
block = pellet
add_variables = true
strain = FINITE
eigenstrain_names = 'fuel_thermal_strain fuel_volumetric_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
extra_vector_tags = 'ref'
use_finite_deform_jacobian = true
[]
[clad]
block = clad
add_variables = true
strain = FINITE
eigenstrain_names = 'clad_thermal_eigenstrain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
extra_vector_tags = 'ref'
use_finite_deform_jacobian = true
[]
[]
[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
extra_vector_tags = 'ref'
block = pellet
fission_rate = fission_rate
[]
[]
[AuxKernels]
[fission_rate]
type = FissionRateGeneral
fission_rate_formulation = MOX
variable = fission_rate
block = pellet
initial_porosity = 0.2
axial_power_profile = axial_power_profile
rod_ave_lin_pow = fraction_history
pellet_diameter = 0.005588
execute_on = timestep_begin
pellet_inner_diameter = 0.001397
[]
[burnup]
type = BurnupAux
block = pellet
fission_rate = fission_rate
variable = burnup
execute_on = timestep_begin
[]
[grain_radius]
type = GrainRadiusAux
block = pellet
variable = grain_radius
temperature = temp
execute_on = linear
[]
[fggen]
type = MaterialRealAux
variable = gas_gen_3
property = gas_concentration_generated_total
execute_on = timestep_end
[]
[fggrn]
type = MaterialRealAux
variable = gas_grn_3
property = gas_concentration_intra_total
execute_on = timestep_end
[]
[fgbdr]
type = MaterialRealAux
variable = gas_bdr_3
property = gas_concentration_GB_bubble_volume
execute_on = timestep_end
[]
[fgrel]
type = MaterialRealAux
variable = gas_rel_3
property = gas_concentration_release_total
execute_on = timestep_end
[]
[nbbl2]
type = MaterialRealAux
variable = bbl_bdr_2
property = bubble_GB_surface_density
execute_on = timestep_end
[]
[nvcn2]
type = MaterialRealAux
variable = vcn_bdr_2
property = vacancy_concentration_GB_surface
execute_on = timestep_end
[]
[atmbbl]
type = MaterialRealAux
variable = atm_bbl_bdr
property = atom_per_bubble_GB
execute_on = timestep_end
[]
[vcnbbl]
type = MaterialRealAux
variable = vcn_bbl_bdr
property = vacancy_per_bubble_GB
execute_on = timestep_end
[]
[prsbbl]
type = MaterialRealAux
variable = prs_bbl_bdr
property = bubble_GB_pressure
execute_on = timestep_end
[]
[prseqbbl]
type = MaterialRealAux
variable = prseq_bbl_bdr
property = bubble_GB_pressure_equilibrium
execute_on = timestep_end
[]
[radbbl]
type = MaterialRealAux
variable = rad_bbl_bdr
property = bubble_radius_GB
execute_on = timestep_end
[]
[volbbl]
type = MaterialRealAux
variable = vol_bbl_bdr
property = bubble_GB_volume
execute_on = timestep_end
[]
[frcvrg]
type = MaterialRealAux
variable = GBCoverage
property = GBCoverage
execute_on = timestep_end
[]
[diffc]
type = MaterialRealAux
variable = eff_diff_coeff
property = eff_diff_coeff
execute_on = timestep_end
[]
[dvv0bd]
type = MaterialRealAux
variable = deltav_v0_bd
property = deltav_v0_bubble_GB
execute_on = timestep_end
[]
[radial_strain]
type = RankTwoAux
rank_two_tensor = total_strain
variable = radial_strain
index_i = 0
index_j = 0
execute_on = timestep_end
[]
[effective_creep_strain]
type = MaterialRealAux
property = effective_creep_strain
variable = effective_creep_strain
block = clad
execute_on = timestep_end
[]
[conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
execute_on = 'linear'
[]
[coolant_htc]
type = MaterialRealAux
property = coolant_channel_htc
variable = coolant_htc
boundary = 2
execute_on = 'linear'
[]
[]
[Contact]
[pellet_clad_mechanical]
primary = 5
secondary = 10
formulation = kinematic
model = frictionless
penalty = 1e7
[]
[]
[ThermalContact]
[thermal_contact]
type = GasGapHeatTransfer
variable = temp
primary = 5
secondary = 10
initial_moles = initial_moles
gas_released = fis_gas_released
contact_pressure = contact_pressure
quadrature = true
[]
[]
[BCs]
[no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[]
[no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 20
value = 0.0
[]
[Pressure]
[coolantPressure]
boundary = '1 2 3'
factor = 0.151e6
function = pressure_ramp
[]
[]
[PlenumPressure]
[plenumPressure]
boundary = 9
initial_pressure = 101325
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = ave_temp_interior
volume = gas_volume
material_input = fis_gas_released
output = plenum_pressure
[]
[]
[]
[CoolantChannel]
[convective_clad_surface]
boundary = '1 2 3'
variable = temp
inlet_temperature = 580
inlet_pressure = 0.151e6
inlet_massflux = 1687.43
rod_diameter = 6.858e-3
rod_pitch = 1.7e-2
linear_heat_rate = fraction_history
axial_power_profile = axial_power_profile
coolant_material = sodium
[]
[]
[Materials]
[fuel_thermal]
type = MAMOXThermal
block = pellet
temperature = temp
Am_content = 0.0
Np_content = 0.0
porosity = 0.2
output_properties = 'thermal_conductivity'
[]
[fuel_elasticity_tensor]
type = MAMOXElasticityTensor
block = pellet
[]
[elastic_stress]
type = ComputeFiniteStrainElasticStress
block = pellet
outputs = exodus
[]
[fuel_thermal_expansion]
type = MAMOXThermalExpansionEigenstrain
block = pellet
temperature = temp
stress_free_temperature = 295.0
oxygen_to_metal_ratio = 2.0
eigenstrain_name = fuel_thermal_strain
[]
[fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
block = pellet
temperature = temp
burnup = burnup
initial_fuel_density = 10431.0
eigenstrain_name = fuel_volumetric_strain
[]
[clad_thermal]
type = HT9Thermal
block = clad
temperature = temp
[]
[clad_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1.88e11
poissons_ratio = 0.236
block = clad
[]
[clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = nonlinear
inelastic_models = 'clad_ht9creep'
block = clad
[]
[clad_ht9creep]
type = HT9CreepUpdate
block = clad
temperature = temp
[]
[thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = clad
thermal_expansion_coeff = 1.2e-5
temperature = temp
stress_free_temperature = 295.0
eigenstrain_name = clad_thermal_eigenstrain
[]
[fission_gas_release]
type = UO2Sifgrs
block = pellet
temperature = temp
burnup = burnup
fission_rate = fission_rate
grain_radius = grain_radius
gbs_model = true
[]
[clad_density]
type = StrainAdjustedDensity
block = clad
strain_free_density = 7874.0
[]
[fuel_density]
type = StrainAdjustedDensity
block = pellet
strain_free_density = ${initial_fuel_density}
[]
[fast_neutron_flux]
type = GenericFunctionMaterial
block = clad
prop_names = fast_neutron_flux
prop_values = fast_neutron_flux_function
[]
[]
[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'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
l_max_its = 50
l_tol = 8e-3
nl_max_its = 15
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
start_time = -200
n_startup_steps = 1
end_time = 31858942.74
dtmax = 1e6
dtmin = 1
[TimeStepper]
type = IterationAdaptiveDT
dt = 2e2
optimal_iterations = 10
iteration_window = 2
linear_iteration_ratio = 100
growth_factor = 2
cutback_factor = .5
force_step_every_function_point = true
timestep_limiting_function = fraction_history
[]
[Quadrature]
order = FIFTH
side_order = SEVENTH
[]
[]
[Postprocessors]
[ave_temp_interior]
type = SideAverageValue
boundary = 9
variable = temp
execute_on = 'initial linear'
[]
[average_burnup]
type = ElementAverageValue
block = pellet
variable = burnup
[]
[clad_inner_vol]
type = InternalVolume
boundary = 7
execute_on = 'initial timestep_end'
[]
[pellet_volume]
type = InternalVolume
boundary = 8
execute_on = 'initial timestep_end'
[]
[avg_clad_temp]
type = SideAverageValue
boundary = 7
variable = temp
execute_on = 'initial timestep_end'
[]
[fis_gas_produced]
type = ElementIntegralFisGasGeneratedSifgrs
block = pellet
execute_on = 'linear'
[]
[fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = pellet
execute_on = 'linear'
[]
[fis_gas_released_percentage]
type = FGRPercent
fission_gas_generated = fis_gas_produced
fission_gas_released = fis_gas_released
execute_on = 'linear'
[]
[fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = pellet
outputs = exodus
execute_on = 'linear'
[]
[fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = pellet
outputs = exodus
execute_on = 'linear'
[]
[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
[]
[rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = pellet
[]
[rod_input_power]
type = FunctionValuePostprocessor
function = average_power_history
scale_factor = 0.9144 # rod height
[]
[average_vonMises_fuel]
type = ElementAverageValue
variable = vonmises_stress
block = pellet
[]
[average_vonMises_clad]
type = ElementAverageValue
variable = vonmises_stress
block = clad
[]
[average_strain_rr_fuel]
type = ElementAverageValue
variable = radial_strain
block = pellet
[]
[average_strain_rr_clad]
type = ElementAverageValue
variable = radial_strain
block = clad
[]
[average_creep_strain_clad]
type = ElementAverageValue
variable = effective_creep_strain
block = clad
[]
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = true
color = true
csv = true
[console]
type = Console
max_rows = 25
[]
[chkfile]
type = CSV
file_base = fftf_fo2_L09_old_chkfile
execute_on = FINAL
show = 'ave_temp_interior fis_gas_released_percentage'
[]
[]
[Debug]
show_var_residual_norms = true
[]
(test/tests/solid_mechanics/uo2_creep/adUo2_creep_rz.i)
# Tests material model CreepUO2RZ which computes the combined thermal
# and irradiation creep for UO2 fuel for an axisymmetric geometry.
#
# The test is a single unit element with an initial inner radius of 1. The element
# is pulled along the symmetric axis (y) with a pressure of 5.0e7 Pa. The
# temperature and fission rate are uniform and constant at 1500 K and 2e18
# fissios/m**3-s. The total time is 1e5, which is solved in 10 equal steps of 1e4.
# The small-strain anaytical solution for the total axial displacement (elastic + thermal
# creep + irradiation creep) is 4.12825e-4. BISON also gets 4.12825e-4 since, for this
# test, small-strain mechanics was used.
#
[GlobalParams]
density = 10431.0
displacements = 'disp_x disp_y'
[]
[Mesh]
coord_type = RZ
use_displaced_mesh = false
[mesh]
type = FileMeshGenerator
file = 1x1_rz.e
[]
[]
[Variables]
[disp_x]
order = FIRST
family = LAGRANGE
[]
[disp_y]
order = FIRST
family = LAGRANGE
[]
[temp]
order = FIRST
family = LAGRANGE
initial_condition = 1500.0
[]
[]
[AuxVariables]
[fission_rate]
order = FIRST
family = LAGRANGE
[]
[stress_yy]
order = CONSTANT
family = MONOMIAL
[]
[strain_xx]
order = CONSTANT
family = MONOMIAL
[]
[strain_yy]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[top_pull]
type = PiecewiseLinear
x = '0 1'
y = '-0.5e8 -0.5e8'
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
strain = small
incremental = true
use_automatic_differentiation = true
[]
[]
[Kernels]
[heat]
type = ADHeatConduction
variable = temp
[]
[heat_ie]
type = ADHeatConductionTimeDerivative
variable = temp
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
value = 2.0e18
[]
[stress_yy]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[]
[strain_xx]
type = ADRankTwoAux
rank_two_tensor = total_strain
variable = strain_xx
index_i = 0
index_j = 0
[]
[strain_yy]
type = ADRankTwoAux
rank_two_tensor = total_strain
variable = strain_yy
index_i = 1
index_j = 1
[]
[]
[BCs]
[Pressure]
[u_top_pull]
boundary = 4
function = top_pull
[]
[]
[u_bottom_fix]
type = ADDirichletBC
variable = disp_y
boundary = 3
value = 0.0
[]
[temp_fix]
type = ADDirichletBC
variable = temp
boundary = 3
value = 1500.0
[]
[]
[Materials]
[elasticity_tensor]
type = ADComputeIsotropicElasticityTensor
youngs_modulus = 2e11
poissons_ratio = 0.3
[]
[creep]
type = ADUO2CreepUpdate
temperature = temp
fission_rate = fission_rate
initial_grain_radius = 10.0e-6
oxygen_to_metal_ratio = 2.0
a7 = 3.72264e-35
q3 = 2617
[]
[radial_return_stress]
type = ADComputeMultipleInelasticStress
inelastic_models = 'creep'
[]
[thermal]
type = ADHeatConductionMaterial
specific_heat = 1.0
thermal_conductivity = 100.
[]
[density]
type = ADStrainAdjustedDensity
strain_free_density = 10431.0
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart'
petsc_options_value = '101'
line_search = 'none'
l_max_its = 100
nl_max_its = 100
nl_rel_tol = 1e-8
nl_abs_tol = 1e-10
l_tol = 1e-5
start_time = 0.0
num_steps = 10
dt = 10000
[]
[Outputs]
exodus = true
[]
(assessment/MOX/JOYO/B14/PTM010/analysis/b14_ptm010_2DRZ_t.i)
initial_fuel_density = 10964.6
[GlobalParams]
density = ${initial_fuel_density}
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
volumetric_locking_correction = false
displacements = 'disp_x disp_y'
[]
[Problem]
type = ReferenceResidualProblem
extra_tag_vectors = 'ref'
reference_vector = 'ref'
[]
[Mesh]
coord_type = RZ
[smeared_pellet_mesh]
type = FuelPinMeshGenerator
pellet_quantity = 1
pellet_height = 0.4
pellet_outer_radius = 0.002675
pellet_mesh_density = customize
clad_mesh_density = customize
clad_gap_width = 0.000105
clad_thickness = 0.00047
clad_bot_gap_height = 1.0e-3
bottom_clad_height = 2.24e-3
top_clad_height = 2.24e-3
clad_top_gap_height = 0.685
elem_type = QUAD8
nx_c = 4
ny_c = 100
nx_p = 20
ny_p = 100
ny_cu = 3
ny_cl = 3
[]
patch_size = 50
patch_update_strategy = iteration
partitioner = centroid
centroid_partitioner_direction = y
[]
[UserObjects]
[pin_geometry]
type = FuelPinGeometry
[]
[]
[Variables]
[temp]
initial_condition = 295.0
[]
[]
[AuxVariables]
[pore]
[]
[fission_rate]
[]
[burnup]
[]
[radial_strain]
order = CONSTANT
family = MONOMIAL
[]
[effective_creep_strain]
block = clad
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[power_history] #related to the LHGR at the midplane
type = PiecewiseLinear
x = ' 0 72000 158040 160200 246600 248400 249000.012 251280'
y = ' 0 39814.5 39814.5 44289.3 44289.3 53927.4 53927.4 0'
[]
[fast_neutron_flux_function]
type = PiecewiseLinear
x = '0 251280'
y = '3.3e+15 3.3e+15'
[]
[f_temp_out_clad]
type = PiecewiseBilinear
x = '0.000175 0.0464075 0.0843675 0.1075625 0.152025 0.1994625 0.2464725 0.2947475 0.356915 0.43356 0.49848 0.625 0.700475 0.797485 0.8723425 0.96'
y = '0 251280'
z = '295 295 295 295 295 295 295 295 295 295 295 295 295 295 295 295 634.94 662.273 676.998 686.217 706.339 727 743.358 758.311 780.069 799.077 815.576 846.374 860.233 875.494 882.809 889.8'
scale_factor = 1
axis = 1
[]
[axial_peaking_factors]
type = PiecewiseBilinear
x = '0.000175 0.0464075 0.0843675 0.1075625 0.152025 0.1994625 0.2464725 0.2947475 0.356915 0.43356 0.49848 0.625 0.700475 0.797485 0.8723425 0.96'
y = '0 251280'
z = '0.751 0.752 0.767 0.796 0.82 0.852 0.875 0.915 0.944 0.963 0.988 1 0.985 0.955 0.913 0.846 0.751 0.752 0.767 0.796 0.82 0.852 0.875 0.915 0.944 0.963 0.988 1 0.985 0.955 0.913 0.846'
scale_factor = 1
axis = 1
[]
[q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[]
[average_power_history]
type = PiecewiseLinear
x = ' 0 72000 158040 160200 246600 248400 249000.012 251280'
y = ' 0 34700 34700 38600 38600 47000 47000 0'
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[pellets]
block = pellet
add_variables = true
strain = FINITE
eigenstrain_names = 'fuel_thermal_strain fuel_volumetric_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
use_finite_deform_jacobian = true
extra_vector_tags = 'ref'
[]
[clad]
block = clad
add_variables = true
strain = FINITE
eigenstrain_names = 'clad_thermal_eigenstrain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
use_finite_deform_jacobian = true
extra_vector_tags = 'ref'
[]
[]
[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
variable = temp
fission_rate = fission_rate
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[fission_rate]
type = FissionRateGeneral
fission_rate_formulation = MOX
variable = fission_rate
block = pellet
initial_porosity = 0.143
axial_power_profile = axial_peaking_factors
rod_ave_lin_pow = power_history
pellet_diameter = 0.00535
execute_on = timestep_begin
porosity = pore
energy_per_fission = 3.2e-11
[]
[burnup]
type = BurnupAux
block = pellet
fission_rate = fission_rate
variable = burnup
execute_on = timestep_begin
[]
[radial_strain]
type = RankTwoAux
rank_two_tensor = total_strain
variable = radial_strain
index_i = 0
index_j = 0
execute_on = timestep_end
[]
[effective_creep_strain]
type = MaterialRealAux
property = effective_creep_strain
variable = effective_creep_strain
block = clad
execute_on = timestep_end
[]
[]
[Contact]
[pellet_clad_mechanical]
primary = 5
secondary = 10
formulation = kinematic
model = frictionless
penalty = 1e7
[]
[]
[ThermalContact]
[thermal_contact]
type = GasGapHeatTransfer
variable = temp
primary = 5
secondary = 10
initial_moles = initial_moles
gas_released = fis_gas_released
contact_pressure = contact_pressure
quadrature = true
[]
[]
[BCs]
[temp_clad_outside]
type = FunctionDirichletBC
variable = temp
function = f_temp_out_clad
boundary = 2
[]
[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 = 20
value = 0.0
[]
[PlenumPressure]
[plenumPressure]
boundary = 9
initial_pressure = 101325
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = ave_temp_interior
volume = gas_volume
material_input = fis_gas_released
output = plenum_pressure
[]
[]
[]
[Materials]
[fast_neutron_flux]
type = FastNeutronFlux
calculate_fluence = true
block = clad
flux_function = fast_neutron_flux_function
[]
[fuel_thermal]
type = MAMOXThermal
temperature = temp
porosity = pore
block = pellet
Am_content = 0.0237
oxy_to_metal_ratio = 1.99
output_properties = 'thermal_conductivity'
[]
[fuel_density]
type = StrainAdjustedDensity
block = pellet
strain_free_density = ${initial_fuel_density}
[]
[fuel_elasticity_tensor]
type = MAMOXElasticityTensor
block = pellet
[]
[elastic_stress]
type = ComputeFiniteStrainElasticStress
block = pellet
[]
[fuel_thermal_expansion]
type = MAMOXThermalExpansionEigenstrain
block = pellet
temperature = temp
stress_free_temperature = 295.0
oxygen_to_metal_ratio = 2.0
eigenstrain_name = fuel_thermal_strain
[]
[fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
block = pellet
temperature = temp
burnup = burnup
initial_fuel_density = 10964.6
eigenstrain_name = fuel_volumetric_strain
[]
[clad_thermal]
type = SS316Thermal
block = clad
temperature = temp
[]
[clad_density]
type = StrainAdjustedDensity
block = clad
strain_free_density = 8000
[]
[clad_elasticity_tensor]
type = SS316ElasticityTensor
block = clad
temperature = temp
elastic_constants_model = legacy_ifr
[]
[thermal_expansion]
type = SS316ThermalExpansionEigenstrain
block = clad
temperature = temp
stress_free_temperature = 295.0
eigenstrain_name = clad_thermal_eigenstrain
[]
[clad_ss316creep]
type = SS316CreepUpdate
block = clad
temperature = temp
fast_neutron_flux = fast_neutron_flux
[]
[clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'clad_ss316creep'
block = clad
[]
[fission_gas_release]
type = UO2Sifgrs
block = pellet
temperature = temp
burnup = burnup
fission_rate = fission_rate
grain_radius_const = 10e-06
bubble_gb_limit = 1.0e+11
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -sub_pc_type'
petsc_options_value = 'asm lu'
line_search = 'none'
fixed_point_max_its = 1
fixed_point_abs_tol = 1e-3
fixed_point_rel_tol = 1e-3
l_max_its = 50
l_tol = 8e-3
nl_max_its = 50
nl_rel_tol = 1e-3
nl_abs_tol = 1e-3
start_time = 0
n_startup_steps = 1
end_time = 251280
dtmax = 10000
dtmin = 0.25
automatic_scaling = true
compute_scaling_once = false
[TimeStepper]
type = IterationAdaptiveDT
dt = 1e1
optimal_iterations = 15
iteration_window = 2
linear_iteration_ratio = 100
growth_factor = 2
cutback_factor = .5
force_step_every_function_point = true
timestep_limiting_function = power_history
[]
[]
[Postprocessors]
[ave_temp_interior]
type = ElementAverageValue
variable = temp
execute_on = 'initial linear'
[]
[average_burnup]
type = ElementAverageValue
variable = burnup
[]
[ave_pore]
type = ElementAverageValue
block = pellet
variable = pore
[]
[max_pore]
type = NodalExtremeValue
block = pellet
value_type = max
variable = pore
[]
[min_pore]
type = NodalExtremeValue
block = pellet
value_type = min
variable = pore
[]
[fis_gas_produced]
type = ElementIntegralFisGasGeneratedSifgrs
block = pellet
execute_on = 'linear'
[]
[fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = pellet
execute_on = 'linear'
[]
[fis_gas_released_percentage]
type = FGRPercent
fission_gas_generated = fis_gas_produced
fission_gas_released = fis_gas_released
execute_on = 'linear'
[]
[gas_volume]
type = InternalVolume
boundary = 9
execute_on = 'initial linear'
[]
[rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = pellet
[]
[rod_input_power]
type = FunctionValuePostprocessor
function = average_power_history
scale_factor = 0.4 # rod height
[]
[]
[VectorPostprocessors]
[fuel_radial_temperature_Sample1]
type = LineValueSampler
variable = temp
start_point = '0.0 0.283 0.0'
end_point = '0.002675 0.283 0.0'
num_points = 200
execute_on = final
sort_by = x
outputs = line_plot
[]
[radial_porosity_Sample1]
type = LineValueSampler
variable = pore
start_point = '0.0 0.283 0.0'
end_point = '0.002675 0.283 0.0'
num_points = 200
execute_on = final
sort_by = x
outputs = line_plot
[]
[fuel_radial_temperature_Sample2]
type = LineValueSampler
variable = temp
start_point = '0.0 0.347 0.0'
end_point = '0.002675 0.347 0.0'
num_points = 200
execute_on = final
sort_by = x
outputs = line_plot
[]
[radial_porosity_Sample2]
type = LineValueSampler
variable = pore
start_point = '0.0 0.347 0.0'
end_point = '0.002675 0.347 0.0'
num_points = 200
execute_on = final
sort_by = x
outputs = line_plot
[]
[fuel_radial_temperature_Sample3]
type = LineValueSampler
variable = temp
start_point = '0.0 0.2 0.0'
end_point = '0.002675 0.2 0.0'
num_points = 200
execute_on = final
sort_by = x
outputs = line_plot
[]
[radial_porosity_Sample3]
type = LineValueSampler
variable = pore
start_point = '0.0 0.2 0.0'
end_point = '0.002675 0.2 0.0'
num_points = 200
execute_on = final
sort_by = x
outputs = line_plot
[]
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = true
color = true
csv = true
[console]
type = Console
max_rows = 25
[]
[line_plot]
type = CSV
execute_on = 'FINAL'
time_step_interval = 1
file_base = 1d
create_final_symlink = true
[]
[chkfile]
type = CSV
execute_on = FINAL
show = 'ave_temp_interior max_pore'
[]
[]
[MultiApps]
[sub]
type = TransientMultiApp
app_type = BisonApp
execute_on = timestep_end
catch_up = true
max_catch_up_steps = 10
positions_file = positions.txt
input_files = b14_ptm010_pore.i
[]
[]
[Transfers]
[temp_to_sub]
type = MultiAppProjectionTransfer
to_multi_app = sub
source_variable = temp
variable = temp
[]
[pore_from_sub]
type = MultiAppGeometricInterpolationTransfer
from_multi_app = sub
source_variable = pore
variable = pore
[]
[]
[Debug]
show_var_residual_norms = true
[]
(test/tests/sifgrs/u3si2/burnup_function.i)
# This input tests the coupling of burnup function action to U3Si2Sifgrs
[Mesh]
[gen]
type = ExamplePatchMeshGenerator
dim = 3
[]
[]
[Functions]
[Temp_func]
type = ParsedFunction
expression = '1700'
[]
[Fiss_func]
type = ParsedFunction
expression = '2.5e19'
[]
[]
[Variables]
[T]
initial_condition = 1700
[]
[]
[AuxVariables]
[fission_rate]
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = T
diffusion_coefficient = 1
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
value = 1
fission_rate_function = Fiss_func
execute_on = 'initial timestep_begin'
[]
[]
[BCs]
[bottom_T]
type = FunctionDirichletBC
variable = T
function = Temp_func
boundary = 1
[]
[]
[Burnup]
[burnup]
block = 2
rod_ave_lin_pow = 1
axial_power_profile = 1
num_radial = 12
num_axial = 9
a_upper = 0.01496
a_lower = 0.00226
fuel_inner_radius = 0.
fuel_outer_radius = 0.005305
fuel_volume_ratio = 1.
order = CONSTANT
family = MONOMIAL
density = 10000
[]
[]
[Materials]
[fission_gas_behavior]
type = U3Si2Sifgrs
skip_bdr_model = true
temperature = T
burnup_function = burnup
ig_diff_algorithm = POLYPOLE2
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
l_tol = 1e-4
nl_abs_tol = 1e-5
nl_rel_tol = 1e-5
start_time = 0.0
num_steps = 50
dt = 1e6
[]
[Postprocessors]
[fis_gas_generated]
type = ElementIntegralFisGasGeneratedSifgrs
block = 1
[]
[fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = 1
[]
[fgr_percent]
type = FGRPercent
fission_gas_released = fis_gas_released
fission_gas_generated = fis_gas_generated
[]
[]
[Outputs]
exodus = true
[]
(test/tests/sifgrs/uo2/scidac_resolution.i)
# @Requirement F2.40
# This test is for evaluating the mechanistic model for the intra-granular fission gas behavior,
# considering the re-solution parameter as proposed by Setyawan et al. 2018 JoAP
#
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 3
xmin = 0
xmax = 0.01
ymin = 0
ymax = 0.01
zmin = 0
zmax = 0.01
nx = 1
ny = 1
nz = 1
[]
[]
[Functions]
[Temp_func]
type = ParsedFunction
expression = '1273'
[]
[Fiss_func]
type = ParsedFunction
expression = '1.e19'
[]
[]
[Variables]
[T]
initial_condition = 1273
[]
[]
[AuxVariables]
[fission_rate]
[]
[fract_FGR_analytical]
order = CONSTANT
family = MONOMIAL
[]
[rad_bbl_grn]
order = CONSTANT
family = MONOMIAL
[]
[bbl_grn_3]
order = CONSTANT
family = MONOMIAL
[]
[gas_bbl_grn]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = T
diffusion_coefficient = 1
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
value = 1
fission_rate_function = Fiss_func
execute_on = 'initial timestep_begin'
[]
[bbl_cnc]
type = MaterialRealAux
variable = bbl_grn_3
property = bubble_concentration_intra
execute_on = 'TIMESTEP_END'
[]
[rad_bbl]
type = MaterialRealAux
variable = rad_bbl_grn
property = bubble_radius_intra
execute_on = 'TIMESTEP_END'
[]
[gascnc_bbl]
type = MaterialRealAux
variable = gas_bbl_grn
property = gas_concentration_bubble_intra
execute_on = 'TIMESTEP_END'
[]
[]
[BCs]
[bottom_T]
type = FunctionDirichletBC
variable = T
function = Temp_func
boundary = bottom
[]
[]
[Materials]
[fission_gas_behavior]
type = UO2Sifgrs
skip_bdr_model = true
temperature = T
fission_rate = fission_rate
grain_radius_const = 5.e-6
ig_bubble_model = NUCLEATION_RESOLUTION
res_param_option = HETEROGENEOUS_SETYAWAN
initial_porosity = 0.0
[]
[]
[Executioner]
type = Transient
l_tol = 1e-4
nl_abs_tol = 1e-5
nl_rel_tol = 1e-5
start_time = 0.0
num_steps = 10
dt = 19800.
[]
[Postprocessors]
[fis_gas_generated]
type = ElementIntegralFisGasGeneratedSifgrs
[]
[fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
[]
[bubble_density]
type = ElementAverageValue
variable = bbl_grn_3
[]
[bubble_radius]
type = ElementAverageValue
variable = rad_bbl_grn
[]
[]
[Outputs]
exodus = true
[]
(test/tests/solid_mechanics/uo2_creep/uo2_creep_rz.i)
# Tests material model CreepUO2RZ which computes the combined thermal
# and irradiation creep for UO2 fuel for an axisymmetric geometry.
#
# The test is a single unit element with an initial inner radius of 1. The element
# is pulled along the symmetric axis (y) with a pressure of 5.0e7 Pa. The
# temperature and fission rate are uniform and constant at 1500 K and 2e18
# fissios/m**3-s. The total time is 1e5, which is solved in 10 equal steps of 1e4.
# The small-strain anaytical solution for the total axial displacement (elastic + thermal
# creep + irradiation creep) is 4.12825e-4. BISON also gets 4.12825e-4 since, for this
# test, small-strain mechanics was used.
#
[GlobalParams]
density = 10431.0
displacements = 'disp_x disp_y'
[]
[Mesh]
coord_type = RZ
use_displaced_mesh = false
[mesh]
type = FileMeshGenerator
file = 1x1_rz.e
[]
[]
[Variables]
[disp_x]
order = FIRST
family = LAGRANGE
[]
[disp_y]
order = FIRST
family = LAGRANGE
[]
[temp]
order = FIRST
family = LAGRANGE
initial_condition = 1500.0
[]
[]
[AuxVariables]
[fission_rate]
order = FIRST
family = LAGRANGE
[]
[stress_yy]
order = CONSTANT
family = MONOMIAL
[]
[strain_xx]
order = CONSTANT
family = MONOMIAL
[]
[strain_yy]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[top_pull]
type = PiecewiseLinear
x = '0 1'
y = '1 1'
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
strain = small
incremental = true
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temp
[]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temp
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
value = 2.0e18
[]
[stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[]
[strain_xx]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_xx
index_i = 0
index_j = 0
[]
[strain_yy]
type = RankTwoAux
rank_two_tensor = total_strain
variable = strain_yy
index_i = 1
index_j = 1
[]
[]
[BCs]
[Pressure]
[u_top_pull]
boundary = 4
factor = -0.5e8
function = top_pull
[]
[]
[u_bottom_fix]
type = DirichletBC
variable = disp_y
boundary = 3
value = 0.0
[]
[temp_fix]
type = DirichletBC
variable = temp
boundary = 3
value = 1500.0
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = 1
youngs_modulus = 2e11
poissons_ratio = 0.3
[]
[creep]
type = UO2CreepUpdate
block = 1
temperature = temp
fission_rate = fission_rate
initial_grain_radius = 10.0e-6
oxygen_to_metal_ratio = 2.0
a7 = 3.72264e-35
q3 = 2617
[]
[radial_return_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'creep'
block = 1
[]
[thermal]
type = HeatConductionMaterial
block = 1
specific_heat = 1.0
thermal_conductivity = 100.
[]
[density]
type = StrainAdjustedDensity
block = 1
strain_free_density = 10431.0
[]
[]
[Executioner]
type = Transient
solve_type = PJFNK
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart'
petsc_options_value = '101'
line_search = 'none'
l_max_its = 100
nl_max_its = 100
nl_rel_tol = 1e-8
nl_abs_tol = 1e-10
l_tol = 1e-5
start_time = 0.0
num_steps = 10
dt = 10000
[]
[Outputs]
exodus = true
[]
(test/tests/solid_mechanics/uo2_hotpressing/creep_plasticity.i)
#===========================================================================================
# This case is prepared for testing combined creep and plasticity for UO2.
#
# The test is a single element with an initial inner radius of 1, outer radius of 2,
# and a height of 1 under RZ coordinate system.
#
# Input condition
# ===============
#
# Fission density = 2e18 fissios/m**3-s
# Const. temperature = 1500 K
#
# Material property
# =================
# Fuel density = 95% TD
# Fuel grain radius = 10 micron
#
# B.C.
# ====
# Top surface of the element is pulled.
# Roller at the bottom with zero axial displacement.
#
#
# Results:
#
#
# Analytical BISON
# -------------------------------------------------
# Creep strain 5.67e-4 5.666737e-4
# Elastic strain 5.0e-4 5.000000e-4
# Plastic strain 4.43e-3 4.433326e-4
#
#
#============================================================================================
[GlobalParams]
density = 10431.0
displacements = 'disp_r disp_z'
[]
[Mesh]
coord_type = RZ
use_displaced_mesh = false
[mesh]
type = FileMeshGenerator
file = 1x1_rz_rev1.e
[]
[]
[Variables]
[disp_r]
order = FIRST
family = LAGRANGE
[]
[disp_z]
order = FIRST
family = LAGRANGE
[]
[temp]
order = FIRST
family = LAGRANGE
initial_condition = 1500.0
[]
[]
[AuxVariables]
[fission_rate]
order = FIRST
family = LAGRANGE
[]
[stress_yy]
order = CONSTANT
family = MONOMIAL
[]
[yield_stress]
order = CONSTANT
family = MONOMIAL
[]
[plastic_strain_xx]
order = CONSTANT
family = MONOMIAL
[]
[plastic_strain_yy]
order = CONSTANT
family = MONOMIAL
[]
[plastic_strain_zz]
order = CONSTANT
family = MONOMIAL
[]
[plastic_strain_xy]
order = CONSTANT
family = MONOMIAL
[]
[plastic_strain_yz]
order = CONSTANT
family = MONOMIAL
[]
[plastic_strain_zx]
order = CONSTANT
family = MONOMIAL
[]
[creep_strain_yy]
order = CONSTANT
family = MONOMIAL
[]
[elastic_strain_yy]
order = CONSTANT
family = MONOMIAL
[]
[total_strain_yy]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[top_pull]
type = PiecewiseLinear
x = '0 100000'
y = '0.5e-3 5.5e-3'
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
incremental = true
strain = small
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temp
[]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temp
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
value = 2.0e18
[]
[stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[]
[yield_stress]
type = MaterialRealAux
variable = yield_stress
property = yield_stress
[]
[plastic_strain_xx]
type = RankTwoAux
variable = plastic_strain_xx
rank_two_tensor = plastic_strain
index_i = 0
index_j = 0
[]
[plastic_strain_yy]
type = RankTwoAux
variable = plastic_strain_yy
rank_two_tensor = plastic_strain
index_i = 1
index_j = 1
[]
[plastic_strain_zz]
type = RankTwoAux
variable = plastic_strain_zz
rank_two_tensor = plastic_strain
index_i = 2
index_j = 2
[]
[plastic_strain_xy]
type = RankTwoAux
variable = plastic_strain_xy
rank_two_tensor = plastic_strain
index_i = 0
index_j = 1
[]
[plastic_strain_yz]
type = RankTwoAux
variable = plastic_strain_yz
rank_two_tensor = plastic_strain
index_i = 1
index_j = 2
[]
[plastic_strain_zx]
type = RankTwoAux
variable = plastic_strain_zx
rank_two_tensor = plastic_strain
index_i = 2
index_j = 0
[]
[creep_strain_yy]
type = RankTwoAux
variable = creep_strain_yy
rank_two_tensor = creep_strain
index_i = 1
index_j = 1
[]
[elastic_strain_yy]
type = RankTwoAux
variable = elastic_strain_yy
rank_two_tensor = elastic_strain
index_i = 1
index_j = 1
[]
[total_strain_yy]
type = RankTwoAux
variable = total_strain_yy
rank_two_tensor = total_strain
index_i = 1
index_j = 1
[]
[]
[BCs]
[u_top_pull]
type = FunctionDirichletBC
variable = disp_z
boundary = '2 3'
function = top_pull
[]
[u_bottom_fix]
type = DirichletBC
variable = disp_z
boundary = '1 4'
value = 0.0
[]
[temp_fix]
type = DirichletBC
variable = temp
boundary = '1 2 3 4'
value = 1500.0
[]
[]
[Materials]
[plasticity]
type = UO2HotPressingPlasticityUpdate
block = 1
input_yield_stress = 100e6
input_hardening_modulus = 0
model_hotpressing = false
[]
[creep]
type = UO2CreepUpdate
block = 1
temperature = temp
fission_rate = fission_rate
initial_grain_radius = 10.0e-6
oxygen_to_metal_ratio = 2.0
a7 = 3.72264e-35
q3 = 2617
[]
[radial_return_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'creep plasticity'
block = 1
relative_tolerance = 1e-7
absolute_tolerance = 1e-7
[]
[elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = 1
youngs_modulus = 2.0e11
poissons_ratio = 0.3
[]
[thermal]
type = HeatConductionMaterial
block = 1
specific_heat = 1.0
thermal_conductivity = 100.
[]
[density]
type = StrainAdjustedDensity
block = 1
strain_free_density = 6550
[]
[]
[Postprocessors]
[elem_yield_stress]
type = ElementalVariableValue
variable = yield_stress
elementid = 0
[]
[elem_stress_yy]
type = ElementalVariableValue
variable = stress_yy
elementid = 0
[]
[elem_plastic_strain_xx]
type = ElementalVariableValue
variable = plastic_strain_xx
elementid = 0
[]
[elem_plastic_strain_yy]
type = ElementalVariableValue
variable = plastic_strain_yy
elementid = 0
[]
[elem_creep_strain_yy]
type = ElementalVariableValue
variable = creep_strain_yy
elementid = 0
[]
[elem_total_strain_yy]
type = ElementalVariableValue
variable = total_strain_yy
elementid = 0
[]
[elem_elastic_strain_yy]
type = ElementalVariableValue
variable = elastic_strain_yy
elementid = 0
[]
[elem_plastic_strain_zz]
type = ElementalVariableValue
variable = plastic_strain_zz
elementid = 0
[]
[]
[Executioner]
type = Transient
solve_type = PJFNK
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart'
petsc_options_value = '101'
line_search = 'none'
l_max_its = 100
nl_max_its = 20
nl_rel_tol = 1e-16
nl_abs_tol = 1e-5
l_tol = 1e-5
start_time = 0.0
num_steps = 10
dtmin = 10000
dt = 10000
[]
[Outputs]
csv = true
[out]
type = Exodus
[]
[]
(test/tests/sifgrs/uo2/ad_polypole2.i)
# @Requirement F2.40
# This test is for evaluating the PolyPole-2 algorithm (for the intra-granular diffusion calculation)
# in the Sifgrs fission gas behavior model.
#
[Mesh]
[mesh]
type = FileMeshGenerator
file = 1hex8_10mm_cube.e
[]
[]
[Functions]
[Temp_func]
type = ParsedFunction
expression = '1700'
[]
[Fiss_func]
type = ParsedFunction
expression = '2.5e19'
[]
[]
[Variables]
[T]
order = FIRST
family = LAGRANGE
initial_condition = 1700
[]
[]
[AuxVariables]
[fission_rate]
order = FIRST
family = LAGRANGE
[]
[]
[Kernels]
[heat]
type = ADHeatConduction
variable = T
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
value = 1
fission_rate_function = Fiss_func
execute_on = 'initial timestep_begin'
[]
[]
[BCs]
[bottom_T]
type = ADFunctionDirichletBC
variable = T
function = Temp_func
boundary = 1
[]
[]
[Materials]
[UO2]
type = ADHeatConductionMaterial
block = 1
thermal_conductivity = 1.0
specific_heat = 1.0
[]
[fission_gas_behavior]
type = ADUO2Sifgrs
block = 1
skip_bdr_model = true
temperature = T
fission_rate = fission_rate
ig_diff_algorithm = POLYPOLE2
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
l_tol = 1e-4
nl_abs_tol = 1e-5
nl_rel_tol = 1e-5
start_time = 0.0
num_steps = 50
dt = 1e6
[]
[Postprocessors]
[fis_gas_generated]
type = ADElementIntegralFisGasGeneratedSifgrs
block = 1
[]
[fis_gas_released]
type = ADElementIntegralFisGasReleasedSifgrs
block = 1
[]
[fgr_percent]
type = FGRPercent
fission_gas_released = fis_gas_released
fission_gas_generated = fis_gas_generated
[]
[]
[Outputs]
[out]
type = Exodus
[]
[]
(test/tests/fgr_fraction/fgr_fraction_test_3D.i)
# This test is for verificication of BurnupMetalAux and FgrFraction in 3D
#
# BurnupMetalAux calculates the burnup in FIMA from the fission rate, and fuel
# constituents:
#
# atomic_weight = (1-X_Pu-X_Zr)*A_U + X_Pu*A_Pu + X_Zr*A_Zr;
# atoms_heavy_metal = density / atomic_weight * (1.0 - X_Zr) * avo;
# Bu = fission_rate * time / atoms_heavy_metal;
#
# For the current test, the burnup at 1e7 seconds should be 1.468380e-02
#
#
# FgrFraction calculates the molar fission gas produced as a function of time
# and fission rate. In addition, FgrFraction calculates the fission gas release
# as a function of burnup.
#
# For the current test, the produced fission gas is:
#
# fg_prod = yield / avo * time * fission_rate * volume = 2.504923E+02
#
# Also, gas release should occur above the threshold of 0.01 burup, and should
# be 80% of gas produced = 2.003939E+02
initial_fuel_density = 15000
[Mesh]
[mesh]
type = GeneratedMeshGenerator
dim = 3
[]
[]
[Variables]
[temp]
[]
[]
[AuxVariables]
[fission_rate]
[]
[burnup]
[]
[]
[Functions]
[constant_fission_rate]
type = ParsedFunction
expression = 5.0e19
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temp
[]
[]
[AuxKernels]
[fission_rate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
fission_rate_function = constant_fission_rate
execute_on = initial
[]
[burnup]
type = BurnupMetalAux
variable = burnup
density = ${initial_fuel_density}
fission_rate = fission_rate
X_Pu = 0.10
X_Zr = 0.225
execute_on = 'initial timestep_begin'
[]
[]
[BCs]
[fix_surf_temp]
type = DirichletBC
variable = temp
boundary = left
value = 298.0
[]
[]
[Materials]
[thermal]
type = HeatConductionMaterial
thermal_conductivity = 1.0
specific_heat = 1.0
[]
[density]
type = ParsedMaterial
property_name = density
expression = ${initial_fuel_density}
[]
[fission_gas_release]
type = FgrFraction
fission_rate = fission_rate
burnup = burnup
fraction_fission_gas_release = 0.8
burnup_fgr = 0.01
[]
[]
[Executioner]
type = Transient
nl_abs_tol = 1e-10
num_steps = 5
dt = 2e6
[]
[Postprocessors]
[fission_rate]
type = ElementAverageValue
variable = fission_rate
execute_on = 'initial timestep_end'
[]
[burnup]
type = ElementAverageValue
variable = burnup
[]
[fis_gas_produced]
type = ElementIntegralMaterialProperty
mat_prop = fis_gas_prod
[]
[fis_gas_released]
type = ElementIntegralMaterialProperty
mat_prop = fis_gas_rel
[]
[volume]
type = InternalVolume
boundary = 'left right top bottom front back'
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
exodus = true
[]
(test/tests/solid_mechanics/mox_creep/fastmox_creep_routbort.i)
#This tests the creep model for fast mox. The model comes from J.L. Routbort, "Compressive Creep of Mixed Oxide Fuel Pellets,"JNM, Vol. 44, pp. 247-259, (1972).
#The model is also referenced in the MIT doctoral thesis by Aydin Karahan "Modeling of Thermo-Mechanical and Irradiation Behavior of Metallic and Oxide Fuels for Sodium Fast Reactors", MIT, June 2009.
#
#steady-state thermal creep rate (1/hr) = 3.23e9/grain_size^2 * sigma * exp(-92500/RT) + 3.24e6 * sigma^4.4 * exp(-136800/RT)
#
#steady-state irradiation creep rate (1/hr) = 1.78e-20 * sigma * fission_rate
#
# At a stress of 10 MPa, T = 1973.15, and fission rate = 2e19, the thermal + irradiation secondary (steady-state) creep rate is 5.10521e-6 (1/s) per hand calculation. BISON returns 5.105199e-6. This regression test holds fission rate constant at 2e19, stress constant at 10 MPa, and ramps temperature from 1573.15 to 1973.15 K, which is the temperature range used for the development of this emperical model.
#
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
volumetric_locking_correction = true
[]
[Mesh]
[mesh]
type = FileMeshGenerator
file = cube_mox.e
[]
[]
[Functions]
[Temp_func]
type = PiecewiseLinear
x = '0 100'
y = '1573.15 1973.15'
[]
[Fiss_func]
type = ParsedFunction
expression = 2e19
[]
[pressure]
type = PiecewiseLinear
x = '0 100'
y = '1e7 1e7'
[]
[]
[Variables]
[T]
order = FIRST
family = LAGRANGE
initial_condition = 1573.15
[]
[]
[Physics]
[SolidMechanics]
[QuasiStatic]
[all]
strain = FINITE
incremental = true
add_variables = true
generate_output = 'vonmises_stress'
[]
[]
[]
[]
[AuxVariables]
[fission_rate]
order = FIRST
family = LAGRANGE
[]
[creep_rate_aux]
order = CONSTANT
family = MONOMIAL
[]
[effective_creep_strain]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = T
[]
[heat_ie]
type = HeatConductionTimeDerivative
variable = T
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
fission_rate_function = Fiss_func
execute_on = 'initial timestep_begin'
[]
[creep_rate_aux]
type = MaterialRealAux
variable = creep_rate_aux
property = creep_rate
execute_on = timestep_end
[]
[effective_creep_strain]
type = MaterialRealAux
variable = effective_creep_strain
property = effective_creep_strain
execute_on = timestep_end
[]
[]
[BCs]
[no_x]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0.0
[]
[no_y]
type = DirichletBC
variable = disp_y
boundary = 2
value = 0.0
[]
[no_z]
type = DirichletBC
variable = disp_z
boundary = 3
value = 0.0
[]
[u_top_pull]
type = Pressure
variable = disp_y
boundary = 6
function = pressure
[]
[bottom_T]
type = FunctionDirichletBC
variable = T
function = Temp_func
boundary = 1
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 2.0e11
poissons_ratio = 0.3
[]
[radial_return_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'fastmox_creep'
[]
[fastmox_creep]
type = FastMOXCreepUpdate
fission_rate = fission_rate
temperature = T
[]
[thermalprop]
type = HeatConductionMaterial
thermal_conductivity = 1.0
specific_heat = 1.0
[]
[density]
type = StrainAdjustedDensity
strain_free_density = 1.0
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
l_tol = 1e-5
nl_abs_tol = 1e-5
nl_rel_tol = 1e-6
start_time = 0.0
end_time = 140
dt = 20
[]
[Postprocessors]
[fission_rate_PP]
type = FunctionValuePostprocessor
function = Fiss_func
execute_on = 'initial timestep_end'
[]
[pressure_PP]
type = FunctionValuePostprocessor
function = pressure
execute_on = 'initial timestep_end'
[]
[vonmises_stress_PP]
type = ElementalVariableValue
elementid = 0
variable = vonmises_stress
execute_on = 'initial timestep_end'
[]
[effective_creep_strain_PP]
type = ElementalVariableValue
elementid = 0
variable = effective_creep_strain
execute_on = 'initial timestep_end'
[]
[creep_strain_rate_PP]
type = ElementalVariableValue
elementid = 0
variable = creep_rate_aux
execute_on = 'initial timestep_end'
[]
[Temperature_PP]
type = ElementalVariableValue
elementid = 0
variable = T
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
[out]
type = Exodus
[]
[]
(test/tests/sifgrs/uo2/transient_model.i)
# This is a test for the transient capability included in the Sifgrs fission gas behavior model.
# This transient treatment accounts for the rapid gas release from the grain boundaries due
# to micro-cracking during temperature transients. The effect of micro-cracking is interpreted
# as a reduction of the gas storing capacity of grain boundaries during transients,
# effectively leading to an increase of FGR and to a corresponding decrease of fission gas swelling.
# The fraction of cracked grain surface is described by a temperature-dependent sigmoid function,
# which reproduces the experimentally observed kinetics of gas release during both heating and
# cooling transients.
# The transient is composed of 5 phases:
# 1. build up of fission gases and burnup accummulation at constant temperature
# 2. heat up representative of a transient (micro-cracking during heating)
# 3. constant high temperature (healing)
# 4. cool down representative of a transient (micro-cracking during cooling)
# 5. constant low temperature (healing)
# The calculated FGR rapidly increases during the transients, and the fission gas swelling decreases correspondingly.
# This test can be adapted using transient_option = MICROCRACKING_BURNUP in UO2Sifgrs.
# The resulting test leverages the option for considering a burnup-dependent central temperature, which accounts
# for the gradual weakening of grain boundaries due to irradiation-created defects.
end_buildup_time = 1e6 # s
heating_duration = 500 # s
stable_duration = 2e5 # s
cooling_duration = 500 # s
healing_duration = 3e5 # s
end_heating_time = ${fparse end_buildup_time + heating_duration} # s
end_stable_time = ${fparse end_heating_time + stable_duration} # s
end_cooling_time = ${fparse end_stable_time + cooling_duration} # s
end_healing_time = ${fparse end_cooling_time + healing_duration} # s
temperature_low = 1000. # K
temperature_high = 2300. # K
dt_large = 1e4 # s
dt_small = 1e2 # s
[GlobalParams]
displacements = 'disp_x'
[]
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 1
[]
[]
[Functions]
[temperature_function]
type = PiecewiseLinear
x = '0. ${end_buildup_time} ${end_heating_time} ${end_stable_time} ${end_cooling_time} ${end_healing_time}'
y = '${temperature_low} ${temperature_low} ${temperature_high} ${temperature_high} ${temperature_low} ${temperature_low}'
[]
[fission_rate_function]
type = ParsedFunction
expression = '1e21'
[]
[]
[Variables]
[temperature]
initial_condition = 1000.
[]
[disp_x]
[]
[]
[AuxVariables]
[fission_rate]
[]
[burnup]
[]
[deltav_v0_bubble_GB]
order = CONSTANT
family = MONOMIAL
[]
[GBCoverage]
order = CONSTANT
family = MONOMIAL
[]
[sat_coverage]
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 = temperature
diffusion_coefficient = 1
[]
[]
[AuxKernels]
[fission_rate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
value = 1
fission_rate_function = fission_rate_function
execute_on = 'initial timestep_begin'
[]
[burnup]
type = BurnupAux
variable = burnup
fission_rate = fission_rate
density = 10417.
execute_on = 'initial timestep_begin'
[]
[]
[BCs]
[bottom_T]
type = FunctionDirichletBC
variable = temperature
function = temperature_function
boundary = 1
preset = false
[]
[x]
type = DirichletBC
variable = disp_x
boundary = 'left right'
value = 0
[]
[]
[Materials]
[fission_gas_behavior]
type = UO2Sifgrs
temperature = temperature
fission_rate = fission_rate
burnup = burnup
effdiffcoeff_scalef = 1e2 # artificially increases intragranular diffusion to increase GB content
transient_option = MICROCRACKING
output_properties = 'bubble_concentration_intra bubble_radius_intra gas_concentration_bubble_intra gas_concentraion_matrix_intra gas_concentration_GB_bubble_volume deltav_v0_intra_total'
outputs = 'all'
[]
[density]
type = StrainAdjustedDensity
strain_free_density = 10417.
[]
[fuel_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1e6
poissons_ratio = 0
[]
[fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
[]
[fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
temperature = temperature
burnup = burnup
initial_fuel_density = 10417.0
eigenstrain_name = fuel_volumetric_strain
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
l_tol = 1e-12
nl_abs_tol = 1e-40
nl_rel_tol = 1e-17
start_time = 0.
end_time = ${end_healing_time}
dtmax = 1e5
dtmin = 1
# direct control of time steps vs time (optional)
[TimeStepper]
type = IterationAdaptiveDT
dt = 1e5
optimal_iterations = 10
iteration_window = 4
growth_factor = 1
linear_iteration_ratio = 100
time_t = '0 ${end_buildup_time} ${end_heating_time} ${end_stable_time} ${end_cooling_time}'
time_dt = '${dt_large} ${dt_small} ${fparse 10*dt_small} ${dt_small} ${fparse 20*dt_small}'
[]
[]
[Postprocessors]
[fis_gas_generated]
type = ElementIntegralMaterialProperty
mat_prop = gas_concentration_generated_total
[]
[fis_gas_released]
type = ElementIntegralMaterialProperty
mat_prop = gas_concentration_release_total
[]
[fgr_percent]
type = FGRPercent
fission_gas_released = fis_gas_released
fission_gas_generated = fis_gas_generated
[]
[intrag_swelling]
type = ElementIntegralMaterialProperty
mat_prop = deltav_v0_intra_total
[]
[gas_amount_bubble_intra]
type = ElementIntegralMaterialProperty
mat_prop = gas_concentration_bubble_intra
[]
[gas_amount_bubble_inter]
type = ElementIntegralMaterialProperty
mat_prop = gas_concentration_GB_bubble_volume
[]
[gas_amount_matrix_intra]
type = ElementIntegralMaterialProperty
mat_prop = gas_concentration_matrix_intra
[]
[gas_amount_material]
type = SumPostprocessor
values = 'gas_amount_matrix_intra gas_amount_bubble_intra gas_amount_bubble_inter'
[]
[bubble_amount_intra]
type = ElementIntegralMaterialProperty
mat_prop = bubble_concentration_intra
[]
[bubble_radius_intra_average]
type = ElementAverageMaterialProperty
mat_prop = bubble_radius_intra
[]
[bubble_amount_volume_inter]
type = ElementIntegralMaterialProperty
mat_prop = bubble_GB_volume_density
[]
[bubble_amount_surface_inter]
type = ElementIntegralMaterialProperty
mat_prop = bubble_GB_surface_density
[]
[bubble_radius_inter_average]
type = ElementAverageMaterialProperty
mat_prop = bubble_radius_GB
[]
[intergranular_bubble_fractional_coverage]
type = ElementIntegralMaterialProperty
mat_prop = GBCoverage
[]
[intergranular_bubble_fractional_coverage_saturation]
type = ElementIntegralMaterialProperty
mat_prop = sat_coverage
[]
[intergranular_swelling]
type = ElementIntegralMaterialProperty
mat_prop = deltav_v0_bubble_GB
[]
[burnup]
type = ElementAverageValue
variable = burnup
[]
[temperature]
type = ElementAverageValue
variable = temperature
[]
[fission_rate]
type = ElementAverageValue
variable = fission_rate
[]
[]
[Outputs]
csv = true
[]
(test/tests/sifgrs/uo2/ad_first_stage_restart2.i)
# This test is for evaluating the first stage (i.e., the intra-granular diffusion calculation) of the Sifgrs fission gas behavior model.
# The first stage is isolated by setting the fractional bubble coverage at grain boundary saturation to zero (saturation_coverage = 0). Under this condition (i.e. gas reaching the grain boundaries goes instantaneously to the plenum), the ratio of fission gas released to fission gas generated calculated by the model should compare very closely with the analytical expression for fractional fission gas release fraction from the grains published by Speight (Nuclear Science and Engineering 37, 180, 1969). The Speight equation for fission gas release fraction (released/produced) is
#
# parameters:
# n and no are summation integers
# a = grain radius in m
# pi = the number pi 3.14159...
# D = effective diffusion coefficient in m^2/s where D includes the effects of intragranular trapping and resolution (see White, JNM 118, 1, 1983, and the
# fgr_diffusion_coefficient_test in BISON for a description)
# t = time in seconds
#
# 6*a^2
# f = 1 - sum(n=1, to no) ---------------- * {1 - exp -[D*n^2*pi^2*t/a^2]}
# pi^4 * D*t*n^4
#
# For no = 1, D = 4.123e-19 m^2/s, a = 1e-5 m, t = 1e6 s, f = 0.596.
# For no = 50, and the same parameters defined above, f = 0.1388
#
# With the output from this test, if one calculates fission gas released / fission gas produced at
# t = 1.e+06, the result should be 0.1032, which compares well with the analytical solution from Speight.
#
# See also the sheet sifgrs_first_stage of the attached excel file (regression_tests_sifgrs.xlsx).
# Check of fission gas produced
# beta = rate of gas production per unit volume by fission
# beta * time * volume = gas produced
# The following parameters are used to calculate beta
#
# t = time in seconds = 5e7
# Avogadros number = 6.023e23 atoms/mol
# FY = fractional yield = fraction of fission gas atoms per fission = 0.3017 atoms/fission
# Y = yield = FY/Avogadros number = atoms/fission / atoms/mol to give mols/fission
# F = fission rate = fissions/m^3*s = 2.5e19
# beta = F*Y = fissions/m^3s * mols/fission = mols/m^3*s
# gas produced = beta * time * volume
# For this test problem, volume = (0.01m)^3 = 1e-6m^3 = volume of single finite element in this problem
#
# Y = 0.3017/6.023e23 = 5.0091e-25 mol/fission
# beta = 2.5e19*5.009e-25 = 1.25e-5 mol/m^3s
# gas produced = 1.25e-5*5e7*1e-6 = 6.26e-4 mols
#
[Mesh]
[mesh]
type = FileMeshGenerator
file = 1hex8_10mm_cube.e
[]
[]
[Functions]
[Temp_func]
type = ParsedFunction
expression = '1700'
[]
[Fiss_func]
type = ParsedFunction
expression = '2.5e19'
[]
[]
[Variables]
[T]
initial_condition = 1700
[]
[]
[AuxVariables]
[fission_rate]
[]
[fract_FGR_analytical]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[heat]
type = ADHeatConduction
variable = T
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
value = 1
fission_rate_function = Fiss_func
execute_on = timestep_begin
[]
[FRA]
type = ADMaterialRealAux
variable = fract_FGR_analytical
property = fract_FGR_analytical
[]
[]
[BCs]
[bottom_T]
type = ADFunctionDirichletBC
variable = T
function = Temp_func
boundary = 1
[]
[]
[Materials]
[UO2]
type = ADHeatConductionMaterial
block = 1
thermal_conductivity = 1.0
specific_heat = 1.0
[]
[fission_gas_behavior]
type = ADUO2Sifgrs
block = 1
saturation_coverage = 0
temperature = T
fission_rate = fission_rate
testing_output = true
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
l_tol = 1e-4
nl_abs_tol = 1e-5
nl_rel_tol = 1e-5
start_time = 28e6
num_steps = 50
dt = 1e6
[]
[Postprocessors]
[fis_gas_generated]
type = ADElementIntegralFisGasGeneratedSifgrs
block = 1
[]
[fis_gas_released]
type = ADElementIntegralFisGasReleasedSifgrs
block = 1
[]
[]
[Outputs]
file_base = ad_first_stage_out
[exodus]
type = Exodus
[]
[]
[Problem]
restart_file_base = ad_first_stage_restart1_checkpoint_cp/0028
# Initial condition for T overrides the restart
allow_initial_conditions_with_restart = true
[]
(assessment/MOX/JOYO/B14/PTM001/analysis/b14_ptm001_1D_sample2.i)
# Sample at +97mm from midplane
initial_fuel_density = 11057.75
[GlobalParams]
density = ${initial_fuel_density}
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
[]
[Mesh]
coord_type = RZ
[layered1D_mesh]
type = Layered1DMeshGenerator
fuel_height = 10e-3
pellet_outer_radius = 0.0027
pellet_bottom_coor = 0.0
pellet_mesh_density = customize
nx_p = 200
elem_type = EDGE2
slices_per_block = 1
include_plenum = false
include_clad = false
[]
[]
[UserObjects]
[pin_geometry]
type = Layered1DFuelPinGeometry
include_clad = false
mesh_generator = layered1D_mesh
[]
[]
[Variables]
[temp]
initial_condition = 295.0
[]
[pore]
initial_condition = 0.1372
scaling = 1e14
block = fuel
[]
[]
[AuxVariables]
[fission_rate]
[]
[burnup]
[]
[pore_speed_aux]
order = constant
family = monomial
[]
[]
[Functions]
[power_history]
type = PiecewiseLinear
x = '-200 0 72000 158040 160200 246600 248400 249000.012 251280'
y = '0 0 36350.63 36350.63 40436.15 40436.15 49235.72 49235.72 0'
[]
[f_temp_out_fuel]
type = PiecewiseLinear
x = '-200 0 251280'
y = '295 295 1178'
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temp
[]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temp
[]
[heat_source]
type = NeutronHeatSource
variable = temp
fission_rate = fission_rate
[]
[pore_continuity]
type = MOXPoreContinuity
variable = pore
temperature = temp
debug = 0
alpha = 0.25
beta = 1
heating_function = power_history
block = fuel
[]
[pore_diffusion]
type = MOXPoreDiffusion
variable = pore
debug = 0
nu = 1e-12
heating_function = power_history
v_upper = 1e-12
v_lower = 1e-20
block = fuel
[]
[poretimederivative]
type = CoefTimeDerivative
variable = pore
Coefficient = 1
block = fuel
[]
[]
[AuxKernels]
[pore_speed_aux]
type = MaterialRealAux
variable = pore_speed_aux
property = pore_velocity
block = fuel
execute_on = 'initial timestep_end'
[]
[fission_rate]
type = FissionRateGeneral
fission_rate_formulation = MOX
variable = fission_rate
block = fuel
initial_porosity = 0.1372
rod_ave_lin_pow = power_history
pellet_diameter = 0.0054
execute_on = timestep_begin
porosity = pore
energy_per_fission = 3.2e-11
[]
[burnup]
type = BurnupAux
block = fuel
fission_rate = fission_rate
variable = burnup
execute_on = timestep_begin
[]
[]
[BCs]
[temp_fuel_outside]
type = FunctionDirichletBC
variable = temp
function = f_temp_out_fuel
boundary = 10
[]
[]
[Materials]
[fuel_thermal]
type = MAMOXThermal
temperature = temp
porosity = pore
block = fuel
Am_content = 0.0237
oxy_to_metal_ratio = 1.982
[]
[fuel_density]
type = ParsedMaterial
block = fuel
property_name = density
expression = ${initial_fuel_density}
[]
[pore_velocity]
type = MOXPoreVelocity
temperature = temp
limit = 1e-3
scale_factor = 0.1
block = fuel
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Dampers]
[bound]
type = BoundingValueNodalDamper
max_value = 1
min_value = 0
variable = pore
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -sub_pc_type'
petsc_options_value = 'asm lu'
line_search = 'none'
l_max_its = 50
l_tol = 8e-3
nl_max_its = 50
nl_rel_tol = 1e-5
nl_abs_tol = 1e-5
start_time = -200
n_startup_steps = 1
end_time = 251280
dtmax = 10000
dtmin = 0.25
[TimeStepper]
type = IterationAdaptiveDT
dt = 1e1
optimal_iterations = 15
iteration_window = 2
linear_iteration_ratio = 100
growth_factor = 2
cutback_factor = .5
force_step_every_function_point = true
timestep_limiting_function = power_history
[]
[]
[Postprocessors]
[ave_temp_interior]
type = ElementAverageValue
variable = temp
execute_on = 'initial linear'
[]
[average_burnup]
type = ElementAverageValue
variable = burnup
[]
[ave_pore]
type = ElementAverageValue
block = fuel
variable = pore
[]
[max_pore]
type = NodalExtremeValue
block = fuel
value_type = max
variable = pore
[]
[min_pore]
type = NodalExtremeValue
block = fuel
value_type = min
variable = pore
[]
[max_pore_speed]
type = ElementExtremeValue
block = fuel
value_type = max
variable = pore_speed_aux
[]
[rod_total_power]
type = LayeredElementIntegralPowerPostprocessor
variable = temp
fission_rate = fission_rate
block = fuel
fuel_pin_geometry = pin_geometry
[]
[rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 10e-3 # rod height
[]
[]
[VectorPostprocessors]
[fuel_radial_temperature_Sample]
type = LineValueSampler
variable = temp
start_point = '0.0 0.005 0.0'
end_point = '0.0027 0.005 0.0'
num_points = 200
execute_on = final
sort_by = x
outputs = line_plot
[]
[radial_porosity_Sample]
type = LineValueSampler
variable = pore
start_point = '0.0 0.005 0.0'
end_point = '0.0027 0.005 0.0'
num_points = 200
execute_on = final
sort_by = x
outputs = line_plot
[]
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = true
color = true
csv = true
[console]
type = Console
max_rows = 25
[]
[line_plot]
type = CSV
execute_on = 'FINAL'
time_step_interval = 1
file_base = 1d
create_final_symlink = true
[]
[chkfile]
type = CSV
execute_on = FINAL
show = 'ave_temp_interior max_pore'
[]
[]
[Debug]
show_var_residual_norms = true
[]
(assessment/verification/thermal/2d_3d_thermal_mesh_study/analysis/linear/test_3d.i)
[GlobalParams]
order = FIRST
family = LAGRANGE
[]
[Mesh]
[mesh]
type = FileMeshGenerator
file = 'coarse_3d.e'
[]
[]
[Variables]
[temp]
[]
[]
[AuxVariables]
[fission_rate]
block = 'pellet_type_1'
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temp
[]
[heat_source]
type = NeutronHeatSource
variable = temp
block = 'pellet_type_1'
fission_rate = fission_rate
energy_per_fission = 3.28451e-11
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
block = 'pellet_type_1'
value = 1.21783766833e19 #fissions/m3s
[]
[]
[BCs]
[side_temp]
type = DirichletBC
variable = temp
boundary = 10
value = 500
[]
[ ]
[Materials]
[fuel_thermal]
type = HeatConductionMaterial
block = 'pellet_type_1'
thermal_conductivity = 5.2
[]
[]
[Executioner]
type = Steady
[]
[Postprocessors]
[center_temp]
type = PointValue
point = '0.0 0.003 0'
variable = temp
[]
[avg_temp]
type = ElementAverageValue
block = 'pellet_type_1'
variable = temp
[]
[rod_total_power]
type = ElementIntegralPower
variable = temp
block = 'pellet_type_1'
fission_rate = fission_rate
[]
[]
[Outputs]
perf_graph = true
csv = true
[]
(test/tests/uo2_transient_fission_gas_release/uo2_pulverization_phasefield2_transient_FGR.i)
# This file is to test the transient fission gas release model that accounts for
# the amount of fission gas released as a result of fuel pulverization. it is
# based on the input file called uo2_pulverization_mesoscale.i, which tests the
# pulverization criteria for UO2 fuel with evolve_bubble_pressure_hbs = true and
# using the 3D phase field criterion for pulverization.
# In the test 5 axial fuel slices are modeled without cladding with an outer fuel
# radius of 4.5 mm and slice height of 0.1 m. Ten radial finite elements are used.
# The burnup increases linearly from the fuel centerline to the fuel surface.
# Temperature is held at constant T = 673.15 K from t = 0 to t = 100, followed
# by a ramp in temperature from t = 100 to t = 125. Pulverization will occur
# during the ramp only, in the rim region where a significant amount of high burnup
# structure formation has begun. Local pulverization is tracked with the material
# property pulverized, which is 0 where pulverization has not occured and 1 where
# it has occurred. A material property uses the local pulverization to compute the
# amount of fission gas released as a results of fuel pulverization.
# This material property is output to the exodus file for this test.
# At each time step, the pulverized material property is computed, as well as
# the bubble radius and amount of fission gas in bubbles. These material property
# are then used to determine the amount of fission gas release due to pulverization.
# This amount predicted by the material block
# UO2PulverizationTransientFissionGasRelease is compared with analytical calculations
# made in the material block fission_gas_released_amount for verification.
# This input is the non-AD version.
hydrostatic_stress_constant = 1e7
[GlobalParams]
value_range_behavior = WARN
[]
[Mesh]
coord_type = RZ
[layered1D_mesh]
type = Layered1DMeshGenerator
elem_type = EDGE2
slices_per_block = 5
pellet_outer_radius = 4.5e-3
include_clad = false
fuel_height = 0.5
include_plenum = false
nx_p = 10
pellet_mesh_density = customize
pellet_bottom_coor = 0.0
[]
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[temperature]
order = FIRST
family = LAGRANGE
initial_condition = 600
[]
[]
[AuxVariables]
[burnup]
order = FIRST
family = LAGRANGE
[]
[fission_rate]
order = FIRST
family = LAGRANGE
[]
[pulverized_aux]
order = CONSTANT
family = MONOMIAL
[]
[layered_pulverized_fuel_volume]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[burnup_function]
type = ParsedFunction
expression = 'x*1.6*t/4.275'
[]
[temperature_function]
type = ParsedFunction
expression = 'if(t < 100, 900, 900+(t-100)*200)'
[]
[Fiss_func]
type = ParsedFunction
expression = '1.e19'
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temperature
[]
[]
[AuxKernels]
[burnup]
type = FunctionAux
variable = burnup
function = burnup_function
execute_on = 'initial linear'
[]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
value = 1
fission_rate_function = Fiss_func
execute_on = 'initial timestep_begin'
[]
[pulverized]
type = MaterialRealAux
block = fuel
variable = pulverized_aux
property = pulverized
execute_on = 'initial nonlinear'
[]
[layered_pulverized_fuel_volume]
type = SpatialUserObjectAux
variable = layered_pulverized_fuel_volume
execute_on = timestep_end
block = fuel
user_object = layered_pulverized_fuel_volume
[]
[]
[BCs]
[temperature]
type = FunctionDirichletBC
boundary = '10 12'
variable = temperature
function = temperature_function
[]
[]
[Materials]
[fission_gas_behavior]
type = UO2Sifgrs
block = fuel
temperature = temperature
fission_rate = fission_rate
burnup = burnup
skip_bdr_model = true
ig_bubble_model = MECHANISTIC_AAGESEN
hbs_model = true
hbs_material = hbs_formation
pulverization_model = true
pulverization_transient_fission_gas_release_material = UO2PulverizationTransientFissionGasRelease
ig_diff_algorithm = FORMAS
hydrostatic_stress_const = ${hydrostatic_stress_constant}
igdiffcoeff_scalef_HBS = 1e24 # Ensures that all the generated fission gases diffuse from the HBS matrix to the HBS bubbles
[]
[uo2pulverizationmesoscale]
type = UO2PulverizationMesoscale
block = fuel
temperature = temperature
output_properties = pulverized
pulverization_criterion_type = phase_field_3D
outputs = exodus
[]
[dummy_stress]
type = GenericConstantRankTwoTensor
tensor_name = 'stress'
tensor_values = '-${hydrostatic_stress_constant} -${hydrostatic_stress_constant} -${hydrostatic_stress_constant} 0 0 0'
[]
[fuel_thermal]
type = UO2Thermal
block = fuel
thermal_conductivity_model = STAICU
hbs_porosity_correction = KAMPF
model_hbs_formation = true
temperature = temperature
burnup_function = burnup_function
output_properties = hbs_porosity
outputs = exodus
[]
[hbs_formation]
type = HighBurnupStructureFormation
block = fuel
temperature = temperature
burnup = burnup
threshold_temperature = 1273.15 # default
output_properties = hbs_volume_fraction
outputs = exodus
[]
[fission_gas_density_bubble_HBS] # moles/m^3
type = ParsedMaterial
block = fuel
property_name = 'rho_FG_hbs'
material_property_names = 'atom_per_bubble_GB_HBS bubble_GB_volume_density_HBS'
constant_names = 'Na'
constant_expressions = '6.02214076e23'
expression = 'atom_per_bubble_GB_HBS * bubble_GB_volume_density_HBS / Na'
outputs = exodus
[]
[opened_pore_volume_fraction] # -
type = ParsedMaterial
block = fuel
property_name = 'f_V_pul'
material_property_names = 'hbs_porosity bubble_radius_GB_HBS'
constant_names = 'fragment_size c_p c_r c_0'
constant_expressions = '5e-5 0.03 5.17 0.02'
expression = 'c_p * hbs_porosity + c_r * bubble_radius_GB_HBS/fragment_size + c_0'
outputs = exodus
[]
[fission_gas_released_amount_analytical] # moles/m^3
type = ParsedMaterial
block = fuel
property_name = 'fis_gas_rel'
material_property_names = 'f_V_pul rho_FG_hbs pulverized'
expression = 'pulverized * f_V_pul * rho_FG_hbs'
outputs = exodus
[]
[UO2PulverizationTransientFissionGasRelease] # moles/m^3
type = UO2PulverizationTransientFissionGasRelease
block = fuel
outputs = exodus
[]
[]
[UserObjects]
[fuel_pin_geometry]
type = Layered1DFuelPinGeometry
include_clad = false
mesh_generator = layered1D_mesh
[]
[layered_pulverized_fuel_volume]
type = LayeredVariableIntegral
variable = pulverized_aux
fuel_pin_geometry = fuel_pin_geometry
direction = y
execute_on = 'initial timestep_end'
block = fuel
num_layers = 5
[]
[]
[Postprocessors]
[FG_amount_bubble_HBS]
type = LayeredElementIntegralMaterialProperty
mat_prop = rho_FG_hbs
block = fuel
fuel_pin_geometry = fuel_pin_geometry
[]
[FGR_analytical]
type = LayeredElementIntegralMaterialProperty
mat_prop = fis_gas_rel
block = fuel
fuel_pin_geometry = fuel_pin_geometry
[]
[FGR]
type = LayeredElementIntegralMaterialProperty
mat_prop = gas_concentration_release_pulverization
block = fuel
fuel_pin_geometry = fuel_pin_geometry
[]
[FGR_pps_diff_bison_analytical]
type = DifferencePostprocessor
value1 = FGR_analytical
value2 = FGR
[]
[FG_pps_diff_total_released]
type = DifferencePostprocessor
value1 = FG_amount_bubble_HBS
value2 = FGR
[]
[volume_domain]
type = LayeredElementIntegralMaterialProperty
mat_prop = 1
block = fuel
execute_on = TIMESTEP_END
fuel_pin_geometry = fuel_pin_geometry
[]
[hbs_volume]
type = LayeredElementIntegralMaterialProperty
mat_prop = hbs_volume_fraction
block = fuel
execute_on = TIMESTEP_END
fuel_pin_geometry = fuel_pin_geometry
[]
[hbs_volume_fraction]
type = ParsedPostprocessor
pp_names = 'hbs_volume volume_domain'
expression = 'hbs_volume / volume_domain'
execute_on = TIMESTEP_END
[]
[pulverized_volume]
type = LayeredElementIntegralMaterialProperty
mat_prop = pulverized
block = fuel
execute_on = TIMESTEP_END
fuel_pin_geometry = fuel_pin_geometry
[]
[]
[Executioner]
type = Transient
solve_type = PJFNK
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
line_search = 'none'
l_max_its = 100
nl_max_its = 100
nl_rel_tol = 1e-8
nl_abs_tol = 1e-10
l_tol = 1e-5
start_time = 0.0
num_steps = 125
dt = 1
[]
[Outputs]
exodus = true
csv = true
file_base = uo2_pulverization_phasefield2_transient_FGR_out
[]
(assessment/MOX/FFTF/FO-2/L09/analysis/fftf_fo2_L09_master.i)
initial_fuel_density = 10431.0
[GlobalParams]
density = ${initial_fuel_density}
initial_porosity = 0.2
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
volumetric_locking_correction = false
displacements = 'disp_x disp_y'
[]
[Problem]
type = ReferenceResidualProblem
extra_tag_vectors = 'ref'
reference_vector = 'ref'
[]
[Mesh]
coord_type = RZ
[smeared_pellet_mesh]
type = FuelPinMeshGenerator
pellet_quantity = 1
pellet_height = 0.9144
pellet_outer_radius = 2.794e-3
pellet_inner_radius = 6.985e-4
pellet_mesh_density = customize
clad_mesh_density = customize
clad_gap_width = 101.6e-6
clad_thickness = 0.5334e-3
clad_bot_gap_height = 1.0e-3
bottom_clad_height = 2.24e-3
top_clad_height = 2.24e-3
clad_top_gap_height = 1.057 #1.058 - 0.001 clad_bot_gap_height
elem_type = QUAD8
nx_c = 4
ny_c = 500
nx_p = 30
ny_p = 500
ny_cu = 3
ny_cl = 3
[]
patch_size = 50
patch_update_strategy = iteration
partitioner = centroid
centroid_partitioner_direction = y
[]
[UserObjects]
[pin_geometry]
type = FuelPinGeometry
[]
[]
[Variables]
[temp]
initial_condition = 295.0
scaling = 1
[]
[]
[AuxVariables]
[pore]
[]
[fission_rate]
block = pellet
[]
[burnup]
block = pellet
[]
[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
[]
[vcn_bdr_2]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[atm_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[vcn_bbl_bdr]
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
[]
[vol_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[GBCoverage]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[eff_diff_coeff]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[deltav_v0_bd]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[radial_strain]
order = CONSTANT
family = MONOMIAL
[]
[effective_creep_strain]
block = clad
order = CONSTANT
family = MONOMIAL
[]
[gap_cond]
order = CONSTANT
family = MONOMIAL
[]
[thermal_cond]
order = CONSTANT
family = MONOMIAL
[]
[coolant_htc]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[fraction_history]
type = PiecewiseLinear
x = '0 74993.42422 31858942.74'
y = '0 0.854004932 0.854004932'
[]
[fast_neutron_flux_function]
type = PiecewiseLinear
x = '0 74993.42422 31858942.74'
y = '0 2.99513e+19 2.99513e+19'
[]
[axial_power_profile]
type = PiecewiseBilinear
x = '0.0334152 0.09468 0.1559448 0.2162952 0.27756 0.3388248 0.3991752 0.46044 0.5217048 0.5820552 0.64332 0.7045848 0.7649352 0.8262 0.8874648'
y = '0 31858942.74'
z = '5493.43832 7183.727034 29157.48031 34228.34646 37608.92388 40144.35696 41412.07349 42257.21785 41834.64567 39721.78478 37608.92388 33805.77428 28312.33596 4225.721785 2535.433071 5041.338583 6592.519685 26757.87402 31411.41732 34513.77953 36840.55118 38003.93701 38779.52756 38391.73228 36452.75591 34513.77953 31023.62205 25982.28346 3877.952756 2326.771654'
scale_factor = 1
axis = 1
[]
[average_power_history]
type = PiecewiseLinear
x = '0 74993.42422 31858942.74'
y = '0 24264.05646 24264.05646'
[]
[pressure_ramp]
type = PiecewiseLinear
x = '-200 0'
y = '0 1'
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[pellets]
block = pellet
add_variables = true
strain = FINITE
eigenstrain_names = 'fuel_thermal_strain fuel_volumetric_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
extra_vector_tags = 'ref'
use_finite_deform_jacobian = true
[]
[clad]
block = clad
add_variables = true
strain = FINITE
eigenstrain_names = 'clad_thermal_eigenstrain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
extra_vector_tags = 'ref'
use_finite_deform_jacobian = true
[]
[]
[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
variable = temp
block = pellet
fission_rate = fission_rate
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[fission_rate]
type = FissionRateGeneral
fission_rate_formulation = MOX
variable = fission_rate
block = pellet
initial_porosity = 0.2
axial_power_profile = axial_power_profile
rod_ave_lin_pow = fraction_history
pellet_diameter = 0.005588
execute_on = timestep_begin
pellet_inner_diameter = 0.001397
porosity = pore
[]
[burnup]
type = BurnupAux
block = pellet
fission_rate = fission_rate
variable = burnup
execute_on = timestep_begin
[]
[fggen]
type = MaterialRealAux
variable = gas_gen_3
property = gas_concentration_generated_total
execute_on = timestep_end
[]
[fggrn]
type = MaterialRealAux
variable = gas_grn_3
property = gas_concentration_intra_total
execute_on = timestep_end
[]
[fgbdr]
type = MaterialRealAux
variable = gas_bdr_3
property = gas_concentration_GB_bubble_volume
execute_on = timestep_end
[]
[fgrel]
type = MaterialRealAux
variable = gas_rel_3
property = gas_concentration_release_total
execute_on = timestep_end
[]
[nbbl2]
type = MaterialRealAux
variable = bbl_bdr_2
property = bubble_GB_surface_density
execute_on = timestep_end
[]
[nvcn2]
type = MaterialRealAux
variable = vcn_bdr_2
property = vacancy_concentration_GB_surface
execute_on = timestep_end
[]
[atmbbl]
type = MaterialRealAux
variable = atm_bbl_bdr
property = atom_per_bubble_GB
execute_on = timestep_end
[]
[vcnbbl]
type = MaterialRealAux
variable = vcn_bbl_bdr
property = vacancy_per_bubble_GB
execute_on = timestep_end
[]
[prsbbl]
type = MaterialRealAux
variable = prs_bbl_bdr
property = bubble_GB_pressure
execute_on = timestep_end
[]
[prseqbbl]
type = MaterialRealAux
variable = prseq_bbl_bdr
property = bubble_GB_pressure_equilibrium
execute_on = timestep_end
[]
[radbbl]
type = MaterialRealAux
variable = rad_bbl_bdr
property = bubble_radius_GB
execute_on = timestep_end
[]
[volbbl]
type = MaterialRealAux
variable = vol_bbl_bdr
property = bubble_GB_volume
execute_on = timestep_end
[]
[frcvrg]
type = MaterialRealAux
variable = GBCoverage
property = GBCoverage
execute_on = timestep_end
[]
[diffc]
type = MaterialRealAux
variable = eff_diff_coeff
property = eff_diff_coeff
execute_on = timestep_end
[]
[dvv0bd]
type = MaterialRealAux
variable = deltav_v0_bd
property = deltav_v0_bubble_GB
execute_on = timestep_end
[]
[radial_strain]
type = RankTwoAux
rank_two_tensor = total_strain
variable = radial_strain
index_i = 0
index_j = 0
execute_on = timestep_end
[]
[effective_creep_strain]
type = MaterialRealAux
property = effective_creep_strain
variable = effective_creep_strain
block = clad
execute_on = timestep_end
[]
[conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
execute_on = 'linear'
[]
[conductivity]
type = MaterialRealAux
property = thermal_conductivity
variable = thermal_cond
block = pellet
execute_on = 'linear'
[]
[coolant_htc]
type = MaterialRealAux
property = coolant_channel_htc
variable = coolant_htc
boundary = 2
execute_on = 'linear'
[]
[]
[Contact]
[pellet_clad_mechanical]
primary = 5
secondary = 10
formulation = kinematic
model = frictionless
penalty = 1e7
[]
[]
[ThermalContact]
[thermal_contact]
type = GasGapHeatTransfer
variable = temp
primary = 5
secondary = 10
initial_moles = initial_moles
gas_released = fis_gas_released
contact_pressure = contact_pressure
quadrature = true
[]
[]
[BCs]
[no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[]
[no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 20
value = 0.0
[]
[Pressure]
[coolantPressure]
boundary = '1 2 3'
factor = 0.151e6
function = pressure_ramp
[]
[]
[PlenumPressure]
[plenumPressure]
boundary = 9
initial_pressure = 101325
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = ave_temp_interior
volume = gas_volume
material_input = fis_gas_released
output = plenum_pressure
[]
[]
[]
[CoolantChannel]
[convective_clad_surface]
boundary = '1 2 3'
variable = temp
inlet_temperature = 580
inlet_pressure = 0.151e6
inlet_massflux = 1687.43
rod_diameter = 6.858e-3
rod_pitch = 1.7e-2
linear_heat_rate = fraction_history
axial_power_profile = axial_power_profile
coolant_material = sodium
[]
[]
[Materials]
[fuel_thermal]
type = MAMOXThermal
block = pellet
temperature = temp
Am_content = 0.0
Np_content = 0.0
porosity = pore
output_properties = 'thermal_conductivity'
[]
[fuel_elasticity_tensor]
type = MAMOXElasticityTensor
block = pellet
[]
[elastic_stress]
type = ComputeFiniteStrainElasticStress
block = pellet
[]
[fuel_thermal_expansion]
type = MAMOXThermalExpansionEigenstrain
block = pellet
temperature = temp
stress_free_temperature = 295.0
oxygen_to_metal_ratio = 2.0
eigenstrain_name = fuel_thermal_strain
[]
[fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
block = pellet
temperature = temp
burnup = burnup
initial_fuel_density = 10431.0
eigenstrain_name = fuel_volumetric_strain
[]
[clad_thermal]
type = HT9Thermal
block = clad
temperature = temp
[]
[clad_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1.88e11
poissons_ratio = 0.236
block = clad
[]
[clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = nonlinear
inelastic_models = 'clad_ht9creep'
block = clad
[]
[clad_ht9creep]
type = HT9CreepUpdate
block = clad
temperature = temp
[]
[thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = clad
thermal_expansion_coeff = 1.2e-5
temperature = temp
stress_free_temperature = 295.0
eigenstrain_name = clad_thermal_eigenstrain
[]
[fission_gas_release]
type = UO2Sifgrs
block = pellet
temperature = temp
burnup = burnup
fission_rate = fission_rate
diff_coeff_option = TURNBULL_D1_4D2_4D3
grain_radius_const = 10e-06
bubble_gb_limit = 1.0e+11
[]
[clad_density]
type = StrainAdjustedDensity
block = clad
strain_free_density = 7874.0
[]
[fuel_density]
type = StrainAdjustedDensity
block = pellet
strain_free_density = ${initial_fuel_density}
[]
[fast_neutron_flux]
type = GenericFunctionMaterial
block = clad
prop_names = fast_neutron_flux
prop_values = fast_neutron_flux_function
[]
[]
[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'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
fixed_point_abs_tol = 1e-5
fixed_point_rel_tol = 1e-6
fixed_point_max_its = 1
l_max_its = 50
l_tol = 8e-3
nl_max_its = 15
nl_rel_tol = 1e-4
nl_abs_tol = 1e-4
start_time = -200
n_startup_steps = 1
end_time = 31858942.74
dtmax = 1e6
dtmin = 1
[TimeStepper]
type = IterationAdaptiveDT
dt = 2e2
optimal_iterations = 10
iteration_window = 2
linear_iteration_ratio = 100
growth_factor = 2
cutback_factor = .5
force_step_every_function_point = true
timestep_limiting_function = fraction_history
[]
[]
[Postprocessors]
[ave_temp_interior]
type = SideAverageValue
boundary = 9
variable = temp
execute_on = 'initial linear'
[]
[average_burnup]
type = ElementAverageValue
block = pellet
variable = burnup
[]
[clad_inner_vol]
type = InternalVolume
boundary = 7
execute_on = 'initial timestep_end'
[]
[pellet_volume]
type = InternalVolume
boundary = 8
execute_on = 'initial timestep_end'
[]
[avg_clad_temp]
type = SideAverageValue
boundary = 7
variable = temp
execute_on = 'initial timestep_end'
[]
[fis_gas_produced]
type = ElementIntegralFisGasGeneratedSifgrs
block = pellet
execute_on = 'linear'
[]
[fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = pellet
execute_on = 'linear'
[]
[fis_gas_released_percentage]
type = FGRPercent
fission_gas_generated = fis_gas_produced
fission_gas_released = fis_gas_released
execute_on = 'linear'
[]
[fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = pellet
execute_on = 'linear'
[]
[fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = pellet
execute_on = 'linear'
[]
[gas_volume]
type = InternalVolume
boundary = 9
execute_on = 'initial linear'
[]
[flux_from_fuel]
type = SideDiffusiveFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[]
[rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = pellet
[]
[rod_input_power]
type = FunctionValuePostprocessor
function = average_power_history
scale_factor = 0.9144 # rod height
[]
[average_vonMises_fuel]
type = ElementAverageValue
variable = vonmises_stress
block = pellet
[]
[average_vonMises_clad]
type = ElementAverageValue
variable = vonmises_stress
block = clad
[]
[average_strain_rr_fuel]
type = ElementAverageValue
variable = radial_strain
block = pellet
[]
[average_strain_rr_clad]
type = ElementAverageValue
variable = radial_strain
block = clad
[]
[average_creep_strain_clad]
type = ElementAverageValue
variable = effective_creep_strain
block = clad
[]
[ave_pore]
type = ElementAverageValue
variable = pore
[]
[max_pore]
type = NodalExtremeValue
value_type = max
variable = pore
[]
[min_pore]
type = NodalExtremeValue
value_type = min
variable = pore
[]
[]
[VectorPostprocessors]
[clad_surface]
type = LineValueSampler
variable = temp
start_point = '3.4e-3 3.24e-3 0.0'
end_point = '3.4e-3 1.97 0.0'
num_points = 200
sort_by = y
outputs = line_plot
[]
[fuel_radial_temperature_SampleH_master]
type = LineValueSampler
variable = temp
start_point = '6.985e-4 0.432 0.0'
end_point = '2.794e-3 0.432 0.0'
num_points = 200
execute_on = final
sort_by = x
outputs = line_plot
[]
[fuel_radial_temperature_SampleJ_master]
type = LineValueSampler
variable = temp
start_point = '6.985e-4 0.686 0.0'
end_point = '2.794e-3 0.686 0.0'
num_points = 200
execute_on = final
sort_by = x
outputs = line_plot
[]
[fuel_radial_temperature_SampleL_master]
type = LineValueSampler
variable = temp
start_point = '6.985e-4 0.913 0.0'
end_point = '2.794e-3 0.913 0.0'
num_points = 200
execute_on = final
sort_by = x
outputs = line_plot
[]
[radial_porosity_SampleH_master]
type = LineValueSampler
variable = pore
start_point = '6.985e-4 0.432 0.0'
end_point = '2.794e-3 0.432 0.0'
num_points = 200
execute_on = final
sort_by = x
outputs = line_plot
[]
[radial_porosity_SampleJ_master]
type = LineValueSampler
variable = pore
start_point = '6.985e-4 0.686 0.0'
end_point = '2.794e-3 0.686 0.0'
num_points = 200
execute_on = final
sort_by = x
outputs = line_plot
[]
[radial_porosity_SampleL_master]
type = LineValueSampler
variable = pore
start_point = '6.985e-4 0.913 0.0'
end_point = '2.794e-3 0.913 0.0'
num_points = 200
execute_on = final
sort_by = x
outputs = line_plot
[]
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = true
color = true
csv = true
[console]
type = Console
max_rows = 25
[]
[line_plot]
type = CSV
execute_on = 'FINAL'
time_step_interval = 1
file_base = 1d
create_final_symlink = true
[]
[chkfile]
type = CSV
execute_on = FINAL
show = 'ave_temp_interior fis_gas_released_percentage max_pore'
[]
[]
[MultiApps]
[sub]
type = TransientMultiApp
app_type = BisonApp
execute_on = TIMESTEP_END
sub_cycling = false
positions_file = positions.txt
input_files = 'fftf_fo2_L09_sub.i'
[]
[]
[Transfers]
[temp_to_sub]
type = MultiAppProjectionTransfer
to_multi_app = sub
source_variable = temp
variable = temp
check_multiapp_execute_on = true
execute_on = SAME_AS_MULTIAPP
[]
[pore_from_sub]
type = MultiAppGeometricInterpolationTransfer
from_multi_app = sub
source_variable = pore
variable = pore
execute_on = SAME_AS_MULTIAPP
[]
[]
[Debug]
show_var_residual_norms = true
[]
(test/tests/sifgrs/u3si2/polypole2.i)
# This input is used to test polypole2 with U3Si2Sifgrs
[Mesh]
[gen]
type = ExamplePatchMeshGenerator
dim = 3
[]
[]
[Functions]
[Temp_func]
type = ParsedFunction
expression = '1700'
[]
[Fiss_func]
type = ParsedFunction
expression = '2.5e19'
[]
[]
[Variables]
[T]
initial_condition = 1700
[]
[]
[AuxVariables]
[fission_rate]
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = T
diffusion_coefficient = 1
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
value = 1
fission_rate_function = Fiss_func
execute_on = 'initial timestep_begin'
[]
[]
[BCs]
[bottom_T]
type = FunctionDirichletBC
variable = T
function = Temp_func
boundary = 1
[]
[]
[Materials]
[fission_gas_behavior]
type = U3Si2Sifgrs
skip_bdr_model = true
temperature = T
fission_rate = fission_rate
ig_diff_algorithm = POLYPOLE2
ig_bubble_model = NUCLEATION_RESOLUTION
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
l_tol = 1e-4
nl_abs_tol = 1e-5
nl_rel_tol = 1e-5
start_time = 0.0
num_steps = 50
dt = 1e6
[]
[Postprocessors]
[fis_gas_generated]
type = ElementIntegralFisGasGeneratedSifgrs
block = 1
[]
[fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = 1
[]
[fgr_percent]
type = FGRPercent
fission_gas_released = fis_gas_released
fission_gas_generated = fis_gas_generated
[]
[]
[Outputs]
csv = true
exodus = true
[]
(assessment/MOX/JOYO/B14/PTM010/analysis/b14_ptm010_mechanics.i)
[GlobalParams]
order = FIRST
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
volumetric_locking_correction = false
displacements = 'disp_x disp_y'
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[Mesh]
[mesh]
type = FileMeshGenerator
file = half_symm_disk_tube_mech.e
[]
[]
[Variables]
[temp]
initial_condition = 600
[]
[pore]
initial_condition = 0.143
scaling = 1e14
block = 1
[]
[]
[AuxVariables]
[pore_speed_aux]
order = constant
family = monomial
[]
[fission_rate_aux_variable]
order = first
family = lagrange
[]
[fission_rate_aux_variable_mox]
order = first
family = lagrange
[]
[grad_temp_x]
order = CONSTANT
family = MONOMIAL
[]
[thermal_conductivity]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[power_history1]
type = PiecewiseLinear
data_file = power.csv
format = columns
[]
[f_temp_out_clad]
type = PiecewiseLinear
x = '0 100 249100 251380'
y = '600 882 882 600'
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[pellets]
block = 1
add_variables = true
strain = FINITE
eigenstrain_names = 'fuel_thermal_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
extra_vector_tags = 'ref'
use_finite_deform_jacobian = true
[]
[clad]
block = 2
add_variables = true
strain = FINITE
eigenstrain_names = 'clad_thermal_eigenstrain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
extra_vector_tags = 'ref'
use_finite_deform_jacobian = true
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temp
[]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temp
[]
[heat_source]
type = NeutronHeatSource
variable = temp
fission_rate = fission_rate_aux_variable_mox
[]
[pore_continuity]
type = MOXPoreContinuity
variable = pore
temperature = temp
debug = 0
alpha = 0.25
beta = 1
heating_function = power_history1
block = 1
[]
[pore_diffusion]
type = MOXPoreDiffusion
variable = pore
debug = 0
nu = 1e-10
heating_function = power_history1
v_upper = 1e-12
v_lower = 1e-20
block = 1
[]
[poretimederivative]
type = CoefTimeDerivative
variable = pore
Coefficient = 1
block = 1
[]
[]
[AuxKernels]
[pore_speed_aux]
type = MaterialRealAux
variable = pore_speed_aux
property = pore_velocity
execute_on = 'initial timestep_end'
block = 1
[]
[fission_rate_aux_kernel_mox]
type = FissionRateGeneral
fission_rate_formulation = MOX
variable = fission_rate_aux_variable_mox
porosity = pore
initial_porosity = 0.143
rod_ave_lin_pow = power_history1
pellet_diameter = 0.00535
pellet_inner_diameter = 0
energy_per_fission = 3.2e-11
execute_on = 'initial timestep_end'
value = 1.0
block = 1
[]
[grad_temp_x_aux]
type = VariableGradientComponent
variable = grad_temp_x
component = x
gradient_variable = temp
execute_on = 'initial timestep_end'
[]
[ThermalConductivityAux]
type = MaterialRealAux
execute_on = linear
property = thermal_conductivity
variable = thermal_conductivity
block = 1
[]
[]
[BCs]
[no_x_fuel]
type = DirichletBC
variable = disp_x
boundary = '4'
value = 0.0
[]
[no_x_clad]
type = DirichletBC
variable = disp_x
boundary = '5'
value = 0.0
[]
[no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = 7
value = 0.0
[]
[no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 6
value = 0.0
[]
[temp_clad_outside]
type = FunctionDirichletBC
variable = temp
function = f_temp_out_clad
boundary = '3'
[]
[]
[ThermalContact]
[thermal_contact]
type = GapHeatTransfer
variable = temp
primary = 1
secondary = 2
gap_conductivity = 0.2
gap_geometry_type = cylinder
cylinder_axis_point_1 = '0 0 0'
cylinder_axis_point_2 = '0 0 1'
normal_smoothing_distance = 0.01
tangential_tolerance = 0.01
quadrature = true
[]
[]
[Materials]
[fuel_thermal]
type = MAMOXThermal
temperature = temp
porosity = pore
block = 1
Am_content = 0.0237
oxy_to_metal_ratio = 2
[]
[fuel_density]
type = GenericConstantMaterial
prop_names = density
prop_values = 10964.6
block = 1
[]
[fuel_elasticity_tensor]
type = MAMOXElasticityTensor
block = 1
[]
[elastic_stress_fuel]
type = ComputeFiniteStrainElasticStress
block = 1
[]
[fuel_thermal_expansion]
type = MAMOXThermalExpansionEigenstrain
block = 1
temperature = temp
stress_free_temperature = 295.0
oxygen_to_metal_ratio = 2
eigenstrain_name = fuel_thermal_strain
[]
[pore_velocity]
type = MOXPoreVelocity
temperature = temp
limit = 1e-3
scale_factor = 0.1
block = 1
[]
[clad_thermal]
type = SS316Thermal
block = 2
temperature = temp
[]
[clad_elasticity_tensor]
type = SS316ElasticityTensor
block = 2
temperature = temp
elastic_constants_model = legacy_ifr
[]
[thermal_expansion]
type = SS316ThermalExpansionEigenstrain
block = 2
temperature = temp
stress_free_temperature = 295.0
eigenstrain_name = clad_thermal_eigenstrain
[]
[elastic_stress_clad]
type = ComputeFiniteStrainElasticStress
block = 2
[]
[clad_density]
type = GenericConstantMaterial
prop_names = density
prop_values = 8000.0
block = 2
[]
[]
[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'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
l_max_its = 50
l_tol = 8e-3
nl_max_its = 50
nl_rel_tol = 1e-5
nl_abs_tol = 1e-6
end_time = 251380
dtmin = 0.25
automatic_scaling = true
compute_scaling_once = false
[TimeStepper]
type = IterationAdaptiveDT
dt = 1e2
optimal_iterations = 15
iteration_window = 2
linear_iteration_ratio = 100
growth_factor = 2
cutback_factor = .5
force_step_every_function_point = true
timestep_limiting_function = power_history1
[]
[]
[Postprocessors]
[ave_fuel_temp]
type = ElementAverageValue
variable = temp
block = 1
[]
[max_fuel_temp]
type = NodalExtremeValue
value_type = max
variable = temp
block = 1
[]
[ave_pore]
type = ElementAverageValue
variable = pore
block = 1
[]
[max_pore]
type = NodalExtremeValue
value_type = max
variable = pore
block = 1
[]
[min_pore]
type = NodalExtremeValue
value_type = min
variable = pore
block = 1
[]
[max_pore_speed]
type = ElementExtremeValue
value_type = max
variable = pore_speed_aux
block = 1
[]
[rod_total_power_mox]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate_aux_variable_mox
block = 1
[]
[rod_input_power]
type = FunctionValuePostprocessor
function = power_history1
scale_factor = 0.5 # half disk
[]
[ave_themal_conductivity]
type = ElementAverageValue
variable = thermal_conductivity
block = 1
[]
[]
[VectorPostprocessors]
[line_value_vector_postprocessor_pore]
type = LineValueSampler
variable = pore
start_point = '0.0 0.00008 0.0'
end_point = '0.002675 0.00008 0.0'
num_points = 200
sort_by = x
execute_on = linear
outputs = stuff_v_rad
control_tags = a
[]
[line_value_vector_postprocessor_gradT]
type = LineValueSampler
variable = grad_temp_x
start_point = '0.0 0.00008 0.0'
end_point = '0.002675 0.00008 0.0'
num_points = 100
sort_by = x
execute_on = linear
outputs = stuff_v_rad
[]
[line_value_vector_postprocessor_pore_speed]
type = LineValueSampler
variable = pore_speed_aux
start_point = '0.0 0.00008 0.0'
end_point = '0.002675 0.00008 0.0'
num_points = 100
sort_by = x
execute_on = linear
outputs = stuff_v_rad
[]
[line_value_vector_postprocessor_temp]
type = LineValueSampler
variable = temp
start_point = '0.0 0.00008 0.0'
end_point = '0.002675 0.00008 0.0'
num_points = 100
sort_by = x
execute_on = linear
outputs = stuff_v_rad
[]
[line_value_vector_postprocessor_thermal_conductivity]
type = LineValueSampler
variable = thermal_conductivity
start_point = '0.0 0.00008 0.0'
end_point = '0.002675 0.00008 0.0'
num_points = 100
sort_by = x
execute_on = linear
outputs = stuff_v_rad
[]
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = true
csv = true
color = false
[console]
type = Console
max_rows = 25
all_variable_norms = true
[]
[stuff_v_rad]
type = CSV
execute_on = 'FINAL'
[]
[chkfile]
type = CSV
execute_on = FINAL
show = 'ave_fuel_temp max_pore'
[]
[]
[Debug]
show_var_residual_norms = true
show_var_residual = 'disp_x disp_y temp pore'
[]
(test/tests/ifba_he_production/ifba_examp_template.i)
#
# 2-D RZ One Pellet Test - Coarse mesh example of IFBA layer
#
# This is an input template for a fast running example using the IFBA
# postprocessor. All of the possible ways to specify the IFBA layer are run
# using this template in a regression test format.
#
# The expected ouputs for each test depends on the model equation being used
# to calculate the He produced. For the burnup based equation, the He moles
# released at the end of the calculation is 1.4897e-6. A hand calculation is
# reproduced in the Excel spreadsheet IFBA_He_Calc included in the test
# directory. The burnup equation result computed for the same inputs is
# 1.4902e-6.
#
# Using the FRAPCON equation calculates a rate of He production, so comparing
# the first couple of time steps of the simulation to the hand calculation is
# more straightforward. Comparing the BISON results to the hand calculation is
#
# Time(s) He Prod (BISON) He Prod (Excel)
# 1000 1.01465e-10 1.01465e-10
# 3000 7.10250e-10 7.18769e-10
#
initial_fuel_density = 10431.0 #95% TD (TD = 10980)
[GlobalParams]
density = ${initial_fuel_density}
displacements = 'disp_x disp_y'
order = SECOND
energy_per_fission = 3.2e-11 # J/fission (205 Mev)
temperature = temp
volumetric_locking_correction = false
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[Mesh]
coord_type = RZ
[smeared_pellet_mesh]
type = FuelPinMeshGenerator
clad_mesh_density = customize
pellet_mesh_density = customize
ny_p = 1
nx_p = 1
nx_c = 1
ny_cu = 1
ny_c = 1
ny_cl = 1
clad_thickness = 5.6e-4
pellet_outer_radius = 0.0041
pellet_height = 0.01
pellet_quantity = 1
clad_bot_gap_height = 1e-3
bottom_clad_height = 2.24e-3
top_clad_height = 2.24e-3
clad_gap_width = 8e-5
plenum_fuel_ratio = 0.150
elem_type = QUAD8
[]
partitioner = centroid
centroid_partitioner_direction = y
patch_size = 5
[]
[Variables]
[temp]
initial_condition = 298
[]
[]
[AuxVariables]
[fission_rate]
block = '3'
[]
[burnup]
block = '3'
[]
[grain_radius]
block = '3'
initial_condition = 5e-6
[]
[]
[Functions]
[power_history]
type = PiecewiseLinear
x = '0 1.0e4 1.0e8'
y = '0 1.0 1.0'
scale_factor = 20e3 # 20 kW/m peak power.
[]
[coolant_pressure_ramp]
type = PiecewiseLinear
x = '0 10000'
y = '0 1'
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[fuel]
block = 3
strain = FINITE
incremental = true
add_variables = true
decomposition_method = EigenSolution
extra_vector_tags = 'ref'
eigenstrain_names = 'fuel_thermal_strain'
[]
[clad]
block = 1
strain = FINITE
incremental = true
add_variables = true
decomposition_method = EigenSolution
extra_vector_tags = 'ref'
eigenstrain_names = 'clad_thermal_strain'
[]
[]
[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'
fission_rate = fission_rate
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
block = '3'
value = 5.3548e+14
fission_rate_function = power_history
[]
[burnup]
type = BurnupAux
variable = burnup
block = '3'
fission_rate = fission_rate
molecular_weight = 0.270
[]
[grain_radius]
type = GrainRadiusAux
block = '3'
variable = grain_radius
temperature = temp
[]
[]
[Contact]
[pellet_clad_mechanical]
primary = 5
secondary = 10
penalty = 1e+14 #1e7
model = frictionless
tangential_tolerance = 5e-4
normal_smoothing_distance = 0.1
normalize_penalty = true
[]
[]
[ThermalContact]
[pellet_clad_thermal]
type = GasGapHeatTransfer
variable = temp
primary = 5
secondary = 10
gas_released = 'fis_gas_released he_prod'
initial_moles = initial_moles
jump_distance_model = LANNING
layer_thickness = layer_thickness
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
released_gas_types = 'Kr Xe;
He'
released_fractions = '0.153 0.847;
1'
roughness_coef = 3.2
roughness_secondary = 1e-6
roughness_primary = 2e-6
emissivity_primary = 0.8
emissivity_secondary = 0.8
quadrature = true
normal_smoothing_distance = 0.1
[]
[]
[BCs]
[no_x_all]
type = DirichletBC
variable = disp_x
boundary = 1003
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 = 20
value = 0.0
[]
[no_x_fuel]
type = DirichletBC
variable = disp_x
boundary = 1005
value = 0.0
[]
[Clad_Temp]
type = DirichletBC
variable = temp
boundary = '2'
value = 580.0
[]
[Pressure]
[coolantPressure]
boundary = '2'
factor = 15.5e6
function = coolant_pressure_ramp
[]
[]
[PlenumPressure]
[plenumPressure]
boundary = 9
initial_pressure = 0.50e6
refab_pressure = 0.50e6
startup_time = 0.0
material_input = 'fis_gas_released he_prod'
output_initial_moles = initial_moles
temperature = interior_temp
volume = gas_volume
output = plenum_pressure
displacements = 'disp_x disp_y'
[]
[]
[]
[Materials]
[fuel_thermal]
type = UO2Thermal
block = '3'
temperature = temp
burnup = burnup
thermal_conductivity_model = NFIR
[]
[fuel_elasticity_tensor]
type = UO2ElasticityTensor
block = 3
[]
[fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = 3
[]
[fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = 3
thermal_expansion_coeff = 10.0e-6
stress_free_temperature = 298
eigenstrain_name = 'fuel_thermal_strain'
[]
[fission_gas_release]
type = UO2Sifgrs
block = '3'
temperature = temp
fission_rate = fission_rate
grain_radius = grain_radius
gbs_model = true
burnup = burnup
diff_coeff_option = TURNBULL_D1_D2
[]
[clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[]
[fclad_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = 1
youngs_modulus = 7.5e10
poissons_ratio = 0.3
[]
[clad_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = 1
[]
[clad_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = 1
thermal_expansion_coeff = 5.0e-6
stress_free_temperature = 298
eigenstrain_name = 'clad_thermal_strain'
[]
[clad_density]
type = StrainAdjustedDensity
block = 1
strain_free_density = 6551.0
[]
[fuel_density]
type = StrainAdjustedDensity
block = '3'
strain_free_density = ${initial_fuel_density}
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
l_max_its = 25
nl_max_its = 40
nl_rel_tol = 1e-5
nl_abs_tol = 1e-8
dtmax = 1.0e6
dtmin = 1.0
end_time = 2.5e6
[TimeStepper]
type = IterationAdaptiveDT
dt = 1e3
optimal_iterations = 30
iteration_window = 4
time_t = '0 1e4 1e8'
time_dt = '1e4 1e5 1e6'
timestep_limiting_function = power_history
force_step_every_function_point = true
[]
[Quadrature]
order = fifth
side_order = seventh
[]
verbose = true
[]
[Postprocessors]
[clad_inner_vol]
type = InternalVolume
boundary = 7
execute_on = 'initial linear'
[]
[pellet_volume]
type = InternalVolume
boundary = 8
execute_on = 'initial linear'
[]
[gas_volume]
type = InternalVolume
boundary = 9
execute_on = 'initial linear'
[]
[interior_temp]
type = SideAverageValue
boundary = 9 # cladding interior and pellet exterior
variable = temp
execute_on = 'initial linear'
[]
[fis_gas_produced] # fission gas produced (moles)
type = ElementIntegralFisGasGeneratedSifgrs
block = '3'
[]
[fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = '3'
[]
[fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = '3'
[]
[fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = '3'
[]
[power_history]
type = FunctionValuePostprocessor
function = power_history
[]
[dt]
type = TimestepSize
[]
[residual]
type = Residual
[]
[nl_its]
type = NumNonlinearIterations
[]
[lin_its]
type = NumLinearIterations
[]
[average_burnup]
type = ElementAverageValue
block = '3'
variable = burnup
[]
[burnup]
type = ElementAverageValue
block = '3'
variable = burnup
[]
[average_fissionrate]
type = ElementAverageValue
block = '3'
variable = fission_rate
[]
[rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = '3'
[]
[rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 0.01 #BWR change: length of fuel stack in meters (5*pellet height)
[]
[he_prod]
type = IFBAHeProduction
[]
[]
[Outputs]
time_step_interval = 1
exodus = false
[console]
type = Console
solve_log = true
output_linear = true
max_rows = 25
[]
[chkfile]
type = CSV
show = 'average_burnup burnup he_prod interior_temp plenum_pressure'
[]
[outfile]
type = CSV
delimiter = ' '
[]
[]
(test/tests/uo2_thermal/HBSporosity/test.i)
# This test case is prepared to test the thermal conductivity using the Halden model.
#
# The temperature is ramped on all BCs of the unit line from 500 K to 3000K over 100 Ms.
# The fission rate is 2e19 n/m3/s, so that the burnup goes from 0 to
# ~ 8.6 at.% (82 MWd/kgU) at the end of the simulation.
#
# We employ an artificial porosity shape that varies from 0.05 (initial_porosity) to around 0.13.
#
# Thermal conductivity of UO2 fuel at 95%TD is computed using the Halden UO2 thermal
# conductivity model. Two different porosity correction methods (the Kampf and Lee models)
# are employed to compute the HBS thermal conductivity.
# The BISON predictions (BISON_k) compared to the expected results (exp_k)
# are summarized (see: post_processing.py --> comparison_results.csv) as:
#
# exp_k_lee BISON_k_lee percent_error_lee exp_k_kampf BISON_k_kampf percent_error_kampf
# 1.923374665 1.923374674 -4.64E-07 1.923070652 1.92307065 8.73E-08
# 1.912817787 1.912817795 -4.58E-07 1.912332564 1.912332562 1.30E-07
# 1.903379731 1.90337974 -4.53E-07 1.902763112 1.902763108 1.61E-07
# 1.895060193 1.895060202 -4.48E-07 1.894338874 1.89433887 1.85E-07
# 1.887861419 1.887861427 -4.44E-07 1.887052808 1.887052804 2.05E-07
initial_fuel_density = 10431.0
[GlobalParams]
order = FIRST
family = LAGRANGE
[]
[Mesh]
[geom]
type = GeneratedMeshGenerator
dim = 1
elem_type= EDGE2
[]
[]
[Variables]
[T]
initial_condition = 500
[]
[]
[AuxVariables]
[fission_rate]
[]
[burnup]
[]
[th_cond]
order = CONSTANT
family = MONOMIAL
[]
[effective_burnup]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = T
[]
[heat_ie]
type = HeatConductionTimeDerivative
variable = T
[]
[heat_source]
type = NeutronHeatSource
variable = T
energy_per_fission = 3.2e-11
fission_rate = fission_rate
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable= fission_rate
value = 2e19 # Standard fission_rate fissions/m^3/s
execute_on = 'initial timestep_begin'
[]
[th_cond]
type = MaterialRealAux
variable = th_cond
property = thermal_conductivity
execute_on = 'initial linear'
[]
[burnup]
type = BurnupAux
variable = burnup
density = ${initial_fuel_density} # 95% TD
fission_rate = fission_rate
execute_on = timestep_begin
[]
[]
[Functions]
[temp_ramp]
type = PiecewiseLinear
x = '0.0 100.e6'
y = '500 3000'
[]
[]
[BCs]
[VariableT]
type = FunctionDirichletBC
boundary = 'left right'
variable = T
function = temp_ramp
[]
[]
[Materials]
[fuel_thermalUO2]
type = UO2Thermal
temperature = T
burnup = burnup
initial_porosity = 0.05
thermal_conductivity_model = HALDEN
oxy_to_metal_ratio = 2.0
Gd_content = 0.0
[]
[density]
type = ParsedMaterial
property_name = density
expression = ${initial_fuel_density}
[]
[HBS_volume_fraction]
type = HighBurnupStructureFormation
burnup = burnup
temperature = T
[]
[]
[Executioner]
type = Transient
start_time = 0
num_steps = 100
dt = 1.0e6
[]
[Postprocessors]
[avg_th_cond]
type = ElementAverageValue
variable = th_cond
execute_on = 'initial timestep_end'
[]
[average_effective_burnup]
type = ElementIntegralMaterialProperty
mat_prop = effective_burnup
execute_on = 'initial timestep_end'
[]
[average_rod_burnup]
type = ElementAverageValue
variable = burnup
execute_on = timestep_end
[]
[average_fuel_T]
type = ElementAverageValue
variable = T
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
csv = true
file_base = 'test_default'
[]
(test/tests/thermalUO2/thermalUO2_jac_test.i)
[Mesh]
[mesh]
type = FileMeshGenerator
file = pelletfine1_rz.e
[]
[]
[Variables]
[T]
order = FIRST
family = LAGRANGE
initial_condition = 300.0 # set initial T to ambient
[]
[]
[AuxVariables]
[fission_rate]
order = FIRST
family = LAGRANGE
block = 2
[]
[burnup]
order = FIRST
family = LAGRANGE
block = 2
[]
[th_cond]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = T
[]
[heat_source]
type = NeutronHeatSource
variable = T
block = 2
energy_per_fission = 3.2e-11
fission_rate = fission_rate
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable= fission_rate
block = 2
value = 1.183e19 # corrected average power to 200 W/cm
execute_on = 'initial timestep_begin'
[]
[th_cond]
type = MaterialRealAux
variable = th_cond
property = thermal_conductivity
block = 2
execute_on = linear
[]
[burnup]
type = ConstantAux
variable = burnup
value = 0.001
execute_on = 'initial timestep_begin'
[]
[]
[BCs]
[ConstantT]
type = DirichletBC
boundary = 10
variable = T
value = 500
[]
[]
[Materials]
[fuel_thermal]
type = UO2Thermal
block = 2
thermal_conductivity_model = FINK_LUCUTA
temperature = T
burnup = burnup
initial_porosity = 0.015
[]
[density]
type = ParsedMaterial
block = 2
property_name = density
expression = 10431.0
[]
[]
[Executioner]
type = Steady
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '100 hypre boomeramg 4'
line_search = 'none'
solve_type = 'PJFNK'
l_max_its = 60
nl_max_its = 15
nl_rel_tol = 1e-9
nl_abs_tol = 1e-10
l_tol = 1e-5
[]
[Outputs]
csv = true
[]
(test/tests/sifgrs/uo2/fast_mox.i)
# This test is for the application of Sifgrs to FBR MOX fuel.
# A lower limit for the grain-boundary bubble number density of 1.0e+11 bubbles/m2 is applied, which is recommended for FBR MOX simulations.
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 3
xmin = 0
xmax = 0.01
ymin = 0
ymax = 0.01
zmin = 0
zmax = 0.01
nx = 1
ny = 1
nz = 1
[]
[]
[Functions]
[Temp_func]
type = ParsedFunction
expression = '2000'
[]
[Fiss_func]
type = ParsedFunction
expression = '1.e20'
[]
[]
[Variables]
[T]
order = FIRST
family = LAGRANGE
initial_condition = 2000
[]
[]
[AuxVariables]
[fission_rate]
order = FIRST
family = LAGRANGE
[]
[bbl_bdr_2]
order = CONSTANT
family = MONOMIAL
block = 0
[]
[deltav_v0_bubble_GB]
order = CONSTANT
family = MONOMIAL
block = 0
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = T
diffusion_coefficient = 2.5
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
value = 1
fission_rate_function = Fiss_func
execute_on = 'initial timestep_begin'
[]
[nbbl2]
type = MaterialRealAux
variable = bbl_bdr_2
property = bubble_GB_surface_density
execute_on = timestep_end
[]
[gbswe]
type = MaterialRealAux
variable = deltav_v0_bubble_GB
property = deltav_v0_bubble_GB
execute_on = timestep_end
[]
[]
[BCs]
[bottom_T]
type = FunctionDirichletBC
variable = T
function = Temp_func
boundary = bottom
[]
[]
[Materials]
[fission_gas_behavior]
type = UO2Sifgrs
temperature = T
fission_rate = fission_rate
initial_porosity = 0.0
grain_radius_const = 8.0e-6
diff_coeff_option = TURNBULL_D1_4D2_4D3
bubble_gb_limit = 1.0e+11 #recommended value for fast MOX fuels
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
l_tol = 1e-4
nl_abs_tol = 1e-5
nl_rel_tol = 1e-5
start_time = 0.0
num_steps = 100
dt = 19800.
[]
[Postprocessors]
[fis_gas_generated]
type = ElementIntegralFisGasGeneratedSifgrs
[]
[fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
[]
[fgr_percent]
type = FGRPercent
fission_gas_released = fis_gas_released
fission_gas_generated = fis_gas_generated
execute_on = linear
[]
[bubble_num_grain_boundary]
type = ElementalVariableValue
variable = bbl_bdr_2
elementid = 0
[]
[swelling_grain_boundary]
type = ElementalVariableValue
variable = deltav_v0_bubble_GB
elementid = 0
[]
[]
[Outputs]
csv = true
[]
(test/tests/high_burnup_structure_formation/hbs_formation_Lassmann.i)
#--------------------------------------------------------------------------------------------------------------------------------
#
# This is a test for the high burnup structure (HBS) formation model implemented in the HighBurnupStructureFormation routine.
# The model computes the volume fraction of restructured fuel (HBS) as a function of the local burnup defined in K. Lassmann
# et al., JNM 226, 1, 1995.
# In this test, the fission rate is linearly increasing with x to obtain a linearly increasing burnup and test that HBS
# formation is predicted at the desired threshold burnup.
#
# - Geometry: 1D line
#
# - 10 elements
#
# - Temperature = 1173.15 K
#
# - Fission rate = linearly increasing from 0 to 2.e+19 fission/m^3s
#
# - Irradiation time: 2.0e+08 s
#
# With these settings, the burnup and increases linearly, reaching a value of 0.1721 FIMA, or 165.5 MWd/kgU, at the end of the
# simulation at 2.0e+08 s on the right side of the domain linearly decreasing to 0 towards the left side of the domain. HBS
# formation is predicted to start from the right where the threshold burnup is reached first, and progress to the left. The
# thickness of the HBS region is governed by the threshold burnup.
#
#--------------------------------------------------------------------------------------------------------------------------------
[Mesh]
[generated_mesh]
type = GeneratedMeshGenerator
dim = 1
nx = 10
xmin = 0.
xmax = 10
[]
[]
[Functions]
[temperature_func]
type = PiecewiseLinear
x = '0. 2.e+08'
y = '1173.15 1173.15'
[]
[fissionrate_func]
type = PiecewiseLinear
x = '0. 10.'
y = '0. 2.e+19'
axis = 'x'
[]
[]
[Variables]
[temperature]
order = FIRST
family = LAGRANGE
initial_condition = 1173.15
[]
[]
[AuxVariables]
[fission_rate]
order = FIRST
family = LAGRANGE
[]
[burnup]
order = FIRST
family = LAGRANGE
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temperature
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
block = 0
variable = fission_rate
value = 1
fission_rate_function = fissionrate_func
execute_on = 'initial timestep_begin'
[]
[brnp]
type = BurnupAux
block = 0
variable = burnup
fission_rate = fission_rate
density = 10421.5
execute_on = 'initial timestep_end'
[]
[]
[BCs]
[bottom_temp]
type = FunctionDirichletBC
variable = temperature
function = temperature_func
boundary = 'left right'
preset = false
[]
[]
[Materials]
[hbs_formation]
type = HighBurnupStructureFormation
block = 0
temperature = temperature
burnup = burnup
hbs_model_type = Lassmann
threshold_burnup = 70 # default
energy_per_fission = 3.28451e-11 # default
output_properties = 'hbs_volume_fraction hbs_volume_fraction_burnup_rate'
outputs = 'all'
[]
[thermal]
type = HeatConductionMaterial
block = 0
specific_heat = 1.0
thermal_conductivity = 100.
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart'
petsc_options_value = '101'
line_search = 'none'
l_max_its = 100
nl_max_its = 100
nl_rel_tol = 1e-8
nl_abs_tol = 1e-6
l_tol = 1e-5
start_time = 0.0
end_time = 2.e+08
dtmax = 5.e+06
dtmin = 1.
[TimeStepper]
type = IterationAdaptiveDT
dt = 5.e+06
optimal_iterations = 6
linear_iteration_ratio = 100
[]
[]
[Postprocessors]
[_dt]
type = TimestepSize
[]
[temperature]
type = NodalVariableValue
variable = temperature
nodeid = 0
execute_on = 'initial timestep_end'
[]
[burnup]
type = SideAverageValue
boundary = right
variable = burnup
[]
[hbs_volume_fraction]
type = ElementAverageMaterialProperty
mat_prop = hbs_volume_fraction
[]
[hbs_volume_fraction_burnup_rate]
type = ElementAverageMaterialProperty
mat_prop = hbs_volume_fraction_burnup_rate
[]
[]
[Outputs]
csv = true
perf_graph = true
exodus = true
[console]
type = Console
max_rows = 15
[]
[]
(test/tests/fission_rate_LWR/fission_to_thermal_power_deprecated.i)
# Tests/demonstrates fission to thermal power conversion
#
# In some cases, the LHGR is specified as the thermal power generated within
# the fuel. To get the fission rate and burnup correct, this thermal power must be
# scaled upward to obtain the total fission power in the fuel. For Halden experiments
# the ratio of fission power to thermal power in the fuel is generally assumed to be
# 0.95.
#
# In this test, the power is specified as fuel thermal power (95 W/m) and so is scaled
# upward to 100 W/m as part of the power function definition. This total power is then
# partitioned as thermal power in the fuel (0.95) and thermal power in the clad
# (0.05) using the NeutronHeatSource kernel.
#
# Postprocessors show the fission power in the fuel and clad as 100 and 0, as
# expected. The fission power density in the fuel can be computed as:
#
# Fdot = ALHR / (Energy_per_fission * Cross_sectional_area)
# = 100 / (3.2e-11 * pi * 0.56418958^2)
# = 3.125e12 fissions/(m**3-s)
#
# Assuming a very high conductivity for the fuel and clad (1e6), both materials can be
# accurately described using a lumped-capacity thermal model. The temperature is
# then given by:
#
# dT = (q * dt) / (rho * C * V)
# = (q/l * dt) / (rho * C * A)
#
# where: T = temperature
# t = time
# q = heat rate
# rho = density
# C = specific heat
# V = volume
# l = length
# A = cross-sectional area
#
# For the fuel, at 2 s:
# dT = (95 W/m * 2 s) / (1 kg/m^3 * 1 J/kg-K * pi * 0.56418958^2 m^2)
# = 190 K
#
# For the clad, at 2 s:
# dT = (5 W/m * 2 s) / (1 kg/m^3 * 1 J/kg-K * pi * (0.8990605^2 - 0.7^2 m^2)
# = 10 K
#
# which is what is computed numerically
#
[GlobalParams]
energy_per_fission = 3.2e-11
[]
[Mesh]
coord_type = RZ
[mesh]
type = FileMeshGenerator
file = fission_to_thermal_power.e
[]
[]
[Variables]
[temp]
order = FIRST
family = LAGRANGE
initial_condition = 500.0
[]
[]
[Functions]
[rod_ave_lin_pow]
type = PiecewiseLinear
x = '0 2'
y = '95 95'
scale_factor = 1.052631579 # scale input thermal power to fission power (1/0.95)
[]
[rod_axial_profile]
type = ParsedFunction
expression = '1.0'
[]
[]
[AuxVariables]
[fission_rate]
order = FIRST
family = LAGRANGE
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temp
[]
[ie]
type = HeatConductionTimeDerivative
variable = temp
[]
[heat_source_fuel]
type = NeutronHeatSource
block = 2
variable = temp
rod_ave_lin_pow = rod_ave_lin_pow
axial_profile = rod_axial_profile
outer_diameter = 1.128379169
inner_diameter = 0
fraction = 0.95 # 95% of fission power deposited in fuel
[]
[heat_source_clad]
type = NeutronHeatSource
block = 1
variable = temp
rod_ave_lin_pow = rod_ave_lin_pow
axial_profile = rod_axial_profile
outer_diameter = 1.7981211151463525
inner_diameter = 1.4
fraction = 0.05 # 5% of fission power deposited in clad
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = LWR
variable = fission_rate
rod_ave_lin_pow = rod_ave_lin_pow
axial_power_profile = rod_axial_profile
pellet_diameter = 1.128379169
execute_on = 'initial timestep_begin'
block = 2
[]
[]
[Materials]
[goo]
type = HeatConductionMaterial
block = '1 2'
thermal_conductivity = 1.0e6
specific_heat = 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_rel_tol = 1e-6
start_time = 0.0
num_steps = 2
dt = 1.0
[]
[Postprocessors]
[fuel_fission_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = 2
execute_on = 'initial timestep_end'
[]
[clad_fission_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = 1
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
exodus = true
[]
(test/tests/solid_mechanics/zry_mechanics/zry_irradiation_growth/ad_irradiation_growth_Zr4_test.i)
# This test applies the ESCORE_IrradiationGrowthZr4 legacy model to a unit cube to check the
# calculated axial strain for Zr4. Note that the Franklin (1982) models are preferred over
# this legacy IrradiationGrowthZr4 model.
#
# For time 0.5:
# A = 3e-20
# n = .794
# fluence = 1.0647e20 n/m^2
#
# Theoretical calc:
# Irradiation growth strain = A*power(fluence/10000, n)
# = 3.0e-20 * (1.0647e20/1e4)^0.794
# = 1.595e-7
#
# BISON results: The value of the calculated irradiation growth strain in the axial direction
# (total_strain_yy) is 1.595e-7. The volume remains constant for irradiation growth.
#
[Mesh]
[mesh]
type = GeneratedMeshGenerator
dim = 3
[]
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[AuxVariables]
[fission_rate]
[]
[fast_neutron_flux]
[]
[fast_neutron_fluence]
[]
[]
[Functions]
[initial_power_ramp]
type = PiecewiseLinear
x = '0 1 2 3 4 5'
y = '0 1 2 2 3 2'
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
value = 1.183e20 # corrected average power to 200 W/cm
fission_rate_function = initial_power_ramp
[]
[fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
factor = 1.183e19 # fission_rate * 0.1
function = initial_power_ramp
[]
[fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
[]
[]
[Physics/SolidMechanics/QuasiStatic/all]
strain = FINITE
eigenstrain_names = irradiation_strain
add_variables = true
generate_output = 'strain_xx strain_yy strain_zz'
use_automatic_differentiation = true
[]
[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]
[elasticity_tensor]
type = ADComputeIsotropicElasticityTensor
youngs_modulus = 1.0
poissons_ratio = 0.3
[]
[stress]
type = ADComputeFiniteStrainElasticStress
[]
[irradiation_swelling]
type = ADZryIrradiationGrowthEigenstrain
zircaloy_material_type = ESCORE_IrradiationGrowthZr4
fast_neutron_fluence = fast_neutron_fluence
eigenstrain_name = irradiation_strain
[]
[]
[Executioner]
type = Transient
solve_type = 'NEWTON'
petsc_options = '-snes_ksp_ew '
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type'
petsc_options_value = '70 hypre boomeramg'
l_max_its = 60
nl_rel_tol = 1e-12
nl_abs_tol = 1e-12
l_tol = 1e-5
start_time = 0.0
dt = 0.5
num_steps = 10
automatic_scaling = true
[]
[Outputs]
exodus = true
[]
[Postprocessors]
[fast_neutron_fluence]
type = AverageNodalVariableValue
variable = fast_neutron_fluence
[]
[volume]
type = InternalVolume
boundary = 'left right back front bottom top'
execute_on = 'initial timestep_end'
[]
[total_strain_xx]
type = ElementAverageValue
variable = strain_xx
[]
[total_strain_yy]
type = ElementAverageValue
variable = strain_yy
[]
[total_strain_zz]
type = ElementAverageValue
variable = strain_zz
[]
[]
(test/tests/sifgrs/uo2/first_stage.i)
# @Requirement F2.40
# This test is for evaluating the first stage (i.e., the intra-granular diffusion calculation) of the Sifgrs fission gas behavior model.
# The first stage is isolated by setting the fractional bubble coverage at grain boundary saturation to zero (saturation_coverage = 0). Under this condition (i.e. gas reaching the grain boundaries goes instantaneously to the plenum), the ratio of fission gas released to fission gas generated calculated by the model should compare very closely with the analytical expression for fractional fission gas release fraction from the grains published by Speight (Nuclear Science and Engineering 37, 180, 1969). The Speight equation for fission gas release fraction (released/produced) is
#
# parameters:
# n and no are summation integers
# a = grain radius in m
# pi = the number pi 3.14159...
# D = effective diffusion coefficient in m^2/s where D includes the effects of intragranular trapping and resolution (see White, JNM 118, 1, 1983, and the
# fgr_diffusion_coefficient_test in BISON for a description)
# t = time in seconds
#
# 6*a^2
# f = 1 - sum(n=1, to no) ---------------- * {1 - exp -[D*n^2*pi^2*t/a^2]}
# pi^4 * D*t*n^4
#
# For no = 1, D = 4.123e-19 m^2/s, a = 1e-5 m, t = 1e6 s, f = 0.596.
# For no = 50, and the same parameters defined above, f = 0.1388
#
# With the output from this test, if one calculates fission gas released / fission gas produced at
# t = 1.e+06, the result should be 0.1032, which compares well with the analytical solution from Speight.
#
# See also the sheet sifgrs_first_stage of the attached excel file (regression_tests_sifgrs.xlsx).
# Check of fission gas produced
# beta = rate of gas production per unit volume by fission
# beta * time * volume = gas produced
# The following parameters are used to calculate beta
#
# t = time in seconds = 5e7
# Avogadros number = 6.023e23 atoms/mol
# FY = fractional yield = fraction of fission gas atoms per fission = 0.3017 atoms/fission
# Y = yield = FY/Avogadros number = atoms/fission / atoms/mol to give mols/fission
# F = fission rate = fissions/m^3*s = 2.5e19
# beta = F*Y = fissions/m^3s * mols/fission = mols/m^3*s
# gas produced = beta * time * volume
# For this test problem, volume = (0.01m)^3 = 1e-6m^3 = volume of single finite element in this problem
#
# Y = 0.3017/6.023e23 = 5.0091e-25 mol/fission
# beta = 2.5e19*5.009e-25 = 1.25e-5 mol/m^3s
# gas produced = 1.25e-5*5e7*1e-6 = 6.26e-4 mols
#
[Mesh]
[mesh]
type = FileMeshGenerator
file = 1hex8_10mm_cube.e
[]
[]
[Functions]
[Temp_func]
type = ParsedFunction
expression = '1700'
[]
[Fiss_func]
type = ParsedFunction
expression = '2.5e19'
[]
[]
[Variables]
[T]
order = FIRST
family = LAGRANGE
initial_condition = 1700
[]
[]
[AuxVariables]
[fission_rate]
order = FIRST
family = LAGRANGE
[]
[fract_FGR_analytical]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = T
diffusion_coefficient = 1
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
value = 1
fission_rate_function = Fiss_func
execute_on = 'initial timestep_begin'
[]
[FRA]
type = MaterialRealAux
variable = fract_FGR_analytical
property = fract_FGR_analytical
[]
[]
[BCs]
[bottom_T]
type = FunctionDirichletBC
variable = T
function = Temp_func
boundary = 1
[]
[]
[Materials]
[fission_gas_behavior]
type = UO2Sifgrs
skip_bdr_model = true
temperature = T
fission_rate = fission_rate
testing_output = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
l_tol = 1e-4
nl_abs_tol = 1e-5
nl_rel_tol = 1e-5
start_time = 0.0
num_steps = 50
dt = 1e6
[]
[Postprocessors]
[fis_gas_generated]
type = ElementIntegralFisGasGeneratedSifgrs
[]
[fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
[]
[]
[Outputs]
exodus = true
[csv]
type = CSV
[]
[]
(test/tests/solid_mechanics/mox_creep/fastmox_creep_therm_only.i)
#
# This test checks the FastMOXCreepUpdate material using a thermal only
# axisymmetric RZ model. The solid cylinder is pulled in the axial direction
# using a ramped loading to a constant value and the temperature is fixed. The
# fission rate is set to zero to eliminate the irradiation term from the creep
# equation. The simplified form for the creep strain rate is
#
#steady-state thermal creep rate (1/hr) = 3.23e9/grain_size^2 * sigma * exp(-92500/RT) + 3.24e6 * sigma^4.4 * exp(-136800/RT)
#
# where the grain size is 10 microns, the applied stress (i.e., sigma) is 30 MPA
# and the temperature is 1823 K. Substituting those values into the expression
# above gives
# SS thermal creep rate (1/hr) = 7.8717e-3 + 4.0578e-4 = 8.2775e-3
#
# converting the creep rate to (1/s) gives 8.2775e-3 / 3600 sec/hr = 2.2993e-6
#
# Taking the postprocessor values for delta_crp_strain_yy and dividing by the
# time step size gives
#
# delta_crp_strain_yy = 2.299301e-2 and _dt = 1e4, so
#
# delta_crp_strain_yy / _dt = 2.299301e-6
#
[GlobalParams]
displacements = 'disp_x disp_y'
order = FIRST
family = LAGRANGE
temperature = temp
[]
[Mesh]
coord_type = RZ
[mesh]
type = GeneratedMeshGenerator
dim = 2
ymax = 0.1
xmax = 0.01
[]
[]
[Variables]
[temp]
initial_condition = 1823.0
[]
[]
[AuxVariables]
[fission_rate]
order = FIRST
family = LAGRANGE
[]
[stress_yy]
order = CONSTANT
family = MONOMIAL
[]
[elastic_strain_yy]
order = CONSTANT
family = MONOMIAL
[]
[creep_strain_yy]
order = CONSTANT
family = MONOMIAL
[]
[]
[Physics]
[SolidMechanics]
[QuasiStatic]
[all]
strain = FINITE
add_variables = true
generate_output = 'stress_yy elastic_strain_yy creep_strain_yy'
[]
[]
[]
[]
[Functions]
[top_pull]
type = PiecewiseLinear
x = '0 1e5'
y = '0 1'
[]
[Fiss_func]
type = ParsedFunction
expression = 0.0
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temp
[]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temp
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
fission_rate_function = Fiss_func
execute_on = 'initial timestep_begin'
[]
[stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[]
[elastic_strain_yy]
type = RankTwoAux
rank_two_tensor = elastic_strain
variable = elastic_strain_yy
index_i = 1
index_j = 1
[]
[creep_strain_yy]
type = RankTwoAux
rank_two_tensor = creep_strain
variable = creep_strain_yy
index_i = 1
index_j = 1
execute_on = timestep_end
[]
[]
[BCs]
[u_top_pull]
type = Pressure
variable = 'disp_y'
boundary = top
factor = -30.0e6
function = top_pull
[]
[u_bottom_fix]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[]
[u_left_fix]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[]
[temp_fix]
type = DirichletBC
variable = temp
boundary = 'top bottom left right'
value = 1823.0
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 2.0e11
poissons_ratio = 0.3
[]
[radial_return_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'fastmox_creep'
[]
[fastmox_creep]
type = FastMOXCreepUpdate
fission_rate = fission_rate
temperature = temp
[]
[thermalprop]
type = HeatConductionMaterial
thermal_conductivity = 1.0
specific_heat = 1.0
[]
[density]
type = StrainAdjustedDensity
strain_free_density = 1.0
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart'
petsc_options_value = '101'
line_search = 'none'
l_max_its = 50
nl_max_its = 20
l_tol = 1e-5
nl_rel_tol = 1e-8
nl_abs_tol = 1e-10
start_time = 0.0
num_steps = 5000
end_time = 4e5
dtmin = 10.0
dtmax = 1e4
[TimeStepper]
type = IterationAdaptiveDT
dt = 1e3
optimal_iterations = 20
iteration_window = 4
time_t = '0 1.0e5'
time_dt = '1e3 1e4'
growth_factor = 2.0
cutback_factor = 0.5
[]
[]
[Postprocessors]
[stress_yy]
type = ElementAverageValue
variable = stress_yy
[]
[el_strain_yy]
type = ElementAverageValue
variable = elastic_strain_yy
[]
[crp_strain_yy]
type = ElementAverageValue
variable = creep_strain_yy
[]
[delta_crp_strain_yy]
type = ChangeOverTimePostprocessor
postprocessor = crp_strain_yy
[]
[_dt]
type = TimestepSize
[]
[fission_rate_PP]
type = FunctionValuePostprocessor
function = Fiss_func
execute_on = 'initial timestep_end'
[]
[Temperature_PP]
type = ElementalVariableValue
elementid = 0
variable = temp
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
exodus = true
csv = true
[]
(test/tests/mox_pore_velocity/MOXPoreVelocityVaporPressure.i)
# This input files uses the pore difusion kernels
[UserObjects]
[pin_geometry]
type = Layered1DFuelPinGeometry
include_clad = false
mesh_generator = layered1D_mesh
[]
[]
[Mesh]
coord_type = RZ
[layered1D_mesh]
type = Layered1DMeshGenerator
fuel_height = 0.1
pellet_outer_radius = 0.0041
include_clad = false
pellet_bottom_coor = 0.0
pellet_mesh_density = customize
nx_p = 200
elem_type = EDGE2
slices_per_block = 1
include_plenum = false
[]
[]
[Variables]
[temperature]
initial_condition = 1400.0
[]
[pore]
initial_condition = 0.12
scaling = 1e14
[]
[]
[AuxVariables]
[pore_speed_aux]
order = constant
family = monomial
[]
[fission_rate_aux_variable_mox]
order = first
family = lagrange
[]
[]
[Functions]
[power_history1]
type = PiecewiseLinear
x = '0 10000'
y = '0 50000'
[]
[]
[Kernels]
[heat] # gradient term in heat conduction equation
type = HeatConduction
variable = temperature
[]
[heat_ie] # time term in heat conduction equation
type = HeatConductionTimeDerivative
variable = temperature
[]
[heat_source] # source term in heat conduction equation
type = NeutronHeatSource
variable = temperature
block = fuel # fission rate applied to the fuel (block 2) only
fission_rate = fission_rate_aux_variable_mox
[]
[pore_diffusion]
type = MOXPoreDiffusion
variable = pore
debug = 0
# nu = 3.25e-8 #seems to be THE value to use... result is super sensitive to this number
# nu = 10e-10
nu = 1e-12
heating_function = power_history1
v_upper = 1e-12
v_lower = 1e-20
# v_upper = 1
# v_lower = 1
[]
[pore_continuity]
type = MOXPoreContinuity
variable = pore
temperature = temperature
debug = 0
alpha = 0.25
beta = 1
heating_function = power_history1
[]
[poretimederivative]
type = CoefTimeDerivative
variable = pore
Coefficient = 1
[]
[]
[AuxKernels]
[pore_speed_aux]
type = MaterialRealAux
variable = pore_speed_aux
property = pore_velocity
block = fuel
execute_on = 'initial timestep_end'
[]
[fission_rate_aux_kernel_mox]
type = FissionRateGeneral
fission_rate_formulation = MOX
variable = fission_rate_aux_variable_mox
block = fuel
porosity = pore
initial_porosity = 0.12
rod_ave_lin_pow = power_history1
pellet_diameter = 0.0082
pellet_inner_diameter = 0
energy_per_fission = 3.2e-11
execute_on = 'initial timestep_end'
[]
[]
[BCs]
[temp_outside] # pin pellets and clad along axis of symmetry (y)
type = DirichletBC
variable = temperature
boundary = 10
value = 1400
[]
[]
[Materials]
[fuel_thermal]
type = MAMOXThermal
block = fuel
temperature = temperature
porosity = pore
porosity_limit = 0.9
[]
[density_block]
type = GenericConstantMaterial
block = fuel
prop_names = density
prop_values = 10431.0
[]
[pore_velocity]
type = MOXPoreVelocityVaporPressure
block = fuel
temperature = temperature
scale_factor = 1e0
# limit = 1e-3
# scale_factor = 0.05 # go back to this if necessary
# scale_factor = 0.1
# oxygen_partial_pressure = PO2
[]
[oxygen_partial_pressure_integral]
type = MOXOxygenPartialPressure
block = fuel
temperature = temperature
o2m_deviation = 0.02
po2_initial = 0.01
outputs = exodus
# type = GenericConstantMaterial
# block = fuel
# prop_names = PO2
# prop_values = 1.0
[]
[Sum]
type = MOXVaporPressure
temperature = temperature
block = fuel
evalerror_behavior = error
outputs = exodus
[]
[]
[Dampers]
[limitT]
type = MaxIncrement
max_increment = 100.0
variable = temperature
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
snesmf_reuse_base = false
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package' # -mat_superlu_dist_fact'
petsc_options_value = 'lu superlu_dist' # SamePattern_SameRowPerm'
line_search = 'none'
l_max_its = 50
l_tol = 8e-3
nl_max_its = 25
nl_rel_tol = 1e-5
nl_abs_tol = 1e-8 #1e-10
n_startup_steps = 1
end_time = 1.5e5
num_steps = 2
dtmax = 1000
dtmin = 1
[TimeStepper]
type = IterationAdaptiveDT
dt = 2e2
optimal_iterations = 8
iteration_window = 2
linear_iteration_ratio = 100
growth_factor = 2
cutback_factor = .5
force_step_every_function_point = true
timestep_limiting_function = power_history1
[]
[]
[Postprocessors]
[_dt] # time step
type = TimestepSize
[]
[z_nonlinear_its] # number of nonlinear iterations at each timestep
type = NumNonlinearIterations
[]
[power_input]
type = FunctionValuePostprocessor
function = power_history1
scale_factor = 0.1 # rod height
[]
[rod_total_power_mox]
type = LayeredElementIntegralPowerPostprocessor
variable = temperature
block = fuel
fission_rate = fission_rate_aux_variable_mox
fuel_pin_geometry = pin_geometry
[]
[ave_fuel_temp]
type = ElementAverageValue
block = fuel
variable = temperature
[]
[max_fuel_temp]
type = NodalExtremeValue
block = fuel
value_type = max
variable = temperature
[]
[ave_pore]
type = ElementAverageValue
block = fuel
variable = pore
[]
[max_pore]
type = NodalExtremeValue
block = fuel
value_type = max
variable = pore
[]
[min_pore]
type = NodalExtremeValue
block = fuel
value_type = min
variable = pore
[]
[max_pore_speed]
type = ElementExtremeValue
block = fuel
value_type = max
variable = pore_speed_aux
[]
[center_PO2]
type = ElementalVariableValue
elementid = 0
variable = PO2
[]
[]
# The MOX capabilities are under active development and the blocks below are useful for
# development and debugging by providing the profiles of the desired quantities.
# They are commented out for the tests, as it would unnecessarily increase computational costs
# and memory requirements.
# [VectorPostprocessors]
# [line_value_vector_postprocessor_pore]
# type = LineValueSampler
# variable = pore
# start_point = '0.0 0.05 0'
# end_point = '0.0041 0.05 0'
# num_points = 100
# sort_by = x
# execute_on = linear
# outputs = stuff_v_rad
# control_tags = a
# []
# [line_value_vector_postprocessor_pore_speed]
# type = LineValueSampler
# variable = pore_speed_aux
# start_point = '0.0 0.05 0'
# end_point = '0.0041 0.05 0'
# num_points = 100
# sort_by = x
# execute_on = linear
# outputs = stuff_v_rad
# []
# [line_value_vector_postprocessor_temperature]
# type = LineValueSampler
# variable = temperature
# start_point = '0.0 0.05 0'
# end_point = '0.0041 0.05 0'
# num_points = 100
# sort_by = x
# execute_on = linear
# outputs = stuff_v_rad
# []
# []
[Outputs]
exodus = true
csv = false
color = false
[console]
type = Console
max_rows = 25
all_variable_norms = true
[]
# [stuff_v_rad]
# type = CSV
# execute_on = 'FINAL'
# []
[]
[Debug]
show_var_residual_norms = true
[]
(assessment/MOX/JOYO/B14/PTM003/analysis/b14_ptm003_1D_sample1.i)
# Sample at +33 mm from the midplane
initial_fuel_density = 11172.82
[GlobalParams]
density = ${initial_fuel_density}
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
[]
[Mesh]
coord_type = RZ
[layered1D_mesh]
type = Layered1DMeshGenerator
fuel_height = 10e-3
pellet_outer_radius = 0.0027
pellet_bottom_coor = 0.0
pellet_mesh_density = customize
nx_p = 200
elem_type = EDGE2
slices_per_block = 1
include_plenum = false
include_clad = false
[]
[]
[UserObjects]
[pin_geometry]
type = Layered1DFuelPinGeometry
include_clad = false
mesh_generator = layered1D_mesh
[]
[]
[Variables]
[temp]
initial_condition = 295.0
[]
[pore]
initial_condition = 0.1409
scaling = 1e14
block = fuel
[]
[]
[AuxVariables]
[fission_rate]
[]
[burnup]
[]
[pore_speed_aux]
order = constant
family = monomial
[]
[]
[Functions]
[power_history]
type = PiecewiseLinear
x = '-200 0 72000 158040 160200 246600 248400 249000.012 251280'
y = '0 0 39137.6 39137.6 43536.4 43536.4 53010.6 53010.6 0'
[]
[f_temp_out_fuel]
type = PiecewiseLinear
x = '-200 0 251280'
y = '295 295 1120'
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temp
[]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temp
[]
[heat_source]
type = NeutronHeatSource
variable = temp
fission_rate = fission_rate
[]
[pore_continuity]
type = MOXPoreContinuity
variable = pore
temperature = temp
debug = 0
alpha = 0.25
beta = 1
heating_function = power_history
block = fuel
[]
[pore_diffusion]
type = MOXPoreDiffusion
variable = pore
debug = 0
nu = 1e-12
heating_function = power_history
v_upper = 1e-12
v_lower = 1e-20
block = fuel
[]
[poretimederivative]
type = CoefTimeDerivative
variable = pore
Coefficient = 1
block = fuel
[]
[]
[AuxKernels]
[pore_speed_aux]
type = MaterialRealAux
variable = pore_speed_aux
property = pore_velocity
block = fuel
execute_on = 'initial timestep_end'
[]
[fission_rate]
type = FissionRateGeneral
fission_rate_formulation = MOX
variable = fission_rate
block = fuel
initial_porosity = 0.1409
rod_ave_lin_pow = power_history
pellet_diameter = 0.0054
execute_on = timestep_begin
porosity = pore
energy_per_fission = 3.2e-11
[]
[burnup]
type = BurnupAux
block = fuel
fission_rate = fission_rate
variable = burnup
execute_on = timestep_begin
[]
[]
[BCs]
[temp_fuel_outside]
type = FunctionDirichletBC
variable = temp
function = f_temp_out_fuel
boundary = 10
[]
[]
[Materials]
[fuel_thermal]
type = MAMOXThermal
temperature = temp
porosity = pore
block = fuel
Am_content = 0.0237
oxy_to_metal_ratio = 1.961
[]
[fuel_density]
type = ParsedMaterial
block = fuel
property_name = density
expression = ${initial_fuel_density}
[]
[pore_velocity]
type = MOXPoreVelocity
temperature = temp
limit = 1e-3
scale_factor = 0.1
block = fuel
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Dampers]
[bound]
type = BoundingValueNodalDamper
max_value = 1
min_value = 0
variable = pore
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -sub_pc_type'
petsc_options_value = 'asm lu'
line_search = 'none'
l_max_its = 50
l_tol = 8e-3
nl_max_its = 50
nl_rel_tol = 1e-5
nl_abs_tol = 1e-5
start_time = -200
n_startup_steps = 1
end_time = 251280
dtmax = 10000
dtmin = 0.25
[TimeStepper]
type = IterationAdaptiveDT
dt = 1e1
optimal_iterations = 15
iteration_window = 2
linear_iteration_ratio = 100
growth_factor = 2
cutback_factor = .5
force_step_every_function_point = true
timestep_limiting_function = power_history
[]
[]
[Postprocessors]
[ave_temp_interior]
type = ElementAverageValue
variable = temp
execute_on = 'initial linear'
[]
[average_burnup]
type = ElementAverageValue
variable = burnup
[]
[ave_pore]
type = ElementAverageValue
block = fuel
variable = pore
[]
[max_pore]
type = NodalExtremeValue
block = fuel
value_type = max
variable = pore
[]
[min_pore]
type = NodalExtremeValue
block = fuel
value_type = min
variable = pore
[]
[max_pore_speed]
type = ElementExtremeValue
block = fuel
value_type = max
variable = pore_speed_aux
[]
[rod_total_power]
type = LayeredElementIntegralPowerPostprocessor
variable = temp
fission_rate = fission_rate
block = fuel
fuel_pin_geometry = pin_geometry
[]
[rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 10e-3 # rod height
[]
[]
[VectorPostprocessors]
[fuel_radial_temperature_Sample]
type = LineValueSampler
variable = temp
start_point = '0.0 0.005 0.0'
end_point = '0.0027 0.005 0.0'
num_points = 200
execute_on = final
sort_by = x
outputs = line_plot
[]
[radial_porosity_Sample]
type = LineValueSampler
variable = pore
start_point = '0.0 0.005 0.0'
end_point = '0.0027 0.005 0.0'
num_points = 200
execute_on = final
sort_by = x
outputs = line_plot
[]
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = true
color = true
csv = true
[console]
type = Console
max_rows = 25
[]
[line_plot]
type = CSV
execute_on = 'FINAL'
time_step_interval = 1
file_base = 1d
create_final_symlink = true
[]
[chkfile]
type = CSV
execute_on = FINAL
show = 'ave_temp_interior max_pore'
[]
[]
[Debug]
show_var_residual_norms = true
[]
(assessment/MOX/JOYO/B14/PTM002/analysis/b14_ptm002_1D_sample1.i)
# Sample at +33 mm from the midplane
initial_fuel_density = 11057.75
[GlobalParams]
density = ${initial_fuel_density}
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
[]
[Mesh]
coord_type = RZ
[layered1D_mesh]
type = Layered1DMeshGenerator
fuel_height = 10e-3
pellet_outer_radius = 0.002675
pellet_bottom_coor = 0.0
pellet_mesh_density = customize
nx_p = 200
elem_type = EDGE2
slices_per_block = 1
include_plenum = false
include_clad = false
[]
[]
[UserObjects]
[pin_geometry]
type = Layered1DFuelPinGeometry
include_clad = false
mesh_generator = layered1D_mesh
[]
[]
[Variables]
[temp]
initial_condition = 295.0
[]
[pore]
initial_condition = 0.1372
scaling = 1e14
block = fuel
[]
[]
[AuxVariables]
[fission_rate]
[]
[burnup]
[]
[pore_speed_aux]
order = constant
family = monomial
[]
[]
[Functions]
[power_history]
type = PiecewiseLinear
x = '-200 0 72000 158040 160200 246600 248400 249000.012 251280'
y = '0 0 39575.6 39575.6 44023.6 44023.6 53603.8 53603.8 0'
[]
[f_temp_out_fuel]
type = PiecewiseLinear
x = '-200 0 251280'
y = '295 295 1280.8'
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temp
[]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temp
[]
[heat_source]
type = NeutronHeatSource
variable = temp
fission_rate = fission_rate
[]
[pore_continuity]
type = MOXPoreContinuity
variable = pore
temperature = temp
debug = 0
alpha = 0.25
beta = 1
heating_function = power_history
block = fuel
[]
[pore_diffusion]
type = MOXPoreDiffusion
variable = pore
debug = 0
nu = 1e-12
heating_function = power_history
v_upper = 1e-12
v_lower = 1e-20
block = fuel
[]
[poretimederivative]
type = CoefTimeDerivative
variable = pore
Coefficient = 1
block = fuel
[]
[]
[AuxKernels]
[pore_speed_aux]
type = MaterialRealAux
variable = pore_speed_aux
property = pore_velocity
block = fuel
execute_on = 'initial timestep_end'
[]
[fission_rate]
type = FissionRateGeneral
fission_rate_formulation = MOX
variable = fission_rate
block = fuel
initial_porosity = 0.1372
rod_ave_lin_pow = power_history
pellet_diameter = 0.00535
execute_on = timestep_begin
porosity = pore
energy_per_fission = 3.2e-11
[]
[burnup]
type = BurnupAux
block = fuel
fission_rate = fission_rate
variable = burnup
execute_on = timestep_begin
[]
[]
[BCs]
[temp_fuel_outside]
type = FunctionDirichletBC
variable = temp
function = f_temp_out_fuel
boundary = 10
[]
[]
[Materials]
[fuel_thermal]
type = MAMOXThermal
temperature = temp
porosity = pore
block = fuel
Am_content = 0.0237
oxy_to_metal_ratio = 1.982
[]
[fuel_density]
type = ParsedMaterial
block = fuel
property_name = density
expression = ${initial_fuel_density}
[]
[pore_velocity]
type = MOXPoreVelocity
temperature = temp
limit = 1e-3
scale_factor = 0.1
block = fuel
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Dampers]
[bound]
type = BoundingValueNodalDamper
max_value = 1
min_value = 0
variable = pore
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -sub_pc_type'
petsc_options_value = 'asm lu'
line_search = 'none'
l_max_its = 50
l_tol = 8e-3
nl_max_its = 50
nl_rel_tol = 1e-5
nl_abs_tol = 1e-5
start_time = -200
n_startup_steps = 1
end_time = 251280
dtmax = 10000
dtmin = 0.25
[TimeStepper]
type = IterationAdaptiveDT
dt = 1e1
optimal_iterations = 15
iteration_window = 2
linear_iteration_ratio = 100
growth_factor = 2
cutback_factor = .5
force_step_every_function_point = true
timestep_limiting_function = power_history
[]
[]
[Postprocessors]
[ave_temp_interior]
type = ElementAverageValue
variable = temp
execute_on = 'initial linear'
[]
[average_burnup]
type = ElementAverageValue
variable = burnup
[]
[ave_pore]
type = ElementAverageValue
block = fuel
variable = pore
[]
[max_pore]
type = NodalExtremeValue
block = fuel
value_type = max
variable = pore
[]
[min_pore]
type = NodalExtremeValue
block = fuel
value_type = min
variable = pore
[]
[max_pore_speed]
type = ElementExtremeValue
block = fuel
value_type = max
variable = pore_speed_aux
[]
[rod_total_power]
type = LayeredElementIntegralPowerPostprocessor
variable = temp
fission_rate = fission_rate
block = fuel
fuel_pin_geometry = pin_geometry
[]
[rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 10e-3 # rod height
[]
[]
[VectorPostprocessors]
[fuel_radial_temperature_Sample]
type = LineValueSampler
variable = temp
start_point = '0.0 0.005 0.0'
end_point = '0.002675 0.005 0.0'
num_points = 200
execute_on = final
sort_by = x
outputs = line_plot
[]
[radial_porosity_Sample]
type = LineValueSampler
variable = pore
start_point = '0.0 0.005 0.0'
end_point = '0.002675 0.005 0.0'
num_points = 200
execute_on = final
sort_by = x
outputs = line_plot
[]
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = true
color = true
csv = true
[console]
type = Console
max_rows = 25
[]
[line_plot]
type = CSV
execute_on = 'FINAL'
time_step_interval = 1
file_base = 1d
create_final_symlink = true
[]
[chkfile]
type = CSV
execute_on = FINAL
show = 'ave_temp_interior max_pore'
[]
[]
[Debug]
show_var_residual_norms = true
[]
(examples/pore_migration/mox_porosity_demo_2D_concentric.i)
[Mesh]
[mesh]
type = FileMeshGenerator
file = half_symm_disk_tube_2d_concentric.e
[]
[]
[Variables]
[temp]
initial_condition = 600
[]
[pore]
initial_condition = 0.15
scaling = 1e14
block = 1
[]
[]
[AuxVariables]
[pore_speed_aux]
order = constant
family = monomial
[]
[fission_rate_aux_variable]
order = first
family = lagrange
[]
[fission_rate_aux_variable_mox]
order = first
family = lagrange
[]
[grad_temp_x]
order = CONSTANT
family = MONOMIAL
[]
[thermal_conductivity]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[power_history1]
type = PiecewiseLinear
x = '0 10000'
y = '0 37500'
[]
[]
[Kernels]
[heat] # gradient term in heat conduction equation
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
fission_rate = fission_rate_aux_variable_mox
[]
[pore_continuity]
type = MOXPoreContinuity
variable = pore
temperature = temp
debug = 0
alpha = 0.25
beta = 1
heating_function = power_history1
block = 1
[]
[pore_diffusion]
type = MOXPoreDiffusion
variable = pore
debug = 0
nu = 1e-12
heating_function = power_history1
v_upper = 1e-12
v_lower = 1e-20
block = 1
[]
[poretimederivative]
type = CoefTimeDerivative
variable = pore
Coefficient = 1
block = 1
[]
[]
[AuxKernels]
[pore_speed_aux]
type = MaterialRealAux
variable = pore_speed_aux
property = pore_velocity
execute_on = 'initial timestep_end'
block = 1
[]
[fission_rate_aux_kernel]
type = FissionRateGeneral
fission_rate_formulation = LWR
variable = fission_rate_aux_variable
rod_ave_lin_pow = power_history1
pellet_diameter = 0.0054
pellet_inner_diameter = 0
energy_per_fission = 3.2e-11
execute_on = 'initial timestep_end'
value = 1.0
block = 1
[]
[fission_rate_aux_kernel_mox]
type = FissionRateGeneral
fission_rate_formulation = MOX
variable = fission_rate_aux_variable_mox
porosity = pore
initial_porosity = 0.15
rod_ave_lin_pow = power_history1
pellet_diameter = 0.0054
pellet_inner_diameter = 0
energy_per_fission = 3.2e-11
execute_on = 'initial timestep_end'
value = 1.0
block = 1
[]
[grad_temp_x_aux]
type = VariableGradientComponent
variable = grad_temp_x
component = x
gradient_variable = temp
execute_on = 'initial timestep_end'
[]
[ThermalConductivityAux]
type = MaterialRealAux
execute_on = linear
property = thermal_conductivity
variable = thermal_conductivity
block = 1
[]
[]
[BCs]
[temp_cool_side]
type = DirichletBC
variable = temp
boundary = '3'
value = 600
[]
[]
[ThermalContact]
[thermal_contact]
type = GapHeatTransfer
variable = temp
primary = 1
secondary = 2
gap_conductivity = 0.2
gap_geometry_type = cylinder
cylinder_axis_point_1 = '0 0 0'
cylinder_axis_point_2 = '0 0 1'
normal_smoothing_distance = 0.01
tangential_tolerance = 0.01
quadrature = true
[]
[]
[Materials]
[fuel_thermal]
type = MAMOXThermal
temperature = temp
porosity = pore
porosity_limit = 0.95
block = 1
[]
[fuel_density]
type = GenericConstantMaterial
prop_names = density
prop_values = 10662.0
block = 1
[]
[pore_velocity]
type = MOXPoreVelocity
temperature = temp
limit = 1e-3
scale_factor = 0.1
block = 1
[]
[clad_thermal]
type = GenericConstantMaterial
prop_names = 'thermal_conductivity thermal_conductivity_dT specific_heat'
prop_values = '15.0 0.0 470'
block = 2
[]
[clad_density]
type = GenericConstantMaterial
prop_names = density
prop_values = 8000.0
block = 2
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Dampers]
[limitT]
type = MaxIncrement
max_increment = 100.0
variable = temp
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -sub_pc_type'
petsc_options_value = 'asm lu'
line_search = 'none'
l_max_its = 50
l_tol = 8e-3
nl_max_its = 50
nl_rel_tol = 1e-5
nl_abs_tol = 1e-6
end_time = 10000
dtmax = 100
dtmin = 0.25
[TimeStepper]
type = IterationAdaptiveDT
dt = 1e1
optimal_iterations = 15
iteration_window = 2
linear_iteration_ratio = 100
growth_factor = 2
cutback_factor = .5
force_step_every_function_point = true
timestep_limiting_function = power_history1
[]
[]
[Postprocessors]
[_dt] # time step
type = TimestepSize
[]
[z_nonlinear_its] # number of nonlinear iterations at each timestep
type = NumNonlinearIterations
[]
[a_run_time] # average temperature of cladding interior
type = PerfGraphData
section_name = Root
data_type = TOTAL
[]
[ave_fuel_temp]
type = ElementAverageValue
variable = temp
block = 1
[]
[max_fuel_temp]
type = NodalExtremeValue
value_type = max
variable = temp
block = 1
[]
[ave_pore]
type = ElementAverageValue
variable = pore
block = 1
[]
[max_pore]
type = NodalExtremeValue
value_type = max
variable = pore
block = 1
[]
[min_pore]
type = NodalExtremeValue
value_type = min
variable = pore
block = 1
[]
[max_pore_speed]
type = ElementExtremeValue
value_type = max
variable = pore_speed_aux
block = 1
[]
[ave_fission_rate]
type = ElementAverageValue
variable = fission_rate_aux_variable
block = 1
[]
[rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate_aux_variable
block = 1
[]
[rod_total_power_mox]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate_aux_variable_mox
block = 1
[]
[rod_input_power]
type = FunctionValuePostprocessor
function = power_history1
scale_factor = 0.000625 # rod height
[]
[ave_themal_conductivity]
type = ElementAverageValue
variable = thermal_conductivity
block = 1
[] # end element average burnup
[]
[VectorPostprocessors]
[pore]
type = LineValueSampler
variable = pore
start_point = '0.0 0.0 0.0'
end_point = '0.002675 0.0 0.0'
num_points = 200
sort_by = x
execute_on = linear
outputs = line_plot
control_tags = a
[]
[gradT]
type = LineValueSampler
variable = grad_temp_x
start_point = '0.0 0.0 0.0'
end_point = '0.002675 0.0 0.0'
num_points = 100
sort_by = x
execute_on = linear
outputs = line_plot
[]
[pore_speed]
type = LineValueSampler
variable = pore_speed_aux
start_point = '0.0 0.0 0.0'
end_point = '0.002675 0.0 0.0'
num_points = 100
sort_by = x
execute_on = linear
outputs = line_plot
[]
[temp]
type = LineValueSampler
variable = temp
start_point = '0.0 0.0 0.0'
end_point = '0.002675 0.0 0.0'
num_points = 100
sort_by = x
execute_on = linear
outputs = line_plot
[]
[thermal_conductivity]
type = LineValueSampler
variable = thermal_conductivity
start_point = '0.0 0.0 0.0'
end_point = '0.002675 0.0 0.0'
num_points = 100
sort_by = x
execute_on = linear
outputs = line_plot
[]
[]
[Outputs]
perf_graph = true
exodus = false
color = false
[console]
type = Console
max_rows = 25
all_variable_norms = true
[]
[line_plot]
type = CSV
execute_on = 'FINAL'
file_base = concentric
[]
[]
[Debug]
show_var_residual_norms = true
[]
(test/tests/axial_relocation/uo2_pulverization_phasefield2.i)
# This file is to test the phase-field based pulverization criterion for UO2 fuel
# with evolve_bubble_pressure_hbs = true and using the 3D phase field criterion
# for pulverization.
# In the test 5 axial fuel slices are modeled without cladding with an outer fuel
# radius of 4.5 mm and slice height of 0.1 m. Ten radial finite elements are used.
# The burnup increases linearly from the fuel centerline to the fuel surface.
# Temperature is held at constant T = 673.15 K from t = 0 to t = 100, followed
# by a ramp in temperature from t = 100 to t = 125. Pulverization will occur
# during the ramp only, in the rim region where a significant amount of high burnup
# structure formation has begun. Local pulverization is tracked with the material
# property pulverized, which is 0 where pulverization has not occured and 1 where
# it has occurred. This material property is output to the exodus file for this test.
# At each time step, the porosity in the HBS region is calculated at each radial
# position using the correlation due to Kampf in the UO2Thermal material.
# The porosity, along with the hydrostatic stress, are used to calculate the
# critical pressure for grain boundary fracture using data from fits to phase-field
# fracture simulations. The current pressure of the most likely bubble
# size is compared to the critical pressure to determine whether pulverization has
# occurred at each quadrature point.
# Based upon the conditions and threshold given above at t = 110 s the outer three
# elements should be completely pulverized. The inner radius of the third element
# is at a radius of 3.150 mm. Therefore the layered averaged pulverized fuel volume
# (in each layer in this case) is analytically determined by:
#
# V_p = pi * L * (R_o^2 - R_p^2)
#
# where L is the slice height (0.1 m), R_o is the outer fuel radius, and R_p is the
# radius into the fuel at which pulverization ends. Therefore:
#
# V_p = pi * (0.1) * (4.5e-3^2 - 3.150e-3^2)
# V_p = 3.24448e-6 m^3 in each layer.
#
# The layered_pulverized_fuel_volume AuxVariable computed by BISON gives
# a layered volume of pulverized fuel as 3.24448e-6 m^3.
[Mesh]
coord_type = RZ
[layered1D_mesh]
type = Layered1DMeshGenerator
elem_type = EDGE2
slices_per_block = 5
pellet_outer_radius = 4.5e-3
include_clad = false
fuel_height = 0.5
include_plenum = false
nx_p = 10
pellet_mesh_density = customize
pellet_bottom_coor = 0.0
[]
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[temperature]
order = FIRST
family = LAGRANGE
initial_condition = 600
[]
[]
[AuxVariables]
[burnup]
order = FIRST
family = LAGRANGE
[]
[fission_rate]
order = FIRST
family = LAGRANGE
[]
[pulverized_aux]
order = CONSTANT
family = MONOMIAL
[]
[layered_pulverized_fuel_volume]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[burnup_function]
type = ParsedFunction
expression = 'x*1.6*t/4.275'
[]
[temperature_function]
type = ParsedFunction
expression = 'if(t < 100, 673.15, 673.15+(t-100)*15.5)'
[]
[Fiss_func]
type = ParsedFunction
expression = '1.e19'
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temperature
[]
[]
[AuxKernels]
[burnup]
type = FunctionAux
variable = burnup
function = burnup_function
execute_on = 'initial linear'
[]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
value = 1
fission_rate_function = Fiss_func
execute_on = 'initial timestep_begin'
[]
[pulverized]
type = MaterialRealAux
block = fuel
variable = pulverized_aux
property = pulverized
execute_on = 'initial nonlinear'
[]
[layered_pulverized_fuel_volume]
type = SpatialUserObjectAux
variable = layered_pulverized_fuel_volume
execute_on = timestep_end
block = fuel
user_object = layered_pulverized_fuel_volume
[]
[]
[BCs]
[temperature]
type = FunctionDirichletBC
boundary = '10 12'
variable = temperature
function = temperature_function
[]
[]
[Materials]
[fission_gas_behavior]
type = UO2Sifgrs
block = fuel
temperature = temperature
fission_rate = fission_rate
burnup = burnup
skip_bdr_model = true
hbs_model = true
hbs_material = hbs_formation
[]
[uo2pulverizationmesoscale]
type = UO2PulverizationMesoscale
block = fuel
temperature = temperature
output_properties = pulverized
pulverization_criterion_type = phase_field_3D
outputs = exodus
[]
[dummy_stress]
type = GenericConstantRankTwoTensor
tensor_name = 'stress'
tensor_values = '-1e7 -1e7 -1e7 0 0 0'
[]
[fuel_thermal]
type = UO2Thermal
block = fuel
thermal_conductivity_model = STAICU
hbs_porosity_correction = KAMPF
model_hbs_formation = true
temperature = temperature
burnup_function = burnup_function
output_properties = hbs_porosity
outputs = exodus
[]
[hbs_formation]
type = HighBurnupStructureFormation
block = fuel
temperature = temperature
burnup = burnup
threshold_temperature = 1273.15 # default
output_properties = hbs_volume_fraction
outputs = exodus
[]
[]
[UserObjects]
[fuel_pin_geometry]
type = Layered1DFuelPinGeometry
include_clad = false
mesh_generator = layered1D_mesh
[]
[layered_pulverized_fuel_volume]
type = LayeredVariableIntegral
variable = pulverized_aux
fuel_pin_geometry = fuel_pin_geometry
direction = y
execute_on = 'initial timestep_end'
block = fuel
num_layers = 5
[]
[]
[Executioner]
type = Transient
solve_type = PJFNK
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
line_search = 'none'
l_max_its = 100
nl_max_its = 100
nl_rel_tol = 1e-8
nl_abs_tol = 1e-10
l_tol = 1e-5
start_time = 0.0
num_steps = 125
dt = 1
[]
[Outputs]
exodus = true
[]
(assessment/MOX/JOYO/B14/PTM010/analysis/b14_ptm010_1D_sample1.i)
# Sample at +33 mm from the midplane
initial_fuel_density = 10964.6
[GlobalParams]
density = ${initial_fuel_density}
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
[]
[Mesh]
coord_type = RZ
[layered1D_mesh]
type = Layered1DMeshGenerator
fuel_height = 10e-3
pellet_outer_radius = 0.002675
pellet_bottom_coor = 0.0
pellet_mesh_density = customize
nx_p = 200
elem_type = EDGE2
slices_per_block = 1
include_plenum = false
include_clad = false
[]
[]
[UserObjects]
[pin_geometry]
type = Layered1DFuelPinGeometry
include_clad = false
mesh_generator = layered1D_mesh
[]
[]
[Variables]
[temp]
initial_condition = 295.0
[]
[pore]
initial_condition = 0.143
scaling = 1e14
block = fuel
[]
[]
[AuxVariables]
[fission_rate]
[]
[burnup]
[]
[pore_speed_aux]
order = constant
family = monomial
[]
[]
[Functions]
[power_history]
type = PiecewiseLinear
x = '-200 0 72000 158040 160200 246600 248400 249000.012 251280'
y = '0 0 39575.6 39575.6 44023.6 44023.6 53603.8 53603.8 0'
[]
[f_temp_out_fuel]
type = PiecewiseLinear
x = '-200 0 251280'
y = '295 295 1294.5'
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temp
[]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temp
[]
[heat_source]
type = NeutronHeatSource
variable = temp
fission_rate = fission_rate
[]
[pore_continuity]
type = MOXPoreContinuity
variable = pore
temperature = temp
debug = 0
alpha = 0.25
beta = 1
heating_function = power_history
block = fuel
[]
[pore_diffusion]
type = MOXPoreDiffusion
variable = pore
debug = 0
nu = 1e-12
heating_function = power_history
v_upper = 1e-12
v_lower = 1e-20
block = fuel
[]
[poretimederivative]
type = CoefTimeDerivative
variable = pore
Coefficient = 1
block = fuel
[]
[]
[AuxKernels]
[pore_speed_aux]
type = MaterialRealAux
variable = pore_speed_aux
property = pore_velocity
block = fuel
execute_on = 'initial timestep_end'
[]
[fission_rate]
type = FissionRateGeneral
fission_rate_formulation = MOX
variable = fission_rate
block = fuel
initial_porosity = 0.143
rod_ave_lin_pow = power_history
pellet_diameter = 0.00535
execute_on = timestep_begin
porosity = pore
energy_per_fission = 3.2e-11
[]
[burnup]
type = BurnupAux
block = fuel
fission_rate = fission_rate
variable = burnup
execute_on = timestep_begin
[]
[]
[BCs]
[temp_fuel_outside]
type = FunctionDirichletBC
variable = temp
function = f_temp_out_fuel
boundary = 10
[]
[]
[Materials]
[fuel_thermal]
type = MAMOXThermal
temperature = temp
porosity = pore
block = fuel
Am_content = 0.0237
oxy_to_metal_ratio = 1.99
[]
[fuel_density]
type = ParsedMaterial
block = fuel
property_name = density
expression = ${initial_fuel_density}
[]
[pore_velocity]
type = MOXPoreVelocity
temperature = temp
limit = 1e-3
scale_factor = 0.1
block = fuel
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Dampers]
[bound]
type = BoundingValueNodalDamper
max_value = 1
min_value = 0
variable = pore
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -sub_pc_type'
petsc_options_value = 'asm lu'
line_search = 'none'
l_max_its = 50
l_tol = 8e-3
nl_max_its = 50
nl_rel_tol = 1e-5
nl_abs_tol = 1e-5
start_time = -200
n_startup_steps = 1
end_time = 251280
dtmax = 10000
dtmin = 0.25
[TimeStepper]
type = IterationAdaptiveDT
dt = 1e1
optimal_iterations = 15
iteration_window = 2
linear_iteration_ratio = 100
growth_factor = 2
cutback_factor = .5
force_step_every_function_point = true
timestep_limiting_function = power_history
[]
[]
[Postprocessors]
[ave_temp_interior]
type = ElementAverageValue
variable = temp
execute_on = 'initial linear'
[]
[average_burnup]
type = ElementAverageValue
variable = burnup
[]
[ave_pore]
type = ElementAverageValue
block = fuel
variable = pore
[]
[max_pore]
type = NodalExtremeValue
block = fuel
value_type = max
variable = pore
[]
[min_pore]
type = NodalExtremeValue
block = fuel
value_type = min
variable = pore
[]
[max_pore_speed]
type = ElementExtremeValue
block = fuel
value_type = max
variable = pore_speed_aux
[]
[rod_total_power]
type = LayeredElementIntegralPowerPostprocessor
variable = temp
fission_rate = fission_rate
block = fuel
fuel_pin_geometry = pin_geometry
[]
[rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 10e-3 # rod height
[]
[]
[VectorPostprocessors]
[fuel_radial_temperature_Sample]
type = LineValueSampler
variable = temp
start_point = '0.0 0.005 0.0'
end_point = '0.002675 0.005 0.0'
num_points = 200
execute_on = final
sort_by = x
outputs = line_plot
[]
[radial_porosity_Sample]
type = LineValueSampler
variable = pore
start_point = '0.0 0.005 0.0'
end_point = '0.002675 0.005 0.0'
num_points = 200
execute_on = final
sort_by = x
outputs = line_plot
[]
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = true
color = true
csv = true
[console]
type = Console
max_rows = 25
[]
[line_plot]
type = CSV
execute_on = 'FINAL'
time_step_interval = 1
file_base = 1d
create_final_symlink = true
[]
[chkfile]
type = CSV
execute_on = FINAL
show = 'ave_temp_interior max_pore'
[]
[]
[Debug]
show_var_residual_norms = true
[]
(test/tests/sifgrs/uo2/second_stage.i)
# @Requirement F2.40
# This test is for evaluating the second stage of the FGR process in the Sifgrs fission gas behavior model. The second stage involves the calculation of the gas behavior at grain boundaries and release to the fuel rod free volume.
# Sifgrs calculates the grain-boundary gas bubble kinetics, including bubble growth and coalescence driven by gas atoms and vacancies inflow at the bubbles, and release of a fraction of the grain-boundary gas after grain-boundary saturation. The saturation condition reads Fc = 0.5, with Fc being the fractional coverage of grain boundary surface by bubbles.
# This test is aimed at demonstrating how FGR commences upon attainment of the saturation condition (which occurs for this case after 8E+06 s), and how the saturation condition Fc = 0.5 is maintained from that moment on (see also attached file regression_tests_sifgrs.xlsx).
[Mesh]
[mesh]
type = FileMeshGenerator
file = 1hex8_10mm_cube.e
[]
[]
[Functions]
[Temp_func]
type = ParsedFunction
expression = '1400'
[]
[Fiss_func]
type = ParsedFunction
expression = '1.e19'
[]
[]
[Variables]
[T]
initial_condition = 1400
[]
[]
[AuxVariables]
[fission_rate]
[]
[GBCoverage]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = T
diffusion_coefficient = 1
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
value = 1
fission_rate_function = Fiss_func
execute_on = 'initial timestep_begin'
[]
[frcvrg]
type = MaterialRealAux
variable = GBCoverage
property = GBCoverage
execute_on = 'initial linear'
[]
[]
[BCs]
[bottom_T]
type = FunctionDirichletBC
variable = T
function = Temp_func
boundary = 1
[]
[]
[Materials]
[fission_gas_behavior]
type = UO2Sifgrs
block = 1
temperature = T
fission_rate = fission_rate
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
l_tol = 1e-4
nl_abs_tol = 1e-5
nl_rel_tol = 1e-5
start_time = 0.0
num_steps = 50
dt = 1e6
end_time = 5e7
[]
[Postprocessors]
[fis_gas_generated]
type = ElementIntegralFisGasGeneratedSifgrs
[]
[fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
[]
[]
[Outputs]
exodus = true
[]
(test/tests/mox_thermal/Amaya/ad_test.i)
# This test case is prepared to test the thermal conductivity using the Amaya MOX model.
#
# The temperature is ramped on all BCs of the unit line from 500 K to 3000K over 100 Ms.
# The fission rate is 2e19 n/m3/s, so that the burnup goes from 0 to
# ~ 8.6 at.% (82 MWd/kgU) at the end of the simulation.
#
# Thermal conductivity of MOX fuel at 95%TD with a 7% Pu content is computed
# using the Amaya MOX thermal conductivity model.
# The BISON predictions (BISON_k) compared to the expected results (expected_k)
# are summarized (see: post_processing.py --> comparison_results.csv) as:
#
# expected_k BISON_k percent_error
# 4.30774878 4.30774878 4.33E-13
# 4.178849627 4.178849627 7.44E-13
# 4.057207008 4.057207008 -4.00E-13
# 3.942475562 3.942475562 -5.55E-13
# 3.834072269 3.834072269 5.77E-13
[GlobalParams]
order = FIRST
family = LAGRANGE
[]
[Mesh]
[geom]
type = GeneratedMeshGenerator
dim = 1
elem_type= EDGE2
[]
[]
[Variables]
[T]
initial_condition = 500
[]
[]
[AuxVariables]
[fission_rate]
[]
[burnup]
[]
[th_cond]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[heat]
type = ADHeatConduction
variable = T
[]
[heat_ie]
type = ADHeatConductionTimeDerivative
variable = T
[]
[heat_source]
type = ADNeutronHeatSource
variable = T
energy_per_fission = 3.2e-11
fission_rate = fission_rate
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable= fission_rate
value = 2e19 # Standard fission_rate fissions/m^3/s
execute_on = 'initial timestep_begin'
[]
[th_cond]
type = ADMaterialRealAux
variable = th_cond
property = thermal_conductivity
execute_on = 'initial linear'
[]
[burnup]
type = ADBurnupAux
variable = burnup
density = 10431.0 # 95% TD
fission_rate = fission_rate
execute_on = timestep_begin
[]
[]
[Functions]
[temp_ramp]
type = PiecewiseLinear
x = '0.0 100.e6'
y = '500 3000'
[]
[]
[BCs]
[VariableT]
type = ADFunctionDirichletBC
boundary = 'left right'
variable = T
function = temp_ramp
[]
[]
[Materials]
[fuel_thermal]
type = ADMOXThermal
temperature = T
burnup = burnup
thermal_conductivity_model = AMAYA
oxy_to_metal_ratio = 2.0
initial_porosity = 0.05
Pu_content = 0.07
[]
[density]
type = ADParsedMaterial
property_name = density
expression = 10431.0
[]
[]
[Executioner]
type = Transient
start_time = 0
num_steps = 100
dt = 1.0e6
[]
[Postprocessors]
[avg_th_cond]
type = ElementAverageValue
variable = th_cond
execute_on = 'initial timestep_end'
[]
[average_rod_burnup]
type = ElementAverageValue
variable = burnup
execute_on = timestep_end
[]
[average_fuel_T]
type = ElementAverageValue
variable = T
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
csv = true
[]
(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
[]
[]
(test/tests/effective_burnup_aux/effective_burnup.i)
# Tests the BurnupEff aux kernel
# An up/down temperature ramp was selected to twice cross the user/model dictated temperature threshold for the high burnup structure (HBS). The resulting effective burnup is not incremented during this time and therefore falls below the 'normal' burnup.
[Mesh]
[mesh]
type = FileMeshGenerator
file = 1hex8_10mm_cube.e
[]
[]
[Functions]
[Temp_func]
type = PiecewiseLinear
x = '0. 1.e+08 2.e+08'
y = '1100. 1400. 1100. '
[]
[Fiss_func]
type = ParsedFunction
expression = '1.e19'
[]
[]
[Variables]
[temp]
order = FIRST
family = LAGRANGE
initial_condition = 1100
[]
[]
[AuxVariables]
[fission_rate]
order = FIRST
family = LAGRANGE
[]
[burnup]
order = FIRST
family = LAGRANGE
[]
[burnupeff]
order = FIRST
family = LAGRANGE
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temp
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
value = 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'
[]
[brnpeff]
type = EffectiveBurnupAux
variable = burnupeff
temperature = temp
burnup = burnup
block = 1
temp_cutoff = 1273.15
[]
[]
[BCs]
[bottom_T]
type = FunctionDirichletBC
variable = temp
function = Temp_func
boundary = 1
[]
[]
[Materials]
[UO2]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 1.0
specific_heat = 1.0
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
l_tol = 1.e-04
nl_abs_tol = 1.e-08
nl_rel_tol = 1.e-08
start_time = 0.
num_steps = 500
dt = 1.e+06
end_time = 2.e+08
[]
[Postprocessors]
[brnp]
type = ElementalVariableValue
elementid = 0
variable = burnup
[]
[brnpeff]
type = ElementalVariableValue
elementid = 0
variable = burnupeff
[]
[]
[Outputs]
[out]
type = Exodus
[]
[]
(test/tests/mox_pore_velocity/MOXPoreVelocity.i)
# This input files uses the pore difusion kernels
[UserObjects]
[pin_geometry]
type = Layered1DFuelPinGeometry
include_clad = false
mesh_generator = layered1D_mesh
[]
[]
[Mesh]
coord_type = RZ
[layered1D_mesh]
type = Layered1DMeshGenerator
fuel_height = 0.1
pellet_outer_radius = 0.0041
include_clad = false
pellet_bottom_coor = 0.0
pellet_mesh_density = customize
nx_p = 200
elem_type = EDGE2
slices_per_block = 1
include_plenum = false
[]
[]
[Variables]
[temperature]
initial_condition = 1400.0
[]
[pore]
initial_condition = 0.12
scaling = 1e14
[]
[]
[AuxVariables]
[pore_speed_aux]
order = constant
family = monomial
[]
[fission_rate_aux_variable_mox]
order = first
family = lagrange
[]
[]
[Functions]
[power_history1]
type = PiecewiseLinear
x = '0 10000'
y = '0 50000'
[]
[]
[Kernels]
[heat] # gradient term in heat conduction equation
type = HeatConduction
variable = temperature
[]
[heat_ie] # time term in heat conduction equation
type = HeatConductionTimeDerivative
variable = temperature
[]
[heat_source] # source term in heat conduction equation
type = NeutronHeatSource
variable = temperature
block = fuel # fission rate applied to the fuel (block 2) only
fission_rate = fission_rate_aux_variable_mox
[]
[pore_diffusion]
type = MOXPoreDiffusion
variable = pore
debug = 0
# nu = 3.25e-8 #seems to be THE value to use... result is super sensitive to this number
# nu = 10e-10
nu = 1e-12
heating_function = power_history1
v_upper = 1e-12
v_lower = 1e-20
# v_upper = 1
# v_lower = 1
[]
[pore_continuity]
type = MOXPoreContinuity
variable = pore
temperature = temperature
debug = 0
alpha = 0.25
beta = 1
heating_function = power_history1
[]
[poretimederivative]
type = CoefTimeDerivative
variable = pore
Coefficient = 1
[]
[]
[AuxKernels]
[pore_speed_aux]
type = MaterialRealAux
variable = pore_speed_aux
property = pore_velocity
block = fuel
execute_on = 'initial timestep_end'
[]
[fission_rate_aux_kernel_mox]
type = FissionRateGeneral
fission_rate_formulation = MOX
variable = fission_rate_aux_variable_mox
block = fuel
porosity = pore
initial_porosity = 0.12
rod_ave_lin_pow = power_history1
pellet_diameter = 0.0082
pellet_inner_diameter = 0
energy_per_fission = 3.2e-11
execute_on = 'initial timestep_end'
[]
[]
[BCs]
[temp_outside] # pin pellets and clad along axis of symmetry (y)
type = DirichletBC
variable = temperature
boundary = 10
value = 1400
[]
[]
[Materials]
[fuel_thermal]
type = MAMOXThermal
block = fuel
temperature = temperature
porosity = pore
porosity_limit = 0.9
[]
[density_block]
type = GenericConstantMaterial
block = fuel
prop_names = density
prop_values = 10431.0
[]
[pore_velocity]
type = MOXPoreVelocity
block = fuel
temperature = temperature
limit = 1e-3
# scale_factor = 0.05 # go back to this if necessary
scale_factor = 0.1
[]
[]
[Dampers]
[limitT]
type = MaxIncrement
max_increment = 100.0
variable = temperature
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package' # -mat_superlu_dist_fact'
petsc_options_value = 'lu superlu_dist' # SamePattern_SameRowPerm'
line_search = 'none'
l_max_its = 50
l_tol = 8e-3
nl_max_its = 25
nl_rel_tol = 1e-5
nl_abs_tol = 1e-8 #1e-10
n_startup_steps = 1
end_time = 1.5e5
num_steps = 2
dtmax = 1000
dtmin = 1
[TimeStepper]
type = IterationAdaptiveDT
dt = 2e2
optimal_iterations = 8
iteration_window = 2
linear_iteration_ratio = 100
growth_factor = 2
cutback_factor = .5
force_step_every_function_point = true
timestep_limiting_function = power_history1
[]
[]
[Postprocessors]
[_dt] # time step
type = TimestepSize
[]
[z_nonlinear_its] # number of nonlinear iterations at each timestep
type = NumNonlinearIterations
[]
[power_input]
type = FunctionValuePostprocessor
function = power_history1
scale_factor = 0.1 # rod height
[]
[rod_total_power_mox]
type = LayeredElementIntegralPowerPostprocessor
variable = temperature
block = fuel
fission_rate = fission_rate_aux_variable_mox
fuel_pin_geometry = pin_geometry
[]
[ave_fuel_temp]
type = ElementAverageValue
block = fuel
variable = temperature
[]
[max_fuel_temp]
type = NodalExtremeValue
block = fuel
value_type = max
variable = temperature
[]
[ave_pore]
type = ElementAverageValue
block = fuel
variable = pore
[]
[max_pore]
type = NodalExtremeValue
block = fuel
value_type = max
variable = pore
[]
[min_pore]
type = NodalExtremeValue
block = fuel
value_type = min
variable = pore
[]
[max_pore_speed]
type = ElementExtremeValue
block = fuel
value_type = max
variable = pore_speed_aux
[]
[]
# The MOX capabilities are under active development and the blocks below are useful for
# development and debugging by providing the profiles of the desired quantities.
# They are commented out for the tests, as it would unnecessarily increase computational costs
# and memory requirements.
# [VectorPostprocessors]
# [line_value_vector_postprocessor_pore]
# type = LineValueSampler
# variable = pore
# start_point = '0.0 0.05 0'
# end_point = '0.0041 0.05 0'
# num_points = 100
# sort_by = x
# execute_on = linear
# outputs = stuff_v_rad
# control_tags = a
# []
# [line_value_vector_postprocessor_pore_speed]
# type = LineValueSampler
# variable = pore_speed_aux
# start_point = '0.0 0.05 0'
# end_point = '0.0041 0.05 0'
# num_points = 100
# sort_by = x
# execute_on = linear
# outputs = stuff_v_rad
# []
# [line_value_vector_postprocessor_temperature]
# type = LineValueSampler
# variable = temperature
# start_point = '0.0 0.05 0'
# end_point = '0.0041 0.05 0'
# num_points = 100
# sort_by = x
# execute_on = linear
# outputs = stuff_v_rad
# []
# []
[Outputs]
exodus = true
csv = false
color = false
[console]
type = Console
max_rows = 25
all_variable_norms = true
[]
# [stuff_v_rad]
# type = CSV
# execute_on = 'FINAL'
# []
[]
[Debug]
show_var_residual_norms = true
[]
(assessment/MOX/JOYO/B14/PTM010/analysis/b14_ptm010_1D_sample2.i)
# Sample at +97mm from midplane
initial_fuel_density = 10964.6
[GlobalParams]
density = ${initial_fuel_density}
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
[]
[Mesh]
coord_type = RZ
[layered1D_mesh]
type = Layered1DMeshGenerator
fuel_height = 10e-3
pellet_outer_radius = 0.002675
pellet_bottom_coor = 0.0
pellet_mesh_density = customize
nx_p = 200
elem_type = EDGE2
slices_per_block = 1
include_plenum = false
include_clad = false
[]
[]
[UserObjects]
[pin_geometry]
type = Layered1DFuelPinGeometry
include_clad = false
mesh_generator = layered1D_mesh
[]
[]
[Variables]
[temp]
initial_condition = 295.0
[]
[pore]
initial_condition = 0.143
scaling = 1e14
block = fuel
[]
[]
[AuxVariables]
[fission_rate]
[]
[burnup]
[]
[pore_speed_aux]
order = constant
family = monomial
[]
[]
[Functions]
[power_history]
type = PiecewiseLinear
x = '-200 0 72000 158040 160200 246600 248400 249000.012 251280'
y = '0 0 36350.6 36350.6 40436.2 40436.2 49235.7 49235.7 0'
[]
[f_temp_out_fuel]
type = PiecewiseLinear
x = '-200 0 251280'
y = '295 295 1325.5'
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temp
[]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temp
[]
[heat_source]
type = NeutronHeatSource
variable = temp
fission_rate = fission_rate
[]
[pore_continuity]
type = MOXPoreContinuity
variable = pore
temperature = temp
debug = 0
alpha = 0.25
beta = 1
heating_function = power_history
block = fuel
[]
[pore_diffusion]
type = MOXPoreDiffusion
variable = pore
debug = 0
nu = 1e-12
heating_function = power_history
v_upper = 1e-12
v_lower = 1e-20
block = fuel
[]
[poretimederivative]
type = CoefTimeDerivative
variable = pore
Coefficient = 1
block = fuel
[]
[]
[AuxKernels]
[pore_speed_aux]
type = MaterialRealAux
variable = pore_speed_aux
property = pore_velocity
block = fuel
execute_on = 'initial timestep_end'
[]
[fission_rate]
type = FissionRateGeneral
fission_rate_formulation = MOX
variable = fission_rate
block = fuel
initial_porosity = 0.143
rod_ave_lin_pow = power_history
pellet_diameter = 0.00535
execute_on = timestep_begin
porosity = pore
energy_per_fission = 3.2e-11
[]
[burnup]
type = BurnupAux
block = fuel
fission_rate = fission_rate
variable = burnup
execute_on = timestep_begin
[]
[]
[BCs]
[temp_fuel_outside]
type = FunctionDirichletBC
variable = temp
function = f_temp_out_fuel
boundary = 10
[]
[]
[Materials]
[fuel_thermal]
type = MAMOXThermal
temperature = temp
porosity = pore
block = fuel
Am_content = 0.0237
oxy_to_metal_ratio = 1.99
[]
[fuel_density]
type = ParsedMaterial
block = fuel
property_name = density
expression = ${initial_fuel_density}
[]
[pore_velocity]
type = MOXPoreVelocity
temperature = temp
limit = 1e-3
scale_factor = 0.1
block = fuel
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Dampers]
[bound]
type = BoundingValueNodalDamper
max_value = 1
min_value = 0
variable = pore
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -sub_pc_type'
petsc_options_value = 'asm lu'
line_search = 'none'
l_max_its = 50
l_tol = 8e-3
nl_max_its = 50
nl_rel_tol = 1e-5
nl_abs_tol = 1e-5
start_time = -200
n_startup_steps = 1
end_time = 251280
dtmax = 10000
dtmin = 0.25
[TimeStepper]
type = IterationAdaptiveDT
dt = 1e1
optimal_iterations = 15
iteration_window = 2
linear_iteration_ratio = 100
growth_factor = 2
cutback_factor = .5
force_step_every_function_point = true
timestep_limiting_function = power_history
[]
[]
[Postprocessors]
[ave_temp_interior]
type = ElementAverageValue
variable = temp
execute_on = 'initial linear'
[]
[average_burnup]
type = ElementAverageValue
variable = burnup
[]
[ave_pore]
type = ElementAverageValue
block = fuel
variable = pore
[]
[max_pore]
type = NodalExtremeValue
block = fuel
value_type = max
variable = pore
[]
[min_pore]
type = NodalExtremeValue
block = fuel
value_type = min
variable = pore
[]
[max_pore_speed]
type = ElementExtremeValue
block = fuel
value_type = max
variable = pore_speed_aux
[]
[rod_total_power]
type = LayeredElementIntegralPowerPostprocessor
variable = temp
fission_rate = fission_rate
block = fuel
fuel_pin_geometry = pin_geometry
[]
[rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 10e-3 # rod height
[]
[]
[VectorPostprocessors]
[fuel_radial_temperature_Sample]
type = LineValueSampler
variable = temp
start_point = '0.0 0.005 0.0'
end_point = '0.002675 0.005 0.0'
num_points = 200
execute_on = final
sort_by = x
outputs = line_plot
[]
[radial_porosity_Sample]
type = LineValueSampler
variable = pore
start_point = '0.0 0.005 0.0'
end_point = '0.002675 0.005 0.0'
num_points = 200
execute_on = final
sort_by = x
outputs = line_plot
[]
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = true
color = true
csv = true
[console]
type = Console
max_rows = 25
[]
[line_plot]
type = CSV
execute_on = 'FINAL'
time_step_interval = 1
file_base = 1d
create_final_symlink = true
[]
[chkfile]
type = CSV
execute_on = FINAL
show = 'ave_temp_interior max_pore'
[]
[]
[Debug]
show_var_residual_norms = true
[]
(test/tests/sifgrs/uo2/first_stage_restart1.i)
# This test is for evaluating the first stage (i.e., the intra-granular diffusion calculation) of the Sifgrs fission gas behavior model.
# The first stage is isolated by setting the fractional bubble coverage at grain boundary saturation to zero (saturation_coverage = 0). Under this condition (i.e. gas reaching the grain boundaries goes instantaneously to the plenum), the ratio of fission gas released to fission gas generated calculated by the model should compare very closely with the analytical expression for fractional fission gas release fraction from the grains published by Speight (Nuclear Science and Engineering 37, 180, 1969). The Speight equation for fission gas release fraction (released/produced) is
#
# parameters:
# n and no are summation integers
# a = grain radius in m
# pi = the number pi 3.14159...
# D = effective diffusion coefficient in m^2/s where D includes the effects of intragranular trapping and resolution (see White, JNM 118, 1, 1983, and the
# fgr_diffusion_coefficient_test in BISON for a description)
# t = time in seconds
#
# 6*a^2
# f = 1 - sum(n=1, to no) ---------------- * {1 - exp -[D*n^2*pi^2*t/a^2]}
# pi^4 * D*t*n^4
#
# For no = 1, D = 4.123e-19 m^2/s, a = 1e-5 m, t = 1e6 s, f = 0.596.
# For no = 50, and the same parameters defined above, f = 0.1388
#
# With the output from this test, if one calculates fission gas released / fission gas produced at
# t = 1.e+06, the result should be 0.1032, which compares well with the analytical solution from Speight.
#
# See also the sheet sifgrs_first_stage of the attached excel file (regression_tests_sifgrs.xlsx).
# Check of fission gas produced
# beta = rate of gas production per unit volume by fission
# beta * time * volume = gas produced
# The following parameters are used to calculate beta
#
# t = time in seconds = 5e7
# Avogadros number = 6.023e23 atoms/mol
# FY = fractional yield = fraction of fission gas atoms per fission = 0.3017 atoms/fission
# Y = yield = FY/Avogadros number = atoms/fission / atoms/mol to give mols/fission
# F = fission rate = fissions/m^3*s = 2.5e19
# beta = F*Y = fissions/m^3s * mols/fission = mols/m^3*s
# gas produced = beta * time * volume
# For this test problem, volume = (0.01m)^3 = 1e-6m^3 = volume of single finite element in this problem
#
# Y = 0.3017/6.023e23 = 5.0091e-25 mol/fission
# beta = 2.5e19*5.009e-25 = 1.25e-5 mol/m^3s
# gas produced = 1.25e-5*5e7*1e-6 = 6.26e-4 mols
#
[Mesh]
[mesh]
type = FileMeshGenerator
file = 1hex8_10mm_cube.e
[]
[]
[Functions]
[Temp_func]
type = ParsedFunction
expression = '1700'
[]
[Fiss_func]
type = ParsedFunction
expression = '2.5e19'
[]
[]
[Variables]
[T]
order = FIRST
family = LAGRANGE
initial_condition = 1700
[]
[]
[AuxVariables]
[fission_rate]
order = FIRST
family = LAGRANGE
[]
[fract_FGR_analytical]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = T
diffusion_coefficient = 1
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
value = 1
fission_rate_function = Fiss_func
execute_on = 'initial timestep_begin'
[]
[FRA]
type = MaterialRealAux
variable = fract_FGR_analytical
property = fract_FGR_analytical
[]
[]
[BCs]
[bottom_T]
type = FunctionDirichletBC
variable = T
function = Temp_func
boundary = 1
[]
[]
[Materials]
[fission_gas_behavior]
type = UO2Sifgrs
block = 1
saturation_coverage = 0
temperature = T
fission_rate = fission_rate
testing_output = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
l_tol = 1e-4
nl_abs_tol = 1e-5
nl_rel_tol = 1e-5
start_time = 0.0
num_steps = 28 #50
dt = 1e6
[]
[Postprocessors]
[fis_gas_generated]
type = ElementIntegralFisGasGeneratedSifgrs
execute_on = 'initial timestep_end'
[]
[fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
[out]
type = Exodus
[]
[console]
type = Console
execute_on = 'initial failed linear nonlinear timestep_end'
[]
[checkpoint]
type = Checkpoint
num_files = 1
[]
[]
[Problem]
[]
(test/tests/sifgrs/uo2/ad_diffusion_coefficient.i)
# Analytical test for the diffusion coefficient of the Sifgrs fission gas behavior model.
#
# For the purpose of verifying the implementation of the diffusion coefficient, the BISON results are compared with an independent calculations (see attached file regression_tests_sifgrs.xlsx).
# The formulation for the diffusion coefficient adopted in the Sifgrs model is based on the formulation of Turnbull et al. (JNM 107, 168, 1982; Preston, England, September 18-22, 1988).
#
# Variable definitions
# T = temperature in K
# F = Fission rate in fissions/(m^3*s)
# k = Boltzmann constant in J/K = 1.380651e-23
# Zo = fragment influence; fission fragment range of influence in meters = 1e-9
# lf = fragment range; fission fragment travel distance before coming to rest in meters = 6e-6
#
# Equations and sample calculations
#
# Use T = 1700 K, F = 2.5e19 fission/m^3s
#
# Diffusion coefficient terms (m^2/s)
#
# D1 = intrinsic term = 7.6e-10 * exp(-4.8599e-19/kT)
# D1 = 7.73e-19
#
# D2 = enhanced vacancy term = 1.41e-25 * exp(-1.9053e-19/kT) * sqrt(F)
# D2 = 2.10e-19
#
# The purely rating dependent term D3 is neglected (see, e.g., P. Losonen JNM, 304, 29, 2002)
#
# D = single gas atom diffusion coefficient = D1 + 4*D2
# D = 1.61e-18
#
# Based on the formulation of Speight (Nuclear Science and Engineering 37, 180, 1969), include effects of intragranular trapping and resolution to compute an effective diffusion coefficient. The trapping and resolution rates are computed using relations from White and Tucker (JNM 118, p1, 1983)
#
# R = Intragranular bubble radius in m = 5e-10*(1 + 106*exp(-8703/T))
# R = 8.17e-10
#
# Radius_sum = intragranular bubble radius + fragment influence = R + Zo in m
# Radius_sum = 1.82e-09
#
# CBtot = intragranular bubble concentration in 1/m^3 = 1.52e+27 / T - 3.3e+23
# CBtot = 5.64e+23
#
# g = trapping rate = 4 * pi * R * D * CBtot
# g = 5.70e-03
#
# b = resolution rate = 3.03 * F * pi * lf * Radius_sum^2
# b = 4.71e-03
#
# Deff = effective diffusion coefficient = D*b/(b + g)
# Deff = 5.41e-19
#
# Example problem description
#
# A single hex 8 element is used to solve the heat equation with no source term. One boundary of the block is insulated while the
# boundary opposite to the insulated boundary is assigned a prescibed Dirichlet boundary condition defined by a function.
# The function increases the temperature, starting at 800 K increasing linearly to 1700 K. At the same time, the fission rate is increasing linearly from 1e19 to 2.5e19. At the final time in this calculation, Deff should equal 5.41e-19.
# See also the sheet sifgr_diffusion_coefficient of the attached file (regression_tests_sifgrs.xlsx), which plots Deff values from this calculation and independent calculations. One should be able to reproduce that plot with the results from this test.
#
[Mesh]
[mesh]
type = FileMeshGenerator
file = 1hex8_10mm_cube.e
[]
[]
[Functions]
[Temp_func]
type = PiecewiseLinear
x = '0 1.2e7'
y = '800 1700'
scale_factor = 1
[]
[Fiss_func]
type = PiecewiseLinear
x = '0 1.2e7'
y = '1e19 2.5e19'
[]
[]
[Variables]
[T]
initial_condition = 800.0
[]
[]
[AuxVariables]
[fission_rate]
[]
[eff_diff_coeff]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[heat]
type = ADHeatConduction
variable = T
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
value = 1
fission_rate_function = Fiss_func
execute_on = 'initial timestep_begin'
[]
[diffusion_coefficient]
type = ADMaterialRealAux
variable = eff_diff_coeff
property = eff_diff_coeff
[]
[]
[BCs]
[bottom_T]
type = ADFunctionDirichletBC
variable = T
function = Temp_func
boundary = 1
[]
[]
[Materials]
[UO2]
type = ADHeatConductionMaterial
block = 1
thermal_conductivity = 1.0
specific_heat = 1.0
[]
[fission_gas_behavior]
type = ADUO2Sifgrs
block = 1
temperature = T
fission_rate = fission_rate
testing_output = true
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
start_time = 0.0
num_steps = 12
dt = 1e6
[]
[Postprocessors]
[fis_gas_generated]
type = ADElementIntegralFisGasGeneratedSifgrs
block = 1
[]
[fis_gas_grain]
type = ADElementIntegralFisGasGrainSifgrs
block = 1
[]
[fis_gas_boundary]
type = ADElementIntegralFisGasBoundarySifgrs
block = 1
[]
[fis_gas_released]
type = ADElementIntegralFisGasReleasedSifgrs
block = 1
[]
[]
[Outputs]
exodus = true
[]
(test/tests/thermalUO2/ad_thermalUO2_jac_test.i)
[Mesh]
[mesh]
type = FileMeshGenerator
file = pelletfine1_rz.e
[]
[]
[Variables]
[T]
order = FIRST
family = LAGRANGE
initial_condition = 300.0 # set initial T to ambient
[]
[]
[AuxVariables]
[fission_rate]
order = FIRST
family = LAGRANGE
block = 2
[]
[burnup]
order = FIRST
family = LAGRANGE
block = 2
[]
[th_cond]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[heat]
type = ADHeatConduction
variable = T
[]
[heat_source]
type = ADNeutronHeatSource
variable = T
block = 2
energy_per_fission = 3.2e-11
fission_rate = fission_rate
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable= fission_rate
block = 2
value = 1.183e19 # corrected average power to 200 W/cm
execute_on = 'initial timestep_begin'
[]
[th_cond]
type = ADMaterialRealAux
variable = th_cond
property = thermal_conductivity
block = 2
execute_on = linear
[]
[burnup]
type = ConstantAux
variable = burnup
value = 0.001
execute_on = 'initial timestep_begin'
[]
[]
[BCs]
[ConstantT]
type = ADDirichletBC
boundary = 10
variable = T
value = 500
[]
[]
[Materials]
[fuel_thermal]
type = ADUO2Thermal
block = 2
thermal_conductivity_model = FINK_LUCUTA
temperature = T
burnup = burnup
initial_porosity = 0.015
[]
[density]
type = ParsedMaterial
block = 2
property_name = density
expression = 10431.0
[]
[]
[Executioner]
type = Steady
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '100 hypre boomeramg 4'
line_search = 'none'
solve_type = 'PJFNK'
l_max_its = 60
nl_max_its = 15
nl_rel_tol = 1e-9
nl_abs_tol = 1e-10
l_tol = 1e-5
[]
[Outputs]
csv = true
[]
(examples/3D_rodlet_3pellets/discrete_half_symm/3d_3pellets.i)
initial_fuel_density = 10431.0
[GlobalParams]
density = ${initial_fuel_density} #95% TD (TD = 10980)
displacements = 'disp_x disp_y disp_z'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission (205 Mev)
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
group_variables = 'disp_x disp_y disp_z'
[]
[Mesh]
partitioner = centroid
centroid_partitioner_direction = y
patch_size = 5
patch_update_strategy = auto
[mesh]
type = FileMeshGenerator
file = DiscreteThreePellets3D.e
[]
[]
[Variables]
[temp]
initial_condition = 580.0
[]
[]
[AuxVariables]
[fission_rate]
block = 3
[]
[fast_neutron_flux]
[]
[fast_neutron_fluence]
[]
[grain_radius]
block = 3
initial_condition = 5e-6
[]
[gas_swell]
order = CONSTANT
family = MONOMIAL
block = 3
[]
[hoop_inelastic_strain]
order = CONSTANT
family = MONOMIAL
block = 1
[]
[gap_conductance]
order = CONSTANT
family = MONOMIAL
[]
[pid]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[power_history]
type = PiecewiseLinear
x = '0 1.0e4 1.0e8'
y = '0 1.0 1.0'
scale_factor = 25e3 # 25 kW/m peak power.
[]
[axial_peaking_factors]
type = ParsedFunction
expression = 1
[]
[coolant_pressure_ramp]
type = PiecewiseLinear
x = '-200 0'
y = '0 1'
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[pellets]
block = 3
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 = 1
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 = 3
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
[]
[]
[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
fission_rate = fission_rate
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
block = 3
value = 5.3548e+14
fission_rate_function = power_history
[]
[fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = 1
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
factor = 2.34e+13
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
[]
[grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temperature = temp
execute_on = linear
[]
[gas_swell]
type = MaterialRealAux
block = 3
variable = gas_swell
property = deltav_v0_bubble_GB
execute_on = timestep_end
[]
[hoop_inelastic_strain]
type = RankTwoScalarAux
rank_two_tensor = creep_strain
variable = hoop_inelastic_strain
scalar_type = HoopStress
execute_on = timestep_end
[]
[pid]
type = ProcessorIDAux
variable = pid
[]
[gap_cond]
type = MaterialRealAux
property = gap_conductance
variable = gap_conductance
boundary = 10
[]
[]
[Contact]
[pellet_clad_mechanical]
primary = 5
secondary = 10
formulation = kinematic
penalty = 1e14
model = frictionless
tangential_tolerance = 5e-4
normal_smoothing_distance = 0.1
normalize_penalty = true
[]
[]
[ThermalContact]
[pellet_clad_thermal]
type = GasGapHeatTransfer
variable = temp
primary = 5
secondary = 10
gas_released = fis_gas_released_model
initial_moles = initial_moles
jump_distance_model = LANNING
layer_thickness = layer_thickness
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
roughness_coef = 3.2
roughness_secondary = 1e-6
roughness_primary = 2e-6
emissivity_primary = 0.8
emissivity_secondary = 0.8
quadrature = true
normal_smoothing_distance = 0.1
[]
[]
[BCs]
[no_x_all]
type = DirichletBC
variable = disp_x
boundary = 1004
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 = 20
value = 0.0
[]
[no_z_wedge]
type = DirichletBC
variable = disp_z
boundary = 99
value = 0.0
[]
[Pressure]
[coolantPressure]
boundary = 2
factor = 15.5e6
function = coolant_pressure_ramp
[]
[]
[PlenumPressure]
[plenumPressure]
boundary = 9
initial_pressure = 2.0e6
startup_time = 0.0
material_input = fis_gas_released_model
output_initial_moles = initial_moles
R = 8.3143
temperature = interior_temp
volume = gas_volume
output = plenum_pressure
[]
[]
[]
[CoolantChannel]
[convective_clad_surface]
boundary = 2
variable = temp
inlet_temperature = 580 # K
inlet_pressure = 15.5e6 # PA
inlet_massflux = 3880 # kg/m^2-sec
rod_diameter = 0.95e-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 = 3
thermal_conductivity_model = NFIR
temperature = temp
burnup_function = burnup
initial_porosity = 0.05
[]
[fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = 3
[]
[fuel_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = 3
youngs_modulus = 2.0e11
poissons_ratio = 0.345
[]
[fuel_relocation]
type = UO2RelocationEigenstrain
block = 3
burnup_function = burnup
diameter = 0.00836
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
diametral_gap =50.0e-6
relocation_activation1 = 5000
burnup_relocation_stop = 0.02
eigenstrain_name = 'fuel_relocation_eigenstrain'
[]
[fuel_swelling]
type = UO2VolumetricSwellingEigenstrain
block = 3
burnup_function = burnup
temperature = temp
initial_fuel_density = 10431.0
eigenstrain_name = 'fuel_volumetric_swelling_eigenstrain'
[]
[fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = 3
thermal_expansion_coeff = 10.0e-6
temperature = temp
stress_free_temperature = 580.0
eigenstrain_name = 'fuel_thermal_strain'
[]
[fission_gas_release]
type = UO2Sifgrs
block = 3
temperature = temp
fission_rate = fission_rate
grain_radius = grain_radius
gbs_model = true
burnup = burnup
diff_coeff_option = TURNBULL_D1_D2
[]
[fuel_density]
type = StrainAdjustedDensity
block = 3
strain_free_density = ${initial_fuel_density}
[]
[clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[]
[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 = 580.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 = 6551.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'
line_search = 'none'
l_max_its = 25
nl_max_its = 40
nl_rel_tol = 1e-5
nl_abs_tol = 1e-8
start_time = -200
dtmax = 1.0e6
dtmin = 1.0
end_time = 3.0e7
automatic_scaling = true
compute_scaling_once = true
[TimeStepper]
type = IterationAdaptiveDT
dt = 200
optimal_iterations = 15
iteration_window = 3
growth_factor = 2.0
cutback_factor = 0.5
[]
[Quadrature]
order = fifth
side_order = seventh
[]
[]
[Postprocessors]
[clad_inner_vol]
type = InternalVolume
boundary = 7
scale_factor = 2.0 # Half-Symmetry Model Correction
execute_on = 'INITIAL TIMESTEP_END'
[]
[pellet_volume]
type = InternalVolume
boundary = 8
scale_factor = 2.0 # Half-Symmetry Model Correction
execute_on = 'INITIAL TIMESTEP_END'
[]
[gas_volume]
type = InternalVolume
boundary = 9
scale_factor = 2.0 # Half-Symmetry Model Correction
execute_on = 'initial linear'
[]
[interior_temp]
type = SideAverageValue
boundary = 7
variable = temp
execute_on = 'initial linear'
[]
[fis_gas_produced_model]
type = ElementIntegralFisGasGeneratedSifgrs
block = 3
execute_on = 'initial timestep_end'
[]
[fis_gas_produced] # Scaled PostProcessor for Half-Symmetry Model
type = ScalePostprocessor
value = fis_gas_produced_model
scaling_factor = 2.0
execute_on = 'initial timestep_end'
[]
[fis_gas_released_model]
type = ElementIntegralFisGasReleasedSifgrs
block = 3
execute_on = 'initial timestep_end'
[]
[fission_gas_released] # Scaled PostProcessor for Half-Symmetry Model
type = ScalePostprocessor
value = fis_gas_released_model
scaling_factor = 2.0
execute_on = 'initial timestep_end'
[]
[fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = 3
outputs = exodus
[]
[fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = 3
outputs = exodus
[]
[power_history]
type = FunctionValuePostprocessor
function = power_history
execute_on = 'initial timestep_end'
[]
[flux_from_clad_model]
type = SideDiffusiveFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[]
[flux_from_clad] # Scaled PostProcessor for Half-Symmetry Model
type = ScalePostprocessor
value = flux_from_clad_model
scaling_factor = 2.0
execute_on = 'initial timestep_end'
[]
[flux_from_fuel_model]
type = SideDiffusiveFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[]
[flux_from_fuel] # Scaled PostProcessor for Half-Symmetry Model
type = ScalePostprocessor
value = flux_from_fuel_model
scaling_factor = 2.0
execute_on = 'initial timestep_end'
[]
[average_burnup]
type = RodAverageBurnup
burnup_function = burnup
[]
[average_fissionrate]
type = ElementAverageValue
block = 3
variable = fission_rate
execute_on = 'initial timestep_end'
[]
[rod_total_power_model]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = 3
execute_on = 'initial timestep_end'
[]
[rod_total_power] # Scaled PostProcessor for Half-Symmetry Model
type = ScalePostprocessor
value = rod_total_power_model
scaling_factor = 2.0
execute_on = 'initial timestep_end'
[]
[rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 0.03
execute_on = 'initial timestep_end'
[]
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
time_step_interval = 1
exodus = true
[console]
type = Console
solve_log = true
output_linear = true
max_rows = 25
[]
[chkfile]
type = CSV
execute_on = FINAL
show = 'plenum_pressure interior_temp gas_volume'
[]
[]
(assessment/MOX/JOYO/B14/PTM002/analysis/b14_ptm002_2DRZ_t.i)
initial_fuel_density = 11057.75
[GlobalParams]
density = ${initial_fuel_density}
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
volumetric_locking_correction = false
displacements = 'disp_x disp_y'
[]
[Problem]
type = ReferenceResidualProblem
extra_tag_vectors = 'ref'
reference_vector = 'ref'
[]
[Mesh]
coord_type = RZ
[smeared_pellet_mesh]
type = FuelPinMeshGenerator
pellet_quantity = 1
pellet_height = 0.4
pellet_outer_radius = 0.002675
pellet_mesh_density = customize
clad_mesh_density = customize
clad_gap_width = 0.000105
clad_thickness = 0.00047
clad_bot_gap_height = 1.0e-3
bottom_clad_height = 2.24e-3
top_clad_height = 2.24e-3
clad_top_gap_height = 0.685
elem_type = QUAD8
nx_c = 4
ny_c = 100
nx_p = 20
ny_p = 100
ny_cu = 3
ny_cl = 3
[]
patch_size = 50
patch_update_strategy = iteration
partitioner = centroid
centroid_partitioner_direction = y
[]
[UserObjects]
[pin_geometry]
type = FuelPinGeometry
[]
[]
[Variables]
[temp]
initial_condition = 295.0
[]
[]
[AuxVariables]
[pore]
[]
[fission_rate]
[]
[burnup]
[]
[radial_strain]
order = CONSTANT
family = MONOMIAL
[]
[effective_creep_strain]
block = clad
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[power_history] #related to the LHGR at the midplane
type = PiecewiseLinear
x = ' 0 72000 158040 160200 246600 248400 249000.012 251280'
y = ' 0 39814.5 39814.5 44289.3 44289.3 53927.4 53927.4 0'
[]
[fast_neutron_flux_function]
type = PiecewiseLinear
x = '0 251280'
y = '3.3e+15 3.3e+15'
[]
[f_temp_out_clad]
type = PiecewiseBilinear
x = '0.000175 0.0464075 0.0843675 0.1075625 0.152025 0.1994625 0.2464725 0.2947475 0.356915 0.43356 0.49848 0.625 0.700475 0.797485 0.8723425 0.96'
y = '0 251280'
z = '295 295 295 295 295 295 295 295 295 295 295 295 295 295 295 295 634.94 662.273 676.998 686.217 706.339 727 743.358 758.311 780.069 799.077 815.576 846.374 860.233 875.494 882.809 889.8'
scale_factor = 1
axis = 1
[]
[axial_peaking_factors]
type = PiecewiseBilinear
x = '0.000175 0.0464075 0.0843675 0.1075625 0.152025 0.1994625 0.2464725 0.2947475 0.356915 0.43356 0.49848 0.625 0.700475 0.797485 0.8723425 0.96'
y = '0 251280'
z = '0.751 0.752 0.767 0.796 0.82 0.852 0.875 0.915 0.944 0.963 0.988 1 0.985 0.955 0.913 0.846 0.751 0.752 0.767 0.796 0.82 0.852 0.875 0.915 0.944 0.963 0.988 1 0.985 0.955 0.913 0.846'
scale_factor = 1
axis = 1
[]
[q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[]
[average_power_history]
type = PiecewiseLinear
x = ' 0 72000 158040 160200 246600 248400 249000.012 251280'
y = ' 0 34700 34700 38600 38600 47000 47000 0'
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[pellets]
block = pellet
add_variables = true
strain = FINITE
eigenstrain_names = 'fuel_thermal_strain fuel_volumetric_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
use_finite_deform_jacobian = true
extra_vector_tags = 'ref'
[]
[clad]
block = clad
add_variables = true
strain = FINITE
eigenstrain_names = 'clad_thermal_eigenstrain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
use_finite_deform_jacobian = true
extra_vector_tags = 'ref'
[]
[]
[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
variable = temp
fission_rate = fission_rate
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[fission_rate]
type = FissionRateGeneral
fission_rate_formulation = MOX
variable = fission_rate
block = pellet
initial_porosity = 0.1372
axial_power_profile = axial_peaking_factors
rod_ave_lin_pow = power_history
pellet_diameter = 0.00535
execute_on = timestep_begin
porosity = pore
energy_per_fission = 3.2e-11
[]
[burnup]
type = BurnupAux
block = pellet
fission_rate = fission_rate
variable = burnup
execute_on = timestep_begin
[]
[radial_strain]
type = RankTwoAux
rank_two_tensor = total_strain
variable = radial_strain
index_i = 0
index_j = 0
execute_on = timestep_end
[]
[effective_creep_strain]
type = MaterialRealAux
property = effective_creep_strain
variable = effective_creep_strain
block = clad
execute_on = timestep_end
[]
[]
[Contact]
[pellet_clad_mechanical]
primary = 5
secondary = 10
formulation = kinematic
model = frictionless
penalty = 1e7
[]
[]
[ThermalContact]
[thermal_contact]
type = GasGapHeatTransfer
variable = temp
primary = 5
secondary = 10
initial_moles = initial_moles
gas_released = fis_gas_released
contact_pressure = contact_pressure
quadrature = true
[]
[]
[BCs]
[temp_clad_outside]
type = FunctionDirichletBC
variable = temp
function = f_temp_out_clad
boundary = 2
[]
[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 = 20
value = 0.0
[]
[PlenumPressure]
[plenumPressure]
boundary = 9
initial_pressure = 101325
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = ave_temp_interior
volume = gas_volume
material_input = fis_gas_released
output = plenum_pressure
[]
[]
[]
[Materials]
[fast_neutron_flux]
type = FastNeutronFlux
calculate_fluence = true
block = clad
flux_function = fast_neutron_flux_function
[]
[fuel_thermal]
type = MAMOXThermal
temperature = temp
porosity = pore
block = pellet
Am_content = 0.0237
oxy_to_metal_ratio = 1.982
output_properties = 'thermal_conductivity'
[]
[fuel_density]
type = StrainAdjustedDensity
block = pellet
strain_free_density = ${initial_fuel_density}
[]
[fuel_elasticity_tensor]
type = MAMOXElasticityTensor
block = pellet
[]
[elastic_stress]
type = ComputeFiniteStrainElasticStress
block = pellet
[]
[fuel_thermal_expansion]
type = MAMOXThermalExpansionEigenstrain
block = pellet
temperature = temp
stress_free_temperature = 295.0
oxygen_to_metal_ratio = 1.98
eigenstrain_name = fuel_thermal_strain
[]
[fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
block = pellet
temperature = temp
burnup = burnup
initial_fuel_density = 11057.75
eigenstrain_name = fuel_volumetric_strain
[]
[clad_thermal]
type = SS316Thermal
block = clad
temperature = temp
[]
[clad_density]
type = StrainAdjustedDensity
block = clad
strain_free_density = 8000
[]
[clad_elasticity_tensor]
type = SS316ElasticityTensor
block = clad
temperature = temp
elastic_constants_model = legacy_ifr
[]
[thermal_expansion]
type = SS316ThermalExpansionEigenstrain
block = clad
temperature = temp
stress_free_temperature = 295.0
eigenstrain_name = clad_thermal_eigenstrain
[]
[clad_ss316creep]
type = SS316CreepUpdate
block = clad
temperature = temp
fast_neutron_flux = fast_neutron_flux
[]
[clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'clad_ss316creep'
block = clad
[]
[fission_gas_release]
type = UO2Sifgrs
block = pellet
temperature = temp
burnup = burnup
fission_rate = fission_rate
grain_radius_const = 12e-06
bubble_gb_limit = 1.0e+11
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -sub_pc_type'
petsc_options_value = 'asm lu'
line_search = 'none'
fixed_point_max_its = 1
fixed_point_abs_tol = 1e-3
fixed_point_rel_tol = 1e-3
l_max_its = 50
l_tol = 8e-3
nl_max_its = 50
nl_rel_tol = 1e-3
nl_abs_tol = 1e-3
start_time = 0
n_startup_steps = 1
end_time = 251280
dtmax = 10000
dtmin = 0.25
[TimeStepper]
type = IterationAdaptiveDT
dt = 1e1
optimal_iterations = 15
iteration_window = 2
linear_iteration_ratio = 100
growth_factor = 2
cutback_factor = .5
force_step_every_function_point = true
timestep_limiting_function = power_history
[]
[]
[Postprocessors]
[ave_temp_interior]
type = ElementAverageValue
variable = temp
execute_on = 'initial linear'
[]
[average_burnup]
type = ElementAverageValue
variable = burnup
[]
[ave_pore]
type = ElementAverageValue
block = pellet
variable = pore
[]
[max_pore]
type = NodalExtremeValue
block = pellet
value_type = max
variable = pore
[]
[min_pore]
type = NodalExtremeValue
block = pellet
value_type = min
variable = pore
[]
[fis_gas_produced]
type = ElementIntegralFisGasGeneratedSifgrs
block = pellet
execute_on = 'linear'
[]
[fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = pellet
execute_on = 'linear'
[]
[fis_gas_released_percentage]
type = FGRPercent
fission_gas_generated = fis_gas_produced
fission_gas_released = fis_gas_released
execute_on = 'linear'
[]
[gas_volume]
type = InternalVolume
boundary = 9
execute_on = 'initial linear'
[]
[rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = pellet
[]
[rod_input_power]
type = FunctionValuePostprocessor
function = average_power_history
scale_factor = 0.4 # rod height
[]
[]
[VectorPostprocessors]
[fuel_radial_temperature_Sample1]
type = LineValueSampler
variable = temp
start_point = '0.0 0.283 0.0'
end_point = '0.002675 0.283 0.0'
num_points = 200
execute_on = final
sort_by = x
outputs = line_plot
[]
[radial_porosity_Sample1]
type = LineValueSampler
variable = pore
start_point = '0.0 0.283 0.0'
end_point = '0.002675 0.283 0.0'
num_points = 200
execute_on = final
sort_by = x
outputs = line_plot
[]
[fuel_radial_temperature_Sample2]
type = LineValueSampler
variable = temp
start_point = '0.0 0.347 0.0'
end_point = '0.002675 0.347 0.0'
num_points = 200
execute_on = final
sort_by = x
outputs = line_plot
[]
[radial_porosity_Sample2]
type = LineValueSampler
variable = pore
start_point = '0.0 0.347 0.0'
end_point = '0.002675 0.347 0.0'
num_points = 200
execute_on = final
sort_by = x
outputs = line_plot
[]
[fuel_radial_temperature_Sample3]
type = LineValueSampler
variable = temp
start_point = '0.0 0.2 0.0'
end_point = '0.002675 0.2 0.0'
num_points = 200
execute_on = final
sort_by = x
outputs = line_plot
[]
[radial_porosity_Sample3]
type = LineValueSampler
variable = pore
start_point = '0.0 0.2 0.0'
end_point = '0.002675 0.2 0.0'
num_points = 200
execute_on = final
sort_by = x
outputs = line_plot
[]
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = true
color = true
csv = true
[console]
type = Console
max_rows = 25
[]
[line_plot]
type = CSV
execute_on = 'FINAL'
time_step_interval = 1
file_base = 1d
create_final_symlink = true
[]
[chkfile]
type = CSV
execute_on = FINAL
show = 'ave_temp_interior max_pore'
[]
[]
[MultiApps]
[sub]
type = TransientMultiApp
app_type = BisonApp
execute_on = timestep_end
catch_up = true
max_catch_up_steps = 10
positions_file = positions.txt
input_files = b14_ptm002_pore.i
[]
[]
[Transfers]
[temp_to_sub]
type = MultiAppProjectionTransfer
to_multi_app = sub
source_variable = temp
variable = temp
[]
[pore_from_sub]
type = MultiAppGeometricInterpolationTransfer
from_multi_app = sub
source_variable = pore
variable = pore
[]
[]
[Debug]
show_var_residual_norms = true
[]
(test/tests/fission_rate_axial/ssets.i)
[Mesh]
[mesh]
type = FileMeshGenerator
file = 1x5x1.e
[]
[]
[Variables]
[temp]
order = FIRST
family = LAGRANGE
initial_condition = 1373.15
[]
[]
[AuxVariables]
[fission_rate]
order = FIRST
family = LAGRANGE
[]
[]
[Functions]
[axial_power_ramp]
type = PiecewiseLinear
x = '0 1e4'
y = '0 1'
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temp
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = 'AXIAL'
axis = 1
block = 1
variable = fission_rate
value = 1.183e19 # corrected average power to 200 W/cm
fuel_bottom_boundary = 1
fuel_top_boundary = 2
fission_rate_function = axial_power_ramp
[]
[]
[BCs]
[bottom_temp]
type = DirichletBC
variable = temp
boundary = 1
value = 1373.15
[]
[top_temp]
type = DirichletBC
variable = temp
boundary = 2
value = 1373.15
[]
[]
[Materials]
[thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 1.e4
specific_heat = 1.
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew '
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type'
petsc_options_value = '70 hypre boomeramg'
l_max_its = 60
nl_rel_tol = 1e-8
nl_abs_tol = 1e-8
l_tol = 1e-5
start_time = 0.0
end_time = 1e+4
dt = 1e+3
num_steps = 10
[]
[Outputs]
exodus = true
[]
(test/tests/uo2_thermal/Toptan/ad_test.i)
# This test case is prepared to test the thermal conductivity using the Toptan model.
#
# The temperature is ramped on all BCs of the unit line from 500 K to 3000K over 100 Ms.
# The fission rate is 2e19 n/m3/s, so that the burnup goes from 0 to
# ~ 8.6 at.% (82 MWd/kgU) at the end of the simulation.
#
# Thermal conductivity of UO2 fuel at 95%TD is computed using the Toptan thermal conductivity model.
# The BISON predictions (BISON_k for UO2, BISON_Gd_k for UO2 with a 2% gadolinia content)
# compared to the expected results (expected_k for UO2, expected_Gd_k for UO2 with a 2% gadolinia content)
# are summarized (see: post_processing.py --> comparison_results.csv) as:
#
# expected_k BISON_k percent_error expected_Gd_k BISON_Gd_k percent_error_Gd
# 6.017528800 6.017528800 3.22E-13 5.259445073 5.259445073 2.22E-13
# 5.728214102 5.728214102 7.77E-14 5.037348551 5.037348551 1.55E-13
# 5.478510749 5.478510749 -3.11E-13 4.843478155 4.843478155 6.44E-13
# 5.250175958 5.250175958 1.22E-13 4.664395811 4.664395811 -6.66E-14
# 5.040313799 5.040313799 -4.22E-13 4.498261518 4.498261518 -8.66E-13
# 6.571905059 6.571905059 -6.88E-13 9.136048213 9.136048213 -8.88E-14
[GlobalParams]
order = FIRST
family = LAGRANGE
[]
[Mesh]
[geom]
type = GeneratedMeshGenerator
dim = 1
elem_type= EDGE2
[]
[]
[Variables]
[T]
initial_condition = 500
[]
[]
[AuxVariables]
[fission_rate]
[]
[burnup]
[]
[th_cond]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[heat]
type = ADHeatConduction
variable = T
[]
[heat_ie]
type = ADHeatConductionTimeDerivative
variable = T
[]
[heat_source]
type = ADNeutronHeatSource
variable = T
energy_per_fission = 3.2e-11
fission_rate = fission_rate
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable= fission_rate
value = 2e19 # Standard fission_rate fissions/m^3/s
execute_on = 'initial timestep_begin'
[]
[th_cond]
type = ADMaterialRealAux
variable = th_cond
property = thermal_conductivity
execute_on = 'initial linear'
[]
[burnup]
type = ADBurnupAux
variable = burnup
density = 10431.0 # 95% TD
fission_rate = fission_rate
execute_on = timestep_begin
[]
[]
[Functions]
[temp_ramp]
type = PiecewiseLinear
x = '0.0 100.e6'
y = '500 3000'
[]
[]
[BCs]
[VariableT]
type = ADFunctionDirichletBC
boundary = 'left right'
variable = T
function = temp_ramp
[]
[]
[Materials]
[fuel_thermal]
type = ADUO2Thermal
temperature = T
burnup = burnup
thermal_conductivity_model = TOPTAN
oxy_to_metal_ratio = 2.0
initial_porosity = 0.05
Gd_content = 0.0
[]
[density]
type = ADParsedMaterial
property_name = density
expression = 10431.0
[]
[]
[Executioner]
type = Transient
start_time = 0
num_steps = 100
dt = 1.0e6
[]
[Postprocessors]
[avg_th_cond]
type = ElementAverageValue
variable = th_cond
execute_on = 'initial timestep_end'
[]
[average_rod_burnup]
type = ElementAverageValue
variable = burnup
execute_on = timestep_end
[]
[average_fuel_T]
type = ElementAverageValue
variable = T
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
csv = true
[]
(examples/pore_migration/paper_solid.i)
[GlobalParams]
displacements = disp_x
temperature = temp
[]
[UserObjects]
[pin_geometry]
type = Layered1DFuelPinGeometry
include_clad = false
mesh_generator = layered1D_mesh
[]
[gps_uo] # this user object is to provide values for residual and diagonal jacobian in the scalar kernel GeneralizedPlaneStrain
type = GeneralizedPlaneStrainUserObject
out_of_plane_pressure_function = pressure_ramp
[]
[]
[Mesh]
coord_type = RZ
[layered1D_mesh]
type = Layered1DMeshGenerator
fuel_height = 0.1
pellet_outer_radius = 0.002675
include_clad = false
pellet_bottom_coor = 0.0
pellet_mesh_density = customize
nx_p = 200
elem_type = EDGE2
slices_per_block = 1
include_plenum = false
[]
[]
[Variables]
[temp]
initial_condition = 630
[]
[pore]
initial_condition = 0.15
scaling = 1e14
[]
[disp_x]
scaling = 0.1
[]
[scalar_strain_yy] # define scalar out-of-plane variable
order = FIRST
family = SCALAR
scaling = 100
[]
[]
[AuxVariables]
[pore_speed_aux]
order = constant
family = monomial
[]
[fission_rate_aux_variable]
order = first
family = lagrange
[]
[fission_rate_aux_variable_mox]
order = first
family = lagrange
[]
[grad_temp_x]
order = CONSTANT
family = MONOMIAL
[]
[thermal_conductivity]
order = CONSTANT
family = MONOMIAL
block = fuel
[]
[]
[Functions]
[power_history1]
type = PiecewiseLinear
x = '0 10000'
y = '0 50000'
[]
[fuel_surface_temp]
type = PiecewiseLinear
x = '0 10000'
y = '630 1300'
[]
[pressure_ramp]
type = PiecewiseLinear
x= '0 10000'
y = '200000 400000'
[]
[]
[Kernels]
[heat] # gradient term in heat conduction equation
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 = fuel # fission rate applied to the fuel (block 2) only
fission_rate = fission_rate_aux_variable_mox
[]
[pore_continuity]
type = MOXPoreContinuity
variable = pore
temperature = temp
debug = 0
alpha = 0.25
beta = 1
heating_function = power_history1
[]
[pore_diffusion]
type = MOXPoreDiffusion
variable = pore
debug = 0
nu = 1e-12
heating_function = power_history1
v_upper = 1e-12
v_lower = 1e-20
[]
[poretimederivative]
type = CoefTimeDerivative
variable = pore
Coefficient = 1
[]
[disp_x]
type = StressDivergenceRZTensors
variable = disp_x
component = 0
displacements = disp_x
use_displaced_mesh = true
[]
[gps_off_diag] # to provide off-diagonal jacobian entries for coupled variables with scalar_out_of_plane_strain
type = GeneralizedPlaneStrainOffDiag
variable = disp_x
scalar_out_of_plane_strain = scalar_strain_yy
displacements = disp_x
temperature = temp
eigenstrain_names = eigenstrain
[]
[]
[ScalarKernels]
[gps_diag] # use values calculated in GeneralizedPlaneStrainUserObject to construct residual and diagonal jacobian for scalar_out_of_plane_strain
type = GeneralizedPlaneStrain
variable = scalar_strain_yy
generalized_plane_strain = gps_uo
[]
[]
[AuxKernels]
[pore_speed_aux]
type = MaterialRealAux
variable = pore_speed_aux
property = pore_velocity
block = fuel
execute_on = 'initial timestep_end'
[]
[fission_rate_aux_kernel]
type = FissionRateGeneral
fission_rate_formulation = LWR
variable = fission_rate_aux_variable
block = fuel
rod_ave_lin_pow = power_history1
pellet_diameter = 0.00535
pellet_inner_diameter = 0
energy_per_fission = 3.2e-11
execute_on = 'initial timestep_end'
value = 1.0
[]
[fission_rate_aux_kernel_mox]
type = FissionRateGeneral
fission_rate_formulation = MOX
variable = fission_rate_aux_variable_mox
block = fuel
porosity = pore
initial_porosity = 0.15
rod_ave_lin_pow = power_history1
pellet_diameter = 0.00535
pellet_inner_diameter = 0
energy_per_fission = 3.2e-11
execute_on = 'initial timestep_end'
value = 1.0
[]
[grad_temp_x_aux]
type = VariableGradientComponent
variable = grad_temp_x
component = x
gradient_variable = temp
execute_on = 'initial timestep_end'
[]
[ThermalConductivityAux]
type = MaterialRealAux
block = fuel
execute_on = linear
property = thermal_conductivity
variable = thermal_conductivity
[]
[]
[BCs]
[temp_outside]
type = FunctionDirichletBC
variable = temp
boundary = 10
function = fuel_surface_temp
[]
[no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[]
[Pressure]
[fuelPressure]
boundary = 10
function = pressure_ramp
[]
[]
[]
[Materials]
[fuel_thermal]
type = MAMOXThermal
block = fuel
temperature = temp
porosity = pore
porosity_limit = 0.95
[]
[density_block]
type = GenericConstantMaterial
block = fuel
prop_names = density
prop_values = 10662.0
[]
[pore_velocity]
type = MOXPoreVelocity
block = fuel
temperature = temp
limit = 1e-3
scale_factor = 0.1
[]
[fuel_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = fuel
youngs_modulus = 2.0e11
poissons_ratio = 0.345
[]
[fuel_stress]
type = ComputeFiniteStrainElasticStress
block = fuel
[]
[fuel_thermal_strain]
type = ComputeThermalExpansionEigenstrain
block = fuel
thermal_expansion_coeff = 10.0e-6
stress_free_temperature = 300.0
eigenstrain_name = fuel_thermal_strain
[]
[fuel_strain]
type = ComputeAxisymmetric1DIncrementalStrain
block = fuel
displacements = 'disp_x'
eigenstrain_names = 'fuel_thermal_strain'
scalar_out_of_plane_strain = scalar_strain_yy
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Dampers]
[limitT]
type = MaxIncrement
max_increment = 100.0
variable = temp
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -sub_pc_type'
petsc_options_value = 'asm lu'
line_search = 'none'
l_max_its = 50
l_tol = 8e-3
nl_max_its = 50
nl_rel_tol = 1e-8#1e-5
nl_abs_tol = 1e-8#1e-6 #1e-8 #1e-10
end_time = 10000
dtmax = 100
dtmin = 0.25
[TimeStepper]
type = IterationAdaptiveDT
dt = 1e1
optimal_iterations = 15
iteration_window = 2
linear_iteration_ratio = 100
growth_factor = 2
cutback_factor = .5
force_step_every_function_point = true
timestep_limiting_function = power_history1
[]
[]
[Postprocessors]
[_dt] # time step
type = TimestepSize
[]
[z_nonlinear_its] # number of nonlinear iterations at each timestep
type = NumNonlinearIterations
[]
[a_run_time] # average temperature of cladding interior
type = PerfGraphData
section_name = Root
data_type = TOTAL
[]
[ave_fuel_temp]
type = ElementAverageValue
block = fuel
variable = temp
[]
[max_fuel_temp]
type = NodalExtremeValue
block = fuel
value_type = max
variable = temp
[]
[ave_pore]
type = ElementAverageValue
block = fuel
variable = pore
[]
[max_pore]
type = NodalExtremeValue
block = fuel
value_type = max
variable = pore
[]
[min_pore]
type = NodalExtremeValue
block = fuel
value_type = min
variable = pore
[]
[max_pore_speed]
type = ElementExtremeValue
block = fuel
value_type = max
variable = pore_speed_aux
[]
[ave_fission_rate]
type = ElementAverageValue
block = fuel
variable = fission_rate_aux_variable
[]
[rod_total_power]
type = LayeredElementIntegralPowerPostprocessor
variable = temp
block = fuel
fission_rate = fission_rate_aux_variable
fuel_pin_geometry = pin_geometry
[]
[rod_total_power_mox]
type = LayeredElementIntegralPowerPostprocessor
variable = temp
block = fuel
fission_rate = fission_rate_aux_variable_mox
fuel_pin_geometry = pin_geometry
[]
[rod_input_power]
type = FunctionValuePostprocessor
function = power_history1
scale_factor = 0.1 # rod height
[]
[ave_themal_conductivity]
type = ElementAverageValue
block = fuel
variable = thermal_conductivity
[] # end element average burnup
[]
[VectorPostprocessors]
[Pore]
type = LineValueSampler
variable = pore
start_point = '0.0 0.05 0'
end_point = '0.002675 0.05 0'
num_points = 100
sort_by = x
execute_on = linear
outputs = line_plot
control_tags = a
[]
[gradT]
type = LineValueSampler
variable = grad_temp_x
start_point = '0.0 0.05 0'
end_point = '0.002675 0.05 0'
num_points = 100
sort_by = x
execute_on = linear
outputs = line_plot
[]
[Pore_Speed]
type = LineValueSampler
variable = pore_speed_aux
start_point = '0.0 0.05 0'
end_point = '0.002675 0.05 0'
num_points = 100
sort_by = x
execute_on = linear
outputs = line_plot
[]
[Temp]
type = LineValueSampler
variable = temp
start_point = '0.0 0.05 0'
end_point = '0.002675 0.05 0'
num_points = 100
sort_by = x
execute_on = linear
outputs = line_plot
[]
[Thermal_Conductivity]
type = LineValueSampler
variable = thermal_conductivity
start_point = '0.0 0.05 0'
end_point = '0.002675 0.05 0'
num_points = 100
sort_by = x
execute_on = linear
outputs = line_plot
[]
[Fission_Rate]
type = LineValueSampler
variable = fission_rate_aux_variable_mox
start_point = '0.0 0.05 0'
end_point = '0.002675 0.05 0'
num_points = 100
sort_by = x
execute_on = linear
outputs = line_plot
[]
[]
[Outputs]
perf_graph = true
exodus = false
color = false
[console]
type = Console
max_rows = 25
all_variable_norms = true
[]
[line_plot]
type = CSV
execute_on = 'FINAL'
# sync_only = true
# sync_times = '7500 8000 8500 9000 9500 10000'
file_base = 1d
[]
[]
[Debug]
show_var_residual_norms = true
[]
(assessment/MOX/JOYO/B14/PTM003/analysis/b14_ptm003_2DRZ_t.i)
initial_fuel_density = 11172.82
[GlobalParams]
density = ${initial_fuel_density}
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
volumetric_locking_correction = false
displacements = 'disp_x disp_y'
[]
[Problem]
type = ReferenceResidualProblem
extra_tag_vectors = 'ref'
reference_vector = 'ref'
[]
[Mesh]
coord_type = RZ
[smeared_pellet_mesh]
type = FuelPinMeshGenerator
pellet_quantity = 1
pellet_height = 0.4
pellet_outer_radius = 0.0027
pellet_mesh_density = customize
clad_mesh_density = customize
clad_gap_width = 0.00008
clad_thickness = 0.00047
clad_bot_gap_height = 1.0e-3
bottom_clad_height = 2.24e-3
top_clad_height = 2.24e-3
clad_top_gap_height = 0.685
elem_type = QUAD8
nx_c = 4
ny_c = 100
nx_p = 20
ny_p = 100
ny_cu = 3
ny_cl = 3
[]
patch_size = 50
patch_update_strategy = iteration
partitioner = centroid
centroid_partitioner_direction = y
[]
[UserObjects]
[pin_geometry]
type = FuelPinGeometry
[]
[]
[Variables]
[temp]
initial_condition = 295.0
[]
[]
[AuxVariables]
[pore]
[]
[fission_rate]
[]
[burnup]
[]
[radial_strain]
order = CONSTANT
family = MONOMIAL
[]
[effective_creep_strain]
block = clad
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[power_history] #related to the LHGR at the midplane
type = PiecewiseLinear
x = ' 0 72000 158040 160200 246600 248400 249000.012 251280'
y = ' 0 39814.5 39814.5 44289.3 44289.3 53927.4 53927.4 0'
[]
[fast_neutron_flux_function]
type = PiecewiseLinear
x = '0 251280'
y = '3.3e+15 3.3e+15'
[]
[f_temp_out_clad]
type = PiecewiseBilinear
x = '0.000175 0.0464075 0.0843675 0.1075625 0.152025 0.1994625 0.2464725 0.2947475 0.356915 0.43356 0.49848 0.625 0.700475 0.797485 0.8723425 0.96'
y = '0 251280'
z = '295 295 295 295 295 295 295 295 295 295 295 295 295 295 295 295 634.94 662.273 676.998 686.217 706.339 727 743.358 758.311 780.069 799.077 815.576 846.374 860.233 875.494 882.809 889.8'
scale_factor = 1
axis = 1
[]
[axial_peaking_factors]
type = PiecewiseBilinear
x = '0.000175 0.0464075 0.0843675 0.1075625 0.152025 0.1994625 0.2464725 0.2947475 0.356915 0.43356 0.49848 0.625 0.700475 0.797485 0.8723425 0.96'
y = '0 251280'
z = '0.751 0.752 0.767 0.796 0.82 0.852 0.875 0.915 0.944 0.963 0.988 1 0.985 0.955 0.913 0.846 0.751 0.752 0.767 0.796 0.82 0.852 0.875 0.915 0.944 0.963 0.988 1 0.985 0.955 0.913 0.846'
scale_factor = 1
axis = 1
[]
[q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[]
[average_power_history]
type = PiecewiseLinear
x = ' 0 72000 158040 160200 246600 248400 249000.012 251280'
y = ' 0 34700 34700 38600 38600 47000 47000 0'
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[pellets]
block = pellet
add_variables = true
strain = FINITE
eigenstrain_names = 'fuel_thermal_strain fuel_volumetric_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
use_finite_deform_jacobian = true
extra_vector_tags = 'ref'
[]
[clad]
block = clad
add_variables = true
strain = FINITE
eigenstrain_names = 'clad_thermal_eigenstrain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
use_finite_deform_jacobian = true
extra_vector_tags = 'ref'
[]
[]
[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
variable = temp
fission_rate = fission_rate
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[fission_rate]
type = FissionRateGeneral
fission_rate_formulation = MOX
variable = fission_rate
block = pellet
initial_porosity = 0.1409
axial_power_profile = axial_peaking_factors
rod_ave_lin_pow = power_history
pellet_diameter = 0.0054
execute_on = timestep_begin
porosity = pore
energy_per_fission = 3.2e-11
[]
[burnup]
type = BurnupAux
block = pellet
fission_rate = fission_rate
variable = burnup
execute_on = timestep_begin
[]
[radial_strain]
type = RankTwoAux
rank_two_tensor = total_strain
variable = radial_strain
index_i = 0
index_j = 0
execute_on = timestep_end
[]
[effective_creep_strain]
type = MaterialRealAux
property = effective_creep_strain
variable = effective_creep_strain
block = clad
execute_on = timestep_end
[]
[]
[Contact]
[pellet_clad_mechanical]
primary = 5
secondary = 10
formulation = kinematic
model = frictionless
penalty = 1e7
[]
[]
[ThermalContact]
[thermal_contact]
type = GasGapHeatTransfer
variable = temp
primary = 5
secondary = 10
initial_moles = initial_moles
gas_released = fis_gas_released
contact_pressure = contact_pressure
quadrature = true
[]
[]
[BCs]
[temp_clad_outside]
type = FunctionDirichletBC
variable = temp
function = f_temp_out_clad
boundary = 2
[]
[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 = 20
value = 0.0
[]
[PlenumPressure]
[plenumPressure]
boundary = 9
initial_pressure = 101325
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = ave_temp_interior
volume = gas_volume
material_input = fis_gas_released
output = plenum_pressure
[]
[]
[]
[Materials]
[fast_neutron_flux]
type = FastNeutronFlux
calculate_fluence = true
block = clad
flux_function = fast_neutron_flux_function
[]
[fuel_thermal]
type = MAMOXThermal
temperature = temp
porosity = pore
block = pellet
Am_content = 0.0237
oxy_to_metal_ratio = 1.961
output_properties = 'thermal_conductivity'
[]
[fuel_density]
type = StrainAdjustedDensity
block = pellet
strain_free_density = ${initial_fuel_density}
[]
[fuel_elasticity_tensor]
type = MAMOXElasticityTensor
block = pellet
[]
[elastic_stress]
type = ComputeFiniteStrainElasticStress
block = pellet
#outputs = exodus
[]
[fuel_thermal_expansion]
type = MAMOXThermalExpansionEigenstrain
block = pellet
temperature = temp
stress_free_temperature = 295.0
oxygen_to_metal_ratio = 1.97
eigenstrain_name = fuel_thermal_strain
[]
[fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
block = pellet
temperature = temp
burnup = burnup
initial_fuel_density = 11172.82
eigenstrain_name = fuel_volumetric_strain
[]
[clad_thermal]
type = SS316Thermal
block = clad
temperature = temp
[]
[clad_density]
type = StrainAdjustedDensity
block = clad
strain_free_density = 8000
[]
[clad_elasticity_tensor]
type = SS316ElasticityTensor
block = clad
temperature = temp
elastic_constants_model = legacy_ifr
[]
[thermal_expansion]
type = SS316ThermalExpansionEigenstrain
block = clad
temperature = temp
stress_free_temperature = 295.0
eigenstrain_name = clad_thermal_eigenstrain
[]
[clad_ss316creep]
type = SS316CreepUpdate
block = clad
temperature = temp
fast_neutron_flux = fast_neutron_flux
[]
[clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'clad_ss316creep'
block = clad
[]
[fission_gas_release]
type = UO2Sifgrs
block = pellet
temperature = temp
burnup = burnup
fission_rate = fission_rate
grain_radius_const = 11e-06
bubble_gb_limit = 1.0e+11
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -sub_pc_type'
petsc_options_value = 'asm lu'
line_search = 'none'
fixed_point_max_its = 1
fixed_point_abs_tol = 1e-3
fixed_point_rel_tol = 1e-3
l_max_its = 50
l_tol = 8e-3
nl_max_its = 50
nl_rel_tol = 1e-3
nl_abs_tol = 1e-3
start_time = 0
n_startup_steps = 1
end_time = 251280
dtmax = 10000
dtmin = 0.25
automatic_scaling = true
compute_scaling_once = false
[TimeStepper]
type = IterationAdaptiveDT
dt = 1e1
optimal_iterations = 15
iteration_window = 2
linear_iteration_ratio = 100
growth_factor = 2
cutback_factor = .5
force_step_every_function_point = true
timestep_limiting_function = power_history
[]
[]
[Postprocessors]
[ave_temp_interior]
type = ElementAverageValue
variable = temp
execute_on = 'initial linear'
[]
[average_burnup]
type = ElementAverageValue
variable = burnup
[]
[ave_pore]
type = ElementAverageValue
block = pellet
variable = pore
[]
[max_pore]
type = NodalExtremeValue
block = pellet
value_type = max
variable = pore
[]
[min_pore]
type = NodalExtremeValue
block = pellet
value_type = min
variable = pore
[]
[fis_gas_produced]
type = ElementIntegralFisGasGeneratedSifgrs
# variable = temp
block = pellet
execute_on = 'linear'
[]
[fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
# variable = temp
block = pellet
execute_on = 'linear'
[]
[fis_gas_released_percentage]
type = FGRPercent
fission_gas_generated = fis_gas_produced
fission_gas_released = fis_gas_released
# variable = temp
execute_on = 'linear'
[]
[gas_volume]
type = InternalVolume
boundary = 9
execute_on = 'initial linear'
[]
[rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = pellet
[]
[rod_input_power]
type = FunctionValuePostprocessor
function = average_power_history
scale_factor = 0.4 # rod height
[]
[]
[VectorPostprocessors]
[fuel_radial_temperature_Sample1]
type = LineValueSampler
variable = temp
start_point = '0.0 0.283 0.0'
end_point = '0.0027 0.283 0.0'
num_points = 200
execute_on = final
sort_by = x
outputs = line_plot
[]
[radial_porosity_Sample1]
type = LineValueSampler
variable = pore
start_point = '0.0 0.283 0.0'
end_point = '0.0027 0.283 0.0'
num_points = 200
execute_on = final
sort_by = x
outputs = line_plot
[]
[fuel_radial_temperature_Sample2]
type = LineValueSampler
variable = temp
start_point = '0.0 0.347 0.0'
end_point = '0.0027 0.347 0.0'
num_points = 200
execute_on = final
sort_by = x
outputs = line_plot
[]
[radial_porosity_Sample2]
type = LineValueSampler
variable = pore
start_point = '0.0 0.347 0.0'
end_point = '0.0027 0.347 0.0'
num_points = 200
execute_on = final
sort_by = x
outputs = line_plot
[]
[fuel_radial_temperature_Sample3]
type = LineValueSampler
variable = temp
start_point = '0.0 0.2 0.0'
end_point = '0.0027 0.2 0.0'
num_points = 200
execute_on = final
sort_by = x
outputs = line_plot
[]
[radial_porosity_Sample3]
type = LineValueSampler
variable = pore
start_point = '0.0 0.2 0.0'
end_point = '0.0027 0.2 0.0'
num_points = 200
execute_on = final
sort_by = x
outputs = line_plot
[]
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = true
color = true
csv = true
[console]
type = Console
max_rows = 25
[]
[line_plot]
type = CSV
execute_on = 'FINAL'
time_step_interval = 1
file_base = 1d
create_final_symlink = true
[]
[chkfile]
type = CSV
execute_on = FINAL
show = 'ave_temp_interior max_pore'
[]
[]
[MultiApps]
[sub]
type = TransientMultiApp
app_type = BisonApp
execute_on = timestep_end
catch_up = true
max_catch_up_steps = 10
positions_file = positions.txt
input_files = b14_ptm003_pore.i
[]
[]
[Transfers]
[temp_to_sub]
type = MultiAppProjectionTransfer
to_multi_app = sub
source_variable = temp
variable = temp
[]
[pore_from_sub]
type = MultiAppGeometricInterpolationTransfer
from_multi_app = sub
source_variable = pore
variable = pore
[]
[]
[Debug]
show_var_residual_norms = true
[]
(test/tests/element_integral_power/element_integral_power_rz_test.i)
# Tests the ElementIntegralPower postprocessor
#
# A constant volumetric fission rate of 3.125e18 fissions/m^3-s is applied to a RZ cylinder
# having an inner radius of 0.01 m, outer radius of 0.0114818 m and height of 0.01 m.
# The power is thus constant with magnitude:
#
# Power = Fdot * Energy_per_fission * Volume
# = 3.125e18 * 3.2e-11 * Pi*(0.0114818^2 - 0.01^2) * 0.01
# = 100
[Mesh]
coord_type = RZ
[mesh]
type = FileMeshGenerator
file = cylinder.e
[]
[]
[Functions]
[unity]
type = ParsedFunction
expression = '1.0'
[]
[]
[Variables]
[T]
order = FIRST
family = LAGRANGE
initial_condition = 500.0
[]
[]
[AuxVariables]
[fission_rate]
order = FIRST
family = LAGRANGE
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = T
[]
[ie]
type = HeatConductionTimeDerivative
variable = T
[]
[heat_source]
type = NeutronHeatSource
variable = T
energy_per_fission = 3.2e-11
fission_rate = fission_rate
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
value = 3.125e18
fission_rate_function = unity
execute_on = 'initial timestep_begin'
[]
[]
[BCs]
[bottom_T]
type = DirichletBC
variable = T
boundary = 1
value = 500.0
[]
[top_T]
type = NeumannBC
variable = T
boundary = 2
value = 0.0
[]
[]
[Materials]
[fuel]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 10
specific_heat = 100
[]
[density]
type = ParsedMaterial
block = 1
property_name = density
expression = 10000
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
start_time = 0.0
num_steps = 2
dt = 1.0e6
[]
[Postprocessors]
[rod_total_power]
type = ElementIntegralPower
variable = T
fission_rate = fission_rate
block = 1
energy_per_fission = 3.2e-11
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
file_base = out_rz
exodus = true
hide = fission_rate
[]
(test/tests/sifgrs/uo2/ig_bubble_coarsening.i)
# This test is veryfing the implementation of the intragranular coarsening capability in Sifgrs.
# The results have been benchmarked to a stand-alone implementation of the model.
# The resulting amount of intragranular swelling can feed the thermomechanical analysis
# using the swelling model SIFGR_IG in the constitutive relation block.
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 3
xmin = 0
xmax = 0.01
ymin = 0
ymax = 0.01
zmin = 0
zmax = 0.01
nx = 1
ny = 1
nz = 1
[]
[]
[Functions]
[Temp_func]
type = PiecewiseLinear
x = '0. 6.07e7 60700250. 60700500. 60704100. 60704600.'
y = '600. 600. 1450. 2300. 2300. 600.'
[]
[Fiss_func]
type = PiecewiseLinear
x = '0. 6.07e7 60700250. 60700500. 60704100. 60704600.'
y = '1.e19 1.e19 1.e19 1.e19 1.e19 1.e19'
[]
[]
[Variables]
[T]
initial_condition = 600.
[]
[]
[AuxVariables]
[fission_rate]
[]
[fract_FGR_analytical]
order = CONSTANT
family = MONOMIAL
[]
[rad_bbl_grn]
order = CONSTANT
family = MONOMIAL
[]
[bbl_grn_3]
order = CONSTANT
family = MONOMIAL
[]
[gas_bbl_grn]
order = CONSTANT
family = MONOMIAL
[]
[bbl_disl_grn]
order = CONSTANT
family = MONOMIAL
[]
[rad_bbl_disl_grn]
order = CONSTANT
family = MONOMIAL
[]
[gas_bbl_disl_grn]
order = CONSTANT
family = MONOMIAL
[]
[deltav_v0_intra_total]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = T
diffusion_coefficient = 1
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
value = 1
fission_rate_function = Fiss_func
execute_on = 'initial timestep_begin'
[]
[bbl_cnc]
type = MaterialRealAux
variable = bbl_grn_3
property = bubble_concentration_intra
execute_on = 'TIMESTEP_END'
[]
[rad_bbl]
type = MaterialRealAux
variable = rad_bbl_grn
property = bubble_radius_intra
execute_on = 'TIMESTEP_END'
[]
[gascnc_bbl]
type = MaterialRealAux
variable = gas_bbl_grn
property = gas_concentration_bubble_intra
execute_on = 'TIMESTEP_END'
[]
[bbl_cnc_disl]
type = MaterialRealAux
variable = bbl_disl_grn
property = bubble_concentration_intra_dislocation
execute_on = 'TIMESTEP_END'
[]
[rad_bbl_disl]
type = MaterialRealAux
variable = rad_bbl_disl_grn
property = bubble_radius_intra_dislocation
execute_on = 'TIMESTEP_END'
[]
[gascnc_bbl_disl]
type = MaterialRealAux
variable = gas_bbl_disl_grn
property = gas_concentration_bubble_intra_dislocation
execute_on = 'TIMESTEP_END'
[]
[dvv0gr]
type = MaterialRealAux
variable = deltav_v0_intra_total
property = deltav_v0_intra_total
execute_on = 'TIMESTEP_END'
[]
[]
[BCs]
[bottom_T]
type = FunctionDirichletBC
variable = T
function = Temp_func
boundary = bottom
[]
[]
[Materials]
[fission_gas_behavior]
type = UO2Sifgrs
skip_bdr_model = true
temperature = T
fission_rate = fission_rate
grain_radius_const = 5.e-6
ig_bubble_model = NUCLEATION_RESOLUTION
diff_coeff_option = TURNBULL_D1_4D2_D3
res_param_option = HETEROGENEOUS_SETYAWAN
ig_bubble_coarsening = WITH_COARSENING
ig_diff_algorithm = POLYPOLE1
nuclerate_scalef = 0.5
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
l_tol = 1e-4
nl_abs_tol = 1e-5
nl_rel_tol = 1e-5
start_time = -100
end_time = 60704600.
[TimeStepper]
type = IterationAdaptiveDT
dt = 100
optimal_iterations = 10
iteration_window = 4
growth_factor = 2.
linear_iteration_ratio = 100
time_t = '0 6.0e+7 6.07e7 60704600'
time_dt = '1000 10000 100 1'
force_step_every_function_point = true
timestep_limiting_function = Temp_func
[]
[]
[Postprocessors]
[fis_gas_generated]
type = ElementIntegralFisGasGeneratedSifgrs
[]
[fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
[]
[radius_bubbles_at_dislocations]
type = ElementAverageValue
variable = rad_bbl_disl_grn
[]
[density_bbl_dislocations]
type = ElementAverageValue
variable = bbl_disl_grn
[]
[intrag_swelling]
type = ElementAverageValue
variable = deltav_v0_intra_total
[]
[]
[Outputs]
exodus = true
[]
(examples/TRISO/accident_simulation/triso1D_accident.i)
# This example is 1D spherical analysis of a TRISO fuel particle. Fully coupled
# heat transfer and solid mechanics, plus diffusion of the fission product
# species cesium (Cs) are simulated. The mesh includes contact surfaces
# between the buffer and IPyC layers to facilitate a gap opening between
# these layers. These surfaces are initially in mechanical contact but
# are assumed to have no strength in tension. A coarse mesh is used to
# provide a short run time.
# The calculation simulates fuel-life in three steps. The first step is an
# irradiation period, where constant power and a fixed particle surface
# temperature (1500 K) are assumed over a lifetime of 76 Ms (2.4 yrs).
# For the second step, fuel removal and storage are simulated by setting
# the reactor power and Cs source terms to zero, reducing the particle
# surface temperature to ambient (300 K), and then holding it
# for 100 days. A third and final step simulates accident
# behavior by increasing the particle surface temperature from ambient
# to 2073 K over 2 hrs, and then holding it at this elevated temperature
# for an additional 200 hrs. At the particle outer boundary, the Cs
# concentration is held at zero and the pressure at ambient during the
# entire simulation. The particle is assumed to be stress-free at an
# initial temperature of 1500 K.
#
# Details about this simulation are given in Section 4 of the following
# article: J. D. Hales, R. L. Williamson, S. R. Novascone, D. M. Perez,
# B. W. Spencer and G. Pastore, "Multidimensional multiphysics simulation
# of TRISO particle fuel", Journal of Nuclear Materials, Vol. 443, p. 531,
# 2013.
# This is a version using an interface kernel to model gap mass transfer.
# Sorption constants are given in Table 1 of the following article: A.
# Londono-Hurtado, I. Szlufarska, R. Bratton and D. Morgan, "A review of
# fission product sorption in carbon structures", Journal of Nuclear
# Materials, Vol. 426, p. 254, 2012.
initial_fuel_density = 11000
[GlobalParams]
order = SECOND
family = LAGRANGE
displacements = disp_x
flux_conversion_factor = 0.85
[]
[Mesh]
coord_type = RSPHERICAL
[gen] # exclude gap to establish buffer-IPyC neighbor relationships for the sorption interface kernel
type = TRISO1DMeshGenerator
elem_type = EDGE3
coordinates = '0 2.125e-4 3.125e-4 3.525e-4 3.875e-4 4.275e-4'
mesh_density = '10 5 2 2 2'
block_names = 'fuel buffer IPyC SiC OPyC'
[]
[break] # create gap between buffer and IPyC to model mechanical and thermal contact
type = BreakMeshByBlockGenerator
input = gen
block_pairs = 'buffer IPyC'
split_interface = true
add_interface_on_two_sides = true
[]
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[Variables]
[disp_x]
[]
[temp]
initial_condition = 1500.0
[]
[conc]
initial_condition = 0.0
[]
[]
[AuxVariables]
[fission_rate]
block = fuel
order = CONSTANT
family = MONOMIAL
[]
[fluence]
order = CONSTANT
family = MONOMIAL
[]
[burnup]
block = fuel
order = CONSTANT
family = MONOMIAL
[]
[gap_cond]
order = CONSTANT
family = MONOMIAL
[]
[creep_xx]
order = CONSTANT
family = MONOMIAL
[]
[creep_yy]
order = CONSTANT
family = MONOMIAL
[]
[creep_zz]
order = CONSTANT
family = MONOMIAL
[]
[gap_HTC]
order = CONSTANT
family = MONOMIAL
[]
[gap_distance]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[power_history]
type = PiecewiseLinear
x = '0 76e6 76.001e6'
y = '1 1 0'
[]
[temp_bc]
type = PiecewiseLinear
x = '0 76e6 76.001e6 84.641e6 84.6482e6'
y = '1500 1500 300 300 2073'
[]
[k_function]
type = PiecewiseLinear
x = '0 200e6'
y = '4e-37 4e-37'
[]
[d1_function]
type = ParsedFunction
expression = 'exp(t/4.5e25)'
[]
[integral_flux_error]
type = ParsedFunction
symbol_names = 'buffer_integral_flux IPyC_integral_flux'
symbol_values = 'buffer_integral_flux IPyC_integral_flux'
expression = 'IPyC_integral_flux + buffer_integral_flux'
[]
[partial_pressure_error]
type = ParsedFunction
symbol_names = 'buffer_partial_pressure IPyC_partial_pressure'
symbol_values = 'buffer_partial_pressure IPyC_partial_pressure'
expression = 'IPyC_partial_pressure - buffer_partial_pressure'
[]
[]
[Physics/SolidMechanics/QuasiStatic]
generate_output = 'stress_xx stress_yy stress_zz stress_xy stress_yz stress_zx hydrostatic_stress'
strain = FINITE
incremental = true
add_variables = false
[default]
block = 'fuel buffer IPyC OPyC'
eigenstrain_names = 'thermal_strain swelling_strain'
extra_vector_tags = 'ref'
[]
[SiC]
block = 'SiC'
eigenstrain_names = 'thermal_strain'
extra_vector_tags = 'ref'
[]
[]
[Kernels]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temp
extra_vector_tags = 'ref'
[]
[heat]
type = HeatConduction
variable = temp
extra_vector_tags = 'ref'
[]
[heat_source]
type = NeutronHeatSource
variable = temp
block = fuel
energy_per_fission = 3.2e-11 # units of J/fission
fission_rate = fission_rate
extra_vector_tags = 'ref'
[]
[mass_ie]
type = TimeDerivative
variable = conc
extra_vector_tags = 'ref'
[]
[mass]
type = ArrheniusDiffusion
variable = conc
extra_vector_tags = 'ref'
[]
[mass_source]
type = BodyForce
variable = conc
function = power_history
value = 1.22e-5 # units of moles/m**3-s
block = fuel
extra_vector_tags = 'ref'
[]
[mass_decay]
type = Decay
variable = conc
radioactive_decay_constant = 7.297e-10 # units:(1/sec) The constant for Cesium
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[fission_rate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
block = fuel
fission_rate_function = power_history
value = 3.89e19
execute_on = timestep_begin
[]
[fluence]
type = MaterialRealAux
property = fast_neutron_fluence
variable = fluence
[]
[burnup]
type = BurnupAux
variable = burnup
block = fuel
fission_rate = fission_rate
molecular_weight = 0.270 # units of kg/mole
execute_on = timestep_begin
density = ${initial_fuel_density}
[]
[creep_xx]
type = RankTwoAux
rank_two_tensor = creep_strain
variable = creep_xx
index_i = 0
index_j = 0
block = 'buffer IPyC SiC OPyC'
execute_on = timestep_end
[]
[creep_yy]
type = RankTwoAux
rank_two_tensor = creep_strain
variable = creep_yy
index_i = 1
index_j = 1
block = 'buffer IPyC SiC OPyC'
execute_on = timestep_end
[]
[creep_zz]
type = RankTwoAux
rank_two_tensor = creep_strain
variable = creep_zz
index_i = 2
index_j = 2
block = 'buffer IPyC SiC OPyC'
execute_on = timestep_end
[]
[conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = buffer_IPyC
execute_on = linear
[]
[]
[Contact]
[pellet_clad_mechanical]
primary = IPyC_buffer
secondary = buffer_IPyC
penalty = 1e5
model = frictionless
formulation = penalty
[]
[]
[ThermalContact]
[thermal_contact]
type = GasGapHeatTransfer
variable = temp
primary = IPyC_buffer
secondary = buffer_IPyC
initial_moles = initial_moles # coupling to a postprocessor which supplies the initial plenum/gap gas mass
gas_released = 'fis_gas_released co_production' # coupling to postprocessors which supply the fission gas addition, co addition
released_gas_types = 'Kr Xe;
CO'
released_fractions = '0.153 0.847;
1'
gap_geometry_type = SPHERE
tangential_tolerance = 1e-6
roughness_coef = 0.0
quadrature = true
[]
[]
[InterfaceKernels]
[cesium_gap]
type = SorptionIsothermGapInterface
variable = conc
neighbor_var = conc
partial_pressure_name = partial_pressure
sorption_penalty = 1e5
diffusivity = arrhenius_diffusion_coef
use_flux_penalty = true
flux_penalty = 1e3
boundary = buffer_IPyC
extra_vector_tags = 'ref'
[]
[]
[BCs]
# pin particle along symmetry planes
[no_disp_x]
type = DirichletBC
variable = disp_x
boundary = xzero
value = 0.0
extra_vector_tags = 'ref'
[]
# fix temperature on free surface
[freesurf_temp]
type = FunctionDirichletBC
variable = temp
boundary = exterior
function = temp_bc
extra_vector_tags = 'ref'
[]
# fix concentration on free surface
[freesurf_conc]
type = DirichletBC
variable = conc
boundary = exterior
value = 0.0
extra_vector_tags = 'ref'
[]
[PlenumPressure] # apply plenum pressure on clad inner walls and pellet surfaces
[plenumPressure]
boundary = 'buffer_IPyC IPyC_buffer'
initial_pressure = 0
startup_time = 1.0e4
R = 8.3145
output_initial_moles = initial_moles # coupling to post processor to get initial fill gas mass
temperature = ave_temp_interior # coupling to post processor to get gas temperature approximation
volume = volumeGas # coupling to post processor to get gas volume
material_input = 'fis_gas_released co_production' # coupling to post processor to get fission gas added, co added
output = plenum_pressure # coupling to post processor to output plenum/gap pressure
[]
[]
[]
[Materials]
[flux]
type = FastNeutronFlux
calculate_fluence = true
factor = 5e17
[]
[fission_gas_release] # Sifgrs fission gas release mode
type = UO2Sifgrs
block = fuel
temperature = temp
fission_rate = fission_rate # coupling to fission_rate aux variable
grain_radius_const = 5.0e-6
[]
[fuel_thermal]
type = UO2Thermal
thermal_conductivity_model = FINK_LUCUTA
block = fuel
temperature = temp
burnup = burnup
initial_porosity = 0.0
[]
[fuel_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = MATPRO
block = fuel
temperature = temp
burnup = burnup
eigenstrain_name = 'swelling_strain'
initial_fuel_density = ${initial_fuel_density}
[]
[fuel_stress]
type = ComputeFiniteStrainElasticStress
block = 'fuel'
[]
[fuel_elasticity]
type = ComputeIsotropicElasticityTensor
block = fuel
youngs_modulus = 2.2e11
poissons_ratio = .345
[]
[fuel_thermal_strain]
type = ComputeThermalExpansionEigenstrain
block = fuel
thermal_expansion_coeff = 10e-6
stress_free_temperature = 1500.0
eigenstrain_name = thermal_strain
temperature = temp
[]
[fuel_den]
type = StrainAdjustedDensity
block = fuel
strain_free_density = ${initial_fuel_density} # kg/m^3
[]
[fuel_conc]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 5.6e-8 # m^2/s
q1 = 209.0e+3 # J/mol
d2 = 5.2e-4 # m^2/s
q2 = 362.0e+3 # J/mol
gas_constant = 8.3143 # J/K-mol
temperature = temp
[]
[buffer_eigenstrain]
type = PyCIrradiationEigenstrain
block = buffer
pyc_type = buffer
eigenstrain_name = 'swelling_strain'
[]
[buffer_thermal_strain]
type = ComputeThermalExpansionEigenstrain
block = buffer
thermal_expansion_coeff = 5.65e-6
stress_free_temperature = 1500.0
eigenstrain_name = thermal_strain
temperature = temp
[]
[buffer_elasticity]
type = ComputeIsotropicElasticityTensor
block = buffer
youngs_modulus = 2e10
poissons_ratio = .23
[]
[buffer_stress]
type = PyCCreep
block = buffer
temperature = temp
[]
[buffer_temp]
type = HeatConductionMaterial
block = buffer
thermal_conductivity = 0.5 # J/m-s-K
specific_heat = 720.0 # J/kg-K
[]
[buffer_den]
type = StrainAdjustedDensity
strain_free_density = 1000.0 #kg/m^3
block = buffer
[]
[buffer_conc]
type = ArrheniusDiffusionCoef
block = buffer
d1 = 1.0e-12 # m^2/s
q1 = 0.0
d2 = 0.0
q2 = 0.0
gas_constant = 8.3143 # J/K-mol
temperature = temp
[]
[buffer_partial_pressure]
type = SorptionPartialPressure
A = 19.33
B = -47290
D = 1.518
E = 4338
d1 = 3.397
d2 = 6.15e-4
unit_scale = 1e3 # convert from mol to mmol
density = density # convert from mmol/m^3 to mmol/kg
concentration = conc
temperature = temp
block = 'buffer IPyC'
outputs = 'all'
output_properties = partial_pressure
[]
[normal_vectors_triso]
type = NormalVectorsTRISO
block = 'IPyC OPyC buffer'
[]
[IPyC_eigenstrain]
type = PyCIrradiationEigenstrain
block = IPyC
pyc_type = dense
eigenstrain_name = 'swelling_strain'
[]
[IPyC_thermal_strain]
type = ComputeThermalExpansionEigenstrain
block = IPyC
thermal_expansion_coeff = 5.65e-6
stress_free_temperature = 1500.0
eigenstrain_name = thermal_strain
temperature = temp
[]
[IPyC_elasticity]
type = ComputeIsotropicElasticityTensor
block = IPyC
youngs_modulus = 4.74e10
poissons_ratio = .23
[]
[IPyC_disp]
type = PyCCreep
block = 'IPyC OPyC'
temperature = temp
[]
[IPyC_temp]
type = HeatConductionMaterial
block = 'IPyC OPyC'
thermal_conductivity = 4.0
specific_heat = 720.0
[]
[IPyC_den]
type = StrainAdjustedDensity
block = 'IPyC OPyC'
strain_free_density = 1900.0
[]
[IPyC_conc]
type = ArrheniusDiffusionCoef
block = IPyC
d1 = 6.3e-8
q1 = 222.0e+3
d2 = 0.0
q2 = 0.0
gas_constant = 8.3143 # J/K-mol
temperature = temp
[]
[SiC_thermal_strain]
type = ComputeThermalExpansionEigenstrain
block = SiC
thermal_expansion_coeff = 4.9e-6
stress_free_temperature = 1500.0
eigenstrain_name = thermal_strain
temperature = temp
[]
[SiC_elasticity]
type = ComputeIsotropicElasticityTensor
block = SiC
youngs_modulus = 3.4e11
poissons_ratio = .13
[]
[SiC_creep]
type = MonolithicSiCCreepUpdate
block = SiC
temperature = temp
k_function = k_function
[]
[SiC_stress]
type = ComputeMultipleInelasticStress
block = SiC
tangent_operator = elastic
inelastic_models = 'SiC_creep'
[]
[SiC_temp]
type = HeatConductionMaterial
block = SiC
thermal_conductivity = 13.9 # J/m-s-K
specific_heat = 620.0 # J/kg-K
[]
[SiC_den]
type = StrainAdjustedDensity
strain_free_density = 3180.0 # kg/m^3
block = SiC
[]
[SiC_conc]
type = ArrheniusDiffusionCoef
block = SiC
d1 = 5.5e-14 # m^2/s
d1_function = d1_function
d1_function_variable = fluence
q1 = 125.0e+3 # J/mol
d2 = 1.6e-2 # m^2/s
q2 = 514.0e+3 # J/mol
gas_constant = 8.3143 # J/K-mol
temperature = temp
[]
[OPyC_eigenstrain]
type = PyCIrradiationEigenstrain
block = OPyC
pyc_type = dense
eigenstrain_name = 'swelling_strain'
[]
[OPyC_thermal_strain]
type = ComputeThermalExpansionEigenstrain
block = OPyC
thermal_expansion_coeff = 5.65e-6
stress_free_temperature = 1500.0
eigenstrain_name = thermal_strain
temperature = temp
[]
[OPyC_elasticity]
type = ComputeIsotropicElasticityTensor
block = OPyC
youngs_modulus = 4.74e10
poissons_ratio = .23
[]
[OPyC_conc]
type = ArrheniusDiffusionCoef
block = OPyC
d1 = 6.3e-8 # m^2/s
q1 = 222.0e+3 # J/mol
d2 = 0.0
q2 = 0.0
gas_constant = 8.3143 # J/K-mol
temperature = temp
[]
[]
[Dampers]
[temp]
type = MaxIncrement
variable = temp
max_increment = 50
[]
[]
[Debug]
show_var_residual_norms = true
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
nl_rel_tol = 5e-4
nl_abs_tol = 1e-9
nl_max_its = 15
l_tol = 1e-3
l_max_its = 50
start_time = 0.0
end_time = 85.3682e6
dt = 100
dtmax = 2e6
dtmin = 1
[TimeStepper]
type = IterationAdaptiveDT
dt = 100
optimal_iterations = 6
growth_factor = 1.5
linear_iteration_ratio = 100
time_t = '0 76e6 76.001e6 84.641e6 84.6482e6'
time_dt = '20 20 20 20 20'
[]
[Predictor]
type = SimplePredictor
scale = 1
skip_times_old = '0 76e6 76.001e6 84.641e6 84.6482e6'
[]
[]
[Outputs]
perf_graph = true
exodus = true
[console]
type = Console
max_rows = 25
[]
[csv]
type = CSV
sync_times = '100 6308007 75696087'
sync_only = true
[]
[]
[Postprocessors]
[Cs_release]
type = SideIntegralMassFlux
variable = conc
boundary = exterior
execute_on = timestep_end
[]
[dt]
type = TimestepSize
execute_on = timestep_end
[]
[fis_gas_produced] # fission gas produced (moles)
type = ElementIntegralFisGasGeneratedSifgrs
block = fuel
execute_on = 'initial linear nonlinear timestep_begin timestep_end'
[]
[fis_gas_released] # fission gas released to plenum (moles)
type = ElementIntegralFisGasReleasedSifgrs
block = fuel
execute_on = 'initial linear nonlinear timestep_begin timestep_end'
[]
[volumeTotal]
type = InternalVolume
boundary = exterior
scale_factor = -1
execute_on = 'initial timestep_end'
[]
[volumeFuel]
type = InternalVolume
boundary = fuel_outer_boundary
scale_factor = -1
execute_on = 'initial timestep_end'
[]
[volumeGas]
type = InternalVolume
boundary = 'buffer_IPyC IPyC_buffer'
# ro = 3.125e-4
# ri = 2.125e-4
# vb = 4/3*pi*(ro^3-ri^3) = 8.76e-11
# buffer density = 1000
# PyC density = 1900
# fill ratio = 10/19
# vb*10/19 = 4.6e-11
# Must remove 4.6e-11 m^3 from the volume
addition = -4.6e-11
execute_on = 'initial linear nonlinear timestep_begin timestep_end'
[]
[volumeBufferShell]
type = InternalVolume
boundary = 'buffer_IPyC IPyC_buffer'
execute_on = 'initial timestep_end'
[]
[ave_temp_interior]
type = SideAverageValue
boundary = 'buffer_IPyC IPyC_buffer'
variable = temp
execute_on = 'initial linear nonlinear timestep_begin timestep_end'
[]
# Postprocessors for CO production
[total_fission_rate]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = fuel
energy_per_fission = 1.0
execute_on = 'initial linear nonlinear timestep_begin timestep_end'
[]
[total_fissions]
type = TimeIntegratedPostprocessor
value = total_fission_rate
execute_on = 'initial linear nonlinear timestep_begin timestep_end'
[]
[avg_surface_temp]
type = SideAverageValue
variable = temp
boundary = exterior
execute_on = 'initial linear nonlinear timestep_begin timestep_end'
[]
[time_int_surf_temp]
type = TimeIntegratedPostprocessor
value = avg_surface_temp
execute_on = 'initial linear nonlinear timestep_begin timestep_end'
[]
[co_production]
type = CarbonMonoxideProduction
total_fissions = total_fissions
time_integrated_triso_temperature = time_int_surf_temp
initial_enrichment = 0.14029
execute_on = 'initial linear nonlinear timestep_begin timestep_end'
[]
[num_lin_it]
type = NumLinearIterations
[]
[num_nonlin_it]
type = NumNonlinearIterations
[]
[tot_lin_it]
type = CumulativeValuePostprocessor
postprocessor = num_lin_it
[]
[tot_nonlin_it]
type = CumulativeValuePostprocessor
postprocessor = num_nonlin_it
[]
[alive_time]
type = PerfGraphData
section_name = Root
data_type = TOTAL
[]
[buffer_integral_flux]
type = SideDiffusiveFluxIntegral
variable = conc
boundary = buffer_IPyC
diffusivity = arrhenius_diffusion_coef
[]
[IPyC_integral_flux]
type = SideDiffusiveFluxIntegral
variable = conc
boundary = IPyC_buffer
diffusivity = arrhenius_diffusion_coef
[]
[buffer_partial_pressure]
type = SideAverageMaterialProperty
property = partial_pressure
boundary = buffer_IPyC
[]
[IPyC_partial_pressure]
type = SideAverageMaterialProperty
property = partial_pressure
boundary = IPyC_buffer
[]
[integral_flux_error]
type = FunctionValuePostprocessor
function = integral_flux_error
[]
[partial_pressure_error]
type = FunctionValuePostprocessor
function = partial_pressure_error
[]
[integral_Cs_release]
type = TimeIntegratedPostprocessor
value = Cs_release
[]
[Cs_production]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 1.22e-5 # units of moles/m**3-s
[]
[time_integral_Cs_production]
type = TimeIntegratedPostprocessor
value = Cs_production
[]
[volumeFuel_initial]
type = InternalVolume
boundary = fuel_outer_boundary
scale_factor = -1
execute_on = initial
[]
[integral_Cs_production]
type = ParsedPostprocessor
pp_names = 'time_integral_Cs_production volumeFuel_initial'
expression = 'time_integral_Cs_production * volumeFuel_initial'
[]
[Cs_release_fraction]
type = ParsedPostprocessor
pp_names = 'integral_Cs_release integral_Cs_production'
expression = 'integral_Cs_release / integral_Cs_production'
[]
[]
[VectorPostprocessors]
[temperaturevpp]
type = SideValueSampler
boundary = 11
variable = temp
sort_by = x
outputs = 'csv'
use_displaced_mesh = true
[]
[]
(test/tests/solid_mechanics/uo2_creep/uo2_creep_smeared_cracking.i)
# Tests material model CreepUO2, which computes the combined thermal
# and irradiation creep for UO2 fuel, in conjunction with smeared cracking
#
# This test is based on uo2_creep.i. It is a single element unit cube which
# is pulled in the y direction using the displacement history obtained from the
# response of uo2_creep_test.i under a pressure of 50 MPa. During this phase,
# the recovered stress is almost exactly 50 MPa. Starting at time 100000, the
# displacement is rapidly increased, resulting in cracking. At that point,
# the creep model is de-activated. The creep strains are frozen, and the model
# follows the softening law of the smeared cracking model.
[GlobalParams]
density = 10431.0
displacements = 'disp_x disp_y disp_z'
order = FIRST
family = LAGRANGE
[]
[Mesh]
[mesh]
type = FileMeshGenerator
file = 1x1x1_cube.e
[]
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[disp_z]
[]
[temp]
initial_condition = 1500.0
[]
[]
[AuxVariables]
[fission_rate]
[]
[stress_yy]
order = CONSTANT
family = MONOMIAL
[]
[effective_creep_strain]
order = CONSTANT
family = MONOMIAL
[]
[crack_flags3]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[top_pull]
type = PiecewiseLinear
xy_data = '0.0000000E+000 0.0000000E+000
1.0000000E+004 2.6631798E-004
2.0000000E+004 2.8260494E-004
3.0000000E+004 2.9889218E-004
4.0000000E+004 3.1517967E-004
5.0000000E+004 3.3146743E-004
6.0000000E+004 3.4775546E-004
7.0000000E+004 3.6404375E-004
8.0000000E+004 3.8033231E-004
9.0000000E+004 3.9662113E-004
1.0000000E+005 4.1291022E-004
1.0004000E+005 12.1291022E-004'
[]
[time_function]
type = PiecewiseLinear
x = '0 100000 100001 200000'
y = '10000 10000 1 1'
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
strain = finite
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temp
[]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temp
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
value = 2.0e18
[]
[stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[]
[effective_creep_strain]
type = MaterialRealAux
property = effective_creep_strain
variable = effective_creep_strain
[]
[crack_3]
type = MaterialRealVectorValueAux
property = crack_flags
variable = crack_flags3
component = 2
[]
[]
[BCs]
[u_top_pull]
type = FunctionDirichletBC
variable = disp_y
boundary = 5
function = top_pull
[]
[u_bottom_fix]
type = DirichletBC
variable = disp_y
boundary = 3
value = 0.0
[]
[u_yz_fix]
type = DirichletBC
variable = disp_x
boundary = 4
value = 0.0
[]
[u_xy_fix]
type = DirichletBC
variable = disp_z
boundary = 2
value = 0.0
[]
[temp_top_fix]
type = DirichletBC
variable = temp
boundary = '3 5'
value = 1500.0
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = 1
youngs_modulus = 2e11
poissons_ratio = 0.3
[]
[creep]
type = UO2CreepUpdate
block = 1
temperature = temp
fission_rate = fission_rate
initial_grain_radius = 10.0e-6
oxygen_to_metal_ratio = 2.0
a7 = 3.72264e-35
q3 = 2617
[]
[fuel_stress]
type = ComputeSmearedCrackingStress
cracking_stress = 130e6
shear_retention_factor = 0.05
# max_stress_correction = 0.0
inelastic_models = 'creep'
block = 1
softening_models = exponential_softening
cracked_elasticity_type = DIAGONAL
[]
[exponential_softening]
type = ExponentialSoftening
[]
# [radial_return_stress]
# type = ComputeMultipleInelasticStress
# tangent_operator = elastic
# inelastic_models = 'creep'
# block = 1
# []
[thermal]
type = HeatConductionMaterial
block = 1
specific_heat = 1.0
thermal_conductivity = 100.
[]
[density]
type = StrainAdjustedDensity
block = 1
strain_free_density = 10431.0
[]
[]
[Executioner]
type = Transient
solve_type = PJFNK
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart'
petsc_options_value = '101'
line_search = 'none'
l_max_its = 100
nl_max_its = 100
nl_rel_tol = 1e-8
nl_abs_tol = 1e-4
l_tol = 1e-5
start_time = 0.0
dt = 10000
end_time = 100040
[TimeStepper]
type = FunctionDT
function = time_function
[]
[]
[Outputs]
exodus = true
[]
(test/tests/fission_rate_LWR/fission_to_thermal_power.i)
# Tests/demonstrates fission to thermal power conversion
#
# In some cases, the LHGR is specified as the thermal power generated within
# the fuel. To get the fission rate and burnup correct, this thermal power must be
# scaled upward to obtain the total fission power in the fuel. For Halden experiments
# the ratio of fission power to thermal power in the fuel is generally assumed to be
# 0.95.
#
# In this test, the power is specified as fuel thermal power (95 W/m) and so is scaled
# upward to 100 W/m as part of the power function definition. This total power is then
# partitioned as thermal power in the fuel (0.95) and thermal power in the clad
# (0.05) using the NeutronHeatSource kernel.
#
# Postprocessors show the fission power in the fuel and clad as 100 and 0, as
# expected. The fission power density in the fuel can be computed as:
#
# Fdot = ALHR / (Energy_per_fission * Cross_sectional_area)
# = 100 / (3.2e-11 * pi * 0.56418958^2)
# = 3.125e12 fissions/(m**3-s)
#
# Assuming a very high conductivity for the fuel and clad (1e6), both materials can be
# accurately described using a lumped-capacity thermal model. The temperature is
# then given by:
#
# dT = (q * dt) / (rho * C * V)
# = (q/l * dt) / (rho * C * A)
#
# where: T = temperature
# t = time
# q = heat rate
# rho = density
# C = specific heat
# V = volume
# l = length
# A = cross-sectional area
#
# For the fuel, at 2 s:
# dT = (95 W/m * 2 s) / (1 kg/m^3 * 1 J/kg-K * pi * 0.56418958^2 m^2)
# = 190 K
#
# For the clad, at 2 s:
# dT = (5 W/m * 2 s) / (1 kg/m^3 * 1 J/kg-K * pi * (0.8990605^2 - 0.7^2 m^2)
# = 10 K
#
# which is what is computed numerically
#
[GlobalParams]
energy_per_fission = 3.2e-11
[]
[Mesh]
coord_type = RZ
[mesh]
type = FileMeshGenerator
file = fission_to_thermal_power.e
[]
[]
[Variables]
[temp]
order = FIRST
family = LAGRANGE
initial_condition = 500.0
[]
[]
[Functions]
[rod_ave_lin_pow]
type = PiecewiseLinear
x = '0 2'
y = '95 95'
scale_factor = 1.052631579 # scale input thermal power to fission power (1/0.95)
[]
[rod_axial_profile]
type = ParsedFunction
expression = '1.0'
[]
[]
[AuxVariables]
[fission_rate]
order = FIRST
family = LAGRANGE
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temp
[]
[ie]
type = HeatConductionTimeDerivative
variable = temp
[]
[heat_source_fuel]
type = NeutronHeatSource
block = 2
variable = temp
rod_ave_lin_pow = rod_ave_lin_pow
axial_profile = rod_axial_profile
outer_diameter = 1.128379169
inner_diameter = 0
fraction = 0.95 # 95% of fission power deposited in fuel
[]
[heat_source_clad]
type = NeutronHeatSource
block = 1
variable = temp
rod_ave_lin_pow = rod_ave_lin_pow
axial_profile = rod_axial_profile
outer_diameter = 1.7981211151463525
inner_diameter = 1.4
fraction = 0.05 # 5% of fission power deposited in clad
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
variable = fission_rate
fission_rate_formulation = 'LWR'
rod_ave_lin_pow = rod_ave_lin_pow
axial_power_profile = rod_axial_profile
pellet_diameter = 1.128379169
execute_on = 'initial timestep_begin'
block = 2
[]
[]
[Materials]
[goo]
type = HeatConductionMaterial
block = '1 2'
thermal_conductivity = 1.0e6
specific_heat = 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_rel_tol = 1e-6
start_time = 0.0
num_steps = 2
dt = 1.0
[]
[Postprocessors]
[fuel_fission_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = 2
execute_on = 'initial timestep_end'
[]
[clad_fission_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = 1
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
exodus = true
[]
(test/tests/element_integral_power/element_integral_power_test.i)
# Tests the ElementIntegralPower postprocessor
#
# A constant volumetric fission rate of 3.125e18 fissions/m^3-s is applied to a cube of length 1 cm.
# The power is thus constant with magnitude:
#
# Power = Fdot * Energy_per_fission * Volume
# = 3.125e18 * 3.2e-11 * 1.0e-6
# = 100
[Mesh]
[mesh]
type = FileMeshGenerator
file = cube_10mm.e
[]
[]
[Functions]
[unity]
type = ParsedFunction
expression = '1.0'
[]
[]
[Variables]
[T]
order = FIRST
family = LAGRANGE
initial_condition = 500.0
[]
[]
[AuxVariables]
[fission_rate]
order = FIRST
family = LAGRANGE
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = T
[]
[ie]
type = HeatConductionTimeDerivative
variable = T
[]
[heat_source]
type = NeutronHeatSource
variable = T
energy_per_fission = 3.2e-11
fission_rate = fission_rate
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
value = 3.125e18
fission_rate_function = unity
execute_on = 'initial timestep_begin'
[]
[]
[BCs]
[bottom_T]
type = DirichletBC
variable = T
boundary = 1
value = 500.0
[]
[top_T]
type = NeumannBC
variable = T
boundary = 2
value = 0.0
[]
[]
[Materials]
[fuel]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 10
specific_heat = 100
[]
[density]
type = ParsedMaterial
block = 1
property_name = density
expression = 10000
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
start_time = 0.0
num_steps = 2
dt = 1.0e7
[]
[Postprocessors]
[rod_total_power]
type = ElementIntegralPower
variable = T
fission_rate = fission_rate
block = 1
energy_per_fission = 3.2e-11
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
file_base = out
exodus = true
[]
(examples/3D_rodlet_3pellets/discrete_full/3d_3pellets_mortar.i)
initial_fuel_density = 10431.0
[GlobalParams]
density = ${initial_fuel_density} #95% TD (TD = 10980)
displacements = 'disp_x disp_y disp_z'
order = FIRST
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission (205 Mev)
volumetric_locking_correction = true
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
group_variables = 'disp_x disp_y disp_z'
converge_on = 'disp_x disp_y disp_z temp'
[]
[Mesh]
[file]
type = FileMeshGenerator
file = DiscreteThreePellets3D_full_HEX8.e
[]
partitioner = centroid
centroid_partitioner_direction = y
patch_size = 5
patch_update_strategy = auto
[]
[Variables]
[temp]
initial_condition = 580.0
[]
[]
[AuxVariables]
[fission_rate]
block = 3
[]
[fast_neutron_flux]
[]
[fast_neutron_fluence]
[]
[grain_radius]
block = 3
initial_condition = 5e-6
[]
[frictional_status]
family = LAGRANGE
order = FIRST
[]
[gas_swell]
order = CONSTANT
family = MONOMIAL
block = 3
[]
[hoop_inelastic_strain]
order = CONSTANT
family = MONOMIAL
block = 1
[]
[gap_conductance]
order = CONSTANT
family = MONOMIAL
[]
[pid]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[power_history]
type = PiecewiseLinear
x = '0 1.0e4 1.0e8'
y = '0 1.0 1.0'
scale_factor = 25e3 # 25 kW/m peak power.
[]
[axial_peaking_factors]
type = ParsedFunction
expression = 1
[]
[coolant_pressure_ramp]
type = PiecewiseLinear
x = '-200 0'
y = '0 1'
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[pellets]
block = 3
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'
temperature = temp
[]
[clad]
block = 1
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'
temperature = temp
[]
[]
[Burnup]
[burnup]
block = 3
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
[]
[]
[Kernels]
[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_fuel]
type = NeutronHeatSource
variable = temp
block = 3
fission_rate = fission_rate
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
block = 3
value = 5.3548e+14
fission_rate_function = power_history
[]
[frictional_state]
type = MortarFrictionalStateAux
tangent_one = pellet_clad_mechanical_tangential_lm
tangent_two = pellet_clad_mechanical_tangential_3d_lm
boundary = 10
contact_pressure = pellet_clad_mechanical_normal_lm
variable = frictional_status
mu = 0.5
[]
[fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = 1
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
factor = 2.34e+13
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
[]
[grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temperature = temp
execute_on = linear
[]
[gas_swell]
type = MaterialRealAux
block = 3
variable = gas_swell
property = deltav_v0_bubble_GB
execute_on = timestep_end
[]
[hoop_inelastic_strain]
type = RankTwoScalarAux
rank_two_tensor = creep_strain
variable = hoop_inelastic_strain
scalar_type = HoopStress
execute_on = timestep_end
[]
[pid]
type = ProcessorIDAux
variable = pid
[]
[]
[Contact]
[pellet_clad_mechanical]
primary = 5
secondary = 10
formulation = mortar
model = coulomb
c_normal = 1e+18
c_tangential = 1e+18
friction_coefficient = 0.5
[]
[]
[ThermalContactMortar]
[thermal_contact]
secondary_variable = temp
primary_boundary = '5'
secondary_boundary = '10'
gas_released = fis_gas_released_model
initial_moles = initial_moles
jump_distance_model = LANNING
plenum_pressure = plenum_pressure
roughness_coef = 3.2
roughness_secondary = 1e-6
roughness_primary = 2e-6
emissivity_primary = 0.8
emissivity_secondary = 0.8
[]
[]
[BCs]
[no_x_all]
type = DirichletBC
variable = disp_x
boundary = 1004
value = 0.0
[]
[no_z_all]
type = DirichletBC
variable = disp_z
boundary = 1004
value = 0.0
[]
[no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[]
[no_x_clad_bottom]
type = DirichletBC
variable = disp_x
boundary = 1
value = 0.0
[]
[no_z_clad_bottom]
type = DirichletBC
variable = disp_z
boundary = 1
value = 0.0
[]
[no_z_fuel_bottom_point]
type = DirichletBC
variable = disp_z
boundary = 1110
value = 0.0
[]
[no_z_fuel_bottom_point_y]
type = DirichletBC
variable = disp_y
boundary = 1110
value = 0.0
[]
[no_x_fuel_bottom_point]
type = DirichletBC
variable = disp_x
boundary = 1120
value = 0.0
[]
[no_x_fuel_bottom_point_y]
type = DirichletBC
variable = disp_y
boundary = 1120
value = 0.0
[]
[Pressure]
[coolantPressure]
boundary = 2
factor = 15.5e6
function = coolant_pressure_ramp
[]
[]
[PlenumPressure]
[plenumPressure]
boundary = 9
initial_pressure = 2.0e6
startup_time = 0.0
material_input = fis_gas_released_model
output_initial_moles = initial_moles
R = 8.3143
temperature = interior_temp
volume = gas_volume
output = plenum_pressure
[]
[]
[]
[CoolantChannel]
[convective_clad_surface]
boundary = 2
variable = temp
inlet_temperature = 580 # K
inlet_pressure = 15.5e6 # PA
inlet_massflux = 3880 # kg/m^2-sec
rod_diameter = 0.95e-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 = 3
thermal_conductivity_model = NFIR
temperature = temp
burnup_function = burnup
initial_porosity = 0.05
[]
[fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = 3
[]
[fuel_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = 3
youngs_modulus = 2.0e11
poissons_ratio = 0.345
[]
[fuel_relocation]
type = UO2RelocationEigenstrain
block = 3
burnup_function = burnup
diameter = 0.00836
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
diametral_gap =50.0e-6
relocation_activation1 = 5000
burnup_relocation_stop = 0.02
eigenstrain_name = 'fuel_relocation_eigenstrain'
[]
[fuel_swelling]
type = UO2VolumetricSwellingEigenstrain
block = 3
burnup_function = burnup
temperature = temp
initial_fuel_density = 10431.0
eigenstrain_name = 'fuel_volumetric_swelling_eigenstrain'
[]
[fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = 3
# thermal_expansion_coeff = 10.0e-6 (reference)
# We are artificially increasing the fuel expansion to simulate mechanical contact within reasonable 'example' time
thermal_expansion_coeff = 50.0e-6
temperature = temp
stress_free_temperature = 580.0
eigenstrain_name = 'fuel_thermal_strain'
[]
[fission_gas_release]
type = UO2Sifgrs
block = 3
temperature = temp
fission_rate = fission_rate
grain_radius = grain_radius
gbs_model = true
burnup = burnup
diff_coeff_option = TURNBULL_D1_D2
[]
[fuel_density]
type = StrainAdjustedDensity
block = 3
strain_free_density = ${initial_fuel_density}
[]
[clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[]
[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 = 580.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 = 6551.0
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package -mat_mffd_err -pc_factor_shift_type -pc_factor_shift_amount'
petsc_options_value = 'lu superlu_dist 1e-6 NONZERO 1e-13'
line_search = 'basic'
l_max_its = 10
nl_max_its = 40
nl_rel_tol = 1e-7
nl_abs_tol = 1e-8
start_time = -200
dtmin = 1.0
end_time = 25200
nl_div_tol = 1e+40
# For a regular thermal expansion value, use following end_time
# end_time = 4.0e7
[TimeStepper]
type = IterationAdaptiveDT
dt = 200
optimal_iterations = 15
iteration_window = 3
growth_factor = 2.0
cutback_factor = 0.5
[]
[]
[Postprocessors]
[clad_inner_vol]
type = InternalVolume
boundary = 7
scale_factor = 1.0
execute_on = 'INITIAL TIMESTEP_END'
[]
[pellet_volume]
type = InternalVolume
boundary = 8
scale_factor = 1.0
execute_on = 'INITIAL TIMESTEP_END'
[]
[gas_volume]
type = InternalVolume
boundary = 9
scale_factor = 1.0
execute_on = 'initial linear'
[]
[interior_temp]
type = SideAverageValue
boundary = 7
variable = temp
execute_on = 'initial linear'
[]
[fis_gas_produced_model]
type = ElementIntegralFisGasGeneratedSifgrs
block = 3
execute_on = 'initial timestep_end'
[]
[fis_gas_produced]
type = ScalePostprocessor
value = fis_gas_produced_model
scaling_factor = 1.0
execute_on = 'initial timestep_end'
[]
[fis_gas_released_model]
type = ElementIntegralFisGasReleasedSifgrs
block = 3
execute_on = 'initial timestep_end'
[]
[fission_gas_released]
type = ScalePostprocessor
value = fis_gas_released_model
scaling_factor = 1.0
execute_on = 'initial timestep_end'
[]
[fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = 3
outputs = exodus
[]
[fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = 3
outputs = exodus
[]
[power_history]
type = FunctionValuePostprocessor
function = power_history
execute_on = 'initial timestep_end'
[]
[flux_from_clad_model]
type = SideDiffusiveFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[]
[flux_from_clad]
type = ScalePostprocessor
value = flux_from_clad_model
scaling_factor = 1.0
execute_on = 'initial timestep_end'
[]
[flux_from_fuel_model]
type = SideDiffusiveFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[]
[flux_from_fuel]
type = ScalePostprocessor
value = flux_from_fuel_model
scaling_factor = 1.0
execute_on = 'initial timestep_end'
[]
[average_burnup]
type = RodAverageBurnup
burnup_function = burnup
[]
[average_fissionrate]
type = ElementAverageValue
block = 3
variable = fission_rate
execute_on = 'initial timestep_end'
[]
[rod_total_power_model]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = 3
execute_on = 'initial timestep_end'
[]
[rod_total_power]
type = ScalePostprocessor
value = rod_total_power_model
scaling_factor = 1.0
execute_on = 'initial timestep_end'
[]
[rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 0.03
execute_on = 'initial timestep_end'
[]
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
time_step_interval = 1
exodus = true
[checkpoint]
type = Checkpoint
time_step_interval = 1
file_base = ckpoint_mortar_dup
num_files = 2
[]
[console]
type = Console
solve_log = true
output_linear = true
max_rows = 25
[]
[chkfile]
type = CSV
execute_on = FINAL
show = 'fission_gas_released plenum_pressure interior_temp gas_volume'
[]
[]
(test/tests/sifgrs/uo2/polypole1_intergranular_coarsening.i)
# This input is to test polypole-1 with intergranular model and bubble coarsening for UO2 Sifgrs
[Mesh]
[mesh]
type = FileMeshGenerator
file = 1hex8_10mm_cube.e
[]
[]
[Functions]
[temperature_function]
type = ParsedFunction
expression = '1700'
[]
[fission_rate_function]
type = ParsedFunction
expression = '2.5e19'
[]
[]
[Variables]
[temperature]
initial_condition = 1700
[]
[]
[AuxVariables]
[fission_rate]
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temperature
diffusion_coefficient = 1
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
value = 1
fission_rate_function = fission_rate_function
execute_on = 'initial timestep_begin'
[]
[]
[BCs]
[bottom_temperature]
type = FunctionDirichletBC
variable = temperature
function = temperature_function
boundary = '1 2'
[]
[]
[Materials]
[fission_gas_behavior]
type = UO2Sifgrs
temperature = temperature
fission_rate = fission_rate
testing_output = true
ig_diff_algorithm = POLYPOLE1
ig_bubble_model = NUCLEATION_RESOLUTION
ig_bubble_coarsening = WITH_COARSENING
output_properties = 'bubble_concentration_intra bubble_radius_intra gas_concentration_bubble_intra gas_concentraion_matrix_intra bubble_concentration_intra_dislocation bubble_radius_intra_dislocation gas_concentration_bubble_intra_dislocation deltav_v0_intra_total fract_FGR_analytical'
outputs = 'all'
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
l_tol = 1e-12
nl_abs_tol = 5e-16
nl_rel_tol = 1e-17
start_time = 0.0
num_steps = 50
dt = 5e5
[]
[Postprocessors]
[fis_gas_generated]
type = ElementIntegralMaterialProperty
mat_prop = gas_concentration_generated_total
[]
[fis_gas_released]
type = ElementIntegralMaterialProperty
mat_prop = gas_concentration_release_total
[]
[fgr_percent]
type = FGRPercent
fission_gas_released = fis_gas_released
fission_gas_generated = fis_gas_generated
[]
[intrag_swelling]
type = ElementIntegralMaterialProperty
mat_prop = deltav_v0_intra_total
[]
[gas_amount_bubble_intra]
type = ElementIntegralMaterialProperty
mat_prop = gas_concentration_bubble_intra
[]
[gas_amount_matrix_intra]
type = ElementIntegralMaterialProperty
mat_prop = gas_concentration_matrix_intra
[]
[bubble_amount_intra]
type = ElementIntegralMaterialProperty
mat_prop = bubble_concentration_intra
[]
[bubble_radius_intra_average]
type = ElementAverageMaterialProperty
mat_prop = bubble_radius_intra
[]
[radius_bubbles_at_dislocations]
type = ElementAverageMaterialProperty
mat_prop = bubble_radius_intra_dislocation
[]
[bubble_amount_dislocations]
type = ElementIntegralMaterialProperty
mat_prop = bubble_concentration_intra_dislocation
[]
[gas_amount_bubble_at_dislocations]
type = ElementIntegralMaterialProperty
mat_prop = gas_concentration_bubble_intra_dislocation
[]
[temperature]
type = ElementAverageValue
variable = temperature
[]
[fission_rate]
type = ElementAverageValue
variable = fission_rate
[]
[]
[Outputs]
exodus = true
csv = true
[]
(examples/fast_mox_sifgrs/input_single_pellet_sifgrs_mox.i)
#This input is is a simple example of FBR MOX fuel analysis.
#In this case we test the application of Sifgrs to FBR MOX using a specific setting for the lower limit of grain-boundary bubble number density.
initial_fuel_density = 10920.4
[GlobalParams]
displacements = 'disp_x disp_y'
temperature = temp
density = ${initial_fuel_density}
order = FIRST
family = LAGRANGE
energy_per_fission = 3.28451e-11
volumetric_locking_correction = false
[]
[Mesh]
coord_type = RZ
[smeared_pellet_mesh]
type = FuelPinMeshGenerator
include_clad = false
clad_top_gap_height = 0.
pellet_quantity = 1
pellet_height = 0.01
pellet_outer_radius = 0.0027
pellet_mesh_density = customize
nx_p = 10
ny_p = 5
[]
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[temp]
initial_condition = 683 #typical inlet temperature of the sodium
[]
[]
[AuxVariables]
[fission_rate]
block = pellet
[]
[burnup]
block = pellet
[]
[bbl_bdr_2]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[deltav_v0_bubble_GB]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[thermal_conductivity]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[]
[Functions]
[power_history]
type = PiecewiseLinear
x = '0. 70000. 10000000. 10070000.'
y = '0. 35. 35. 0. '
scale_factor = 1000.
[]
[temp_surface]
type = PiecewiseLinear
x = '0. 70000. 10000000. 10070000.'
y = '683. 1000. 1000. 683. '
[]
[pressure_ramp]
type = PiecewiseLinear
x = '0. 70000. 10000000. 10070000.'
y = '0.3 0.5 1.8 0.3 '
scale_factor = 1.e+6
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[pellets]
block = pellet
strain = FINITE
eigenstrain_names = 'fuel_thermal_strain fuel_volumetric_strain'
generate_output = 'vonmises_stress hydrostatic_stress stress_xx stress_yy stress_zz strain_zz'
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temp
[]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temp
[]
[heat_source]
type = NeutronHeatSource
variable = temp
block = pellet
fission_rate = fission_rate
[]
[]
[AuxKernels]
[fission_rate]
type = FissionRateGeneral
fission_rate_formulation = MOX
variable = fission_rate
block = pellet
initial_porosity = 0.07
rod_ave_lin_pow = power_history
pellet_diameter = 0.0054
execute_on = timestep_begin
[]
[burnup]
type = BurnupAux
block = pellet
fission_rate = fission_rate
variable = burnup
execute_on = timestep_begin
[]
[thermal_conductivity]
type = MaterialRealAux
variable = thermal_conductivity
property = thermal_conductivity
[]
[nbbl2]
type = MaterialRealAux
variable = bbl_bdr_2
property = bubble_GB_surface_density
execute_on = timestep_end
[]
[dvv0bd]
type = MaterialRealAux
variable = deltav_v0_bubble_GB
property = deltav_v0_bubble_GB
execute_on = timestep_end
[]
[]
[BCs]
[no_x_all]
type = DirichletBC
variable = disp_x
boundary = centerline
value = 0.
[]
[no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = bottom_central_pellet_node
value = 0.
[]
[imposed_ext_temp]
type = FunctionDirichletBC
boundary = pellet_outer_radial_surface
variable = temp
function = temp_surface
[]
[top_pellet]
variable = temp
type = NeumannBC
value = 0.
boundary = top_of_top_pellet
[]
[bottom_pellet]
variable = temp
type = NeumannBC
value = 0.
boundary = bottom_of_bottom_pellet
[]
[Pressure]
[pressure]
boundary = pellet_outer_radial_surface
function = pressure_ramp
[]
[]
[]
[Materials]
[fuel_thermal]
type = MAMOXThermal
block = pellet
temperature = temp
Am_content = 0.0
Np_content = 0.0
porosity = 0.07
[]
[fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
block = pellet
burnup = burnup
total_densification = 0.1e-02
initial_fuel_density = 10920.4
gas_swelling_model_type = SIFGRS
eigenstrain_name = fuel_volumetric_strain
[]
[fuel_thermal_expansion]
type = MAMOXThermalExpansionEigenstrain
block = pellet
temperature = temp
stress_free_temperature = 295.0
oxygen_to_metal_ratio = 1.98
eigenstrain_name = fuel_thermal_strain
[]
[fuel_elasticity_tensor]
type = MAMOXElasticityTensor
block = pellet
[]
[elastic_stress]
type = ComputeFiniteStrainElasticStress
block = pellet
[]
[fuel_density]
type = StrainAdjustedDensity
block = pellet
strain_free_density = ${initial_fuel_density}
[]
[fission_gas]
type = UO2Sifgrs
block = pellet
temperature = temp
burnup = burnup
fission_rate = fission_rate
grain_radius_const = 8.01e-6
diff_coeff_option = TURNBULL_D1_4D2_4D3
bubble_gb_limit = 1.0e+11 #recommended value for fast MOX fuels
[]
[]
[Preconditioning]
[SMP]
type = SMP
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
l_max_its = 50
l_tol = 1.e-08
nl_max_its = 15
nl_rel_tol = 1.e-4
nl_abs_tol = 1.e-10
start_time = 0.
end_time = 10070000
dtmax = 5e+05
dtmin = 1.
[TimeStepper]
type = IterationAdaptiveDT
growth_factor = 3.
dt = 1.e+02
timestep_limiting_function = power_history
max_function_change = 1000.
force_step_every_function_point = true
[]
[Quadrature]
order = FIFTH
side_order = SEVENTH
[]
[]
[Postprocessors]
[alhr_input]
type = FunctionValuePostprocessor
function = power_history
execute_on = 'initial timestep_end'
[]
[temp_fuel_max]
type = NodalExtremeValue
variable = temp
block = pellet
execute_on = 'initial timestep_end'
[]
[burnup_ave]
type = ElementAverageValue
block = pellet
variable = burnup
[]
[burnup_ave_MWdkgU]
type = ScalePostprocessor
value = burnup_ave
scaling_factor = 950.
[]
[fission_gas_produced]
type = ElementIntegralFisGasGeneratedSifgrs
block = pellet
execute_on = linear
[]
[fission_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = pellet
execute_on = linear
[]
[fgr_percent]
type = FGRPercent
fission_gas_released = fission_gas_released
fission_gas_generated = fission_gas_produced
execute_on = linear
[]
[bubble_num_grain_boundary_center]
type = ElementalVariableValue
variable = bbl_bdr_2
elementid = 21
[]
[bubble_num_grain_boundary_surface]
type = ElementalVariableValue
variable = bbl_bdr_2
elementid = 30
[]
[bubble_num_grain_boundary_min]
type = ElementExtremeValue
value_type = min
variable = bbl_bdr_2
block = pellet
[]
[swelling_grain_boundary_center]
type = ElementalVariableValue
variable = deltav_v0_bubble_GB
elementid = 21
[]
[swelling_grain_boundary_surface]
type = ElementalVariableValue
variable = deltav_v0_bubble_GB
elementid = 30
[]
[temp_fuel_center]
type = NodalVariableValue
variable = temp
nodeid = 23
[]
[temp_fuel_surface]
type = NodalVariableValue
variable = temp
nodeid = 32
[]
[_dt]
type = TimestepSize
execute_on = linear
[]
[nonlinear_its]
type = NumNonlinearIterations
execute_on = linear
[]
[]
[Outputs]
perf_graph = true
exodus = true
csv = true
color = false
[console]
type = Console
max_rows = 15
[]
[t]
type = Checkpoint
time_step_interval = 2
num_files = 2
[]
[]
(test/tests/solid_mechanics/mox_creep/mox_creep.i)
# Tests material model MOXCreepMATPROUpdate, in which the irradiation creep term is
# taken from GUERIN, 1985.
#
# This model provides a transient creep rate of the form:
# creep_rate = (1+2.5*exp(-1.4e-6*T))*steady_creep_rate
# steady_creep_rate = ((B1 + B2*F)/G^2)*exp(-Q3/T + B3*(1-D) + B4*C)*sigma
# + B5*exp(-Q4/T + B7*(1-D) + B4*C)*sigma^4.5
# + A * F * sigma
# with:
# A,B1, ..., B7: material parameters
# T: temperature (K)
# sigma: effective stress (Pa)
# F : fission rate (/m3/s)
# D: density (%T.D./100)
# C: Pu content (wt. %)
# G: grain size (microm)
# Q3, Q4: activation energies (K)
#
# This test is a single cubic element pulled along the y axis during 1e5 s,
# then relaxed in 0.5e5 s, and then pulled again from 4e6 s until 4.1e6 s. This
# last traction is to test the transient creep activation.
#
# We can compute analytically the stress by integrating the creep rate over time.
# At the end of the first constant traction, analytical creep is:
# 3.10344e-3
# BISON finds: 3.180208e-03
#
# Most of this error is due to the discrete calculation of the integral. Taking
# this in account, analytical solution is: 3.18035e-3.
# Error = 4.7e-3 %
#
[GlobalParams]
density = 10431.0
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
[mesh]
type = GeneratedMeshGenerator
dim = 3
[]
[]
[Variables]
[temp]
order = FIRST
family = LAGRANGE
initial_condition = 1500.0
[]
[]
[Physics]
[SolidMechanics]
[QuasiStatic]
[all]
strain = FINITE
incremental = true
add_variables = true
generate_output = 'stress_yy creep_strain_yy'
[]
[]
[]
[]
[AuxVariables]
[fission_rate]
order = FIRST
family = LAGRANGE
[]
[transient_time]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[top_pull]
type = PiecewiseLinear
x = '0 0.1e6 0.15e6 4e6 4.1e6 '
y = '1 1 0.001 0.001 1'
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temp
[]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temp
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
value = 1e19
[]
[transient_time]
type = MaterialRealAux
block = 0
variable = transient_time
property = transient_time
execute_on = timestep_end
[]
[]
[BCs]
[u_top_pull]
type = Pressure
variable = disp_y
boundary = top
factor = -50e6
function = top_pull
[]
[u_bottom_fix]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[]
[u_yz_fix]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[]
[u_xy_fix]
type = DirichletBC
variable = disp_z
boundary = front
value = 0.0
[]
[temp_fix]
type = DirichletBC
variable = temp
boundary = 'bottom top left back right front'
value = 1500.0
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 2.0e11
poissons_ratio = 0.345
[]
[radial_return_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'mox_creep'
[]
[mox_creep]
type = MOXCreepMATPROUpdate
fission_rate = fission_rate
grain_radius = 5.0e-6
Pu_content = 7
temperature = temp
[]
[thermal]
type = HeatConductionMaterial
specific_heat = 1.0
thermal_conductivity = 100.
[]
[density]
type = StrainAdjustedDensity
strain_free_density = 10431.0
[]
[]
[Postprocessors]
[creep_yy]
type = ElementAverageValue
variable = creep_strain_yy
[]
[stress_yy]
type = ElementAverageValue
variable = stress_yy
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart'
petsc_options_value = '101'
line_search = 'none'
l_max_its = 100
nl_max_its = 100
nl_rel_tol = 1e-8
nl_abs_tol = 1e-10
l_tol = 1e-6
start_time = 0.0
end_time = 4.1e6
dt = 5e4
[]
[Outputs]
[out]
type = Exodus
[]
[]
(assessment/MOX/JOYO/MK-II/analysis/MK-II_master_old_bubble_gb_lim.i)
initial_fuel_density = 10920.4
[GlobalParams]
density = ${initial_fuel_density}
initial_porosity = 0.07
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
volumetric_locking_correction = false
displacements = 'disp_x disp_y'
[]
[Problem]
type = ReferenceResidualProblem
extra_tag_vectors = 'ref'
reference_vector = 'ref'
[]
[Mesh]
coord_type = RZ
[smeared_pellet_mesh]
type = FuelPinMeshGenerator
pellet_quantity = 1
pellet_height = 0.55
pellet_outer_radius = 0.002315
pellet_mesh_density = customize
clad_mesh_density = customize
clad_gap_width = 0.000085
clad_thickness = 0.00035
clad_bot_gap_height = 1.0e-3
bottom_clad_height = 2.24e-3
top_clad_height = 2.24e-3
clad_top_gap_height = 0.549
elem_type = QUAD8
nx_c = 4
ny_c = 100
nx_p = 10
ny_p = 100
ny_cu = 3
ny_cl = 3
[]
patch_size = 50
patch_update_strategy = iteration
partitioner = centroid
centroid_partitioner_direction = y
[]
[UserObjects]
[pin_geometry]
type = FuelPinGeometry
[]
[]
[Variables]
[temp]
initial_condition = 295.0
[]
[]
[AuxVariables]
[pore]
[]
[fission_rate]
block = pellet
[]
[burnup]
block = pellet
[]
[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
[]
[vcn_bdr_2]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[atm_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[vcn_bbl_bdr]
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
[]
[vol_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[GBCoverage]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[eff_diff_coeff]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[deltav_v0_bd]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[radial_strain]
order = CONSTANT
family = MONOMIAL
[]
[effective_creep_strain]
block = clad
order = CONSTANT
family = MONOMIAL
[]
[gap_cond]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[power_history] #related to the LHGR at the midplane
type = PiecewiseLinear
x = '0 70000 12697021'
y = '0 48827.8 48827.8'
[]
[fast_neutron_flux_function]
type = PiecewiseLinear
x = '0 70000 12697021'
y = '0 2.6e+19 2.6e+19'
[]
[axial_peaking_factors]
type = PiecewiseBilinear
x = '0 0.065 0.134 0.202 0.271 0.339 0.406 0.519'
y = '0 12697021'
z = '0.889 1.041 1.152 1.173 1.129 0.971 0.782 0.672 0.889 1.041 1.152 1.173 1.129 0.971 0.782 0.672'
scale_factor = 1
axis = 1
[]
[q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[]
[average_power_history]
type = PiecewiseLinear
x = '0 70000 12697021'
y = '0 40000 40000'
[]
[clad_surface_temp]
type = PiecewiseBilinear
x = '0 0.065 0.134 0.202 0.271 0.339 0.406 0.519'
y = '0 12697021'
z = '295 295 295 295 295 295 295 295 416.36 422.49 428.63 434.27 439.36 444.71 450.07 455.48'
scale_factor = 1
axis = 1
[]
[pressure_ramp]
type = PiecewiseLinear
x = '0 1'
y = '1 1'
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[pellets]
block = pellet
add_variables = true
strain = FINITE
eigenstrain_names = 'fuel_thermal_strain fuel_volumetric_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
use_finite_deform_jacobian = true
extra_vector_tags = 'ref'
[]
[clad]
block = clad
add_variables = true
strain = FINITE
eigenstrain_names = 'clad_thermal_eigenstrain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
use_finite_deform_jacobian = true
extra_vector_tags = 'ref'
[]
[]
[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
variable = temp
block = pellet
fission_rate = fission_rate
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[fission_rate]
type = FissionRateGeneral
fission_rate_formulation = MOX
variable = fission_rate
block = pellet
initial_porosity = 0.07
axial_power_profile = axial_peaking_factors
rod_ave_lin_pow = power_history
pellet_diameter = 0.00463
execute_on = timestep_begin
porosity = pore
[]
[burnup]
type = BurnupAux
block = pellet
fission_rate = fission_rate
variable = burnup
execute_on = timestep_begin
[]
[fggen]
type = MaterialRealAux
variable = gas_gen_3
property = gas_concentration_generated_total
execute_on = timestep_end
[]
[fggrn]
type = MaterialRealAux
variable = gas_grn_3
property = gas_concentration_intra_total
execute_on = timestep_end
[]
[fgbdr]
type = MaterialRealAux
variable = gas_bdr_3
property = gas_concentration_GB_bubble_volume
execute_on = timestep_end
[]
[fgrel]
type = MaterialRealAux
variable = gas_rel_3
property = gas_concentration_release_total
execute_on = timestep_end
[]
[nbbl2]
type = MaterialRealAux
variable = bbl_bdr_2
property = bubble_GB_surface_density
execute_on = timestep_end
[]
[nvcn2]
type = MaterialRealAux
variable = vcn_bdr_2
property = vacancy_concentration_GB_surface
execute_on = timestep_end
[]
[atmbbl]
type = MaterialRealAux
variable = atm_bbl_bdr
property = atom_per_bubble_GB
execute_on = timestep_end
[]
[vcnbbl]
type = MaterialRealAux
variable = vcn_bbl_bdr
property = vacancy_per_bubble_GB
execute_on = timestep_end
[]
[prsbbl]
type = MaterialRealAux
variable = prs_bbl_bdr
property = bubble_GB_pressure
execute_on = timestep_end
[]
[prseqbbl]
type = MaterialRealAux
variable = prseq_bbl_bdr
property = bubble_GB_pressure_equilibrium
execute_on = timestep_end
[]
[radbbl]
type = MaterialRealAux
variable = rad_bbl_bdr
property = bubble_radius_GB
execute_on = timestep_end
[]
[volbbl]
type = MaterialRealAux
variable = vol_bbl_bdr
property = bubble_GB_volume
execute_on = timestep_end
[]
[frcvrg]
type = MaterialRealAux
variable = GBCoverage
property = GBCoverage
execute_on = timestep_end
[]
[diffc]
type = MaterialRealAux
variable = eff_diff_coeff
property = eff_diff_coeff
execute_on = timestep_end
[]
[dvv0bd]
type = MaterialRealAux
variable = deltav_v0_bd
property = deltav_v0_bubble_GB
execute_on = timestep_end
[]
[radial_strain]
type = RankTwoAux
rank_two_tensor = total_strain
variable = radial_strain
index_i = 0
index_j = 0
execute_on = timestep_end
[]
[effective_creep_strain]
type = MaterialRealAux
property = effective_creep_strain
variable = effective_creep_strain
block = clad
execute_on = timestep_end
[]
[conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
execute_on = 'linear'
[]
[]
[Contact]
[pellet_clad_mechanical]
primary = 5
secondary = 10
formulation = kinematic
model = frictionless
penalty = 1e7
[]
[]
[ThermalContact]
[thermal_contact]
type = GasGapHeatTransfer
variable = temp
primary = 5
secondary = 10
initial_moles = initial_moles
gas_released = fis_gas_released
contact_pressure = contact_pressure
quadrature = true
[]
[]
[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 = 20
value = 0.0
[]
[temp_clad_out]
type = FunctionDirichletBC
variable = temp
boundary = '2'
function = clad_surface_temp
[]
[Pressure]
[coolantPressure]
boundary = '1 2 3'
factor = 101325
function = pressure_ramp
[]
[]
[PlenumPressure]
[plenumPressure]
boundary = 9
initial_pressure = 300000
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = ave_temp_interior
volume = gas_volume
material_input = fis_gas_released
output = plenum_pressure
[]
[]
[]
[Materials]
[fast_neutron_flux]
type = FastNeutronFlux
calculate_fluence = true
block = clad
flux_function = fast_neutron_flux_function
[]
[fuel_thermal]
type = MAMOXThermal
block = pellet
temperature = temp
Am_content = 0.0
Np_content = 0.0
porosity = pore
output_properties = 'thermal_conductivity'
[]
[fuel_elasticity_tensor]
type = MAMOXElasticityTensor
block = pellet
[]
[elastic_stress]
type = ComputeFiniteStrainElasticStress
block = pellet
[]
[fuel_thermal_expansion]
type = MAMOXThermalExpansionEigenstrain
block = pellet
temperature = temp
stress_free_temperature = 295.0
oxygen_to_metal_ratio = 1.98
eigenstrain_name = fuel_thermal_strain
[]
[fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
block = pellet
temperature = temp
burnup = burnup
initial_fuel_density = 10920.4
eigenstrain_name = fuel_volumetric_strain
[]
[clad_thermal]
type = SS316Thermal
block = clad
temperature = temp
[]
[clad_density]
type = StrainAdjustedDensity
block = clad
strain_free_density = 8000
[]
[clad_elasticity_tensor]
type = SS316ElasticityTensor
block = clad
temperature = temp
elastic_constants_model = legacy_ifr
[]
[thermal_expansion]
type = SS316ThermalExpansionEigenstrain
block = clad
temperature = temp
stress_free_temperature = 295.0
eigenstrain_name = clad_thermal_eigenstrain
[]
[clad_ss316creep]
type = SS316CreepUpdate
block = clad
temperature = temp
fast_neutron_flux = fast_neutron_flux
[]
[clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'clad_ss316creep'
block = clad
[]
[fission_gas_release]
type = UO2Sifgrs
block = pellet
temperature = temp
burnup = burnup
diff_coeff_option = TURNBULL_D1_4D2_4D3
fission_rate = fission_rate
grain_radius_const = 8.01e-6
[]
[fuel_density]
type = StrainAdjustedDensity
block = pellet
strain_free_density = ${initial_fuel_density}
[]
[]
[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'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
fixed_point_abs_tol = 1e-2
fixed_point_rel_tol = 1e-2
fixed_point_max_its = 1
l_max_its = 70
l_tol = 8e-3
nl_max_its = 70
nl_rel_tol = 1e-2
nl_abs_tol = 1e-2
start_time = 0
n_startup_steps = 1
end_time = 12697021
dtmax = 2e5
dtmin = 0.25
[TimeStepper]
type = IterationAdaptiveDT
dt = 5000
optimal_iterations = 15
iteration_window = 2
linear_iteration_ratio = 100
growth_factor = 2
cutback_factor = .5
force_step_every_function_point = true
timestep_limiting_function = power_history
[]
[]
[Postprocessors]
[ave_temp_interior]
type = SideAverageValue
boundary = 9
variable = temp
execute_on = 'initial linear'
[]
[average_burnup]
type = ElementAverageValue
block = pellet
variable = burnup
[]
[clad_inner_vol]
type = InternalVolume
boundary = 7
execute_on = 'initial timestep_end'
[]
[pellet_volume]
type = InternalVolume
boundary = 8
execute_on = 'initial timestep_end'
[]
[avg_clad_temp]
type = SideAverageValue
boundary = 7
variable = temp
execute_on = 'initial timestep_end'
[]
[fis_gas_produced]
type = ElementIntegralFisGasGeneratedSifgrs
block = pellet
execute_on = 'linear'
[]
[fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = pellet
execute_on = 'linear'
[]
[fis_gas_released_percentage]
type = FGRPercent
fission_gas_generated = fis_gas_produced
fission_gas_released = fis_gas_released
execute_on = 'linear'
[]
[fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = pellet
execute_on = 'linear'
[]
[fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = pellet
execute_on = 'linear'
[]
[gas_volume]
type = InternalVolume
boundary = 9
execute_on = 'initial linear'
[]
[flux_from_fuel]
type = SideDiffusiveFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[]
[rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = pellet
[]
[rod_input_power]
type = FunctionValuePostprocessor
function = average_power_history
scale_factor = 0.55 # rod height
[]
[average_vonMises_fuel]
type = ElementAverageValue
variable = vonmises_stress
block = pellet
[]
[average_vonMises_clad]
type = ElementAverageValue
variable = vonmises_stress
block = clad
[]
[average_strain_rr_fuel]
type = ElementAverageValue
variable = radial_strain
block = pellet
[]
[average_strain_rr_clad]
type = ElementAverageValue
variable = radial_strain
block = clad
[]
[average_creep_strain_clad]
type = ElementAverageValue
variable = effective_creep_strain
block = clad
[]
[ave_pore]
type = ElementAverageValue
variable = pore
[]
[max_pore]
type = NodalExtremeValue
value_type = max
variable = pore
[]
[min_pore]
type = NodalExtremeValue
value_type = min
variable = pore
[]
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = true
color = true
csv = true
[console]
type = Console
max_rows = 25
[]
[chkfile]
type = CSV
execute_on = FINAL
show = 'ave_temp_interior fis_gas_released_percentage max_pore'
[]
[]
[MultiApps]
[sub]
type = TransientMultiApp
app_type = BisonApp
execute_on = timestep_end
catch_up = true
max_catch_up_steps = 10
positions_file = positions.txt
input_files = MK-II_sub_old_bubble_gb_lim.i
[]
[]
[Transfers]
[temp_to_sub]
type = MultiAppProjectionTransfer
to_multi_app = sub
source_variable = temp
variable = temp
[]
[pore_from_sub]
type = MultiAppGeometricInterpolationTransfer
from_multi_app = sub
source_variable = pore
variable = pore
[]
[]
[Debug]
show_var_residual_norms = true
show_var_residual = 'temp disp_x disp_y'
[]
(test/tests/sifgrs/u3si2/negative_temperature_exception.i)
# This test ensures that the moose exception to cut the timestep when a
# negative temperature is detected in U3Si2Sifgrs is properly executed.
[Mesh]
[square]
type = GeneratedMeshGenerator
dim = 2
[]
[]
[Functions]
[temperature_func]
type = PiecewiseLinear
x = '0 2'
y = '300 -100.0'
[]
[Fiss_func]
type = ConstantFunction
value = 1e19
[]
[]
[Variables]
[T]
order = FIRST
family = LAGRANGE
initial_condition = 800.0
[]
[]
[AuxVariables]
[fission_rate]
order = FIRST
family = LAGRANGE
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = T
diffusion_coefficient = 1
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
value = 1
fission_rate_function = Fiss_func
execute_on = 'initial timestep_begin'
[]
[]
[BCs]
[all_T]
type = FunctionDirichletBC
variable = T
function = temperature_func
boundary = 'bottom right left top'
[]
[]
[Materials]
[fission_gas_release]
type = U3Si2Sifgrs
temperature = T
fission_rate = fission_rate
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
start_time = 0.0
num_steps = 2
dt = 2
[]
[Postprocessors]
[dt]
type = TimestepSize
[]
[]
[UserObjects]
[terminator]
type = Terminator
expression = 'dt = 1'
execute_on = timestep_end
[]
[]
[Outputs]
csv = true
[]
(test/tests/axial_relocation/axial_relocation_eigenstrain_action_phasefield.i)
# This input is designed to ensure that the pulverization model is properly created through
# the axial relocation action. Given the conditions provided the layered volume of pulverized
# fuel is calculated to be 5.07594e-6 m^3. In this case the phase_field option is used with
# evolve_bubble_pressure_hbs = true and using the 3D phase field criterion
# for pulverization.
[GlobalParams]
order = FIRST
family = LAGRANGE
displacements = disp_x
temperature = temperature
[]
[Mesh]
coord_type = RZ
[layered1D_mesh]
type = Layered1DMeshGenerator
elem_type = EDGE2
slices_per_block = 5
pellet_outer_radius = 4.5e-3
fuel_height = 0.5
include_plenum = false
nx_p = 10
clad_gap_width = 0.0
pellet_mesh_density = customize
pellet_bottom_coor = 0.0
[]
patch_update_strategy = auto
[]
[Variables]
[temperature]
order = FIRST
family = LAGRANGE
initial_condition = 1200
[]
[]
[AuxVariables]
[disp_y]
[]
[disp_z]
[]
[burnup]
order = FIRST
family = LAGRANGE
[]
[strain_yy_0]
order = CONSTANT
family = MONOMIAL
[]
[fission_rate]
order = FIRST
family = LAGRANGE
[]
[]
[Functions]
[burnup_function]
type = ParsedFunction
expression = 'x*6.2857*t/4.275'
[]
[power]
type = PiecewiseLinear
x = '0 100'
y = '15000 15000'
[]
[clad_displacement_function]
type = ParsedFunction
expression = '2.0e-5 * t * sin(pi * y / 0.5)'
[]
[Fiss_func]
type = ParsedFunction
expression = '1.e19'
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temperature
[]
[]
[Physics]
[SolidMechanics]
[Layered1D]
[gps_fuel]
add_scalar_variables = true
add_variables = true
out_of_plane_strain_name = strain_yy
fuel_pin_geometry = fuel_pin_geometry
strain = finite
block = fuel
eigenstrain_names = 'axial_relocation_eigenstrain'
decomposition_method = EigenSolution
mesh_generator = layered1D_mesh
[]
[gps_clad]
add_scalar_variables = true
add_variables = true
out_of_plane_strain_name = strain_yy
fuel_pin_geometry = fuel_pin_geometry
strain = finite
block = clad
decomposition_method = EigenSolution
mesh_generator = layered1D_mesh
[]
[]
[]
[]
[AuxKernels]
[burnup]
type = FunctionAux
variable = burnup
function = burnup_function
execute_on = 'initial linear'
block = fuel
[]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
value = 1
fission_rate_function = Fiss_func
execute_on = 'initial timestep_begin'
[]
[]
[Contact]
[pellet_clad_mechanical]
primary = 5
secondary = 10
penalty = 1e7
formulation = kinematic
model = frictionless
[]
[]
[ThermalContact]
[thermal_contact]
type = GasGapHeatTransfer
variable = temperature
primary = 5
secondary = 10
gap_conductivity = 1
[]
[]
[BCs]
[temperature]
type = DirichletBC
boundary = '10 12 5 2'
variable = temperature
value = 1200
[]
[no_x_all]
type = DirichletBC
variable = disp_x
boundary = 12
value = 0.0
[]
[inner_clad_displacement]
type = FunctionDirichletBC
variable = disp_x
boundary = '5'
function = clad_displacement_function
[]
[]
[Materials]
[fuel_thermal]
type = UO2Thermal
block = fuel
thermal_conductivity_model = STAICU
hbs_porosity_correction = KAMPF
model_hbs_formation = true
temperature = temperature
burnup = burnup
output_properties = hbs_porosity
outputs = exodus
[]
[fuel_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = fuel
youngs_modulus = 2.e11
poissons_ratio = .345
[]
[fuel_stress]
type = ComputeFiniteStrainElasticStress
block = fuel
[]
[clad_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = clad
youngs_modulus = 7.5e10
poissons_ratio = 0.3
[]
[clad_stress]
type = ComputeFiniteStrainElasticStress
block = clad
[]
[clad_thermal]
type = HeatConductionMaterial
block = clad
thermal_conductivity = 16.0
specific_heat = 330.0
[]
[hbs_formation]
type = HighBurnupStructureFormation
block = fuel
temperature = temperature
burnup = burnup
threshold_temperature = 1273.15 # default
output_properties = hbs_volume_fraction
outputs = exodus
[]
[fission_gas_release]
type = UO2Sifgrs
block = fuel
temperature = temperature
fission_rate = fission_rate
burnup = burnup
skip_bdr_model = true
evolve_bubble_pressure_hbs = true
hbs_model = true
hbs_material = hbs_formation
[]
[]
[AxialRelocation]
[relocation]
rod_ave_lin_pow = power
pulverization_threshold = PHASE_FIELD_3D
fission_rate = fission_rate
axial_direction = y
fuel_blocks = fuel
clad_blocks = clad
contact_pressure_variable = contact_pressure
out_of_plane_strain_variable = strain_yy_0
penetration_variable = penetration
clad_inner_volume_addition = 0
burnup_variable = burnup
temperature = temperature
axial_relocation_output_options = MASS_FRACTION
mesh_generator = layered1D_mesh
[]
[]
[Executioner]
type = Transient
solve_type = PJFNK
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart'
petsc_options_value = '101'
line_search = 'none'
l_max_its = 100
nl_max_its = 100
nl_rel_tol = 1e-10
nl_abs_tol = 1e-10
l_tol = 1e-5
start_time = 0.0
num_steps = 14
dt = 2
[]
[Outputs]
exodus = true
hide = 'penetration'
[]
(test/tests/solid_mechanics/uo2_creep/uo2_creep_rate.i)
# Tests material model CreepUO2 which computes the combined thermal
# and irradiation creep for UO2 fuel.
#
# The test is a single element unit cube which is pulled in the y direction
# with a pressure of 5.0e7 Pa. The temperature and fission rate within the cube
# are uniform and constant at 1500 K and 2e18 fissios/m**3-s. The total time is
# 1e5, which is solved in 10 equal steps of 1e4.
# The small-strain anaytical solution for the total y displacement (elastic + thermal
# creep + irradiation creep) is 4.12825e-4. BISON gets 4.12910e-4 using large
# deformation solid mechanics. The difference in the two solutions is 0.021%.
[GlobalParams]
density = 10431.0
displacements = 'disp_x disp_y disp_z'
order = FIRST
family = LAGRANGE
[]
[Mesh]
[mesh]
type = FileMeshGenerator
file = 1x1x1_cube.e
[]
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[disp_z]
[]
[temp]
initial_condition = 1500.0
[]
[]
[AuxVariables]
[fission_rate]
[]
[stress_yy]
order = CONSTANT
family = MONOMIAL
[]
[creep_strain]
order = CONSTANT
family = MONOMIAL
[]
[creep_rate]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[top_pull]
type = PiecewiseLinear
x = '0 1'
y = '1 1'
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
strain = finite
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temp
[]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temp
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
value = 2.0e18
[]
[stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[]
[creep_strain]
type = MaterialRealAux
property = effective_creep_strain
variable = creep_strain
execute_on = 'TIMESTEP_END'
[]
[creep_rate]
type = MaterialRealAux
property = creep_rate
variable = creep_rate
execute_on = 'TIMESTEP_END'
[]
[]
[BCs]
[u_top_pull]
type = Pressure
variable = disp_y
boundary = 5
factor = -0.5e8
function = top_pull
[]
[u_bottom_fix]
type = DirichletBC
variable = disp_y
boundary = 3
value = 0.0
[]
[u_yz_fix]
type = DirichletBC
variable = disp_x
boundary = 4
value = 0.0
[]
[u_xy_fix]
type = DirichletBC
variable = disp_z
boundary = 2
value = 0.0
[]
[temp_top_fix]
type = DirichletBC
variable = temp
boundary = '3 5'
value = 1500.0
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = 1
youngs_modulus = 2e11
poissons_ratio = 0.3
[]
[creep]
type = UO2CreepUpdate
block = 1
temperature = temp
fission_rate = fission_rate
initial_grain_radius = 10.0e-6
oxygen_to_metal_ratio = 2.0
a7 = 3.72264e-35
q3 = 2617
[]
[radial_return_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'creep'
block = 1
[]
[thermal]
type = HeatConductionMaterial
block = 1
specific_heat = 1.0
thermal_conductivity = 100.
[]
[density]
type = StrainAdjustedDensity
block = 1
strain_free_density = 10431.0
[]
[]
[Postprocessors]
[creep_strain]
type = ElementAverageValue
variable = creep_strain
[]
[creep_rate]
type = ElementAverageValue
variable = creep_rate
[]
[]
[Executioner]
type = Transient
solve_type = PJFNK
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart'
petsc_options_value = '101'
line_search = 'none'
l_max_its = 100
nl_max_its = 100
nl_rel_tol = 1e-8
nl_abs_tol = 1e-10
l_tol = 1e-5
start_time = 0.0
num_steps = 10
dt = 10000
[]
[Outputs]
csv = true
[]
(test/tests/fission_rate_generic/generic_form.i)
# Tests the GENERIC implementation of the FissionRateGeneral AuxKernel
# Fission rate was perscribed with a linear piecewise function, as well as a prefactor of 100. If properly implemented, the reported fission rate at
# the end of the simulation will be 100*1100 = 1.1e5
[Mesh]
[mesh]
type = FileMeshGenerator
file = 1hex8_10mm_cube.e
[]
[]
[Functions]
[Temp_func]
type = PiecewiseLinear
x = '0. 1.e+08 2.e+08'
y = '1100. 1400. 1100. '
[]
[Fiss_func]
type = PiecewiseLinear
x = '0. 1.e+08 2.e+08'
y = '1100. 1400. 1100. '
[]
[]
[Variables]
[temp]
order = FIRST
family = LAGRANGE
initial_condition = 1100
[]
[]
[AuxVariables]
[fission_rate]
order = FIRST
family = LAGRANGE
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temp
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
variable = fission_rate
fission_rate_formulation = 'GENERIC'
value = 100
fission_rate_function = Fiss_func
execute_on = 'initial timestep_begin'
[]
[]
[BCs]
[bottom_T]
type = FunctionDirichletBC
variable = temp
function = Temp_func
boundary = 1
[]
[]
[Materials]
[UO2]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 1.0
specific_heat = 1.0
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
l_tol = 1.e-04
nl_abs_tol = 1.e-08
nl_rel_tol = 1.e-08
start_time = 0.
num_steps = 500
dt = 1.e+06
end_time = 2.e+08
[]
[Postprocessors]
[fiss_rate]
type = ElementalVariableValue
elementid = 0
variable = fission_rate
[]
[]
[Outputs]
[out]
type = Exodus
[]
[]
(examples/TRISO/accident_simulation/triso2D_accident.i)
# This example is 2D-RZ analysis of a TRISO fuel particle. Fully coupled
# heat transfer and solid mechanics, plus diffusion of the fission product
# species cesium (Cs) are simulated. The mesh includes contact surfaces
# between the buffer and IPyC layers to facilitate a gap opening between
# these layers. These surfaces are initially in mechanical contact but
# are assumed to have no strength in tension. A coarse mesh is used to
# provide a short run time.
# The calculation simulates fuel-life in three steps. The first step is an
# irradiation period, where constant power and a fixed particle surface
# temperature (1500 K) are assumed over a lifetime of 76 Ms (2.4 yrs).
# For the second step, fuel removal and storage are simulated by setting
# the reactor power and Cs source terms to zero, reducing the particle
# surface temperature to ambient (300 K), and then holding it
# for 100 days. A third and final step simulates accident
# behavior by increasing the particle surface temperature from ambient
# to 2073 K over 2 hrs, and then holding it at this elevated temperature
# for an additional 200 hrs. At the particle outer boundary, the Cs
# concentration is held at zero and the pressure at ambient during the
# entire simulation. The particle is assumed to be stress-free at an
# initial temperature of 1500 K.
#
# Details about this simulation are given in Section 4 of the following
# article: J. D. Hales, R. L. Williamson, S. R. Novascone, D. M. Perez,
# B. W. Spencer and G. Pastore, "Multidimensional multiphysics simulation
# of TRISO particle fuel", Journal of Nuclear Materials, Vol. 443, p. 531,
# 2013.
initial_fuel_density = 11000.0
[GlobalParams]
order = SECOND
family = LAGRANGE
displacements = 'disp_x disp_y'
flux_conversion_factor = 0.85
[]
[Mesh]
coord_type = RZ
[mesh]
type = FileMeshGenerator
file = triso2Dmed.e
[]
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[temp]
initial_condition = 1500.0
[]
[conc]
initial_condition = 0.0
[]
[]
[AuxVariables]
[fission_rate]
block = fuel
order = CONSTANT
family = MONOMIAL
[]
[fluence]
order = CONSTANT
family = MONOMIAL
[]
[burnup]
block = fuel
order = CONSTANT
family = MONOMIAL
[]
[gap_condSlave]
order = CONSTANT
family = MONOMIAL
[]
[creep_xx]
order = CONSTANT
family = MONOMIAL
[]
[creep_yy]
order = CONSTANT
family = MONOMIAL
[]
[creep_zz]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[power_history]
type = PiecewiseLinear
x = '0 76e6 76.001e6'
y = '1 1 0'
[]
[temp_bc]
type = PiecewiseLinear
x = '0 76e6 76.001e6 84.641e6 84.6482e6'
y = '1500 1500 300 300 2073'
[]
[k_function]
type = PiecewiseLinear
x = '0 200e6'
y = '4e-37 4e-37'
[]
[d1_function]
type = ParsedFunction
expression = 'exp(t/4.5e25)'
[]
[d_gap]
type = PiecewiseLinear
x = '1500 2100'
y = '1e-14 1e-12'
[]
[integral_flux_error]
type = ParsedFunction
symbol_names = 'buffer_integral_flux IPyC_integral_flux'
symbol_values = 'buffer_integral_flux IPyC_integral_flux'
expression = 'IPyC_integral_flux + buffer_integral_flux'
[]
[]
[Physics/SolidMechanics/QuasiStatic]
generate_output = 'stress_xx stress_yy stress_zz stress_xy stress_yz stress_zx hydrostatic_stress'
strain = FINITE
incremental = true
add_variables = false
[default]
block = 'fuel buffer IPyC OPyC'
eigenstrain_names = 'thermal_strain swelling_strain'
extra_vector_tags = 'ref'
[]
[SiC]
block = 'SiC'
eigenstrain_names = 'thermal_strain'
extra_vector_tags = 'ref'
[]
[]
[Kernels]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temp
extra_vector_tags = 'ref'
[]
[heat]
type = HeatConduction
variable = temp
extra_vector_tags = 'ref'
[]
[heat_source]
type = NeutronHeatSource
variable = temp
block = fuel
energy_per_fission = 3.2e-11 # units of J/fission
fission_rate = fission_rate
extra_vector_tags = 'ref'
[]
[mass_ie]
type = TimeDerivative
variable = conc
extra_vector_tags = 'ref'
[]
[mass]
type = ArrheniusDiffusion
variable = conc
extra_vector_tags = 'ref'
[]
[mass_source]
type = BodyForce
variable = conc
function = power_history
value = 1.22e-5 # units of moles/m**3-s
block = fuel
extra_vector_tags = 'ref'
[]
[mass_decay]
type = Decay
variable = conc
radioactive_decay_constant = 7.297e-10 # units:(1/sec) The constant for Cesium
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[fission_rate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
block = fuel
fission_rate_function = power_history
value = 3.89e19
execute_on = timestep_begin
[]
[fluence]
type = MaterialRealAux
property = fast_neutron_fluence
variable = fluence
[]
[burnup]
type = BurnupAux
variable = burnup
block = fuel
fission_rate = fission_rate
molecular_weight = 0.270 # units of kg/mole
execute_on = timestep_begin
density = ${initial_fuel_density}
[]
[creep_xx]
type = RankTwoAux
rank_two_tensor = creep_strain
variable = creep_xx
index_i = 0
index_j = 0
block = 'buffer IPyC SiC OPyC'
execute_on = timestep_end
[]
[creep_yy]
type = RankTwoAux
rank_two_tensor = creep_strain
variable = creep_yy
index_i = 1
index_j = 1
block = 'buffer IPyC SiC OPyC'
execute_on = timestep_end
[]
[creep_zz]
type = RankTwoAux
rank_two_tensor = creep_strain
variable = creep_zz
index_i = 2
index_j = 2
block = 'buffer IPyC SiC OPyC'
execute_on = timestep_end
[]
[conductanceSlave]
type = MaterialRealAux
property = gap_conductance
variable = gap_condSlave
boundary = BufferGapBndry
execute_on = linear
[]
[]
[Contact]
[pellet_clad_mechanical]
primary = 15
secondary = 17
penalty = 1e5
model = frictionless
formulation = penalty
[]
[]
[ThermalContact]
[thermal_contact]
type = GasGapHeatTransfer
variable = temp
primary = 15
secondary = 17
initial_moles = initial_moles # coupling to a postprocessor which supplies the initial plenum/gap gas mass
gas_released = 'fis_gas_released co_production' # coupling to postprocessors which supply the fission gas addition, co addition
released_gas_types = 'Kr Xe;
CO'
released_fractions = '0.153 0.847;
1'
gap_geometry_type = CYLINDER
tangential_tolerance = 1e-6
roughness_coef = 0.0
quadrature = true
[]
[cesium_contact]
type = GapHeatTransfer
variable = conc
primary = 15
secondary = 17
tangential_tolerance = 1e-6
gap_conductivity_function = d_gap
gap_conductivity_function_variable = temp
appended_property_name = _conc
emissivity_primary = 0
emissivity_secondary = 0
quadrature = true
[]
[]
[BCs]
# pin particle along symmetry planes
[no_disp_x]
type = DirichletBC
variable = disp_x
boundary = xzero
value = 0.0
extra_vector_tags = 'ref'
[]
[no_disp_y]
type = DirichletBC
variable = disp_y
boundary = yzero
value = 0.0
extra_vector_tags = 'ref'
[]
# fix temperature on free surface
[freesurf_temp]
type = FunctionDirichletBC
variable = temp
boundary = exterior
function = temp_bc
extra_vector_tags = 'ref'
[]
# fix concentration on free surface
[freesurf_conc]
type = DirichletBC
variable = conc
boundary = exterior
value = 0.0
extra_vector_tags = 'ref'
[]
[PlenumPressure] # apply plenum pressure on clad inner walls and pellet surfaces
[plenumPressure]
boundary = BufferGapVol
initial_pressure = 0
startup_time = 1.0e4
R = 8.3145
output_initial_moles = initial_moles # coupling to post processor to get initial fill gas mass
temperature = ave_temp_interior # coupling to post processor to get gas temperature approximation
volume = volumeGas # coupling to post processor to get gas volume
material_input = 'fis_gas_released co_production' # coupling to post processor to get fission gas added, co added
output = plenum_pressure # coupling to post processor to output plenum/gap pressure
[]
[]
[]
[Materials]
[flux]
type = FastNeutronFlux
calculate_fluence = true
factor = 5e17
[]
[fission_gas_release] # Sifgrs fission gas release mode
type = UO2Sifgrs
block = fuel
temperature = temp
fission_rate = fission_rate # coupling to fission_rate aux variable
grain_radius_const = 5.0e-6
[]
[fuel_thermal]
type = UO2Thermal
thermal_conductivity_model = FINK_LUCUTA
block = fuel
temperature = temp
burnup = burnup
initial_porosity = 0.0
[]
[fuel_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = MATPRO
block = fuel
temperature = temp
burnup = burnup
eigenstrain_name = 'swelling_strain'
initial_fuel_density = ${initial_fuel_density}
[]
[fuel_stress]
type = ComputeFiniteStrainElasticStress
block = 'fuel'
[]
[fuel_elasticity]
type = ComputeIsotropicElasticityTensor
block = fuel
youngs_modulus = 2.2e11
poissons_ratio = .345
[]
[fuel_thermal_strain]
type = ComputeThermalExpansionEigenstrain
block = fuel
thermal_expansion_coeff = 10e-6
stress_free_temperature = 1500.0
eigenstrain_name = thermal_strain
temperature = temp
[]
[fuel_den]
type = StrainAdjustedDensity
block = fuel
strain_free_density = ${initial_fuel_density} # kg/m^3
[]
[fuel_conc]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 5.6e-8 # m^2/s
q1 = 209.0e+3 # J/mol
d2 = 5.2e-4 # m^2/s
q2 = 362.0e+3 # J/mol
gas_constant = 8.3143 # J/K-mol
temperature = temp
[]
[buffer_eigenstrain]
type = PyCIrradiationEigenstrain
block = buffer
pyc_type = buffer
eigenstrain_name = 'swelling_strain'
[]
[buffer_thermal_strain]
type = ComputeThermalExpansionEigenstrain
block = buffer
thermal_expansion_coeff = 5.65e-6
stress_free_temperature = 1500.0
eigenstrain_name = thermal_strain
temperature = temp
[]
[buffer_elasticity]
type = ComputeIsotropicElasticityTensor
block = buffer
youngs_modulus = 2e10
poissons_ratio = .23
[]
[buffer_stress]
type = PyCCreep
block = buffer
temperature = temp
[]
[buffer_temp]
type = HeatConductionMaterial
block = buffer
thermal_conductivity = 0.5 # J/m-s-K
specific_heat = 720.0 # J/kg-K
[]
[buffer_den]
type = StrainAdjustedDensity
strain_free_density = 1000.0 #kg/m^3
block = buffer
[]
[buffer_conc]
type = ArrheniusDiffusionCoef
block = buffer
d1 = 1.0e-12 # m^2/s
q1 = 0.0
d2 = 0.0
q2 = 0.0
gas_constant = 8.3143 # J/K-mol
temperature = temp
[]
[normal_vectors_triso]
type = NormalVectorsTRISO
block = 'IPyC OPyC buffer'
[]
[IPyC_eigenstrain]
type = PyCIrradiationEigenstrain
block = IPyC
pyc_type = dense
eigenstrain_name = 'swelling_strain'
[]
[IPyC_thermal_strain]
type = ComputeThermalExpansionEigenstrain
block = IPyC
thermal_expansion_coeff = 5.65e-6
stress_free_temperature = 1500.0
eigenstrain_name = thermal_strain
temperature = temp
[]
[IPyC_elasticity]
type = ComputeIsotropicElasticityTensor
block = IPyC
youngs_modulus = 4.74e10
poissons_ratio = .23
[]
[IPyC_disp]
type = PyCCreep
block = 'IPyC OPyC'
temperature = temp
[]
[IPyC_temp]
type = HeatConductionMaterial
block = 'IPyC OPyC'
thermal_conductivity = 4.0
specific_heat = 720.0
[]
[IPyC_den]
type = StrainAdjustedDensity
block = 'IPyC OPyC'
strain_free_density = 1900.0
[]
[IPyC_conc]
type = ArrheniusDiffusionCoef
block = IPyC
d1 = 6.3e-8
q1 = 222.0e+3
d2 = 0.0
q2 = 0.0
gas_constant = 8.3143 # J/K-mol
temperature = temp
[]
[SiC_thermal_strain]
type = ComputeThermalExpansionEigenstrain
block = SiC
thermal_expansion_coeff = 4.9e-6
stress_free_temperature = 1500.0
eigenstrain_name = thermal_strain
temperature = temp
[]
[SiC_elasticity]
type = ComputeIsotropicElasticityTensor
block = SiC
youngs_modulus = 3.4e11
poissons_ratio = .13
[]
[SiC_creep]
type = MonolithicSiCCreepUpdate
block = SiC
temperature = temp
k_function = k_function
[]
[SiC_stress]
type = ComputeMultipleInelasticStress
block = SiC
tangent_operator = elastic
inelastic_models = 'SiC_creep'
[]
[SiC_temp]
type = HeatConductionMaterial
block = SiC
thermal_conductivity = 13.9 # J/m-s-K
specific_heat = 620.0 # J/kg-K
[]
[SiC_den]
type = StrainAdjustedDensity
strain_free_density = 3180.0 # kg/m^3
block = SiC
[]
[SiC_conc]
type = ArrheniusDiffusionCoef
block = SiC
d1 = 5.5e-14 # m^2/s
d1_function = d1_function
d1_function_variable = fluence
q1 = 125.0e+3 # J/mol
d2 = 1.6e-2 # m^2/s
q2 = 514.0e+3 # J/mol
gas_constant = 8.3143 # J/K-mol
temperature = temp
[]
[OPyC_eigenstrain]
type = PyCIrradiationEigenstrain
block = OPyC
pyc_type = dense
eigenstrain_name = 'swelling_strain'
[]
[OPyC_thermal_strain]
type = ComputeThermalExpansionEigenstrain
block = OPyC
thermal_expansion_coeff = 5.65e-6
stress_free_temperature = 1500.0
eigenstrain_name = thermal_strain
temperature = temp
[]
[OPyC_elasticity]
type = ComputeIsotropicElasticityTensor
block = OPyC
youngs_modulus = 4.74e10
poissons_ratio = .23
[]
[OPyC_conc]
type = ArrheniusDiffusionCoef
block = OPyC
d1 = 6.3e-8 # m^2/s
q1 = 222.0e+3 # J/mol
d2 = 0.0
q2 = 0.0
gas_constant = 8.3143 # J/K-mol
temperature = temp
[]
[]
[Dampers]
[temp]
type = MaxIncrement
variable = temp
max_increment = 50
[]
[]
[Debug]
show_var_residual_norms = true
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
nl_rel_tol = 5e-4
nl_abs_tol = 1e-9
nl_max_its = 15
l_tol = 1e-3
l_max_its = 50
start_time = 0.0
end_time = 85.3682e6
dt = 100
dtmax = 2e6
dtmin = 1
automatic_scaling = true
compute_scaling_once = false
scaling_group_variables = 'conc; disp_x disp_y; temp'
[TimeStepper]
type = IterationAdaptiveDT
dt = 100
optimal_iterations = 6
growth_factor = 1.5
linear_iteration_ratio = 100
time_t = '0 76e6 76.001e6 84.641e6 84.6482e6'
time_dt = '20 20 20 20 20'
[]
[Predictor]
type = SimplePredictor
scale = 1
skip_times_old = '0 76e6 76.001e6 84.641e6 84.6482e6'
[]
[Quadrature]
order = THIRD
side_order = FIFTH
[]
[]
[Outputs]
perf_graph = true
exodus = true
[console]
type = Console
max_rows = 25
[]
[csv]
type = CSV
sync_times = '100 6308007 75696087'
sync_only = true
[]
[]
[Postprocessors]
[Cs_release]
type = SideIntegralMassFlux
variable = conc
boundary = exterior
execute_on = timestep_end
[]
[dt]
type = TimestepSize
execute_on = timestep_end
[]
[fis_gas_produced] # fission gas produced (moles)
type = ElementIntegralFisGasGeneratedSifgrs
block = fuel
execute_on = 'initial linear nonlinear timestep_begin timestep_end'
[]
[fis_gas_released] # fission gas released to plenum (moles)
type = ElementIntegralFisGasReleasedSifgrs
block = fuel
execute_on = 'initial linear nonlinear timestep_begin timestep_end'
[]
[volumeTotal]
type = InternalVolume
boundary = exterior
execute_on = 'initial timestep_end'
[]
[volumeFuel]
type = InternalVolume
boundary = fuel
execute_on = 'initial timestep_end'
[]
[volumeGas]
type = InternalVolume
boundary = BufferGapVol
# ro = 3.125e-4
# ri = 2.125e-4
# vb = 4/3*pi*(ro^3-ri^3) = 8.76e-11
# buffer density = 1000
# PyC density = 1900
# fill ratio = 10/19
# vb*10/19 = 4.6e-11
# Must remove 4.6e-11 m^3 from the volume
addition = -4.6e-11
execute_on = 'initial linear nonlinear timestep_begin timestep_end'
[]
[volumeBufferShell]
type = InternalVolume
boundary = BufferGapVol
execute_on = 'initial timestep_end'
[]
[ave_temp_interior]
type = SideAverageValue
boundary = BufferGapVol
variable = temp
execute_on = 'initial linear nonlinear timestep_begin timestep_end'
[]
# Postprocessors for CO production
[total_fission_rate]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = fuel
energy_per_fission = 1.0
execute_on = 'initial linear nonlinear timestep_begin timestep_end'
[]
[total_fissions]
type = TimeIntegratedPostprocessor
value = total_fission_rate
execute_on = 'initial linear nonlinear timestep_begin timestep_end'
[]
[avg_surface_temp]
type = SideAverageValue
variable = temp
boundary = exterior
execute_on = 'initial linear nonlinear timestep_begin timestep_end'
[]
[time_int_surf_temp]
type = TimeIntegratedPostprocessor
value = avg_surface_temp
execute_on = 'initial linear nonlinear timestep_begin timestep_end'
[]
[co_production]
type = CarbonMonoxideProduction
total_fissions = total_fissions
time_integrated_triso_temperature = time_int_surf_temp
initial_enrichment = 0.14029
execute_on = 'initial linear nonlinear timestep_begin timestep_end'
[]
[num_lin_it]
type = NumLinearIterations
[]
[num_nonlin_it]
type = NumNonlinearIterations
[]
[tot_lin_it]
type = CumulativeValuePostprocessor
postprocessor = num_lin_it
[]
[tot_nonlin_it]
type = CumulativeValuePostprocessor
postprocessor = num_nonlin_it
[]
[alive_time]
type = PerfGraphData
section_name = Root
data_type = TOTAL
[]
[buffer_avg_conc]
type = SideAverageValue
variable = conc
boundary = 17
[]
[IPyC_avg_conc]
type = SideAverageValue
variable = conc
boundary = 15
[]
[buffer_integral_flux]
type = SideIntegralMassFlux
variable = conc
boundary = 17
[]
[IPyC_integral_flux]
type = SideIntegralMassFlux
variable = conc
boundary = 15
[]
[integral_flux_error]
type = FunctionValuePostprocessor
function = integral_flux_error
[]
[integral_Cs_release]
type = TimeIntegratedPostprocessor
value = Cs_release
[]
[Cs_production]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 1.22e-5 # units of moles/m**3-s
[]
[time_integral_Cs_production]
type = TimeIntegratedPostprocessor
value = Cs_production
[]
[volumeFuel_initial]
type = InternalVolume
boundary = fuel
execute_on = initial
[]
[integral_Cs_production]
type = ParsedPostprocessor
pp_names = 'time_integral_Cs_production volumeFuel_initial'
expression = 'time_integral_Cs_production * volumeFuel_initial'
[]
[Cs_release_fraction]
type = ParsedPostprocessor
pp_names = 'integral_Cs_release integral_Cs_production'
expression = 'integral_Cs_release / integral_Cs_production'
[]
[]
[VectorPostprocessors]
[temperaturevpp]
type = SideValueSampler
boundary = 11
variable = temp
sort_by = x
outputs = 'csv'
use_displaced_mesh = true
[]
[]
(test/tests/ifba_he_production/doc/fill_gas_xenon.i)
#
# 2-D RZ One Pellet Test - Using Xenon as fill gas
#
# This test is of a single pellet with cladding and a specified initial
# pressure of Xe fill gas.
#
# This model results in a upper limit for the interior_temp due to the type of
# fill gas used.
#
[GlobalParams]
density = 10431.0 #95% TD (TD = 10980)
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission (205 Mev)
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[Mesh]
coord_type = RZ
[smeared_pellet_mesh]
type = FuelPinMeshGenerator
clad_mesh_density = customize
pellet_mesh_density = customize
ny_p = 4
nx_p = 6
nx_c = 3
ny_cu = 3
ny_c = 4
ny_cl = 3
clad_thickness = 5.6e-4
pellet_outer_radius = 0.0041
pellet_height = 0.01
pellet_quantity = 1
clad_bot_gap_height = 1e-3
bottom_clad_height = 2.24e-3
top_clad_height = 2.24e-3
clad_gap_width = 8e-5
plenum_fuel_ratio = 0.150
elem_type = QUAD8
[]
displacements = 'disp_x disp_y'
partitioner = centroid
centroid_partitioner_direction = y
patch_size = 5
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[temp]
initial_condition = 298
[]
[]
[AuxVariables]
[fission_rate]
block = '3'
[]
[burnup]
block = '3'
[]
[fast_neutron_flux]
[]
[fast_neutron_fluence]
[]
[grain_radius]
block = '3'
initial_condition = 5e-6 # must be the same as the initial value in Sifgr
[]
[gas_swell]
order = CONSTANT
family = MONOMIAL
block = '3'
[]
[gap_conductance]
order = CONSTANT
family = MONOMIAL
[]
[pid]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[power_history]
# CoolantChannel requires this to have units while axial_peaking_factors must be normalized.
type = PiecewiseLinear
x = '0 1.0e4 1.0e8'
y = '0 1.0 1.0'
scale_factor = 20e3 # 20 kW/m peak power.
[]
[axial_peaking_factors]
type = ParsedFunction
expression = 1
[]
[coolant_pressure_ramp]
type = PiecewiseLinear
x = '0 10000'
y = '0 1'
[]
[q] # this is for fuel_relocation
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[]
[]
[SolidMechanics]
[solid]
temperature = temp
extra_vector_tags = 'ref'
[]
[]
[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'
fission_rate = fission_rate
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
block = '3'
#convert W/m from power profile to fission/m**3-s
#calculated as 1/(energy_per_fission*area)
#using energy_per_fission = 3.2e-11, consistent with 200 MeV/fission
value = 5.3548e+14
fission_rate_function = q
[]
[burnup]
type = BurnupAux
variable = burnup
block = '3'
fission_rate = fission_rate
molecular_weight = 0.270
[]
[fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = 1
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
# If you divide flux/power, you get this constant factor
factor = 2.34e+13
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
[]
[grain_radius]
type = GrainRadiusAux
block = '3'
variable = grain_radius
temperature = temp
execute_on = linear
[]
[gas_swell]
type = MaterialRealAux
block = '3'
variable = gas_swell
property = deltav_v0_bd
execute_on = timestep_end
[]
[pid]
type = ProcessorIDAux
variable = pid
[]
[gap_cond]
type = MaterialRealAux
property = gap_conductance
variable = gap_conductance
boundary = 10
[]
[]
[Contact]
[pellet_clad_mechanical]
primary = 5
secondary = 10
penalty = 1e+14 #1e7
model = frictionless
tangential_tolerance = 5e-4
normal_smoothing_distance = 0.1
normalize_penalty = true
[]
[]
[ThermalContact]
[pellet_clad_thermal]
type = GasGapHeatTransfer
variable = temp
primary = 5
secondary = 10
gas_released = fis_gas_released
initial_moles = initial_moles
jump_distance_model = LANNING
layer_thickness = layer_thickness
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
initial_gas_types = Xe
initial_fractions = 1
roughness_coef = 3.2
roughness_secondary = 1e-6
roughness_primary = 2e-6
emissivity_primary = 0.8
emissivity_secondary = 0.8
quadrature = true
normal_smoothing_distance = 0.1
[]
[]
[BCs]
[no_x_all]
type = DirichletBC
variable = disp_x
boundary = 1003
value = 0.0
[]
# pin entire clad bottom in y
[no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[]
# pin fuel bottom in y
[no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 20
value = 0.0
[]
# pin fuel axis in x and z
[no_x_fuel]
type = DirichletBC
variable = disp_x
boundary = 1005
value = 0.0
[]
[Pressure]
# apply coolant pressure on clad outer walls
[coolantPressure]
boundary = '2'
factor = 15.5e6
function = coolant_pressure_ramp
[]
[]
[PlenumPressure]
# apply plenum pressure on clad inner walls and pellet surfaces
[plenumPressure]
boundary = 9
initial_pressure = 0.50e6
startup_time = 0.0
material_input = fis_gas_released
output_initial_moles = initial_moles
R = 8.3143
temperature = interior_temp
volume = gas_volume
output = plenum_pressure
displacements = 'disp_x disp_y'
execute_on = 'initial linear'
[]
[]
[]
[CoolantChannel]
[convective_clad_surface]
boundary = '2'
variable = temp
inlet_temperature = 580 # K
inlet_pressure = 15.5e6 # PA
inlet_massflux = 3880 # kg/m^2-sec
rod_diameter = 0.95e-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 = '3'
temperature = temp
burnup = burnup
thermal_conductivity_model = NFIR
[]
[fuel_swelling]
type = VSwellingUO2
block = '3'
temperature = temp
burnup = burnup
gas_swelling_type = sifgrs
[]
[fuel_solid_mechanics_elastic]
type = Elastic
block = '3'
temperature = temp
youngs_modulus = 2.e11
poissons_ratio = 0.345
thermal_expansion = 10.0e-6
dep_matl_props = deltav_v0_bd
[]
[fission_gas_release]
type = Sifgrs
block = '3'
temperature = temp
fission_rate = fission_rate
grain_radius = grain_radius
gbs_model = true
burnup = burnup
diff_coeff_option = TURNBULL_D1_D2
[]
[clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[]
[clad_solid_mechanics]
type = SolidModel
block = 1
temperature = temp
youngs_modulus = 7.5e10
poissons_ratio = 0.3
thermal_expansion = 5.0e-6
constitutive_model = clad_plasticity
[]
[clad_growth]
type = IrradiationGrowthZr4
block = 1
fast_neutron_fluence = fast_neutron_fluence
growth_direction = 1
[]
[clad_plasticity]
type = IsotropicPlasticity
block = 1
temperature = temp
yield_stress = 550e6
hardening_constant = 2.5e9
[]
[clad_density]
type = StrainAdjustedDensity
block = 1
strain_free_density = 6551.0
[]
[fuel_density]
type = StrainAdjustedDensity
block = '3'
[]
[]
[Dampers]
[limitT]
type = MaxIncrement
variable = temp
max_increment = 25.0
[]
[]
[Preconditioning]
[SMP]
type = SMP
off_diag_row = 'disp_x'
off_diag_column = 'disp_x'
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
l_max_its = 25
nl_max_its = 40
nl_rel_tol = 1e-5
nl_abs_tol = 1e-8
dtmax = 1.0e6
dtmin = 1.0
end_time = 2.0e7 # Stop run before contact between pellet and clad occurs
[TimeStepper]
type = IterationAdaptiveDT
dt = 1e3
optimal_iterations = 30
iteration_window = 4
time_t = '0 1e4 1e8'
time_dt = '1e4 1e5 1e6'
timestep_limiting_function = power_history
force_step_every_function_point = true
[]
[Quadrature]
order = fifth
side_order = seventh
[]
verbose = true
[]
[Postprocessors]
[clad_inner_vol]
type = InternalVolume
boundary = 7
execute_on = 'initial timestep_end'
[]
[pellet_volume]
type = InternalVolume
boundary = 8
execute_on = 'initial timestep_end'
[]
[gas_volume]
type = InternalVolume
boundary = 9
execute_on = 'initial timestep_end'
[]
[interior_temp]
type = SideAverageValue
boundary = 9 # cladding interior and pellet exterior
variable = temp
execute_on = 'initial timestep_end'
[]
[fis_gas_produced] # fission gas produced (moles)
type = ElementIntegralFisGasGeneratedSifgrs
block = '3'
[]
[fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = '3'
[]
[fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = '3'
[]
[fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = '3'
[]
[power_history]
type = FunctionValuePostprocessor
function = power_history
[]
[flux_from_clad]
type = SideDiffusiveFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[]
[flux_from_fuel]
type = SideDiffusiveFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[]
[dt]
type = TimestepSize
[]
[residual]
type = Residual
[]
[nl_its]
type = NumNonlinearIterations
[]
[lin_its]
type = NumLinearIterations
[]
[average_burnup]
type = ElementAverageValue
block = '3'
variable = burnup
[]
[burnup]
type = ElementAverageValue
block = '3'
variable = burnup
[]
[average_fissionrate]
type = ElementAverageValue
block = '3'
variable = fission_rate
[]
[rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = '3'
[]
[rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 0.01 # change: length of fuel stack in meters (1 pellet height)
[]
[]
[Outputs]
time_step_interval = 1
exodus = false
[console]
type = Console
solve_log = true
output_linear = true
max_rows = 25
[]
[out]
type = CSV
delimiter = ' '
[]
[]
(assessment/MOX/FFTF/FO-2/L09/analysis/L09_2DRZ_new_bubble_gb_lim_DiffCoeff4.i)
initial_fuel_density = 10431.0
[GlobalParams]
density = ${initial_fuel_density}
initial_porosity = 0.2
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
volumetric_locking_correction = false
displacements = 'disp_x disp_y'
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[Mesh]
coord_type = RZ
[smeared_pellet_mesh]
type = FuelPinMeshGenerator
pellet_quantity = 1
pellet_height = 0.9144
pellet_outer_radius = 2.794e-3
pellet_inner_radius = 6.985e-4
pellet_mesh_density = customize
clad_mesh_density = customize
clad_gap_width = 101.6e-6
clad_thickness = 0.5334e-3
clad_bot_gap_height = 1.0e-3
bottom_clad_height = 2.24e-3
top_clad_height = 2.24e-3
clad_top_gap_height = 1.057
elem_type = QUAD8
nx_c = 4
ny_c = 1000
nx_p = 10
ny_p = 500
ny_cu = 3
ny_cl = 3
[]
patch_size = 50
patch_update_strategy = iteration
partitioner = centroid
centroid_partitioner_direction = y
[]
[UserObjects]
[pin_geometry]
type = FuelPinGeometry
[]
[]
[Variables]
[temp]
initial_condition = 295.0
scaling = 1
[]
[]
[AuxVariables]
[fission_rate]
block = pellet
[]
[burnup]
block = pellet
[]
[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
[]
[vcn_bdr_2]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[atm_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[vcn_bbl_bdr]
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
[]
[vol_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[GBCoverage]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[eff_diff_coeff]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[deltav_v0_bd]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[radial_strain]
order = CONSTANT
family = MONOMIAL
[]
[effective_creep_strain]
block = clad
order = CONSTANT
family = MONOMIAL
[]
[gap_cond]
order = CONSTANT
family = MONOMIAL
[]
[coolant_htc]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[fraction_history]
type = PiecewiseLinear
x = '0 74993.42422 31858942.74'
y = '0 0.854004932 0.854004932'
[]
[fast_neutron_flux_function]
type = PiecewiseLinear
x = '0 74993.42422 31858942.74'
y = '0 2.99513e+19 2.99513e+19'
[]
[axial_power_profile]
type = PiecewiseBilinear
x = '0.0334152 0.09468 0.1559448 0.2162952 0.27756 0.3388248 0.3991752 0.46044 0.5217048 0.5820552 0.64332 0.7045848 0.7649352 0.8262 0.8874648'
y = '0 31858942.74'
z = '5493.43832 7183.727034 29157.48031 34228.34646 37608.92388 40144.35696 41412.07349 42257.21785 41834.64567 39721.78478 37608.92388 33805.77428 28312.33596 4225.721785 2535.433071 5041.338583 6592.519685 26757.87402 31411.41732 34513.77953 36840.55118 38003.93701 38779.52756 38391.73228 36452.75591 34513.77953 31023.62205 25982.28346 3877.952756 2326.771654'
scale_factor = 1
axis = 1
[]
[average_power_history]
type = PiecewiseLinear
x = '0 74993.42422 31858942.74'
y = '0 24264.05646 24264.05646'
[]
[pressure_ramp]
type = PiecewiseLinear
x = '-200 0'
y = '0 1'
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[pellets]
block = pellet
add_variables = true
strain = FINITE
eigenstrain_names = 'fuel_thermal_strain fuel_volumetric_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
extra_vector_tags = 'ref'
use_finite_deform_jacobian = true
[]
[clad]
block = clad
add_variables = true
strain = FINITE
eigenstrain_names = 'clad_thermal_eigenstrain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
extra_vector_tags = 'ref'
use_finite_deform_jacobian = true
[]
[]
[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
extra_vector_tags = 'ref'
block = pellet
fission_rate = fission_rate
[]
[]
[AuxKernels]
[fission_rate]
type = FissionRateGeneral
fission_rate_formulation = MOX
variable = fission_rate
block = pellet
initial_porosity = 0.2
axial_power_profile = axial_power_profile
rod_ave_lin_pow = fraction_history
pellet_diameter = 0.005588
execute_on = timestep_begin
pellet_inner_diameter = 0.001397
[]
[burnup]
type = BurnupAux
block = pellet
fission_rate = fission_rate
variable = burnup
execute_on = timestep_begin
[]
[fggen]
type = MaterialRealAux
variable = gas_gen_3
property = gas_concentration_generated_total
execute_on = timestep_end
[]
[fggrn]
type = MaterialRealAux
variable = gas_grn_3
property = gas_concentration_intra_total
execute_on = timestep_end
[]
[fgbdr]
type = MaterialRealAux
variable = gas_bdr_3
property = gas_concentration_GB_bubble_volume
execute_on = timestep_end
[]
[fgrel]
type = MaterialRealAux
variable = gas_rel_3
property = gas_concentration_release_total
execute_on = timestep_end
[]
[nbbl2]
type = MaterialRealAux
variable = bbl_bdr_2
property = bubble_GB_surface_density
execute_on = timestep_end
[]
[nvcn2]
type = MaterialRealAux
variable = vcn_bdr_2
property = vacancy_concentration_GB_surface
execute_on = timestep_end
[]
[atmbbl]
type = MaterialRealAux
variable = atm_bbl_bdr
property = atom_per_bubble_GB
execute_on = timestep_end
[]
[vcnbbl]
type = MaterialRealAux
variable = vcn_bbl_bdr
property = vacancy_per_bubble_GB
execute_on = timestep_end
[]
[prsbbl]
type = MaterialRealAux
variable = prs_bbl_bdr
property = bubble_GB_pressure
execute_on = timestep_end
[]
[prseqbbl]
type = MaterialRealAux
variable = prseq_bbl_bdr
property = bubble_GB_pressure_equilibrium
execute_on = timestep_end
[]
[radbbl]
type = MaterialRealAux
variable = rad_bbl_bdr
property = bubble_radius_GB
execute_on = timestep_end
[]
[volbbl]
type = MaterialRealAux
variable = vol_bbl_bdr
property = bubble_GB_volume
execute_on = timestep_end
[]
[frcvrg]
type = MaterialRealAux
variable = GBCoverage
property = GBCoverage
execute_on = timestep_end
[]
[diffc]
type = MaterialRealAux
variable = eff_diff_coeff
property = eff_diff_coeff
execute_on = timestep_end
[]
[dvv0bd]
type = MaterialRealAux
variable = deltav_v0_bd
property = deltav_v0_bubble_GB
execute_on = timestep_end
[]
[radial_strain]
type = RankTwoAux
rank_two_tensor = total_strain
variable = radial_strain
index_i = 0
index_j = 0
execute_on = timestep_end
[]
[effective_creep_strain]
type = MaterialRealAux
property = effective_creep_strain
variable = effective_creep_strain
block = clad
execute_on = timestep_end
[]
[conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
execute_on = 'linear'
[]
[coolant_htc]
type = MaterialRealAux
property = coolant_channel_htc
variable = coolant_htc
boundary = 2
execute_on = 'linear'
[]
[]
[Contact]
[pellet_clad_mechanical]
primary = 5
secondary = 10
formulation = kinematic
model = frictionless
penalty = 1e7
[]
[]
[ThermalContact]
[thermal_contact]
type = GasGapHeatTransfer
variable = temp
primary = 5
secondary = 10
initial_moles = initial_moles
gas_released = fis_gas_released
contact_pressure = contact_pressure
quadrature = true
[]
[]
[BCs]
[no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[]
[no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 20
value = 0.0
[]
[Pressure]
[coolantPressure]
boundary = '1 2 3'
factor = 0.151e6
function = pressure_ramp
[]
[]
[PlenumPressure]
[plenumPressure]
boundary = 9
initial_pressure = 101325
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = ave_temp_interior
volume = gas_volume
material_input = fis_gas_released
output = plenum_pressure
[]
[]
[]
[CoolantChannel]
[convective_clad_surface]
boundary = '1 2 3'
variable = temp
inlet_temperature = 580
inlet_pressure = 0.151e6
inlet_massflux = 1687.43
rod_diameter = 6.858e-3
rod_pitch = 1.7e-2
linear_heat_rate = fraction_history
axial_power_profile = axial_power_profile
coolant_material = sodium
[]
[]
[Materials]
[fuel_thermal]
type = MAMOXThermal
block = pellet
temperature = temp
Am_content = 0.0
Np_content = 0.0
porosity = 0.2
output_properties = 'thermal_conductivity'
[]
[fuel_elasticity_tensor]
type = MAMOXElasticityTensor
block = pellet
[]
[elastic_stress]
type = ComputeFiniteStrainElasticStress
block = pellet
outputs = exodus
[]
[fuel_thermal_expansion]
type = MAMOXThermalExpansionEigenstrain
block = pellet
temperature = temp
stress_free_temperature = 295.0
oxygen_to_metal_ratio = 2.0
eigenstrain_name = fuel_thermal_strain
[]
[fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
block = pellet
temperature = temp
burnup = burnup
initial_fuel_density = 10431.0
eigenstrain_name = fuel_volumetric_strain
[]
[clad_thermal]
type = HT9Thermal
block = clad
temperature = temp
[]
[clad_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1.88e11
poissons_ratio = 0.236
block = clad
[]
[clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = nonlinear
inelastic_models = 'clad_ht9creep'
block = clad
[]
[clad_ht9creep]
type = HT9CreepUpdate
block = clad
temperature = temp
[]
[thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = clad
thermal_expansion_coeff = 1.2e-5
temperature = temp
stress_free_temperature = 295.0
eigenstrain_name = clad_thermal_eigenstrain
[]
[fission_gas_release]
type = UO2Sifgrs
block = pellet
temperature = temp
burnup = burnup
fission_rate = fission_rate
diff_coeff_option = TURNBULL_D1_4D2_4D3
grain_radius_const = 10e-06
bubble_gb_limit = 1.0e+11
[]
[clad_density]
type = StrainAdjustedDensity
block = clad
strain_free_density = 7874.0
[]
[fuel_density]
type = StrainAdjustedDensity
block = pellet
strain_free_density = ${initial_fuel_density}
[]
[fast_neutron_flux]
type = GenericFunctionMaterial
block = clad
prop_names = fast_neutron_flux
prop_values = fast_neutron_flux_function
[]
[]
[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'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
l_max_its = 50
l_tol = 8e-3
nl_max_its = 15
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
start_time = -200
n_startup_steps = 1
end_time = 31858942.74
dtmax = 1e6
dtmin = 1
[TimeStepper]
type = IterationAdaptiveDT
dt = 2e2
optimal_iterations = 10
iteration_window = 2
linear_iteration_ratio = 100
growth_factor = 2
cutback_factor = .5
force_step_every_function_point = true
timestep_limiting_function = fraction_history
[]
[Quadrature]
order = FIFTH
side_order = SEVENTH
[]
[]
[Postprocessors]
[ave_temp_interior]
type = SideAverageValue
boundary = 9
variable = temp
execute_on = 'initial linear'
[]
[average_burnup]
type = ElementAverageValue
block = pellet
variable = burnup
[]
[clad_inner_vol]
type = InternalVolume
boundary = 7
execute_on = 'initial timestep_end'
[]
[pellet_volume]
type = InternalVolume
boundary = 8
execute_on = 'initial timestep_end'
[]
[avg_clad_temp]
type = SideAverageValue
boundary = 7
variable = temp
execute_on = 'initial timestep_end'
[]
[fis_gas_produced]
type = ElementIntegralFisGasGeneratedSifgrs
block = pellet
execute_on = 'linear'
[]
[fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = pellet
execute_on = 'linear'
[]
[fis_gas_released_percentage]
type = FGRPercent
fission_gas_generated = fis_gas_produced
fission_gas_released = fis_gas_released
execute_on = 'linear'
[]
[fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = pellet
execute_on = 'linear'
[]
[fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = pellet
execute_on = 'linear'
[]
[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
[]
[rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = pellet
[]
[rod_input_power]
type = FunctionValuePostprocessor
function = average_power_history
scale_factor = 0.9144 # rod height
[]
[average_vonMises_fuel]
type = ElementAverageValue
variable = vonmises_stress
block = pellet
[]
[average_vonMises_clad]
type = ElementAverageValue
variable = vonmises_stress
block = clad
[]
[average_strain_rr_fuel]
type = ElementAverageValue
variable = radial_strain
block = pellet
[]
[average_strain_rr_clad]
type = ElementAverageValue
variable = radial_strain
block = clad
[]
[average_creep_strain_clad]
type = ElementAverageValue
variable = effective_creep_strain
block = clad
[]
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = true
color = true
csv = true
[console]
type = Console
max_rows = 25
[]
[chkfile]
type = CSV
file_base = fftf_fo2_L09_new_DiffCoeff4_chkfile
execute_on = FINAL
show = 'ave_temp_interior fis_gas_released_percentage'
[]
[]
[Debug]
show_var_residual_norms = true
[]
(test/tests/element_integral_power/fission_gas_sifgrs_1D.i)
# Tests the ElementIntegralPower postprocessor
#
# A constant volumetric fission rate of 3.125e18 fissions/m^3-s is applied to a RZ cylinder
# having an inner radius of 0.01 m, outer radius of 0.0114818 m and height of 0.01 m.
# The power is thus constant with magnitude:
#
# Power = Fdot * Energy_per_fission * Volume
# = 3.125e18 * 3.2e-11 * Pi*(0.0114818^2 - 0.01^2) * 0.01
# = 100
[GlobalParams]
order = FIRST
family = LAGRANGE
[]
[Mesh]
coord_type = RZ
[layered1D_mesh]
type = Layered1DMeshGenerator
fuel_height = 0.01
include_clad = false
include_plenum = false
slices_per_block = 1
pellet_bottom_coor = 0
pellet_outer_radius = 0.011481768
pellet_inner_radius = 0.01
clad_gap_width = 0
clad_thickness = 0
elem_type = EDGE2
pellet_mesh_density = customize
nx_p = 1
[]
[]
[Functions]
[unity]
type = ParsedFunction
expression = '1.0'
[]
[]
[Variables]
[temp]
initial_condition = 500.0
[]
[]
[AuxVariables]
[fission_rate]
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temp
[]
[ie]
type = HeatConductionTimeDerivative
variable = temp
[]
[heat_source]
type = NeutronHeatSource
variable = temp
energy_per_fission = 3.2e-11
fission_rate = fission_rate
[]
[]
[AuxKernels]
[fission_rate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
value = 3.125e18
fission_rate_function = unity
execute_on = 'initial timestep_begin'
[]
[]
[BCs]
[left_T]
type = DirichletBC
variable = temp
boundary = 13
value = 500.0
[]
[]
[Materials]
[fuel]
type = HeatConductionMaterial
block = fuel
thermal_conductivity = 10
specific_heat = 100
[]
[density]
type = ParsedMaterial
block = fuel
property_name = density
expression = 10000
[]
[fission_gas_release]
type = UO2Sifgrs
temperature = temp
fission_rate = fission_rate
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
start_time = 0.0
num_steps = 2
dt = 1.0e6
nl_abs_tol = 1e-8
[]
[Postprocessors]
[fis_gas_generated]
type = LayeredElementIntegralFisGasGeneratedSifgrsPostprocessor
block = fuel
fuel_pin_geometry = pin_geometry
[]
[fis_gas_released]
type = LayeredElementIntegralFisGasReleasedSifgrsPostprocessor
block = fuel
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
[]
[]
[UserObjects]
[pin_geometry]
type = Layered1DFuelPinGeometry
include_clad = false
mesh_generator = layered1D_mesh
[]
[]
[Outputs]
exodus = true
[]
(test/tests/sifgrs/uo2/chromia_doped.i)
[Mesh]
[mesh]
type = FileMeshGenerator
file = 1hex8_10mm_cube.e
[]
[]
[Functions]
[Temp_func]
type = PiecewiseLinear
x = '0. 2.2e7'
y = '300. 2500.'
scale_factor = 1
[]
[Fiss_func]
type = PiecewiseLinear
x = '0 2.2e7'
y = '1.e19 1.e19'
[]
[]
[Variables]
[T]
initial_condition = 300.
[]
[]
[AuxVariables]
[fission_rate]
initial_condition = 1.e19
[]
[eff_diff_coeff]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = T
diffusion_coefficient = 1
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
value = 1
fission_rate_function = Fiss_func
execute_on = 'initial timestep_end'
[]
[eff_diffusion_coefficient]
type = MaterialRealAux
variable = eff_diff_coeff
property = eff_diff_coeff
execute_on = 'initial timestep_end'
[]
[]
[BCs]
[bottom_T]
type = FunctionDirichletBC
variable = T
function = Temp_func
boundary = 1
[]
[]
[Materials]
[fission_gas_behavior]
type = UO2Sifgrs
temperature = T
fission_rate = fission_rate
skip_bdr_model = true
eff_diff_coeff_option = BULK
diff_coeff_option = TURNBULL_D1_4D2_4D3
doping_type = CR2O3_DOPED
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
start_time = 0.0
num_steps = 22
dt = 1e6
[]
[Postprocessors]
[temperature]
type = FunctionValuePostprocessor
function = Temp_func
execute_on = 'initial timestep_end'
[]
[fission_rate]
type = FunctionValuePostprocessor
function = Fiss_func
execute_on = 'initial timestep_end'
[]
[diffusion_coefficient]
type = ElementalVariableValue
elementid = 0
variable = eff_diff_coeff
execute_on = 'initial timestep_end'
[]
[fis_gas_generated]
type = ElementIntegralFisGasGeneratedSifgrs
execute_on = 'initial timestep_end'
[]
[fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
execute_on = 'initial timestep_end'
[]
[fgr_percent]
type = FGRPercent
fission_gas_released = fis_gas_released
fission_gas_generated = fis_gas_generated
[]
[]
[Outputs]
exodus = true
[console]
type = Console
output_linear = true
max_rows = 23
[]
[]
(test/tests/uo2_thermal/FinkLucuta/ad_test.i)
# This test case is prepared to test the thermal conductivity using the Fink-Lucuta model.
#
# The temperature is ramped on all BCs of the unit line from 500 K to 3000K over 100 Ms.
# The fission rate is 2e19 n/m3/s, so that the burnup goes from 0 to
# ~ 8.6 at.% (82 MWd/kgU) at the end of the simulation.
#
# Thermal conductivity of UO2 fuel at 95%TD is computed using the Fink-Lucuta UO2
# thermal conductivity model.
# The BISON predictions (BISON_k) compared to the expected results (expected_k)
# are summarized (see: post_processing.py --> comparison_results.csv) as:
#
# expected_k BISON_k percent_error
# 4.867402805 4.867402805 7.33E-13
# 4.720864316 4.720864316 3.00E-13
# 4.582724238 4.582724238 2.11E-13
# 4.452567611 4.452567611 7.55E-13
# 4.329714424 4.329714424 -5.33E-13
[GlobalParams]
order = FIRST
family = LAGRANGE
[]
[Mesh]
[geom]
type = GeneratedMeshGenerator
dim = 1
elem_type= EDGE2
[]
[]
[Variables]
[T]
initial_condition = 500
[]
[]
[AuxVariables]
[fission_rate]
[]
[burnup]
[]
[th_cond]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[heat]
type = ADHeatConduction
variable = T
[]
[heat_ie]
type = ADHeatConductionTimeDerivative
variable = T
[]
[heat_source]
type = ADNeutronHeatSource
variable = T
energy_per_fission = 3.2e-11
fission_rate = fission_rate
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable= fission_rate
value = 2e19 # Standard fission_rate fissions/m^3/s
execute_on = 'initial timestep_begin'
[]
[th_cond]
type = ADMaterialRealAux
variable = th_cond
property = thermal_conductivity
execute_on = 'initial linear'
[]
[burnup]
type = ADBurnupAux
variable = burnup
density = 10431.0 # 95% TD
fission_rate = fission_rate
execute_on = timestep_begin
[]
[]
[Functions]
[temp_ramp]
type = PiecewiseLinear
x = '0.0 100.e6'
y = '500 3000'
[]
[]
[BCs]
[VariableT]
type = ADFunctionDirichletBC
boundary = 'left right'
variable = T
function = temp_ramp
[]
[]
[Materials]
[fuel_thermal]
type = ADUO2Thermal
temperature = T
burnup = burnup
thermal_conductivity_model = FINK_LUCUTA
oxy_to_metal_ratio = 2.0
initial_porosity = 0.05
Gd_content = 0.0
[]
[density]
type = ADParsedMaterial
property_name = density
expression = 10431.0
[]
[]
[Executioner]
type = Transient
start_time = 0
num_steps = 100
dt = 1.0e6
[]
[Postprocessors]
[avg_th_cond]
type = ElementAverageValue
variable = th_cond
execute_on = 'initial timestep_end'
[]
[average_rod_burnup]
type = ElementAverageValue
variable = burnup
execute_on = timestep_end
[]
[average_fuel_T]
type = ElementAverageValue
variable = T
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
csv = true
[]
(test/tests/uo2_thermal/HBSporosity/ad_test.i)
# This test case is prepared to test the thermal conductivity using the Halden model.
#
# The temperature is ramped on all BCs of the unit line from 500 K to 3000K over 100 Ms.
# The fission rate is 2e19 n/m3/s, so that the burnup goes from 0 to
# ~ 8.6 at.% (82 MWd/kgU) at the end of the simulation.
#
# We employ an artificial porosity shape that varies from 0.05 (initial_porosity) to around 0.13.
#
# Thermal conductivity of UO2 fuel at 95%TD is computed using the Halden UO2 thermal
# conductivity model. Two different porosity correction methods (the Kampf and Lee models)
# are employed to compute the HBS thermal conductivity.
# The BISON predictions (BISON_k) compared to the expected results (exp_k)
# are summarized (see: post_processing.py --> comparison_results.csv) as:
#
# exp_k_lee BISON_k_lee percent_error_lee exp_k_kampf BISON_k_kampf percent_error_kampf
# 1.923374665 1.923374674 -4.64E-07 1.923070652 1.92307065 8.73E-08
# 1.912817787 1.912817795 -4.58E-07 1.912332564 1.912332562 1.30E-07
# 1.903379731 1.90337974 -4.53E-07 1.902763112 1.902763108 1.61E-07
# 1.895060193 1.895060202 -4.48E-07 1.894338874 1.89433887 1.85E-07
# 1.887861419 1.887861427 -4.44E-07 1.887052808 1.887052804 2.05E-07
[GlobalParams]
order = FIRST
family = LAGRANGE
[]
[Mesh]
[geom]
type = GeneratedMeshGenerator
dim = 1
elem_type= EDGE2
[]
[]
[Variables]
[T]
initial_condition = 500
[]
[]
[AuxVariables]
[fission_rate]
[]
[burnup]
[]
[th_cond]
order = CONSTANT
family = MONOMIAL
[]
[effective_burnup]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[heat]
type = ADHeatConduction
variable = T
[]
[heat_ie]
type = ADHeatConductionTimeDerivative
variable = T
[]
[heat_source]
type = ADNeutronHeatSource
variable = T
energy_per_fission = 3.2e-11
fission_rate = fission_rate
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable= fission_rate
value = 2e19 # Standard fission_rate fissions/m^3/s
execute_on = 'initial timestep_begin'
[]
[th_cond]
type = ADMaterialRealAux
variable = th_cond
property = thermal_conductivity
execute_on = 'initial linear'
[]
[burnup]
type = ADBurnupAux
variable = burnup
density = 10431.0 # 95% TD
fission_rate = fission_rate
execute_on = timestep_begin
[]
[]
[Functions]
[temp_ramp]
type = PiecewiseLinear
x = '0.0 100.e6'
y = '500 3000'
[]
[]
[BCs]
[VariableT]
type = ADFunctionDirichletBC
boundary = 'left right'
variable = T
function = temp_ramp
[]
[]
[Materials]
[fuel_thermalUO2]
type = ADUO2Thermal
temperature = T
burnup = burnup
initial_porosity = 0.05
thermal_conductivity_model = HALDEN
oxy_to_metal_ratio = 2.0
Gd_content = 0.0
[]
[density]
type = ADParsedMaterial
property_name = density
expression = 10431.0
[]
[HBS_volume_fraction]
type = ADHighBurnupStructureFormation
burnup = burnup
temperature = T
[]
[]
[Executioner]
type = Transient
start_time = 0
num_steps = 100
dt = 1.0e6
[]
[Postprocessors]
[avg_th_cond]
type = ElementAverageValue
variable = th_cond
execute_on = 'initial timestep_end'
[]
[average_effective_burnup]
type = ADElementIntegralMaterialProperty
mat_prop = effective_burnup
execute_on = 'initial timestep_end'
[]
[average_rod_burnup]
type = ElementAverageValue
variable = burnup
execute_on = timestep_end
[]
[average_fuel_T]
type = ElementAverageValue
variable = T
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
csv = true
file_base = 'ad_test_default'
[]
(test/tests/sifgrs/uo2/grain_growth.i)
# This test aims at demonstrating the coupling of the Sifgrs fission gas behavior
# model with the grain growth model (GrainRadiusAux). As the grains grow, the
# moving grain boundaries act as filters and contribute to the collection of gas
# at the grain boundaries (grain boundary sweeping). This effect is taken into
# account in the Sifgrs model by adding a supplementary fractional release term
# from within grains to grain boundaries that is equal to the volume fraction of
# the fuel swept by the moving boundaries. For this purpose, Sifgrs is coupled
# with the grain growth model and incorporates a specific grain boundary sweeping
# capability that can be activated by specifying gbs_model = true in the
# fission_gas_release block (see below).
# For the purpose of this test, fission gas swelling is not calculated.
# The gas that reaches the grain boundaries is forced to be instantaneously
# released to the plenum by skipping the grain boundary model
# (skip_bdr_model = true). Starting from an initial value of 5 microns, the grain
# radius increases due to grain growth following the temperature increase.
# At the end of the simulation the grain radius reaches the value of 17.464 microns.
# The results of the test show that gas release due to grain boundary sweeping occurs
# after grain growth commences.
# See also the enclosed file regression_tests_sifgrs.xlsx
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 1
[]
[]
[Functions]
[temperature_function]
type = PiecewiseLinear
x = '0. 1.e+08'
y = '1000. 1700. '
[]
[fission_rate_function]
type = ParsedFunction
expression = '1.e19'
[]
[]
[Variables]
[temperature]
initial_condition = 1000
[]
[]
[AuxVariables]
[fission_rate]
[]
[grain_radius]
initial_condition = 5.e-06
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temperature
diffusion_coefficient = 1
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
value = 1
fission_rate_function = fission_rate_function
execute_on = 'initial timestep_begin'
[]
[grain_radius]
type = GrainRadiusAux
variable = grain_radius
temperature = temperature
execute_on = 'initial linear'
[]
[]
[BCs]
[bottom_T]
type = FunctionDirichletBC
variable = temperature
function = temperature_function
boundary = 1
[]
[]
[Materials]
[fission_gas_behavior]
type = UO2Sifgrs
temperature = temperature
fission_rate = fission_rate
skip_bdr_model = true
grain_radius = grain_radius
gbs_model = true
output_properties = 'gas_concentration_generated_total gas_concentration_intra_total gas_concentration_swept_GB gas_concentration_GB_bubble_volume gas_concentration_release_total'
outputs = 'all'
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
l_tol = 1.e-10
nl_rel_tol = 1.e-14
start_time = 0.
num_steps = 500
dt = 1.e06
end_time = 1e8
[]
[Postprocessors]
[average_grain_radius]
type = ElementAverageValue
variable = grain_radius
execute_on = 'initial timestep_end'
[]
[fis_gas_generated]
type = ElementIntegralFisGasGeneratedSifgrs
[]
[fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
[]
[fgr_percent]
type = FGRPercent
fission_gas_released = fis_gas_released
fission_gas_generated = fis_gas_generated
[]
[intrag_swelling]
type = ElementIntegralMaterialProperty
mat_prop = deltav_v0_intra_total
[]
[gas_amount_bubble_intra]
type = ElementIntegralMaterialProperty
mat_prop = gas_concentration_bubble_intra
[]
[gas_amount_matrix_intra]
type = ElementIntegralMaterialProperty
mat_prop = gas_concentration_matrix_intra
[]
[bubble_amount_intra]
type = ElementIntegralMaterialProperty
mat_prop = bubble_concentration_intra
[]
[bubble_radius_intra_average]
type = ElementAverageMaterialProperty
mat_prop = bubble_radius_intra
[]
[temperature]
type = ElementAverageValue
variable = temperature
[]
[fission_rate]
type = ElementAverageValue
variable = fission_rate
[]
[]
[Outputs]
csv = true
[]
(assessment/verification/thermal/2d_3d_thermal_mesh_study/analysis/linear/test_2d.i)
[GlobalParams]
order = FIRST
family = LAGRANGE
[]
[Mesh]
coord_type = RZ
[mesh]
type = FileMeshGenerator
file = 'coarse_rz.e'
[]
[]
[Problem]
[]
[Variables]
[temp]
[]
[]
[AuxVariables]
[fission_rate]
block = 'pellet_type_1'
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temp
[]
[heat_source]
type = NeutronHeatSource
variable = temp
block = 'pellet_type_1'
fission_rate = fission_rate
energy_per_fission = 3.28451e-11
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
block = 'pellet_type_1'
value = 1.21783766833e19 #fissions/m3s
[]
[]
[BCs]
[side_temp]
type = DirichletBC
variable = temp
boundary = 10
value = 500
[]
[ ]
[Materials]
[fuel_thermal]
type = HeatConductionMaterial
block = 'pellet_type_1'
thermal_conductivity = 5.2
[]
[]
[Executioner]
type = Steady
[]
[Postprocessors]
[center_temp]
type = PointValue
point = '0.0 0.00624 0'
variable = temp
[]
[avg_temp]
type = ElementAverageValue
block = 'pellet_type_1'
variable = temp
[]
[rod_total_power]
type = ElementIntegralPower
variable = temp
block = 'pellet_type_1'
fission_rate = fission_rate
[]
[]
[Outputs]
perf_graph = true
csv = true
[]
(test/tests/mox_pore_velocity/MOXActinide.i)
# This input files uses the actinide redistribution kernels coupled with pore diffusion
[UserObjects]
[pin_geometry]
type = Layered1DFuelPinGeometry
include_clad = false
mesh_generator = layered1D_mesh
[]
[]
[Mesh]
coord_type = RZ
[layered1D_mesh]
type = Layered1DMeshGenerator
fuel_height = 0.1
pellet_outer_radius = 0.0041
include_clad = false
pellet_bottom_coor = 0.0
pellet_mesh_density = customize
nx_p = 200
elem_type = EDGE2
slices_per_block = 1
include_plenum = false
[]
[]
[Variables]
[temperature]
initial_condition = 1400.0
[]
[pore]
initial_condition = 0.12
scaling = 1e14
[]
[actinide]
initial_condition = 20
scaling = 1e8
[]
[]
[AuxVariables]
[pore_speed_aux]
order = constant
family = monomial
[]
[fission_rate_aux_variable_mox]
order = first
family = lagrange
[]
[]
[Functions]
[power_history1]
type = PiecewiseLinear
x = '0 10000'
y = '0 50000'
[]
[]
[Kernels]
[heat] # gradient term in heat conduction equation
type = HeatConduction
variable = temperature
[]
[heat_ie] # time term in heat conduction equation
type = HeatConductionTimeDerivative
variable = temperature
[]
[heat_source] # source term in heat conduction equation
type = NeutronHeatSource
variable = temperature
block = fuel # fission rate applied to the fuel (block 2) only
fission_rate = fission_rate_aux_variable_mox
[]
[pore_diffusion]
type = MOXPoreDiffusion
variable = pore
debug = 0
# nu = 3.25e-8 #seems to be THE value to use... result is super sensitive to this number
# nu = 10e-10
nu = 1e-12
heating_function = power_history1
v_upper = 1e-12
v_lower = 1e-20
# v_upper = 1
# v_lower = 1
[]
[pore_continuity]
type = MOXPoreContinuity
variable = pore
temperature = temperature
debug = 0
alpha = 0.25
beta = 1
heating_function = power_history1
[]
[poretimederivative]
type = CoefTimeDerivative
variable = pore
Coefficient = 1
[]
[actinide_redistribution]
type = MOXActinideRedistribution
variable = actinide
debug = 0
temperature = temperature
scale_factor = 0.5
v_upper = 0
v_lower = 0
heating_function = power_history1
[]
[actinide_redistribution_enhancement]
type = MOXActinideRedistributionEnhancement
variable = actinide
debug = 0
temperature = temperature
pore = pore
pore_diameter = 1e-10
pore_thickness = 1e-11
scaling_parameter_A = 0.35
scale_factor = 0.5
v_upper = 0
v_lower = 0
heating_function = power_history1
[]
[actinide_time_derivative]
type = CoefTimeDerivative
variable = actinide
Coefficient = 1
[]
[]
[AuxKernels]
[pore_speed_aux]
type = MaterialRealAux
variable = pore_speed_aux
property = pore_velocity
block = fuel
execute_on = 'initial timestep_end'
[]
[fission_rate_aux_kernel_mox]
type = FissionRateGeneral
fission_rate_formulation = MOX
variable = fission_rate_aux_variable_mox
block = fuel
porosity = pore
initial_porosity = 0.12
rod_ave_lin_pow = power_history1
pellet_diameter = 0.0082
pellet_inner_diameter = 0
energy_per_fission = 3.2e-11
execute_on = 'initial timestep_end'
[]
[]
[BCs]
[temp_outside] # pin pellets and clad along axis of symmetry (y)
type = DirichletBC
variable = temperature
boundary = 10
value = 1400
[]
[]
[Materials]
[fuel_thermal]
type = MAMOXThermal
block = fuel
temperature = temperature
porosity = pore
[]
[density_block]
type = GenericConstantMaterial
block = fuel
prop_names = density
prop_values = 10431.0
[]
[pore_velocity]
type = MOXPoreVelocity
block = fuel
temperature = temperature
limit = 1e-3
# scale_factor = 0.05 # go back to this if necessary
scale_factor = 0.1
[]
[]
[Dampers]
[limitT]
type = MaxIncrement
max_increment = 100.0
variable = temperature
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package' # -mat_superlu_dist_fact'
petsc_options_value = 'lu superlu_dist' # SamePattern_SameRowPerm'
line_search = 'none'
l_max_its = 50
l_tol = 8e-3
nl_max_its = 25
nl_rel_tol = 1e-5
nl_abs_tol = 1e-8 #1e-10
n_startup_steps = 1
end_time = 8e4
num_steps = 2
dtmax = 1000
dtmin = 1
[TimeStepper]
type = IterationAdaptiveDT
dt = 2e2
optimal_iterations = 8
iteration_window = 2
linear_iteration_ratio = 100
growth_factor = 2
cutback_factor = .5
force_step_every_function_point = true
timestep_limiting_function = power_history1
[]
[]
[Postprocessors]
[_dt] # time step
type = TimestepSize
[]
[z_nonlinear_its] # number of nonlinear iterations at each timestep
type = NumNonlinearIterations
[]
[power_input]
type = FunctionValuePostprocessor
function = power_history1
scale_factor = 0.1 # rod height
[]
[rod_total_power_mox]
type = LayeredElementIntegralPowerPostprocessor
variable = temperature
block = fuel
fission_rate = fission_rate_aux_variable_mox
fuel_pin_geometry = pin_geometry
[]
[ave_fuel_temp]
type = ElementAverageValue
block = fuel
variable = temperature
[]
[max_fuel_temp]
type = NodalExtremeValue
block = fuel
value_type = max
variable = temperature
[]
[ave_pore]
type = ElementAverageValue
block = fuel
variable = pore
[]
[max_pore]
type = NodalExtremeValue
block = fuel
value_type = max
variable = pore
[]
[min_pore]
type = NodalExtremeValue
block = fuel
value_type = min
variable = pore
[]
[max_pore_speed]
type = ElementExtremeValue
block = fuel
value_type = max
variable = pore_speed_aux
[]
[max_actinide]
type = NodalExtremeValue
variable = actinide
block = fuel
execute_on = 'initial timestep_end'
[]
[min_actinide]
type = NodalExtremeValue
variable = actinide
block = fuel
value_type = min
execute_on = 'initial timestep_end'
[]
[average_actinide]
type = AverageNodalVariableValue
variable = actinide
block = fuel
execute_on = 'initial timestep_end'
[]
[]
# The MOX capabilities are under active development and the blocks below are useful for
# development and debugging by providing the profiles of the desired quantities.
# They are commented out for the tests, as it would unnecessarily increase computational costs
# and memory requirements.
# [VectorPostprocessors]
# [line_value_vector_postprocessor_pore]
# type = LineValueSampler
# variable = pore
# start_point = '0.0 0.05 0'
# end_point = '0.0041 0.05 0'
# num_points = 100
# sort_by = x
# execute_on = linear
# outputs = stuff_v_rad
# control_tags = a
# []
# [line_value_vector_postprocessor_pore_speed]
# type = LineValueSampler
# variable = pore_speed_aux
# start_point = '0.0 0.05 0'
# end_point = '0.0041 0.05 0'
# num_points = 100
# sort_by = x
# execute_on = linear
# outputs = stuff_v_rad
# []
# [line_value_vector_postprocessor_temperature]
# type = LineValueSampler
# variable = temperature
# start_point = '0.0 0.05 0'
# end_point = '0.0041 0.05 0'
# num_points = 100
# sort_by = x
# execute_on = linear
# outputs = stuff_v_rad
# []
# [line_value_vector_postprocessor_actinide]
# type = LineValueSampler
# variable = actinide
# start_point = '0.0 0.05 0'
# end_point = '0.0041 0.05 0'
# num_points = 100
# sort_by = x
# execute_on = linear
# outputs = stuff_v_rad
# []
# []
[Outputs]
exodus = true
csv = false
color = false
[console]
type = Console
max_rows = 25
all_variable_norms = true
[]
# [stuff_v_rad]
# type = CSV
# execute_on = 'FINAL'
# []
[]
[Debug]
show_var_residual_norms = true
[]
(test/tests/uo2_thermal/NFImod/test.i)
# This test case is prepared to test the thermal conductivity using the Modified NFI model.
#
# The temperature is ramped on all BCs of the unit line from 500 K to 3000K over 100 Ms.
# The fission rate is 2e19 n/m3/s, so that the burnup goes from 0 to
# ~ 8.6 at.% (82 MWd/kgU) at the end of the simulation.
#
# Thermal conductivity of UO2 fuel at 95%TD is computed using the NFI modified thermal conductivity model.
# The BISON predictions (BISON_k) compared to the expected results (expected_k)
# are summarized (see: post_processing.py --> comparison_results.csv) as:
#
# expected_k BISON_k percent_error
# 5.945042197 5.945042197 -8.22E-13
# 5.540026353 5.540026353 1.11E-13
# 5.252676996 5.252676996 -9.33E-13
# 4.995664905 4.995664905 8.66E-13
# 4.7632267 4.7632267 -1.33E-13
initial_fuel_density = 10431.0
[GlobalParams]
order = FIRST
family = LAGRANGE
[]
[Mesh]
[geom]
type = GeneratedMeshGenerator
dim = 1
elem_type= EDGE2
[]
[]
[Variables]
[T]
initial_condition = 500
[]
[]
[AuxVariables]
[fission_rate]
[]
[burnup]
[]
[th_cond]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = T
[]
[heat_ie]
type = HeatConductionTimeDerivative
variable = T
[]
[heat_source]
type = NeutronHeatSource
variable = T
energy_per_fission = 3.2e-11
fission_rate = fission_rate
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable= fission_rate
value = 2e19 # Standard fission_rate n/m^3/s
execute_on = 'initial timestep_begin'
[]
[th_cond]
type = MaterialRealAux
variable = th_cond
property = thermal_conductivity
execute_on = 'initial linear'
[]
[burnup]
type = BurnupAux
variable = burnup
density = ${initial_fuel_density} # 95% TD
fission_rate = fission_rate
execute_on = timestep_begin
[]
[]
[Functions]
[temp_ramp]
type = PiecewiseLinear
x = '0.0 100.e6'
y = '500 3000'
[]
[]
[BCs]
[VariableT]
type = FunctionDirichletBC
boundary = 'left right'
variable = T
function = temp_ramp
[]
[]
[Materials]
[fuel_thermalUO2]
type = UO2Thermal
temperature = T
burnup = burnup
thermal_conductivity_model = MODIFIED_NFI
Gd_content = 0.00
initial_porosity = 0.05
oxy_to_metal_ratio = 2.0
[]
[density]
type = ParsedMaterial
property_name = density
expression = ${initial_fuel_density}
[]
[]
[Executioner]
type = Transient
start_time = 0
num_steps = 100
dt = 1.0e6
[]
[Postprocessors]
[avg_th_cond]
type = ElementAverageValue
variable = th_cond
execute_on = 'initial timestep_end'
[]
[average_rod_burnup]
type = ElementAverageValue
variable = burnup
execute_on = timestep_end
[]
[average_fuel_T]
type = ElementAverageValue
variable = T
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
csv = true
[]
(assessment/MOX/JOYO/B14/PTM001/analysis/b14_ptm001_2DRZ_t.i)
initial_fuel_density = 11057.75
[GlobalParams]
density = ${initial_fuel_density}
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
volumetric_locking_correction = false
displacements = 'disp_x disp_y'
[]
[Problem]
type = ReferenceResidualProblem
extra_tag_vectors = 'ref'
reference_vector = 'ref'
[]
[Mesh]
coord_type = RZ
[smeared_pellet_mesh]
type = FuelPinMeshGenerator
pellet_quantity = 1
pellet_height = 0.4
pellet_outer_radius = 0.0027
pellet_mesh_density = customize
clad_mesh_density = customize
clad_gap_width = 0.00008
clad_thickness = 0.00047
clad_bot_gap_height = 1.0e-3
bottom_clad_height = 2.24e-3
top_clad_height = 2.24e-3
clad_top_gap_height = 0.685
elem_type = QUAD8
nx_c = 4
ny_c = 100
nx_p = 20
ny_p = 100
ny_cu = 3
ny_cl = 3
[]
patch_size = 50
patch_update_strategy = iteration
partitioner = centroid
centroid_partitioner_direction = y
[]
[UserObjects]
[pin_geometry]
type = FuelPinGeometry
[]
[]
[Variables]
[temp]
initial_condition = 295.0
[]
[]
[AuxVariables]
[pore]
[]
[fission_rate]
[]
[burnup]
[]
[radial_strain]
order = CONSTANT
family = MONOMIAL
[]
[effective_creep_strain]
block = clad
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[power_history] #related to the LHGR at the midplane
type = PiecewiseLinear
x = ' 0 72000 158040 160200 246600 248400 249000.012 251280'
y = ' 0 39814.5 39814.5 44289.3 44289.3 53927.4 53927.4 0'
[]
[fast_neutron_flux_function]
type = PiecewiseLinear
x = '0 251280'
y = '3.3e+15 3.3e+15'
[]
[f_temp_out_clad]
type = PiecewiseBilinear
x = '0.000175 0.0464075 0.0843675 0.1075625 0.152025 0.1994625 0.2464725 0.2947475 0.356915 0.43356 0.49848 0.625 0.700475 0.797485 0.8723425 0.96'
y = '0 251280'
z = '295 295 295 295 295 295 295 295 295 295 295 295 295 295 295 295 634.94 662.273 676.998 686.217 706.339 727 743.358 758.311 780.069 799.077 815.576 846.374 860.233 875.494 882.809 889.8'
scale_factor = 1
axis = 1
[]
[axial_peaking_factors]
type = PiecewiseBilinear
x = '0.000175 0.0464075 0.0843675 0.1075625 0.152025 0.1994625 0.2464725 0.2947475 0.356915 0.43356 0.49848 0.625 0.700475 0.797485 0.8723425 0.96'
y = '0 251280'
z = '0.751 0.752 0.767 0.796 0.82 0.852 0.875 0.915 0.944 0.963 0.988 1 0.985 0.955 0.913 0.846 0.751 0.752 0.767 0.796 0.82 0.852 0.875 0.915 0.944 0.963 0.988 1 0.985 0.955 0.913 0.846'
scale_factor = 1
axis = 1
[]
[q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[]
[average_power_history]
type = PiecewiseLinear
x = ' 0 72000 158040 160200 246600 248400 249000.012 251280'
y = ' 0 34700 34700 38600 38600 47000 47000 0'
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[pellets]
block = pellet
add_variables = true
strain = FINITE
eigenstrain_names = 'fuel_thermal_strain fuel_volumetric_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
use_finite_deform_jacobian = true
extra_vector_tags = 'ref'
[]
[clad]
block = clad
add_variables = true
strain = FINITE
eigenstrain_names = 'clad_thermal_eigenstrain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
use_finite_deform_jacobian = true
extra_vector_tags = 'ref'
[]
[]
[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
variable = temp
fission_rate = fission_rate
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[fission_rate]
type = FissionRateGeneral
fission_rate_formulation = MOX
variable = fission_rate
block = pellet
initial_porosity = 0.1372
axial_power_profile = axial_peaking_factors
rod_ave_lin_pow = power_history
pellet_diameter = 0.0054
execute_on = timestep_begin
porosity = pore
energy_per_fission = 3.2e-11
[]
[burnup]
type = BurnupAux
block = pellet
fission_rate = fission_rate
variable = burnup
execute_on = timestep_begin
[]
[radial_strain]
type = RankTwoAux
rank_two_tensor = total_strain
variable = radial_strain
index_i = 0
index_j = 0
execute_on = timestep_end
[]
[effective_creep_strain]
type = MaterialRealAux
property = effective_creep_strain
variable = effective_creep_strain
block = clad
execute_on = timestep_end
[]
[]
[Contact]
[pellet_clad_mechanical]
primary = 5
secondary = 10
formulation = kinematic
model = frictionless
penalty = 1e7
[]
[]
[ThermalContact]
[thermal_contact]
type = GasGapHeatTransfer
variable = temp
primary = 5
secondary = 10
initial_moles = initial_moles
gas_released = fis_gas_released
contact_pressure = contact_pressure
quadrature = true
[]
[]
[BCs]
[temp_clad_outside]
type = FunctionDirichletBC
variable = temp
function = f_temp_out_clad
boundary = 2
[]
[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 = 20
value = 0.0
[]
[PlenumPressure]
[plenumPressure]
boundary = 9
initial_pressure = 101325
startup_time = 0
R = 8.3145
output_initial_moles = initial_moles
temperature = ave_temp_interior
volume = gas_volume
material_input = fis_gas_released
output = plenum_pressure
[]
[]
[]
[Materials]
[fast_neutron_flux]
type = FastNeutronFlux
calculate_fluence = true
block = clad
flux_function = fast_neutron_flux_function
[]
[fuel_thermal]
type = MAMOXThermal
temperature = temp
porosity = pore
block = pellet
Am_content = 0.0237
oxy_to_metal_ratio = 1.982
output_properties = 'thermal_conductivity'
[]
[fuel_density]
type = StrainAdjustedDensity
block = pellet
strain_free_density = ${initial_fuel_density}
[]
[fuel_elasticity_tensor]
type = MAMOXElasticityTensor
block = pellet
[]
[elastic_stress]
type = ComputeFiniteStrainElasticStress
block = pellet
[]
[fuel_thermal_expansion]
type = MAMOXThermalExpansionEigenstrain
block = pellet
temperature = temp
stress_free_temperature = 295.0
oxygen_to_metal_ratio = 1.98
eigenstrain_name = fuel_thermal_strain
[]
[fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
block = pellet
temperature = temp
burnup = burnup
initial_fuel_density = ${initial_fuel_density}
eigenstrain_name = fuel_volumetric_strain
[]
[clad_thermal]
type = SS316Thermal
block = clad
temperature = temp
[]
[clad_density]
type = StrainAdjustedDensity
block = clad
strain_free_density = 8000
[]
[clad_elasticity_tensor]
type = SS316ElasticityTensor
block = clad
temperature = temp
elastic_constants_model = legacy_ifr
[]
[thermal_expansion]
type = SS316ThermalExpansionEigenstrain
block = clad
temperature = temp
stress_free_temperature = 295.0
eigenstrain_name = clad_thermal_eigenstrain
[]
[clad_ss316creep]
type = SS316CreepUpdate
block = clad
temperature = temp
fast_neutron_flux = fast_neutron_flux
[]
[clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'clad_ss316creep'
block = clad
[]
[fission_gas_release]
type = UO2Sifgrs
block = pellet
temperature = temp
burnup = burnup
fission_rate = fission_rate
grain_radius_const = 14e-06 #I'm keeping the grain radius const because the grain growth in MOX is probably different due to high Temp
bubble_gb_limit = 1.0e+11
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -sub_pc_type'
petsc_options_value = 'asm lu'
line_search = 'none'
fixed_point_max_its = 1
fixed_point_abs_tol = 1e-3
fixed_point_rel_tol = 1e-3
l_max_its = 50
l_tol = 8e-3
nl_max_its = 50
nl_rel_tol = 1e-3
nl_abs_tol = 1e-3
start_time = 0
n_startup_steps = 1
end_time = 251280
dtmax = 10000
dtmin = 0.25
[TimeStepper]
type = IterationAdaptiveDT
dt = 1e1
optimal_iterations = 15
iteration_window = 2
linear_iteration_ratio = 100
growth_factor = 2
cutback_factor = .5
force_step_every_function_point = true
timestep_limiting_function = power_history
[]
[]
[Postprocessors]
[ave_temp_interior]
type = ElementAverageValue
variable = temp
execute_on = 'initial linear'
[]
[average_burnup]
type = ElementAverageValue
variable = burnup
[]
[ave_pore]
type = ElementAverageValue
block = pellet
variable = pore
[]
[max_pore]
type = NodalExtremeValue
block = pellet
value_type = max
variable = pore
[]
[min_pore]
type = NodalExtremeValue
block = pellet
value_type = min
variable = pore
[]
[fis_gas_produced]
type = ElementIntegralFisGasGeneratedSifgrs
# variable = temp
block = pellet
execute_on = 'linear'
[]
[fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
# variable = temp
block = pellet
execute_on = 'linear'
[]
[fis_gas_released_percentage]
type = FGRPercent
fission_gas_generated = fis_gas_produced
fission_gas_released = fis_gas_released
# variable = temp
execute_on = 'linear'
[]
[gas_volume]
type = InternalVolume
boundary = 9
execute_on = 'initial linear'
[]
[rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = pellet
[]
[rod_input_power]
type = FunctionValuePostprocessor
function = average_power_history
scale_factor = 0.4 # rod height
[]
[]
[VectorPostprocessors]
[fuel_radial_temperature_Sample1]
type = LineValueSampler
variable = temp
start_point = '0.0 0.283 0.0'
end_point = '0.0027 0.283 0.0'
num_points = 200
execute_on = final
sort_by = x
outputs = line_plot
[]
[radial_porosity_Sample1]
type = LineValueSampler
variable = pore
start_point = '0.0 0.283 0.0'
end_point = '0.0027 0.283 0.0'
num_points = 200
execute_on = final
sort_by = x
outputs = line_plot
[]
[fuel_radial_temperature_Sample2]
type = LineValueSampler
variable = temp
start_point = '0.0 0.347 0.0'
end_point = '0.0027 0.347 0.0'
num_points = 200
execute_on = final
sort_by = x
outputs = line_plot
[]
[radial_porosity_Sample2]
type = LineValueSampler
variable = pore
start_point = '0.0 0.347 0.0'
end_point = '0.0027 0.347 0.0'
num_points = 200
execute_on = final
sort_by = x
outputs = line_plot
[]
[fuel_radial_temperature_Sample3]
type = LineValueSampler
variable = temp
start_point = '0.0 0.2 0.0'
end_point = '0.0027 0.2 0.0'
num_points = 200
execute_on = final
sort_by = x
outputs = line_plot
[]
[radial_porosity_Sample3]
type = LineValueSampler
variable = pore
start_point = '0.0 0.2 0.0'
end_point = '0.0027 0.2 0.0'
num_points = 200
execute_on = final
sort_by = x
outputs = line_plot
[]
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = true
color = true
csv = true
[console]
type = Console
max_rows = 25
[]
[line_plot]
type = CSV
execute_on = 'FINAL'
time_step_interval = 1
file_base = 1d
create_final_symlink = true
[]
[chkfile]
type = CSV
execute_on = FINAL
show = 'ave_temp_interior fis_gas_released_percentage max_pore'
[]
[]
[MultiApps]
[sub]
type = TransientMultiApp
app_type = BisonApp
execute_on = timestep_end
catch_up = true
max_catch_up_steps = 10
positions_file = positions.txt
input_files = b14_ptm001_pore.i
[]
[]
[Transfers]
[temp_to_sub]
type = MultiAppProjectionTransfer
to_multi_app = sub
source_variable = temp
variable = temp
[]
[pore_from_sub]
type = MultiAppGeometricInterpolationTransfer
from_multi_app = sub
source_variable = pore
variable = pore
[]
[]
[Debug]
show_var_residual_norms = true
[]
(test/tests/sifgrs/uo2/ad_percolation_xfem.i)
# This is to test gas release through elements that are cut by XFEM. A 2D domain is
# used and the LineSegmentCutUserObject is used to insert a crack from the right edge
# of the domain inward toward the left edge. Because of the boundary conditions on temperature,
# gas would not normally be released to the free surface on the left side, but
# with the crack present gas release occurs.
[GlobalParams]
density = 10970.
order = FIRST
family = LAGRANGE
energy_per_fission = 3.2e-11
[]
[Mesh]
[mesh]
type = GeneratedMeshGenerator
dim = 2
xmin = 0
xmax = 0.005
ymin = 0
ymax = 0.005
nx = 5
ny = 5
[]
[create_block2]
type = RenameBlockGenerator
input = mesh
old_block = 0
new_block = 2
[]
[free1]
type = SideSetsAroundSubdomainGenerator
new_boundary = free1
normal = '1 0 0'
block = 2
input = create_block2
[]
[subdomain1]
type = SubdomainBoundingBoxGenerator
bottom_left = '0 0 0'
top_right = '0.005 0.005 0'
block_id = 2
input = free1
[]
[]
#Create a notch in the mesh using XFEM
[XFEM]
qrule = volfrac
output_cut_plane = true
[]
[UserObjects]
[line_seg_cut_uo]
type = LineSegmentCutUserObject
cut_data = '0.005 0.0025 0.001 0.0025'
time_start_cut = 0.0
time_end_cut = 0.0
[]
[]
[Variables]
[temp]
initial_condition = 673.
[]
[]
[AuxVariables]
[grain_radius]
block = 2
initial_condition = 5.e-06
[]
[gas_gen_3]
order = CONSTANT
family = MONOMIAL
block = 2
[]
[GBCoverage]
order = CONSTANT
family = MONOMIAL
[]
[thermal_conductivity]
order = CONSTANT
family = MONOMIAL
block = 2
[]
[burnup]
block = 2
[]
[fission_rate]
block = 2
[]
# percolation variables
[open_coverage]
order = CONSTANT
family = MONOMIAL
[]
[open_threshold]
order = CONSTANT
family = MONOMIAL
[]
[open]
order = CONSTANT
family = MONOMIAL
[]
[cluster]
order = CONSTANT
family = MONOMIAL
[]
[percolated]
order = CONSTANT
family = MONOMIAL
[]
[]
# Define functions to control power and boundary conditions
[Functions]
[power_history]
type = PiecewiseLinear
x = '0. 10800. 1.0e+8'
y = '0. 25. 25. '
scale_factor = 1000.
[]
[pressure_ramp]
type = PiecewiseLinear
x = '0. 1.0e+8'
y = '25. 25.'
scale_factor = 1.0e+6
[]
[]
[Kernels]
[heat] # gradient term in heat conduction equation
type = ADHeatConduction
variable = temp
[]
[heat_ie] # time term in heat conduction equation
type = ADHeatConductionTimeDerivative
variable = temp
[]
[heat_source] # source term in heat conduction equation
type = ADNeutronHeatSource
variable = temp
block = 2
fission_rate = fission_rate # coupling to the fission_rate aux variable
[]
[]
# Define auxilliary kernels for each of the aux variables
[AuxKernels]
[fggen]
type = ADMaterialRealAux
variable = gas_gen_3
property = gas_concentration_generated_total
[]
[fractcov]
type = ADMaterialRealAux
variable = GBCoverage
property = GBCoverage
block = 2
[]
[fuel_conductivity]
type = ADMaterialRealAux
variable = thermal_conductivity
property = thermal_conductivity
[]
[brnp]
type = BurnupAux
variable = burnup
block = 2
fission_rate = fission_rate
molecular_weight = 0.270
[]
[frate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
block = 2
value = 5.e+14
fission_rate_function = power_history
[]
# percolation auxkernels
[open_coverage]
type = ADMaterialRealAux
variable = open_coverage
property = GBCoverage
[]
[open_threshold]
type = ADMaterialRealAux
variable = open_threshold
property = 0.3 #GB coverage at which trijunction network is percolated
[]
[open]
type = ParsedAux
variable = open
coupled_variables = 'open_coverage open_threshold'
expression = 'open_coverage-open_threshold'
[]
[cluster]
type = FeatureFloodCountAux
variable = cluster
execute_on = 'timestep_begin'
field_display = UNIQUE_REGION
flood_counter = percolate
[]
[percolated]
type = PercolationAux
variable = percolated
execute_on = 'timestep_begin'
percolation = percolate
[]
[]
# Define boundary conditions
[BCs]
[imposed_ext_temp]
type = DirichletBC
boundary = right
variable = temp
value = 673.
[]
# insulate the top and bottom of this pellet
[top_pellet]
variable = temp
value = 0.
type = NeumannBC
boundary = top
[]
[bottom_pellet]
variable = temp
value = 0.
type = NeumannBC
boundary = bottom
[]
[left_pellet]
variable = temp
value = 0.
type = NeumannBC
boundary = left
[]
[]
# Define material behavior models and input material property data
[Materials]
[fuel_thermal]
type = ADHeatConductionMaterial
block = 2
thermal_conductivity = 3.
specific_heat = 400.
[]
[fuel_density]
type = ADParsedMaterial
block = 2
property_name = density
expression = 10970
[]
[fission_gas_release_and_swelling]
type = ADUO2Sifgrs
block = 2
diff_coeff_option = TURNBULL_D1_D2
transient_option = MICROCRACKING
res_param_option = HETEROGENEOUS_WHITE
temperature = temp
fission_rate = fission_rate
burnup = burnup
initial_porosity = 0.
percolation_to_surface = percolated
[]
[]
[Dampers]
[limitT]
type = MaxIncrement
max_increment = 50.
variable = temp
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
petsc_options = '-ksp_gmres_modifiedgramschmidt'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_composite_pcs -sub_0_pc_hypre_type -sub_0_pc_hypre_boomeramg_max_iter -sub_0_pc_hypre_boomeramg_grid_sweeps_all -sub_1_sub_pc_type -pc_composite_type -ksp_type -mat_mffd_type'
petsc_options_value = '201 composite hypre,asm boomeramg 2 2 lu multiplicative fgmres ds'
line_search = 'none'
# controls for linear iterations
l_max_its = 100
l_tol = 1.0e-06
# controls for nonlinear iterations
nl_max_its = 10
nl_rel_tol = 1.0e-4
nl_abs_tol = 1.0e-8
# time control
start_time = 0.
end_time = 1.0e+8
num_steps = 5000
dtmax = 1.0e+06
dtmin = 1.0
[TimeStepper]
type = IterationAdaptiveDT
dt = 1.0
timestep_limiting_function = power_history
max_function_change = 3000.
force_step_every_function_point = true
[]
[Quadrature]
order = THIRD
[]
[]
[UserObjects]
[percolate]
type = PercolationUserObject
execute_on = 'timestep_begin'
boundaries = 'free1'
variable = open
threshold = 0.0
use_xfem = true
[]
[]
# Define postprocessors (some are required as specified above; others are optional; many others are available)
[Postprocessors]
[ave_burnup_EAV]
type = ElementAverageValue
block = 2
variable = burnup
[]
[fis_gas_released]
type = ADElementIntegralFisGasReleasedSifgrs
block = 2
[]
[]
# Define output file(s)
[Outputs]
time_step_interval = 1
csv = true
exodus = true
color = true
print_linear_residuals = true
[console]
type = Console
max_rows = 25
output_linear = true
[]
[]
(test/tests/solid_mechanics/u3si2_eigenstrains/u3si2_vswelling/swelling_mechanistic.i)
# This test verifies the overall U3Si2 fgb model through a single element calculation.
# The outcome has been benchmarked against the result of a stand-alone, independent software.
# In this input file, the coupled fgr and gaseous swelling calculation is performed.
initial_fuel_density = 11590.0
[GlobalParams]
density = ${initial_fuel_density}
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
[mesh]
type = GeneratedMeshGenerator
dim = 3
xmin = 0
xmax = 0.01
ymin = 0
ymax = 0.01
zmin = 0
zmax = 0.01
nx = 1
ny = 1
nz = 1
[]
[]
[Variables]
[T]
order = FIRST
family = LAGRANGE
initial_condition = 1250.0
[]
[]
[AuxVariables]
[fission_rate]
order = FIRST
family = LAGRANGE
[]
[burnup]
order = CONSTANT
family = MONOMIAL
[]
[rad_bbl_grn]
order = CONSTANT
family = MONOMIAL
[]
[bbl_grn_3]
order = CONSTANT
family = MONOMIAL
[]
[gas_bbl_grn]
order = CONSTANT
family = MONOMIAL
[]
[gas_bdr_3]
order = CONSTANT
family = MONOMIAL
[]
[deltav_v0_intra_total]
order = CONSTANT
family = MONOMIAL
[]
[deltav_v0_bubble_GB]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = T
[]
[heat_ie]
type = HeatConductionTimeDerivative
variable = T
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
strain = FINITE
add_variables = true
eigenstrain_names = 'fuelthermal_strain volumetric_swelling'
temperature = T
[]
[]
[Functions]
[Temp_func]
type = ParsedFunction
expression = '1250'
[]
[Fiss_func]
type = ParsedFunction
expression = '2.e19'
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
value = 1
fission_rate_function = Fiss_func
execute_on = 'initial timestep_begin'
[]
[burnup]
type = BurnupAux
variable = burnup
fission_rate = fission_rate
[]
[bbl_cnc]
type = MaterialRealAux
variable = bbl_grn_3
property = bubble_concentration_intra
[]
[rad_bbl]
type = MaterialRealAux
variable = rad_bbl_grn
property = bubble_radius_intra
[]
[gascnc_bbl]
type = MaterialRealAux
variable = gas_bbl_grn
property = gas_concentration_bubble_intra
[]
[dvv0gr]
type = MaterialRealAux
variable = deltav_v0_intra_total
property = deltav_v0_intra_total
[]
[dvv0bd]
type = MaterialRealAux
variable = deltav_v0_bubble_GB
property = deltav_v0_bubble_GB
[]
[]
[BCs]
[bottom_y]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[]
[left_x]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[]
[back_z]
type = DirichletBC
variable = disp_z
boundary = back
value = 0.0
[]
[bottom_T]
type = FunctionDirichletBC
variable = T
function = Temp_func
boundary = bottom
[]
[]
[Materials]
[fuel_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = 0
youngs_modulus = 1e11
poissons_ratio = 0.17
[]
[fission_gas_behavior]
type = U3Si2Sifgrs
block = 0
temperature = T
fission_rate = fission_rate
grain_radius_const = 28.e-06
[]
[fuel_swelling]
type = U3Si2VolumetricSwellingEigenstrain
temperature = T
burnup = burnup
complete_burnup = 10
eigenstrain_name = volumetric_swelling
gaseous_swelling_type = U3SI2FG
[]
[fuel_thermal_strain]
type = ComputeThermalExpansionEigenstrain
block = 0
thermal_expansion_coeff = 1.5e-5
temperature = T
stress_free_temperature = 1250.0
eigenstrain_name = fuelthermal_strain
[]
[fuel_stress]
type = ComputeFiniteStrainElasticStress
block = 0
[]
[U3Si2_thermal]
type = HeatConductionMaterial
block = 0
thermal_conductivity = 1.0
specific_heat = 1.0
[]
[density]
type = StrainAdjustedDensity
block = 0
strain_free_density = ${initial_fuel_density}
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew '
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type'
petsc_options_value = '70 hypre boomeramg'
l_max_its = 60
nl_rel_tol = 1e-8
nl_abs_tol = 1e-15
l_tol = 1e-5
start_time = 0.0
dt = 100.
num_steps = 10
[]
[Postprocessors]
[fis_gas_generated]
type = ElementIntegralFisGasGeneratedSifgrs
block = 0
[]
[fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = 0
[]
[gbswelling]
type = ElementAverageValue
variable = deltav_v0_bubble_GB
block = 0
[]
[igswelling]
type = ElementAverageValue
variable = deltav_v0_intra_total
block = 0
[]
[]
[Outputs]
exodus = true
[]
(test/tests/fission_rate_MOX/general_form.i)
#The reason for this test is to determine if the fission rate is calculated correctly. The fission rate is a function of
#rod average linear power (function named power here) in W/m - calculated via function PiecewiseLinear and LinearInerpolation,
#the 2D axial power profile function (power factors as a function of axial position and time - calculated using the auxkernel FissionRateGeneral (MOX formulation) via the
#function PiecewiseBilinear and BilinearInterpolation, function named axial_power_factors here), pellet diameter (m), inner pellet diameter (m) if fuel is annular, f_fuel (fraction of total power),
#and fuel_volume_ratio (volume reduction factor due to pellet dishing i.e. if the pellet is not a right circular cylinder), and energy per fission.
#
#The mesh consists of 5 1x1x1 brick elements "stacked" in the y-direction. The y-coordinate of nodes is 0, 1, 2, 3, 4, or 5.
#The power is 1 for the duration...after a ramp from 0 to 1 during the first time step.
#The power factors for this test are in the file powerfactors.csv, which as the following format
#
#0.25,1.25,2.25,3.5,4.25,4.75
#0,0,0,0,0,0,0
#1,1,1,1,1,1,1
#2,.5,.75,2.5,2.5,.75,.5
#3,.5,.7,.3,.1,1,.1
#4,.2,.9,.8,.7,1,.9
#5,.2,.9,.8,.7,1,.25
#
#Where the first row is a list of the axial positions where the power factors are defined.
#After the first row, the first column is a list of the times where the power factors are defined.
#All the other numbers are the power factors defined at the given axial position and time.
#For a given power, pellet diameter, and reduction factors (all described previously) the fission rate is calculated for every node at every time.
#The file powerfactors.csv is used/read by PiecewiseBilinear, which sends a vector (x) of the axial position values,
#a vector (y) of the times, a ColumnMajorMatrix (z) of the powerfactors to BilinearInterpolation, and a sample point (position,time). The value returned
#is used in the fission rate calculation.
#
#An example:
#
#At time 2.25 and axial position z = 1 (node 20)...sample point = (1, 2.25), the value returned is 0.847656. You can check this value by hand using the data provided.
#
#For this test, the fission rate has the same value as the power factor divided by 1-initial_porosity (for this example 0.678125/(1-0.2)).
#This is by design to make it easy to determine if the fission rate is being calculated correctly.
#Look at the output file for this test and plot the fission rate at node 20 (z-coordinate = 1). At time = 2.25, the value should be 0.847656.
#
[Mesh]
[mesh]
type = FileMeshGenerator
file = 1x5x1.e
[]
[]
[Variables]
[temp]
order = FIRST
family = LAGRANGE
initial_condition = 1373.15
[]
[]
[AuxVariables]
[fission_rate]
order = FIRST
family = LAGRANGE
[]
[]
[Functions]
[power]
type = PiecewiseLinear
x = '0 1'
y = '1 1'
[]
[axial_power_factor]
type = PiecewiseBilinear
data_file = powerfactors.csv
axis = 1
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temp
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = 'MOX'
variable = fission_rate
rod_ave_lin_pow = power
axial_power_profile = axial_power_factor
initial_porosity = 0.2
pellet_diameter = 1.1283791671 #fake pellet diameter to give a value of 1 for Power/area
pellet_inner_diameter = 0
energy_per_fission = 1 #J/fission
[]
[]
[BCs]
[bottom_temp]
type = DirichletBC
variable = temp
boundary = 3
value = 1373.15
[]
[top_temp]
type = DirichletBC
variable = temp
boundary = 5
value = 1373.15
[]
[]
[Materials]
[thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 1.e4
specific_heat = 1.
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew '
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type'
petsc_options_value = '70 hypre boomeramg'
l_max_its = 60
nl_rel_tol = 1e-8
nl_abs_tol = 1e-10
l_tol = 1e-5
start_time = 0.0
dt = 0.25
num_steps = 21
[]
[Outputs]
exodus = true
[]
(assessment/LWR/validation/Separate_effects_FGB/analysis/Baker_TEM/Baker_TEM_Base.i)
# This input file is a partial input file that needs to be included in complementary input files.
# It contains base information/features that are shared between several assessment cases.
# This input file is therefore not designed to run on its own.
fission_rate = 1.e19 # fission/m^3/s
grain_radius_constant = 5.e-6 # m
[Mesh]
[mesh]
type = GeneratedMeshGenerator
dim = 3
xmin = 0
xmax = 0.01
ymin = 0
ymax = 0.01
zmin = 0
zmax = 0.01
nx = 1
ny = 1
nz = 1
[]
[]
[Functions]
[Temp_func]
type = ParsedFunction
expression = ${initial_temperature}
[]
[Fiss_func]
type = ParsedFunction
expression = ${fission_rate}
[]
[]
[Variables]
[temperature]
order = FIRST
family = LAGRANGE
initial_condition = ${initial_temperature}
[]
[]
[AuxVariables]
[fission_rate]
order = FIRST
family = LAGRANGE
[]
[fract_FGR_analytical]
order = CONSTANT
family = MONOMIAL
[]
[rad_bbl_grn]
order = CONSTANT
family = MONOMIAL
[]
[bbl_grn_3]
order = CONSTANT
family = MONOMIAL
[]
[gas_bbl_grn]
order = CONSTANT
family = MONOMIAL
[]
[pellet_id]
order = CONSTANT
family = MONOMIAL
[]
[grain_radius]
initial_condition = ${grain_radius_constant}
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temperature
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
value = 1
fission_rate_function = Fiss_func
execute_on = 'initial timestep_begin'
[]
[pelletid]
type = PelletIdAux
variable = pellet_id
a_lower = 0
a_upper = 0.01
number_pellets = 1
execute_on = initial
[]
[grain_radius]
type = GrainRadiusAux
variable = grain_radius
temperature = temperature
execute_on = linear
[]
[]
[BCs]
[bottom_T]
type = FunctionDirichletBC
variable = temperature
function = Temp_func
boundary = bottom
[]
[]
[Materials]
[UO2]
type = HeatConductionMaterial
block = 0
thermal_conductivity = 1.0
specific_heat = 1.0
[]
[fission_gas_behavior]
type = UO2Sifgrs
block = 0
temperature = temperature
fission_rate = fission_rate
gbs_model = true
grain_radius = grain_radius
ig_bubble_model = NUCLEATION_RESOLUTION
res_param_option = HETEROGENEOUS_WHITE
diff_coeff_option = TURNBULL_D1_4D2_D3
initial_porosity = 0.0
output_properties = 'bubble_concentration_intra bubble_radius_intra gas_concentration_bubble_intra'
outputs = all
[]
[]
[UserObjects]
[pbz]
type = PelletBrittleZone
pellet_id = pellet_id
temperature = temperature
a_lower = 0
a_upper = 0.01
pellet_radius = 0.01
number_pellets = 1
execute_on = 'initial linear'
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
l_tol = 1e-4
nl_abs_tol = 1e-8
nl_rel_tol = 1e-5
start_time = 0.0
num_steps = 1000
dt = 19800.
[]
[Postprocessors]
[fis_gas_generated]
type = ElementIntegralFisGasGeneratedSifgrs
block = 0
[]
[fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = 0
[]
[bubble_density]
type = ElementAverageValue
block = 0
variable = bubble_concentration_intra
execute_on = TIMESTEP_END
[]
[bubble_radius]
type = ElementAverageValue
block = 0
variable = bubble_radius_intra
execute_on = TIMESTEP_END
[]
[]
[Outputs]
perf_graph = true
csv = true
file_base = '${experiment_name}_out'
[]
(assessment/MOX/JOYO/B14/PTM001/analysis/b14_ptm001_1D_sample3_noAm.i)
# Sample at midplane
initial_fuel_density = 11026.4
[GlobalParams]
density = ${initial_fuel_density}
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
[]
[Problem]
type = ReferenceResidualProblem
extra_tag_vectors = 'ref'
reference_vector = 'ref'
[]
[Mesh]
coord_type = RZ
[layered1D_mesh]
type = Layered1DMeshGenerator
fuel_height = 10e-3
pellet_outer_radius = 0.0027
pellet_bottom_coor = 0.0
pellet_mesh_density = customize
nx_p = 200
elem_type = EDGE2
slices_per_block = 1
include_plenum = false
include_clad = false
[]
[]
[UserObjects]
[pin_geometry]
type = Layered1DFuelPinGeometry
include_clad = false
mesh_generator = layered1D_mesh
[]
[]
[Variables]
[temp]
initial_condition = 295.0
[]
[]
[AuxVariables]
[oxygen]
[]
[fission_rate]
[]
[burnup]
[]
[oxygen_to_metal_ratio]
order = CONSTANT
family = MONOMIAL
initial_condition = 1.982
[]
[]
[Functions]
[power_history]
type = PiecewiseLinear
x = '-200 0 72000 158040 160200 246600 248400 249000.012 251280'
y = '0 0 39456.16 39456.16 43890.71 43890.71 53442.06 53442.06 0'
[]
[f_temp_out_fuel]
type = PiecewiseLinear
x = '-200 0 251280'
y = '295 295 1148'
[]
[]
[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
fission_rate = fission_rate
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[fission_rate]
type = FissionRateGeneral
fission_rate_formulation = MOX
variable = fission_rate
block = fuel
initial_porosity = 0.1372
rod_ave_lin_pow = power_history
pellet_diameter = 0.0054
execute_on = timestep_begin
energy_per_fission = 3.2e-11
[]
[burnup]
type = BurnupAux
block = fuel
fission_rate = fission_rate
variable = burnup
execute_on = timestep_begin
[]
[]
[BCs]
[temp_fuel_outside]
type = FunctionDirichletBC
variable = temp
function = f_temp_out_fuel
boundary = 10
[]
[]
[Materials]
[fuel_thermal]
type = MAMOXThermal
temperature = temp
porosity = 0.1372
block = fuel
Am_content = 0.0
oxy_to_metal_ratio = 1.982
[]
[fuel_density]
type = ParsedMaterial
block = fuel
property_name = density
expression = ${initial_fuel_density}
[]
[oxygen_partial_pressure_integral]
type = MOXOxygenPartialPressure
block = fuel
temperature = temp
o2m_deviation = 0.02
po2_initial = 0.01
outputs = exodus
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -sub_pc_type'
petsc_options_value = 'asm lu'
line_search = 'none'
fixed_point_rel_tol = 1e-05
fixed_point_abs_tol = 1e-05
fixed_point_max_its = 1
l_max_its = 50
l_tol = 8e-3
nl_max_its = 50
nl_rel_tol = 1e-5
nl_abs_tol = 1e-5
start_time = -200
n_startup_steps = 1
end_time = 251280
dtmax = 10000
dtmin = 0.25
[TimeStepper]
type = IterationAdaptiveDT
dt = 1e1
optimal_iterations = 15
iteration_window = 2
linear_iteration_ratio = 100
growth_factor = 2
cutback_factor = .5
force_step_every_function_point = true
timestep_limiting_function = power_history
[]
[]
[Postprocessors]
[ave_temp_interior]
type = ElementAverageValue
variable = temp
execute_on = 'initial linear'
[]
[average_burnup]
type = ElementAverageValue
variable = burnup
[]
[ave_ox]
type = ElementAverageValue
variable = oxygen
[]
[max_ox]
type = NodalExtremeValue
value_type = max
variable = oxygen
[]
[min_ox]
type = NodalExtremeValue
value_type = min
variable = oxygen
[]
[ave_om_ratio]
type = ElementAverageValue
variable = oxygen_to_metal_ratio
[]
[max_om_ratio]
type = ElementExtremeValue
value_type = max
variable = oxygen_to_metal_ratio
[]
[min_om_ratio]
type = ElementExtremeValue
value_type = min
variable = oxygen_to_metal_ratio
[]
[rod_total_power]
type = LayeredElementIntegralPowerPostprocessor
variable = temp
fission_rate = fission_rate
block = fuel
fuel_pin_geometry = pin_geometry
[]
[rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 10e-3 # rod height
[]
[]
[VectorPostprocessors]
[fuel_radial_temperature_Sample]
type = LineValueSampler
variable = temp
start_point = '0.0 0.005 0.0'
end_point = '0.0027 0.005 0.0'
num_points = 200
execute_on = final
sort_by = x
outputs = line_plot
[]
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = true
color = true
csv = true
[console]
type = Console
max_rows = 25
[]
[line_plot]
type = CSV
execute_on = 'FINAL'
time_step_interval = 1
file_base = 1d
create_final_symlink = true
[]
[chkfile]
type = CSV
execute_on = FINAL
show = 'ave_temp_interior ave_om_ratio'
[]
[]
[MultiApps]
[sub]
type = TransientMultiApp
app_type = BisonApp
execute_on = timestep_end
catch_up = true
max_catch_up_steps = 10
positions = '0 0.005 0'
input_files = b14_ptm001_1D_sample3_ox_noAm.i
[]
[]
[Transfers]
[temp_to_sub]
type = MultiAppCopyTransfer
to_multi_app = sub
source_variable = temp
variable = temp
[]
[ox_from_sub]
type = MultiAppCopyTransfer
from_multi_app = sub
source_variable = oxygen
variable = oxygen
[]
[ox_to_met_from_sub]
type = MultiAppCopyTransfer
from_multi_app = sub
source_variable = oxygen_to_metal_ratio
variable = oxygen_to_metal_ratio
[]
[]
[Debug]
show_var_residual_norms = true
[]
(test/tests/sifgrs/uo2/ad_grain_growth.i)
# This test aims at demonstrating the coupling of the Sifgrs fission gas behavior
# model with the grain growth model (GrainRadiusAux). As the grains grow, the
# moving grain boundaries act as filters and contribute to the collection of gas
# at the grain boundaries (grain boundary sweeping). This effect is taken into
# account in the Sifgrs model by adding a supplementary fractional release term
# from within grains to grain boundaries that is equal to the volume fraction of
# the fuel swept by the moving boundaries. For this purpose, Sifgrs is coupled
# with the grain growth model and incorporates a specific grain boundary sweeping
# capability that can be activated by specifying gbs_model = true in the
# fission_gas_release block (see below).
# For the purpose of this test, fission gas swelling is not calculated.
# The gas that reaches the grain boundaries is forced to be instantaneously
# released to the plenum by skipping the grain boundary model
# (skip_bdr_model = true). Starting from an initial value of 5 microns, the grain
# radius increases due to grain growth following the temperature increase.
# At the end of the simulation the grain radius reaches the value of 17.464 microns.
# The results of the test show that gas release due to grain boundary sweeping occurs
# after grain growth commences.
# This is the AD version of the test
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 1
[]
[]
[Functions]
[temperature_function]
type = PiecewiseLinear
x = '0. 1.e+08'
y = '1000. 1700. '
[]
[fission_rate_function]
type = ParsedFunction
expression = '1.e19'
[]
[]
[Variables]
[temperature]
initial_condition = 1000
[]
[]
[AuxVariables]
[fission_rate]
[]
[grain_radius]
initial_condition = 5.e-06
[]
[]
[Kernels]
[heat]
type = ADHeatConduction
variable = temperature
thermal_conductivity = 1
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
value = 1
fission_rate_function = fission_rate_function
execute_on = 'initial timestep_begin'
[]
[grain_radius]
type = GrainRadiusAux
variable = grain_radius
temperature = temperature
execute_on = 'initial linear'
[]
[]
[BCs]
[bottom_T]
type = ADFunctionDirichletBC
variable = temperature
function = temperature_function
boundary = 1
[]
[]
[Materials]
[fission_gas_behavior]
type = ADUO2Sifgrs
temperature = temperature
fission_rate = fission_rate
skip_bdr_model = true
grain_radius = grain_radius
gbs_model = true
output_properties = 'gas_concentration_generated_total gas_concentration_intra_total gas_concentration_swept_GB gas_concentration_GB_bubble_volume gas_concentration_release_total'
outputs = 'all'
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
l_tol = 1.e-10
nl_rel_tol = 1.e-14
start_time = 0.
num_steps = 500
dt = 1.e06
end_time = 1e8
[]
[Postprocessors]
[average_grain_radius]
type = ElementAverageValue
variable = grain_radius
execute_on = 'initial timestep_end'
[]
[fis_gas_generated]
type = ADElementIntegralFisGasGeneratedSifgrs
[]
[fis_gas_released]
type = ADElementIntegralFisGasReleasedSifgrs
[]
[fgr_percent]
type = FGRPercent
fission_gas_released = fis_gas_released
fission_gas_generated = fis_gas_generated
[]
[intrag_swelling]
type = ADElementIntegralMaterialProperty
mat_prop = deltav_v0_intra_total
[]
[gas_amount_bubble_intra]
type = ADElementIntegralMaterialProperty
mat_prop = gas_concentration_bubble_intra
[]
[gas_amount_matrix_intra]
type = ADElementIntegralMaterialProperty
mat_prop = gas_concentration_matrix_intra
[]
[bubble_amount_intra]
type = ADElementIntegralMaterialProperty
mat_prop = bubble_concentration_intra
[]
[bubble_radius_intra_average]
type = ADElementAverageMaterialProperty
mat_prop = bubble_radius_intra
[]
[temperature]
type = ElementAverageValue
variable = temperature
[]
[fission_rate]
type = ElementAverageValue
variable = fission_rate
[]
[]
[Outputs]
csv = true
[]
(examples/3D_rodlet_3pellets/discrete_quarter_symm/3d_3pellets_mortar.i)
initial_fuel_density = 10431.0
[GlobalParams]
density = ${initial_fuel_density} #95% TD (TD = 10980)
displacements = 'disp_x disp_y disp_z'
order = FIRST
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission (205 Mev)
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
group_variables = 'disp_x disp_y disp_z'
converge_on = 'disp_x disp_y disp_z temp'
[]
[Mesh]
[file]
type = FileMeshGenerator
file = DiscreteThreePellets3D_90deg_HEX8.e
[]
partitioner = centroid
centroid_partitioner_direction = y
patch_size = 20
patch_update_strategy = iteration
[]
[Variables]
[temp]
initial_condition = 580.0
[]
[]
[AuxVariables]
[fission_rate]
block = 3
[]
[fast_neutron_flux]
[]
[fast_neutron_fluence]
[]
[grain_radius]
block = 3
initial_condition = 5e-6
[]
[gas_swell]
order = CONSTANT
family = MONOMIAL
block = 3
[]
[hoop_inelastic_strain]
order = CONSTANT
family = MONOMIAL
block = 1
[]
[pid]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[power_history]
type = PiecewiseLinear
x = '0 1.0e4 1.0e8'
y = '0 1.0 1.0'
scale_factor = 25e3 # 25 kW/m peak power.
[]
[axial_peaking_factors]
type = ParsedFunction
expression = 1
[]
[coolant_pressure_ramp]
type = PiecewiseLinear
x = '-200 0'
y = '0 1'
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[pellets]
block = 3
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'
temperature = temp
[]
[clad]
block = 1
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'
temperature = temp
[]
[]
[Burnup]
[burnup]
block = 3
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
[]
[]
[Kernels]
[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_fuel]
type = NeutronHeatSource
variable = temp
block = 3
fission_rate = fission_rate
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
block = 3
value = 5.3548e+14
fission_rate_function = power_history
[]
[fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = 1
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
factor = 2.34e+13
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
[]
[grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temperature = temp
execute_on = linear
[]
[gas_swell]
type = MaterialRealAux
block = 3
variable = gas_swell
property = deltav_v0_bubble_GB
execute_on = timestep_end
[]
[hoop_inelastic_strain]
type = RankTwoScalarAux
rank_two_tensor = creep_strain
variable = hoop_inelastic_strain
scalar_type = HoopStress
execute_on = timestep_end
[]
[pid]
type = ProcessorIDAux
variable = pid
[]
[]
[Contact]
[pellet_clad_mechanical]
primary = 5
secondary = 10
formulation = mortar
model = coulomb
c_normal = 1e+18
c_tangential = 1e+18
friction_coefficient = 0.5
#normalize_c = true
#correct_edge_dropping = true
#normal_lm_scaling = 1.0e-5
#tangential_lm_scaling = 1.0e-5
[]
[]
[ThermalContactMortar]
[thermal_contact]
secondary_variable = temp
primary_boundary = '5'
secondary_boundary = '10'
gas_released = fis_gas_released_model
initial_moles = initial_moles
jump_distance_model = LANNING
plenum_pressure = plenum_pressure
roughness_coef = 3.2
roughness_secondary = 1e-6
roughness_primary = 2e-6
emissivity_primary = 0.8
emissivity_secondary = 0.8
[]
[]
[BCs]
[no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[]
[no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 20
value = 0.0
[]
[no_x_wedge]
type = DirichletBC
variable = disp_x
boundary = 98
value = 0.0
[]
[no_z_wedge]
type = DirichletBC
variable = disp_z
boundary = 99
value = 0.0
[]
[Pressure]
[coolantPressure]
boundary = 2
factor = 15.5e6
function = coolant_pressure_ramp
[]
[]
[PlenumPressure]
[plenumPressure]
boundary = 9
initial_pressure = 2.0e6
startup_time = 0.0
material_input = fis_gas_released_model
output_initial_moles = initial_moles
R = 8.3143
temperature = interior_temp
volume = gas_volume
output = plenum_pressure
[]
[]
[]
[CoolantChannel]
[convective_clad_surface]
boundary = 2
variable = temp
inlet_temperature = 580 # K
inlet_pressure = 15.5e6 # PA
inlet_massflux = 3880 # kg/m^2-sec
rod_diameter = 0.95e-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 = 3
thermal_conductivity_model = NFIR
temperature = temp
burnup_function = burnup
initial_porosity = 0.05
[]
[fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = 3
[]
[fuel_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = 3
youngs_modulus = 2.0e11
poissons_ratio = 0.345
[]
[fuel_relocation]
type = UO2RelocationEigenstrain
block = 3
burnup_function = burnup
diameter = 0.00836
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
diametral_gap =50.0e-6
relocation_activation1 = 5000
burnup_relocation_stop = 0.02
eigenstrain_name = 'fuel_relocation_eigenstrain'
[]
[fuel_swelling]
type = UO2VolumetricSwellingEigenstrain
block = 3
burnup_function = burnup
temperature = temp
initial_fuel_density = 10431.0
eigenstrain_name = 'fuel_volumetric_swelling_eigenstrain'
[]
[fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = 3
# thermal_expansion_coeff = 10.0e-6 (reference)
# We are artificially increasing the fuel expansion to simulate mechanical contact within reasonable 'example' time
thermal_expansion_coeff = 70.0e-6
temperature = temp
stress_free_temperature = 580.0
eigenstrain_name = 'fuel_thermal_strain'
[]
[fission_gas_release]
type = UO2Sifgrs
block = 3
temperature = temp
fission_rate = fission_rate
grain_radius = grain_radius
gbs_model = true
burnup = burnup
diff_coeff_option = TURNBULL_D1_D2
[]
[fuel_density]
type = StrainAdjustedDensity
block = 3
strain_free_density = ${initial_fuel_density}
[]
[clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[]
[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 = 580.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 = 6551.0
[]
[]
[Executioner]
type = Transient
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package -mat_mffd_err -pc_factor_shift_type -pc_factor_shift_amount'
petsc_options_value = 'lu superlu_dist 1e-6 NONZERO 1e-13'
line_search = 'basic'
l_max_its = 25
nl_max_its = 40
nl_rel_tol = 1e-6
nl_abs_tol = 1e-9
start_time = -200
dtmax = 1.0e6
dtmin = 1.0
end_time = 25200
# Use time below for realistic fuel thermal expansion
# end_time = 4.0e7
[TimeStepper]
type = IterationAdaptiveDT
dt = 200
optimal_iterations = 15
iteration_window = 3
growth_factor = 2.0
cutback_factor = 0.5
[]
[]
[Postprocessors]
[clad_inner_vol]
type = InternalVolume
boundary = 7
scale_factor = 4.0 # Quarter-Symmetry Model Correction
execute_on = 'INITIAL TIMESTEP_END'
[]
[pellet_volume]
type = InternalVolume
boundary = 8
scale_factor = 4.0 # Quarter-Symmetry Model Correction
execute_on = 'INITIAL TIMESTEP_END'
[]
[gas_volume]
type = InternalVolume
boundary = 9
scale_factor = 4.0 # Quarter-Symmetry Model Correction
execute_on = 'initial linear'
[]
[interior_temp]
type = SideAverageValue
boundary = 7
variable = temp
execute_on = 'initial linear'
[]
[fis_gas_produced_model]
type = ElementIntegralFisGasGeneratedSifgrs
block = 3
execute_on = 'initial timestep_end'
[]
[fis_gas_produced] # Scaled PostProcessor for Quarter-Symmetry Model
type = ScalePostprocessor
value = fis_gas_produced_model
scaling_factor = 4.0
execute_on = 'initial timestep_end'
[]
[fis_gas_released_model]
type = ElementIntegralFisGasReleasedSifgrs
block = 3
execute_on = 'initial timestep_end'
[]
[fission_gas_released] # Scaled PostProcessor for Quarter-Symmetry Model
type = ScalePostprocessor
value = fis_gas_released_model
scaling_factor = 4.0
execute_on = 'initial timestep_end'
[]
[fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = 3
outputs = exodus
[]
[fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = 3
outputs = exodus
[]
[power_history]
type = FunctionValuePostprocessor
function = power_history
execute_on = 'initial timestep_end'
[]
[flux_from_clad_model]
type = SideDiffusiveFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[]
[flux_from_clad] # Scaled PostProcessor for Quarter-Symmetry Model
type = ScalePostprocessor
value = flux_from_clad_model
scaling_factor = 4.0
execute_on = 'initial timestep_end'
[]
[flux_from_fuel_model]
type = SideDiffusiveFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[]
[flux_from_fuel] # Scaled PostProcessor for Quarter-Symmetry Model
type = ScalePostprocessor
value = flux_from_fuel_model
scaling_factor = 4.0
execute_on = 'initial timestep_end'
[]
[average_burnup]
type = RodAverageBurnup
burnup_function = burnup
[]
[average_fissionrate]
type = ElementAverageValue
block = 3
variable = fission_rate
execute_on = 'initial timestep_end'
[]
[rod_total_power_model]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = 3
execute_on = 'initial timestep_end'
[]
[rod_total_power] # Scaled PostProcessor for Quarter-Symmetry Model
type = ScalePostprocessor
value = rod_total_power_model
scaling_factor = 4.0
execute_on = 'initial timestep_end'
[]
[rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 0.03
execute_on = 'initial timestep_end'
[]
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
time_step_interval = 1
exodus = true
[console]
type = Console
solve_log = true
output_linear = true
max_rows = 25
[]
[chkfile]
type = CSV
execute_on = FINAL
show = 'fission_gas_released plenum_pressure interior_temp gas_volume'
[]
[]
(test/tests/mox_oxygen_transport/mox_oxygen_transport_hypo_V_Pu_low3.3.i)
# This test is designed to exercise the MOXOxygen diffuion kernel. The kernel contains Fickian
# and Soret diffusion terms and a diffusion coefficient that is a function of temperature.
# There doesn't seem to be a simple analytical solution to this pde, so only general observations
# can be made as to whether or not the result is reasonable. The solution should be a form of
# exponential. The solution's shape agrees with Fig.11.21 from "Fundamental ascpects of nuclear reactor fuel elements", by Olander.
# HYPOstochiometric case with a Plutonium Valence lower than 3.3
[GlobalParams]
density = 10431.0
energy_per_fission = 3.2e-11 # J/fission
[]
[Mesh]
coord_type = RZ
[mesh]
type = GeneratedMeshGenerator
dim = 1
xmax = 2.794e-3 #pellet radius
nx = 100
elem_type = EDGE
[]
[]
[Variables]
[temp]
initial_condition = 1400.0
[]
[oxygen]
order = FIRST
family = LAGRANGE
initial_condition = 0.044
scaling = 1e-20
[]
[]
[AuxVariables]
[fission_rate]
[]
[burnup]
[]
[]
[Functions]
[power_history]
type = PiecewiseLinear
x = '0 10000'
y = '0 50000'
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temp
[]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temp
[]
[heat_source]
type = NeutronHeatSource
variable = temp
fission_rate = fission_rate
[]
[oxygen_time_derivative]
type = TimeDerivative
variable = oxygen
[]
[oxygen]
type = MOXOxygenDiffusion
variable = oxygen
temperature = temp
burnup = burnup
oxygen_to_metal_ratio = oxygen_to_metal_ratio
O_M_initial = 1.912
[]
[]
[AuxKernels]
[fission_rate]
type = FissionRateGeneral
fission_rate_formulation = MOX
variable = fission_rate
rod_ave_lin_pow = power_history
execute_on = timestep_begin
pellet_diameter = 0.005588
[]
[burnup]
type = BurnupAux
fission_rate = fission_rate
variable = burnup
execute_on = timestep_begin
[]
[]
[BCs]
[temp_outside]
type = DirichletBC
variable = temp
boundary = right
value = 1400
[]
[]
[Materials]
[fuel_thermal]
type = MAMOXThermal
temperature = temp
oxy_to_metal_ratio = 1.912
Am_content = 0.0
Np_content = 0.0
output_properties = 'thermal_conductivity'
[]
[fuel_density]
type = ParsedMaterial
property_name = density
expression = 10431.0
[]
[O_M_ratio]
type = MOXOxygenToMetalRatio
oxygen = oxygen
output_properties = 'oxygen_to_metal_ratio'
O_M_initial = 1.912
outputs = all
[]
[]
[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'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
l_tol = 8e-3
nl_abs_tol = 1e-9
nl_rel_tol = 1e-9
n_startup_steps = 1
end_time = 10000
dt = 200
dtmin = 200
[]
[Postprocessors] #Oxygen to metal ratio is an easier variable to look at for the user
[ave_ox]
type = ElementAverageValue
variable = oxygen
[]
[max_ox]
type = NodalExtremeValue
value_type = max
variable = oxygen
[]
[min_ox]
type = NodalExtremeValue
value_type = min
variable = oxygen
[]
[ave_om_ratio]
type = ElementAverageValue
variable = oxygen_to_metal_ratio
[]
[max_om_ratio]
type = ElementExtremeValue
value_type = max
variable = oxygen_to_metal_ratio
[]
[min_om_ratio]
type = ElementExtremeValue
value_type = min
variable = oxygen_to_metal_ratio
[]
[]
[VectorPostprocessors]
[radial_oxygen]
type = LineValueSampler
variable = oxygen
start_point = '0.0 0.0 0.0'
end_point = '2.794e-3 0.0 0.0'
num_points = 200
execute_on = final
sort_by = x
outputs = line_plot
[]
[radial_oxygen-to-metal-ratio]
type = LineValueSampler
variable = oxygen_to_metal_ratio
start_point = '0.0 0.0 0.0'
end_point = '2.794e-3 0.0 0.0'
num_points = 200
execute_on = final
sort_by = x
outputs = line_plot
[]
[]
[Outputs]
exodus = false
csv = true
[console]
type = Console
[]
[line_plot]
type = CSV
execute_on = 'FINAL'
time_step_interval = 1
[]
[]
[Debug]
show_var_residual_norms = true
[]
(test/tests/solid_mechanics/uo2_creep/adUo2_creep.i)
# Tests material model CreepUO2 which computes the combined thermal
# and irradiation creep for UO2 fuel.
#
# The test is a single element unit cube which is pulled in the y direction
# with a pressure of 5.0e7 Pa. The temperature and fission rate within the cube
# are uniform and constant at 1500 K and 2e18 fissios/m**3-s. The total time is
# 1e5, which is solved in 10 equal steps of 1e4.
# The small-strain anaytical solution for the total y displacement (elastic + thermal
# creep + irradiation creep) is 4.12825e-4. BISON gets 4.12910e-4 using large
# deformation solid mechanics. The difference in the two solutions is 0.021%.
[GlobalParams]
density = 10431.0
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
[mesh]
type = FileMeshGenerator
file = 1x1x1_cube.e
[]
[]
[Variables]
[temp]
initial_condition = 1500.0
[]
[]
[AuxVariables]
[fission_rate]
[]
[]
[Functions]
[top_pull]
type = PiecewiseLinear
x = '0 1'
y = '-0.5e8 -0.5e8'
[]
[]
[Physics/SolidMechanics/QuasiStatic/system]
add_variables = true
strain = FINITE
use_automatic_differentiation = true
generate_output = 'stress_yy'
[]
[Kernels]
[heat]
type = ADHeatConduction
variable = temp
[]
[heat_ie]
type = ADHeatConductionTimeDerivative
variable = temp
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
value = 2.0e18
[]
[stress_yy]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[]
[]
[BCs]
[u_top_pull]
type = ADPressure
variable = disp_y
boundary = 5
function = top_pull
[]
[u_bottom_fix]
type = ADDirichletBC
variable = disp_y
boundary = 3
value = 0.0
[]
[u_yz_fix]
type = ADDirichletBC
variable = disp_x
boundary = 4
value = 0.0
[]
[u_xy_fix]
type = ADDirichletBC
variable = disp_z
boundary = 2
value = 0.0
[]
[temp_top_fix]
type = ADDirichletBC
variable = temp
boundary = '3 5'
value = 1500.0
[]
[]
[Materials]
[elasticity_tensor]
type = ADComputeIsotropicElasticityTensor
youngs_modulus = 2e11
poissons_ratio = 0.3
[]
[creep]
type = ADUO2CreepUpdate
temperature = temp
fission_rate = fission_rate
initial_grain_radius = 10.0e-6
oxygen_to_metal_ratio = 2.0
a7 = 3.72264e-35
q3 = 2617
[]
[radial_return_stress]
type = ADComputeMultipleInelasticStress
inelastic_models = 'creep'
[]
[thermal]
type = ADHeatConductionMaterial
specific_heat = 1.0
thermal_conductivity = 100.
[]
[density]
type = ADStrainAdjustedDensity
strain_free_density = 10431.0
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart'
petsc_options_value = '101'
line_search = 'none'
l_max_its = 100
nl_max_its = 100
nl_rel_tol = 1e-8
nl_abs_tol = 1e-10
l_tol = 1e-5
start_time = 0.0
num_steps = 10
dt = 10000
[]
[Outputs]
exodus = true
[]
(assessment/LWR/validation/Separate_effects_FGB/analysis/White_AGR_SEM/White_AGR_SEM_Base.i)
# This input file is a partial input file that needs to be included in complementary input files.
# It contains base information/features that are shared between several assessment cases.
# This input file is therefore not designed to run on its own.
initial_temperature = 573.0 # K
[Mesh]
[mesh]
type = GeneratedMeshGenerator
dim = 3
xmin = 0
xmax = 0.01
ymin = 0
ymax = 0.01
zmin = 0
zmax = 0.01
nx = 1
ny = 1
nz = 1
[]
[]
[Functions]
[Temp_func]
type = PiecewiseLinear
data_file = ${temperature_history_data_file}
format = columns
[]
[Fiss_func]
type = PiecewiseLinear
data_file = ${fission_rate_data_file}
format = columns
[]
[]
[Variables]
[temperature]
order = FIRST
family = LAGRANGE
initial_condition = ${initial_temperature}
[]
[]
[AuxVariables]
[fission_rate]
order = FIRST
family = LAGRANGE
[]
[burnup]
order = FIRST
family = LAGRANGE
[]
[pellet_id]
order = CONSTANT
family = MONOMIAL
[]
[grain_radius]
initial_condition = ${grain_radius_const}
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temperature
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
value = 1
fission_rate_function = Fiss_func
execute_on = 'initial timestep_begin'
[]
[burnup]
type = ConstantAux
variable = burnup
value = ${initial_burnup}
[]
[pelletid]
type = PelletIdAux
variable = pellet_id
a_lower = 0
a_upper = 0.01
number_pellets = 1
execute_on = initial
[]
[grain_radius]
type = GrainRadiusAux
variable = grain_radius
temperature = temperature
execute_on = linear
[]
[]
[BCs]
[bottom_temperature]
type = FunctionDirichletBC
variable = temperature
function = Temp_func
boundary = bottom
[]
[]
[Materials]
[UO2]
type = HeatConductionMaterial
block = 0
thermal_conductivity = 1.0
specific_heat = 1.0
[]
[fission_gas_behavior]
type = UO2Sifgrs
block = 0
gbs_model = true
grain_radius = grain_radius
temperature = temperature
fission_rate = fission_rate
ig_bubble_model = NUCLEATION_RESOLUTION
ig_bubble_coarsening = WITH_COARSENING
ig_fully_coupled = LOOSELY_COUPLED
ig_diff_algorithm = polypole2
diff_coeff_option = TURNBULL_D1_4D2_D3
transient_option = MICROCRACKING_BURNUP
pellet_brittle_zone = pbz
pellet_id = pellet_id
initial_burnup = ${initial_burnup}
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
l_tol = 1e-4
nl_abs_tol = 1e-8
nl_rel_tol = 1e-5
start_time = 0.0
end_time = ${end_time}
[TimeStepper]
type = IterationAdaptiveDT
dt = 8000.
optimal_iterations = 10
iteration_window = 4
growth_factor = 2.0
linear_iteration_ratio = 100
force_step_every_function_point = true
timestep_limiting_function = Temp_func
[]
[]
[Postprocessors]
[fis_gas_generated]
type = ElementIntegralFisGasGeneratedSifgrs
block = 0
[]
[fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = 0
[]
[intra_swelling_total]
type = ElementIntegralMaterialProperty
block = 0
mat_prop = deltav_v0_intra_total
[]
[inter_swelling_total]
type = ElementIntegralMaterialProperty
block = 0
mat_prop = deltav_v0_bubble_GB
[]
[gas_amount_bubble_intra_non_restructured]
type = ElementIntegralMaterialProperty
block = 0
mat_prop = gas_concentration_bubble_intra_non_restructured
[]
[gas_amount_matrix_intra_non_restructured]
type = ElementIntegralMaterialProperty
block = 0
mat_prop = gas_concentration_matrix_intra_non_restructured
[]
[bubble_amount_intra_non_restructured]
type = ElementIntegralMaterialProperty
block = 0
mat_prop = bubble_concentration_intra_non_restructured
[]
[bubble_radius_intra_average_non_restructured]
type = ElementAverageMaterialProperty
block = 0
mat_prop = bubble_radius_intra_non_restructured
[]
[bubble_pressure_intra_non_restructured]
type = ElementAverageMaterialProperty
block = 0
mat_prop = bubble_pressure_intra_non_restructured
[]
[gas_amount_GB_bubbles_non_restructured]
type = ElementIntegralMaterialProperty
block = 0
mat_prop = gas_concentration_GB_bubble_volume_non_restructured
[]
[bubble_amount_GB_non_restructured]
type = ElementIntegralMaterialProperty
block = 0
mat_prop = bubble_GB_volume_density_non_restructured
[]
[bubble_radius_GB_average_non_restructured]
type = ElementAverageMaterialProperty
block = 0
mat_prop = bubble_radius_GB_non_restructured
[]
[bubble_pressure_GB_non_restructured]
type = ElementAverageMaterialProperty
block = 0
mat_prop = bubble_GB_pressure_non_restructured
[]
[volume_fuel]
type = ElementIntegralMaterialProperty
block = 0
mat_prop = 1
[]
[grain_radius_total]
type = ElementAverageMaterialProperty
block = 0
mat_prop = grain_radius_sifgrs
[]
[]
[UserObjects]
[pbz]
type = PelletBrittleZone
pellet_id = pellet_id
temperature = temperature
a_lower = 0
a_upper = 0.01
pellet_radius = 0.01
number_pellets = 1
execute_on = 'initial linear'
[]
[]
[Outputs]
perf_graph = true
csv = true
file_base = '${id}_out'
[]
(examples/pore_migration/mox_porosity_demo_2D_offset.i)
[Mesh]
[mesh]
type = FileMeshGenerator
file = half_symm_disk_tube_2d_offset.e
[]
[]
[Variables]
[temp]
initial_condition = 600
[]
[pore]
initial_condition = 0.15
scaling = 1e14
block = 1
[]
[]
[AuxVariables]
[pore_speed_aux]
order = constant
family = monomial
[]
[fission_rate_aux_variable]
order = first
family = lagrange
[]
[fission_rate_aux_variable_mox]
order = first
family = lagrange
[]
[grad_temp_x]
order = CONSTANT
family = MONOMIAL
[]
[thermal_conductivity]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[power_history1]
type = PiecewiseLinear
x = '0 10000'
y = '0 37500'
[]
[]
[Kernels]
[heat] # gradient term in heat conduction equation
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
fission_rate = fission_rate_aux_variable_mox
[]
[pore_continuity]
type = MOXPoreContinuity
variable = pore
temperature = temp
debug = 0
alpha = 0.25
beta = 1
heating_function = power_history1
block = 1
[]
[pore_diffusion]
type = MOXPoreDiffusion
variable = pore
debug = 0
nu = 1e-12
heating_function = power_history1
v_upper = 1e-12
v_lower = 1e-20
block = 1
[]
[poretimederivative]
type = CoefTimeDerivative
variable = pore
Coefficient = 1
block = 1
[]
[]
[AuxKernels]
[pore_speed_aux]
type = MaterialRealAux
variable = pore_speed_aux
property = pore_velocity
execute_on = 'initial timestep_end'
block = 1
[]
[fission_rate_aux_kernel]
type = FissionRateGeneral
fission_rate_formulation = LWR
variable = fission_rate_aux_variable
rod_ave_lin_pow = power_history1
pellet_diameter = 0.0054
pellet_inner_diameter = 0
energy_per_fission = 3.2e-11
execute_on = 'initial timestep_end'
value = 1.0
block = 1
[]
[fission_rate_aux_kernel_mox]
type = FissionRateGeneral
fission_rate_formulation = MOX
variable = fission_rate_aux_variable_mox
porosity = pore
initial_porosity = 0.15
rod_ave_lin_pow = power_history1
pellet_diameter = 0.0054
pellet_inner_diameter = 0
energy_per_fission = 3.2e-11
execute_on = 'initial timestep_end'
value = 1.0
block = 1
[]
[grad_temp_x_aux]
type = VariableGradientComponent
variable = grad_temp_x
component = x
gradient_variable = temp
execute_on = 'initial timestep_end'
[]
[ThermalConductivityAux]
type = MaterialRealAux
execute_on = linear
property = thermal_conductivity
variable = thermal_conductivity
block = 1
[]
[]
[BCs]
[temp_cool_side]
type = DirichletBC
variable = temp
boundary = '3'
value = 600
[]
[]
[ThermalContact]
[thermal_contact]
type = GapHeatTransfer
variable = temp
primary = 1
secondary = 2
gap_conductivity = 0.2
gap_geometry_type = cylinder
cylinder_axis_point_1 = '0 0 0'
cylinder_axis_point_2 = '0 0 1'
normal_smoothing_distance = 0.01
tangential_tolerance = 0.01
quadrature = true
[]
[]
[Materials]
[fuel_thermal]
type = MAMOXThermal
temperature = temp
porosity = pore
porosity_limit = 0.95
block = 1
[]
[fuel_density]
type = GenericConstantMaterial
prop_names = density
prop_values = 10662.0
block = 1
[]
[pore_velocity]
type = MOXPoreVelocity
temperature = temp
limit = 1e-3
scale_factor = 0.1
block = 1
[]
[clad_thermal]
type = GenericConstantMaterial
prop_names = 'thermal_conductivity thermal_conductivity_dT specific_heat'
prop_values = '15.0 0.0 470'
block = 2
[]
[clad_density]
type = GenericConstantMaterial
prop_names = density
prop_values = 8000.0
block = 2
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Dampers]
[limitT]
type = MaxIncrement
max_increment = 100.0
variable = temp
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -sub_pc_type'
petsc_options_value = 'asm lu'
line_search = 'none'
l_max_its = 50
l_tol = 8e-3
nl_max_its = 50
nl_rel_tol = 1e-5
nl_abs_tol = 1e-6
end_time = 10000
dtmax = 100
dtmin = 0.25
[TimeStepper]
type = IterationAdaptiveDT
dt = 1e1
optimal_iterations = 15
iteration_window = 2
linear_iteration_ratio = 100
growth_factor = 2
cutback_factor = .5
force_step_every_function_point = true
timestep_limiting_function = power_history1
[]
[]
[Postprocessors]
[_dt] # time step
type = TimestepSize
[]
[z_nonlinear_its] # number of nonlinear iterations at each timestep
type = NumNonlinearIterations
[]
[a_run_time] # average temperature of cladding interior
type = PerfGraphData
section_name = Root
data_type = TOTAL
[]
[ave_fuel_temp]
type = ElementAverageValue
variable = temp
block = 1
[]
[max_fuel_temp]
type = NodalExtremeValue
value_type = max
variable = temp
block = 1
[]
[ave_pore]
type = ElementAverageValue
variable = pore
block = 1
[]
[max_pore]
type = NodalExtremeValue
value_type = max
variable = pore
block = 1
[]
[min_pore]
type = NodalExtremeValue
value_type = min
variable = pore
block = 1
[]
[max_pore_speed]
type = ElementExtremeValue
value_type = max
variable = pore_speed_aux
block = 1
[]
[ave_fission_rate]
type = ElementAverageValue
variable = fission_rate_aux_variable
block = 1
[]
[rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate_aux_variable
block = 1
[]
[rod_total_power_mox]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate_aux_variable_mox
block = 1
[]
[rod_input_power]
type = FunctionValuePostprocessor
function = power_history1
scale_factor = 0.000625 # rod height
[]
[ave_themal_conductivity]
type = ElementAverageValue
variable = thermal_conductivity
block = 1
[] # end element average burnup
[]
[VectorPostprocessors]
[pore]
type = LineValueSampler
variable = pore
start_point = '0.0 0.00008 0.0'
end_point = '0.002675 0.00008 0.0'
num_points = 200
sort_by = x
execute_on = linear
outputs = line_plot
control_tags = a
[]
[gradT]
type = LineValueSampler
variable = grad_temp_x
start_point = '0.0 0.00008 0.0'
end_point = '0.002675 0.00008 0.0'
num_points = 100
sort_by = x
execute_on = linear
outputs = line_plot
[]
[pore_speed]
type = LineValueSampler
variable = pore_speed_aux
start_point = '0.0 0.00008 0.0'
end_point = '0.002675 0.00008 0.0'
num_points = 100
sort_by = x
execute_on = linear
outputs = line_plot
[]
[temp]
type = LineValueSampler
variable = temp
start_point = '0.0 0.00008 0.0'
end_point = '0.002675 0.00008 0.0'
num_points = 100
sort_by = x
execute_on = linear
outputs = line_plot
[]
[thermal_conductivity]
type = LineValueSampler
variable = thermal_conductivity
start_point = '0.0 0.00008 0.0'
end_point = '0.002675 0.00008 0.0'
num_points = 100
sort_by = x
execute_on = linear
outputs = line_plot
[]
[]
[Outputs]
perf_graph = true
exodus = false
color = false
[console]
type = Console
max_rows = 25
all_variable_norms = true
[]
[line_plot]
type = CSV
execute_on = 'FINAL'
file_base = offset
[]
[]
[Debug]
show_var_residual_norms = true
[]
(test/tests/mox_thermal/Duriez/ad_test.i)
# This test case is prepared to test the thermal conductivity using the Duriez MOX model.
#
# The temperature is ramped on all BCs of the unit line from 500 K to 3000K over 100 Ms.
# The fission rate is 2e19 n/m3/s, so that the burnup goes from 0 to
# ~ 8.6 at.% (82 MWd/kgU) at the end of the simulation.
#
# Thermal conductivity of MOX fuel at 95%TD with a 7% Pu content is computed
# using the Duriez MOX thermal conductivity model.
# The BISON predictions (BISON_k) compared to the expected results (expected_k)
# are summarized (see: post_processing.py --> comparison_results.csv) as:
#
# expected_k BISON_k percent_error
# 4.502311344 4.502311344 -2.22E-14
# 4.331074842 4.331074842 5.77E-13
# 4.17347041 4.17347041 -2.66E-13
# 4.028219101 4.028219101 -4.22E-13
# 3.893949587 3.893949587 -1.24E-12
[GlobalParams]
order = FIRST
family = LAGRANGE
[]
[Mesh]
[geom]
type = GeneratedMeshGenerator
dim = 1
elem_type= EDGE2
[]
[]
[Variables]
[T]
initial_condition = 500
[]
[]
[AuxVariables]
[fission_rate]
[]
[burnup]
[]
[th_cond]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[heat]
type = ADHeatConduction
variable = T
[]
[heat_ie]
type = ADHeatConductionTimeDerivative
variable = T
[]
[heat_source]
type = ADNeutronHeatSource
variable = T
energy_per_fission = 3.2e-11
fission_rate = fission_rate
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable= fission_rate
value = 2e19 # Standard fission_rate fissions/m^3/s
execute_on = 'initial timestep_begin'
[]
[th_cond]
type = ADMaterialRealAux
variable = th_cond
property = thermal_conductivity
execute_on = 'initial linear'
[]
[burnup]
type = ADBurnupAux
variable = burnup
density = 10431.0 # 95% TD
fission_rate = fission_rate
execute_on = timestep_begin
[]
[]
[Functions]
[temp_ramp]
type = PiecewiseLinear
x = '0.0 100.e6'
y = '500 3000'
[]
[]
[BCs]
[VariableT]
type = ADFunctionDirichletBC
boundary = 'left right'
variable = T
function = temp_ramp
[]
[]
[Materials]
[fuel_thermal]
type = ADMOXThermal
temperature = T
burnup = burnup
thermal_conductivity_model = DURIEZ
oxy_to_metal_ratio = 2.0
initial_porosity = 0.05
Pu_content = 0.07
[]
[density]
type = ADParsedMaterial
property_name = density
expression = 10431.0
[]
[]
[Executioner]
type = Transient
start_time = 0
num_steps = 100
dt = 1.0e6
[]
[Postprocessors]
[avg_th_cond]
type = ElementAverageValue
variable = th_cond
execute_on = 'initial timestep_end'
[]
[average_rod_burnup]
type = ElementAverageValue
variable = burnup
execute_on = timestep_end
[]
[average_fuel_T]
type = ElementAverageValue
variable = T
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
csv = true
[]
(test/tests/axial_relocation/ad_uo2_pulverization_phasefield.i)
# This file is to test the phase-field based pulverization criterion for UO2 fuel
# with evolve_bubble_pressure_hbs = false and using the 2D phase field criterion
# for pulverization.
# In the test 5 axial fuel slices are modeled without cladding with an outer fuel
# radius of 4.5 mm and slice height of 0.1 m. Ten radial finite elements are used.
# The burnup increases linearly from the fuel centerline to the fuel surface.
# Temperature is held at constant T = 673.15 K from t = 0 to t = 100, followed
# by a ramp in temperature from t = 100 to t = 110. Pulverization will occur
# during the ramp only, in the rim region where a significant amount of high burnup
# structure formation has begun. Local pulverization is tracked with the material
# property pulverized, which is 0 where pulverization has not occured and 1 where
# it has occurred. This material property is output to the exodus file for this test.
# At each time step, the porosity in the HBS region is calculated at each radial
# position using the correlation due to Kampf in the UO2Thermal material.
# The porosity, along with the hydrostatic stress, are used to calculate the
# critical pressure for grain boundary fracture using data from fits to phase-field
# fracture simulations. The current pressure of the most likely bubble
# size is compared to the critical pressure to determine whether pulverization has
# occurred at each quadrature point.
# Based upon the conditions and threshold given above at t = 110 s the outer three
# elements should be completely pulverized. The inner radius of the third element
# is at a radius of 3.150 mm. Therefore the layered averaged pulverized fuel volume
# (in each layer in this case) is analytically determined by:
#
# V_p = pi * L * (R_o^2 - R_p^2)
#
# where L is the slice height (0.1 m), R_o is the outer fuel radius, and R_p is the
# radius into the fuel at which pulverization ends. Therefore:
#
# V_p = pi * (0.1) * (4.5e-3^2 - 3.150e-3^2)
# V_p = 3.24448e-6 m^3 in each layer.
#
# The layered_pulverized_fuel_volume AuxVariable computed by BISON gives
# a layered volume of pulverized fuel as 3.24448e-6 m^3.
[Mesh]
coord_type = RZ
[layered1D_mesh]
type = Layered1DMeshGenerator
elem_type = EDGE2
slices_per_block = 5
pellet_outer_radius = 4.5e-3
include_clad = false
fuel_height = 0.5
include_plenum = false
nx_p = 10
pellet_mesh_density = customize
pellet_bottom_coor = 0.0
[]
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[temperature]
order = FIRST
family = LAGRANGE
initial_condition = 600
[]
[]
[AuxVariables]
[burnup]
order = FIRST
family = LAGRANGE
[]
[fission_rate]
order = FIRST
family = LAGRANGE
[]
[pulverized_aux]
order = CONSTANT
family = MONOMIAL
[]
[layered_pulverized_fuel_volume]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[burnup_function]
type = ParsedFunction
expression = 'x*1.6*t/4.275'
[]
[temperature_function]
type = ParsedFunction
expression = 'if(t < 100, 673.15, 673.15+(t-100)*15.5)'
[]
[Fiss_func]
type = ParsedFunction
expression = '1.e19'
[]
[]
[Kernels]
[heat]
type = ADHeatConduction
variable = temperature
[]
[]
[AuxKernels]
[burnup]
type = FunctionAux
variable = burnup
function = burnup_function
execute_on = 'initial linear'
[]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
value = 1
fission_rate_function = Fiss_func
execute_on = 'initial timestep_begin'
[]
[pulverized]
type = ADMaterialRealAux
block = fuel
variable = pulverized_aux
property = pulverized
execute_on = 'initial nonlinear'
[]
[layered_pulverized_fuel_volume]
type = SpatialUserObjectAux
variable = layered_pulverized_fuel_volume
execute_on = timestep_end
block = fuel
user_object = layered_pulverized_fuel_volume
[]
[]
[BCs]
[temperature]
type = FunctionDirichletBC
boundary = '10 12'
variable = temperature
function = temperature_function
[]
[]
[Materials]
[fission_gas_behavior]
type = ADUO2Sifgrs
block = fuel
temperature = temperature
fission_rate = fission_rate
burnup = burnup
skip_bdr_model = true
hbs_model = true
hbs_material = hbs_formation
evolve_bubble_pressure_hbs = false
[]
[uo2pulverizationmesoscale]
type = ADUO2PulverizationMesoscale
block = fuel
temperature = temperature
output_properties = pulverized
pulverization_criterion_type = phase_field_2D
outputs = exodus
[]
[dummy_stress]
type = ADGenericConstantRankTwoTensor
tensor_name = 'stress'
tensor_values = '-1e7 -1e7 -1e7 0 0 0'
[]
[fuel_thermal]
type = ADUO2Thermal
block = fuel
thermal_conductivity_model = STAICU
hbs_porosity_correction = KAMPF
model_hbs_formation = true
temperature = temperature
burnup_function = burnup_function
output_properties = hbs_porosity
outputs = exodus
[]
[hbs_formation]
type = ADHighBurnupStructureFormation
block = fuel
temperature = temperature
burnup = burnup
threshold_temperature = 1273.15 # default
output_properties = hbs_volume_fraction
outputs = exodus
[]
[]
[UserObjects]
[fuel_pin_geometry]
type = Layered1DFuelPinGeometry
include_clad = false
mesh_generator = layered1D_mesh
[]
[layered_pulverized_fuel_volume]
type = LayeredVariableIntegral
variable = pulverized_aux
fuel_pin_geometry = fuel_pin_geometry
direction = y
execute_on = 'initial timestep_end'
block = fuel
num_layers = 5
[]
[]
[Executioner]
type = Transient
solve_type = Newton
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
line_search = 'none'
l_max_its = 100
nl_max_its = 100
nl_rel_tol = 1e-8
nl_abs_tol = 1e-10
l_tol = 1e-5
start_time = 0.0
num_steps = 110
dt = 1
[]
[Outputs]
exodus = true
[]
(test/tests/uo2_thermal/Toptan/test.i)
# This test case is prepared to test the thermal conductivity using the Toptan model.
#
# The temperature is ramped on all BCs of the unit line from 500 K to 3000K over 100 Ms.
# The fission rate is 2e19 n/m3/s, so that the burnup goes from 0 to
# ~ 8.6 at.% (82 MWd/kgU) at the end of the simulation.
#
# Thermal conductivity of UO2 fuel at 95%TD is computed using the Toptan thermal conductivity model.
# The BISON predictions (BISON_k for UO2, BISON_Gd_k for UO2 with a 2% gadolinia content)
# compared to the expected results (expected_k for UO2, expected_Gd_k for UO2 with a 2% gadolinia content)
# are summarized (see: post_processing.py --> comparison_results.csv) as:
#
# expected_k BISON_k percent_error expected_Gd_k BISON_Gd_k percent_error_Gd
# 6.0175288 6.0175288 3.22E-13 5.259445073 5.259445073 2.22E-13
# 5.728201376 5.728201376 8.33E-13 5.037338715 5.037338715 -5.11E-13
# 5.47848776 5.47848776 6.00E-13 4.843460198 4.843460198 3.33E-14
# 5.250144347 5.250144347 6.66E-14 4.664370877 4.664370877 7.66E-13
# 5.040274961 5.040274961 9.21E-13 4.498230606 4.498230606 3.11E-13
initial_fuel_density = 10431.0
[GlobalParams]
order = FIRST
family = LAGRANGE
[]
[Mesh]
[geom]
type = GeneratedMeshGenerator
dim = 1
elem_type= EDGE2
[]
[]
[Variables]
[T]
initial_condition = 500
[]
[]
[AuxVariables]
[fission_rate]
[]
[burnup]
[]
[th_cond]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = T
[]
[heat_ie]
type = HeatConductionTimeDerivative
variable = T
[]
[heat_source]
type = NeutronHeatSource
variable = T
energy_per_fission = 3.2e-11
fission_rate = fission_rate
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable= fission_rate
value = 2e19 # Standard fission_rate fissions/m^3/s
execute_on = 'initial timestep_begin'
[]
[th_cond]
type = MaterialRealAux
variable = th_cond
property = thermal_conductivity
execute_on = 'initial linear'
[]
[burnup]
type = BurnupAux
variable = burnup
density = ${initial_fuel_density} # 95% TD
fission_rate = fission_rate
execute_on = timestep_begin
[]
[]
[Functions]
[temp_ramp]
type = PiecewiseLinear
x = '0.0 100.e6'
y = '500 3000'
[]
[]
[BCs]
[VariableT]
type = FunctionDirichletBC
boundary = 'left right'
variable = T
function = temp_ramp
[]
[]
[Materials]
[fuel_thermal]
type = UO2Thermal
temperature = T
burnup = burnup
thermal_conductivity_model = TOPTAN
oxy_to_metal_ratio = 2.0
initial_porosity = 0.05
Gd_content = 0.0
[]
[density]
type = ParsedMaterial
property_name = density
expression = ${initial_fuel_density}
[]
[]
[Executioner]
type = Transient
start_time = 0
num_steps = 100
dt = 1.0e6
[]
[Postprocessors]
[avg_th_cond]
type = ElementAverageValue
variable = th_cond
execute_on = 'initial timestep_end'
[]
[average_rod_burnup]
type = ElementAverageValue
variable = burnup
execute_on = timestep_end
[]
[average_fuel_T]
type = ElementAverageValue
variable = T
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
csv = true
[]
(test/tests/solid_mechanics/uo2_creep/uo2_creep.i)
# Tests material model CreepUO2 which computes the combined thermal
# and irradiation creep for UO2 fuel.
#
# The test is a single element unit cube which is pulled in the y direction
# with a pressure of 5.0e7 Pa. The temperature and fission rate within the cube
# are uniform and constant at 1500 K and 2e18 fissios/m**3-s. The total time is
# 1e5, which is solved in 10 equal steps of 1e4.
# The small-strain anaytical solution for the total y displacement (elastic + thermal
# creep + irradiation creep) is 4.12825e-4. BISON gets 4.12910e-4 using large
# deformation solid mechanics. The difference in the two solutions is 0.021%.
[GlobalParams]
density = 10431.0
displacements = 'disp_x disp_y disp_z'
order = FIRST
family = LAGRANGE
[]
[Mesh]
[mesh]
type = FileMeshGenerator
file = 1x1x1_cube.e
[]
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[disp_z]
[]
[temp]
initial_condition = 1500.0
[]
[]
[AuxVariables]
[fission_rate]
[]
[stress_yy]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[top_pull]
type = PiecewiseLinear
x = '0 1'
y = '1 1'
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
strain = finite
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temp
[]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temp
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
value = 2.0e18
[]
[stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[]
[]
[BCs]
[u_top_pull]
type = Pressure
variable = disp_y
boundary = 5
factor = -0.5e8
function = top_pull
[]
[u_bottom_fix]
type = DirichletBC
variable = disp_y
boundary = 3
value = 0.0
[]
[u_yz_fix]
type = DirichletBC
variable = disp_x
boundary = 4
value = 0.0
[]
[u_xy_fix]
type = DirichletBC
variable = disp_z
boundary = 2
value = 0.0
[]
[temp_top_fix]
type = DirichletBC
variable = temp
boundary = '3 5'
value = 1500.0
[]
[]
[Materials]
[elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = 1
youngs_modulus = 2e11
poissons_ratio = 0.3
[]
[creep]
type = UO2CreepUpdate
block = 1
temperature = temp
fission_rate = fission_rate
initial_grain_radius = 10.0e-6
oxygen_to_metal_ratio = 2.0
a7 = 3.72264e-35
q3 = 2617
[]
[radial_return_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'creep'
block = 1
[]
[thermal]
type = HeatConductionMaterial
block = 1
specific_heat = 1.0
thermal_conductivity = 100.
[]
[density]
type = StrainAdjustedDensity
block = 1
strain_free_density = 10431.0
[]
[]
[Executioner]
type = Transient
solve_type = PJFNK
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart'
petsc_options_value = '101'
line_search = 'none'
l_max_its = 100
nl_max_its = 100
nl_rel_tol = 1e-8
nl_abs_tol = 1e-10
l_tol = 1e-5
start_time = 0.0
num_steps = 10
dt = 10000
[]
[Outputs]
exodus = true
[]
(test/tests/uo2_thermal/Halden/test.i)
# This test case is prepared to test the thermal conductivity using the Halden model.
#
# The temperature is ramped on all BCs of the unit line from 500 K to 3000K over 100 Ms.
# The fission rate is 2e19 n/m3/s, so that the burnup goes from 0 to
# ~ 8.6 at.% (82 MWd/kgU) at the end of the simulation.
#
# Thermal conductivity of UO2 fuel at 95%TD is computed using the Halden UO2 thermal conductivity model.
# The BISON predictions (BISON_k) compared to the expected results (expected_k)
# are summarized (see: post_processing.py --> comparison_results.csv) as:
#
# expected_k BISON_k percent_error expected_Pu_k BISON_Pu_k percent_error_Pu
# 5.869784658 5.869784658 -7.55E-13 5.401819451 5.401819451 -1.55E-13
# 5.580850701 5.580850701 5.44E-13 5.136078051 5.136078051 -3.55E-13
# 5.320173923 5.320173923 -5.55E-13 4.896337002 4.896337002 6.55E-13
# 5.083833746 5.083833746 3.11E-13 4.678989552 4.678989552 2.11E-13
# 4.86860483 4.86860483 1.44E-13 4.481068576 4.481068576 -5.77E-13
initial_fuel_density = 10431.0
[GlobalParams]
order = FIRST
family = LAGRANGE
[]
[Mesh]
[geom]
type = GeneratedMeshGenerator
dim = 1
elem_type= EDGE2
[]
[]
[Variables]
[T]
initial_condition = 500
[]
[]
[AuxVariables]
[fission_rate]
[]
[burnup]
[]
[th_cond]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = T
[]
[heat_ie]
type = HeatConductionTimeDerivative
variable = T
[]
[heat_source]
type = NeutronHeatSource
variable = T
energy_per_fission = 3.2e-11
fission_rate = fission_rate
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable= fission_rate
value = 2e19 # Standard fission_rate fissions/m^3/s
execute_on = 'initial timestep_begin'
[]
[th_cond]
type = MaterialRealAux
variable = th_cond
property = thermal_conductivity
execute_on = 'initial linear'
[]
[burnup]
type = BurnupAux
variable = burnup
density = ${initial_fuel_density} # 95% TD
fission_rate = fission_rate
execute_on = timestep_begin
[]
[]
[Functions]
[temp_ramp]
type = PiecewiseLinear
x = '0.0 100.e6'
y = '500 3000'
[]
[]
[BCs]
[VariableT]
type = FunctionDirichletBC
boundary = 'left right'
variable = T
function = temp_ramp
[]
[]
[Materials]
[fuel_thermal]
type = UO2Thermal
temperature = T
burnup = burnup
thermal_conductivity_model = HALDEN
oxy_to_metal_ratio = 2.0
initial_porosity = 0.05
Gd_content = 0.0
[]
[density]
type = ParsedMaterial
property_name = density
expression = ${initial_fuel_density}
[]
[]
[Executioner]
type = Transient
start_time = 0
num_steps = 100
dt = 1.0e6
[]
[Postprocessors]
[avg_th_cond]
type = ElementAverageValue
variable = th_cond
execute_on = 'initial timestep_end'
[]
[average_rod_burnup]
type = ElementAverageValue
variable = burnup
execute_on = timestep_end
[]
[average_fuel_T]
type = ElementAverageValue
variable = T
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
csv = true
[]
(test/tests/sifgrs/u3si2/intergranular.i)
# This test verifies the overall U3Si2 fgb model through a single element calculation.
# The outcome has been benchmarked against the result of a stand-alone, independent software.
# In this input file, the coupled fgr and gaseous swelling calculation is performed.
initial_fuel_density = 11590.0
[GlobalParams]
density = ${initial_fuel_density}
order = FIRST
family = LAGRANGE
displacements = 'disp_x disp_y disp_z'
[]
[Mesh]
[mesh]
type = GeneratedMeshGenerator
dim = 3
xmin = 0
xmax = 0.01
ymin = 0
ymax = 0.01
zmin = 0
zmax = 0.01
nx = 1
ny = 1
nz = 1
[]
[]
[Functions]
[Temp_func]
type = ParsedFunction
expression = '1250'
[]
[Fiss_func]
type = ParsedFunction
expression = '2.e19'
[]
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[disp_z]
[]
[T]
initial_condition = 1250.0
[]
[]
[AuxVariables]
[fission_rate]
order = FIRST
family = LAGRANGE
[]
[burnup]
order = CONSTANT
family = MONOMIAL
[]
[rad_bbl_grn]
order = CONSTANT
family = MONOMIAL
[]
[bbl_grn_3]
order = CONSTANT
family = MONOMIAL
[]
[gas_bbl_grn]
order = CONSTANT
family = MONOMIAL
[]
[gas_bdr_3]
order = CONSTANT
family = MONOMIAL
[]
[deltav_v0_intra_total]
order = CONSTANT
family = MONOMIAL
[]
[deltav_v0_bubble_GB]
order = CONSTANT
family = MONOMIAL
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[fuel]
strain = FINITE
eigenstrain_names = 'fuel_thermal_strain fuel_volumetric_strain'
temperature = T
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = T
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
value = 1
fission_rate_function = Fiss_func
execute_on = 'initial timestep_begin'
[]
[burnup]
type = BurnupAux
variable = burnup
fission_rate = fission_rate
[]
[bbl_cnc]
type = MaterialRealAux
variable = bbl_grn_3
property = bubble_concentration_intra
[]
[rad_bbl]
type = MaterialRealAux
variable = rad_bbl_grn
property = bubble_radius_intra
[]
[gascnc_bbl]
type = MaterialRealAux
variable = gas_bbl_grn
property = gas_concentration_bubble_intra
[]
[dvv0gr]
type = MaterialRealAux
variable = deltav_v0_intra_total
property = deltav_v0_intra_total
[]
[dvv0bd]
type = MaterialRealAux
variable = deltav_v0_bubble_GB
property = deltav_v0_bubble_GB
[]
[]
[BCs]
[bottom_y]
type = DirichletBC
variable = disp_y
boundary = bottom
value = 0.0
[]
[left_x]
type = DirichletBC
variable = disp_x
boundary = left
value = 0.0
[]
[back_z]
type = DirichletBC
variable = disp_z
boundary = back
value = 0.0
[]
[bottom_T]
type = FunctionDirichletBC
variable = T
function = Temp_func
boundary = 1
[]
[]
[Materials]
[U3Si2]
type = GenericConstantMaterial
block = 0
prop_names = "thermal_conductivity specific_heat"
prop_values = '1 1'
[]
[fission_gas_behavior]
type = U3Si2Sifgrs
block = 0
temperature = T
fission_rate = fission_rate
grain_radius_const = 28.e-06
[]
[swelling]
type = U3Si2VolumetricSwellingEigenstrain
block = 0
gaseous_swelling_type = U3SI2FG
temperature = T
burnup = burnup
complete_burnup = 10
eigenstrain_name = fuel_volumetric_strain
[]
[elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1.0e11
poissons_ratio = 0.17
block = 0
[]
[elastic_stress]
type = ComputeFiniteStrainElasticStress
block = 0
[]
[thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = 0
temperature = T
stress_free_temperature = 1250.0
thermal_expansion_coeff = 1.5e-5
eigenstrain_name = fuel_thermal_strain
[]
[density]
type = StrainAdjustedDensity
block = 0
strain_free_density = ${initial_fuel_density}
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
l_tol = 1e-4
nl_abs_tol = 1e-7
nl_rel_tol = 1e-7
start_time = 0.
dt = 1e5
num_steps = 100
[]
[Postprocessors]
[fis_gas_generated]
type = ElementIntegralFisGasGeneratedSifgrs
block = 0
[]
[fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = 0
[]
[gbswelling]
type = ElementAverageValue
variable = deltav_v0_bubble_GB
block = 0
[]
[igswelling]
type = ElementAverageValue
variable = deltav_v0_intra_total
block = 0
[]
[]
[Outputs]
exodus = true
[]
(examples/3D_rodlet_3pellets/discrete_quarter_symm/3d_3pellets.i)
initial_fuel_density = 10431.0
[GlobalParams]
density = ${initial_fuel_density} #95% TD (TD = 10980)
displacements = 'disp_x disp_y disp_z'
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission (205 Mev)
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
group_variables = 'disp_x disp_y disp_z'
[]
[Mesh]
partitioner = centroid
centroid_partitioner_direction = y
patch_size = 20
patch_update_strategy = iteration
[mesh]
type = FileMeshGenerator
file = DiscreteThreePellets3D_90deg.e
[]
[]
[Variables]
[temp]
initial_condition = 580.0
[]
[]
[AuxVariables]
[fission_rate]
block = 3
[]
[fast_neutron_flux]
[]
[fast_neutron_fluence]
[]
[grain_radius]
block = 3
initial_condition = 5e-6
[]
[gas_swell]
order = CONSTANT
family = MONOMIAL
block = 3
[]
[hoop_inelastic_strain]
order = CONSTANT
family = MONOMIAL
block = 1
[]
[gap_conductance]
order = CONSTANT
family = MONOMIAL
[]
[pid]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[power_history]
type = PiecewiseLinear
x = '0 1.0e4 1.0e8'
y = '0 1.0 1.0'
scale_factor = 25e3 # 25 kW/m peak power.
[]
[axial_peaking_factors]
type = ParsedFunction
expression = 1
[]
[coolant_pressure_ramp]
type = PiecewiseLinear
x = '-200 0'
y = '0 1'
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[pellets]
block = 3
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 = 1
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 = 3
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
[]
[]
[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
fission_rate = fission_rate
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
block = 3
value = 5.3548e+14
fission_rate_function = power_history
[]
[fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = 1
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
factor = 2.34e+13
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
[]
[grain_radius]
type = GrainRadiusAux
block = 3
variable = grain_radius
temperature = temp
execute_on = linear
[]
[gas_swell]
type = MaterialRealAux
block = 3
variable = gas_swell
property = deltav_v0_bubble_GB
execute_on = timestep_end
[]
[hoop_inelastic_strain]
type = RankTwoScalarAux
rank_two_tensor = creep_strain
variable = hoop_inelastic_strain
scalar_type = HoopStress
execute_on = timestep_end
[]
[pid]
type = ProcessorIDAux
variable = pid
[]
[gap_cond]
type = MaterialRealAux
property = gap_conductance
variable = gap_conductance
boundary = 10
[]
[]
[Contact]
[pellet_clad_mechanical]
primary = 5
secondary = 10
formulation = kinematic
penalty = 1e14
model = frictionless
tangential_tolerance = 5e-4
normal_smoothing_distance = 0.1
normalize_penalty = true
[]
[]
[ThermalContact]
[pellet_clad_thermal]
type = GasGapHeatTransfer
variable = temp
primary = 5
secondary = 10
gas_released = fis_gas_released_model
initial_moles = initial_moles
jump_distance_model = LANNING
layer_thickness = layer_thickness
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
roughness_coef = 3.2
roughness_secondary = 1e-6
roughness_primary = 2e-6
emissivity_primary = 0.8
emissivity_secondary = 0.8
quadrature = true
normal_smoothing_distance = 0.1
[]
[]
[BCs]
[no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[]
[no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 20
value = 0.0
[]
[no_x_wedge]
type = DirichletBC
variable = disp_x
boundary = 98
value = 0.0
[]
[no_z_wedge]
type = DirichletBC
variable = disp_z
boundary = 99
value = 0.0
[]
[Pressure]
[coolantPressure]
boundary = 2
factor = 15.5e6
function = coolant_pressure_ramp
[]
[]
[PlenumPressure]
[plenumPressure]
boundary = 9
initial_pressure = 2.0e6
startup_time = 0.0
material_input = fis_gas_released_model
output_initial_moles = initial_moles
R = 8.3143
temperature = interior_temp
volume = gas_volume
output = plenum_pressure
[]
[]
[]
[CoolantChannel]
[convective_clad_surface]
boundary = 2
variable = temp
inlet_temperature = 580 # K
inlet_pressure = 15.5e6 # PA
inlet_massflux = 3880 # kg/m^2-sec
rod_diameter = 0.95e-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 = 3
thermal_conductivity_model = NFIR
temperature = temp
burnup_function = burnup
initial_porosity = 0.05
[]
[fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = 3
[]
[fuel_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = 3
youngs_modulus = 2.0e11
poissons_ratio = 0.345
[]
[fuel_relocation]
type = UO2RelocationEigenstrain
block = 3
burnup_function = burnup
diameter = 0.00836
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
diametral_gap =50.0e-6
relocation_activation1 = 5000
burnup_relocation_stop = 0.02
eigenstrain_name = 'fuel_relocation_eigenstrain'
[]
[fuel_swelling]
type = UO2VolumetricSwellingEigenstrain
block = 3
burnup_function = burnup
temperature = temp
initial_fuel_density = 10431.0
eigenstrain_name = 'fuel_volumetric_swelling_eigenstrain'
[]
[fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = 3
thermal_expansion_coeff = 10.0e-6
temperature = temp
stress_free_temperature = 580.0
eigenstrain_name = 'fuel_thermal_strain'
[]
[fission_gas_release]
type = UO2Sifgrs
block = 3
temperature = temp
fission_rate = fission_rate
grain_radius = grain_radius
gbs_model = true
burnup = burnup
diff_coeff_option = TURNBULL_D1_D2
[]
[fuel_density]
type = StrainAdjustedDensity
block = 3
strain_free_density = ${initial_fuel_density}
[]
[clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[]
[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 = 580.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 = 6551.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'
line_search = 'none'
l_max_its = 25
nl_max_its = 40
nl_rel_tol = 1e-5
nl_abs_tol = 1e-8
start_time = -200
dtmax = 1.0e6
dtmin = 1.0
end_time = 3.0e7
automatic_scaling = true
compute_scaling_once = true
[TimeStepper]
type = IterationAdaptiveDT
dt = 200
optimal_iterations = 15
iteration_window = 3
growth_factor = 2.0
cutback_factor = 0.5
[]
[Quadrature]
order = fifth
side_order = seventh
[]
[]
[Postprocessors]
[clad_inner_vol]
type = InternalVolume
boundary = 7
scale_factor = 4.0 # Quarter-Symmetry Model Correction
execute_on = 'INITIAL TIMESTEP_END'
[]
[pellet_volume]
type = InternalVolume
boundary = 8
scale_factor = 4.0 # Quarter-Symmetry Model Correction
execute_on = 'INITIAL TIMESTEP_END'
[]
[gas_volume]
type = InternalVolume
boundary = 9
scale_factor = 4.0 # Quarter-Symmetry Model Correction
execute_on = 'initial linear'
[]
[interior_temp]
type = SideAverageValue
boundary = 7
variable = temp
execute_on = 'initial linear'
[]
[fis_gas_produced_model]
type = ElementIntegralFisGasGeneratedSifgrs
block = 3
execute_on = 'initial timestep_end'
[]
[fis_gas_produced] # Scaled PostProcessor for Quarter-Symmetry Model
type = ScalePostprocessor
value = fis_gas_produced_model
scaling_factor = 4.0
execute_on = 'initial timestep_end'
[]
[fis_gas_released_model]
type = ElementIntegralFisGasReleasedSifgrs
block = 3
execute_on = 'initial timestep_end'
[]
[fission_gas_released] # Scaled PostProcessor for Quarter-Symmetry Model
type = ScalePostprocessor
value = fis_gas_released_model
scaling_factor = 4.0
execute_on = 'initial timestep_end'
[]
[fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = 3
outputs = exodus
[]
[fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = 3
outputs = exodus
[]
[power_history]
type = FunctionValuePostprocessor
function = power_history
execute_on = 'initial timestep_end'
[]
[flux_from_clad_model]
type = SideDiffusiveFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[]
[flux_from_clad] # Scaled PostProcessor for Quarter-Symmetry Model
type = ScalePostprocessor
value = flux_from_clad_model
scaling_factor = 4.0
execute_on = 'initial timestep_end'
[]
[flux_from_fuel_model]
type = SideDiffusiveFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[]
[flux_from_fuel] # Scaled PostProcessor for Quarter-Symmetry Model
type = ScalePostprocessor
value = flux_from_fuel_model
scaling_factor = 4.0
execute_on = 'initial timestep_end'
[]
[average_burnup]
type = RodAverageBurnup
burnup_function = burnup
[]
[average_fissionrate]
type = ElementAverageValue
block = 3
variable = fission_rate
execute_on = 'initial timestep_end'
[]
[rod_total_power_model]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = 3
execute_on = 'initial timestep_end'
[]
[rod_total_power] # Scaled PostProcessor for Quarter-Symmetry Model
type = ScalePostprocessor
value = rod_total_power_model
scaling_factor = 4.0
execute_on = 'initial timestep_end'
[]
[rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 0.03
execute_on = 'initial timestep_end'
[]
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
time_step_interval = 1
exodus = true
[console]
type = Console
solve_log = true
output_linear = true
max_rows = 25
[]
[chkfile]
type = CSV
execute_on = FINAL
show = 'plenum_pressure interior_temp gas_volume'
[]
[]
(test/tests/mox_thermal/Duriez/test.i)
# This test case is prepared to test the thermal conductivity using the Duriez MOX model.
#
# The temperature is ramped on all BCs of the unit line from 500 K to 3000K over 100 Ms.
# The fission rate is 2e19 n/m3/s, so that the burnup goes from 0 to
# ~ 8.6 at.% (82 MWd/kgU) at the end of the simulation.
#
# Thermal conductivity of MOX fuel at 95%TD with a 7% Pu content is computed
# using the Duriez MOX thermal conductivity model.
# The BISON predictions (BISON_k) compared to the expected results (expected_k)
# are summarized (see: post_processing.py --> comparison_results.csv) as:
#
# expected_k BISON_k percent_error
# 4.502311344 4.502311344 -2.22E-14
# 4.331074842 4.331074842 -1.04E-12
# 4.173470398 4.173470398 9.33E-13
# 4.028218943 4.028218943 7.11E-13
# 3.893948687 3.893948687 9.55E-13
[GlobalParams]
order = FIRST
family = LAGRANGE
[]
[Mesh]
[geom]
type = GeneratedMeshGenerator
dim = 1
elem_type= EDGE2
[]
[]
[Variables]
[T]
initial_condition = 500
[]
[]
[AuxVariables]
[fission_rate]
[]
[burnup]
[]
[th_cond]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = T
[]
[heat_ie]
type = HeatConductionTimeDerivative
variable = T
[]
[heat_source]
type = NeutronHeatSource
variable = T
energy_per_fission = 3.2e-11
fission_rate = fission_rate
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable= fission_rate
value = 2e19 # Standard fission_rate fissions/m^3/s
execute_on = 'initial timestep_begin'
[]
[th_cond]
type = MaterialRealAux
variable = th_cond
property = thermal_conductivity
execute_on = 'initial linear'
[]
[burnup]
type = BurnupAux
variable = burnup
density = 10431.0 # 95% TD
fission_rate = fission_rate
execute_on = timestep_begin
[]
[]
[Functions]
[temp_ramp]
type = PiecewiseLinear
x = '0.0 100.e6'
y = '500 3000'
[]
[]
[BCs]
[VariableT]
type = FunctionDirichletBC
boundary = 'left right'
variable = T
function = temp_ramp
[]
[]
[Materials]
[fuel_thermal]
type = MOXThermal
temperature = T
burnup = burnup
thermal_conductivity_model = DURIEZ
oxy_to_metal_ratio = 2.0
initial_porosity = 0.05
Pu_content = 0.07
[]
[density]
type = ParsedMaterial
property_name = density
expression = 10431.0
[]
[]
[Executioner]
type = Transient
start_time = 0
num_steps = 100
dt = 1.0e6
[]
[Postprocessors]
[avg_th_cond]
type = ElementAverageValue
variable = th_cond
execute_on = 'initial timestep_end'
[]
[average_rod_burnup]
type = ElementAverageValue
variable = burnup
execute_on = timestep_end
[]
[average_fuel_T]
type = ElementAverageValue
variable = T
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
csv = true
[]
(test/tests/sifgrs/uo2/polypole2_ext_fsngas.i)
# This input is to test polypole-2 for UO2Sifgrs coupled to an external fission gas source
[Mesh]
[mesh]
type = FileMeshGenerator
file = 1hex8_10mm_cube.e
[]
[]
[Functions]
[temperature_function]
type = ParsedFunction
expression = '1700'
[]
[fission_rate_function]
type = ParsedFunction
expression = '2.5e19'
[]
[]
[Variables]
[temperature]
initial_condition = 1700
[]
[]
[AuxVariables]
[fission_rate]
[]
[ext_gas]
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temperature
diffusion_coefficient = 1
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
value = 1
fission_rate_function = fission_rate_function
execute_on = 'initial timestep_begin'
[]
[ext_gas_aux]
type = ParsedAux
variable = ext_gas
coupled_variables = 'fission_rate'
use_xyzt = true
expression = 'fission_rate * 0.3017 / 6.02214076e23 * t'
[]
[]
[BCs]
[bottom_temperature]
type = FunctionDirichletBC
variable = temperature
function = temperature_function
boundary = '1 2'
[]
[]
[Materials]
[fission_gas_behavior]
type = UO2Sifgrs
skip_bdr_model = true
temperature = temperature
fission_rate = fission_rate
fission_gas_conc = ext_gas
ig_diff_algorithm = POLYPOLE2
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
l_tol = 1e-12
nl_abs_tol = 5e-16
nl_rel_tol = 1e-17
start_time = 0.0
num_steps = 50
dt = 3e6
[]
[Postprocessors]
[fis_gas_generated]
type = ElementIntegralMaterialProperty
mat_prop = gas_concentration_generated_total
[]
[fis_gas_released]
type = ElementIntegralMaterialProperty
mat_prop = gas_concentration_release_total
[]
[fgr_percent]
type = FGRPercent
fission_gas_released = fis_gas_released
fission_gas_generated = fis_gas_generated
[]
[intrag_swelling]
type = ElementIntegralMaterialProperty
mat_prop = deltav_v0_intra_total
[]
[gas_amount_bubble_intra]
type = ElementIntegralMaterialProperty
mat_prop = gas_concentration_bubble_intra
[]
[gas_amount_matrix_intra]
type = ElementIntegralMaterialProperty
mat_prop = gas_concentration_matrix_intra
[]
[bubble_amount_intra]
type = ElementIntegralMaterialProperty
mat_prop = bubble_concentration_intra
[]
[bubble_radius_intra_average]
type = ElementAverageMaterialProperty
mat_prop = bubble_radius_intra
[]
[temperature]
type = ElementAverageValue
variable = temperature
[]
[fission_rate]
type = ElementAverageValue
variable = fission_rate
[]
[]
[Outputs]
exodus = true
hide = 'ext_gas'
[]
(test/tests/ifba_he_production/doc/fill_gas_helium.i)
#
# 2-D RZ One Pellet Test - Using Helium as fill gas
#
# This test is of a single pellet with cladding and a specified initial
# pressure of He fill gas.
#
# This model results in a lower limit for the interior_temp due to the type of
# fill gas used.
#
[GlobalParams]
density = 10431.0 #95% TD (TD = 10980)
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission (205 Mev)
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[Mesh]
coord_type = RZ
[smeared_pellet_mesh]
type = FuelPinMeshGenerator
clad_mesh_density = customize
pellet_mesh_density = customize
ny_p = 4
nx_p = 6
nx_c = 3
ny_cu = 3
ny_c = 4
ny_cl = 3
clad_thickness = 5.6e-4
pellet_outer_radius = 0.0041
pellet_height = 0.01
pellet_quantity = 1
clad_bot_gap_height = 1e-3
bottom_clad_height = 2.24e-3
top_clad_height = 2.24e-3
clad_gap_width = 8e-5
plenum_fuel_ratio = 0.150
elem_type = QUAD8
[]
displacements = 'disp_x disp_y'
partitioner = centroid
centroid_partitioner_direction = y
patch_size = 5
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[temp]
initial_condition = 298
[]
[]
[AuxVariables]
[fission_rate]
block = '3'
[]
[burnup]
block = '3'
[]
[fast_neutron_flux]
[]
[fast_neutron_fluence]
[]
[grain_radius]
block = '3'
initial_condition = 5e-6 # must be the same as the initial value in Sifgr
[]
[gas_swell]
order = CONSTANT
family = MONOMIAL
block = '3'
[]
[gap_conductance]
order = CONSTANT
family = MONOMIAL
[]
[pid]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[power_history]
# CoolantChannel requires this to have units while axial_peaking_factors must be normalized.
type = PiecewiseLinear
x = '0 1.0e4 1.0e8'
y = '0 1.0 1.0'
scale_factor = 20e3 # 20 kW/m peak power.
[]
[axial_peaking_factors]
type = ParsedFunction
expression = 1
[]
[coolant_pressure_ramp]
type = PiecewiseLinear
x = '0 10000'
y = '0 1'
[]
[q] # this is for fuel_relocation
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[]
[]
[SolidMechanics]
[solid]
temperature = temp
extra_vector_tags = 'ref'
[]
[]
[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'
fission_rate = fission_rate
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
block = '3'
#convert W/m from power profile to fission/m**3-s
#calculated as 1/(energy_per_fission*area)
#using energy_per_fission = 3.2e-11, consistent with 200 MeV/fission
value = 5.3548e+14
fission_rate_function = q
[]
[burnup]
type = BurnupAux
variable = burnup
block = '3'
fission_rate = fission_rate
molecular_weight = 0.270
[]
[fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
block = 1
rod_ave_lin_pow = power_history
axial_power_profile = axial_peaking_factors
# If you divide flux/power, you get this constant factor
factor = 2.34e+13
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
[]
[grain_radius]
type = GrainRadiusAux
block = '3'
variable = grain_radius
temperature = temp
execute_on = linear
[]
[gas_swell]
type = MaterialRealAux
block = '3'
variable = gas_swell
property = deltav_v0_bd
execute_on = timestep_end
[]
[pid]
type = ProcessorIDAux
variable = pid
[]
[gap_cond]
type = MaterialRealAux
property = gap_conductance
variable = gap_conductance
boundary = 10
[]
[]
[Contact]
[pellet_clad_mechanical]
primary = 5
secondary = 10
penalty = 1e+14 #1e7
model = frictionless
tangential_tolerance = 5e-4
normal_smoothing_distance = 0.1
normalize_penalty = true
[]
[]
[ThermalContact]
[pellet_clad_thermal]
type = GasGapHeatTransfer
variable = temp
primary = 5
secondary = 10
gas_released = fis_gas_released
initial_moles = initial_moles
jump_distance_model = LANNING
layer_thickness = layer_thickness
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
roughness_coef = 3.2
roughness_secondary = 1e-6
roughness_primary = 2e-6
emissivity_primary = 0.8
emissivity_secondary = 0.8
quadrature = true
normal_smoothing_distance = 0.1
[]
[]
[BCs]
[no_x_all]
type = DirichletBC
variable = disp_x
boundary = 1003
value = 0.0
[]
# pin entire clad bottom in y
[no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[]
# pin fuel bottom in y
[no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 20
value = 0.0
[]
# pin fuel axis in x and z
[no_x_fuel]
type = DirichletBC
variable = disp_x
boundary = 1005
value = 0.0
[]
[Pressure]
# apply coolant pressure on clad outer walls
[coolantPressure]
boundary = '2'
factor = 15.5e6
function = coolant_pressure_ramp
[]
[]
[PlenumPressure]
# apply plenum pressure on clad inner walls and pellet surfaces
[plenumPressure]
boundary = 9
initial_pressure = 0.50e6
startup_time = 0.0
material_input = fis_gas_released
output_initial_moles = initial_moles
R = 8.3143
temperature = interior_temp
volume = gas_volume
output = plenum_pressure
displacements = 'disp_x disp_y'
extra_vector_tags = 'ref'
execute_on = 'initial linear'
[]
[]
[]
[CoolantChannel]
[convective_clad_surface]
boundary = '2'
variable = temp
inlet_temperature = 580 # K
inlet_pressure = 15.5e6 # PA
inlet_massflux = 3880 # kg/m^2-sec
rod_diameter = 0.95e-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 = '3'
temperature = temp
burnup = burnup
thermal_conductivity_model = NFIR
[]
[fuel_swelling]
type = VSwellingUO2
block = '3'
temperature = temp
burnup = burnup
gas_swelling_type = sifgrs
[]
[fuel_solid_mechanics_elastic]
type = Elastic
block = '3'
temperature = temp
youngs_modulus = 2.e11
poissons_ratio = 0.345
thermal_expansion = 10.0e-6
dep_matl_props = deltav_v0_bd
[]
[fission_gas_release]
type = Sifgrs
block = '3'
temperature = temp
fission_rate = fission_rate
grain_radius = grain_radius
gbs_model = true
burnup = burnup
diff_coeff_option = TURNBULL_D1_D2
[]
[clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[]
[clad_solid_mechanics]
type = SolidModel
block = 1
temperature = temp
youngs_modulus = 7.5e10
poissons_ratio = 0.3
thermal_expansion = 5.0e-6
constitutive_model = clad_plasticity
[]
[clad_growth]
type = IrradiationGrowthZr4
block = 1
fast_neutron_fluence = fast_neutron_fluence
growth_direction = 1
[]
[clad_plasticity]
type = IsotropicPlasticity
block = 1
temperature = temp
yield_stress = 550e6
hardening_constant = 2.5e9
[]
[clad_density]
type = StrainAdjustedDensity
block = 1
strain_free_density = 6551.0
[]
[fuel_density]
type = StrainAdjustedDensity
block = '3'
[]
[]
[Dampers]
[limitT]
type = MaxIncrement
variable = temp
max_increment = 25.0
[]
[]
[Preconditioning]
[SMP]
type = SMP
off_diag_row = 'disp_x'
off_diag_column = 'disp_x'
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
l_max_its = 25
nl_max_its = 40
nl_rel_tol = 1e-5
nl_abs_tol = 1e-8
dtmax = 1.0e6
dtmin = 1.0
end_time = 5.3e7 # 1.7 years (~3% burnup)
[TimeStepper]
type = IterationAdaptiveDT
dt = 1e3
optimal_iterations = 30
iteration_window = 4
time_t = '0 1e4 1e8'
time_dt = '1e4 1e5 1e6'
timestep_limiting_function = power_history
force_step_every_function_point = true
[]
[Quadrature]
order = fifth
side_order = seventh
[]
verbose = true
[]
[Postprocessors]
[clad_inner_vol]
type = InternalVolume
boundary = 7
execute_on = 'initial timestep_end'
[]
[pellet_volume]
type = InternalVolume
boundary = 8
execute_on = 'initial timestep_end'
[]
[gas_volume]
type = InternalVolume
boundary = 9
execute_on = 'initial timestep_end'
[]
[interior_temp]
type = SideAverageValue
boundary = 9 # cladding interior and pellet exterior
variable = temp
execute_on = 'initial timestep_end'
[]
[fis_gas_produced] # fission gas produced (moles)
type = ElementIntegralFisGasGeneratedSifgrs
block = '3'
[]
[fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = '3'
[]
[fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = '3'
[]
[fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = '3'
[]
[power_history]
type = FunctionValuePostprocessor
function = power_history
[]
[flux_from_clad]
type = SideDiffusiveFluxIntegral
variable = temp
boundary = 5
diffusivity = thermal_conductivity
[]
[flux_from_fuel]
type = SideDiffusiveFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[]
[dt]
type = TimestepSize
[]
[residual]
type = Residual
[]
[nl_its]
type = NumNonlinearIterations
[]
[lin_its]
type = NumLinearIterations
[]
[average_burnup]
type = ElementAverageValue
block = '3'
variable = burnup
[]
[burnup]
type = ElementAverageValue
block = '3'
variable = burnup
[]
[average_fissionrate]
type = ElementAverageValue
block = '3'
variable = fission_rate
[]
[rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = '3'
[]
[rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 0.01 # change: length of fuel stack in meters (1 pellet height)
[]
[]
[Outputs]
time_step_interval = 1
exodus = false
[console]
type = Console
solve_log = true
output_linear = true
max_rows = 25
[]
[out]
type = CSV
delimiter = ' '
[]
[]
(test/tests/sifgrs/uo2/ad_first_stage_restart1.i)
# This test is for evaluating the first stage (i.e., the intra-granular diffusion calculation) of the Sifgrs fission gas behavior model.
# The first stage is isolated by setting the fractional bubble coverage at grain boundary saturation to zero (saturation_coverage = 0). Under this condition (i.e. gas reaching the grain boundaries goes instantaneously to the plenum), the ratio of fission gas released to fission gas generated calculated by the model should compare very closely with the analytical expression for fractional fission gas release fraction from the grains published by Speight (Nuclear Science and Engineering 37, 180, 1969). The Speight equation for fission gas release fraction (released/produced) is
#
# parameters:
# n and no are summation integers
# a = grain radius in m
# pi = the number pi 3.14159...
# D = effective diffusion coefficient in m^2/s where D includes the effects of intragranular trapping and resolution (see White, JNM 118, 1, 1983, and the
# fgr_diffusion_coefficient_test in BISON for a description)
# t = time in seconds
#
# 6*a^2
# f = 1 - sum(n=1, to no) ---------------- * {1 - exp -[D*n^2*pi^2*t/a^2]}
# pi^4 * D*t*n^4
#
# For no = 1, D = 4.123e-19 m^2/s, a = 1e-5 m, t = 1e6 s, f = 0.596.
# For no = 50, and the same parameters defined above, f = 0.1388
#
# With the output from this test, if one calculates fission gas released / fission gas produced at
# t = 1.e+06, the result should be 0.1032, which compares well with the analytical solution from Speight.
#
# See also the sheet sifgrs_first_stage of the attached excel file (regression_tests_sifgrs.xlsx).
# Check of fission gas produced
# beta = rate of gas production per unit volume by fission
# beta * time * volume = gas produced
# The following parameters are used to calculate beta
#
# t = time in seconds = 5e7
# Avogadros number = 6.023e23 atoms/mol
# FY = fractional yield = fraction of fission gas atoms per fission = 0.3017 atoms/fission
# Y = yield = FY/Avogadros number = atoms/fission / atoms/mol to give mols/fission
# F = fission rate = fissions/m^3*s = 2.5e19
# beta = F*Y = fissions/m^3s * mols/fission = mols/m^3*s
# gas produced = beta * time * volume
# For this test problem, volume = (0.01m)^3 = 1e-6m^3 = volume of single finite element in this problem
#
# Y = 0.3017/6.023e23 = 5.0091e-25 mol/fission
# beta = 2.5e19*5.009e-25 = 1.25e-5 mol/m^3s
# gas produced = 1.25e-5*5e7*1e-6 = 6.26e-4 mols
#
[Mesh]
[mesh]
type = FileMeshGenerator
file = 1hex8_10mm_cube.e
[]
[]
[Functions]
[Temp_func]
type = ParsedFunction
expression = '1700'
[]
[Fiss_func]
type = ParsedFunction
expression = '2.5e19'
[]
[]
[Variables]
[T]
order = FIRST
family = LAGRANGE
initial_condition = 1700
[]
[]
[AuxVariables]
[fission_rate]
order = FIRST
family = LAGRANGE
[]
[fract_FGR_analytical]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[heat]
type = ADHeatConduction
variable = T
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
value = 1
fission_rate_function = Fiss_func
execute_on = 'initial timestep_begin'
[]
[FRA]
type = ADMaterialRealAux
variable = fract_FGR_analytical
property = fract_FGR_analytical
[]
[]
[BCs]
[bottom_T]
type = ADFunctionDirichletBC
variable = T
function = Temp_func
boundary = 1
[]
[]
[Materials]
[UO2]
type = ADHeatConductionMaterial
block = 1
thermal_conductivity = 1.0
specific_heat = 1.0
[]
[fission_gas_behavior]
type = ADUO2Sifgrs
block = 1
saturation_coverage = 0
temperature = T
fission_rate = fission_rate
testing_output = true
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
l_tol = 1e-4
nl_abs_tol = 1e-5
nl_rel_tol = 1e-5
start_time = 0.0
num_steps = 28 #50
dt = 1e6
[]
[Postprocessors]
[fis_gas_generated]
type = ADElementIntegralFisGasGeneratedSifgrs
block = 1
execute_on = 'initial timestep_end'
[]
[fis_gas_released]
type = ADElementIntegralFisGasReleasedSifgrs
block = 1
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
[out]
type = Exodus
[]
[console]
type = Console
execute_on = 'initial failed linear nonlinear timestep_end'
[]
[checkpoint]
type = Checkpoint
num_files = 1
[]
[]
[Problem]
[]
(assessment/MOX/JOYO/MK-I/analysis/MK-I_50MW_master_new_bubble_gb_lim.i)
initial_fuel_density = 10836.8
[GlobalParams]
density = ${initial_fuel_density}
initial_porosity = 0.065
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
volumetric_locking_correction = false
displacements = 'disp_x disp_y'
[]
[Problem]
type = ReferenceResidualProblem
extra_tag_vectors = 'ref'
reference_vector = 'ref'
[]
[Mesh]
coord_type = RZ
[smeared_pellet_mesh]
type = FuelPinMeshGenerator
pellet_quantity = 1
pellet_height = 0.6
pellet_outer_radius = 0.0027
pellet_mesh_density = customize
clad_mesh_density = customize
clad_gap_width = 0.000100
clad_thickness = 0.00035
clad_bot_gap_height = 1.0e-3
bottom_clad_height = 2.24e-3
top_clad_height = 2.24e-3
clad_top_gap_height = 0.599
elem_type = QUAD8
nx_c = 4
ny_c = 200
nx_p = 20
ny_p = 200
ny_cu = 3
ny_cl = 3
[]
patch_size = 50
patch_update_strategy = iteration
partitioner = centroid
centroid_partitioner_direction = y
[]
[UserObjects]
[pin_geometry]
type = FuelPinGeometry
[]
[]
[Variables]
[temp]
initial_condition = 295.0
[]
[]
[AuxVariables]
[pore]
[]
[fission_rate]
block = pellet
[]
[burnup]
block = pellet
[]
[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
[]
[vcn_bdr_2]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[atm_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[vcn_bbl_bdr]
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
[]
[vol_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[GBCoverage]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[eff_diff_coeff]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[deltav_v0_bd]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[radial_strain]
order = CONSTANT
family = MONOMIAL
[]
[effective_creep_strain]
block = clad
order = CONSTANT
family = MONOMIAL
[]
[gap_cond]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[power_history] #related to the LHGR at the midplane
type = PiecewiseLinear
x = '0 70000 17153028'
y = '0 25577 25577'
[]
[fast_neutron_flux_function]
type = PiecewiseLinear
x = '0 70000 17153028'
y = '0 1.2e+19 1.2e+19'
[]
[axial_peaking_factors]
type = PiecewiseBilinear
x = '0 0.071 0.146 0.221 0.296 0.37 0.443 0.566'
y = '0 17153028'
z = '0.889 1.041 1.152 1.173 1.129 0.971 0.782 0.672 0.889 1.041 1.152 1.173 1.129 0.971 0.782 0.672'
scale_factor = 1
axis = 1
[]
[q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[]
[average_power_history]
type = PiecewiseLinear
x = '0 70000 17153028'
y = '0 21000 21000'
[]
[clad_surface_temp]
type = PiecewiseBilinear
x = '0 0.075 0.15 0.225 0.3 0.375 0.45 0.525 0.6'
y = '0 17153028'
z = '295 295 295 295 295 295 295 295 295 499.9 509.1 517.8 525.42 532.71 540.29 547.7 552.3 554.81'
scale_factor = 1
axis = 1
[]
[pressure_ramp]
type = PiecewiseLinear
x = '0 1'
y = '1 1'
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[pellets]
block = pellet
add_variables = true
strain = FINITE
eigenstrain_names = 'fuel_thermal_strain fuel_volumetric_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
use_finite_deform_jacobian = true
extra_vector_tags = 'ref'
[]
[clad]
block = clad
add_variables = true
strain = FINITE
eigenstrain_names = 'clad_thermal_eigenstrain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
use_finite_deform_jacobian = true
extra_vector_tags = 'ref'
[]
[]
[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
variable = temp
block = pellet
fission_rate = fission_rate
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[fission_rate]
type = FissionRateGeneral
fission_rate_formulation = MOX
variable = fission_rate
block = pellet
initial_porosity = 0.065
axial_power_profile = axial_peaking_factors
rod_ave_lin_pow = power_history
pellet_diameter = 0.0054
execute_on = timestep_begin
porosity = pore
[]
[burnup]
type = BurnupAux
block = pellet
fission_rate = fission_rate
variable = burnup
execute_on = timestep_begin
[]
[fggen]
type = MaterialRealAux
variable = gas_gen_3
property = gas_concentration_generated_total
execute_on = timestep_end
[]
[fggrn]
type = MaterialRealAux
variable = gas_grn_3
property = gas_concentration_intra_total
execute_on = timestep_end
[]
[fgbdr]
type = MaterialRealAux
variable = gas_bdr_3
property = gas_concentration_GB_bubble_volume
execute_on = timestep_end
[]
[fgrel]
type = MaterialRealAux
variable = gas_rel_3
property = gas_concentration_release_total
execute_on = timestep_end
[]
[nbbl2]
type = MaterialRealAux
variable = bbl_bdr_2
property = bubble_GB_surface_density
execute_on = timestep_end
[]
[nvcn2]
type = MaterialRealAux
variable = vcn_bdr_2
property = vacancy_concentration_GB_surface
execute_on = timestep_end
[]
[atmbbl]
type = MaterialRealAux
variable = atm_bbl_bdr
property = atom_per_bubble_GB
execute_on = timestep_end
[]
[vcnbbl]
type = MaterialRealAux
variable = vcn_bbl_bdr
property = vacancy_per_bubble_GB
execute_on = timestep_end
[]
[prsbbl]
type = MaterialRealAux
variable = prs_bbl_bdr
property = bubble_GB_pressure
execute_on = timestep_end
[]
[prseqbbl]
type = MaterialRealAux
variable = prseq_bbl_bdr
property = bubble_GB_pressure_equilibrium
execute_on = timestep_end
[]
[radbbl]
type = MaterialRealAux
variable = rad_bbl_bdr
property = bubble_radius_GB
execute_on = timestep_end
[]
[volbbl]
type = MaterialRealAux
variable = vol_bbl_bdr
property = bubble_GB_volume
execute_on = timestep_end
[]
[frcvrg]
type = MaterialRealAux
variable = GBCoverage
property = GBCoverage
execute_on = timestep_end
[]
[diffc]
type = MaterialRealAux
variable = eff_diff_coeff
property = eff_diff_coeff
execute_on = timestep_end
[]
[dvv0bd]
type = MaterialRealAux
variable = deltav_v0_bd
property = deltav_v0_bubble_GB
execute_on = timestep_end
[]
[radial_strain]
type = RankTwoAux
rank_two_tensor = total_strain
variable = radial_strain
index_i = 0
index_j = 0
execute_on = timestep_end
[]
[effective_creep_strain]
type = MaterialRealAux
property = effective_creep_strain
variable = effective_creep_strain
block = clad
execute_on = timestep_end
[]
[conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
execute_on = 'linear'
[]
[]
[Contact]
[pellet_clad_mechanical]
primary = 5
secondary = 10
formulation = kinematic
model = frictionless
penalty = 1e7
[]
[]
[ThermalContact]
[thermal_contact]
type = GasGapHeatTransfer
variable = temp
primary = 5
secondary = 10
initial_moles = initial_moles
gas_released = fis_gas_released
contact_pressure = contact_pressure
quadrature = true
[]
[]
[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 = 20
value = 0.0
[]
[temp_clad_out]
type = FunctionDirichletBC
variable = temp
boundary = '2'
function = clad_surface_temp
[]
[Pressure]
[coolantPressure]
boundary = '1 2 3'
factor = 101325
function = pressure_ramp
[]
[]
[PlenumPressure]
[plenumPressure]
boundary = 9
initial_pressure = 300000
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = ave_temp_interior
volume = gas_volume
material_input = fis_gas_released
output = plenum_pressure
[]
[]
[]
[Materials]
[fast_neutron_flux]
type = FastNeutronFlux
calculate_fluence = true
block = clad
flux_function = fast_neutron_flux_function
[]
[fuel_thermal]
type = MAMOXThermal
block = pellet
temperature = temp
Am_content = 0.0
Np_content = 0.0
porosity = pore
output_properties = 'thermal_conductivity'
[]
[fuel_elasticity_tensor]
type = MAMOXElasticityTensor
block = pellet
[]
[elastic_stress]
type = ComputeFiniteStrainElasticStress
block = pellet
[]
[fuel_thermal_expansion]
type = MAMOXThermalExpansionEigenstrain
block = pellet
temperature = temp
stress_free_temperature = 295.0
oxygen_to_metal_ratio = 1.98
eigenstrain_name = fuel_thermal_strain
[]
[fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
block = pellet
temperature = temp
burnup = burnup
initial_fuel_density = 10836.8
eigenstrain_name = fuel_volumetric_strain
[]
[clad_thermal]
type = SS316Thermal
block = clad
temperature = temp
[]
[clad_density]
type = StrainAdjustedDensity
block = clad
strain_free_density = 8000
[]
[clad_elasticity_tensor]
type = SS316ElasticityTensor
block = clad
temperature = temp
elastic_constants_model = legacy_ifr
[]
[thermal_expansion]
type = SS316ThermalExpansionEigenstrain
block = clad
temperature = temp
stress_free_temperature = 295.0
eigenstrain_name = clad_thermal_eigenstrain
[]
[clad_ss316creep]
type = SS316CreepUpdate
block = clad
temperature = temp
fast_neutron_flux = fast_neutron_flux
[]
[clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'clad_ss316creep'
block = clad
[]
[fission_gas_release]
type = UO2Sifgrs
block = pellet
temperature = temp
burnup = burnup
diff_coeff_option = TURNBULL_D1_4D2_4D3
fission_rate = fission_rate
grain_radius_const = 8.01e-6 #I'm keeping the grain radius const because the grain growth in MOX is probably different due to high Temp
bubble_gb_limit = 1.0e+11
[]
[fuel_density]
type = StrainAdjustedDensity
block = pellet
strain_free_density = ${initial_fuel_density}
[]
[]
[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'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
fixed_point_abs_tol = 1e-5
fixed_point_rel_tol = 1e-5
fixed_point_max_its = 1
l_max_its = 70
l_tol = 8e-3
nl_max_its = 70
nl_rel_tol = 1e-5
nl_abs_tol = 1e-5
start_time = 0
n_startup_steps = 1
end_time = 17153028
dtmax = 1e6
dtmin = 0.25
[TimeStepper]
type = IterationAdaptiveDT
dt = 5000
optimal_iterations = 15
iteration_window = 2
linear_iteration_ratio = 100
growth_factor = 2
cutback_factor = .5
force_step_every_function_point = true
timestep_limiting_function = power_history
[]
[]
[Postprocessors]
[ave_temp_interior]
type = SideAverageValue
boundary = 9
variable = temp
execute_on = 'initial linear'
[]
[average_burnup]
type = ElementAverageValue
block = pellet
variable = burnup
[]
[clad_inner_vol]
type = InternalVolume
boundary = 7
execute_on = 'initial timestep_end'
[]
[pellet_volume]
type = InternalVolume
boundary = 8
execute_on = 'initial timestep_end'
[]
[avg_clad_temp]
type = SideAverageValue
boundary = 7
variable = temp
execute_on = 'initial timestep_end'
[]
[fis_gas_produced]
type = ElementIntegralFisGasGeneratedSifgrs
block = pellet
execute_on = 'linear'
[]
[fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = pellet
execute_on = 'linear'
[]
[fis_gas_released_percentage]
type = FGRPercent
fission_gas_generated = fis_gas_produced
fission_gas_released = fis_gas_released
execute_on = 'linear'
[]
[fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = pellet
execute_on = 'linear'
[]
[fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = pellet
execute_on = 'linear'
[]
[gas_volume]
type = InternalVolume
boundary = 9
execute_on = 'initial linear'
[]
[flux_from_fuel]
type = SideDiffusiveFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[]
[rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = pellet
[]
[rod_input_power]
type = FunctionValuePostprocessor
function = average_power_history
scale_factor = 0.6 # rod height
[]
[average_vonMises_fuel]
type = ElementAverageValue
variable = vonmises_stress
block = pellet
[]
[average_vonMises_clad]
type = ElementAverageValue
variable = vonmises_stress
block = clad
[]
[average_strain_rr_fuel]
type = ElementAverageValue
variable = radial_strain
block = pellet
[]
[average_strain_rr_clad]
type = ElementAverageValue
variable = radial_strain
block = clad
[]
[average_creep_strain_clad]
type = ElementAverageValue
variable = effective_creep_strain
block = clad
[]
[ave_pore]
type = ElementAverageValue
variable = pore
[]
[max_pore]
type = NodalExtremeValue
value_type = max
variable = pore
[]
[min_pore]
type = NodalExtremeValue
value_type = min
variable = pore
[]
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = true
color = true
csv = true
[console]
type = Console
max_rows = 25
[]
[chkfile]
type = CSV
execute_on = FINAL
show = 'ave_temp_interior fis_gas_released_percentage max_pore'
[]
[]
[MultiApps]
[sub]
type = TransientMultiApp
app_type = BisonApp
execute_on = timestep_end
catch_up = true
max_catch_up_steps = 10
positions_file = positions.txt
input_files = MK-I_50MW_sub_new_bubble_gb_lim.i
[]
[]
[Transfers]
[temp_to_sub]
type = MultiAppProjectionTransfer
to_multi_app = sub
source_variable = temp
variable = temp
[]
[pore_from_sub]
type = MultiAppGeometricInterpolationTransfer
from_multi_app = sub
source_variable = pore
variable = pore
[]
[]
[Debug]
show_var_residual_norms = true
show_var_residual = 'temp disp_x disp_y'
[]
(test/tests/high_burnup_structure_formation/hbs_formation_constant_temperature.i)
#--------------------------------------------------------------------------------------------------------------------------------
#
# This is a test for the high burnup structure (HBS) formation model implemented in the HighBurnupStructureFormation routine.
# The model computes the volume fraction of restructured fuel (HBS) as a function of the local effective burnup and temperature.
# The effective burnup is defined as the burnup accumulated below a threshold temperature for thermal annealing of defects.
# In this test, the temperature is kept constant below the threshold temperature of 1273.15 K. The fission rate is also constant.
#
# - Geometry: cube of 10 mm side
#
# - Single element
#
# - Temperature = 1173.15 K
#
# - Fission rate = 2.e+19/m^3s
#
# - Irradiation time: 2.0e+08 s
#
# With these settings, the effective burnup coincides with the burnup and increases linearly, reaching a value of 0.1721 FIMA,
# or 165.5 MWd/kgU, at the end of the simulation at 2.0e+08 s. The calculated fraction of HBS increases monotonically, and
# takes values of 0.07727, 0.60758, 0.98035 and 0.99998 after 0.5e+08 s, 1.0e+08 s, 1.5e+08 s and 2.0e+08 s, respectively.
#
#--------------------------------------------------------------------------------------------------------------------------------
[Mesh]
[generated_mesh]
type = GeneratedMeshGenerator
dim = 3
nx = 1
ny = 1
nz = 1
xmin = 0.
xmax = 0.01
ymin = 0.0
ymax = 0.01
zmin = 0.0
zmax = 0.01
[]
[]
[Functions]
[temperature_func]
type = PiecewiseLinear
x = '0. 2.e+08'
y = '1173.15 1173.15 '
[]
[fissionrate_func]
type = PiecewiseLinear
x = '0. 2.e+08'
y = '2.e+19 2.e+19'
[]
[]
[Variables]
[temperature]
order = FIRST
family = LAGRANGE
initial_condition = 1173.15
[]
[]
[AuxVariables]
[fission_rate]
order = FIRST
family = LAGRANGE
[]
[burnup]
order = FIRST
family = LAGRANGE
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temperature
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
block = 0
variable = fission_rate
value = 1
fission_rate_function = fissionrate_func
execute_on = 'initial timestep_begin'
[]
[brnp]
type = BurnupAux
block = 0
variable = burnup
fission_rate = fission_rate
density = 10421.5
execute_on = 'initial timestep_end'
[]
[]
[BCs]
[bottom_temp]
type = FunctionDirichletBC
variable = temperature
function = temperature_func
boundary = '1 2 3 4'
preset = false
[]
[]
[Materials]
[hbs_formation]
type = HighBurnupStructureFormation
block = 0
temperature = temperature
burnup = burnup
threshold_temperature = 1273.15 # default
energy_per_fission = 3.28451e-11 # default
output_properties = 'hbs_volume_fraction hbs_volume_fraction_burnup_rate'
outputs = 'all'
[]
[thermal]
type = HeatConductionMaterial
block = 0
specific_heat = 1.0
thermal_conductivity = 100.
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart'
petsc_options_value = '101'
line_search = 'none'
l_max_its = 100
nl_max_its = 100
nl_rel_tol = 1e-8
nl_abs_tol = 1e-6
l_tol = 1e-5
start_time = 0.0
end_time = 2.e+08
dtmax = 5.e+06
dtmin = 1.
[TimeStepper]
type = IterationAdaptiveDT
dt = 5.e+06
optimal_iterations = 6
linear_iteration_ratio = 100
[]
[]
[Postprocessors]
[_dt]
type = TimestepSize
[]
[temperature]
type = NodalVariableValue
variable = temperature
nodeid = 0
execute_on = 'initial timestep_end'
[]
[burnup]
type = ElementalVariableValue
elementid = 0
variable = burnup
[]
[effective_burnup]
type = ElementAverageMaterialProperty
mat_prop = effective_burnup
[]
[hbs_volume_fraction]
type = ElementAverageMaterialProperty
mat_prop = hbs_volume_fraction
[]
[hbs_volume_fraction_burnup_rate]
type = ElementAverageMaterialProperty
mat_prop = hbs_volume_fraction_burnup_rate
[]
[]
[Outputs]
csv = true
perf_graph = true
[console]
type = Console
max_rows = 15
[]
[]
(test/tests/sifgrs/uo2/ig_bubble_coarsening_disl_density_material.i)
# This is a test of passing disl_density_material into Sifgrs. Based on ig_bubble_coarsening.i.
#
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 3
xmin = 0
xmax = 0.01
ymin = 0
ymax = 0.01
zmin = 0
zmax = 0.01
nx = 1
ny = 1
nz = 1
[]
[]
[Functions]
[Temp_func]
type = PiecewiseLinear
x = '0. 6.07e7 60700250. 60700500. 60704100. 60704600.'
y = '600. 600. 1450. 2300. 2300. 600.'
[]
[Fiss_func]
type = PiecewiseLinear
x = '0. 6.07e7 60700250. 60700500. 60704100. 60704600.'
y = '1.e19 1.e19 1.e19 1.e19 1.e19 1.e19'
[]
[]
[Variables]
[T]
initial_condition = 600.
[]
[]
[AuxVariables]
[fission_rate]
[]
[fract_FGR_analytical]
order = CONSTANT
family = MONOMIAL
[]
[rad_bbl_grn]
order = CONSTANT
family = MONOMIAL
[]
[bbl_grn_3]
order = CONSTANT
family = MONOMIAL
[]
[gas_bbl_grn]
order = CONSTANT
family = MONOMIAL
[]
[bbl_disl_grn]
order = CONSTANT
family = MONOMIAL
[]
[rad_bbl_disl_grn]
order = CONSTANT
family = MONOMIAL
[]
[gas_bbl_disl_grn]
order = CONSTANT
family = MONOMIAL
[]
[deltav_v0_intra_total]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = T
diffusion_coefficient = 1
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
value = 1
fission_rate_function = Fiss_func
execute_on = 'initial timestep_begin'
[]
[bbl_cnc]
type = MaterialRealAux
variable = bbl_grn_3
property = bubble_concentration_intra
execute_on = 'TIMESTEP_END'
[]
[rad_bbl]
type = MaterialRealAux
variable = rad_bbl_grn
property = bubble_radius_intra
execute_on = 'TIMESTEP_END'
[]
[gascnc_bbl]
type = MaterialRealAux
variable = gas_bbl_grn
property = gas_concentration_bubble_intra
execute_on = 'TIMESTEP_END'
[]
[bbl_cnc_disl]
type = MaterialRealAux
variable = bbl_disl_grn
property = bubble_concentration_intra_dislocation
execute_on = 'TIMESTEP_END'
[]
[rad_bbl_disl]
type = MaterialRealAux
variable = rad_bbl_disl_grn
property = bubble_radius_intra_dislocation
execute_on = 'TIMESTEP_END'
[]
[gascnc_bbl_disl]
type = MaterialRealAux
variable = gas_bbl_disl_grn
property = gas_concentration_bubble_intra_dislocation
execute_on = 'TIMESTEP_END'
[]
[dvv0gr]
type = MaterialRealAux
variable = deltav_v0_intra_total
property = deltav_v0_intra_total
execute_on = 'TIMESTEP_END'
[]
[]
[BCs]
[bottom_T]
type = FunctionDirichletBC
variable = T
function = Temp_func
boundary = bottom
[]
[]
[Materials]
[fission_gas_behavior]
type = UO2Sifgrs
skip_bdr_model = true
temperature = T
fission_rate = fission_rate
grain_radius_const = 5.e-6
ig_bubble_model = NUCLEATION_RESOLUTION
diff_coeff_option = TURNBULL_D1_4D2_D3
res_param_option = HETEROGENEOUS_SETYAWAN
ig_bubble_coarsening = WITH_COARSENING
ig_diff_algorithm = POLYPOLE1
dislocation_density_material = parsed_dislocation_density
nuclerate_scalef = 0.5
outputs = 'all'
output_properties = 'dislocation_coverage_fraction deltav_v0_bubble_intra_dislocation'
[]
[parsed_dislocation_density]
type = ParsedMaterial
property_name = parsed_dislocation_density
expression = '1E14'
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
l_tol = 1e-4
nl_abs_tol = 1e-5
nl_rel_tol = 1e-5
start_time = -100
end_time = 60704600.
[TimeStepper]
type = IterationAdaptiveDT
dt = 100
optimal_iterations = 10
iteration_window = 4
growth_factor = 2.
linear_iteration_ratio = 100
time_t = '0 6.0e+7 6.07e7 60704600'
time_dt = '1000 10000 100 1'
force_step_every_function_point = true
timestep_limiting_function = Temp_func
[]
[]
[Postprocessors]
[fis_gas_generated]
type = ElementIntegralFisGasGeneratedSifgrs
[]
[fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
[]
[radius_bubbles_at_dislocations]
type = ElementAverageValue
variable = rad_bbl_disl_grn
[]
[density_bbl_dislocations]
type = ElementAverageValue
variable = bbl_disl_grn
[]
[intrag_swelling]
type = ElementAverageValue
variable = deltav_v0_intra_total
[]
[dislocation_coverage_fraction]
type = ElementAverageValue
variable = dislocation_coverage_fraction
[]
[deltav_v0_bubble_intra_dislocation]
type = ElementAverageValue
variable = deltav_v0_bubble_intra_dislocation
[]
[]
[Outputs]
exodus = true
[]
(examples/TRISO/accident_simulation/triso2D_accident_ad.i)
# This example is 2D-RZ analysis of a TRISO fuel particle. Fully coupled
# heat transfer and solid mechanics, plus diffusion of the fission product
# species cesium (Cs) are simulated. The mesh includes contact surfaces
# between the buffer and IPyC layers to facilitate a gap opening between
# these layers. These surfaces are initially in mechanical contact but
# are assumed to have no strength in tension. A coarse mesh is used to
# provide a short run time.
# The calculation simulates fuel-life in three steps. The first step is an
# irradiation period, where constant power and a fixed particle surface
# temperature (1500 K) are assumed over a lifetime of 76 Ms (2.4 yrs).
# For the second step, fuel removal and storage are simulated by setting
# the reactor power and Cs source terms to zero, reducing the particle
# surface temperature to ambient (300 K), and then holding it
# for 100 days. A third and final step simulates accident
# behavior by increasing the particle surface temperature from ambient
# to 2073 K over 2 hrs, and then holding it at this elevated temperature
# for an additional 200 hrs. At the particle outer boundary, the Cs
# concentration is held at zero and the pressure at ambient during the
# entire simulation. The particle is assumed to be stress-free at an
# initial temperature of 1500 K.
#
# Details about this simulation are given in Section 4 of the following
# article: J. D. Hales, R. L. Williamson, S. R. Novascone, D. M. Perez,
# B. W. Spencer and G. Pastore, "Multidimensional multiphysics simulation
# of TRISO particle fuel", Journal of Nuclear Materials, Vol. 443, p. 531,
# 2013.
# This is a version using a thermomechanical mortar approach. It uses
# Automatic Differentiation classes and models gap mass transfer using
# flux preserving and sorption mortar constraints. Sorption constants are
# given in Table 1 of the following article: A. Londono-Hurtado, I.
# Szlufarska, R. Bratton and D. Morgan, "A review of fission product
# sorption in carbon structures", Journal of Nuclear Materials, Vol. 426,
# p. 254, 2012.
initial_fuel_density = 11000.0
[GlobalParams]
order = SECOND
family = LAGRANGE
displacements = 'disp_x disp_y'
flux_conversion_factor = 0.85
use_automatic_differentiation = true
[]
[Mesh]
coord_type = RZ
[file]
type = FileMeshGenerator
file = triso2Dmed.e
[]
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
converge_on = 'disp_x disp_y temp conc'
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[temp]
initial_condition = 1500.0
[]
[conc]
initial_condition = 0.0
[]
[conc_lm]
block = pellet_clad_mechanical_secondary_subdomain
[]
[conc_dx_lm]
block = pellet_clad_mechanical_secondary_subdomain
[]
[conc_dy_lm]
block = pellet_clad_mechanical_secondary_subdomain
[]
[]
[AuxVariables]
[fission_rate]
block = fuel
order = CONSTANT
family = MONOMIAL
[]
[fluence]
order = CONSTANT
family = MONOMIAL
[]
[burnup]
block = fuel
order = CONSTANT
family = MONOMIAL
[]
[creep_xx]
order = CONSTANT
family = MONOMIAL
[]
[creep_yy]
order = CONSTANT
family = MONOMIAL
[]
[creep_zz]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[power_history]
type = PiecewiseLinear
x = '0 76e6 76.001e6'
y = '1 1 0'
[]
[temp_bc]
type = PiecewiseLinear
x = '0 76e6 76.001e6 84.641e6 84.6482e6'
y = '1500 1500 300 300 2073'
[]
[k_function]
type = PiecewiseLinear
x = '0 200e6'
y = '4e-37 4e-37'
[]
[d1_function]
type = ParsedFunction
expression = 'exp(t/4.5e25)'
[]
[integral_flux_error]
type = ParsedFunction
symbol_names = 'buffer_integral_flux IPyC_integral_flux'
symbol_values = 'buffer_integral_flux IPyC_integral_flux'
expression = 'IPyC_integral_flux + buffer_integral_flux'
[]
[partial_pressure_error]
type = ParsedFunction
symbol_names = 'buffer_partial_pressure IPyC_partial_pressure'
symbol_values = 'buffer_partial_pressure IPyC_partial_pressure'
expression = 'IPyC_partial_pressure - buffer_partial_pressure'
[]
[]
[Physics/SolidMechanics/QuasiStatic]
generate_output = 'stress_xx stress_yy stress_zz stress_xy stress_yz stress_zx hydrostatic_stress'
strain = FINITE
incremental = true
add_variables = false
[default]
block = 'fuel buffer IPyC OPyC'
eigenstrain_names = 'thermal_strain swelling_strain'
extra_vector_tags = 'ref'
[]
[SiC]
block = 'SiC'
eigenstrain_names = 'thermal_strain'
extra_vector_tags = 'ref'
[]
[]
[Kernels]
[heat_ie]
type = ADHeatConductionTimeDerivative
variable = temp
extra_vector_tags = 'ref'
block = 'fuel buffer IPyC SiC OPyC'
[]
[heat]
type = ADHeatConduction
variable = temp
extra_vector_tags = 'ref'
block = 'fuel buffer IPyC SiC OPyC'
[]
[heat_source]
type = ADNeutronHeatSource
variable = temp
block = fuel
energy_per_fission = 3.2e-11 # units of J/fission
fission_rate = fission_rate
extra_vector_tags = 'ref'
[]
[mass_ie]
type = ADTimeDerivative
variable = conc
extra_vector_tags = 'ref'
block = 'fuel buffer IPyC SiC OPyC'
[]
[mass]
type = ADArrheniusDiffusion
variable = conc
extra_vector_tags = 'ref'
block = 'fuel buffer IPyC SiC OPyC'
[]
[mass_source]
type = ADBodyForce
variable = conc
function = power_history
value = 1.22e-5 # units of moles/m**3-s
block = fuel
extra_vector_tags = 'ref'
[]
[mass_decay]
type = Decay
variable = conc
radioactive_decay_constant = 7.297e-10 # units:(1/sec) The constant for Cesium
block = 'fuel buffer IPyC SiC OPyC'
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[fission_rate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
block = fuel
fission_rate_function = power_history
value = 3.89e19
execute_on = timestep_begin
[]
[fluence]
type = ADMaterialRealAux
property = fast_neutron_fluence
variable = fluence
[]
[burnup]
type = ADBurnupAux
variable = burnup
block = fuel
fission_rate = fission_rate
molecular_weight = 0.270 # units of kg/mole
execute_on = timestep_begin
density = ${initial_fuel_density}
[]
[creep_xx]
type = ADRankTwoAux
rank_two_tensor = creep_strain
variable = creep_xx
index_i = 0
index_j = 0
block = 'buffer IPyC SiC OPyC'
execute_on = timestep_end
[]
[creep_yy]
type = ADRankTwoAux
rank_two_tensor = creep_strain
variable = creep_yy
index_i = 1
index_j = 1
block = 'buffer IPyC SiC OPyC'
execute_on = timestep_end
[]
[creep_zz]
type = ADRankTwoAux
rank_two_tensor = creep_strain
variable = creep_zz
index_i = 2
index_j = 2
block = 'buffer IPyC SiC OPyC'
execute_on = timestep_end
[]
[]
[ThermalContactMortar]
[thermal]
secondary_variable = temp
primary_boundary = 15
secondary_boundary = 17
initial_moles = initial_moles # coupling to a postprocessor which supplies the initial plenum/gap gas mass
gas_released = 'fis_gas_released co_production' # coupling to postprocessors which supply the fission gas addition, co addition
released_gas_types = 'Kr Xe;
CO'
released_fractions = '0.153 0.847;
1'
gap_geometry_type = CYLINDER
min_gap = 1e-7
max_gap = 50e-6
roughness_coef = 0.0
correct_edge_dropping = true
[]
[]
[Contact]
[pellet_clad_mechanical]
primary = 15
secondary = 17
model = frictionless
formulation = mortar
c_normal = 1.0e8
correct_edge_dropping = true
[]
[]
[Constraints]
[cesium_gap_value]
type = MassSorptionConstraint
variable = conc_lm
primary_variable = conc
primary_boundary = 15
primary_subdomain = pellet_clad_mechanical_primary_subdomain
secondary_variable = conc
secondary_boundary = 17
secondary_subdomain = pellet_clad_mechanical_secondary_subdomain
partial_pressure_name = partial_pressure
epsilon = 1e-4
correct_edge_dropping = true
[]
[cesium_gap_flux_x]
type = MassFluxConstraint
variable = conc_dx_lm
primary_variable = conc
diffusivity_primary = arrhenius_diffusion_coef
primary_boundary = 15
primary_subdomain = pellet_clad_mechanical_primary_subdomain
secondary_variable = conc
diffusivity_secondary = arrhenius_diffusion_coef
secondary_boundary = 17
secondary_subdomain = pellet_clad_mechanical_secondary_subdomain
component = 0
epsilon = 1e-5
correct_edge_dropping = true
[]
[cesium_gap_flux_y]
type = MassFluxConstraint
variable = conc_dy_lm
primary_variable = conc
diffusivity_primary = arrhenius_diffusion_coef
primary_boundary = 15
primary_subdomain = pellet_clad_mechanical_primary_subdomain
secondary_variable = conc
diffusivity_secondary = arrhenius_diffusion_coef
secondary_boundary = 17
secondary_subdomain = pellet_clad_mechanical_secondary_subdomain
component = 1
epsilon = 1e-5
correct_edge_dropping = true
[]
[]
[BCs]
# pin particle along symmetry planes
[no_disp_x]
type = ADDirichletBC
variable = disp_x
boundary = xzero
value = 0.0
extra_vector_tags = 'ref'
[]
[no_disp_y]
type = ADDirichletBC
variable = disp_y
boundary = yzero
value = 0.0
extra_vector_tags = 'ref'
[]
# fix temperature on free surface
[freesurf_temp]
type = ADFunctionDirichletBC
variable = temp
boundary = exterior
function = temp_bc
extra_vector_tags = 'ref'
[]
# fix concentration on free surface
[freesurf_conc]
type = ADDirichletBC
variable = conc
boundary = exterior
value = 0.0
extra_vector_tags = 'ref'
[]
[PlenumPressure] # apply plenum pressure on clad inner walls and pellet surfaces
[plenumPressure]
boundary = BufferGapVol
initial_pressure = 0
startup_time = 1.0e4
R = 8.3145
output_initial_moles = initial_moles # coupling to post processor to get initial fill gas mass
temperature = ave_temp_interior # coupling to post processor to get gas temperature approximation
volume = volumeGas # coupling to post processor to get gas volume
material_input = 'fis_gas_released co_production' # coupling to post processor to get fission gas added, co added
output = plenum_pressure # coupling to post processor to output plenum/gap pressure
[]
[]
[]
[Materials]
[flux]
type = ADFastNeutronFlux
calculate_fluence = true
factor = 5e17
[]
[fission_gas_release] # Sifgrs fission gas release mode
type = ADUO2Sifgrs
block = fuel
temperature = temp
fission_rate = fission_rate # coupling to fission_rate aux variable
grain_radius_const = 5.0e-6
[]
[fuel_thermal]
type = ADUO2Thermal
thermal_conductivity_model = FINK_LUCUTA
block = fuel
temperature = temp
burnup = burnup
initial_porosity = 0.0
[]
[fuel_swelling]
type = ADUO2VolumetricSwellingEigenstrain
gas_swelling_model_type = MATPRO
block = fuel
temperature = temp
burnup = burnup
eigenstrain_name = 'swelling_strain'
initial_fuel_density = ${initial_fuel_density}
[]
[fuel_stress]
type = ADComputeFiniteStrainElasticStress
block = 'fuel'
[]
[fuel_elasticity]
type = ADComputeIsotropicElasticityTensor
block = fuel
youngs_modulus = 2.2e11
poissons_ratio = .345
[]
[fuel_thermal_strain]
type = ADComputeThermalExpansionEigenstrain
block = fuel
thermal_expansion_coeff = 10e-6
stress_free_temperature = 1500.0
eigenstrain_name = thermal_strain
temperature = temp
[]
[fuel_den]
type = ADStrainAdjustedDensity
block = fuel
strain_free_density = ${initial_fuel_density} # kg/m^3
[]
[fuel_conc]
type = ADArrheniusDiffusionCoef
block = fuel
d1 = 5.6e-8 # m^2/s
q1 = 209.0e+3 # J/mol
d2 = 5.2e-4 # m^2/s
q2 = 362.0e+3 # J/mol
gas_constant = 8.3143 # J/K-mol
temperature = temp
[]
[buffer_eigenstrain]
type = ADPyCIrradiationEigenstrain
block = buffer
pyc_type = buffer
eigenstrain_name = 'swelling_strain'
[]
[buffer_thermal_strain]
type = ADComputeThermalExpansionEigenstrain
block = buffer
thermal_expansion_coeff = 5.65e-6
stress_free_temperature = 1500.0
eigenstrain_name = thermal_strain
temperature = temp
[]
[buffer_elasticity]
type = ADComputeIsotropicElasticityTensor
block = buffer
youngs_modulus = 2e10
poissons_ratio = .23
[]
[buffer_stress]
type = ADPyCCreep
block = buffer
temperature = temp
[]
[buffer_temp]
type = ADHeatConductionMaterial
block = buffer
thermal_conductivity = 0.5 # J/m-s-K
specific_heat = 720.0 # J/kg-K
[]
[buffer_den]
type = ADStrainAdjustedDensity
strain_free_density = 1000.0 #kg/m^3
block = buffer
[]
[buffer_conc]
type = ADArrheniusDiffusionCoef
block = buffer
d1 = 1.0e-12 # m^2/s
q1 = 0.0
d2 = 0.0
q2 = 0.0
gas_constant = 8.3143 # J/K-mol
temperature = temp
[]
[buffer_partial_pressure]
type = ADSorptionPartialPressure
A = 19.33
B = -47290
D = 1.518
E = 4338
d1 = 3.397
d2 = 6.15e-4
unit_scale = 1e3 # convert from mol to mmol
density = 1000 # convert from mmol/m^3 to mmol/kg, using constant for compatibility with default AD derivative container size
concentration = conc
temperature = temp
block = buffer
outputs = 'all'
output_properties = partial_pressure
[]
[normal_vectors_triso]
type = NormalVectorsTRISO
block = 'IPyC OPyC buffer'
[]
[IPyC_eigenstrain]
type = ADPyCIrradiationEigenstrain
block = IPyC
pyc_type = dense
eigenstrain_name = 'swelling_strain'
[]
[IPyC_thermal_strain]
type = ADComputeThermalExpansionEigenstrain
block = IPyC
thermal_expansion_coeff = 5.65e-6
stress_free_temperature = 1500.0
eigenstrain_name = thermal_strain
temperature = temp
[]
[IPyC_elasticity]
type = ADComputeIsotropicElasticityTensor
block = IPyC
youngs_modulus = 4.74e10
poissons_ratio = .23
[]
[IPyC_disp]
type = ADPyCCreep
block = 'IPyC OPyC'
temperature = temp
[]
[IPyC_temp]
type = ADHeatConductionMaterial
block = 'IPyC OPyC'
thermal_conductivity = 4.0
specific_heat = 720.0
[]
[IPyC_den]
type = ADStrainAdjustedDensity
block = 'IPyC OPyC'
strain_free_density = 1900.0
[]
[IPyC_conc]
type = ADArrheniusDiffusionCoef
block = IPyC
d1 = 6.3e-8
q1 = 222.0e+3
d2 = 0.0
q2 = 0.0
gas_constant = 8.3143 # J/K-mol
temperature = temp
[]
[IPyC_partial_pressure]
type = ADSorptionPartialPressure
A = 19.33
B = -47290
D = 1.518
E = 4338
d1 = 3.397
d2 = 6.15e-4
unit_scale = 1e3 # convert from mol to mmol
density = 1900 # convert from mmol/m^3 to mmol/kg, using constant for compatibility with default AD derivative container size
concentration = conc
temperature = temp
block = IPyC
outputs = 'all'
output_properties = partial_pressure
[]
[SiC_thermal_strain]
type = ADComputeThermalExpansionEigenstrain
block = SiC
thermal_expansion_coeff = 4.9e-6
stress_free_temperature = 1500.0
eigenstrain_name = thermal_strain
temperature = temp
[]
[SiC_elasticity]
type = ADComputeIsotropicElasticityTensor
block = SiC
youngs_modulus = 3.4e11
poissons_ratio = .13
[]
[SiC_creep]
type = ADMonolithicSiCCreepUpdate
block = SiC
temperature = temp
k_function = k_function
[]
[SiC_stress]
type = ADComputeMultipleInelasticStress
block = SiC
inelastic_models = 'SiC_creep'
[]
[SiC_temp]
type = ADHeatConductionMaterial
block = SiC
thermal_conductivity = 13.9 # J/m-s-K
specific_heat = 620.0 # J/kg-K
[]
[SiC_den]
type = ADStrainAdjustedDensity
strain_free_density = 3180.0 # kg/m^3
block = SiC
[]
[SiC_conc]
type = ADArrheniusDiffusionCoef
block = SiC
d1 = 5.5e-14 # m^2/s
d1_function = d1_function
d1_function_variable = fluence
q1 = 125.0e+3 # J/mol
d2 = 1.6e-2 # m^2/s
q2 = 514.0e+3 # J/mol
gas_constant = 8.3143 # J/K-mol
temperature = temp
[]
[OPyC_eigenstrain]
type = ADPyCIrradiationEigenstrain
block = OPyC
pyc_type = dense
eigenstrain_name = 'swelling_strain'
[]
[OPyC_thermal_strain]
type = ADComputeThermalExpansionEigenstrain
block = OPyC
thermal_expansion_coeff = 5.65e-6
stress_free_temperature = 1500.0
eigenstrain_name = thermal_strain
temperature = temp
[]
[OPyC_elasticity]
type = ADComputeIsotropicElasticityTensor
block = OPyC
youngs_modulus = 4.74e10
poissons_ratio = .23
[]
[OPyC_conc]
type = ADArrheniusDiffusionCoef
block = OPyC
d1 = 6.3e-8 # m^2/s
q1 = 222.0e+3 # J/mol
d2 = 0.0
q2 = 0.0
gas_constant = 8.3143 # J/K-mol
temperature = temp
[]
[]
[Dampers]
[temp]
type = MaxIncrement
variable = temp
max_increment = 50
[]
[]
[Debug]
show_var_residual_norms = true
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package -mat_mffd_err -pc_factor_shift_type -pc_factor_shift_amount'
petsc_options_value = 'lu superlu_dist 1e-5 NONZERO 1e-14'
snesmf_reuse_base = false
line_search = 'none'
nl_rel_tol = 5e-4
nl_abs_tol = 1e-10
nl_max_its = 20
l_max_its = 8
start_time = 0.0
end_time = 85.3682e6
dt = 100
dtmax = 2e6
dtmin = 1
[TimeStepper]
type = IterationAdaptiveDT
dt = 100
optimal_iterations = 10
growth_factor = 1.5
linear_iteration_ratio = 100
time_t = '0 76e6 76.001e6 84.641e6 84.6482e6'
time_dt = '20 20 20 20 20'
[]
[Predictor]
type = SimplePredictor
scale = 0.5
skip_times_old = '0 76e6 76.001e6 84.641e6 84.6482e6'
[]
[]
[Outputs]
perf_graph = true
exodus = true
[console]
type = Console
max_rows = 25
[]
[csv]
type = CSV
sync_times = '100 6308007 75696087'
sync_only = true
[]
[]
[Postprocessors]
[Cs_release]
type = ADSideDiffusiveFluxIntegral
variable = conc
diffusivity = arrhenius_diffusion_coef
boundary = exterior
execute_on = timestep_end
[]
[dt]
type = TimestepSize
execute_on = timestep_end
[]
[fis_gas_produced] # fission gas produced (moles)
type = ADElementIntegralFisGasGeneratedSifgrs
block = fuel
execute_on = 'initial linear nonlinear timestep_begin timestep_end'
[]
[fis_gas_released] # fission gas released to plenum (moles)
type = ADElementIntegralFisGasReleasedSifgrs
block = fuel
execute_on = 'initial linear nonlinear timestep_begin timestep_end'
[]
[volumeTotal]
type = InternalVolume
boundary = exterior
execute_on = 'initial timestep_end'
[]
[volumeFuel]
type = InternalVolume
boundary = fuel
execute_on = 'initial timestep_end'
[]
[volumeGas]
type = InternalVolume
boundary = BufferGapVol
# ro = 3.125e-4
# ri = 2.125e-4
# vb = 4/3*pi*(ro^3-ri^3) = 8.76e-11
# buffer density = 1000
# PyC density = 1900
# fill ratio = 10/19
# vb*10/19 = 4.6e-11
# Must remove 4.6e-11 m^3 from the volume
addition = -4.6e-11
execute_on = 'initial linear nonlinear timestep_begin timestep_end'
[]
[volumeBufferShell]
type = InternalVolume
boundary = BufferGapVol
execute_on = 'initial timestep_end'
[]
[ave_temp_interior]
type = SideAverageValue
boundary = BufferGapVol
variable = temp
execute_on = 'initial linear nonlinear timestep_begin timestep_end'
[]
# Postprocessors for CO production
[total_fission_rate]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = fuel
energy_per_fission = 1.0
execute_on = 'initial linear nonlinear timestep_begin timestep_end'
[]
[total_fissions]
type = TimeIntegratedPostprocessor
value = total_fission_rate
execute_on = 'initial linear nonlinear timestep_begin timestep_end'
[]
[avg_surface_temp]
type = SideAverageValue
variable = temp
boundary = exterior
execute_on = 'initial linear nonlinear timestep_begin timestep_end'
[]
[time_int_surf_temp]
type = TimeIntegratedPostprocessor
value = avg_surface_temp
execute_on = 'initial linear nonlinear timestep_begin timestep_end'
[]
[co_production]
type = CarbonMonoxideProduction
total_fissions = total_fissions
time_integrated_triso_temperature = time_int_surf_temp
initial_enrichment = 0.14029
execute_on = 'initial linear nonlinear timestep_begin timestep_end'
[]
[num_lin_it]
type = NumLinearIterations
[]
[num_nonlin_it]
type = NumNonlinearIterations
[]
[tot_lin_it]
type = CumulativeValuePostprocessor
postprocessor = num_lin_it
[]
[tot_nonlin_it]
type = CumulativeValuePostprocessor
postprocessor = num_nonlin_it
[]
[alive_time]
type = PerfGraphData
section_name = Root
data_type = TOTAL
[]
[buffer_integral_flux]
type = ADSideDiffusiveFluxIntegral
variable = conc
boundary = 17
diffusivity = arrhenius_diffusion_coef
[]
[IPyC_integral_flux]
type = ADSideDiffusiveFluxIntegral
variable = conc
boundary = 15
diffusivity = arrhenius_diffusion_coef
[]
[buffer_partial_pressure]
type = ADSideAverageMaterialProperty
property = partial_pressure
boundary = 17
[]
[IPyC_partial_pressure]
type = ADSideAverageMaterialProperty
property = partial_pressure
boundary = 15
[]
[integral_flux_error]
type = FunctionValuePostprocessor
function = integral_flux_error
[]
[partial_pressure_error]
type = FunctionValuePostprocessor
function = partial_pressure_error
[]
[integral_Cs_release]
type = TimeIntegratedPostprocessor
value = Cs_release
[]
[Cs_production]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 1.22e-5 # units of moles/m**3-s
[]
[time_integral_Cs_production]
type = TimeIntegratedPostprocessor
value = Cs_production
[]
[volumeFuel_initial]
type = InternalVolume
boundary = fuel
execute_on = initial
[]
[integral_Cs_production]
type = ParsedPostprocessor
pp_names = 'time_integral_Cs_production volumeFuel_initial'
expression = 'time_integral_Cs_production * volumeFuel_initial'
[]
[Cs_release_fraction]
type = ParsedPostprocessor
pp_names = 'integral_Cs_release integral_Cs_production'
expression = 'integral_Cs_release / integral_Cs_production'
[]
[]
[VectorPostprocessors]
[temperaturevpp]
type = SideValueSampler
boundary = 11
variable = temp
sort_by = x
outputs = 'csv'
use_displaced_mesh = true
[]
[]
(test/tests/uo2_thermal/NFIR/test.i)
# This test case is prepared to test the thermal conductivity using the NFIR model.
#
# The temperature is ramped on all BCs of the unit line from 500 K to 3000K over 100 Ms.
# The fission rate is 2e19 n/m3/s, so that the burnup goes from 0 to
# ~ 8.6 at.% (82 MWd/kgU) at the end of the simulation.
#
# Thermal conductivity of UO2 fuel at 95%TD is computed using the NFIR thermal conductivity model.
# The BISON predictions (BISON_k for UO2, BISON_Gd_k for UO2 with a 2% gadolinia content)
# compared to the expected results (expected_k for UO2, expected_Gd_k for UO2 with a 2% gadolinia content)
# are summarized (see: post_processing.py --> comparison_results.csv) as:
#
# expected_k BISON_k percent_error expected_Gd_k BISON_Gd_k percent_error_Gd
# 6.571905059 6.571905059 -6.88E-13 6.349827064 6.349827064 2.11E-13
# 6.136847044 6.136847044 -1.11E-13 5.948406017 5.948406017 6.88E-13
# 5.759309817 5.759309817 -6.00E-13 5.598024778 5.598024778 6.22E-13
# 5.428675322 5.428675322 2.44E-13 5.289609198 5.289609198 9.55E-13
# 5.136793791 5.136793791 8.10E-13 5.016121873 5.016121873 -7.33E-13
initial_fuel_density = 10431.0
[GlobalParams]
order = FIRST
family = LAGRANGE
[]
[Mesh]
[geom]
type = GeneratedMeshGenerator
dim = 1
elem_type= EDGE2
[]
[]
[Variables]
[T]
initial_condition = 500
[]
[]
[AuxVariables]
[fission_rate]
[]
[burnup]
[]
[th_cond]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = T
[]
[heat_ie]
type = HeatConductionTimeDerivative
variable = T
[]
[heat_source]
type = NeutronHeatSource
variable = T
energy_per_fission = 3.2e-11
fission_rate = fission_rate
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable= fission_rate
value = 2e19 # Standard fission_rate fissions/m^3/s
execute_on = 'initial timestep_begin'
[]
[th_cond]
type = MaterialRealAux
variable = th_cond
property = thermal_conductivity
execute_on = 'initial linear'
[]
[burnup]
type = BurnupAux
variable = burnup
density = ${initial_fuel_density} # 95% TD
fission_rate = fission_rate
execute_on = timestep_begin
[]
[]
[Functions]
[temp_ramp]
type = PiecewiseLinear
x = '0.0 100.e6'
y = '500 3000'
[]
[]
[BCs]
[VariableT]
type = FunctionDirichletBC
boundary = 'left right'
variable = T
function = temp_ramp
[]
[]
[Materials]
[fuel_thermal]
type = UO2Thermal
temperature = T
burnup = burnup
thermal_conductivity_model = NFIR
oxy_to_metal_ratio = 2.0
initial_porosity = 0.05
Gd_content = 0.0
[]
[density]
type = ParsedMaterial
property_name = density
expression = ${initial_fuel_density}
[]
[]
[Executioner]
type = Transient
start_time = 0
num_steps = 100
dt = 1.0e6
[]
[Postprocessors]
[avg_th_cond]
type = ElementAverageValue
variable = th_cond
execute_on = 'initial timestep_end'
[]
[average_rod_burnup]
type = ElementAverageValue
variable = burnup
execute_on = timestep_end
[]
[average_fuel_T]
type = ElementAverageValue
variable = T
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
csv = true
[]
(test/tests/solid_mechanics/uo2_hotpressing/hotpressing_creep_plasticity.i)
#=============================================================================================
# This case is prepared for testing hotpressing driven by combined creep and plasticity for UO2
#
#
# The test is a single element with an initial inner radius of 1, outer radius of 2,
# and a height of 1 under RZ coordinate system.
#
# Input condition
# ===============
#
# Fission density = 2e18 fissios/m**3-s
# Const. temperature = 1500 K
#
# Material property
# =================
# Fuel density = 95% TD
# Fuel grain radius = 10 micron
#
# B.C.
# ====
# Top surface of the element is compressed.
# Roller at the bottom with zero axial displacement.
#
#
# Results:
#
#
# Analytical BISON
# --------------------------------------------------------
# Axial creep strain -5.40e-4 -5.4024e-4
# Axial elastic strain -4.9088e-4 -4.90915e-4
# Axial plastic strain -4.46912e-3 -4.467369e-3
# Axial stress (Pa) -9.8176e7 -9.8183e7
# Plastic volumetric strain 1.61e76e-3 -1.611369e-3
#
# Notes: uniaxial load, sigma_y = sigma_y/sqrt(1+3*alpha)
# ep_v / (ep_y - ep_v/3) = 1.5*sqrt(6*alpha)
# sigma_y --> ec, ee
# ep = et - ec - ee
#
#==============================================================================================
[GlobalParams]
density = 10431.0
displacements = 'disp_r disp_z'
[]
[Mesh]
coord_type = RZ
use_displaced_mesh = false
[mesh]
type = FileMeshGenerator
file = 1x1_rz_rev1.e
[]
[]
[Variables]
[disp_r]
order = FIRST
family = LAGRANGE
[]
[disp_z]
order = FIRST
family = LAGRANGE
[]
[temp]
order = FIRST
family = LAGRANGE
initial_condition = 1500.0
[]
[]
[AuxVariables]
[fission_rate]
order = FIRST
family = LAGRANGE
[]
[stress_yy]
order = CONSTANT
family = MONOMIAL
[]
[yield_stress]
order = CONSTANT
family = MONOMIAL
[]
[plastic_strain_xx]
order = CONSTANT
family = MONOMIAL
[]
[plastic_strain_yy]
order = CONSTANT
family = MONOMIAL
[]
[plastic_strain_zz]
order = CONSTANT
family = MONOMIAL
[]
[plastic_strain_xy]
order = CONSTANT
family = MONOMIAL
[]
[plastic_strain_yz]
order = CONSTANT
family = MONOMIAL
[]
[plastic_strain_zx]
order = CONSTANT
family = MONOMIAL
[]
[creep_strain_yy]
order = CONSTANT
family = MONOMIAL
[]
[elastic_strain_yy]
order = CONSTANT
family = MONOMIAL
[]
[total_strain_yy]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[top_pull]
type = PiecewiseLinear
x = '0 100000'
y = '-0.5e-3 -5.5e-3'
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
incremental = true
strain = small
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temp
[]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temp
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
value = 2.0e18
[]
[stress_yy]
type = RankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[]
[yield_stress]
type = MaterialRealAux
variable = yield_stress
property = yield_stress
[]
[plastic_strain_xx]
type = RankTwoAux
variable = plastic_strain_xx
rank_two_tensor = plastic_strain
index_i = 0
index_j = 0
[]
[plastic_strain_yy]
type = RankTwoAux
variable = plastic_strain_yy
rank_two_tensor = plastic_strain
index_i = 1
index_j = 1
[]
[plastic_strain_zz]
type = RankTwoAux
variable = plastic_strain_zz
rank_two_tensor = plastic_strain
index_i = 2
index_j = 2
[]
[plastic_strain_xy]
type = RankTwoAux
variable = plastic_strain_xy
rank_two_tensor = plastic_strain
index_i = 0
index_j = 1
[]
[plastic_strain_yz]
type = RankTwoAux
variable = plastic_strain_yz
rank_two_tensor = plastic_strain
index_i = 1
index_j = 2
[]
[plastic_strain_zx]
type = RankTwoAux
variable = plastic_strain_zx
rank_two_tensor = plastic_strain
index_i = 2
index_j = 0
[]
[creep_strain_yy]
type = RankTwoAux
variable = creep_strain_yy
rank_two_tensor = creep_strain
index_i = 1
index_j = 1
[]
[elastic_strain_yy]
type = RankTwoAux
variable = elastic_strain_yy
rank_two_tensor = elastic_strain
index_i = 1
index_j = 1
[]
[total_strain_yy]
type = RankTwoAux
variable = total_strain_yy
rank_two_tensor = total_strain
index_i = 1
index_j = 1
[]
[]
[BCs]
[u_top_pull]
type = FunctionDirichletBC
variable = disp_z
boundary = '2 3'
function = top_pull
[]
[u_bottom_fix]
type = DirichletBC
variable = disp_z
boundary = '1 4'
value = 0.0
[]
[temp_fix]
type = DirichletBC
variable = temp
boundary = '1 2 3 4'
value = 1500.0
[]
[]
[Materials]
[plasticity]
type = UO2HotPressingPlasticityUpdate
block = 1
input_yield_stress = 100e6
input_hardening_modulus = 0
input_hotpressing = true
hotpressing_alpha = 0.0125
model_hotpressing = true
[]
[creep]
type = UO2CreepUpdate
block = 1
temperature = temp
fission_rate = fission_rate
initial_grain_radius = 10.0e-6
oxygen_to_metal_ratio = 2.0
a7 = 3.72264e-35
q3 = 2617
[]
[hotpressing]
type = UO2HotPressingCreepUpdate
block = 1
base_name = hp
temperature = temp
input_hotpressing = true
hotpressing_nu = 0.01
fission_rate = fission_rate
initial_grain_radius = 10.0e-6
oxygen_to_metal_ratio = 2.0
a7 = 3.72264e-35
q3 = 2617
[]
[radial_return_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'creep hotpressing plasticity'
block = 1
max_iterations = 30
relative_tolerance = 1e-7
absolute_tolerance = 1e-7
[]
[elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = 1
youngs_modulus = 2.0e11
poissons_ratio = 0.319
[]
[thermal]
type = HeatConductionMaterial
block = 1
specific_heat = 1.0
thermal_conductivity = 100.
[]
[density]
type = StrainAdjustedDensity
block = 1
strain_free_density = 6550
[]
[]
[Postprocessors]
[elem_yield_stress]
type = ElementalVariableValue
variable = yield_stress
elementid = 0
[]
[elem_stress_yy]
type = ElementalVariableValue
variable = stress_yy
elementid = 0
[]
[elem_plastic_strain_xx]
type = ElementalVariableValue
variable = plastic_strain_xx
elementid = 0
[]
[elem_plastic_strain_yy]
type = ElementalVariableValue
variable = plastic_strain_yy
elementid = 0
[]
[elem_creep_strain_yy]
type = ElementalVariableValue
variable = creep_strain_yy
elementid = 0
[]
[elem_total_strain_yy]
type = ElementalVariableValue
variable = total_strain_yy
elementid = 0
[]
[elem_elastic_strain_yy]
type = ElementalVariableValue
variable = elastic_strain_yy
elementid = 0
[]
[elem_plastic_strain_zz]
type = ElementalVariableValue
variable = plastic_strain_zz
elementid = 0
[]
[]
[Executioner]
type = Transient
solve_type = PJFNK
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart'
petsc_options_value = '101'
line_search = 'none'
l_max_its = 100
nl_max_its = 20
nl_rel_tol = 1e-16
nl_abs_tol = 1e-5
l_tol = 1e-5
start_time = 0.0
num_steps = 10
dtmin = 10000
dt = 10000
[]
[Outputs]
csv = true
[out]
type = Exodus
[]
[]
(test/tests/ifba_he_production/fill_gas_xenon_w_ifba.i)
#
# 2-D RZ One Pellet Test - IFBA using Xenon as fill gas
#
# This test is of a single pellet with cladding and a specified initial
# pressure of Xe fill gas. In addition, an IFBA layer is added which will
# generate He gas to be added to the plenum. The postprocessor interior_temp
# should be the same as the pure Xe test case initially and as the He gas is
# added to the plenum from the IFBA, the interior_temp value should approach
# the He fill gas test case (both in the doc subdirectory).
#
# This model demonstrates that the gas conductance for the plenum is being
# updated for the He gas generated by the IFBA layer.
#
initial_fuel_density = 10431.0 #95% TD (TD = 10980)
[GlobalParams]
density = ${initial_fuel_density}
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission (205 Mev)
displacements = 'disp_x disp_y'
temperature = temp
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[Mesh]
coord_type = RZ
[smeared_pellet_mesh]
type = FuelPinMeshGenerator
clad_mesh_density = customize
pellet_mesh_density = customize
ny_p = 1
nx_p = 1
nx_c = 1
ny_cu = 1
ny_c = 1
ny_cl = 1
clad_thickness = 5.6e-4
pellet_outer_radius = 0.0041
pellet_height = 0.01
pellet_quantity = 1
clad_bot_gap_height = 1e-3
bottom_clad_height = 2.24e-3
top_clad_height = 2.24e-3
clad_gap_width = 8e-5
plenum_fuel_ratio = 0.150
elem_type = QUAD8
[]
partitioner = centroid
centroid_partitioner_direction = y
patch_size = 5
[]
[Variables]
[temp]
initial_condition = 298
[]
[]
[AuxVariables]
[fission_rate]
block = '3'
[]
[burnup]
block = '3'
[]
[grain_radius]
block = '3'
initial_condition = 5e-6
[]
[]
[Functions]
[power_history]
type = PiecewiseLinear
x = '0 1.0e4 1.0e8'
y = '0 1.0 1.0'
scale_factor = 20e3 # 20 kW/m peak power.
[]
[coolant_pressure_ramp]
type = PiecewiseLinear
x = '0 10000'
y = '0 1'
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[fuel]
block = 3
strain = FINITE
incremental = true
add_variables = true
decomposition_method = EigenSolution
extra_vector_tags = 'ref'
eigenstrain_names = fuel_thermal_strain
[]
[clad]
block = 1
strain = FINITE
incremental = true
add_variables = true
decomposition_method = EigenSolution
extra_vector_tags = 'ref'
eigenstrain_names = clad_thermal_strain
[]
[]
[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'
fission_rate = fission_rate
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
block = '3'
value = 5.3548e+14
fission_rate_function = power_history
[]
[burnup]
type = BurnupAux
variable = burnup
block = '3'
fission_rate = fission_rate
molecular_weight = 0.270
[]
[grain_radius]
type = GrainRadiusAux
block = '3'
variable = grain_radius
temperature = temp
[]
[]
[Contact]
[pellet_clad_mechanical]
primary = 5
secondary = 10
penalty = 1e+14 #1e7
model = frictionless
tangential_tolerance = 5e-4
normal_smoothing_distance = 0.1
normalize_penalty = true
[]
[]
[ThermalContact]
[pellet_clad_thermal]
type = GasGapHeatTransfer
variable = temp
primary = 5
secondary = 10
gas_released = 'fis_gas_released he_prod'
initial_moles = initial_moles
jump_distance_model = LANNING
layer_thickness = layer_thickness
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
initial_gas_types = Xe
initial_fractions = 1
released_gas_types = 'Kr Xe;
He'
released_fractions = '0.153 0.847;
1'
roughness_coef = 3.2
roughness_secondary = 1e-6
roughness_primary = 2e-6
emissivity_primary = 0.8
emissivity_secondary = 0.8
quadrature = true
normal_smoothing_distance = 0.1
[]
[]
[BCs]
[no_x_all]
type = DirichletBC
variable = disp_x
boundary = 1003
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 = 20
value = 0.0
[]
[no_x_fuel]
type = DirichletBC
variable = disp_x
boundary = 1005
value = 0.0
[]
[Clad_Temp]
type = DirichletBC
variable = temp
boundary = '2'
value = 580.0
[]
[Pressure]
[coolantPressure]
boundary = '2'
factor = 15.5e6
function = coolant_pressure_ramp
[]
[]
[PlenumPressure]
[plenumPressure]
boundary = 9
initial_pressure = 0.50e6
startup_time = 0.0
material_input = 'fis_gas_released he_prod'
output_initial_moles = initial_moles
temperature = interior_temp
volume = gas_volume
output = plenum_pressure
[]
[]
[]
[Materials]
[fuel_thermal]
type = UO2Thermal
block = '3'
temperature = temp
burnup = burnup
thermal_conductivity_model = NFIR
[]
[fuel_elasticity_tensor]
type = UO2ElasticityTensor
block = 3
[]
[fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = 3
[]
[fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = 3
thermal_expansion_coeff = 10.0e-6
stress_free_temperature = 298
eigenstrain_name = fuel_thermal_strain
[]
[fission_gas_release]
type = UO2Sifgrs
block = '3'
temperature = temp
fission_rate = fission_rate
grain_radius = grain_radius
gbs_model = true
burnup = burnup
diff_coeff_option = TURNBULL_D1_D2
[]
[clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[]
[fclad_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = 1
youngs_modulus = 7.5e10
poissons_ratio = 0.3
[]
[clad_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = 1
[]
[clad_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = 1
thermal_expansion_coeff = 5.0e-6
stress_free_temperature = 298
eigenstrain_name = clad_thermal_strain
[]
[clad_density]
type = StrainAdjustedDensity
block = 1
strain_free_density = 6551.0
[]
[fuel_density]
type = StrainAdjustedDensity
block = '3'
strain_free_density = ${initial_fuel_density}
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
l_max_its = 25
nl_max_its = 40
nl_rel_tol = 1e-5
nl_abs_tol = 1e-8
dtmax = 1.0e6
dtmin = 1.0
end_time = 5.3e7 # 1.7 years (~3% burnup)
[TimeStepper]
type = IterationAdaptiveDT
dt = 1e3
optimal_iterations = 30
iteration_window = 4
time_t = '0 1e4 1e8'
time_dt = '1e4 1e5 1e6'
timestep_limiting_function = power_history
force_step_every_function_point = true
[]
[Quadrature]
order = fifth
side_order = seventh
[]
verbose = true
[]
[Postprocessors]
[clad_inner_vol]
type = InternalVolume
boundary = 7
execute_on = 'initial linear'
[]
[pellet_volume]
type = InternalVolume
boundary = 8
execute_on = 'initial linear'
[]
[gas_volume]
type = InternalVolume
boundary = 9
execute_on = 'initial linear'
[]
[interior_temp]
type = SideAverageValue
boundary = 9 # cladding interior and pellet exterior
variable = temp
execute_on = 'initial linear'
[]
[fis_gas_produced] # fission gas produced (moles)
type = ElementIntegralFisGasGeneratedSifgrs
block = '3'
[]
[fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = '3'
[]
[fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = '3'
[]
[fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = '3'
[]
[power_history]
type = FunctionValuePostprocessor
function = power_history
[]
[dt]
type = TimestepSize
[]
[residual]
type = Residual
[]
[nl_its]
type = NumNonlinearIterations
[]
[lin_its]
type = NumLinearIterations
[]
[average_burnup]
type = ElementAverageValue
block = '3'
variable = burnup
[]
[burnup]
type = ElementAverageValue
block = '3'
variable = burnup
[]
[average_fissionrate]
type = ElementAverageValue
block = '3'
variable = fission_rate
[]
[rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = '3'
[]
[rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 0.01 # change: length of fuel stack in meters (1 pellet height)
[]
[he_prod]
type = IFBAHeProduction
zrb2_load = 1.181e-4
ifba_len = 1.0e-2
b10_enrich = 0.50
zrb2_rel_dens = 0.7
model = burnup
u235_enrich = 0.045
burnup = average_burnup
[]
[]
[Outputs]
time_step_interval = 1
exodus = false
[console]
type = Console
solve_log = true
output_linear = true
max_rows = 25
[]
[chkfile]
type = CSV
show = 'average_burnup burnup he_prod interior_temp plenum_pressure'
file_base = fill_gas_xenon_w_ifba_check
[]
[out]
type = CSV
delimiter = ' '
[]
[]
(test/tests/mox_thermal/Halden/ad_test.i)
# This test case is prepared to test the thermal conductivity using the Halden model.
#
# The temperature is ramped on all BCs of the unit line from 500 K to 3000K over 100 Ms.
# The fission rate is 2e19 n/m3/s, so that the burnup goes from 0 to
# ~ 8.6 at.% (82 MWd/kgU) at the end of the simulation.
#
# Thermal conductivity of UO2 fuel at 95%TD is computed using the Halden UO2 thermal conductivity model.
# The BISON predictions (BISON_k) compared to the expected results (expected_k)
# are summarized (see: post_processing.py --> comparison_results.csv) as:
#
# expected_k BISON_k percent_error expected_Pu_k BISON_Pu_k percent_error_Pu
# 5.869784658 5.869784658 -7.55E-13 5.401819451 5.401819451 -1.55E-13
# 5.580864694 5.580864694 5.22E-13 5.136090924 5.136090924 3.77E-13
# 5.320199198 5.320199198 -7.11E-13 4.896360254 4.896360254 9.77E-13
# 5.083868147 5.083868147 -6.88E-13 4.6790212 4.6790212 -1.04E-12
# 4.868646629 4.868646629 2.00E-13 4.481107031 4.481107031 5.33E-13
[GlobalParams]
order = FIRST
family = LAGRANGE
[]
[Mesh]
[geom]
type = GeneratedMeshGenerator
dim = 1
elem_type= EDGE2
[]
[]
[Variables]
[T]
initial_condition = 500
[]
[]
[AuxVariables]
[fission_rate]
[]
[burnup]
[]
[th_cond]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[heat]
type = ADHeatConduction
variable = T
[]
[heat_ie]
type = ADHeatConductionTimeDerivative
variable = T
[]
[heat_source]
type = ADNeutronHeatSource
variable = T
energy_per_fission = 3.2e-11
fission_rate = fission_rate
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable= fission_rate
value = 2e19 # Standard fission_rate fissions/m^3/s
execute_on = 'initial timestep_begin'
[]
[th_cond]
type = ADMaterialRealAux
variable = th_cond
property = thermal_conductivity
execute_on = 'initial linear'
[]
[burnup]
type = ADBurnupAux
variable = burnup
density = 10431.0 # 95% TD
fission_rate = fission_rate
execute_on = timestep_begin
[]
[]
[Functions]
[temp_ramp]
type = PiecewiseLinear
x = '0.0 100.e6'
y = '500 3000'
[]
[]
[BCs]
[VariableT]
type = ADFunctionDirichletBC
boundary = 'left right'
variable = T
function = temp_ramp
[]
[]
[Materials]
[fuel_thermal]
type = ADMOXThermal
temperature = T
burnup = burnup
thermal_conductivity_model = HALDEN
oxy_to_metal_ratio = 2.0
initial_porosity = 0.05
Pu_content = 0.07
[]
[density]
type = ADParsedMaterial
property_name = density
expression = 10431.0
[]
[]
[Executioner]
type = Transient
start_time = 0
num_steps = 100
dt = 1.0e6
[]
[Postprocessors]
[avg_th_cond]
type = ElementAverageValue
variable = th_cond
execute_on = 'initial timestep_end'
[]
[average_rod_burnup]
type = ElementAverageValue
variable = burnup
execute_on = timestep_end
[]
[average_fuel_T]
type = ElementAverageValue
variable = T
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
csv = true
[]
(assessment/MOX/JOYO/B14/PTM002/analysis/b14_ptm002_p-15_percent.i)
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[Mesh]
[mesh]
type = FileMeshGenerator
file = half_symm_disk_tube.e
[]
[]
[Variables]
[temp]
initial_condition = 295
[]
[pore]
initial_condition = 0.1372
scaling = 1e14
block = 1
[]
[]
[AuxVariables]
[pore_speed_aux]
order = constant
family = monomial
[]
[fission_rate_aux_variable_mox]
order = first
family = lagrange
[]
[grad_temp_x]
order = CONSTANT
family = MONOMIAL
[]
[thermal_conductivity]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[power_history1]
type = PiecewiseLinear
data_file = power_-15%.csv
format = columns
[]
[f_temp_out_clad]
type = PiecewiseLinear
x = '0 100 249100 251280'
y = '600 882.81 882.81 600'
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temp
[]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temp
[]
[heat_source]
type = NeutronHeatSource
variable = temp
fission_rate = fission_rate_aux_variable_mox
[]
[pore_continuity]
type = MOXPoreContinuity
variable = pore
temperature = temp
debug = 0
alpha = 0.25
beta = 1
heating_function = power_history1
block = 1
[]
[pore_diffusion]
type = MOXPoreDiffusion
variable = pore
debug = 0
nu = 1e-10
heating_function = power_history1
v_upper = 1e-12
v_lower = 1e-20
block = 1
[]
[poretimederivative]
type = CoefTimeDerivative
variable = pore
Coefficient = 1
block = 1
[]
[]
[AuxKernels]
[pore_speed_aux]
type = MaterialRealAux
variable = pore_speed_aux
property = pore_velocity
execute_on = 'initial timestep_end'
block = 1
[]
[fission_rate_aux_kernel_mox]
type = FissionRateGeneral
fission_rate_formulation = MOX
variable = fission_rate_aux_variable_mox
porosity = pore
initial_porosity = 0.143
rod_ave_lin_pow = power_history1
pellet_diameter = 0.00535
pellet_inner_diameter = 0
energy_per_fission = 3.2e-11
execute_on = 'initial timestep_end'
value = 1.0
block = 1
[]
[grad_temp_x_aux]
type = VariableGradientComponent
variable = grad_temp_x
component = x
gradient_variable = temp
execute_on = 'initial timestep_end'
[]
[ThermalConductivityAux]
type = MaterialRealAux
execute_on = linear
property = thermal_conductivity
variable = thermal_conductivity
block = 1
[]
[]
[BCs]
[temp_clad_outside]
type = FunctionDirichletBC
variable = temp
function = f_temp_out_clad
boundary = '3'
[]
[]
[ThermalContact]
[thermal_contact]
type = GapHeatTransfer
variable = temp
primary = 1
secondary = 2
gap_conductivity = 0.2
gap_geometry_type = cylinder
cylinder_axis_point_1 = '0 0 0'
cylinder_axis_point_2 = '0 0 1'
normal_smoothing_distance = 0.01
tangential_tolerance = 0.01
quadrature = true
[]
[]
[Materials]
[fuel_thermal]
type = MAMOXThermal
temperature = temp
porosity = pore
block = 1
Am_content = 0.0237
oxy_to_metal_ratio = 1.98
[]
[fuel_density]
type = GenericConstantMaterial
prop_names = density
prop_values = 11057.75
block = 1
[]
[pore_velocity]
type = MOXPoreVelocity
temperature = temp
limit = 1e-3
scale_factor = 0.1
block = 1
[]
[clad_thermal]
type = SS316Thermal
block = 2
temperature = temp
[]
[clad_density]
type = GenericConstantMaterial
prop_names = density
prop_values = 8000.0
block = 2
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -sub_pc_type'
petsc_options_value = 'asm lu'
line_search = 'none'
l_max_its = 50
l_tol = 8e-3
nl_max_its = 50
nl_rel_tol = 1e-5
nl_abs_tol = 1e-6
end_time = 251280
dtmin = 0.25
automatic_scaling = true
compute_scaling_once = false
[TimeStepper]
type = IterationAdaptiveDT
dt = 1e1
optimal_iterations = 15
iteration_window = 2
linear_iteration_ratio = 100
growth_factor = 2
cutback_factor = .5
force_step_every_function_point = true
timestep_limiting_function = power_history1
[]
[]
[Postprocessors]
[ave_fuel_temp]
type = ElementAverageValue
variable = temp
block = 1
[]
[max_fuel_temp]
type = NodalExtremeValue
value_type = max
variable = temp
block = 1
[]
[ave_pore]
type = ElementAverageValue
variable = pore
block = 1
[]
[max_pore]
type = NodalExtremeValue
value_type = max
variable = pore
block = 1
[]
[min_pore]
type = NodalExtremeValue
value_type = min
variable = pore
block = 1
[]
[max_pore_speed]
type = ElementExtremeValue
value_type = max
variable = pore_speed_aux
block = 1
[]
[rod_total_power_mox]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate_aux_variable_mox
block = 1
[]
[rod_input_power]
type = FunctionValuePostprocessor
function = power_history1
scale_factor = 0.5 # half disk
[]
[ave_themal_conductivity]
type = ElementAverageValue
variable = thermal_conductivity
block = 1
[]
[]
[VectorPostprocessors]
[line_value_vector_postprocessor_pore]
type = LineValueSampler
variable = pore
start_point = '0.0 0.00008 0.0'
end_point = '0.002675 0.00008 0.0'
num_points = 200
sort_by = x
execute_on = linear
outputs = stuff_v_rad
control_tags = a
[]
[line_value_vector_postprocessor_gradT]
type = LineValueSampler
variable = grad_temp_x
start_point = '0.0 0.00008 0.0'
end_point = '0.002675 0.00008 0.0'
num_points = 100
sort_by = x
execute_on = linear
outputs = stuff_v_rad
[]
[line_value_vector_postprocessor_pore_speed]
type = LineValueSampler
variable = pore_speed_aux
start_point = '0.0 0.00008 0.0'
end_point = '0.002675 0.00008 0.0'
num_points = 100
sort_by = x
execute_on = linear
outputs = stuff_v_rad
[]
[line_value_vector_postprocessor_temp]
type = LineValueSampler
variable = temp
start_point = '0.0 0.00008 0.0'
end_point = '0.002675 0.00008 0.0'
num_points = 100
sort_by = x
execute_on = linear
outputs = stuff_v_rad
[]
[line_value_vector_postprocessor_thermal_conductivity]
type = LineValueSampler
variable = thermal_conductivity
start_point = '0.0 0.00008 0.0'
end_point = '0.002675 0.00008 0.0'
num_points = 100
sort_by = x
execute_on = linear
outputs = stuff_v_rad
[]
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = true
csv = true
color = false
[console]
type = Console
max_rows = 25
all_variable_norms = true
[]
[stuff_v_rad]
type = CSV
execute_on = 'FINAL'
[]
[chkfile]
type = CSV
execute_on = FINAL
show = 'ave_fuel_temp max_pore'
[]
[]
[Debug]
show_var_residual_norms = true
show_var_residual = 'temp pore'
[]
(assessment/MOX/FFTF/FO-2/L09/analysis/fftf_fo2_L09_master_sampleH.i)
initial_fuel_density = 10431.0
[GlobalParams]
density = ${initial_fuel_density}
energy_per_fission = 3.2e-11 # J/fission
[]
[Problem]
type = ReferenceResidualProblem
extra_tag_vectors = 'ref'
reference_vector = 'ref'
[]
[Mesh]
coord_type = RZ
[mesh]
type = GeneratedMeshGenerator
dim = 1
xmax = 2.794e-3
xmin = 6.985e-4
nx = 1000
elem_type = EDGE
[]
[]
[Variables]
[temp]
initial_condition = 295.0
scaling = 1
[]
[]
[AuxVariables]
[pore]
[]
[fission_rate]
[]
[burnup]
[]
[]
[Functions]
[power_history]
type = PiecewiseLinear
x = '0 74993.42422 31858942.74'
y = '0 24065.94372 24065.94372'
[]
[fuel_surface_temp]
type = PiecewiseLinear
x = '-200 74993.42422 31858942.74'
y = '295 1089 1268'
[]
[]
[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
fission_rate = fission_rate
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[fission_rate]
type = FissionRateGeneral
fission_rate_formulation = MOX
variable = fission_rate
initial_porosity = 0.2
rod_ave_lin_pow = power_history
pellet_diameter = 0.005588
execute_on = timestep_begin
porosity = pore
pellet_inner_diameter = 0.001397
[]
[burnup]
type = BurnupAux
fission_rate = fission_rate
variable = burnup
execute_on = timestep_begin
[]
[]
[BCs]
[temp_outside]
type = FunctionDirichletBC
variable = temp
boundary = right
function = fuel_surface_temp
[]
[]
[Materials]
[fuel_thermal]
type = MAMOXThermal
temperature = temp
Am_content = 0.0
Np_content = 0.0
porosity = pore
output_properties = 'thermal_conductivity'
[]
[fuel_density]
type = ParsedMaterial
property_name = density
expression = ${initial_fuel_density}
[]
[]
[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'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
fixed_point_abs_tol = 1e-5
fixed_point_rel_tol = 1e-6
fixed_point_max_its = 1
l_max_its = 50
l_tol = 8e-3
nl_max_its = 15
nl_rel_tol = 1e-4
nl_abs_tol = 1e-4
start_time = -200
n_startup_steps = 1
end_time = 31858942.74
dtmax = 1e6
dtmin = 1
[TimeStepper]
type = IterationAdaptiveDT
dt = 2e2
optimal_iterations = 10
iteration_window = 2
linear_iteration_ratio = 100
growth_factor = 2
cutback_factor = .5
force_step_every_function_point = true
timestep_limiting_function = power_history
[]
[]
[Postprocessors]
[ave_temp_interior]
type = ElementAverageValue
variable = temp
execute_on = 'initial linear'
[]
[average_burnup]
type = ElementAverageValue
variable = burnup
[]
[ave_pore]
type = ElementAverageValue
variable = pore
[]
[max_pore]
type = NodalExtremeValue
value_type = max
variable = pore
[]
[min_pore]
type = NodalExtremeValue
value_type = min
variable = pore
[]
[rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
[]
[rod_input_power]
type = FunctionValuePostprocessor
function = power_history
[]
[]
[VectorPostprocessors]
[fuel_radial_temperature]
type = LineValueSampler
variable = temp
start_point = '6.985e-4 0 0.0'
end_point = '2.794e-3 0 0.0'
num_points = 200
execute_on = final
sort_by = x
outputs = line_plot
[]
[radial_porosity]
type = LineValueSampler
variable = pore
start_point = '6.985e-4 0 0.0'
end_point = '2.794e-3 0 0.0'
num_points = 200
execute_on = final
sort_by = x
outputs = line_plot
[]
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = true
color = true
csv = true
[console]
type = Console
max_rows = 25
[]
[line_plot]
type = CSV
execute_on = 'FINAL'
time_step_interval = 1
file_base = 1d
create_final_symlink = true
[]
[chkfile]
type = CSV
execute_on = FINAL
show = 'ave_temp_interior max_pore'
[]
[]
[MultiApps]
[sub]
type = TransientMultiApp
app_type = BisonApp
positions = '0 0 0'
input_files = fftf_fo2_L09_sub_1D.i
execute_on = TIMESTEP_END
sub_cycling = false
[]
[]
[Transfers]
[pore_from_sub]
type = MultiAppGeometricInterpolationTransfer
from_multi_app = sub
source_variable = pore
variable = pore
execute_on = SAME_AS_MULTIAPP
[]
[temp_to_sub]
type = MultiAppGeometricInterpolationTransfer
to_multi_app = sub
source_variable = temp
variable = temp
check_multiapp_execute_on = true
execute_on = SAME_AS_MULTIAPP
[]
[]
[Debug]
show_var_residual_norms = true
[]
(test/tests/mox_oxygen_transport/mox_oxygen_transport_hypo_V_Pu_up3.3.i)
# This test is designed to exercise the MOXOxygen diffuion kernel. The kernel contains Fickian
# and Soret diffusion terms and a diffusion coefficient that is a function of temperature.
# There doesn't seem to be a simple analytical solution to this pde, so only general observations
# can be made as to whether or not the result is reasonable. The solution should be a form of
# exponential. The solution's shape agrees with Fig.11.21 from "Fundamental ascpects of nuclear reactor fuel elements", by Olander.
# HYPOstochiometric case with a Plutonium Valence between 3.3 and 4
[GlobalParams]
density = 10431.0
energy_per_fission = 3.2e-11 # J/fission
[]
[Mesh]
coord_type = RZ
[mesh]
type = GeneratedMeshGenerator
dim = 1
xmax = 2.794e-3 #pellet radius
nx = 100
elem_type = EDGE
[]
[]
[Variables]
[temp]
initial_condition = 1400.0
[]
[oxygen]
order = FIRST
family = LAGRANGE
initial_condition = 0.01
scaling = 1e-20
[]
[]
[AuxVariables]
[fission_rate]
[]
[burnup]
[]
[]
[Functions]
[power_history]
type = PiecewiseLinear
x = '0 10000'
y = '0 50000'
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temp
[]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temp
[]
[heat_source]
type = NeutronHeatSource
variable = temp
fission_rate = fission_rate
[]
[oxygen_time_derivative]
type = TimeDerivative
variable = oxygen
[]
[oxygen]
type = MOXOxygenDiffusion
variable = oxygen
temperature = temp
burnup = burnup
oxygen_to_metal_ratio = oxygen_to_metal_ratio
[]
[]
[AuxKernels]
[fission_rate]
type = FissionRateGeneral
fission_rate_formulation = MOX
variable = fission_rate
rod_ave_lin_pow = power_history
execute_on = timestep_begin
pellet_diameter = 0.005588
[]
[burnup]
type = BurnupAux
fission_rate = fission_rate
variable = burnup
execute_on = timestep_begin
[]
[]
[BCs]
[temp_outside]
type = DirichletBC
variable = temp
boundary = right
value = 1400
[]
[]
[Materials]
[fuel_thermal]
type = MAMOXThermal
temperature = temp
oxy_to_metal_ratio = 1.98
Am_content = 0.0
Np_content = 0.0
output_properties = 'thermal_conductivity'
[]
[fuel_density]
type = ParsedMaterial
property_name = density
expression = 10431.0
[]
[O_M_ratio]
type = MOXOxygenToMetalRatio
oxygen = oxygen
output_properties = 'oxygen_to_metal_ratio'
outputs = all
[]
[]
[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'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
l_tol = 8e-3
nl_abs_tol = 1e-9
nl_rel_tol = 1e-9
n_startup_steps = 1
end_time = 10000
dt = 200
dtmin = 200
[]
[Postprocessors] #Oxygen to metal ratio is an easier variable to look at for the user
[ave_ox]
type = ElementAverageValue
variable = oxygen
[]
[max_ox]
type = NodalExtremeValue
value_type = max
variable = oxygen
[]
[min_ox]
type = NodalExtremeValue
value_type = min
variable = oxygen
[]
[ave_om_ratio]
type = ElementAverageValue
variable = oxygen_to_metal_ratio
[]
[max_om_ratio]
type = ElementExtremeValue
value_type = max
variable = oxygen_to_metal_ratio
[]
[min_om_ratio]
type = ElementExtremeValue
value_type = min
variable = oxygen_to_metal_ratio
[]
[]
[VectorPostprocessors]
[radial_oxygen]
type = LineValueSampler
variable = oxygen
start_point = '0.0 0.0 0.0'
end_point = '2.794e-3 0.0 0.0'
num_points = 200
execute_on = final
sort_by = x
outputs = line_plot
[]
[radial_oxygen-to-metal-ratio]
type = LineValueSampler
variable = oxygen_to_metal_ratio
start_point = '0.0 0.0 0.0'
end_point = '2.794e-3 0.0 0.0'
num_points = 200
execute_on = final
sort_by = x
outputs = line_plot
[]
[]
[Outputs]
exodus = false
csv = true
[console]
type = Console
[]
[line_plot]
type = CSV
execute_on = 'FINAL'
time_step_interval = 1
[]
[]
[Debug]
show_var_residual_norms = true
[]
(test/tests/meso_thcond_test/onlymeso_thcond_test.i)
[Mesh]
[mesh]
type = FileMeshGenerator
file = pelletfine1_rz.e
[]
[]
[Variables]
[T]
order = FIRST
family = LAGRANGE
initial_condition = 300.0 # set initial T to ambient
[]
[]
[AuxVariables]
[fission_rate]
order = FIRST
family = LAGRANGE
block = 2
[]
[burnup]
order = FIRST
family = LAGRANGE
block = 2
[]
[th_cond]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = T
[]
[heat_source]
type = NeutronHeatSource
variable = T
block = 2
energy_per_fission = 3.2e-11
fission_rate = fission_rate
[]
[]
[Problem]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
block = 2
value = 1.183e19 # corrected average power to 200 W/cm
[]
[th_cond]
type = MaterialRealAux
variable = th_cond
property = thermal_conductivity
block = 2
[]
[burnup]
type = ConstantAux
variable = burnup
value = 0.001
[]
[]
[BCs]
[ConstantT]
type = DirichletBC
boundary = 10
variable = T
value = 500
[]
[]
[Materials]
[GBcoverage]
# prop_values = '0.0 0.0'
type = GenericConstantMaterial
prop_names = 'GBCoverage fis_gas_grain fis_gas_reslvd'
prop_values = '0.4 300.0 68.0'
block = 2
[]
[fuel_thermal]
type = UO2ThermalMeso
block = 2
temperature = T
thermal_conductivity_model = FINK_LUCUTA
burnup = burnup
initial_porosity = 0.015
grain_radius = 2.5e-6
Lucuta_and_meso = false
[]
[density]
type = ParsedMaterial
block = 2
property_name = density
expression = 10431.0
[]
[]
[Postprocessors]
[MaxT]
type = NodalExtremeValue
variable = T
execute_on = 'initial timestep_end'
[]
[]
[Executioner]
type = Steady
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_hypre_type -ksp_gmres_restart -mat_mffd_type'
petsc_options_value = 'hypre boomeramg 101 ds'
l_max_its = 60
l_tol = 1e-4
nl_max_its = 15
nl_rel_tol = 1e-11
nl_abs_tol = 1e-12
[]
[Outputs]
file_base = onlymeso
exodus = true
[]
(test/tests/sifgrs/uo2/ad_fast_mox.i)
# This test is for the application of Sifgrs to FBR MOX fuel.
# A lower limit for the grain-boundary bubble number density of 1.0e+11 bubbles/m2 is applied, which is recommended for FBR MOX simulations.
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 3
xmin = 0
xmax = 0.01
ymin = 0
ymax = 0.01
zmin = 0
zmax = 0.01
nx = 1
ny = 1
nz = 1
[]
[]
[Functions]
[Temp_func]
type = ParsedFunction
expression = '2000'
[]
[Fiss_func]
type = ParsedFunction
expression = '1.e20'
[]
[]
[Variables]
[T]
initial_condition = 2000
[]
[]
[AuxVariables]
[fission_rate]
[]
[bbl_bdr_2]
order = CONSTANT
family = MONOMIAL
block = 0
[]
[deltav_v0_bubble_GB]
order = CONSTANT
family = MONOMIAL
block = 0
[]
[]
[Kernels]
[heat]
type = ADHeatConduction
variable = T
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
value = 1
fission_rate_function = Fiss_func
execute_on = 'initial timestep_begin'
[]
[nbbl2]
type = ADMaterialRealAux
variable = bbl_bdr_2
property = bubble_GB_surface_density
execute_on = timestep_end
[]
[gbswe]
type = ADMaterialRealAux
variable = deltav_v0_bubble_GB
property = deltav_v0_bubble_GB
execute_on = timestep_end
[]
[]
[BCs]
[bottom_T]
type = ADFunctionDirichletBC
variable = T
function = Temp_func
boundary = bottom
[]
[]
[Materials]
[MOX]
type = ADHeatConductionMaterial
block = 0
thermal_conductivity = 2.5
specific_heat = 1.0
[]
[fission_gas_behavior]
type = ADUO2Sifgrs
block = 0
temperature = T
fission_rate = fission_rate
initial_porosity = 0.0
grain_radius_const = 8.0e-6
diff_coeff_option = TURNBULL_D1_4D2_4D3
bubble_gb_limit = 1.0e+11 #recommended value for fast MOX fuels
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
l_tol = 1e-4
nl_abs_tol = 1e-5
nl_rel_tol = 1e-5
start_time = 0.0
num_steps = 100
dt = 19800.
[]
[Postprocessors]
[fis_gas_generated]
type = ADElementIntegralFisGasGeneratedSifgrs
block = 0
[]
[fis_gas_released]
type = ADElementIntegralFisGasReleasedSifgrs
block = 0
[]
[fgr_percent]
type = FGRPercent
fission_gas_released = fis_gas_released
fission_gas_generated = fis_gas_generated
execute_on = linear
[]
[bubble_num_grain_boundary]
type = ElementalVariableValue
variable = bbl_bdr_2
elementid = 0
[]
[swelling_grain_boundary]
type = ElementalVariableValue
variable = deltav_v0_bubble_GB
elementid = 0
[]
[]
[Outputs]
exodus = false
csv = true
[]
(test/tests/sifgrs/uo2/mechanistic_igmodel.i)
# @Requirement F2.40
# This test is for evaluating the mechanistic model for the intra-granular fission gas behavior and bubble evolution in the Sifgrs fission gas model.
#
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 3
xmin = 0
xmax = 0.01
ymin = 0
ymax = 0.01
zmin = 0
zmax = 0.01
nx = 1
ny = 1
nz = 1
[]
[]
[Functions]
[Temp_func]
type = ParsedFunction
expression = '1273'
[]
[Fiss_func]
type = ParsedFunction
expression = '1.e19'
[]
[]
[Variables]
[T]
initial_condition = 1273
[]
[]
[AuxVariables]
[fission_rate]
[]
[fract_FGR_analytical]
order = CONSTANT
family = MONOMIAL
[]
[rad_bbl_grn]
order = CONSTANT
family = MONOMIAL
[]
[bbl_grn_3]
order = CONSTANT
family = MONOMIAL
[]
[gas_bbl_grn]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = T
diffusion_coefficient = 1
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
value = 1
fission_rate_function = Fiss_func
execute_on = 'initial timestep_begin'
[]
[bbl_cnc]
type = MaterialRealAux
variable = bbl_grn_3
property = bubble_concentration_intra
execute_on = 'TIMESTEP_END'
[]
[rad_bbl]
type = MaterialRealAux
variable = rad_bbl_grn
property = bubble_radius_intra
execute_on = 'TIMESTEP_END'
[]
[gascnc_bbl]
type = MaterialRealAux
variable = gas_bbl_grn
property = gas_concentration_bubble_intra
execute_on = 'TIMESTEP_END'
[]
[]
[BCs]
[bottom_T]
type = FunctionDirichletBC
variable = T
function = Temp_func
boundary = bottom
[]
[]
[Materials]
[fission_gas_behavior]
type = UO2Sifgrs
skip_bdr_model = true
temperature = T
fission_rate = fission_rate
grain_radius_const = 5.e-6
ig_bubble_model = NUCLEATION_RESOLUTION
initial_porosity = 0.0
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
l_tol = 1e-4
nl_abs_tol = 1e-5
nl_rel_tol = 1e-5
start_time = 0.0
num_steps = 10
dt = 19800.
[]
[Postprocessors]
[fis_gas_generated]
type = ElementIntegralFisGasGeneratedSifgrs
[]
[fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
[]
[]
[Outputs]
exodus = true
[]
(test/tests/decay_heating/interpolate_vs_series.i)
# Tests the DecayHeatFunction postprocessor. Compares the results obtained by interpolation of the
# ANSI table with direct calculation of the exponential series fit.
[Mesh]
coord_type = RZ
[mesh]
type = FileMeshGenerator
file = cylinder.e
[]
[]
[Functions]
[power_function]
type = PiecewiseLinear
x = '0 1e8 1.00000001e8 2e8'
y = '0 1 0 0'
[]
[]
[Variables]
[temp]
order = FIRST
family = LAGRANGE
initial_condition = 0.0
[]
[]
[AuxVariables]
[fission_rate]
block = 1
[]
[]
[Kernels]
[ie]
type = HeatConductionTimeDerivative
variable = temp
[]
[fission_heat_source]
type = NeutronHeatSource
variable = temp
fission_rate = fission_rate
[]
[]
[AuxKernels]
[fission_rate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
block = 1
value = 1e10
fission_rate_function = power_function
execute_on = timestep_begin
[]
[]
[Materials]
[mat]
type = GenericConstantMaterial
prop_names = 'thermal_conductivity specific_heat density'
prop_values = '10 1 1'
block = 1
[]
[]
[Executioner]
type = Transient
solve_type = 'NEWTON'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
start_time = 0.0
end_time = 8e8
nl_rel_tol = 1e-8
nl_abs_tol = 1e-14
# Changing dt from 1e6 to .5e6 fixes a DIVERGED_FNORM_NAN
# error in the first timestep of this test on PETSc 3.7.0.
dt = .5e6
dtmin = .5e6
line_search = 'none'
[]
[Postprocessors]
[decay_heat_function]
type = DecayHeatFunction
time_at_shutdown = 1e8
neutron_capture_factor = 1
[]
[decay_heat_sum]
type = DecayHeatFunction
time_at_shutdown = 1e8
neutron_capture_factor = 1
table_or_sum = sum
[]
[]
[Outputs]
exodus = true
[]
(test/tests/gamma_heating/gamma_heating.i)
# Tests NeutronHeatSource for both fuel and clad.
#
# The material constants and heat generation are specified such that
# for both the fuel and the clad, a 100 degree increase would be seen
# for each timestep. However, Neumann bcs are also in place that
# reduce the increase by 50 degrees.
[Mesh]
coord_type = RZ
[mesh]
type = FileMeshGenerator
file = gamma_heating.e
[]
[]
[Variables]
[temp]
order = FIRST
family = LAGRANGE
initial_condition = 500.0
[]
[]
[Functions]
[rod_ave_lin_pow]
type = ParsedFunction
expression = '3.3333333333333e3'
[]
[rod_axial_profile]
type = ParsedFunction
expression = '1.0'
[]
[]
[AuxVariables]
[fission_rate]
order = FIRST
family = LAGRANGE
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temp
[]
[ie]
type = HeatConductionTimeDerivative
variable = temp
[]
[heat_source_fuel]
# energy_per_fission * fission_rate * fraction = 100
type = NeutronHeatSource
block = 1
variable = temp
energy_per_fission = 4.123711340206e-13
fission_rate = fission_rate
fraction = 0.97
[]
[heat_source_clad]
# rod_ave_lin_pow / area * fraction = 100
type = NeutronHeatSource
block = 2
variable = temp
outer_diameter = 1.7981211151463525
inner_diameter = 1.4
fraction = 0.03
rod_ave_lin_pow = rod_ave_lin_pow
axial_profile = rod_axial_profile
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
value = 2.5e14
[]
[]
[BCs]
[fuel]
type = NeumannBC
boundary = 2
variable = temp
value = -14.104739588693908 # 50 / area of sset 2
[]
[clad]
type = NeumannBC
boundary = 4
variable = temp
value = -8.8511803655084389 # 50 / area of sset 4
[]
[]
[Materials]
[goo]
type = HeatConductionMaterial
block = '1 2'
thermal_conductivity = 1.0e6
specific_heat = 1.0
[]
[density]
type = ParsedMaterial
block = '1 2'
property_name = density
expression = 1
[]
[]
[Executioner]
type = Transient
solve_type = 'NEWTON'
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_rel_tol = 1e-6
start_time = 0.0
num_steps = 5
dt = 1.0
[]
[Outputs]
exodus = true
[]
(test/tests/sifgrs/uo2/ad_polypole1.i)
# @Requirement F2.40
# This test is for evaluating the PolyPole-1 algorithm (for the intra-granular diffusion calculation)
# in the Sifgrs fission gas behavior model.
#
[Mesh]
[mesh]
type = FileMeshGenerator
file = 1hex8_10mm_cube.e
[]
[]
[Functions]
[Temp_func]
type = ParsedFunction
expression = '1700'
[]
[Fiss_func]
type = ParsedFunction
expression = '2.5e19'
[]
[]
[Variables]
[T]
initial_condition = 1700
[]
[]
[AuxVariables]
[fission_rate]
order = FIRST
family = LAGRANGE
[]
[fract_FGR_analytical]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[heat]
type = ADHeatConduction
variable = T
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
value = 1
fission_rate_function = Fiss_func
execute_on = 'initial timestep_begin'
[]
[FRA]
type = ADMaterialRealAux
variable = fract_FGR_analytical
property = fract_FGR_analytical
[]
[]
[BCs]
[bottom_T]
type = ADFunctionDirichletBC
variable = T
function = Temp_func
boundary = 1
[]
[]
[Materials]
[UO2]
type = ADHeatConductionMaterial
block = 1
thermal_conductivity = 1.0
specific_heat = 1.0
[]
[fission_gas_behavior]
type = ADUO2Sifgrs
block = 1
skip_bdr_model = true
temperature = T
fission_rate = fission_rate
testing_output = true
ig_diff_algorithm = POLYPOLE1
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
l_tol = 1e-4
nl_abs_tol = 1e-5
nl_rel_tol = 1e-5
start_time = 0.0
num_steps = 50
dt = 1e6
[]
[Postprocessors]
[fis_gas_generated]
type = ADElementIntegralFisGasGeneratedSifgrs
block = 1
[]
[fis_gas_released]
type = ADElementIntegralFisGasReleasedSifgrs
block = 1
[]
[]
[Outputs]
[out]
type = Exodus
[]
[]
(test/tests/dislocation_density/isotropic_dislocation_density_burnup_aux.i)
# This test is to verify the calcuation of dislocation density as a function of burnup
# using the smeared isotropic Kocks' type dislocation density expression.
#
# UO2IsotropicDislocationDensity calculates the dislocation density with the solution to the ODE
# for dislocation density evolution rate
#
# \dot{\rho}_{disl} = C \cdot \left( k_1 \sqrt{\rho_{disl}} - k_2 \rho_{disl} \right)
#
# where the parameters have been fit to experimental data from Nogita and Une (1994)
# C = 2.8e-4
# k_1 = 2.48e9
# k_2 = 10.0
#
# Dislocation density in this model does not contribute to strain, so only a heat conduction
# kernel is used in this test to calculate the burnup using BurnupAux.
#
# Expected Results:
# Simulation Time(s) Burnup (FIMA) Dislocation density
# 0.0 0.0 1.01e14
# 0.5e7 7.473e-3 1.01e14
# 1.0e7 1.495e-2 1.52e14
# 1.5e7 2.242e-2 2.11e14
# 2.0e7 2.989e-2 2.79e14
# 2.5e7 3.736e-2 3.55e14
# 3.0e7 4.484e-2 4.38e14
#
# The BISON results match these expected results exactly.
[GlobalParams]
density = 15000
[]
[Mesh]
[mesh]
type = GeneratedMeshGenerator
dim = 2
[]
[]
[Variables]
[temp]
[]
[]
[AuxVariables]
[fission_rate]
[]
[burnup]
[]
[dislocation_density]
[]
[]
[Functions]
[constant_fission_rate]
type = ParsedFunction
expression = 5.0e19
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temp
[]
[]
[AuxKernels]
[fission_rate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
fission_rate_function = constant_fission_rate
execute_on = 'initial timestep_begin'
[]
[burnup]
type = BurnupAux
variable = burnup
fission_rate = fission_rate
[]
[dislocation_density]
type = UO2IsotropicDislocationDensity
variable = dislocation_density
burnup = burnup
execute_on = 'initial linear'
[]
[]
[BCs]
[fix_surf_temp]
type = DirichletBC
variable = temp
boundary = left
value = 298.0
[]
[]
[Materials]
[thermal]
type = HeatConductionMaterial
thermal_conductivity = 1.0
specific_heat = 1.0
[]
[density]
type = ParsedMaterial
property_name = density
expression = 15000
[]
[]
[Executioner]
type = Transient
nl_abs_tol = 1e-10
num_steps = 6
dt = 5e6
[]
[Postprocessors]
[fission_rate]
type = ElementAverageValue
variable = fission_rate
execute_on = 'initial timestep_end'
[]
[burnup]
type = ElementAverageValue
variable = burnup
[]
[dislocation_density]
type = ElementAverageValue
variable = dislocation_density
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
exodus = true
[]
(test/tests/axial_relocation/uo2_pulverization_phasefield.i)
# This file is to test the phase-field based pulverization criterion for UO2 fuel
# with evolve_bubble_pressure_hbs = false and using the 2D phase field criterion
# for pulverization.
# In the test 5 axial fuel slices are modeled without cladding with an outer fuel
# radius of 4.5 mm and slice height of 0.1 m. Ten radial finite elements are used.
# The burnup increases linearly from the fuel centerline to the fuel surface.
# Temperature is held at constant T = 673.15 K from t = 0 to t = 100, followed
# by a ramp in temperature from t = 100 to t = 110. Pulverization will occur
# during the ramp only, in the rim region where a significant amount of high burnup
# structure formation has begun. Local pulverization is tracked with the material
# property pulverized, which is 0 where pulverization has not occured and 1 where
# it has occurred. This material property is output to the exodus file for this test.
# At each time step, the porosity in the HBS region is calculated at each radial
# position using the correlation due to Kampf in the UO2Thermal material.
# The porosity, along with the hydrostatic stress, are used to calculate the
# critical pressure for grain boundary fracture using data from fits to phase-field
# fracture simulations. The current pressure of the most likely bubble
# size is compared to the critical pressure to determine whether pulverization has
# occurred at each quadrature point.
# Based upon the conditions and threshold given above at t = 110 s the outer three
# elements should be completely pulverized. The inner radius of the third element
# is at a radius of 3.150 mm. Therefore the layered averaged pulverized fuel volume
# (in each layer in this case) is analytically determined by:
#
# V_p = pi * L * (R_o^2 - R_p^2)
#
# where L is the slice height (0.1 m), R_o is the outer fuel radius, and R_p is the
# radius into the fuel at which pulverization ends. Therefore:
#
# V_p = pi * (0.1) * (4.5e-3^2 - 3.150e-3^2)
# V_p = 3.24448e-6 m^3 in each layer.
#
# The layered_pulverized_fuel_volume AuxVariable computed by BISON gives
# a layered volume of pulverized fuel as 3.24448e-6 m^3.
[Mesh]
coord_type = RZ
[layered1D_mesh]
type = Layered1DMeshGenerator
elem_type = EDGE2
slices_per_block = 5
pellet_outer_radius = 4.5e-3
include_clad = false
fuel_height = 0.5
include_plenum = false
nx_p = 10
pellet_mesh_density = customize
pellet_bottom_coor = 0.0
[]
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[temperature]
order = FIRST
family = LAGRANGE
initial_condition = 600
[]
[]
[AuxVariables]
[burnup]
order = FIRST
family = LAGRANGE
[]
[fission_rate]
order = FIRST
family = LAGRANGE
[]
[pulverized_aux]
order = CONSTANT
family = MONOMIAL
[]
[layered_pulverized_fuel_volume]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[burnup_function]
type = ParsedFunction
expression = 'x*1.6*t/4.275'
[]
[temperature_function]
type = ParsedFunction
expression = 'if(t < 100, 673.15, 673.15+(t-100)*15.5)'
[]
[Fiss_func]
type = ParsedFunction
expression = '1.e19'
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temperature
[]
[]
[AuxKernels]
[burnup]
type = FunctionAux
variable = burnup
function = burnup_function
execute_on = 'initial linear'
[]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
value = 1
fission_rate_function = Fiss_func
execute_on = 'initial timestep_begin'
[]
[pulverized]
type = MaterialRealAux
block = fuel
variable = pulverized_aux
property = pulverized
execute_on = 'initial nonlinear'
[]
[layered_pulverized_fuel_volume]
type = SpatialUserObjectAux
variable = layered_pulverized_fuel_volume
execute_on = timestep_end
block = fuel
user_object = layered_pulverized_fuel_volume
[]
[]
[BCs]
[temperature]
type = FunctionDirichletBC
boundary = '10 12'
variable = temperature
function = temperature_function
[]
[]
[Materials]
[fission_gas_behavior]
type = UO2Sifgrs
block = fuel
temperature = temperature
fission_rate = fission_rate
burnup = burnup
skip_bdr_model = true
hbs_model = true
hbs_material = hbs_formation
evolve_bubble_pressure_hbs = false
[]
[uo2pulverizationmesoscale]
type = UO2PulverizationMesoscale
block = fuel
temperature = temperature
output_properties = pulverized
pulverization_criterion_type = phase_field_2D
outputs = exodus
[]
[dummy_stress]
type = GenericConstantRankTwoTensor
tensor_name = 'stress'
tensor_values = '-1e7 -1e7 -1e7 0 0 0'
[]
[fuel_thermal]
type = UO2Thermal
block = fuel
thermal_conductivity_model = STAICU
hbs_porosity_correction = KAMPF
model_hbs_formation = true
temperature = temperature
burnup_function = burnup_function
output_properties = hbs_porosity
outputs = exodus
[]
[hbs_formation]
type = HighBurnupStructureFormation
temperature = temperature
burnup = burnup
threshold_temperature = 1273.15 # default
output_properties = hbs_volume_fraction
outputs = exodus
[]
[]
[UserObjects]
[fuel_pin_geometry]
type = Layered1DFuelPinGeometry
include_clad = false
mesh_generator = layered1D_mesh
[]
[layered_pulverized_fuel_volume]
type = LayeredVariableIntegral
variable = pulverized_aux
fuel_pin_geometry = fuel_pin_geometry
direction = y
execute_on = 'initial timestep_end'
block = fuel
num_layers = 5
[]
[]
[Executioner]
type = Transient
solve_type = PJFNK
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
line_search = 'none'
l_max_its = 100
nl_max_its = 100
nl_rel_tol = 1e-8
nl_abs_tol = 1e-10
l_tol = 1e-5
start_time = 0.0
num_steps = 110
dt = 1
[]
[Outputs]
exodus = true
[]
(assessment/MOX/JOYO/B14/PTM010/analysis/b14_ptm010_p-15_percent.i)
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[Mesh]
[mesh]
type = FileMeshGenerator
file = half_symm_disk_tube.e
[]
[]
[Variables]
[temp]
initial_condition = 295
[]
[pore]
initial_condition = 0.143
scaling = 1e14
block = 1
[]
[]
[AuxVariables]
[pore_speed_aux]
order = constant
family = monomial
[]
[fission_rate_aux_variable]
order = first
family = lagrange
[]
[fission_rate_aux_variable_mox]
order = first
family = lagrange
[]
[grad_temp_x]
order = CONSTANT
family = MONOMIAL
[]
[thermal_conductivity]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[power_history1]
type = PiecewiseLinear
data_file = power-15%.csv
format = columns
[]
[f_temp_out_clad]
type = PiecewiseLinear
x = '0 100 249100 251280'
y = '600 882 882 600'
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temp
[]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temp
[]
[heat_source]
type = NeutronHeatSource
variable = temp
fission_rate = fission_rate_aux_variable_mox
[]
[pore_continuity]
type = MOXPoreContinuity
variable = pore
temperature = temp
debug = 0
alpha = 0.25
beta = 1
heating_function = power_history1
block = 1
[]
[pore_diffusion]
type = MOXPoreDiffusion
variable = pore
debug = 0
nu = 1e-10
heating_function = power_history1
v_upper = 1e-12
v_lower = 1e-20
block = 1
[]
[poretimederivative]
type = CoefTimeDerivative
variable = pore
Coefficient = 1
block = 1
[]
[]
[AuxKernels]
[pore_speed_aux]
type = MaterialRealAux
variable = pore_speed_aux
property = pore_velocity
execute_on = 'initial timestep_end'
block = 1
[]
[fission_rate_aux_kernel_mox]
type = FissionRateGeneral
fission_rate_formulation = MOX
variable = fission_rate_aux_variable_mox
porosity = pore
initial_porosity = 0.143
rod_ave_lin_pow = power_history1
pellet_diameter = 0.00535
pellet_inner_diameter = 0
energy_per_fission = 3.2e-11
execute_on = 'initial timestep_end'
value = 1.0
block = 1
[]
[grad_temp_x_aux]
type = VariableGradientComponent
variable = grad_temp_x
component = x
gradient_variable = temp
execute_on = 'initial timestep_end'
[]
[ThermalConductivityAux]
type = MaterialRealAux
execute_on = linear
property = thermal_conductivity
variable = thermal_conductivity
block = 1
[]
[]
[BCs]
[temp_clad_outside]
type = FunctionDirichletBC
variable = temp
function = f_temp_out_clad
boundary = '3'
[]
[]
[ThermalContact]
[thermal_contact]
type = GapHeatTransfer
variable = temp
primary = 1
secondary = 2
gap_conductivity = 0.2
gap_geometry_type = cylinder
cylinder_axis_point_1 = '0 0 0'
cylinder_axis_point_2 = '0 0 1'
normal_smoothing_distance = 0.01
tangential_tolerance = 0.01
quadrature = true
[]
[]
[Materials]
[fuel_thermal]
type = MAMOXThermal
temperature = temp
porosity = pore
block = 1
Am_content = 0.0237
oxy_to_metal_ratio = 2
[]
[fuel_density]
type = GenericConstantMaterial
prop_names = density
prop_values = 10964.6
block = 1
[]
[pore_velocity]
type = MOXPoreVelocity
temperature = temp
limit = 1e-3
scale_factor = 0.1
block = 1
[]
[clad_thermal]
type = SS316Thermal
block = 2
temperature = temp
[]
[clad_density]
type = GenericConstantMaterial
prop_names = density
prop_values = 8000.0
block = 2
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -sub_pc_type'
petsc_options_value = 'asm lu'
line_search = 'none'
l_max_its = 50
l_tol = 8e-3
nl_max_its = 50
nl_rel_tol = 1e-5
nl_abs_tol = 1e-6
end_time = 251280
dtmin = 0.25
automatic_scaling = true
compute_scaling_once = false
[TimeStepper]
type = IterationAdaptiveDT
dt = 1e1
optimal_iterations = 15
iteration_window = 2
linear_iteration_ratio = 100
growth_factor = 2
cutback_factor = .5
force_step_every_function_point = true
timestep_limiting_function = power_history1
[]
[]
[Postprocessors]
[ave_fuel_temp]
type = ElementAverageValue
variable = temp
block = 1
[]
[max_fuel_temp]
type = NodalExtremeValue
value_type = max
variable = temp
block = 1
[]
[ave_pore]
type = ElementAverageValue
variable = pore
block = 1
[]
[max_pore]
type = NodalExtremeValue
value_type = max
variable = pore
block = 1
[]
[min_pore]
type = NodalExtremeValue
value_type = min
variable = pore
block = 1
[]
[max_pore_speed]
type = ElementExtremeValue
value_type = max
variable = pore_speed_aux
block = 1
[]
[rod_total_power_mox]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate_aux_variable_mox
block = 1
[]
[rod_input_power]
type = FunctionValuePostprocessor
function = power_history1
scale_factor = 0.5# half disk
[]
[ave_themal_conductivity]
type = ElementAverageValue
variable = thermal_conductivity
block = 1
[]
[]
[VectorPostprocessors]
[line_value_vector_postprocessor_pore]
type = LineValueSampler
variable = pore
start_point = '0.0 0.00008 0.0'
end_point = '0.002675 0.00008 0.0'
num_points = 200
sort_by = x
execute_on = linear
outputs = stuff_v_rad
control_tags = a
[]
[line_value_vector_postprocessor_gradT]
type = LineValueSampler
variable = grad_temp_x
start_point = '0.0 0.00008 0.0'
end_point = '0.002675 0.00008 0.0'
num_points = 100
sort_by = x
execute_on = linear
outputs = stuff_v_rad
[]
[line_value_vector_postprocessor_pore_speed]
type = LineValueSampler
variable = pore_speed_aux
start_point = '0.0 0.00008 0.0'
end_point = '0.002675 0.00008 0.0'
num_points = 100
sort_by = x
execute_on = linear
outputs = stuff_v_rad
[]
[line_value_vector_postprocessor_temp]
type = LineValueSampler
variable = temp
start_point = '0.0 0.00008 0.0'
end_point = '0.002675 0.00008 0.0'
num_points = 100
sort_by = x
execute_on = linear
outputs = stuff_v_rad
[]
[line_value_vector_postprocessor_thermal_conductivity]
type = LineValueSampler
variable = thermal_conductivity
start_point = '0.0 0.00008 0.0'
end_point = '0.002675 0.00008 0.0'
num_points = 100
sort_by = x
execute_on = linear
outputs = stuff_v_rad
[]
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = true
csv = true
color = false
[console]
type = Console
max_rows = 25
all_variable_norms = true
[]
[stuff_v_rad]
type = CSV
execute_on = 'FINAL'
[]
[chkfile]
type = CSV
execute_on = FINAL
show = 'ave_fuel_temp max_pore'
[]
[]
[Debug]
show_var_residual_norms = true
show_var_residual = 'temp pore'
[]
(assessment/MOX/FFTF/FO-2/L09/analysis/L09_2DRZ_new_bubble_gb_lim.i)
initial_fuel_density = 10431.0
[GlobalParams]
density = ${initial_fuel_density}
initial_porosity = 0.2
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
volumetric_locking_correction = false
displacements = 'disp_x disp_y'
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[Mesh]
coord_type = RZ
[smeared_pellet_mesh]
type = FuelPinMeshGenerator
pellet_quantity = 1
pellet_height = 0.9144
pellet_outer_radius = 2.794e-3
pellet_inner_radius = 6.985e-4
pellet_mesh_density = customize
clad_mesh_density = customize
clad_gap_width = 101.6e-6
clad_thickness = 0.5334e-3
clad_bot_gap_height = 1.0e-3
bottom_clad_height = 2.24e-3
top_clad_height = 2.24e-3
clad_top_gap_height = 1.057
elem_type = QUAD8
nx_c = 4
ny_c = 1000
nx_p = 10
ny_p = 500
ny_cu = 3
ny_cl = 3
[]
patch_size = 50
patch_update_strategy = iteration
partitioner = centroid
centroid_partitioner_direction = y
[]
[UserObjects]
[pin_geometry]
type = FuelPinGeometry
[]
[]
[Variables]
[temp]
initial_condition = 295.0
scaling = 1
[]
[]
[AuxVariables]
[fission_rate]
block = pellet
[]
[burnup]
block = pellet
[]
[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
[]
[vcn_bdr_2]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[atm_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[vcn_bbl_bdr]
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
[]
[vol_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[GBCoverage]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[eff_diff_coeff]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[deltav_v0_bd]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[radial_strain]
order = CONSTANT
family = MONOMIAL
[]
[effective_creep_strain]
block = clad
order = CONSTANT
family = MONOMIAL
[]
[gap_cond]
order = CONSTANT
family = MONOMIAL
[]
[coolant_htc]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[fraction_history]
type = PiecewiseLinear
x = '0 74993.42422 31858942.74'
y = '0 0.854004932 0.854004932'
[]
[fast_neutron_flux_function]
type = PiecewiseLinear
x = '0 74993.42422 31858942.74'
y = '0 2.99513e+19 2.99513e+19'
[]
[axial_power_profile]
type = PiecewiseBilinear
x = '0.0334152 0.09468 0.1559448 0.2162952 0.27756 0.3388248 0.3991752 0.46044 0.5217048 0.5820552 0.64332 0.7045848 0.7649352 0.8262 0.8874648'
y = '0 31858942.74'
z = '5493.43832 7183.727034 29157.48031 34228.34646 37608.92388 40144.35696 41412.07349 42257.21785 41834.64567 39721.78478 37608.92388 33805.77428 28312.33596 4225.721785 2535.433071 5041.338583 6592.519685 26757.87402 31411.41732 34513.77953 36840.55118 38003.93701 38779.52756 38391.73228 36452.75591 34513.77953 31023.62205 25982.28346 3877.952756 2326.771654'
scale_factor = 1
axis = 1
[]
[average_power_history]
type = PiecewiseLinear
x = '0 74993.42422 31858942.74'
y = '0 24264.05646 24264.05646'
[]
[pressure_ramp]
type = PiecewiseLinear
x = '-200 0'
y = '0 1'
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[pellets]
block = pellet
add_variables = true
strain = FINITE
eigenstrain_names = 'fuel_thermal_strain fuel_volumetric_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
extra_vector_tags = 'ref'
use_finite_deform_jacobian = true
[]
[clad]
block = clad
add_variables = true
strain = FINITE
eigenstrain_names = 'clad_thermal_eigenstrain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
extra_vector_tags = 'ref'
use_finite_deform_jacobian = true
[]
[]
[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
extra_vector_tags = 'ref'
block = pellet
fission_rate = fission_rate
[]
[]
[AuxKernels]
[fission_rate]
type = FissionRateGeneral
fission_rate_formulation = MOX
variable = fission_rate
block = pellet
initial_porosity = 0.2
axial_power_profile = axial_power_profile
rod_ave_lin_pow = fraction_history
pellet_diameter = 0.005588
execute_on = timestep_begin
pellet_inner_diameter = 0.001397
[]
[burnup]
type = BurnupAux
block = pellet
fission_rate = fission_rate
variable = burnup
execute_on = timestep_begin
[]
[fggen]
type = MaterialRealAux
variable = gas_gen_3
property = gas_concentration_generated_total
execute_on = timestep_end
[]
[fggrn]
type = MaterialRealAux
variable = gas_grn_3
property = gas_concentration_intra_total
execute_on = timestep_end
[]
[fgbdr]
type = MaterialRealAux
variable = gas_bdr_3
property = gas_concentration_GB_bubble_volume
execute_on = timestep_end
[]
[fgrel]
type = MaterialRealAux
variable = gas_rel_3
property = gas_concentration_release_total
execute_on = timestep_end
[]
[nbbl2]
type = MaterialRealAux
variable = bbl_bdr_2
property = bubble_GB_surface_density
execute_on = timestep_end
[]
[nvcn2]
type = MaterialRealAux
variable = vcn_bdr_2
property = vacancy_concentration_GB_surface
execute_on = timestep_end
[]
[atmbbl]
type = MaterialRealAux
variable = atm_bbl_bdr
property = atom_per_bubble_GB
execute_on = timestep_end
[]
[vcnbbl]
type = MaterialRealAux
variable = vcn_bbl_bdr
property = vacancy_per_bubble_GB
execute_on = timestep_end
[]
[prsbbl]
type = MaterialRealAux
variable = prs_bbl_bdr
property = bubble_GB_pressure
execute_on = timestep_end
[]
[prseqbbl]
type = MaterialRealAux
variable = prseq_bbl_bdr
property = bubble_GB_pressure_equilibrium
execute_on = timestep_end
[]
[radbbl]
type = MaterialRealAux
variable = rad_bbl_bdr
property = bubble_radius_GB
execute_on = timestep_end
[]
[volbbl]
type = MaterialRealAux
variable = vol_bbl_bdr
property = bubble_GB_volume
execute_on = timestep_end
[]
[frcvrg]
type = MaterialRealAux
variable = GBCoverage
property = GBCoverage
execute_on = timestep_end
[]
[diffc]
type = MaterialRealAux
variable = eff_diff_coeff
property = eff_diff_coeff
execute_on = timestep_end
[]
[dvv0bd]
type = MaterialRealAux
variable = deltav_v0_bd
property = deltav_v0_bubble_GB
execute_on = timestep_end
[]
[radial_strain]
type = RankTwoAux
rank_two_tensor = total_strain
variable = radial_strain
index_i = 0
index_j = 0
execute_on = timestep_end
[]
[effective_creep_strain]
type = MaterialRealAux
property = effective_creep_strain
variable = effective_creep_strain
block = clad
execute_on = timestep_end
[]
[conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
execute_on = 'linear'
[]
[coolant_htc]
type = MaterialRealAux
property = coolant_channel_htc
variable = coolant_htc
boundary = 2
execute_on = 'linear'
[]
[]
[Contact]
[pellet_clad_mechanical]
primary = 5
secondary = 10
formulation = kinematic
model = frictionless
penalty = 1e7
[]
[]
[ThermalContact]
[thermal_contact]
type = GasGapHeatTransfer
variable = temp
primary = 5
secondary = 10
initial_moles = initial_moles
gas_released = fis_gas_released
contact_pressure = contact_pressure
quadrature = true
[]
[]
[BCs]
[no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[]
[no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 20
value = 0.0
[]
[Pressure]
[coolantPressure]
boundary = '1 2 3'
factor = 0.151e6
function = pressure_ramp
[]
[]
[PlenumPressure]
[plenumPressure]
boundary = 9
initial_pressure = 101325
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = ave_temp_interior
volume = gas_volume
material_input = fis_gas_released
output = plenum_pressure
[]
[]
[]
[CoolantChannel]
[convective_clad_surface]
boundary = '1 2 3'
variable = temp
inlet_temperature = 580
inlet_pressure = 0.151e6
inlet_massflux = 1687.43
rod_diameter = 6.858e-3
rod_pitch = 1.7e-2
linear_heat_rate = fraction_history
axial_power_profile = axial_power_profile
coolant_material = sodium
[]
[]
[Materials]
[fuel_thermal]
type = MAMOXThermal
block = pellet
temperature = temp
Am_content = 0.0
Np_content = 0.0
porosity = 0.2
output_properties = 'thermal_conductivity'
[]
[fuel_elasticity_tensor]
type = MAMOXElasticityTensor
block = pellet
[]
[elastic_stress]
type = ComputeFiniteStrainElasticStress
block = pellet
outputs = exodus
[]
[fuel_thermal_expansion]
type = MAMOXThermalExpansionEigenstrain
block = pellet
temperature = temp
stress_free_temperature = 295.0
oxygen_to_metal_ratio = 2.0
eigenstrain_name = fuel_thermal_strain
[]
[fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
block = pellet
temperature = temp
burnup = burnup
initial_fuel_density = 10431.0
eigenstrain_name = fuel_volumetric_strain
[]
[clad_thermal]
type = HT9Thermal
block = clad
temperature = temp
[]
[clad_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1.88e11
poissons_ratio = 0.236
block = clad
[]
[clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = nonlinear
inelastic_models = 'clad_ht9creep'
block = clad
[]
[clad_ht9creep]
type = HT9CreepUpdate
block = clad
temperature = temp
[]
[thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = clad
thermal_expansion_coeff = 1.2e-5
temperature = temp
stress_free_temperature = 295.0
eigenstrain_name = clad_thermal_eigenstrain
[]
[fission_gas_release]
type = UO2Sifgrs
block = pellet
temperature = temp
burnup = burnup
fission_rate = fission_rate
grain_radius_const = 10e-06
bubble_gb_limit = 1.0e+11
[]
[clad_density]
type = StrainAdjustedDensity
block = clad
strain_free_density = 7874.0
[]
[fuel_density]
type = StrainAdjustedDensity
block = pellet
strain_free_density = ${initial_fuel_density}
[]
[fast_neutron_flux]
type = GenericFunctionMaterial
block = clad
prop_names = fast_neutron_flux
prop_values = fast_neutron_flux_function
[]
[]
[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'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
l_max_its = 50
l_tol = 8e-3
nl_max_its = 15
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
start_time = -200
n_startup_steps = 1
end_time = 31858942.74
dtmax = 1e6
dtmin = 1
[TimeStepper]
type = IterationAdaptiveDT
dt = 2e2
optimal_iterations = 10
iteration_window = 2
linear_iteration_ratio = 100
growth_factor = 2
cutback_factor = .5
force_step_every_function_point = true
timestep_limiting_function = fraction_history
[]
[Quadrature]
order = FIFTH
side_order = SEVENTH
[]
[]
[Postprocessors]
[ave_temp_interior]
type = SideAverageValue
boundary = 9
variable = temp
execute_on = 'initial linear'
[]
[average_burnup]
type = ElementAverageValue
block = pellet
variable = burnup
[]
[clad_inner_vol]
type = InternalVolume
boundary = 7
execute_on = 'initial timestep_end'
[]
[pellet_volume]
type = InternalVolume
boundary = 8
execute_on = 'initial timestep_end'
[]
[avg_clad_temp]
type = SideAverageValue
boundary = 7
variable = temp
execute_on = 'initial timestep_end'
[]
[fis_gas_produced]
type = ElementIntegralFisGasGeneratedSifgrs
block = pellet
execute_on = 'linear'
[]
[fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = pellet
execute_on = 'linear'
[]
[fis_gas_released_percentage]
type = FGRPercent
fission_gas_generated = fis_gas_produced
fission_gas_released = fis_gas_released
execute_on = 'linear'
[]
[fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = pellet
execute_on = 'linear'
[]
[fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = pellet
execute_on = 'linear'
[]
[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
[]
[rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = pellet
[]
[rod_input_power]
type = FunctionValuePostprocessor
function = average_power_history
scale_factor = 0.9144 # rod height
[]
[average_vonMises_fuel]
type = ElementAverageValue
variable = vonmises_stress
block = pellet
[]
[average_vonMises_clad]
type = ElementAverageValue
variable = vonmises_stress
block = clad
[]
[average_strain_rr_fuel]
type = ElementAverageValue
variable = radial_strain
block = pellet
[]
[average_strain_rr_clad]
type = ElementAverageValue
variable = radial_strain
block = clad
[]
[average_creep_strain_clad]
type = ElementAverageValue
variable = effective_creep_strain
block = clad
[]
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = true
color = true
csv = true
[console]
type = Console
max_rows = 25
[]
[chkfile]
type = CSV
file_base = fftf_fo2_L09_new_chkfile
execute_on = FINAL
show = 'ave_temp_interior fis_gas_released_percentage'
[]
[]
[Debug]
show_var_residual_norms = true
[]
(test/tests/solid_mechanics/uo2_creep/adUo2_creep_smeared_cracking.i)
# Tests material model CreepUO2, which computes the combined thermal
# and irradiation creep for UO2 fuel, in conjunction with smeared cracking
#
# This test is based on uo2_creep.i. It is a single element unit cube which
# is pulled in the y direction using the displacement history obtained from the
# response of uo2_creep_test.i under a pressure of 50 MPa. During this phase,
# the recovered stress is almost exactly 50 MPa. Starting at time 100000, the
# displacement is rapidly increased, resulting in cracking. At that point,
# the creep model is de-activated. The creep strains are frozen, and the model
# follows the softening law of the smeared cracking model.
[GlobalParams]
density = 10431.0
displacements = 'disp_x disp_y disp_z'
order = FIRST
family = LAGRANGE
[]
[Mesh]
[mesh]
type = FileMeshGenerator
file = 1x1x1_cube.e
[]
[]
[Variables]
[temp]
initial_condition = 1500.0
[]
[]
[AuxVariables]
[fission_rate]
[]
[stress_yy]
order = CONSTANT
family = MONOMIAL
[]
[effective_creep_strain]
order = CONSTANT
family = MONOMIAL
[]
[crack_flags3]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[top_pull]
type = PiecewiseLinear
xy_data = '0.0000000E+000 0.0000000E+000
1.0000000E+004 2.6631798E-004
2.0000000E+004 2.8260494E-004
3.0000000E+004 2.9889218E-004
4.0000000E+004 3.1517967E-004
5.0000000E+004 3.3146743E-004
6.0000000E+004 3.4775546E-004
7.0000000E+004 3.6404375E-004
8.0000000E+004 3.8033231E-004
9.0000000E+004 3.9662113E-004
1.0000000E+005 4.1291022E-004
1.0004000E+005 12.1291022E-004'
[]
[time_function]
type = PiecewiseLinear
x = '0 100000 100001 200000'
y = '10000 10000 1 1'
[]
[]
[Physics/SolidMechanics/QuasiStatic/system]
add_variables = true
strain = FINITE
use_automatic_differentiation = true
generate_output = 'stress_yy'
[]
[Kernels]
[heat]
type = ADHeatConduction
variable = temp
[]
[heat_ie]
type = ADHeatConductionTimeDerivative
variable = temp
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
value = 2.0e18
[]
[stress_yy]
type = ADRankTwoAux
rank_two_tensor = stress
variable = stress_yy
index_i = 1
index_j = 1
[]
[effective_creep_strain]
type = ADMaterialRealAux
property = effective_creep_strain
variable = effective_creep_strain
[]
[crack_3]
type = ADMaterialRealVectorValueAux
property = crack_flags
variable = crack_flags3
component = 2
[]
[]
[BCs]
[u_top_pull]
type = ADFunctionDirichletBC
variable = disp_y
boundary = 5
function = top_pull
[]
[u_bottom_fix]
type = ADDirichletBC
variable = disp_y
boundary = 3
value = 0.0
[]
[u_yz_fix]
type = ADDirichletBC
variable = disp_x
boundary = 4
value = 0.0
[]
[u_xy_fix]
type = ADDirichletBC
variable = disp_z
boundary = 2
value = 0.0
[]
[temp_top_fix]
type = ADDirichletBC
variable = temp
boundary = '3 5'
value = 1500.0
[]
[]
[Materials]
[elasticity_tensor]
type = ADComputeIsotropicElasticityTensor
youngs_modulus = 2e11
poissons_ratio = 0.3
[]
[creep]
type = ADUO2CreepUpdate
temperature = temp
fission_rate = fission_rate
initial_grain_radius = 10.0e-6
oxygen_to_metal_ratio = 2.0
a7 = 3.72264e-35
q3 = 2617
[]
[fuel_stress]
type = ADComputeSmearedCrackingStress
cracking_stress = 130e6
shear_retention_factor = 0.05
# max_stress_correction = 0.0
inelastic_models = 'creep'
softening_models = exponential_softening
cracked_elasticity_type = DIAGONAL
[]
[exponential_softening]
type = ADExponentialSoftening
[]
# [radial_return_stress]
# type = ComputeMultipleInelasticStress
# tangent_operator = elastic
# inelastic_models = 'creep'
# block = 1
# []
[thermal]
type = ADHeatConductionMaterial
specific_heat = 1.0
thermal_conductivity = 100.
[]
[density]
type = ADStrainAdjustedDensity
strain_free_density = 10431.0
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart'
petsc_options_value = '101'
line_search = 'none'
l_max_its = 100
nl_max_its = 100
nl_rel_tol = 1e-8
nl_abs_tol = 1e-4
l_tol = 1e-5
start_time = 0.0
dt = 10000
end_time = 100040
[TimeStepper]
type = FunctionDT
function = time_function
[]
[]
[Outputs]
exodus = true
[]
(test/tests/element_integral_power/element_integral_power_1D.i)
# Tests the ElementIntegralPower postprocessor
#
# A constant volumetric fission rate of 3.125e18 fissions/m^3-s is applied to a RZ cylinder
# having an inner radius of 0.01 m, outer radius of 0.0114818 m and height of 0.01 m.
# The power is thus constant with magnitude:
#
# Power = Fdot * Energy_per_fission * Volume
# = 3.125e18 * 3.2e-11 * Pi*(0.0114818^2 - 0.01^2) * 0.01
# = 100
[GlobalParams]
order = FIRST
family = LAGRANGE
[]
[Mesh]
coord_type = RZ
[layered1D_mesh]
type = Layered1DMeshGenerator
fuel_height = 0.01
include_clad = false
include_plenum = false
slices_per_block = 1
pellet_bottom_coor = 0
pellet_outer_radius = 0.011481768
pellet_inner_radius = 0.01
clad_gap_width = 0
clad_thickness = 0
elem_type = EDGE2
pellet_mesh_density = customize
nx_p = 1
[]
[]
[Functions]
[unity]
type = ParsedFunction
expression = '1.0'
[]
[]
[Variables]
[temp]
initial_condition = 500.0
[]
[]
[AuxVariables]
[fission_rate]
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temp
[]
[ie]
type = HeatConductionTimeDerivative
variable = temp
[]
[heat_source]
type = NeutronHeatSource
variable = temp
energy_per_fission = 3.2e-11
fission_rate = fission_rate
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
value = 3.125e18
fission_rate_function = unity
execute_on = 'initial timestep_begin'
[]
[]
[BCs]
[left_T]
type = DirichletBC
variable = temp
boundary = 13
value = 500.0
[]
[]
[Materials]
[fuel]
type = HeatConductionMaterial
block = fuel
thermal_conductivity = 10
specific_heat = 100
[]
[density]
type = ParsedMaterial
block = fuel
property_name = density
expression = 10000
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
start_time = 0.0
num_steps = 2
dt = 1.0e6
nl_abs_tol = 1e-8
[]
[Postprocessors]
[rod_total_power]
type = LayeredElementIntegralPowerPostprocessor
fuel_pin_geometry = pin_geometry
variable = temp
fission_rate = fission_rate
block = fuel
energy_per_fission = 3.2e-11
execute_on = 'initial timestep_end'
[]
[]
[UserObjects]
[pin_geometry]
type = Layered1DFuelPinGeometry
include_clad = false
mesh_generator = layered1D_mesh
[]
[]
[Outputs]
exodus = true
[]
(test/tests/axial_relocation/ad_uo2_pulverization_mesoscale.i)
# This file is to test the mesoscale-informed pulverization criterion for UO2 fuel.
# In the test 5 axial fuel slices are modeled without cladding with an outer fuel
# radius of 4.5 mm and slice height of 0.1 m. Ten radial finite elements are used.
# The burnup increases linearly from the fuel centerline to the fuel surface.
# Temperature is held at constant T = 900 K from t = 0 to t = 100, followed
# by a ramp in temperature from t = 100 to t = 110. Pulverization will occur
# during the ramp only, in the rim region where a significant amount of high burnup
# structure formation has begun. Local pulverization is tracked with the material
# property pulverized, which is 0 where pulverization has not occured and 1 where
# it has occurred. This material property is output to the exodus file for this test.
# At each time step, the porosity in the HBS region is calculated at each radial
# position using the correlation due to Kampf in the UO2Thermal material.
# The porosity, along with the grain boundary strength and hydrostatic stress, are
# used to calculate the critical pressure for grain boundary fracture by the
# UO2PulverizationMesoscale material. The current pressure of the most likely bubble
# size is compared to the critical pressure to determine whether pulverization has
# occurred at each quadrature point.
# Based upon the conditions and threshold given above at t = 110 s the outer three
# elements should be completely pulverized. The inner radius of the third element
# is at a radius of 3.150 mm. Therefore the layered averaged pulverized fuel volume
# (in each layer in this case) is analytically determined by:
#
# V_p = pi * L * (R_o^2 - R_p^2)
#
# where L is the slice height (0.1 m), R_o is the outer fuel radius, and R_p is the
# radius into the fuel at which pulverization ends. Therefore:
#
# V_p = pi * (0.1) * (4.5e-3^2 - 3.150e-3^2)
# V_p = 3.24448e-6 m^3 in each layer.
#
# The layered_pulverized_fuel_volume AuxVariable computed by BISON gives
# a layered volume of pulverized fuel as 3.24448e-6 m^3.
[Mesh]
coord_type = RZ
[layered1D_mesh]
type = Layered1DMeshGenerator
elem_type = EDGE2
slices_per_block = 5
pellet_outer_radius = 4.5e-3
include_clad = false
fuel_height = 0.5
include_plenum = false
nx_p = 10
pellet_mesh_density = customize
pellet_bottom_coor = 0.0
[]
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[temperature]
order = FIRST
family = LAGRANGE
initial_condition = 600
[]
[]
[AuxVariables]
[burnup]
order = FIRST
family = LAGRANGE
[]
[fission_rate]
order = FIRST
family = LAGRANGE
[]
[pulverized_aux]
order = CONSTANT
family = MONOMIAL
[]
[layered_pulverized_fuel_volume]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[burnup_function]
type = ParsedFunction
expression = 'x*1.6*t/4.275'
[]
[temperature_function]
type = ParsedFunction
expression = 'if(t < 100, 900, 900+(t-100)*200)'
[]
[Fiss_func]
type = ParsedFunction
expression = '1.e19'
[]
[]
[Kernels]
[heat]
type = ADHeatConduction
variable = temperature
[]
[]
[AuxKernels]
[burnup]
type = FunctionAux
variable = burnup
function = burnup_function
execute_on = 'initial linear'
[]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
value = 1
fission_rate_function = Fiss_func
execute_on = 'initial timestep_begin'
[]
[pulverized]
type = ADMaterialRealAux
block = fuel
variable = pulverized_aux
property = pulverized
execute_on = 'initial nonlinear'
[]
[layered_pulverized_fuel_volume]
type = SpatialUserObjectAux
variable = layered_pulverized_fuel_volume
execute_on = timestep_end
block = fuel
user_object = layered_pulverized_fuel_volume
[]
[]
[BCs]
[temperature]
type = FunctionDirichletBC
boundary = '10 12'
variable = temperature
function = temperature_function
[]
[]
[Materials]
[fission_gas_behavior]
type = ADUO2Sifgrs
block = fuel
temperature = temperature
fission_rate = fission_rate
burnup = burnup
skip_bdr_model = true
hbs_model = true
hbs_material = hbs_formation
[]
[uo2pulverizationmesoscale]
type = ADUO2PulverizationMesoscale
block = fuel
temperature = temperature
output_properties = pulverized
outputs = exodus
[]
[dummy_stress]
type = ADGenericConstantRankTwoTensor
tensor_name = 'stress'
tensor_values = '-1e7 -1e7 -1e7 0 0 0'
[]
[fuel_thermal]
type = ADUO2Thermal
block = fuel
thermal_conductivity_model = STAICU
hbs_porosity_correction = KAMPF
model_hbs_formation = true
temperature = temperature
burnup_function = burnup_function
output_properties = hbs_porosity
outputs = exodus
[]
[hbs_formation]
type = ADHighBurnupStructureFormation
block = fuel
temperature = temperature
burnup = burnup
threshold_temperature = 1273.15 # default
output_properties = hbs_volume_fraction
outputs = exodus
[]
[]
[UserObjects]
[fuel_pin_geometry]
type = Layered1DFuelPinGeometry
include_clad = false
mesh_generator = layered1D_mesh
[]
[layered_pulverized_fuel_volume]
type = LayeredVariableIntegral
variable = pulverized_aux
fuel_pin_geometry = fuel_pin_geometry
direction = y
execute_on = 'initial timestep_end'
block = fuel
num_layers = 5
[]
[]
[Executioner]
type = Transient
solve_type = Newton
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
line_search = 'none'
l_max_its = 100
nl_max_its = 100
nl_rel_tol = 1e-8
nl_abs_tol = 1e-10
l_tol = 1e-5
start_time = 0.0
num_steps = 110
dt = 1
[]
[Outputs]
exodus = true
[]
(test/tests/thermalUO2/ad_thermalUO2_test.i)
[Mesh]
[mesh]
type = FileMeshGenerator
file = pelletfine1_rz.e
[]
[]
[Variables]
[T]
order = FIRST
family = LAGRANGE
initial_condition = 300.0 # set initial T to ambient
[]
[]
[AuxVariables]
[fission_rate]
order = FIRST
family = LAGRANGE
block = 2
[]
[burnup]
order = FIRST
family = LAGRANGE
block = 2
[]
[th_cond]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[heat]
type = ADHeatConduction
variable = T
[]
[heat_source]
type = ADNeutronHeatSource
variable = T
block = 2
energy_per_fission = 3.2e-11
fission_rate = fission_rate
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable= fission_rate
block = 2
value = 1.183e19 # corrected average power to 200 W/cm
execute_on = 'initial timestep_begin'
[]
[th_cond]
type = ADMaterialRealAux
variable = th_cond
property = thermal_conductivity
block = 2
execute_on = linear
[]
[burnup]
type = ConstantAux
variable = burnup
value = 0.001
execute_on = 'initial timestep_begin'
[]
[]
[BCs]
[ConstantT]
type = ADDirichletBC
boundary = 10
variable = T
value = 500
[]
[]
[Materials]
[fuel_thermal]
type = ADUO2Thermal
block = 2
thermal_conductivity_model = FINK_LUCUTA
temperature = T
burnup = burnup
initial_porosity = 0.015
[]
[density]
type = ParsedMaterial
block = 2
property_name = density
expression = 10431.0
[]
[]
[Executioner]
type = Steady
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type -pc_hypre_boomeramg_max_iter'
petsc_options_value = '100 hypre boomeramg 4'
line_search = 'none'
solve_type = 'PJFNK'
l_max_its = 60
nl_max_its = 15
nl_rel_tol = 1e-9
nl_abs_tol = 1e-10
l_tol = 1e-5
[]
[Outputs]
file_base = ad_out
[exodus]
type = Exodus
[]
[]
(test/tests/ifba_he_production/ifba_only_template.i)
#
# 2-D RZ One Pellet IFBA Test - IFBA He generation only
#
# This test is of a single pellet with cladding and a specified initial
# pressure of He fill gas and IFBA layer .
# The initial loading of B-10 is converted to He gas and adds to the
# plenum pressure. No fission gas production is included in this model. This
# allows the effect of the IFBA layer to be seen clearly.
#
# The power is ramped up and held constant to heat the fill gas and establish
# an initial "hot" pressure. Since there is no fission gas production or
# release in this model, the pressure at temperature should be able to be
# calculated and compared to the BISON result.
#
# This case builds on the baseline case. The amount of He added due to IFBA
# can be calculated and the BISON result checked.
#
# This input template is used for a set of tests exercising the main input
# options for the IFBA postprocessor.
#
initial_fuel_density = 10431.0 #95% TD (TD = 10980)
[GlobalParams]
density = ${initial_fuel_density}
displacements = 'disp_x disp_y'
order = SECOND
energy_per_fission = 3.2e-11 # J/fission (205 Mev)
temperature = temp
volumetric_locking_correction = false
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[Mesh]
coord_type = RZ
[smeared_pellet_mesh]
type = FuelPinMeshGenerator
clad_mesh_density = customize
pellet_mesh_density = customize
ny_p = 1
nx_p = 1
nx_c = 1
ny_cu = 1
ny_c = 1
ny_cl = 1
clad_thickness = 5.6e-4
pellet_outer_radius = 0.0041
pellet_height = 0.01
pellet_quantity = 1
clad_bot_gap_height = 1e-3
bottom_clad_height = 2.24e-3
top_clad_height = 2.24e-3
clad_gap_width = 8e-5
plenum_fuel_ratio = 0.150
elem_type = QUAD8
[]
partitioner = centroid
centroid_partitioner_direction = y
patch_size = 5
[]
[Variables]
[temp]
initial_condition = 298
[]
[]
[AuxVariables]
[fission_rate]
block = '3'
[]
[burnup]
block = '3'
[]
[grain_radius]
block = '3'
initial_condition = 5e-6
[]
[]
[Functions]
[power_history]
type = PiecewiseLinear
x = '0 1.0e4 1.0e8'
y = '0 1.0 1.0'
scale_factor = 25e3 # 25 kW/m peak power.
[]
[coolant_pressure_ramp]
type = PiecewiseLinear
x = '0 10000'
y = '0 1'
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[fuel]
block = 3
strain = FINITE
incremental = true
add_variables = true
decomposition_method = EigenSolution
extra_vector_tags = 'ref'
eigenstrain_names = 'fuel_thermal_strain'
[]
[clad]
block = 1
strain = FINITE
incremental = true
add_variables = true
decomposition_method = EigenSolution
extra_vector_tags = 'ref'
eigenstrain_names = 'clad_thermal_strain'
[]
[]
[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'
fission_rate = fission_rate
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
block = '3'
value = 5.3548e+14
fission_rate_function = power_history
[]
[burnup]
type = BurnupAux
variable = burnup
block = '3'
fission_rate = fission_rate
molecular_weight = 0.270
[]
[grain_radius]
type = GrainRadiusAux
block = '3'
variable = grain_radius
temperature = temp
[]
[]
[Contact]
[pellet_clad_mechanical]
primary = 5
secondary = 10
penalty = 1e+14 #1e7
model = frictionless
tangential_tolerance = 5e-4
normal_smoothing_distance = 0.1
normalize_penalty = true
[]
[]
[ThermalContact]
[pellet_clad_thermal]
type = GasGapHeatTransfer
variable = temp
primary = 5
secondary = 10
initial_moles = initial_moles
jump_distance_model = LANNING
layer_thickness = layer_thickness
plenum_pressure = plenum_pressure
contact_pressure = contact_pressure
roughness_coef = 3.2
roughness_secondary = 1e-6
roughness_primary = 2e-6
emissivity_primary = 0.8
emissivity_secondary = 0.8
quadrature = true
normal_smoothing_distance = 0.1
gas_released = null
[]
[]
[BCs]
[no_x_all]
type = DirichletBC
variable = disp_x
boundary = 1003
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 = 20
value = 0.0
[]
[no_x_fuel]
type = DirichletBC
variable = disp_x
boundary = 1005
value = 0.0
[]
[Clad_Temp]
type = DirichletBC
variable = temp
boundary = '2'
value = 580.0
[]
[Pressure]
[coolantPressure]
boundary = '2'
factor = 15.5e6
function = coolant_pressure_ramp
[]
[]
[PlenumPressure]
[plenumPressure]
boundary = 9
initial_pressure = 0.50e6
startup_time = 0.0
material_input = he_prod
output_initial_moles = initial_moles
temperature = interior_temp
volume = gas_volume
output = plenum_pressure
displacements = 'disp_x disp_y'
[]
[]
[]
[Materials]
[fuel_thermal]
type = UO2Thermal
block = '3'
temperature = temp
burnup = burnup
thermal_conductivity_model = NFIR
[]
[fuel_elasticity_tensor]
type = UO2ElasticityTensor
block = 3
[]
[fuel_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = 3
[]
[fuel_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = 3
thermal_expansion_coeff = 10.0e-6
stress_free_temperature = 298
eigenstrain_name = 'fuel_thermal_strain'
[]
[clad_thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 16.0
specific_heat = 330.0
[]
[fclad_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
block = 1
youngs_modulus = 7.5e10
poissons_ratio = 0.3
[]
[clad_elastic_stress]
type = ComputeFiniteStrainElasticStress
block = 1
[]
[clad_thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = 1
thermal_expansion_coeff = 5.0e-6
stress_free_temperature = 298
eigenstrain_name = 'clad_thermal_strain'
[]
[clad_density]
type = StrainAdjustedDensity
block = 1
strain_free_density = 6551.0
[]
[fuel_density]
type = StrainAdjustedDensity
block = '3'
strain_free_density = ${initial_fuel_density}
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
l_max_its = 25
nl_max_its = 40
nl_rel_tol = 1e-5
nl_abs_tol = 1e-8
dtmax = 1.0e6
dtmin = 1.0
end_time = 5.3e7 # 1.7 years (~3% burnup)
[TimeStepper]
type = IterationAdaptiveDT
dt = 1e3
optimal_iterations = 30
iteration_window = 4
time_t = '0 1e4 1e8'
time_dt = '1e4 1e6 1e6'
timestep_limiting_function = power_history
force_step_every_function_point = true
[]
[Quadrature]
order = fifth
side_order = seventh
[]
verbose = true
[]
[Postprocessors]
[clad_inner_vol]
type = InternalVolume
boundary = 7
execute_on = 'initial linear'
[]
[pellet_volume]
type = InternalVolume
boundary = 8
execute_on = 'initial linear'
[]
[gas_volume]
type = InternalVolume
boundary = 9
execute_on = 'initial linear'
[]
[interior_temp]
type = SideAverageValue
boundary = 9 # cladding interior and pellet exterior
variable = temp
execute_on = 'initial linear'
[]
[power_history]
type = FunctionValuePostprocessor
function = power_history
[]
[dt]
type = TimestepSize
[]
[residual]
type = Residual
[]
[nl_its]
type = NumNonlinearIterations
[]
[lin_its]
type = NumLinearIterations
[]
[average_burnup]
type = ElementAverageValue
block = '3'
variable = burnup
[]
[burnup]
type = ElementAverageValue
block = '3'
variable = burnup
[]
[average_fissionrate]
type = ElementAverageValue
block = '3'
variable = fission_rate
[]
[rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = '3'
[]
[rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 0.05175 #BWR change: length of fuel stack in meters (5*pellet height)
[]
[he_prod]
type = IFBAHeProduction
[]
[null]
type = FunctionValuePostprocessor
function = 0
[]
[]
[Outputs]
time_step_interval = 1
exodus = false
[console]
type = Console
solve_log = true
output_linear = true
max_rows = 25
[]
[chkfile]
type = CSV
show = 'average_burnup burnup he_prod interior_temp plenum_pressure'
[]
[out]
type = CSV
delimiter = ' '
[]
[]
(test/tests/meso_thcond_test/meso_thcond_test.i)
[Mesh]
[mesh]
type = FileMeshGenerator
file = pelletfine1_rz.e
[]
[]
[Variables]
[T]
order = FIRST
family = LAGRANGE
initial_condition = 300.0 # set initial T to ambient
[]
[]
[AuxVariables]
[fission_rate]
order = FIRST
family = LAGRANGE
block = 2
[]
[burnup]
order = FIRST
family = LAGRANGE
block = 2
[]
[th_cond]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = T
[]
[heat_source]
type = NeutronHeatSource
variable = T
block = 2
energy_per_fission = 3.2e-11
fission_rate = fission_rate
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
block = 2
value = 1.183e19 # corrected average power to 200 W/cm
[]
[th_cond]
type = MaterialRealAux
variable = th_cond
property = thermal_conductivity
block = 2
[]
[burnup]
type = ConstantAux
variable = burnup
value = 0.001
[]
[]
[BCs]
[ConstantT]
type = DirichletBC
boundary = 10
variable = T
value = 500
[]
[]
[Materials]
[GBcoverage]
type = GenericConstantMaterial
prop_names = 'GBCoverage fis_gas_grain fis_gas_reslvd'
prop_values = '0.4 300.0 41.0'
block = 2
[]
[fuel_thermal]
type = UO2ThermalMeso
block = 2
temperature = T
thermal_conductivity_model = FINK_LUCUTA
burnup = burnup
initial_porosity = 0.015
grain_radius = 2.5e-6
[]
[density]
type = ParsedMaterial
block = 2
property_name = density
expression = 10431.0
[]
[]
[Problem]
[]
[Postprocessors]
[MaxT]
type = NodalExtremeValue
variable = T
execute_on = 'initial timestep_end'
[]
[]
[Executioner]
type = Steady
solve_type = 'PJFNK'
petsc_options_iname = '-pc_type -pc_hypre_type -ksp_gmres_restart -mat_mffd_type'
petsc_options_value = 'hypre boomeramg 101 ds'
l_max_its = 60
l_tol = 1e-4
nl_max_its = 15
nl_rel_tol = 1e-11
nl_abs_tol = 1e-12
[]
[Outputs]
file_base = out
exodus = true
[]
(assessment/verification/thermal/2d_3d_thermal_mesh_study/analysis/quad/test_3d.i)
[GlobalParams]
order = SECOND
family = LAGRANGE
[]
[Mesh]
[mesh]
type = FileMeshGenerator
file = 'coarse_rz_quad8.e'
[]
[]
[Variables]
[temp]
[]
[]
[AuxVariables]
[fission_rate]
block = 'pellet_type_1'
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temp
[]
[heat_source]
type = NeutronHeatSource
variable = temp
block = 'pellet_type_1'
fission_rate = fission_rate
energy_per_fission = 3.28451e-11
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
block = 'pellet_type_1'
value = 1.21783766833e19 #fissions/m3s
[]
[]
[BCs]
[side_temp]
type = DirichletBC
variable = temp
boundary = 10
value = 500
[]
[ ]
[Materials]
[fuel_thermal]
type = HeatConductionMaterial
block = 'pellet_type_1'
thermal_conductivity = 5.2
[]
[]
[Executioner]
type = Steady
[]
[Postprocessors]
[center_temp]
type = PointValue
point = '0.0 0.003 0'
variable = temp
[]
[avg_temp]
type = ElementAverageValue
block = 'pellet_type_1'
variable = temp
[]
[rod_total_power]
type = ElementIntegralPower
variable = temp
block = 'pellet_type_1'
fission_rate = fission_rate
[]
[]
[Outputs]
perf_graph = true
csv = true
[]
(test/tests/axial_relocation/uo2_pulverization_mesoscale.i)
# This file is to test the mesoscale-informed pulverization criterion for UO2 fuel.
# In the test 5 axial fuel slices are modeled without cladding with an outer fuel
# radius of 4.5 mm and slice height of 0.1 m. Ten radial finite elements are used.
# The burnup increases linearly from the fuel centerline to the fuel surface.
# Temperature is held at constant T = 900 K from t = 0 to t = 100, followed
# by a ramp in temperature from t = 100 to t = 110. Pulverization will occur
# during the ramp only, in the rim region where a significant amount of high burnup
# structure formation has begun. Local pulverization is tracked with the material
# property pulverized, which is 0 where pulverization has not occured and 1 where
# it has occurred. This material property is output to the exodus file for this test.
# At each time step, the porosity in the HBS region is calculated at each radial
# position using the correlation due to Kampf in the UO2Thermal material.
# The porosity, along with the grain boundary strength and hydrostatic stress, are
# used to calculate the critical pressure for grain boundary fracture by the
# UO2PulverizationMesoscale material. The current pressure of the most likely bubble
# size is compared to the critical pressure to determine whether pulverization has
# occurred at each quadrature point.
# Based upon the conditions and threshold given above at t = 110 s the outer three
# elements should be completely pulverized. The inner radius of the third element
# is at a radius of 3.150 mm. Therefore the layered averaged pulverized fuel volume
# (in each layer in this case) is analytically determined by:
#
# V_p = pi * L * (R_o^2 - R_p^2)
#
# where L is the slice height (0.1 m), R_o is the outer fuel radius, and R_p is the
# radius into the fuel at which pulverization ends. Therefore:
#
# V_p = pi * (0.1) * (4.5e-3^2 - 3.150e-3^2)
# V_p = 3.24448e-6 m^3 in each layer.
#
# The layered_pulverized_fuel_volume AuxVariable computed by BISON gives
# a layered volume of pulverized fuel as 3.24448e-6 m^3.
[Mesh]
coord_type = RZ
[layered1D_mesh]
type = Layered1DMeshGenerator
elem_type = EDGE2
slices_per_block = 5
pellet_outer_radius = 4.5e-3
include_clad = false
fuel_height = 0.5
include_plenum = false
nx_p = 10
pellet_mesh_density = customize
pellet_bottom_coor = 0.0
[]
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[temperature]
order = FIRST
family = LAGRANGE
initial_condition = 600
[]
[]
[AuxVariables]
[burnup]
order = FIRST
family = LAGRANGE
[]
[fission_rate]
order = FIRST
family = LAGRANGE
[]
[pulverized_aux]
order = CONSTANT
family = MONOMIAL
[]
[layered_pulverized_fuel_volume]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[burnup_function]
type = ParsedFunction
expression = 'x*1.6*t/4.275'
[]
[temperature_function]
type = ParsedFunction
expression = 'if(t < 100, 900, 900+(t-100)*200)'
[]
[Fiss_func]
type = ParsedFunction
expression = '1.e19'
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temperature
[]
[]
[AuxKernels]
[burnup]
type = FunctionAux
variable = burnup
function = burnup_function
execute_on = 'initial linear'
[]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
value = 1
fission_rate_function = Fiss_func
execute_on = 'initial timestep_begin'
[]
[pulverized]
type = MaterialRealAux
block = fuel
variable = pulverized_aux
property = pulverized
execute_on = 'initial nonlinear'
[]
[layered_pulverized_fuel_volume]
type = SpatialUserObjectAux
variable = layered_pulverized_fuel_volume
execute_on = timestep_end
block = fuel
user_object = layered_pulverized_fuel_volume
[]
[]
[BCs]
[temperature]
type = FunctionDirichletBC
boundary = '10 12'
variable = temperature
function = temperature_function
[]
[]
[Materials]
[fission_gas_behavior]
type = UO2Sifgrs
block = fuel
temperature = temperature
fission_rate = fission_rate
burnup = burnup
skip_bdr_model = true
hbs_model = true
hbs_material = hbs_formation
[]
[uo2pulverizationmesoscale]
type = UO2PulverizationMesoscale
block = fuel
temperature = temperature
output_properties = pulverized
outputs = exodus
[]
[dummy_stress]
type = GenericConstantRankTwoTensor
tensor_name = 'stress'
tensor_values = '-1e7 -1e7 -1e7 0 0 0'
[]
[fuel_thermal]
type = UO2Thermal
block = fuel
thermal_conductivity_model = STAICU
hbs_porosity_correction = KAMPF
model_hbs_formation = true
temperature = temperature
burnup_function = burnup_function
output_properties = hbs_porosity
outputs = exodus
[]
[hbs_formation]
type = HighBurnupStructureFormation
block = fuel
temperature = temperature
burnup = burnup
threshold_temperature = 1273.15 # default
output_properties = hbs_volume_fraction
outputs = exodus
[]
[]
[UserObjects]
[fuel_pin_geometry]
type = Layered1DFuelPinGeometry
include_clad = false
mesh_generator = layered1D_mesh
[]
[layered_pulverized_fuel_volume]
type = LayeredVariableIntegral
variable = pulverized_aux
fuel_pin_geometry = fuel_pin_geometry
direction = y
execute_on = 'initial timestep_end'
block = fuel
num_layers = 5
[]
[]
[Executioner]
type = Transient
solve_type = PJFNK
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
line_search = 'none'
l_max_its = 100
nl_max_its = 100
nl_rel_tol = 1e-8
nl_abs_tol = 1e-10
l_tol = 1e-5
start_time = 0.0
num_steps = 110
dt = 1
[]
[Outputs]
exodus = true
[]
(assessment/MOX/JOYO/B14/PTM001/analysis/b14_ptm001_1D_sample3_ox.i)
# Sample at midplane
initial_fuel_density = 11057.75
[GlobalParams]
density = ${initial_fuel_density}
family = LAGRANGE
[]
[Problem]
type = ReferenceResidualProblem
extra_tag_vectors = 'ref'
reference_vector = 'ref'
[]
[Mesh]
coord_type = RZ
[layered1D_mesh]
type = Layered1DMeshGenerator
fuel_height = 10e-3
pellet_outer_radius = 0.0027
pellet_bottom_coor = 0.0
pellet_mesh_density = customize
nx_p = 200
elem_type = EDGE2
slices_per_block = 1
include_plenum = false
include_clad = false
[]
[]
[UserObjects]
[pin_geometry]
type = Layered1DFuelPinGeometry
include_clad = false
mesh_generator = layered1D_mesh
[]
[]
[Variables]
[oxygen]
initial_condition = 0.009 #nominal value
scaling = 1e-20
[]
[]
[AuxVariables]
[temp]
[]
[fission_rate]
[]
[burnup]
[]
[oxygen_to_metal_ratio]
order = CONSTANT
family = MONOMIAL
initial_condition = 1.982
[]
[saved_t]
[]
[saved_o]
[]
[]
[Functions]
[power_history]
type = PiecewiseLinear
x = '-200 0 72000 158040 160200 246600 248400 249000.012 251280'
y = '0 0 39456.16 39456.16 43890.71 43890.71 53442.06 53442.06 0'
[]
[]
[Kernels]
[oxygen_time_derivative]
type = TimeDerivative
variable = oxygen
[]
[oxygen]
type = MOXOxygenDiffusion
variable = oxygen
temperature = temp
burnup = burnup
oxygen_to_metal_ratio = oxygen_to_metal_ratio
O_M_initial = 1.982
q0 = 0.31
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[fission_rate]
type = FissionRateGeneral
fission_rate_formulation = MOX
variable = fission_rate
block = fuel
initial_porosity = 0.1372
rod_ave_lin_pow = power_history
pellet_diameter = 0.0054
execute_on = timestep_begin
energy_per_fission = 3.2e-11
[]
[burnup]
type = BurnupAux
block = fuel
fission_rate = fission_rate
variable = burnup
execute_on = timestep_begin
[]
[OM]
type = MaterialRealAux
variable = oxygen_to_metal_ratio
property = oxygen_to_metal_ratio
execute_on = timestep_end
[]
[]
[Materials]
[fuel_thermal]
type = MAMOXThermal
temperature = temp
porosity = 0.1372
block = fuel
Am_content = 0.0237
oxy_to_metal_ratio = 1.982
[]
[fuel_density]
type = ParsedMaterial
block = fuel
property_name = density
expression = ${initial_fuel_density}
[]
[O_M_ratio]
type = MOXOxygenToMetalRatio
oxygen = oxygen
output_properties = 'oxygen_to_metal_ratio'
O_M_initial = 1.982
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Dampers]
[bound]
type = BoundingValueNodalDamper
max_value = 1
min_value = 0
variable = oxygen
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -sub_pc_type'
petsc_options_value = 'asm lu'
line_search = 'none'
l_max_its = 50
l_tol = 8e-3
nl_max_its = 50
nl_rel_tol = 1e-5
nl_abs_tol = 1e-5
start_time = -200
n_startup_steps = 1
end_time = 251280
dtmax = 10000
dtmin = 0.25
[TimeStepper]
type = IterationAdaptiveDT
dt = 1e1
optimal_iterations = 15
iteration_window = 2
linear_iteration_ratio = 100
growth_factor = 2
cutback_factor = .5
force_step_every_function_point = true
timestep_limiting_function = power_history
[]
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = false
color = true
csv = false
[console]
type = Console
max_rows = 25
[]
[line_plot]
type = CSV
execute_on = 'TIMESTEP_END'
time_step_interval = 1
file_base = 1d
create_final_symlink = true
[]
[]
(test/tests/mox_oxygen_transport/mox_oxygen_transport_hyper.i)
# This test is designed to exercise the MOXOxygen diffuion kernel. The kernel contains Fickian
# and Soret diffusion terms and a diffusion coefficient that is a function of temperature.
# There doesn't seem to be a simple analytical solution to this pde, so only general observations
# can be made as to whether or not the result is reasonable. The solution should be a form of
# exponential. The solution's shape agrees with Fig.11.20 from "Fundamental ascpects of nuclear reactor fuel elements", by Olander.
# HYPERstochiometric case
[GlobalParams]
density = 10431.0
energy_per_fission = 3.2e-11 # J/fission
[]
[Problem]
type = FEProblem
[]
[Mesh]
coord_type = RZ
[mesh]
type = GeneratedMeshGenerator
dim = 1
xmax = 2.794e-3 #pellet radius
nx = 100
elem_type = EDGE
[]
[]
[Variables]
[temp]
initial_condition = 1400.0
[]
[oxygen]
order = FIRST
family = LAGRANGE
initial_condition = 0.02
scaling = 1e-20
[]
[]
[AuxVariables]
[fission_rate]
[]
[burnup]
[]
[]
[Functions]
[power_history]
type = PiecewiseLinear
x = '0 10000'
y = '0 50000'
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temp
[]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temp
[]
[heat_source]
type = NeutronHeatSource
variable = temp
fission_rate = fission_rate
[]
[oxygen_time_derivative]
type = TimeDerivative
variable = oxygen
[]
[oxygen]
type = MOXOxygenDiffusion
variable = oxygen
temperature = temp
burnup = burnup
O_M_initial = 2.02
[]
[]
[AuxKernels]
[fission_rate]
type = FissionRateGeneral
fission_rate_formulation = MOX
variable = fission_rate
rod_ave_lin_pow = power_history
execute_on = timestep_begin
pellet_diameter = 0.005588
[]
[burnup]
type = BurnupAux
fission_rate = fission_rate
variable = burnup
execute_on = timestep_begin
[]
[]
[BCs]
[temp_outside]
type = DirichletBC
variable = temp
boundary = right
value = 1400
[]
[]
[Materials]
[fuel_thermal]
type = MAMOXThermal
temperature = temp
oxy_to_metal_ratio = 2.02
Am_content = 0.0
Np_content = 0.0
output_properties = 'thermal_conductivity'
[]
[fuel_density]
type = ParsedMaterial
property_name = density
expression = 10431.0
[]
[O_M_ratio]
type = MOXOxygenToMetalRatio
oxygen = oxygen
output_properties = 'oxygen_to_metal_ratio'
O_M_initial = 2.02
outputs = all
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
# The -snes_converged_reason option is used here to diagnose some
# intermittent solver failures we have been seeing with this test
petsc_options = '-snes_ksp_ew -snes_converged_reason'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
l_tol = 8e-3
nl_abs_tol = 1e-9
nl_rel_tol = 1e-9
n_startup_steps = 1
end_time = 10000
dt = 200
dtmin = 200
[]
[Postprocessors] #Oxygen to metal ratio is an easier variable to look at for the user
[ave_ox]
type = ElementAverageValue
variable = oxygen
[]
[max_ox]
type = NodalExtremeValue
value_type = max
variable = oxygen
[]
[min_ox]
type = NodalExtremeValue
value_type = min
variable = oxygen
[]
[ave_om_ratio]
type = ElementAverageValue
variable = oxygen_to_metal_ratio
[]
[max_om_ratio]
type = ElementExtremeValue
value_type = max
variable = oxygen_to_metal_ratio
[]
[min_om_ratio]
type = ElementExtremeValue
value_type = min
variable = oxygen_to_metal_ratio
[]
[]
[VectorPostprocessors]
[radial_oxygen]
type = LineValueSampler
variable = oxygen
start_point = '0.0 0.0 0.0'
end_point = '2.794e-3 0.0 0.0'
num_points = 200
execute_on = final
sort_by = x
outputs = line_plot
[]
[radial_oxygen-to-metal-ratio]
type = LineValueSampler
variable = oxygen_to_metal_ratio
start_point = '0.0 0.0 0.0'
end_point = '2.794e-3 0.0 0.0'
num_points = 200
execute_on = final
sort_by = x
outputs = line_plot
[]
[]
[Outputs]
exodus = false
csv = true
[console]
type = Console
[]
[line_plot]
type = CSV
execute_on = 'FINAL'
time_step_interval = 1
[]
[]
[Debug]
show_var_residual_norms = true
[]
(test/tests/axial_relocation/ad_uo2_pulverization_phasefield2.i)
# This file is to test the phase-field based pulverization criterion for UO2 fuel
# with evolve_bubble_pressure_hbs = true and using the 3D phase field criterion
# for pulverization.
# In the test 5 axial fuel slices are modeled without cladding with an outer fuel
# radius of 4.5 mm and slice height of 0.1 m. Ten radial finite elements are used.
# The burnup increases linearly from the fuel centerline to the fuel surface.
# Temperature is held at constant T = 673.15 K from t = 0 to t = 100, followed
# by a ramp in temperature from t = 100 to t = 125. Pulverization will occur
# during the ramp only, in the rim region where a significant amount of high burnup
# structure formation has begun. Local pulverization is tracked with the material
# property pulverized, which is 0 where pulverization has not occured and 1 where
# it has occurred. This material property is output to the exodus file for this test.
# At each time step, the porosity in the HBS region is calculated at each radial
# position using the correlation due to Kampf in the UO2Thermal material.
# The porosity, along with the hydrostatic stress, are used to calculate the
# critical pressure for grain boundary fracture using data from fits to phase-field
# fracture simulations. The current pressure of the most likely bubble
# size is compared to the critical pressure to determine whether pulverization has
# occurred at each quadrature point.
# Based upon the conditions and threshold given above at t = 110 s the outer three
# elements should be completely pulverized. The inner radius of the third element
# is at a radius of 3.150 mm. Therefore the layered averaged pulverized fuel volume
# (in each layer in this case) is analytically determined by:
#
# V_p = pi * L * (R_o^2 - R_p^2)
#
# where L is the slice height (0.1 m), R_o is the outer fuel radius, and R_p is the
# radius into the fuel at which pulverization ends. Therefore:
#
# V_p = pi * (0.1) * (4.5e-3^2 - 3.150e-3^2)
# V_p = 3.24448e-6 m^3 in each layer.
#
# The layered_pulverized_fuel_volume AuxVariable computed by BISON gives
# a layered volume of pulverized fuel as 3.24448e-6 m^3.
[Mesh]
coord_type = RZ
[layered1D_mesh]
type = Layered1DMeshGenerator
elem_type = EDGE2
slices_per_block = 5
pellet_outer_radius = 4.5e-3
include_clad = false
fuel_height = 0.5
include_plenum = false
nx_p = 10
pellet_mesh_density = customize
pellet_bottom_coor = 0.0
[]
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[temperature]
order = FIRST
family = LAGRANGE
initial_condition = 600
[]
[]
[AuxVariables]
[burnup]
order = FIRST
family = LAGRANGE
[]
[fission_rate]
order = FIRST
family = LAGRANGE
[]
[pulverized_aux]
order = CONSTANT
family = MONOMIAL
[]
[layered_pulverized_fuel_volume]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[burnup_function]
type = ParsedFunction
expression = 'x*1.6*t/4.275'
[]
[temperature_function]
type = ParsedFunction
expression = 'if(t < 100, 673.15, 673.15+(t-100)*15.5)'
[]
[Fiss_func]
type = ParsedFunction
expression = '1.e19'
[]
[]
[Kernels]
[heat]
type = ADHeatConduction
variable = temperature
[]
[]
[AuxKernels]
[burnup]
type = FunctionAux
variable = burnup
function = burnup_function
execute_on = 'initial linear'
[]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
value = 1
fission_rate_function = Fiss_func
execute_on = 'initial timestep_begin'
[]
[pulverized]
type = ADMaterialRealAux
block = fuel
variable = pulverized_aux
property = pulverized
execute_on = 'initial nonlinear'
[]
[layered_pulverized_fuel_volume]
type = SpatialUserObjectAux
variable = layered_pulverized_fuel_volume
execute_on = timestep_end
block = fuel
user_object = layered_pulverized_fuel_volume
[]
[]
[BCs]
[temperature]
type = FunctionDirichletBC
boundary = '10 12'
variable = temperature
function = temperature_function
[]
[]
[Materials]
[fission_gas_behavior]
type = ADUO2Sifgrs
block = fuel
temperature = temperature
fission_rate = fission_rate
burnup = burnup
skip_bdr_model = true
hbs_model = true
hbs_material = hbs_formation
[]
[uo2pulverizationmesoscale]
type = ADUO2PulverizationMesoscale
block = fuel
temperature = temperature
output_properties = pulverized
pulverization_criterion_type = phase_field_3D
outputs = exodus
[]
[dummy_stress]
type = ADGenericConstantRankTwoTensor
tensor_name = 'stress'
tensor_values = '-1e7 -1e7 -1e7 0 0 0'
[]
[fuel_thermal]
type = ADUO2Thermal
block = fuel
thermal_conductivity_model = STAICU
hbs_porosity_correction = KAMPF
model_hbs_formation = true
temperature = temperature
burnup_function = burnup_function
output_properties = hbs_porosity
outputs = exodus
[]
[hbs_formation]
type = ADHighBurnupStructureFormation
temperature = temperature
burnup = burnup
threshold_temperature = 1273.15 # default
output_properties = hbs_volume_fraction
outputs = exodus
[]
[]
[UserObjects]
[fuel_pin_geometry]
type = Layered1DFuelPinGeometry
include_clad = false
mesh_generator = layered1D_mesh
[]
[layered_pulverized_fuel_volume]
type = LayeredVariableIntegral
variable = pulverized_aux
fuel_pin_geometry = fuel_pin_geometry
direction = y
execute_on = 'initial timestep_end'
block = fuel
num_layers = 5
[]
[]
[Executioner]
type = Transient
solve_type = Newton
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
line_search = 'none'
l_max_its = 100
nl_max_its = 100
nl_rel_tol = 1e-8
nl_abs_tol = 1e-10
l_tol = 1e-5
start_time = 0.0
num_steps = 125
dt = 1
[]
[Outputs]
exodus = true
[]
(test/tests/multi_sample_action/test2.i)
# Config params
temperature = 1672.38
density = 10522.95
initial_grain_radius = 0.000006
fission_rate = 0.00E+00
oxygen_to_metal_ratio = 2
[GlobalParams]
order = FIRST
family = LAGRANGE
displacements = 'disp_x disp_y'
temperature = ${temperature}
multi_sample_size = 2
[]
[Mesh]
coord_type = RZ
[bottom]
type = SideSetsFromNormalsGenerator
new_boundary = bottom
input = subs_combiner
normals = '0 -1 0'
[]
[left]
type = SideSetsFromNormalsGenerator
new_boundary = left
input = bottom
normals = '-1 0 0'
[]
[]
[MultiSample]
[GeneratedMeshGenerator]
[mymesh]
dim = 2
ymax = .01
xmax = 0.005
[]
[]
[SubdomainIDGenerator]
[subs]
input = mymesh
[]
[]
[MultiSampleMeshCombiner]
[subs]
[]
[]
[UO2CreepUpdate]
[fuel_creep]
initial_grain_radius = ${initial_grain_radius}
oxygen_to_metal_ratio = ${oxygen_to_metal_ratio}
fission_rate = fission_rate
density = ${density}
multi_sample_number_params = 'a7'
multi_sample_number_values = '7e-37 8e-37'
[]
[]
[ElementExtremeValue]
[creep_rate]
value_type = max
variable = creep_rate
execute_on = timestep_end
[]
[]
[ComputeMultipleInelasticStress]
[elastic_stress]
tangent_operator = nonlinear
inelastic_models = 'fuel_creep'
absolute_tolerance = 1e-20
[]
[]
[MultiSamplePressure]
[applied_pressure]
boundary = 'top'
function = applied_pressure
multi_sample_number_params = 'factor'
multi_sample_number_values = '6.80E+07 6.90E+07'
[]
[]
[ComputeLog10]
[log_creep_rate]
pp_names = creep_rate
expression = 0
execute_on = 'initial timestep_end'
[]
[]
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[]
[AuxVariables]
[axial_stress]
order = CONSTANT
family = MONOMIAL
[]
[axial_strain]
order = CONSTANT
family = MONOMIAL
[]
[creep_rate]
order = CONSTANT
family = MONOMIAL
[]
[fission_rate]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[applied_pressure]
type = PiecewiseLinear
x = '0 1'
y = '0 -1'
[]
[applied_temperature]
type = PiecewiseLinear
x = '0 1'
y = '0 ${temperature}'
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[all]
strain = finite
add_variables = true
incremental = true
generate_output = 'stress_xx stress_yy strain_yy strain_xx creep_strain_xx creep_strain_yy'
use_automatic_differentiation = false
extra_vector_tags = 'ref'
decomposition_method = EigenSolution
[]
[]
[AuxKernels]
[creep_rate]
type = MaterialRealAux
property = creep_rate
execute_on = timestep_end
variable = creep_rate
[]
[fission_rate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
value = ${fission_rate}
execute_on = 'Initial'
[]
[]
[BCs]
[bottom_no_y]
type = DirichletBC
variable = disp_y
boundary = 'bottom'
value = 0.0
preset = true
[]
[central_axis_no_x]
type = DirichletBC
variable = disp_x
boundary = 'left'
value = 0.0
preset = true
[]
[]
[Materials]
[fuel_elasticity_tensor]
type = UO2ElasticityTensor
density = ${density}
[]
[]
[Dampers]
[limitY]
type = MaxIncrement
max_increment = 100e-6
variable = disp_y
[]
[]
[Executioner]
type = Transient
solve_type = 'newton'
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 = 500
nl_max_its = 100
l_tol = 1e-4
nl_rel_tol = 1e-8
nl_abs_tol = 1e-8
start_time = 0
end_time = 1
[TimeStepper]
type = IterationAdaptiveDT
dt = 1
[]
[]
[Outputs]
csv = true
execute_on = 'TIMESTEP_END'
exodus = true
[]
(test/tests/sifgrs/uo2/polypole2_hbs.i)
# This input is to test polypole-2 for UO2Sifgrs with the high burnup structure model
# The model is based on K. Lassmann et al., JNM 226, 1, 1995, where the intragranular
# Xe concentration in solid solution is assumed to increase linearly with burnup until
# the high-burnup structure forms at a given burnup threshold. At that point, the Xe
# concentration in the matrix decreases exponentially as it goes to the hbs pores.
#
# To reproduce the model and results published in K. Lassmann et al., JNM 226, 1, 1995,
# Xe diffusion is made effectively null to prevent Xe release from the grain interior.
# Intragranular bubble nucleation is also supressed (and initial_porosity = 0) as the
# paper only measures Xe concentration in teh matrix aways from bubbles and cracks.
# The results of this test (evolution of Xe_matrix) correspond to Fig. 4 from
# K. Lassmann et al., JNM 226, 1, 1995.
[Mesh]
[mesh]
type = FileMeshGenerator
file = 1hex8_10mm_cube.e
[]
[]
[Functions]
[temperature_function]
type = ParsedFunction
expression = '1700'
[]
[fission_rate_function]
type = ParsedFunction
expression = '2.5e19'
[]
[]
[Variables]
[temperature]
initial_condition = 1700
[]
[]
[AuxVariables]
[fission_rate]
[]
[burnup]
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temperature
diffusion_coefficient = 1
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
value = 1
fission_rate_function = fission_rate_function
execute_on = 'initial timestep_begin'
[]
[burnup_aux]
type = BurnupAux
variable = burnup
fission_rate = fission_rate
density = 10980 # kg/m3
[]
[]
[BCs]
[bottom_temperature]
type = FunctionDirichletBC
variable = temperature
function = temperature_function
boundary = '1 2'
[]
[]
[Materials]
[High_Burnup_Structure_Formation]
type = HighBurnupStructureFormation
temperature = temperature
burnup = burnup
hbs_model_type = Lassmann
[]
[fission_gas_behavior]
type = UO2Sifgrs
skip_bdr_model = true
ig_bubble_model = NUCLEATION_RESOLUTION
nuclerate_scalef = 0
initial_porosity = 0
fract_yield = 0.268 # from 'K. Lassmann et al., JNM 226, 1, 1995' for Xe
igdiffcoeff_scalef = 1e-12 # to suppress intragranular diffusion and prevent thermal release
burnup = burnup
hbs_model = true
hbs_material = High_Burnup_Structure_Formation
temperature = temperature
fission_rate = fission_rate
ig_diff_algorithm = POLYPOLE2
output_properties = 'bubble_concentration_intra bubble_radius_intra gas_concentration_bubble_intra gas_concentration_matrix_intra deltav_v0_intra_total deltav_v0_bubble_GB gas_concentration_GB_bubble_volume_HBS'
outputs = 'all'
[]
[]
[Executioner]
type = Transient
solve_type = Newton
l_tol = 1e-12
nl_abs_tol = 5e-16
nl_rel_tol = 1e-17
start_time = 0.0
end_time = 2.6e8
dt = 3e6
[]
[Postprocessors]
[fis_gas_generated]
type = ElementIntegralMaterialProperty
mat_prop = gas_concentration_generated_total
[]
[fis_gas_released]
type = ElementIntegralMaterialProperty
mat_prop = gas_concentration_release_total
[]
[fgr_percent]
type = FGRPercent
fission_gas_released = fis_gas_released
fission_gas_generated = fis_gas_generated
[]
[intra_swelling_total]
type = ElementIntegralMaterialProperty
mat_prop = deltav_v0_intra_total
[]
[inter_swelling_total]
type = ElementIntegralMaterialProperty
mat_prop = deltav_v0_bubble_GB
[]
[inter_swelling_HBS]
type = ElementIntegralMaterialProperty
mat_prop = deltav_v0_bubble_GB_HBS
[]
[gas_amount_bubble_intra_non_restructured]
type = ElementIntegralMaterialProperty
mat_prop = gas_concentration_bubble_intra_non_restructured
[]
[gas_amount_matrix_intra_non_restructured]
type = ElementIntegralMaterialProperty
mat_prop = gas_concentration_matrix_intra_non_restructured
[]
[bubble_amount_intra_non_restructured]
type = ElementIntegralMaterialProperty
mat_prop = bubble_concentration_intra_non_restructured
[]
[bubble_radius_intra_average_non_restructured]
type = ElementAverageMaterialProperty
mat_prop = bubble_radius_intra_non_restructured
[]
[bubble_pressure_intra_non_restructured]
type = ElementAverageMaterialProperty
mat_prop = bubble_pressure_intra_non_restructured
[]
[temperature]
type = ElementAverageValue
variable = temperature
[]
[fission_rate]
type = ElementAverageValue
variable = fission_rate
[]
[gas_amount_hbs_GB_bubbles]
type = ElementIntegralMaterialProperty
mat_prop = gas_concentration_GB_bubble_volume_HBS
[]
[gas_amount_hbs_GB_single_atoms]
type = ElementIntegralMaterialProperty
mat_prop = gas_concentration_GB_single_atom_volume_HBS
[]
[gas_amount_hbs_matrix]
type = ElementIntegralMaterialProperty
mat_prop = gas_concentration_matrix_intra_HBS
[]
[gas_amount_hbs_intra_bubbles]
type = ElementIntegralMaterialProperty
mat_prop = gas_concentration_bubble_intra_HBS
[]
[bubble_pressure_intra_hbs]
type = ElementAverageMaterialProperty
mat_prop = bubble_pressure_intra_HBS
[]
[gas_amount_hbs_intra_total]
type = ElementIntegralMaterialProperty
mat_prop = gas_concentration_intra_total_HBS
[]
[bubble_amount_GB_hbs]
type = ElementIntegralMaterialProperty
mat_prop = bubble_GB_volume_density_HBS
[]
[bubble_radius_GB_average_hbs]
type = ElementAverageMaterialProperty
mat_prop = bubble_radius_GB_HBS
[]
[bubble_pressure_GB_hbs]
type = ElementAverageMaterialProperty
mat_prop = bubble_GB_pressure_HBS
[]
[volume_domain]
type = ElementIntegralMaterialProperty
mat_prop = 1
[]
[hbs_volume]
type = ElementIntegralMaterialProperty
mat_prop = hbs_volume_fraction
[]
[hbs_volume_fraction]
type = ParsedPostprocessor
pp_names = 'hbs_volume volume_domain'
expression = 'hbs_volume / volume_domain'
[]
[grain_radius_total]
type = ElementAverageMaterialProperty
mat_prop = grain_radius_sifgrs
[]
[burnup]
type = ElementAverageValue
variable = burnup
[]
[]
[Outputs]
csv = true
[]
(test/tests/sifgrs/uo2/ad_percolation.i)
# This test is to verify that the optional check for a path to a free surface for gas release works correctly.
# When the optional percolation AuxVariable is supplied to Sifgrs, gas release is not allowed unless
# that variable is > 0.5 locally. The PercolationUserObject checks whether each position is connected
# to a free surface and sets the AuxVariable accordingly.
# In this test, the gas released should be nearly the same as the sifgrs_second_stage test.
[Mesh]
[mesh]
type = FileMeshGenerator
file = 1hex8_10mm_cube.e
[]
[free1]
type = SideSetsAroundSubdomainGenerator
new_boundary = free1
normal = '1 0 0'
block = 1
input = mesh
[]
[]
[Functions]
[Temp_func]
type = ParsedFunction
expression = '1400'
[]
[Fiss_func]
type = ParsedFunction
expression = '1.e19'
[]
[]
[Variables]
[T]
initial_condition = 1400
[]
[]
[AuxVariables]
[fission_rate]
[]
[GBCoverage]
order = CONSTANT
family = MONOMIAL
[]
# percolation AuxVariables
[open_coverage]
order = CONSTANT
family = MONOMIAL
[]
[open_threshold]
order = CONSTANT
family = MONOMIAL
[]
[open]
order = CONSTANT
family = MONOMIAL
[]
[cluster]
order = CONSTANT
family = MONOMIAL
[]
[percolated]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[heat]
type = ADHeatConduction
variable = T
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
value = 1
fission_rate_function = Fiss_func
execute_on = 'initial timestep_begin'
[]
[frcvrg]
type = ADMaterialRealAux
variable = GBCoverage
property = GBCoverage
execute_on = 'initial linear'
[]
# percolation auxkernels
[open_coverage]
type = ADMaterialRealAux
variable = open_coverage
property = GBCoverage
[]
[open_threshold]
type = ADMaterialRealAux
variable = open_threshold
property = sat_coverage
[]
[open]
type = ParsedAux
variable = open
coupled_variables = 'open_coverage open_threshold'
expression = 'open_coverage-open_threshold'
[]
[cluster]
type = FeatureFloodCountAux
variable = cluster
execute_on = 'timestep_begin'
field_display = UNIQUE_REGION
flood_counter = percolate
[]
[percolated]
type = PercolationAux
variable = percolated
execute_on = 'timestep_begin'
percolation = percolate
[]
[]
[BCs]
[bottom_T]
type = ADFunctionDirichletBC
variable = T
function = Temp_func
boundary = 1
[]
[]
[Materials]
[UO2]
type = ADHeatConductionMaterial
block = 1
thermal_conductivity = 1.0
specific_heat = 1.0
[]
[fission_gas_behavior]
type = ADUO2Sifgrs
block = 1
temperature = T
fission_rate = fission_rate
percolation_to_surface = percolated
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
l_tol = 1e-4
nl_abs_tol = 1e-5
nl_rel_tol = 1e-5
start_time = 0.0
num_steps = 50
dt = 1e6
end_time = 5e7
[]
[Postprocessors]
[fis_gas_generated]
type = ADElementIntegralFisGasGeneratedSifgrs
block = 1
[]
[fis_gas_released]
type = ADElementIntegralFisGasReleasedSifgrs
block = 1
[]
[]
[UserObjects]
[percolate]
type = PercolationUserObject
execute_on = 'timestep_begin'
boundaries = 'free1'
variable = open
threshold = 0.0
[]
[]
[Outputs]
[out]
type = Exodus
[]
[]
(assessment/MOX/JOYO/B14/PTM002/analysis/b14_ptm002_mechanics.i)
[GlobalParams]
order = FIRST
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
volumetric_locking_correction = false
displacements = 'disp_x disp_y'
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[Mesh]
[mesh]
type = FileMeshGenerator
file = half_symm_disk_tube_mech.e
[]
[]
[Variables]
[temp]
initial_condition = 600
[]
[pore]
initial_condition = 0.1372
scaling = 1e14
block = 1
[]
[]
[AuxVariables]
[pore_speed_aux]
order = constant
family = monomial
[]
[fission_rate_aux_variable_mox]
order = first
family = lagrange
[]
[grad_temp_x]
order = CONSTANT
family = MONOMIAL
[]
[thermal_conductivity]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[power_history1]
type = PiecewiseLinear
data_file = power.csv
format = columns
[]
[f_temp_out_clad]
type = PiecewiseLinear
x = '0 100 249100 251380'
y = '600 882.81 882.81 600'
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[pellets]
block = 1
add_variables = true
strain = FINITE
eigenstrain_names = 'fuel_thermal_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
extra_vector_tags = 'ref'
use_finite_deform_jacobian = true
[]
[clad]
block = 2
add_variables = true
strain = FINITE
eigenstrain_names = 'clad_thermal_eigenstrain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
extra_vector_tags = 'ref'
use_finite_deform_jacobian = true
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temp
[]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temp
[]
[heat_source]
type = NeutronHeatSource
variable = temp
fission_rate = fission_rate_aux_variable_mox
[]
[pore_continuity]
type = MOXPoreContinuity
variable = pore
temperature = temp
debug = 0
alpha = 0.25
beta = 1
heating_function = power_history1
block = 1
[]
[pore_diffusion]
type = MOXPoreDiffusion
variable = pore
debug = 0
nu = 1e-10
heating_function = power_history1
v_upper = 1e-12
v_lower = 1e-20
block = 1
[]
[poretimederivative]
type = CoefTimeDerivative
variable = pore
Coefficient = 1
block = 1
[]
[]
[AuxKernels]
[pore_speed_aux]
type = MaterialRealAux
variable = pore_speed_aux
property = pore_velocity
execute_on = 'initial timestep_end'
block = 1
[]
[fission_rate_aux_kernel_mox]
type = FissionRateGeneral
fission_rate_formulation = MOX
variable = fission_rate_aux_variable_mox
porosity = pore
initial_porosity = 0.143
rod_ave_lin_pow = power_history1
pellet_diameter = 0.00535
pellet_inner_diameter = 0
energy_per_fission = 3.2e-11
execute_on = 'initial timestep_end'
value = 1.0
block = 1
[]
[grad_temp_x_aux]
type = VariableGradientComponent
variable = grad_temp_x
component = x
gradient_variable = temp
execute_on = 'initial timestep_end'
[]
[ThermalConductivityAux]
type = MaterialRealAux
execute_on = linear
property = thermal_conductivity
variable = thermal_conductivity
block = 1
[]
[]
[BCs]
[no_x_fuel]
type = DirichletBC
variable = disp_x
boundary = '4'
value = 0.0
[]
[no_x_clad]
type = DirichletBC
variable = disp_x
boundary = '5'
value = 0.0
[]
[no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = 7
value = 0.0
[]
[no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 6
value = 0.0
[]
[temp_clad_outside]
type = FunctionDirichletBC
variable = temp
function = f_temp_out_clad
boundary = '3'
[]
[]
[ThermalContact]
[thermal_contact]
type = GapHeatTransfer
variable = temp
primary = 1
secondary = 2
gap_conductivity = 0.2
gap_geometry_type = cylinder
cylinder_axis_point_1 = '0 0 0'
cylinder_axis_point_2 = '0 0 1'
normal_smoothing_distance = 0.01
tangential_tolerance = 0.01
quadrature = true
[]
[]
[Materials]
[fuel_thermal]
type = MAMOXThermal
temperature = temp
porosity = pore
block = 1
Am_content = 0.0237
oxy_to_metal_ratio = 1.98
[]
[fuel_density]
type = GenericConstantMaterial
prop_names = density
prop_values = 11057.75
block = 1
[]
[fuel_elasticity_tensor]
type = MAMOXElasticityTensor
block = 1
[]
[elastic_stress_fuel]
type = ComputeFiniteStrainElasticStress
block = 1
[]
[fuel_thermal_expansion]
type = MAMOXThermalExpansionEigenstrain
block = 1
temperature = temp
stress_free_temperature = 295.0
oxygen_to_metal_ratio = 1.98
eigenstrain_name = fuel_thermal_strain
[]
[pore_velocity]
type = MOXPoreVelocity
temperature = temp
limit = 1e-3
scale_factor = 0.1
block = 1
[]
[clad_thermal]
type = SS316Thermal
block = 2
temperature = temp
[]
[clad_elasticity_tensor]
type = SS316ElasticityTensor
block = 2
temperature = temp
elastic_constants_model = legacy_ifr
[]
[thermal_expansion]
type = SS316ThermalExpansionEigenstrain
block = 2
temperature = temp
stress_free_temperature = 295.0
eigenstrain_name = clad_thermal_eigenstrain
[]
[elastic_stress_clad]
type = ComputeFiniteStrainElasticStress
block = 2
[]
[clad_density]
type = GenericConstantMaterial
prop_names = density
prop_values = 8000.0
block = 2
[]
[]
[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'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
l_max_its = 50
l_tol = 8e-3
nl_max_its = 50
nl_rel_tol = 1e-5
nl_abs_tol = 1e-6
end_time = 251380
dtmin = 0.25
automatic_scaling = true
compute_scaling_once = false
[TimeStepper]
type = IterationAdaptiveDT
dt = 1e2
optimal_iterations = 15
iteration_window = 2
linear_iteration_ratio = 100
growth_factor = 2
cutback_factor = .5
force_step_every_function_point = true
timestep_limiting_function = power_history1
[]
[]
[Postprocessors]
[ave_fuel_temp]
type = ElementAverageValue
variable = temp
block = 1
[]
[max_fuel_temp]
type = NodalExtremeValue
value_type = max
variable = temp
block = 1
[]
[ave_pore]
type = ElementAverageValue
variable = pore
block = 1
[]
[max_pore]
type = NodalExtremeValue
value_type = max
variable = pore
block = 1
[]
[min_pore]
type = NodalExtremeValue
value_type = min
variable = pore
block = 1
[]
[max_pore_speed]
type = ElementExtremeValue
value_type = max
variable = pore_speed_aux
block = 1
[]
[rod_total_power_mox]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate_aux_variable_mox
block = 1
[]
[rod_input_power]
type = FunctionValuePostprocessor
function = power_history1
scale_factor = 0.5 # half disk
[]
[ave_themal_conductivity]
type = ElementAverageValue
variable = thermal_conductivity
block = 1
[]
[]
[VectorPostprocessors]
[line_value_vector_postprocessor_pore]
type = LineValueSampler
variable = pore
start_point = '0.0 0.00008 0.0'
end_point = '0.002675 0.00008 0.0'
num_points = 200
sort_by = x
execute_on = linear
outputs = stuff_v_rad
control_tags = a
[]
[line_value_vector_postprocessor_gradT]
type = LineValueSampler
variable = grad_temp_x
start_point = '0.0 0.00008 0.0'
end_point = '0.002675 0.00008 0.0'
num_points = 100
sort_by = x
execute_on = linear
outputs = stuff_v_rad
[]
[line_value_vector_postprocessor_pore_speed]
type = LineValueSampler
variable = pore_speed_aux
start_point = '0.0 0.00008 0.0'
end_point = '0.002675 0.00008 0.0'
num_points = 100
sort_by = x
execute_on = linear
outputs = stuff_v_rad
[]
[line_value_vector_postprocessor_temp]
type = LineValueSampler
variable = temp
start_point = '0.0 0.00008 0.0'
end_point = '0.002675 0.00008 0.0'
num_points = 100
sort_by = x
execute_on = linear
outputs = stuff_v_rad
[]
[line_value_vector_postprocessor_thermal_conductivity]
type = LineValueSampler
variable = thermal_conductivity
start_point = '0.0 0.00008 0.0'
end_point = '0.002675 0.00008 0.0'
num_points = 100
sort_by = x
execute_on = linear
outputs = stuff_v_rad
[]
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = true
csv = true
color = false
[console]
type = Console
max_rows = 25
all_variable_norms = true
[]
[stuff_v_rad]
type = CSV
execute_on = 'FINAL'
[]
[chkfile]
type = CSV
execute_on = FINAL
show = 'ave_fuel_temp max_pore'
[]
[]
[Debug]
show_var_residual_norms = true
show_var_residual = 'disp_x disp_y temp pore'
[]
(examples/TRISO/accident_simulation/triso2D_accident_mortar.i)
# This example is 2D-RZ analysis of a TRISO fuel particle. Fully coupled
# heat transfer and solid mechanics, plus diffusion of the fission product
# species cesium (Cs) are simulated. The mesh includes contact surfaces
# between the buffer and IPyC layers to facilitate a gap opening between
# these layers. These surfaces are initially in mechanical contact but
# are assumed to have no strength in tension. A coarse mesh is used to
# provide a short run time.
# The calculation simulates fuel-life in three steps. The first step is an
# irradiation period, where constant power and a fixed particle surface
# temperature (1500 K) are assumed over a lifetime of 76 Ms (2.4 yrs).
# For the second step, fuel removal and storage are simulated by setting
# the reactor power and Cs source terms to zero, reducing the particle
# surface temperature to ambient (300 K), and then holding it
# for 100 days. A third and final step simulates accident
# behavior by increasing the particle surface temperature from ambient
# to 2073 K over 2 hrs, and then holding it at this elevated temperature
# for an additional 200 hrs. At the particle outer boundary, the Cs
# concentration is held at zero and the pressure at ambient during the
# entire simulation. The particle is assumed to be stress-free at an
# initial temperature of 1500 K.
#
# Details about this simulation are given in Section 4 of the following
# article: J. D. Hales, R. L. Williamson, S. R. Novascone, D. M. Perez,
# B. W. Spencer and G. Pastore, "Multidimensional multiphysics simulation
# of TRISO particle fuel", Journal of Nuclear Materials, Vol. 443, p. 531,
# 2013.
# This is a version using a thermomechanical mortar approach.
initial_fuel_density = 11000.0
[GlobalParams]
order = SECOND
family = LAGRANGE
displacements = 'disp_x disp_y'
flux_conversion_factor = 0.85
[]
[Mesh]
coord_type = RZ
[file]
type = FileMeshGenerator
file = triso2Dmed.e
[]
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
converge_on = 'disp_x disp_y temp conc'
[]
[Variables]
[disp_x]
[]
[disp_y]
[]
[temp]
initial_condition = 1500.0
[]
[conc]
initial_condition = 0.0
[]
[]
[AuxVariables]
[fission_rate]
block = fuel
order = CONSTANT
family = MONOMIAL
[]
[fluence]
order = CONSTANT
family = MONOMIAL
[]
[burnup]
block = fuel
order = CONSTANT
family = MONOMIAL
[]
[creep_xx]
order = CONSTANT
family = MONOMIAL
[]
[creep_yy]
order = CONSTANT
family = MONOMIAL
[]
[creep_zz]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[power_history]
type = PiecewiseLinear
x = '0 76e6 76.001e6'
y = '1 1 0'
[]
[temp_bc]
type = PiecewiseLinear
x = '0 76e6 76.001e6 84.641e6 84.6482e6'
y = '1500 1500 300 300 2073'
[]
[k_function]
type = PiecewiseLinear
x = '0 200e6'
y = '4e-37 4e-37'
[]
[d1_function]
type = ParsedFunction
expression = 'exp(t/4.5e25)'
[]
[d_gap]
type = PiecewiseLinear
x = '1500 2100'
y = '1e-14 1e-12'
[]
[integral_flux_error]
type = ParsedFunction
symbol_names = 'buffer_integral_flux IPyC_integral_flux'
symbol_values = 'buffer_integral_flux IPyC_integral_flux'
expression = 'IPyC_integral_flux + buffer_integral_flux'
[]
[]
[Physics/SolidMechanics/QuasiStatic]
generate_output = 'stress_xx stress_yy stress_zz stress_xy stress_yz stress_zx hydrostatic_stress'
strain = FINITE
incremental = true
add_variables = false
[default]
block = 'fuel buffer IPyC OPyC'
eigenstrain_names = 'thermal_strain swelling_strain'
extra_vector_tags = 'ref'
[]
[SiC]
block = 'SiC'
eigenstrain_names = 'thermal_strain'
extra_vector_tags = 'ref'
[]
[]
[Kernels]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temp
extra_vector_tags = 'ref'
block = 'fuel buffer IPyC SiC OPyC'
[]
[heat]
type = HeatConduction
variable = temp
extra_vector_tags = 'ref'
block = 'fuel buffer IPyC SiC OPyC'
[]
[heat_source]
type = NeutronHeatSource
variable = temp
block = fuel
energy_per_fission = 3.2e-11 # units of J/fission
fission_rate = fission_rate
extra_vector_tags = 'ref'
[]
[mass_ie]
type = TimeDerivative
variable = conc
extra_vector_tags = 'ref'
block = 'fuel buffer IPyC SiC OPyC'
[]
[mass]
type = ArrheniusDiffusion
variable = conc
extra_vector_tags = 'ref'
block = 'fuel buffer IPyC SiC OPyC'
[]
[mass_source]
type = BodyForce
variable = conc
function = power_history
value = 1.22e-5 # units of moles/m**3-s
block = fuel
extra_vector_tags = 'ref'
[]
[mass_decay]
type = Decay
variable = conc
radioactive_decay_constant = 7.297e-10 # units:(1/sec) The constant for Cesium
block = 'fuel buffer IPyC SiC OPyC'
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[fission_rate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
block = fuel
fission_rate_function = power_history
value = 3.89e19
execute_on = timestep_begin
[]
[fluence]
type = MaterialRealAux
property = fast_neutron_fluence
variable = fluence
[]
[burnup]
type = BurnupAux
variable = burnup
block = fuel
fission_rate = fission_rate
molecular_weight = 0.270 # units of kg/mole
execute_on = timestep_begin
density = ${initial_fuel_density}
[]
[creep_xx]
type = RankTwoAux
rank_two_tensor = creep_strain
variable = creep_xx
index_i = 0
index_j = 0
block = 'buffer IPyC SiC OPyC'
execute_on = timestep_end
[]
[creep_yy]
type = RankTwoAux
rank_two_tensor = creep_strain
variable = creep_yy
index_i = 1
index_j = 1
block = 'buffer IPyC SiC OPyC'
execute_on = timestep_end
[]
[creep_zz]
type = RankTwoAux
rank_two_tensor = creep_strain
variable = creep_zz
index_i = 2
index_j = 2
block = 'buffer IPyC SiC OPyC'
execute_on = timestep_end
[]
[]
[ThermalContactMortar]
[thermal]
secondary_variable = temp
primary_boundary = 15
secondary_boundary = 17
initial_moles = initial_moles # coupling to a postprocessor which supplies the initial plenum/gap gas mass
gas_released = 'fis_gas_released co_production' # coupling to postprocessors which supply the fission gas addition, co addition
released_gas_types = 'Kr Xe;
CO'
released_fractions = '0.153 0.847;
1'
gap_geometry_type = CYLINDER
min_gap = 1e-7
max_gap = 50e-6
roughness_coef = 0.0
correct_edge_dropping = true
[]
[]
[Contact]
[pellet_clad_mechanical]
primary = 15
secondary = 17
model = frictionless
formulation = mortar
c_normal = 1.0e8
correct_edge_dropping = true
[]
[]
[ThermalContact]
[cesium_contact]
type = GapHeatTransfer
variable = conc
primary = 15
secondary = 17
tangential_tolerance = 1e-6
gap_conductivity_function = d_gap
gap_conductivity_function_variable = temp
appended_property_name = _conc
emissivity_primary = 0
emissivity_secondary = 0
quadrature = true
[]
[]
[BCs]
# pin particle along symmetry planes
[no_disp_x]
type = DirichletBC
variable = disp_x
boundary = xzero
value = 0.0
extra_vector_tags = 'ref'
[]
[no_disp_y]
type = DirichletBC
variable = disp_y
boundary = yzero
value = 0.0
extra_vector_tags = 'ref'
[]
# fix temperature on free surface
[freesurf_temp]
type = FunctionDirichletBC
variable = temp
boundary = exterior
function = temp_bc
extra_vector_tags = 'ref'
[]
# fix concentration on free surface
[freesurf_conc]
type = DirichletBC
variable = conc
boundary = exterior
value = 0.0
extra_vector_tags = 'ref'
[]
[PlenumPressure] # apply plenum pressure on clad inner walls and pellet surfaces
[plenumPressure]
boundary = BufferGapVol
initial_pressure = 0
startup_time = 1.0e4
R = 8.3145
output_initial_moles = initial_moles # coupling to post processor to get initial fill gas mass
temperature = ave_temp_interior # coupling to post processor to get gas temperature approximation
volume = volumeGas # coupling to post processor to get gas volume
material_input = 'fis_gas_released co_production' # coupling to post processor to get fission gas added, co added
output = plenum_pressure # coupling to post processor to output plenum/gap pressure
[]
[]
[]
[Materials]
[flux]
type = FastNeutronFlux
calculate_fluence = true
factor = 5e17
[]
[fission_gas_release] # Sifgrs fission gas release mode
type = UO2Sifgrs
block = fuel
temperature = temp
fission_rate = fission_rate # coupling to fission_rate aux variable
grain_radius_const = 5.0e-6
[]
[fuel_thermal]
type = UO2Thermal
thermal_conductivity_model = FINK_LUCUTA
block = fuel
temperature = temp
burnup = burnup
initial_porosity = 0.0
[]
[fuel_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = MATPRO
block = fuel
temperature = temp
burnup = burnup
eigenstrain_name = 'swelling_strain'
initial_fuel_density = ${initial_fuel_density}
[]
[fuel_stress]
type = ComputeFiniteStrainElasticStress
block = 'fuel'
[]
[fuel_elasticity]
type = ComputeIsotropicElasticityTensor
block = fuel
youngs_modulus = 2.2e11
poissons_ratio = .345
[]
[fuel_thermal_strain]
type = ComputeThermalExpansionEigenstrain
block = fuel
thermal_expansion_coeff = 10e-6
stress_free_temperature = 1500.0
eigenstrain_name = thermal_strain
temperature = temp
[]
[fuel_den]
type = StrainAdjustedDensity
block = fuel
strain_free_density = ${initial_fuel_density} # kg/m^3
[]
[fuel_conc]
type = ArrheniusDiffusionCoef
block = fuel
d1 = 5.6e-8 # m^2/s
q1 = 209.0e+3 # J/mol
d2 = 5.2e-4 # m^2/s
q2 = 362.0e+3 # J/mol
gas_constant = 8.3143 # J/K-mol
temperature = temp
[]
[buffer_eigenstrain]
type = PyCIrradiationEigenstrain
block = buffer
pyc_type = buffer
eigenstrain_name = 'swelling_strain'
[]
[buffer_thermal_strain]
type = ComputeThermalExpansionEigenstrain
block = buffer
thermal_expansion_coeff = 5.65e-6
stress_free_temperature = 1500.0
eigenstrain_name = thermal_strain
temperature = temp
[]
[buffer_elasticity]
type = ComputeIsotropicElasticityTensor
block = buffer
youngs_modulus = 2e10
poissons_ratio = .23
[]
[buffer_stress]
type = PyCCreep
block = buffer
temperature = temp
[]
[buffer_temp]
type = HeatConductionMaterial
block = buffer
thermal_conductivity = 0.5 # J/m-s-K
specific_heat = 720.0 # J/kg-K
[]
[buffer_den]
type = StrainAdjustedDensity
strain_free_density = 1000.0 #kg/m^3
block = buffer
[]
[buffer_conc]
type = ArrheniusDiffusionCoef
block = buffer
d1 = 1.0e-12 # m^2/s
q1 = 0.0
d2 = 0.0
q2 = 0.0
gas_constant = 8.3143 # J/K-mol
temperature = temp
[]
[normal_vectors_triso]
type = NormalVectorsTRISO
block = 'IPyC OPyC buffer'
[]
[IPyC_eigenstrain]
type = PyCIrradiationEigenstrain
block = IPyC
pyc_type = dense
eigenstrain_name = 'swelling_strain'
[]
[IPyC_thermal_strain]
type = ComputeThermalExpansionEigenstrain
block = IPyC
thermal_expansion_coeff = 5.65e-6
stress_free_temperature = 1500.0
eigenstrain_name = thermal_strain
temperature = temp
[]
[IPyC_elasticity]
type = ComputeIsotropicElasticityTensor
block = IPyC
youngs_modulus = 4.74e10
poissons_ratio = .23
[]
[IPyC_disp]
type = PyCCreep
block = 'IPyC OPyC'
temperature = temp
[]
[IPyC_temp]
type = HeatConductionMaterial
block = 'IPyC OPyC'
thermal_conductivity = 4.0
specific_heat = 720.0
[]
[IPyC_den]
type = StrainAdjustedDensity
block = 'IPyC OPyC'
strain_free_density = 1900.0
[]
[IPyC_conc]
type = ArrheniusDiffusionCoef
block = IPyC
d1 = 6.3e-8
q1 = 222.0e+3
d2 = 0.0
q2 = 0.0
gas_constant = 8.3143 # J/K-mol
temperature = temp
[]
[SiC_thermal_strain]
type = ComputeThermalExpansionEigenstrain
block = SiC
thermal_expansion_coeff = 4.9e-6
stress_free_temperature = 1500.0
eigenstrain_name = thermal_strain
temperature = temp
[]
[SiC_elasticity]
type = ComputeIsotropicElasticityTensor
block = SiC
youngs_modulus = 3.4e11
poissons_ratio = .13
[]
[SiC_creep]
type = MonolithicSiCCreepUpdate
block = SiC
temperature = temp
k_function = k_function
[]
[SiC_stress]
type = ComputeMultipleInelasticStress
block = SiC
tangent_operator = elastic
inelastic_models = 'SiC_creep'
[]
[SiC_temp]
type = HeatConductionMaterial
block = SiC
thermal_conductivity = 13.9 # J/m-s-K
specific_heat = 620.0 # J/kg-K
[]
[SiC_den]
type = StrainAdjustedDensity
strain_free_density = 3180.0 # kg/m^3
block = SiC
[]
[SiC_conc]
type = ArrheniusDiffusionCoef
block = SiC
d1 = 5.5e-14 # m^2/s
d1_function = d1_function
d1_function_variable = fluence
q1 = 125.0e+3 # J/mol
d2 = 1.6e-2 # m^2/s
q2 = 514.0e+3 # J/mol
gas_constant = 8.3143 # J/K-mol
temperature = temp
[]
[OPyC_eigenstrain]
type = PyCIrradiationEigenstrain
block = OPyC
pyc_type = dense
eigenstrain_name = 'swelling_strain'
[]
[OPyC_thermal_strain]
type = ComputeThermalExpansionEigenstrain
block = OPyC
thermal_expansion_coeff = 5.65e-6
stress_free_temperature = 1500.0
eigenstrain_name = thermal_strain
temperature = temp
[]
[OPyC_elasticity]
type = ComputeIsotropicElasticityTensor
block = OPyC
youngs_modulus = 4.74e10
poissons_ratio = .23
[]
[OPyC_conc]
type = ArrheniusDiffusionCoef
block = OPyC
d1 = 6.3e-8 # m^2/s
q1 = 222.0e+3 # J/mol
d2 = 0.0
q2 = 0.0
gas_constant = 8.3143 # J/K-mol
temperature = temp
[]
[]
[Dampers]
[temp]
type = MaxIncrement
variable = temp
max_increment = 50
[]
[]
[Debug]
show_var_residual_norms = true
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'NEWTON'
petsc_options = '-snes_converged_reason -ksp_converged_reason -snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package -mat_mffd_err -pc_factor_shift_type -pc_factor_shift_amount'
petsc_options_value = 'lu superlu_dist 1e-5 NONZERO 1e-14'
snesmf_reuse_base = false
line_search = 'none'
nl_rel_tol = 5e-4
nl_abs_tol = 1e-10
nl_max_its = 20
l_max_its = 8
start_time = 0.0
end_time = 85.3682e6
dt = 100
dtmax = 2e6
dtmin = 1
[TimeStepper]
type = IterationAdaptiveDT
dt = 100
optimal_iterations = 10
growth_factor = 1.5
linear_iteration_ratio = 100
time_t = '0 76e6 76.001e6 84.641e6 84.6482e6'
time_dt = '20 20 20 20 20'
[]
[Predictor]
type = SimplePredictor
scale = 0.5
skip_times_old = '0 76e6 76.001e6 84.641e6 84.6482e6'
[]
[]
[Outputs]
perf_graph = true
exodus = true
[console]
type = Console
max_rows = 25
[]
[csv]
type = CSV
sync_times = '100 6308007 75696087'
sync_only = true
[]
[]
[Postprocessors]
[Cs_release]
type = SideIntegralMassFlux
variable = conc
boundary = exterior
execute_on = timestep_end
[]
[dt]
type = TimestepSize
execute_on = timestep_end
[]
[fis_gas_produced] # fission gas produced (moles)
type = ElementIntegralFisGasGeneratedSifgrs
block = fuel
execute_on = 'initial linear nonlinear timestep_begin timestep_end'
[]
[fis_gas_released] # fission gas released to plenum (moles)
type = ElementIntegralFisGasReleasedSifgrs
block = fuel
execute_on = 'initial linear nonlinear timestep_begin timestep_end'
[]
[volumeTotal]
type = InternalVolume
boundary = exterior
execute_on = 'initial timestep_end'
[]
[volumeFuel]
type = InternalVolume
boundary = fuel
execute_on = 'initial timestep_end'
[]
[volumeGas]
type = InternalVolume
boundary = BufferGapVol
# ro = 3.125e-4
# ri = 2.125e-4
# vb = 4/3*pi*(ro^3-ri^3) = 8.76e-11
# buffer density = 1000
# PyC density = 1900
# fill ratio = 10/19
# vb*10/19 = 4.6e-11
# Must remove 4.6e-11 m^3 from the volume
addition = -4.6e-11
execute_on = 'initial linear nonlinear timestep_begin timestep_end'
[]
[volumeBufferShell]
type = InternalVolume
boundary = BufferGapVol
execute_on = 'initial timestep_end'
[]
[ave_temp_interior]
type = SideAverageValue
boundary = BufferGapVol
variable = temp
execute_on = 'initial linear nonlinear timestep_begin timestep_end'
[]
# Postprocessors for CO production
[total_fission_rate]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = fuel
energy_per_fission = 1.0
execute_on = 'initial linear nonlinear timestep_begin timestep_end'
[]
[total_fissions]
type = TimeIntegratedPostprocessor
value = total_fission_rate
execute_on = 'initial linear nonlinear timestep_begin timestep_end'
[]
[avg_surface_temp]
type = SideAverageValue
variable = temp
boundary = exterior
execute_on = 'initial linear nonlinear timestep_begin timestep_end'
[]
[time_int_surf_temp]
type = TimeIntegratedPostprocessor
value = avg_surface_temp
execute_on = 'initial linear nonlinear timestep_begin timestep_end'
[]
[co_production]
type = CarbonMonoxideProduction
total_fissions = total_fissions
time_integrated_triso_temperature = time_int_surf_temp
initial_enrichment = 0.14029
execute_on = 'initial linear nonlinear timestep_begin timestep_end'
[]
[num_lin_it]
type = NumLinearIterations
[]
[num_nonlin_it]
type = NumNonlinearIterations
[]
[tot_lin_it]
type = CumulativeValuePostprocessor
postprocessor = num_lin_it
[]
[tot_nonlin_it]
type = CumulativeValuePostprocessor
postprocessor = num_nonlin_it
[]
[alive_time]
type = PerfGraphData
section_name = Root
data_type = TOTAL
[]
[buffer_avg_conc]
type = SideAverageValue
variable = conc
boundary = 17
[]
[IPyC_avg_conc]
type = SideAverageValue
variable = conc
boundary = 15
[]
[buffer_integral_flux]
type = SideIntegralMassFlux
variable = conc
boundary = 17
[]
[IPyC_integral_flux]
type = SideIntegralMassFlux
variable = conc
boundary = 15
[]
[integral_flux_error]
type = FunctionValuePostprocessor
function = integral_flux_error
[]
[integral_Cs_release]
type = TimeIntegratedPostprocessor
value = Cs_release
[]
[Cs_production]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 1.22e-5 # units of moles/m**3-s
[]
[time_integral_Cs_production]
type = TimeIntegratedPostprocessor
value = Cs_production
[]
[volumeFuel_initial]
type = InternalVolume
boundary = fuel
execute_on = initial
[]
[integral_Cs_production]
type = ParsedPostprocessor
pp_names = 'time_integral_Cs_production volumeFuel_initial'
expression = 'time_integral_Cs_production * volumeFuel_initial'
[]
[Cs_release_fraction]
type = ParsedPostprocessor
pp_names = 'integral_Cs_release integral_Cs_production'
expression = 'integral_Cs_release / integral_Cs_production'
[]
[]
[VectorPostprocessors]
[temperaturevpp]
type = SideValueSampler
boundary = 11
variable = temp
sort_by = x
outputs = 'csv'
use_displaced_mesh = true
[]
[]
(assessment/MOX/JOYO/MK-I/analysis/MK-I_75MW_master_old_bubble_gb_lim.i)
initial_fuel_density = 10836.8
[GlobalParams]
density = ${initial_fuel_density}
initial_porosity = 0.065
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
volumetric_locking_correction = false
displacements = 'disp_x disp_y'
[]
[Problem]
type = ReferenceResidualProblem
extra_tag_vectors = 'ref'
reference_vector = 'ref'
[]
[Mesh]
coord_type = RZ
[smeared_pellet_mesh]
type = FuelPinMeshGenerator
pellet_quantity = 1
pellet_height = 0.6
pellet_outer_radius = 0.0027
pellet_mesh_density = customize
clad_mesh_density = customize
clad_gap_width = 0.000100
clad_thickness = 0.00035
clad_bot_gap_height = 1.0e-3
bottom_clad_height = 2.24e-3
top_clad_height = 2.24e-3
clad_top_gap_height = 0.599
elem_type = QUAD8
nx_c = 4
ny_c = 200
nx_p = 20
ny_p = 200
ny_cu = 3
ny_cl = 3
[]
patch_size = 50
patch_update_strategy = iteration
partitioner = centroid
centroid_partitioner_direction = y
[]
[UserObjects]
[pin_geometry]
type = FuelPinGeometry
[]
[]
[Variables]
[temp]
initial_condition = 295.0
[]
[]
[AuxVariables]
[pore]
[]
[fission_rate]
block = pellet
[]
[burnup]
block = pellet
[]
[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
[]
[vcn_bdr_2]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[atm_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[vcn_bbl_bdr]
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
[]
[vol_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[GBCoverage]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[eff_diff_coeff]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[deltav_v0_bd]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[radial_strain]
order = CONSTANT
family = MONOMIAL
[]
[effective_creep_strain]
block = clad
order = CONSTANT
family = MONOMIAL
[]
[gap_cond]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[power_history] #related to the LHGR at the midplane
type = PiecewiseLinear
x = '0 70000 25000000'
y = '0 38974.7 38974.7'
[]
[fast_neutron_flux_function]
type = PiecewiseLinear
x = '0 70000 25000000'
y = '0 1.9e+19 1.9e+19'
[]
[axial_peaking_factors]
type = PiecewiseBilinear
x = '0 0.071 0.146 0.221 0.296 0.37 0.443 0.566'
y = '0 25000000'
z = '0.889 1.041 1.152 1.173 1.129 0.971 0.782 0.672 0.889 1.041 1.152 1.173 1.129 0.971 0.782 0.672'
scale_factor = 1
axis = 1
[]
[q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[]
[average_power_history]
type = PiecewiseLinear
x = '0 70000 25000000'
y = '0 32000 32000'
[]
[clad_surface_temp]
type = PiecewiseBilinear
x = '0 0.071 0.146 0.221 0.296 0.37 0.443 0.566'
y = '0 25000000'
z = '295 295 295 295 295 295 295 295 593.58 606.36 619.13 630.26 640.87 651.76 662.67 673.67'
scale_factor = 1
axis = 1
[]
[pressure_ramp]
type = PiecewiseLinear
x = '0 1'
y = '1 1'
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[pellets]
block = pellet
add_variables = true
strain = FINITE
eigenstrain_names = 'fuel_thermal_strain fuel_volumetric_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
use_finite_deform_jacobian = true
extra_vector_tags = 'ref'
[]
[clad]
block = clad
add_variables = true
strain = FINITE
eigenstrain_names = 'clad_thermal_eigenstrain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
use_finite_deform_jacobian = true
extra_vector_tags = 'ref'
[]
[]
[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
variable = temp
block = pellet
fission_rate = fission_rate
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[fission_rate]
type = FissionRateGeneral
fission_rate_formulation = MOX
variable = fission_rate
block = pellet
initial_porosity = 0.065
axial_power_profile = axial_peaking_factors
rod_ave_lin_pow = power_history
pellet_diameter = 0.0054
execute_on = timestep_begin
porosity = pore
[]
[burnup]
type = BurnupAux
block = pellet
fission_rate = fission_rate
variable = burnup
execute_on = timestep_begin
[]
[fggen]
type = MaterialRealAux
variable = gas_gen_3
property = gas_concentration_generated_total
execute_on = timestep_end
[]
[fggrn]
type = MaterialRealAux
variable = gas_grn_3
property = gas_concentration_intra_total
execute_on = timestep_end
[]
[fgbdr]
type = MaterialRealAux
variable = gas_bdr_3
property = gas_concentration_GB_bubble_volume
execute_on = timestep_end
[]
[fgrel]
type = MaterialRealAux
variable = gas_rel_3
property = gas_concentration_release_total
execute_on = timestep_end
[]
[nbbl2]
type = MaterialRealAux
variable = bbl_bdr_2
property = bubble_GB_surface_density
execute_on = timestep_end
[]
[nvcn2]
type = MaterialRealAux
variable = vcn_bdr_2
property = vacancy_concentration_GB_surface
execute_on = timestep_end
[]
[atmbbl]
type = MaterialRealAux
variable = atm_bbl_bdr
property = atom_per_bubble_GB
execute_on = timestep_end
[]
[vcnbbl]
type = MaterialRealAux
variable = vcn_bbl_bdr
property = vacancy_per_bubble_GB
execute_on = timestep_end
[]
[prsbbl]
type = MaterialRealAux
variable = prs_bbl_bdr
property = bubble_GB_pressure
execute_on = timestep_end
[]
[prseqbbl]
type = MaterialRealAux
variable = prseq_bbl_bdr
property = bubble_GB_pressure_equilibrium
execute_on = timestep_end
[]
[radbbl]
type = MaterialRealAux
variable = rad_bbl_bdr
property = bubble_radius_GB
execute_on = timestep_end
[]
[volbbl]
type = MaterialRealAux
variable = vol_bbl_bdr
property = bubble_GB_volume
execute_on = timestep_end
[]
[frcvrg]
type = MaterialRealAux
variable = GBCoverage
property = GBCoverage
execute_on = timestep_end
[]
[diffc]
type = MaterialRealAux
variable = eff_diff_coeff
property = eff_diff_coeff
execute_on = timestep_end
[]
[dvv0bd]
type = MaterialRealAux
variable = deltav_v0_bd
property = deltav_v0_bubble_GB
execute_on = timestep_end
[]
[radial_strain]
type = RankTwoAux
rank_two_tensor = total_strain
variable = radial_strain
index_i = 0
index_j = 0
execute_on = timestep_end
[]
[effective_creep_strain]
type = MaterialRealAux
property = effective_creep_strain
variable = effective_creep_strain
block = clad
execute_on = timestep_end
[]
[conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
execute_on = 'linear'
[]
[]
[Contact]
[pellet_clad_mechanical]
primary = 5
secondary = 10
formulation = kinematic
model = frictionless
penalty = 1e7
[]
[]
[ThermalContact]
[thermal_contact]
type = GasGapHeatTransfer
variable = temp
primary = 5
secondary = 10
initial_moles = initial_moles
gas_released = fis_gas_released
contact_pressure = contact_pressure
quadrature = true
[]
[]
[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 = 20
value = 0.0
[]
[temp_clad_out]
type = FunctionDirichletBC
variable = temp
boundary = '2'
function = clad_surface_temp
[]
[Pressure]
[coolantPressure]
boundary = '1 2 3'
factor = 101325
function = pressure_ramp
[]
[]
[PlenumPressure]
[plenumPressure]
boundary = 9
initial_pressure = 300000
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = ave_temp_interior
volume = gas_volume
material_input = fis_gas_released
output = plenum_pressure
[]
[]
[]
[Materials]
[fast_neutron_flux]
type = FastNeutronFlux
calculate_fluence = true
block = clad
flux_function = fast_neutron_flux_function
[]
[fuel_thermal]
type = MAMOXThermal
block = pellet
temperature = temp
Am_content = 0.0
Np_content = 0.0
porosity = pore
output_properties = 'thermal_conductivity'
[]
[fuel_elasticity_tensor]
type = MAMOXElasticityTensor
block = pellet
[]
[elastic_stress]
type = ComputeFiniteStrainElasticStress
block = pellet
[]
[fuel_thermal_expansion]
type = MAMOXThermalExpansionEigenstrain
block = pellet
temperature = temp
stress_free_temperature = 295.0
oxygen_to_metal_ratio = 1.98
eigenstrain_name = fuel_thermal_strain
[]
[fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
block = pellet
temperature = temp
burnup = burnup
initial_fuel_density = 10836.8
eigenstrain_name = fuel_volumetric_strain
[]
[clad_thermal]
type = SS316Thermal
block = clad
temperature = temp
[]
[clad_density]
type = StrainAdjustedDensity
block = clad
strain_free_density = 8000
[]
[clad_elasticity_tensor]
type = SS316ElasticityTensor
block = clad
temperature = temp
elastic_constants_model = legacy_ifr
[]
[thermal_expansion]
type = SS316ThermalExpansionEigenstrain
block = clad
temperature = temp
stress_free_temperature = 295.0
eigenstrain_name = clad_thermal_eigenstrain
[]
[clad_ss316creep]
type = SS316CreepUpdate
block = clad
temperature = temp
fast_neutron_flux = fast_neutron_flux
[]
[clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'clad_ss316creep'
block = clad
[]
[fission_gas_release]
type = UO2Sifgrs
block = pellet
temperature = temp
burnup = burnup
diff_coeff_option = TURNBULL_D1_4D2_4D3
fission_rate = fission_rate
grain_radius_const = 8.01e-6 #I'm keeping the grain radius const because the grain growth in MOX is probably different due to high Temp
[]
[fuel_density]
type = StrainAdjustedDensity
block = pellet
strain_free_density = ${initial_fuel_density}
[]
[]
[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'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
fixed_point_abs_tol = 1e-5
fixed_point_rel_tol = 1e-5
fixed_point_max_its = 1
l_max_its = 70
l_tol = 8e-3
nl_max_its = 70
nl_rel_tol = 1e-5
nl_abs_tol = 1e-5
start_time = 0
n_startup_steps = 1
end_time = 25000000
dtmax = 1e6
dtmin = 0.25
[TimeStepper]
type = IterationAdaptiveDT
dt = 5000
optimal_iterations = 15
iteration_window = 2
linear_iteration_ratio = 100
growth_factor = 2
cutback_factor = .5
force_step_every_function_point = true
timestep_limiting_function = power_history
[]
[]
[Postprocessors]
[ave_temp_interior]
type = SideAverageValue
boundary = 9
variable = temp
execute_on = 'initial linear'
[]
[average_burnup]
type = ElementAverageValue
block = pellet
variable = burnup
[]
[clad_inner_vol]
type = InternalVolume
boundary = 7
execute_on = 'initial timestep_end'
[]
[pellet_volume]
type = InternalVolume
boundary = 8
execute_on = 'initial timestep_end'
[]
[avg_clad_temp]
type = SideAverageValue
boundary = 7
variable = temp
execute_on = 'initial timestep_end'
[]
[fis_gas_produced]
type = ElementIntegralFisGasGeneratedSifgrs
block = pellet
execute_on = 'linear'
[]
[fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = pellet
execute_on = 'linear'
[]
[fis_gas_released_percentage]
type = FGRPercent
fission_gas_generated = fis_gas_produced
fission_gas_released = fis_gas_released
execute_on = 'linear'
[]
[fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = pellet
execute_on = 'linear'
[]
[fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = pellet
execute_on = 'linear'
[]
[gas_volume]
type = InternalVolume
boundary = 9
execute_on = 'initial linear'
[]
[flux_from_fuel]
type = SideDiffusiveFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[]
[rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = pellet
[]
[rod_input_power]
type = FunctionValuePostprocessor
function = average_power_history
scale_factor = 0.6 # rod height
[]
[average_vonMises_fuel]
type = ElementAverageValue
variable = vonmises_stress
block = pellet
[]
[average_vonMises_clad]
type = ElementAverageValue
variable = vonmises_stress
block = clad
[]
[average_strain_rr_fuel]
type = ElementAverageValue
variable = radial_strain
block = pellet
[]
[average_strain_rr_clad]
type = ElementAverageValue
variable = radial_strain
block = clad
[]
[average_creep_strain_clad]
type = ElementAverageValue
variable = effective_creep_strain
block = clad
[]
[ave_pore]
type = ElementAverageValue
variable = pore
[]
[max_pore]
type = NodalExtremeValue
value_type = max
variable = pore
[]
[min_pore]
type = NodalExtremeValue
value_type = min
variable = pore
[]
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = true
color = true
csv = true
[console]
type = Console
max_rows = 25
[]
[chkfile]
type = CSV
execute_on = FINAL
show = 'ave_temp_interior fis_gas_released_percentage max_pore'
[]
[]
[MultiApps]
[sub]
type = TransientMultiApp
app_type = BisonApp
execute_on = timestep_end
catch_up = true
max_catch_up_steps = 10
positions_file = positions.txt
input_files = MK-I_75MW_sub_old_bubble_gb_lim.i
[]
[]
[Transfers]
[temp_to_sub]
type = MultiAppProjectionTransfer
to_multi_app = sub
source_variable = temp
variable = temp
[]
[pore_from_sub]
type = MultiAppGeometricInterpolationTransfer
from_multi_app = sub
source_variable = pore
variable = pore
[]
[]
[Debug]
show_var_residual_norms = true
show_var_residual = 'temp disp_x disp_y'
[]
(test/tests/decay_heating/decay_heating_rz.i)
# Tests decay heating, specifically the MaxFissionRateAux auxkernel and NeutonHeatSource kernel.
#
# The test solves a simple lumped heat capacity problem (ODE):
#
# rho*C dT/dt = Fdot*Ef
# where rho = density
# C = heat capacity
# Fdot = fission density rate
# Ef = energy per fission
# T = temperature
# t = time
#
# which can be integrated to give the time dependent temperature throughout the domain as:
#
# T(t) = (Ef/(rho*C)) * Integral [Fdot(t) * dt] + T0
#
# The fission density rate is linearly ramped to 1000 over 100 s, dropped to 0 over the next 100 s,
# ramped to 500 over the next 100 s, and then returned to zero over a final 100 s. The result is a
# temperature of 2.5e5 at 400 s when the decay process begins. Decay is computed in two 4 s steps,
# which can be integrated as follows:
#
# deltaT(408s) = (Ef/(rho*C) * [f(404s) *dt + f(408s) *dt] * max_fission_density_rate
# = (1 /(1 *1) * [0.03802859*4 + 0.03070299*4 ] * 1000
# = 274.9263
# which matches the computed temperature at 408s precisely.
#
# Note that:
# 1) the max_fission_density_rate is multiplied by the decay function as per the simplified method
# precribed in the ANS 5.1-1979 Standard for decay heating
# 2) the f functions are taken from the decay_heat_function post processor (computed during this
# test) which is tested independently
#
[Mesh]
coord_type = RZ
[mesh]
type = FileMeshGenerator
file = cylinder.e
[]
[]
[Functions]
[power_function]
type = PiecewiseLinear
x = '0 100 200 300 400'
y = '0 1 0 0.5 0'
[]
[time_function]
type = PiecewiseLinear
x = '0 400 400.000001 408'
y = '20 20 4 4'
[]
[]
[Variables]
[temp]
order = FIRST
family = LAGRANGE
initial_condition = 1e5
[]
[]
[AuxVariables]
[fission_rate]
block = 1
[]
[max_fission_rate]
block = 1
[]
[]
[Kernels]
[ie]
type = HeatConductionTimeDerivative
variable = temp
[]
[fission_heat_source]
type = NeutronHeatSource
variable = temp
fission_rate = fission_rate
energy_per_fission = 1
decay_heat_function = decay_heat_function # Couple to postprocessor which defines the decay heat function
max_fission_rate = max_fission_rate # Couple to auxvariable which defines maximum fission rate over irradiation
[]
[]
[AuxKernels]
[fission_rate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
block = 1
value = 1000
fission_rate_function = power_function
execute_on = timestep_begin
[]
[max_fission_rate]
type = MaxFissionRateAux
variable = max_fission_rate
block = 1
fission_rate = fission_rate
execute_on = timestep_begin
[]
[]
[BCs]
[top_T]
type = NeumannBC
variable = temp
boundary = '1 2'
value = 0.0
[]
[]
[Materials]
[fuel]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 10
specific_heat = 1
[]
[density]
type = ParsedMaterial
block = 1
property_name = density
expression = 1
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
start_time = 0.0
end_time = 408
num_steps = 500
nl_rel_tol = 1e-8
nl_abs_tol = 1e-14
dt = 20
[TimeStepper]
type = FunctionDT
function = time_function
[]
[]
[Postprocessors]
[temperature]
type = NodalVariableValue
variable = temp
nodeid = 2
[]
[decay_heat_function]
type = DecayHeatFunction
time_at_shutdown = 400
[]
[rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
energy_per_fission = 1
block = 1
[]
[]
[Outputs]
exodus = true
[]
(test/tests/fission_rate_axial/coords.i)
[Mesh]
[mesh]
type = FileMeshGenerator
file = 1x5x1.e
[]
[]
[Variables]
[temp]
order = FIRST
family = LAGRANGE
initial_condition = 1373.15
[]
[]
[AuxVariables]
[fission_rate]
order = FIRST
family = LAGRANGE
[]
[]
[Functions]
[axial_power_ramp]
type = PiecewiseLinear
x = '0 1e4'
y = '0 1'
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temp
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = 'AXIAL'
axis = 1
block = 1
variable = fission_rate
value = 1.183e19 # corrected average power to 200 W/cm
fuel_bottom = -2.5
fuel_top = 2.5
fission_rate_function = axial_power_ramp
[]
[]
[BCs]
[bottom_temp]
type = DirichletBC
variable = temp
boundary = 1
value = 1373.15
[]
[top_temp]
type = DirichletBC
variable = temp
boundary = 2
value = 1373.15
[]
[]
[Materials]
[thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 1.e4
specific_heat = 1.
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew '
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type'
petsc_options_value = '70 hypre boomeramg'
l_max_its = 60
nl_rel_tol = 1e-8
nl_abs_tol = 1e-8
l_tol = 1e-5
start_time = 0.0
end_time = 1e+4
dt = 1e+3
num_steps = 10
[]
[Outputs]
exodus = true
[]
(assessment/MOX/JOYO/MK-I/analysis/MK-I_50MW_master_old_bubble_gb_lim.i)
initial_fuel_density = 10836.8
[GlobalParams]
density = ${initial_fuel_density}
initial_porosity = 0.065
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
volumetric_locking_correction = false
displacements = 'disp_x disp_y'
[]
[Problem]
type = ReferenceResidualProblem
extra_tag_vectors = 'ref'
reference_vector = 'ref'
[]
[Mesh]
coord_type = RZ
[smeared_pellet_mesh]
type = FuelPinMeshGenerator
pellet_quantity = 1
pellet_height = 0.6
pellet_outer_radius = 0.0027
pellet_mesh_density = customize
clad_mesh_density = customize
clad_gap_width = 0.000100
clad_thickness = 0.00035
clad_bot_gap_height = 1.0e-3
bottom_clad_height = 2.24e-3
top_clad_height = 2.24e-3
clad_top_gap_height = 0.599
elem_type = QUAD8
nx_c = 4
ny_c = 200
nx_p = 20
ny_p = 200
ny_cu = 3
ny_cl = 3
[]
patch_size = 50
patch_update_strategy = iteration
partitioner = centroid
centroid_partitioner_direction = y
[]
[UserObjects]
[pin_geometry]
type = FuelPinGeometry
[]
[]
[Variables]
[temp]
initial_condition = 295.0
[]
[]
[AuxVariables]
[pore]
[]
[fission_rate]
block = pellet
[]
[burnup]
block = pellet
[]
[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
[]
[vcn_bdr_2]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[atm_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[vcn_bbl_bdr]
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
[]
[vol_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[GBCoverage]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[eff_diff_coeff]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[deltav_v0_bd]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[radial_strain]
order = CONSTANT
family = MONOMIAL
[]
[effective_creep_strain]
block = clad
order = CONSTANT
family = MONOMIAL
[]
[gap_cond]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[power_history] #related to the LHGR at the midplane
type = PiecewiseLinear
x = '0 70000 17153028'
y = '0 25577 25577'
[]
[fast_neutron_flux_function]
type = PiecewiseLinear
x = '0 70000 17153028'
y = '0 1.2e+19 1.2e+19'
[]
[axial_peaking_factors]
type = PiecewiseBilinear
x = '0 0.071 0.146 0.221 0.296 0.37 0.443 0.566'
y = '0 17153028'
z = '0.889 1.041 1.152 1.173 1.129 0.971 0.782 0.672 0.889 1.041 1.152 1.173 1.129 0.971 0.782 0.672'
scale_factor = 1
axis = 1
[]
[q]
type = CompositeFunction
functions = 'power_history axial_peaking_factors'
[]
[average_power_history]
type = PiecewiseLinear
x = '0 70000 17153028'
y = '0 21000 21000'
[]
[clad_surface_temp]
type = PiecewiseBilinear
x = '0 0.075 0.15 0.225 0.3 0.375 0.45 0.525 0.6'
y = '0 17153028'
z = '295 295 295 295 295 295 295 295 295 499.9 509.1 517.8 525.42 532.71 540.29 547.7 552.3 554.81'
scale_factor = 1
axis = 1
[]
[pressure_ramp]
type = PiecewiseLinear
x = '0 1'
y = '1 1'
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[pellets]
block = pellet
add_variables = true
strain = FINITE
eigenstrain_names = 'fuel_thermal_strain fuel_volumetric_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
use_finite_deform_jacobian = true
extra_vector_tags = 'ref'
[]
[clad]
block = clad
add_variables = true
strain = FINITE
eigenstrain_names = 'clad_thermal_eigenstrain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
use_finite_deform_jacobian = true
extra_vector_tags = 'ref'
[]
[]
[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
variable = temp
block = pellet
fission_rate = fission_rate
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[fission_rate]
type = FissionRateGeneral
fission_rate_formulation = MOX
variable = fission_rate
block = pellet
initial_porosity = 0.065
axial_power_profile = axial_peaking_factors
rod_ave_lin_pow = power_history
pellet_diameter = 0.0054
execute_on = timestep_begin
porosity = pore
[]
[burnup]
type = BurnupAux
block = pellet
fission_rate = fission_rate
variable = burnup
execute_on = timestep_begin
[]
[fggen]
type = MaterialRealAux
variable = gas_gen_3
property = gas_concentration_generated_total
execute_on = timestep_end
[]
[fggrn]
type = MaterialRealAux
variable = gas_grn_3
property = gas_concentration_intra_total
execute_on = timestep_end
[]
[fgbdr]
type = MaterialRealAux
variable = gas_bdr_3
property = gas_concentration_GB_bubble_volume
execute_on = timestep_end
[]
[fgrel]
type = MaterialRealAux
variable = gas_rel_3
property = gas_concentration_release_total
execute_on = timestep_end
[]
[nbbl2]
type = MaterialRealAux
variable = bbl_bdr_2
property = bubble_GB_surface_density
execute_on = timestep_end
[]
[nvcn2]
type = MaterialRealAux
variable = vcn_bdr_2
property = vacancy_concentration_GB_surface
execute_on = timestep_end
[]
[atmbbl]
type = MaterialRealAux
variable = atm_bbl_bdr
property = atom_per_bubble_GB
execute_on = timestep_end
[]
[vcnbbl]
type = MaterialRealAux
variable = vcn_bbl_bdr
property = vacancy_per_bubble_GB
execute_on = timestep_end
[]
[prsbbl]
type = MaterialRealAux
variable = prs_bbl_bdr
property = bubble_GB_pressure
execute_on = timestep_end
[]
[prseqbbl]
type = MaterialRealAux
variable = prseq_bbl_bdr
property = bubble_GB_pressure_equilibrium
execute_on = timestep_end
[]
[radbbl]
type = MaterialRealAux
variable = rad_bbl_bdr
property = bubble_radius_GB
execute_on = timestep_end
[]
[volbbl]
type = MaterialRealAux
variable = vol_bbl_bdr
property = bubble_GB_volume
execute_on = timestep_end
[]
[frcvrg]
type = MaterialRealAux
variable = GBCoverage
property = GBCoverage
execute_on = timestep_end
[]
[diffc]
type = MaterialRealAux
variable = eff_diff_coeff
property = eff_diff_coeff
execute_on = timestep_end
[]
[dvv0bd]
type = MaterialRealAux
variable = deltav_v0_bd
property = deltav_v0_bubble_GB
execute_on = timestep_end
[]
[radial_strain]
type = RankTwoAux
rank_two_tensor = total_strain
variable = radial_strain
index_i = 0
index_j = 0
execute_on = timestep_end
[]
[effective_creep_strain]
type = MaterialRealAux
property = effective_creep_strain
variable = effective_creep_strain
block = clad
execute_on = timestep_end
[]
[conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
execute_on = 'linear'
[]
[]
[Contact]
[pellet_clad_mechanical]
primary = 5
secondary = 10
formulation = kinematic
model = frictionless
penalty = 1e7
[]
[]
[ThermalContact]
[thermal_contact]
type = GasGapHeatTransfer
variable = temp
primary = 5
secondary = 10
initial_moles = initial_moles
gas_released = fis_gas_released
contact_pressure = contact_pressure
quadrature = true
[]
[]
[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 = 20
value = 0.0
[]
[temp_clad_out]
type = FunctionDirichletBC
variable = temp
boundary = '2'
function = clad_surface_temp
[]
[Pressure]
[coolantPressure]
boundary = '1 2 3'
factor = 101325
function = pressure_ramp
[]
[]
[PlenumPressure]
[plenumPressure]
boundary = 9
initial_pressure = 300000
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = ave_temp_interior
volume = gas_volume
material_input = fis_gas_released
output = plenum_pressure
[]
[]
[]
[Materials]
[fast_neutron_flux]
type = FastNeutronFlux
calculate_fluence = true
block = clad
flux_function = fast_neutron_flux_function
[]
[fuel_thermal]
type = MAMOXThermal
block = pellet
temperature = temp
Am_content = 0.0
Np_content = 0.0
porosity = pore
output_properties = 'thermal_conductivity'
[]
[fuel_elasticity_tensor]
type = MAMOXElasticityTensor
block = pellet
[]
[elastic_stress]
type = ComputeFiniteStrainElasticStress
block = pellet
[]
[fuel_thermal_expansion]
type = MAMOXThermalExpansionEigenstrain
block = pellet
temperature = temp
stress_free_temperature = 295.0
oxygen_to_metal_ratio = 1.98
eigenstrain_name = fuel_thermal_strain
[]
[fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
block = pellet
temperature = temp
burnup = burnup
initial_fuel_density = 10836.8
eigenstrain_name = fuel_volumetric_strain
[]
[clad_thermal]
type = SS316Thermal
block = clad
temperature = temp
[]
[clad_density]
type = StrainAdjustedDensity
block = clad
strain_free_density = 8000
[]
[clad_elasticity_tensor]
type = SS316ElasticityTensor
block = clad
temperature = temp
elastic_constants_model = legacy_ifr
[]
[thermal_expansion]
type = SS316ThermalExpansionEigenstrain
block = clad
temperature = temp
stress_free_temperature = 295.0
eigenstrain_name = clad_thermal_eigenstrain
[]
[clad_ss316creep]
type = SS316CreepUpdate
block = clad
temperature = temp
fast_neutron_flux = fast_neutron_flux
[]
[clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = elastic
inelastic_models = 'clad_ss316creep'
block = clad
[]
[fission_gas_release]
type = UO2Sifgrs
block = pellet
temperature = temp
burnup = burnup
diff_coeff_option = TURNBULL_D1_4D2_4D3
fission_rate = fission_rate
grain_radius_const = 8.01e-6 #I'm keeping the grain radius const because the grain growth in MOX is probably different due to high Temp
[]
[fuel_density]
type = StrainAdjustedDensity
block = pellet
strain_free_density = ${initial_fuel_density}
[]
[]
[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'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
fixed_point_abs_tol = 1e-5
fixed_point_rel_tol = 1e-5
fixed_point_max_its = 1
l_max_its = 70
l_tol = 8e-3
nl_max_its = 70
nl_rel_tol = 1e-5
nl_abs_tol = 1e-5
start_time = 0
n_startup_steps = 1
end_time = 17153028
dtmax = 1e6
dtmin = 0.25
[TimeStepper]
type = IterationAdaptiveDT
dt = 5000
optimal_iterations = 15
iteration_window = 2
linear_iteration_ratio = 100
growth_factor = 2
cutback_factor = .5
force_step_every_function_point = true
timestep_limiting_function = power_history
[]
[]
[Postprocessors]
[ave_temp_interior]
type = SideAverageValue
boundary = 9
variable = temp
execute_on = 'initial linear'
[]
[average_burnup]
type = ElementAverageValue
block = pellet
variable = burnup
[]
[clad_inner_vol]
type = InternalVolume
boundary = 7
execute_on = 'initial timestep_end'
[]
[pellet_volume]
type = InternalVolume
boundary = 8
execute_on = 'initial timestep_end'
[]
[avg_clad_temp]
type = SideAverageValue
boundary = 7
variable = temp
execute_on = 'initial timestep_end'
[]
[fis_gas_produced]
type = ElementIntegralFisGasGeneratedSifgrs
block = pellet
execute_on = 'linear'
[]
[fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = pellet
execute_on = 'linear'
[]
[fis_gas_released_percentage]
type = FGRPercent
fission_gas_generated = fis_gas_produced
fission_gas_released = fis_gas_released
execute_on = 'linear'
[]
[fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = pellet
execute_on = 'linear'
[]
[fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = pellet
execute_on = 'linear'
[]
[gas_volume]
type = InternalVolume
boundary = 9
execute_on = 'initial linear'
[]
[flux_from_fuel]
type = SideDiffusiveFluxIntegral
variable = temp
boundary = 10
diffusivity = thermal_conductivity
[]
[rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = pellet
[]
[rod_input_power]
type = FunctionValuePostprocessor
function = average_power_history
scale_factor = 0.6 # rod height
[]
[average_vonMises_fuel]
type = ElementAverageValue
variable = vonmises_stress
block = pellet
[]
[average_vonMises_clad]
type = ElementAverageValue
variable = vonmises_stress
block = clad
[]
[average_strain_rr_fuel]
type = ElementAverageValue
variable = radial_strain
block = pellet
[]
[average_strain_rr_clad]
type = ElementAverageValue
variable = radial_strain
block = clad
[]
[average_creep_strain_clad]
type = ElementAverageValue
variable = effective_creep_strain
block = clad
[]
[ave_pore]
type = ElementAverageValue
variable = pore
[]
[max_pore]
type = NodalExtremeValue
value_type = max
variable = pore
[]
[min_pore]
type = NodalExtremeValue
value_type = min
variable = pore
[]
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = true
color = true
csv = true
[console]
type = Console
max_rows = 25
[]
[chkfile]
type = CSV
execute_on = FINAL
show = 'ave_temp_interior fis_gas_released_percentage max_pore'
[]
[]
[MultiApps]
[sub]
type = TransientMultiApp
app_type = BisonApp
execute_on = timestep_end
catch_up = true
max_catch_up_steps = 10
positions_file = positions.txt
input_files = MK-I_50MW_sub_old_bubble_gb_lim.i
[]
[]
[Transfers]
[temp_to_sub]
type = MultiAppProjectionTransfer
to_multi_app = sub
source_variable = temp
variable = temp
[]
[pore_from_sub]
type = MultiAppGeometricInterpolationTransfer
from_multi_app = sub
source_variable = pore
variable = pore
[]
[]
[Debug]
show_var_residual_norms = true
show_var_residual = 'temp disp_x disp_y'
[]
(assessment/MOX/FFTF/FO-2/L09/analysis/L09_2DRZ_new_bubble_gb_lim_grainGrowth.i)
initial_fuel_density = 10431.0
[GlobalParams]
density = ${initial_fuel_density}
initial_porosity = 0.2
order = SECOND
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
volumetric_locking_correction = false
displacements = 'disp_x disp_y'
[]
[Problem]
type = ReferenceResidualProblem
reference_vector = 'ref'
extra_tag_vectors = 'ref'
[]
[Mesh]
coord_type = RZ
[smeared_pellet_mesh]
type = FuelPinMeshGenerator
pellet_quantity = 1
pellet_height = 0.9144
pellet_outer_radius = 2.794e-3
pellet_inner_radius = 6.985e-4
pellet_mesh_density = customize
clad_mesh_density = customize
clad_gap_width = 101.6e-6
clad_thickness = 0.5334e-3
clad_bot_gap_height = 1.0e-3
bottom_clad_height = 2.24e-3
top_clad_height = 2.24e-3
clad_top_gap_height = 1.057
elem_type = QUAD8
nx_c = 4
ny_c = 1000
nx_p = 10
ny_p = 500
ny_cu = 3
ny_cl = 3
[]
patch_size = 50
patch_update_strategy = iteration
partitioner = centroid
centroid_partitioner_direction = y
[]
[UserObjects]
[pin_geometry]
type = FuelPinGeometry
[]
[]
[Variables]
[temp]
initial_condition = 295.0
scaling = 1
[]
[]
[AuxVariables]
[fission_rate]
block = pellet
[]
[burnup]
block = pellet
[]
[grain_radius]
block = pellet
initial_condition = 10e-6
[]
[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
[]
[vcn_bdr_2]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[atm_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[vcn_bbl_bdr]
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
[]
[vol_bbl_bdr]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[GBCoverage]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[eff_diff_coeff]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[deltav_v0_bd]
order = CONSTANT
family = MONOMIAL
block = pellet
[]
[radial_strain]
order = CONSTANT
family = MONOMIAL
[]
[effective_creep_strain]
block = clad
order = CONSTANT
family = MONOMIAL
[]
[gap_cond]
order = CONSTANT
family = MONOMIAL
[]
[coolant_htc]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[fraction_history]
type = PiecewiseLinear
x = '0 74993.42422 31858942.74'
y = '0 0.854004932 0.854004932'
[]
[fast_neutron_flux_function]
type = PiecewiseLinear
x = '0 74993.42422 31858942.74'
y = '0 2.99513e+19 2.99513e+19'
[]
[axial_power_profile]
type = PiecewiseBilinear
x = '0.0334152 0.09468 0.1559448 0.2162952 0.27756 0.3388248 0.3991752 0.46044 0.5217048 0.5820552 0.64332 0.7045848 0.7649352 0.8262 0.8874648'
y = '0 31858942.74'
z = '5493.43832 7183.727034 29157.48031 34228.34646 37608.92388 40144.35696 41412.07349 42257.21785 41834.64567 39721.78478 37608.92388 33805.77428 28312.33596 4225.721785 2535.433071 5041.338583 6592.519685 26757.87402 31411.41732 34513.77953 36840.55118 38003.93701 38779.52756 38391.73228 36452.75591 34513.77953 31023.62205 25982.28346 3877.952756 2326.771654'
scale_factor = 1
axis = 1
[]
[average_power_history]
type = PiecewiseLinear
x = '0 74993.42422 31858942.74'
y = '0 24264.05646 24264.05646'
[]
[pressure_ramp]
type = PiecewiseLinear
x = '-200 0'
y = '0 1'
[]
[]
[Physics/SolidMechanics/QuasiStatic]
[pellets]
block = pellet
add_variables = true
strain = FINITE
eigenstrain_names = 'fuel_thermal_strain fuel_volumetric_strain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
extra_vector_tags = 'ref'
use_finite_deform_jacobian = true
[]
[clad]
block = clad
add_variables = true
strain = FINITE
eigenstrain_names = 'clad_thermal_eigenstrain'
generate_output = 'vonmises_stress stress_xx stress_yy stress_zz'
extra_vector_tags = 'ref'
use_finite_deform_jacobian = true
[]
[]
[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
extra_vector_tags = 'ref'
block = pellet
fission_rate = fission_rate
[]
[]
[AuxKernels]
[fission_rate]
type = FissionRateGeneral
fission_rate_formulation = MOX
variable = fission_rate
block = pellet
initial_porosity = 0.2
axial_power_profile = axial_power_profile
rod_ave_lin_pow = fraction_history
pellet_diameter = 0.005588
execute_on = timestep_begin
pellet_inner_diameter = 0.001397
[]
[burnup]
type = BurnupAux
block = pellet
fission_rate = fission_rate
variable = burnup
execute_on = timestep_begin
[]
[grain_radius]
type = GrainRadiusAux
block = pellet
variable = grain_radius
temperature = temp
execute_on = linear
[]
[fggen]
type = MaterialRealAux
variable = gas_gen_3
property = gas_concentration_generated_total
execute_on = timestep_end
[]
[fggrn]
type = MaterialRealAux
variable = gas_grn_3
property = gas_concentration_intra_total
execute_on = timestep_end
[]
[fgbdr]
type = MaterialRealAux
variable = gas_bdr_3
property = gas_concentration_GB_bubble_volume
execute_on = timestep_end
[]
[fgrel]
type = MaterialRealAux
variable = gas_rel_3
property = gas_concentration_release_total
execute_on = timestep_end
[]
[nbbl2]
type = MaterialRealAux
variable = bbl_bdr_2
property = bubble_GB_surface_density
execute_on = timestep_end
[]
[nvcn2]
type = MaterialRealAux
variable = vcn_bdr_2
property = vacancy_concentration_GB_surface
execute_on = timestep_end
[]
[atmbbl]
type = MaterialRealAux
variable = atm_bbl_bdr
property = atom_per_bubble_GB
execute_on = timestep_end
[]
[vcnbbl]
type = MaterialRealAux
variable = vcn_bbl_bdr
property = vacancy_per_bubble_GB
execute_on = timestep_end
[]
[prsbbl]
type = MaterialRealAux
variable = prs_bbl_bdr
property = bubble_GB_pressure
execute_on = timestep_end
[]
[prseqbbl]
type = MaterialRealAux
variable = prseq_bbl_bdr
property = bubble_GB_pressure_equilibrium
execute_on = timestep_end
[]
[radbbl]
type = MaterialRealAux
variable = rad_bbl_bdr
property = bubble_radius_GB
execute_on = timestep_end
[]
[volbbl]
type = MaterialRealAux
variable = vol_bbl_bdr
property = bubble_GB_volume
execute_on = timestep_end
[]
[frcvrg]
type = MaterialRealAux
variable = GBCoverage
property = GBCoverage
execute_on = timestep_end
[]
[diffc]
type = MaterialRealAux
variable = eff_diff_coeff
property = eff_diff_coeff
execute_on = timestep_end
[]
[dvv0bd]
type = MaterialRealAux
variable = deltav_v0_bd
property = deltav_v0_bubble_GB
execute_on = timestep_end
[]
[radial_strain]
type = RankTwoAux
rank_two_tensor = total_strain
variable = radial_strain
index_i = 0
index_j = 0
execute_on = timestep_end
[]
[effective_creep_strain]
type = MaterialRealAux
property = effective_creep_strain
variable = effective_creep_strain
block = clad
execute_on = timestep_end
[]
[conductance]
type = MaterialRealAux
property = gap_conductance
variable = gap_cond
boundary = 10
execute_on = 'linear'
[]
[coolant_htc]
type = MaterialRealAux
property = coolant_channel_htc
variable = coolant_htc
boundary = 2
execute_on = 'linear'
[]
[]
[Contact]
[pellet_clad_mechanical]
primary = 5
secondary = 10
formulation = kinematic
model = frictionless
penalty = 1e7
[]
[]
[ThermalContact]
[thermal_contact]
type = GasGapHeatTransfer
variable = temp
primary = 5
secondary = 10
initial_moles = initial_moles
gas_released = fis_gas_released
contact_pressure = contact_pressure
quadrature = true
[]
[]
[BCs]
[no_y_clad_bottom]
type = DirichletBC
variable = disp_y
boundary = 1
value = 0.0
[]
[no_y_fuel_bottom]
type = DirichletBC
variable = disp_y
boundary = 20
value = 0.0
[]
[Pressure]
[coolantPressure]
boundary = '1 2 3'
factor = 0.151e6
function = pressure_ramp
[]
[]
[PlenumPressure]
[plenumPressure]
boundary = 9
initial_pressure = 101325
startup_time = 0
R = 8.3143
output_initial_moles = initial_moles
temperature = ave_temp_interior
volume = gas_volume
material_input = fis_gas_released
output = plenum_pressure
[]
[]
[]
[CoolantChannel]
[convective_clad_surface]
boundary = '1 2 3'
variable = temp
inlet_temperature = 580
inlet_pressure = 0.151e6
inlet_massflux = 1687.43
rod_diameter = 6.858e-3
rod_pitch = 1.7e-2
linear_heat_rate = fraction_history
axial_power_profile = axial_power_profile
coolant_material = sodium
[]
[]
[Materials]
[fuel_thermal]
type = MAMOXThermal
block = pellet
temperature = temp
Am_content = 0.0
Np_content = 0.0
porosity = 0.2
output_properties = 'thermal_conductivity'
[]
[fuel_elasticity_tensor]
type = MAMOXElasticityTensor
block = pellet
[]
[elastic_stress]
type = ComputeFiniteStrainElasticStress
block = pellet
outputs = exodus
[]
[fuel_thermal_expansion]
type = MAMOXThermalExpansionEigenstrain
block = pellet
temperature = temp
stress_free_temperature = 295.0
oxygen_to_metal_ratio = 2.0
eigenstrain_name = fuel_thermal_strain
[]
[fuel_volumetric_swelling]
type = UO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
block = pellet
temperature = temp
burnup = burnup
initial_fuel_density = 10431.0
eigenstrain_name = fuel_volumetric_strain
[]
[clad_thermal]
type = HT9Thermal
block = clad
temperature = temp
[]
[clad_elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1.88e11
poissons_ratio = 0.236
block = clad
[]
[clad_stress]
type = ComputeMultipleInelasticStress
tangent_operator = nonlinear
inelastic_models = 'clad_ht9creep'
block = clad
[]
[clad_ht9creep]
type = HT9CreepUpdate
block = clad
temperature = temp
[]
[thermal_expansion]
type = ComputeThermalExpansionEigenstrain
block = clad
thermal_expansion_coeff = 1.2e-5
temperature = temp
stress_free_temperature = 295.0
eigenstrain_name = clad_thermal_eigenstrain
[]
[fission_gas_release]
type = UO2Sifgrs
block = pellet
temperature = temp
burnup = burnup
fission_rate = fission_rate
grain_radius = grain_radius
gbs_model = true
bubble_gb_limit = 1.0e+11
[]
[clad_density]
type = StrainAdjustedDensity
block = clad
strain_free_density = 7874.0
[]
[fuel_density]
type = StrainAdjustedDensity
block = pellet
strain_free_density = ${initial_fuel_density}
[]
[fast_neutron_flux]
type = GenericFunctionMaterial
block = clad
prop_names = fast_neutron_flux
prop_values = fast_neutron_flux_function
[]
[]
[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'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
l_max_its = 50
l_tol = 8e-3
nl_max_its = 15
nl_rel_tol = 1e-4
nl_abs_tol = 1e-10
start_time = -200
n_startup_steps = 1
end_time = 31858942.74
dtmax = 1e6
dtmin = 1
[TimeStepper]
type = IterationAdaptiveDT
dt = 2e2
optimal_iterations = 10
iteration_window = 2
linear_iteration_ratio = 100
growth_factor = 2
cutback_factor = .5
force_step_every_function_point = true
timestep_limiting_function = fraction_history
[]
[Quadrature]
order = FIFTH
side_order = SEVENTH
[]
[]
[Postprocessors]
[ave_temp_interior]
type = SideAverageValue
boundary = 9
variable = temp
execute_on = 'initial linear'
[]
[average_burnup]
type = ElementAverageValue
block = pellet
variable = burnup
[]
[clad_inner_vol]
type = InternalVolume
boundary = 7
execute_on = 'initial timestep_end'
[]
[pellet_volume]
type = InternalVolume
boundary = 8
execute_on = 'initial timestep_end'
[]
[avg_clad_temp]
type = SideAverageValue
boundary = 7
variable = temp
execute_on = 'initial timestep_end'
[]
[fis_gas_produced]
type = ElementIntegralFisGasGeneratedSifgrs
block = pellet
execute_on = 'linear'
[]
[fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = pellet
execute_on = 'linear'
[]
[fis_gas_released_percentage]
type = FGRPercent
fission_gas_generated = fis_gas_produced
fission_gas_released = fis_gas_released
execute_on = 'linear'
[]
[fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
block = pellet
execute_on = 'linear'
[]
[fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
block = pellet
execute_on = 'linear'
[]
[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
[]
[rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
block = pellet
[]
[rod_input_power]
type = FunctionValuePostprocessor
function = average_power_history
scale_factor = 0.9144 # rod height
[]
[average_vonMises_fuel]
type = ElementAverageValue
variable = vonmises_stress
block = pellet
[]
[average_vonMises_clad]
type = ElementAverageValue
variable = vonmises_stress
block = clad
[]
[average_strain_rr_fuel]
type = ElementAverageValue
variable = radial_strain
block = pellet
[]
[average_strain_rr_clad]
type = ElementAverageValue
variable = radial_strain
block = clad
[]
[average_creep_strain_clad]
type = ElementAverageValue
variable = effective_creep_strain
block = clad
[]
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = true
color = true
csv = true
[console]
type = Console
max_rows = 25
[]
[chkfile]
type = CSV
file_base = fftf_fo2_L09_new_GrainGrowth_chkfile
execute_on = FINAL
show = 'ave_temp_interior fis_gas_released_percentage'
[]
[]
[Debug]
show_var_residual_norms = true
[]
(assessment/MOX/FFTF/FO-2/L09/analysis/fftf_fo2_L09_master_sampleL.i)
initial_fuel_density = 10431.0
[GlobalParams]
density = ${initial_fuel_density}
energy_per_fission = 3.2e-11 # J/fission
[]
[Problem]
type = ReferenceResidualProblem
extra_tag_vectors = 'ref'
reference_vector = 'ref'
[]
[Mesh]
coord_type = RZ
[mesh]
type = GeneratedMeshGenerator
dim = 1
xmax = 2.794e-3
xmin = 6.985e-4
nx = 1000
elem_type = EDGE
[]
[]
[Variables]
[temp]
initial_condition = 295.0
scaling = 1
[]
[]
[AuxVariables]
[pore]
[]
[fission_rate]
[]
[burnup]
[]
[]
[Functions]
[power_history]
type = PiecewiseLinear
x = '0 74993.42422 31858942.74'
y = '0 48.2674686 48.2674686'
[]
[fuel_surface_temp]
type = PiecewiseLinear
x = '-200 74993.42422 31858942.74'
y = '295 676 853.565'
[]
[]
[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
fission_rate = fission_rate
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[fission_rate]
type = FissionRateGeneral
fission_rate_formulation = MOX
variable = fission_rate
initial_porosity = 0.2
rod_ave_lin_pow = power_history
pellet_diameter = 0.005588
execute_on = timestep_begin
porosity = pore
pellet_inner_diameter = 0.001397
[]
[burnup]
type = BurnupAux
fission_rate = fission_rate
variable = burnup
execute_on = timestep_begin
[]
[]
[BCs]
[temp_outside]
type = FunctionDirichletBC
variable = temp
boundary = right
function = fuel_surface_temp
[]
[]
[Materials]
[fuel_thermal]
type = MAMOXThermal
temperature = temp
Am_content = 0.0
Np_content = 0.0
porosity = pore
output_properties = 'thermal_conductivity'
[]
[fuel_density]
type = ParsedMaterial
property_name = density
expression = ${initial_fuel_density}
[]
[]
[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'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
fixed_point_abs_tol = 1e-5
fixed_point_rel_tol = 1e-6
fixed_point_max_its = 1
l_max_its = 50
l_tol = 8e-3
nl_max_its = 15
nl_rel_tol = 1e-4
nl_abs_tol = 1e-4
start_time = -200
n_startup_steps = 1
end_time = 31858942.74
dtmax = 1e6
dtmin = 1
[TimeStepper]
type = IterationAdaptiveDT
dt = 2e2
optimal_iterations = 10
iteration_window = 2
linear_iteration_ratio = 100
growth_factor = 2
cutback_factor = .5
force_step_every_function_point = true
timestep_limiting_function = power_history
[]
[]
[Postprocessors]
[ave_temp_interior]
type = ElementAverageValue
variable = temp
execute_on = 'initial linear'
[]
[average_burnup]
type = ElementAverageValue
variable = burnup
[]
[ave_pore]
type = ElementAverageValue
variable = pore
[]
[max_pore]
type = NodalExtremeValue
value_type = max
variable = pore
[]
[min_pore]
type = NodalExtremeValue
value_type = min
variable = pore
[]
[rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
[]
[rod_input_power]
type = FunctionValuePostprocessor
function = power_history
[]
[]
[VectorPostprocessors]
[fuel_radial_temperature]
type = LineValueSampler
variable = temp
start_point = '6.985e-4 0 0.0'
end_point = '2.794e-3 0 0.0'
num_points = 200
execute_on = final
sort_by = x
outputs = line_plot
[]
[radial_porosity]
type = LineValueSampler
variable = pore
start_point = '6.985e-4 0 0.0'
end_point = '2.794e-3 0 0.0'
num_points = 200
execute_on = final
sort_by = x
outputs = line_plot
[]
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = true
color = true
csv = true
[console]
type = Console
max_rows = 25
[]
[line_plot]
type = CSV
execute_on = 'FINAL'
time_step_interval = 1
file_base = 1d
create_final_symlink = true
[]
[chkfile]
type = CSV
execute_on = FINAL
show = 'ave_temp_interior max_pore'
[]
[]
[MultiApps]
[sub]
type = TransientMultiApp
app_type = BisonApp
positions = '0 0 0'
input_files = fftf_fo2_L09_sub_1D.i
execute_on = TIMESTEP_END
sub_cycling = false
[]
[]
[Transfers]
[pore_from_sub]
type = MultiAppGeometricInterpolationTransfer
from_multi_app = sub
source_variable = pore
variable = pore
execute_on = SAME_AS_MULTIAPP
[]
[temp_to_sub]
type = MultiAppGeometricInterpolationTransfer
to_multi_app = sub
source_variable = temp
variable = temp
check_multiapp_execute_on = true
execute_on = SAME_AS_MULTIAPP
[]
[]
[Debug]
show_var_residual_norms = true
[]
(test/tests/solid_mechanics/zry_mechanics/zry_irradiation_growth/irradiation_growth_Zr4_test.i)
# This test applies the ESCORE_IrradiationGrowthZr4 legacy model to a unit cube to check the
# calculated axial strain for Zr4. Note that the Franklin (1982) models are preferred over
# this legacy IrradiationGrowthZr4 model.
#
# For time 0.5:
# A = 3e-20
# n = .794
# fluence = 1.0647e20 n/m^2
#
# Theoretical calc:
# Irradiation growth strain = A*power(fluence/10000, n)
# = 3.0e-20 * (1.0647e20/1e4)^0.794
# = 1.595e-7
#
# BISON results: The value of the calculated irradiation growth strain in the axial direction
# (total_strain_yy) is 1.595e-7. The volume remains constant for irradiation growth.
#
[Mesh]
[mesh]
type = GeneratedMeshGenerator
dim = 3
[]
[]
[GlobalParams]
displacements = 'disp_x disp_y disp_z'
[]
[AuxVariables]
[fission_rate]
[]
[fast_neutron_flux]
[]
[fast_neutron_fluence]
[]
[]
[Functions]
[initial_power_ramp]
type = PiecewiseLinear
x = '0 1 2 3 4 5'
y = '0 1 2 2 3 2'
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
value = 1.183e20 # corrected average power to 200 W/cm
fission_rate_function = initial_power_ramp
[]
[fast_neutron_flux]
type = FastNeutronFluxAux
variable = fast_neutron_flux
factor = 1.183e19 # fission_rate * 0.1
function = initial_power_ramp
[]
[fast_neutron_fluence]
type = FastNeutronFluenceAux
variable = fast_neutron_fluence
fast_neutron_flux = fast_neutron_flux
[]
[]
[Physics/SolidMechanics/QuasiStatic/all]
strain = FINITE
eigenstrain_names = irradiation_strain
add_variables = true
generate_output = 'strain_xx strain_yy strain_zz'
[]
[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]
[elasticity_tensor]
type = ComputeIsotropicElasticityTensor
youngs_modulus = 1.0
poissons_ratio = 0.3
[]
[stress]
type = ComputeFiniteStrainElasticStress
[]
[irradiation_swelling]
type = ZryIrradiationGrowthEigenstrain
zircaloy_material_type = ESCORE_IrradiationGrowthZr4
fast_neutron_fluence = fast_neutron_fluence
eigenstrain_name = irradiation_strain
[]
[]
[Preconditioning]
[smp]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew '
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type'
petsc_options_value = '70 hypre boomeramg'
l_max_its = 60
nl_rel_tol = 1e-12
nl_abs_tol = 1e-12
l_tol = 1e-5
start_time = 0.0
dt = 0.5
num_steps = 10
automatic_scaling = true
[]
[Outputs]
exodus = true
[]
[Postprocessors]
[fast_neutron_fluence]
type = AverageNodalVariableValue
variable = fast_neutron_fluence
[]
[volume]
type = InternalVolume
boundary = 'left right back front bottom top'
execute_on = 'initial timestep_end'
[]
[total_strain_xx]
type = ElementAverageValue
variable = strain_xx
[]
[total_strain_yy]
type = ElementAverageValue
variable = strain_yy
[]
[total_strain_zz]
type = ElementAverageValue
variable = strain_zz
[]
[]
(test/tests/sifgrs/uo2/diffusion_coefficient.i)
# Analytical test for the diffusion coefficient of the Sifgrs fission gas behavior model.
#
# For the purpose of verifying the implementation of the diffusion coefficient, the BISON results are compared with an independent calculations (see attached file regression_tests_sifgrs.xlsx).
# The formulation for the diffusion coefficient adopted in the Sifgrs model is based on the formulation of Turnbull et al. (JNM 107, 168, 1982; Preston, England, September 18-22, 1988).
#
# Variable definitions
# T = temperature in K
# F = Fission rate in fissions/(m^3*s)
# k = Boltzmann constant in J/K = 1.380651e-23
# Zo = fragment influence; fission fragment range of influence in meters = 1e-9
# lf = fragment range; fission fragment travel distance before coming to rest in meters = 6e-6
#
# Equations and sample calculations
#
# Use T = 1700 K, F = 2.5e19 fission/m^3s
#
# Diffusion coefficient terms (m^2/s)
#
# D1 = intrinsic term = 7.6e-10 * exp(-4.8599e-19/kT)
# D1 = 7.73e-19
#
# D2 = enhanced vacancy term = 1.41e-25 * exp(-1.9053e-19/kT) * sqrt(F)
# D2 = 2.10e-19
#
# The purely rating dependent term D3 is neglected (see, e.g., P. Losonen JNM, 304, 29, 2002)
#
# D = single gas atom diffusion coefficient = D1 + 4*D2
# D = 1.61e-18
#
# Based on the formulation of Speight (Nuclear Science and Engineering 37, 180, 1969), include effects of intragranular trapping and resolution to compute an effective diffusion coefficient. The trapping and resolution rates are computed using relations from White and Tucker (JNM 118, p1, 1983)
#
# R = Intragranular bubble radius in m = 5e-10*(1 + 106*exp(-8703/T))
# R = 8.17e-10
#
# Radius_sum = intragranular bubble radius + fragment influence = R + Zo in m
# Radius_sum = 1.82e-09
#
# CBtot = intragranular bubble concentration in 1/m^3 = 1.52e+27 / T - 3.3e+23
# CBtot = 5.64e+23
#
# g = trapping rate = 4 * pi * R * D * CBtot
# g = 5.70e-03
#
# b = resolution rate = 3.03 * F * pi * lf * Radius_sum^2
# b = 4.71e-03
#
# Deff = effective diffusion coefficient = D*b/(b + g)
# Deff = 5.41e-19
#
# Example problem description
#
# A single hex 8 element is used to solve the heat equation with no source term. One boundary of the block is insulated while the
# boundary opposite to the insulated boundary is assigned a prescibed Dirichlet boundary condition defined by a function.
# The function increases the temperature, starting at 800 K increasing linearly to 1700 K. At the same time, the fission rate is increasing linearly from 1e19 to 2.5e19. At the final time in this calculation, Deff should equal 5.41e-19.
# See also the sheet sifgr_diffusion_coefficient of the attached file (regression_tests_sifgrs.xlsx), which plots Deff values from this calculation and independent calculations. One should be able to reproduce that plot with the results from this test.
#
[Mesh]
[mesh]
type = FileMeshGenerator
file = 1hex8_10mm_cube.e
[]
[]
[Functions]
[Temp_func]
type = PiecewiseLinear
x = '0 1.2e7'
y = '800 1700'
scale_factor = 1
[]
[Fiss_func]
type = PiecewiseLinear
x = '0 1.2e7'
y = '1e19 2.5e19'
[]
[]
[Variables]
[T]
order = FIRST
family = LAGRANGE
initial_condition = 800.0
[]
[]
[AuxVariables]
[fission_rate]
order = FIRST
family = LAGRANGE
[]
[eff_diff_coeff]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = T
diffusion_coefficient = 1
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
value = 1
fission_rate_function = Fiss_func
execute_on = 'initial timestep_begin'
[]
[diffusion_coefficient]
type = MaterialRealAux
variable = eff_diff_coeff
property = eff_diff_coeff
[]
[]
[BCs]
[bottom_T]
type = FunctionDirichletBC
variable = T
function = Temp_func
boundary = 1
[]
[]
[Materials]
[fission_gas_behavior]
type = UO2Sifgrs
temperature = T
fission_rate = fission_rate
testing_output = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
start_time = 0.0
num_steps = 12
dt = 1e6
[]
[Postprocessors]
[fis_gas_generated]
type = ElementIntegralFisGasGeneratedSifgrs
[]
[fis_gas_grain]
type = ElementIntegralFisGasGrainSifgrs
[]
[fis_gas_boundary]
type = ElementIntegralFisGasBoundarySifgrs
[]
[fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
[]
[]
[Outputs]
exodus = true
[]
(test/tests/uo2_transient_fission_gas_release/ad_uo2_pulverization_phasefield2_transient_FGR.i)
# This file is to test the transient fission gas release model that accounts for
# the amount of fission gas released as a result of fuel pulverization. it is
# based on the input file called uo2_pulverization_mesoscale.i, which tests the
# pulverization criteria for UO2 fuel with evolve_bubble_pressure_hbs = true and
# using the 3D phase field criterion for pulverization.
# In the test 5 axial fuel slices are modeled without cladding with an outer fuel
# radius of 4.5 mm and slice height of 0.1 m. Ten radial finite elements are used.
# The burnup increases linearly from the fuel centerline to the fuel surface.
# Temperature is held at constant T = 673.15 K from t = 0 to t = 100, followed
# by a ramp in temperature from t = 100 to t = 125. Pulverization will occur
# during the ramp only, in the rim region where a significant amount of high burnup
# structure formation has begun. Local pulverization is tracked with the material
# property pulverized, which is 0 where pulverization has not occured and 1 where
# it has occurred. A material property uses the local pulverization to compute the
# amount of fission gas released as a results of fuel pulverization.
# This material property is output to the exodus file for this test.
# At each time step, the pulverized material property is computed, as well as
# the bubble radius and amount of fission gas in bubbles. These material property
# are then used to determine the amount of fission gas release due to pulverization.
# This amount predicted by the material block
# UO2PulverizationTransientFissionGasRelease is compared with analytical calculations
# made in the material block fission_gas_released_amount for verification.
# This input is the AD version.
hydrostatic_stress_constant = 1e7
[GlobalParams]
value_range_behavior = WARN
[]
[Mesh]
coord_type = RZ
[layered1D_mesh]
type = Layered1DMeshGenerator
elem_type = EDGE2
slices_per_block = 5
pellet_outer_radius = 4.5e-3
include_clad = false
fuel_height = 0.5
include_plenum = false
nx_p = 10
pellet_mesh_density = customize
pellet_bottom_coor = 0.0
[]
patch_update_strategy = auto
partitioner = centroid
centroid_partitioner_direction = y
[]
[Variables]
[temperature]
order = FIRST
family = LAGRANGE
initial_condition = 600
[]
[]
[AuxVariables]
[burnup]
order = FIRST
family = LAGRANGE
[]
[fission_rate]
order = FIRST
family = LAGRANGE
[]
[pulverized_aux]
order = CONSTANT
family = MONOMIAL
[]
[layered_pulverized_fuel_volume]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[burnup_function]
type = ParsedFunction
expression = 'x*1.6*t/4.275'
[]
[temperature_function]
type = ParsedFunction
expression = 'if(t < 100, 900, 900+(t-100)*200)'
[]
[Fiss_func]
type = ParsedFunction
expression = '1.e19'
[]
[]
[Kernels]
[heat]
type = ADHeatConduction
variable = temperature
[]
[]
[AuxKernels]
[burnup]
type = FunctionAux
variable = burnup
function = burnup_function
execute_on = 'initial linear'
[]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
value = 1
fission_rate_function = Fiss_func
execute_on = 'initial timestep_begin'
[]
[pulverized]
type = ADMaterialRealAux
block = fuel
variable = pulverized_aux
property = pulverized
execute_on = 'initial nonlinear'
[]
[layered_pulverized_fuel_volume]
type = SpatialUserObjectAux
variable = layered_pulverized_fuel_volume
execute_on = timestep_end
block = fuel
user_object = layered_pulverized_fuel_volume
[]
[]
[BCs]
[temperature]
type = FunctionDirichletBC
boundary = '10 12'
variable = temperature
function = temperature_function
[]
[]
[Materials]
[UO2PulverizationTransientFissionGasRelease] # moles/m^3
type = ADUO2PulverizationTransientFissionGasRelease
block = fuel
outputs = exodus
[]
[fission_gas_behavior]
type = ADUO2Sifgrs
block = fuel
temperature = temperature
fission_rate = fission_rate
burnup = burnup
skip_bdr_model = true
ig_bubble_model = MECHANISTIC_AAGESEN
hbs_model = true
hbs_material = hbs_formation
pulverization_model = true
pulverization_transient_fission_gas_release_material = UO2PulverizationTransientFissionGasRelease
ig_diff_algorithm = FORMAS
hydrostatic_stress_const = ${hydrostatic_stress_constant}
igdiffcoeff_scalef_HBS = 1e24 # Ensures that all the generated fission gases diffuse from the HBS matrix to the HBS bubbles
[]
[uo2pulverizationmesoscale]
type = ADUO2PulverizationMesoscale
block = fuel
temperature = temperature
output_properties = pulverized
pulverization_criterion_type = phase_field_3D
outputs = exodus
[]
[dummy_stress]
type = ADGenericConstantRankTwoTensor
tensor_name = 'stress'
tensor_values = '-${hydrostatic_stress_constant} -${hydrostatic_stress_constant} -${hydrostatic_stress_constant} 0 0 0'
[]
[fuel_thermal]
type = ADUO2Thermal
block = fuel
thermal_conductivity_model = STAICU
hbs_porosity_correction = KAMPF
model_hbs_formation = true
temperature = temperature
burnup_function = burnup_function
output_properties = hbs_porosity
outputs = exodus
[]
[hbs_formation]
type = ADHighBurnupStructureFormation
block = fuel
temperature = temperature
burnup = burnup
threshold_temperature = 1273.15 # default
output_properties = hbs_volume_fraction
outputs = exodus
[]
[fission_gas_density_bubble_HBS] # moles/m^3
type = ADParsedMaterial
block = fuel
property_name = 'rho_FG_hbs'
material_property_names = 'atom_per_bubble_GB_HBS bubble_GB_volume_density_HBS'
constant_names = 'Na'
constant_expressions = '6.02214076e23'
expression = 'atom_per_bubble_GB_HBS * bubble_GB_volume_density_HBS / Na'
outputs = exodus
[]
[opened_pore_volume_fraction] # -
type = ADParsedMaterial
block = fuel
property_name = 'f_V_pul'
material_property_names = 'hbs_porosity bubble_radius_GB_HBS'
constant_names = 'fragment_size c_p c_r c_0'
constant_expressions = '5e-5 0.03 5.17 0.02'
expression = 'c_p * hbs_porosity + c_r * bubble_radius_GB_HBS/fragment_size + c_0'
outputs = exodus
[]
[fission_gas_released_amount_analytical] # moles/m^3
type = ADParsedMaterial
block = fuel
property_name = 'fis_gas_rel'
material_property_names = 'f_V_pul rho_FG_hbs pulverized'
expression = 'pulverized * f_V_pul * rho_FG_hbs'
outputs = exodus
[]
[]
[UserObjects]
[fuel_pin_geometry]
type = Layered1DFuelPinGeometry
include_clad = false
mesh_generator = layered1D_mesh
[]
[layered_pulverized_fuel_volume]
type = LayeredVariableIntegral
variable = pulverized_aux
fuel_pin_geometry = fuel_pin_geometry
direction = y
execute_on = 'initial timestep_end'
block = fuel
num_layers = 5
[]
[]
[Postprocessors]
[FG_amount_bubble_HBS]
type = ADLayeredElementIntegralMaterialProperty
mat_prop = rho_FG_hbs
block = fuel
fuel_pin_geometry = fuel_pin_geometry
[]
[FGR_analytical]
type = ADLayeredElementIntegralMaterialProperty
mat_prop = fis_gas_rel
block = fuel
fuel_pin_geometry = fuel_pin_geometry
[]
[FGR]
type = ADLayeredElementIntegralMaterialProperty
mat_prop = gas_concentration_release_pulverization
block = fuel
fuel_pin_geometry = fuel_pin_geometry
[]
[FGR_pps_diff_bison_analytical]
type = DifferencePostprocessor
value1 = FGR_analytical
value2 = FGR
[]
[FG_pps_diff_total_released]
type = DifferencePostprocessor
value1 = FG_amount_bubble_HBS
value2 = FGR
[]
[volume_domain]
type = ADLayeredElementIntegralMaterialProperty
mat_prop = 1
block = fuel
execute_on = TIMESTEP_END
fuel_pin_geometry = fuel_pin_geometry
[]
[hbs_volume]
type = ADLayeredElementIntegralMaterialProperty
mat_prop = hbs_volume_fraction
block = fuel
execute_on = TIMESTEP_END
fuel_pin_geometry = fuel_pin_geometry
[]
[hbs_volume_fraction]
type = ParsedPostprocessor
pp_names = 'hbs_volume volume_domain'
expression = 'hbs_volume / volume_domain'
execute_on = TIMESTEP_END
[]
[pulverized_volume]
type = ADLayeredElementIntegralMaterialProperty
mat_prop = pulverized
block = fuel
execute_on = TIMESTEP_END
fuel_pin_geometry = fuel_pin_geometry
[]
[]
[Executioner]
type = Transient
solve_type = Newton
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
line_search = 'none'
l_max_its = 100
nl_max_its = 100
nl_rel_tol = 1e-8
nl_abs_tol = 1e-10
l_tol = 1e-5
start_time = 0.0
num_steps = 125
dt = 1
[]
[Outputs]
exodus = true
csv = true
file_base = ad_uo2_pulverization_phasefield2_transient_FGR_out
[]
(test/tests/uo2_thermal/Staicu/ad_test.i)
# This test case is prepared to test the thermal conductivity using the Staicu model.
#
# The temperature is ramped on all BCs of the unit line from 500K to 3000K over 100 Ms.
# The fission rate is 2e19 n/m3/s, so that the burnup goes from 0 to
# ~ 8.6 at.% (82 MWd/kgU) at the end of the simulation.
#
[GlobalParams]
order = FIRST
family = LAGRANGE
[]
[Mesh]
[geom]
type = GeneratedMeshGenerator
dim = 1
elem_type= EDGE2
[]
[]
[Variables]
[T]
initial_condition = 500
[]
[]
[AuxVariables]
[fission_rate]
[]
[burnup]
[]
[th_cond]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[heat]
type = ADHeatConduction
variable = T
[]
[heat_ie]
type = ADHeatConductionTimeDerivative
variable = T
[]
[heat_source]
type = ADNeutronHeatSource
variable = T
energy_per_fission = 3.2e-11
fission_rate = fission_rate
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable= fission_rate
value = 2e19 # Standard fission_rate fissions/m^3/s
execute_on = 'initial timestep_begin'
[]
[th_cond]
type = ADMaterialRealAux
variable = th_cond
property = thermal_conductivity
execute_on = 'initial linear'
[]
[burnup]
type = ADBurnupAux
variable = burnup
density = 10431.0 # 95% TD
fission_rate = fission_rate
execute_on = timestep_begin
[]
[]
[Functions]
[temp_ramp]
type = PiecewiseLinear
x = '0.0 100.e6'
y = '500 3000'
[]
[]
[BCs]
[VariableT]
type = ADFunctionDirichletBC
boundary = 'left right'
variable = T
function = temp_ramp
[]
[]
[Materials]
[fuel_thermal]
type = ADUO2Thermal
temperature = T
burnup = burnup
thermal_conductivity_model = STAICU
oxy_to_metal_ratio = 2.0
initial_porosity = 0.05
Gd_content = 0.0
[]
[density]
type = ADParsedMaterial
property_name = density
expression = 10431.0
[]
[]
[Executioner]
type = Transient
start_time = 0
num_steps = 100
dt = 1.0e6
[]
[Postprocessors]
[avg_th_cond]
type = ElementAverageValue
variable = th_cond
execute_on = 'initial timestep_end'
[]
[average_rod_burnup]
type = ElementAverageValue
variable = burnup
execute_on = timestep_end
[]
[average_fuel_T]
type = ElementAverageValue
variable = T
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
csv = true
[]
(test/tests/sifgrs/uo2/material_input_fission_rate.i)
# @Requirement F2.40
# This is a test of passing fission_rate_material into Sifgrs. Based on mechanistic_igmodel.i.
#
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 3
xmin = 0
xmax = 0.01
ymin = 0
ymax = 0.01
zmin = 0
zmax = 0.01
[]
[]
[Functions]
[Temp_func]
type = ParsedFunction
expression = '1273'
[]
[Fiss_func]
type = ParsedFunction
expression = '1.e19'
[]
[]
[Variables]
[T]
initial_condition = 1273
[]
[]
[AuxVariables]
[fission_rate]
[]
[fract_FGR_analytical]
order = CONSTANT
family = MONOMIAL
[]
[rad_bbl_grn]
order = CONSTANT
family = MONOMIAL
[]
[bbl_grn_3]
order = CONSTANT
family = MONOMIAL
[]
[gas_bbl_grn]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = T
diffusion_coefficient = 1
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
value = 1
fission_rate_function = Fiss_func
execute_on = 'initial timestep_begin'
[]
[bbl_cnc]
type = MaterialRealAux
variable = bbl_grn_3
property = bubble_concentration_intra
execute_on = 'TIMESTEP_END'
[]
[rad_bbl]
type = MaterialRealAux
variable = rad_bbl_grn
property = bubble_radius_intra
execute_on = 'TIMESTEP_END'
[]
[gascnc_bbl]
type = MaterialRealAux
variable = gas_bbl_grn
property = gas_concentration_bubble_intra
execute_on = 'TIMESTEP_END'
[]
[]
[BCs]
[bottom_T]
type = FunctionDirichletBC
variable = T
function = Temp_func
boundary = bottom
[]
[]
[Materials]
[fission_gas_behavior]
type = UO2Sifgrs
skip_bdr_model = true
temperature = T
fission_rate_material = Fission_rate_material
grain_radius_const = 5.e-6
ig_bubble_model = NUCLEATION_RESOLUTION
initial_porosity = 0.0
[]
[Fission_rate_material]
type = ParsedMaterial
block = 0
property_name = Fission_rate_material
expression = '1.e19'
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
l_tol = 1e-4
nl_abs_tol = 1e-5
nl_rel_tol = 1e-5
start_time = 0.0
num_steps = 10
dt = 19800.
[]
[Postprocessors]
[fis_gas_generated]
type = ElementIntegralFisGasGeneratedSifgrs
[]
[fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
[]
[]
[Outputs]
csv = true
[]
(test/tests/sifgrs/u3si2/intergranular_ext_fsngas.i)
# This input tests external fission gas coupling to U3Si2Sifgrs with PolyPole-2
[Mesh]
[mesh]
type = FileMeshGenerator
file = 1hex8_10mm_cube.e
[]
[]
[Functions]
[Temp_func]
type = ParsedFunction
expression = '1700'
[]
[Fiss_func]
type = ParsedFunction
expression = '2.5e19'
[]
[]
[Variables]
[T]
initial_condition = 1700
[]
[]
[AuxVariables]
[fission_rate]
[]
[ext_gas]
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = T
diffusion_coefficient = 1
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
value = 1
fission_rate_function = Fiss_func
execute_on = 'initial timestep_begin'
[]
[ext_gas_aux]
type = ParsedAux
variable = ext_gas
coupled_variables = 'fission_rate'
use_xyzt = true
expression = 'fission_rate * 0.3017 / 6.02214076e23 * t'
[]
[]
[BCs]
[bottom_T]
type = FunctionDirichletBC
variable = T
function = Temp_func
boundary = 1
[]
[]
[Materials]
[fission_gas_behavior]
type = U3Si2Sifgrs
skip_bdr_model = true
temperature = T
fission_rate = fission_rate
fission_gas_conc = ext_gas
ig_diff_algorithm = POLYPOLE2
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
l_tol = 1e-4
nl_abs_tol = 1e-5
nl_rel_tol = 1e-5
start_time = 0.0
num_steps = 50
dt = 1e6
[]
[Postprocessors]
[fis_gas_generated]
type = ElementIntegralFisGasGeneratedSifgrs
[]
[fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
[]
[fgr_percent]
type = FGRPercent
fission_gas_released = fis_gas_released
fission_gas_generated = fis_gas_generated
[]
[]
[Outputs]
exodus = true
hide = 'ext_gas'
[]
(test/tests/sifgrs/uo2/polypole1.i)
# @Requirement F2.40
# This test is for evaluating the PolyPole-1 algorithm (for the intra-granular diffusion calculation)
# in the Sifgrs fission gas behavior model.
#
[Mesh]
[mesh]
type = FileMeshGenerator
file = 1hex8_10mm_cube.e
[]
[]
[Functions]
[temperature_function]
type = ParsedFunction
expression = '1700'
[]
[fission_rate_function]
type = ParsedFunction
expression = '2.5e19'
[]
[]
[Variables]
[temperature]
initial_condition = 1700
[]
[]
[AuxVariables]
[fission_rate]
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temperature
diffusion_coefficient = 1
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
value = 1
fission_rate_function = fission_rate_function
execute_on = 'initial timestep_begin'
[]
[]
[BCs]
[bottom_temperature]
type = FunctionDirichletBC
variable = temperature
function = temperature_function
boundary = '1 2'
[]
[]
[Materials]
[fission_gas_behavior]
type = UO2Sifgrs
skip_bdr_model = true
temperature = temperature
fission_rate = fission_rate
testing_output = true
ig_diff_algorithm = POLYPOLE1
output_properties = 'bubble_concentration_intra bubble_radius_intra gas_concentration_bubble_intra gas_concentration_matrix_intra deltav_v0_intra_total fract_FGR_analytical'
outputs = 'all'
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
l_tol = 1e-12
nl_abs_tol = 5e-16
nl_rel_tol = 1e-17
start_time = 0.0
num_steps = 50
dt = 3e6
[]
[Postprocessors]
[fis_gas_generated]
type = ElementIntegralMaterialProperty
mat_prop = gas_concentration_generated_total
[]
[fis_gas_released]
type = ElementIntegralMaterialProperty
mat_prop = gas_concentration_release_total
[]
[fgr_percent]
type = FGRPercent
fission_gas_released = fis_gas_released
fission_gas_generated = fis_gas_generated
[]
[intrag_swelling]
type = ElementIntegralMaterialProperty
mat_prop = deltav_v0_intra_total
[]
[gas_amount_bubble_intra]
type = ElementIntegralMaterialProperty
mat_prop = gas_concentration_bubble_intra
[]
[gas_amount_matrix_intra]
type = ElementIntegralMaterialProperty
mat_prop = gas_concentration_matrix_intra
[]
[bubble_amount_intra]
type = ElementIntegralMaterialProperty
mat_prop = bubble_concentration_intra
[]
[bubble_radius_intra_average]
type = ElementAverageMaterialProperty
mat_prop = bubble_radius_intra
[]
[temperature]
type = ElementAverageValue
variable = temperature
[]
[fission_rate]
type = ElementAverageValue
variable = fission_rate
[]
[]
[Outputs]
exodus = true
csv = true
[]
(assessment/MOX/FFTF/FO-2/L09/analysis/fftf_fo2_L09_master_sampleJ.i)
initial_fuel_density = 10431.0
[GlobalParams]
density = ${initial_fuel_density}
energy_per_fission = 3.2e-11 # J/fission
[]
[Problem]
type = ReferenceResidualProblem
extra_tag_vectors = 'ref'
reference_vector = 'ref'
[]
[Mesh]
coord_type = RZ
[mesh]
type = GeneratedMeshGenerator
dim = 1
xmax = 2.794e-3
xmin = 6.985e-4
nx = 1000
elem_type = EDGE
[]
[]
[Variables]
[temp]
initial_condition = 295.0
scaling = 1
[]
[]
[AuxVariables]
[pore]
[]
[fission_rate]
[]
[burnup]
[]
[]
[Functions]
[power_history]
type = PiecewiseLinear
x = '0 74993.42422 31858942.74'
y = '0 19947.50467 19947.50467'
[]
[fuel_surface_temp]
type = PiecewiseLinear
x = '-200 74993.42422 31858942.74'
y = '295 1057 1304.71'
[]
[]
[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
fission_rate = fission_rate
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[fission_rate]
type = FissionRateGeneral
fission_rate_formulation = MOX
variable = fission_rate
initial_porosity = 0.2
rod_ave_lin_pow = power_history
pellet_diameter = 0.005588
execute_on = timestep_begin
porosity = pore
pellet_inner_diameter = 0.001397
[]
[burnup]
type = BurnupAux
fission_rate = fission_rate
variable = burnup
execute_on = timestep_begin
[]
[]
[BCs]
[temp_outside]
type = FunctionDirichletBC
variable = temp
boundary = right
function = fuel_surface_temp
[]
[]
[Materials]
[fuel_thermal]
type = MAMOXThermal
temperature = temp
Am_content = 0.0
Np_content = 0.0
porosity = pore
output_properties = 'thermal_conductivity'
[]
[fuel_density]
type = ParsedMaterial
property_name = density
expression = ${initial_fuel_density}
[]
[]
[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'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
fixed_point_abs_tol = 1e-5
fixed_point_rel_tol = 1e-6
fixed_point_max_its = 1
l_max_its = 50
l_tol = 8e-3
nl_max_its = 15
nl_rel_tol = 1e-4
nl_abs_tol = 1e-4
start_time = -200
n_startup_steps = 1
end_time = 31858942.74
dtmax = 1e6
dtmin = 1
[TimeStepper]
type = IterationAdaptiveDT
dt = 2e2
optimal_iterations = 10
iteration_window = 2
linear_iteration_ratio = 100
growth_factor = 2
cutback_factor = .5
force_step_every_function_point = true
timestep_limiting_function = power_history
[]
[]
[Postprocessors]
[ave_temp_interior]
type = ElementAverageValue
variable = temp
execute_on = 'initial linear'
[]
[average_burnup]
type = ElementAverageValue
variable = burnup
[]
[ave_pore]
type = ElementAverageValue
variable = pore
[]
[max_pore]
type = NodalExtremeValue
value_type = max
variable = pore
[]
[min_pore]
type = NodalExtremeValue
value_type = min
variable = pore
[]
[rod_total_power]
type = ElementIntegralPower
variable = temp
fission_rate = fission_rate
[]
[rod_input_power]
type = FunctionValuePostprocessor
function = power_history
[]
[]
[VectorPostprocessors]
[fuel_radial_temperature]
type = LineValueSampler
variable = temp
start_point = '6.985e-4 0 0.0'
end_point = '2.794e-3 0 0.0'
num_points = 200
execute_on = final
sort_by = x
outputs = line_plot
[]
[radial_porosity]
type = LineValueSampler
variable = pore
start_point = '6.985e-4 0 0.0'
end_point = '2.794e-3 0 0.0'
num_points = 200
execute_on = final
sort_by = x
outputs = line_plot
[]
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = true
color = true
csv = true
[console]
type = Console
max_rows = 25
[]
[line_plot]
type = CSV
execute_on = 'FINAL'
time_step_interval = 1
file_base = 1d
create_final_symlink = true
[]
[chkfile]
type = CSV
execute_on = FINAL
show = 'ave_temp_interior max_pore'
[]
[]
[MultiApps]
[sub]
type = TransientMultiApp
app_type = BisonApp
positions = '0 0 0'
input_files = fftf_fo2_L09_sub_1D.i
execute_on = TIMESTEP_END
sub_cycling = false
[]
[]
[Transfers]
[pore_from_sub]
type = MultiAppGeometricInterpolationTransfer
from_multi_app = sub
source_variable = pore
variable = pore
execute_on = SAME_AS_MULTIAPP
[]
[temp_to_sub]
type = MultiAppGeometricInterpolationTransfer
to_multi_app = sub
source_variable = temp
variable = temp
check_multiapp_execute_on = true
execute_on = SAME_AS_MULTIAPP
[]
[]
[Debug]
show_var_residual_norms = true
[]
(test/tests/thermalFastMOX/test2.i)
# The mesh is a 1x1x1 cube (single element).
# The temperature is ramped on all faces of each cube from 500 K to 1500K.
# The fission rate is from 2e19 n/m3/s, so that the burnup is from 5 at.%
# at the end of the simulation.
# Thermal conductivity is computed using FastMOXThermal material model
# with a oxygen to metal ratio of 1.98
#
#
# The thermal conductivity computed by BISON was picked up each 10 time
# steps for each block, and compared with analytical solution
# The results are the following:
#
# Temp (k) Bu (at. %) BISON k (W/m/K) analytical k (W/m/K)
# 700.172 0.999619 2.85011 2.85011
# 900.344 1.99924 2.46959 2.46959
# 1100.52 2.99886 2.28426 2.28426
# 1300.69 3.99848 2.04831 2.04830
# 1500.00 4.99810 1.86372 1.86372
initial_fuel_density = 10431.0
[Mesh]
[mesh]
type = FileMeshGenerator
file = 1x1x1cube.e
[]
[]
[Variables]
[T]
order = FIRST
family = LAGRANGE
initial_condition = 500 # set initial T to 500 K
[]
[]
[AuxVariables]
[fission_rate]
order = FIRST
family = LAGRANGE
block = 1
[]
[burnup]
order = FIRST
family = LAGRANGE
block = 1
[]
[th_cond]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = T
[]
[heat_ie]
type = HeatConductionTimeDerivative
variable = T
[]
[heat_source]
type = NeutronHeatSource
variable = T
block = 1
energy_per_fission = 3.2e-11
fission_rate = fission_rate
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable= fission_rate
block = 1
value = 2e19 # Standard fission_rate
execute_on = 'initial timestep_begin'
[]
[th_cond]
type = MaterialRealAux
variable = th_cond
property = thermal_conductivity
block = 1
[]
[burnup]
type = BurnupAux
block = 1
variable = burnup
density = ${initial_fuel_density}
fission_rate = fission_rate
execute_on = timestep_begin
[]
[]
[Functions]
[temp_ramp]
type = PiecewiseLinear
x = '0.0 5.81e7'
y = '500 1500'
[]
[]
[BCs]
[VariableT]
type = FunctionDirichletBC
boundary = 2 # All cube faces
variable = T
function = temp_ramp
[]
[]
[Materials]
[fuel_thermalFastMOX]
type = FastMOXThermal
block = 1
temperature = T
burnup = burnup
initial_porosity = 0.05
oxy_to_metal_ratio = 1.98
[]
[density]
type = ParsedMaterial
block = 1
property_name = density
expression = ${initial_fuel_density}
[]
[]
[Executioner]
type = Transient
solve_type = PJFNK
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart'
petsc_options_value = '101'
line_search = 'none'
l_max_its = 100
nl_max_its = 100
nl_rel_tol = 1e-4
nl_abs_tol = 1e-6
l_tol = 1e-5
start_time = 0.0
num_steps = 50
dt = 1.163e6
[]
[Outputs]
file_base = out2
[exodus]
type = Exodus
[]
[]
(test/tests/mox_thermal/Amaya/test.i)
# This test case is prepared to test the thermal conductivity using the Amaya MOX model.
#
# The temperature is ramped on all BCs of the unit line from 500 K to 3000K over 100 Ms.
# The fission rate is 2e19 n/m3/s, so that the burnup goes from 0 to
# ~ 8.6 at.% (82 MWd/kgU) at the end of the simulation.
#
# Thermal conductivity of MOX fuel at 95%TD with a 7% Pu content is computed
# using the Amaya MOX thermal conductivity model.
# The BISON predictions (BISON_k) compared to the expected results (expected_k)
# are summarized (see: post_processing.py --> comparison_results.csv) as:
#
# expected_k BISON_k percent_error
# 4.30774878 4.30774878 4.33E-13
# 4.178849628 4.178849628 4.00E-13
# 4.057206997 4.057206997 -2.44E-13
# 3.942475407 3.942475407 -1.13E-12
# 3.834071383 3.834071383 -4.88E-13
[GlobalParams]
order = FIRST
family = LAGRANGE
[]
[Mesh]
[geom]
type = GeneratedMeshGenerator
dim = 1
elem_type= EDGE2
[]
[]
[Variables]
[T]
initial_condition = 500
[]
[]
[AuxVariables]
[fission_rate]
[]
[burnup]
[]
[th_cond]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = T
[]
[heat_ie]
type = HeatConductionTimeDerivative
variable = T
[]
[heat_source]
type = NeutronHeatSource
variable = T
energy_per_fission = 3.2e-11
fission_rate = fission_rate
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable= fission_rate
value = 2e19 # Standard fission_rate fissions/m^3/s
execute_on = 'initial timestep_begin'
[]
[th_cond]
type = MaterialRealAux
variable = th_cond
property = thermal_conductivity
execute_on = 'initial linear'
[]
[burnup]
type = BurnupAux
variable = burnup
density = 10431.0 # 95% TD
fission_rate = fission_rate
execute_on = timestep_begin
[]
[]
[Functions]
[temp_ramp]
type = PiecewiseLinear
x = '0.0 100.e6'
y = '500 3000'
[]
[]
[BCs]
[VariableT]
type = FunctionDirichletBC
boundary = 'left right'
variable = T
function = temp_ramp
[]
[]
[Materials]
[fuel_thermal]
type = MOXThermal
temperature = T
burnup = burnup
thermal_conductivity_model = AMAYA
oxy_to_metal_ratio = 2.0
initial_porosity = 0.05
Pu_content = 0.07
[]
[density]
type = ParsedMaterial
property_name = density
expression = 10431.0
[]
[]
[Executioner]
type = Transient
start_time = 0
num_steps = 100
dt = 1.0e6
[]
[Postprocessors]
[avg_th_cond]
type = ElementAverageValue
variable = th_cond
execute_on = 'initial timestep_end'
[]
[average_rod_burnup]
type = ElementAverageValue
variable = burnup
execute_on = timestep_end
[]
[average_fuel_T]
type = ElementAverageValue
variable = T
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
csv = true
[]
(test/tests/sifgrs/uo2/ad_transient_model.i)
# This is a test for the transient capability included in the Sifgrs fission gas behavior model.
# This transient treatment accounts for the rapid gas release from the grain boundaries due
# to micro-cracking during temperature transients. The effect of micro-cracking is interpreted
# as a reduction of the gas storing capacity of grain boundaries during transients,
# effectively leading to an increase of FGR and to a corresponding decrease of fission gas swelling.
# The fraction of cracked grain surface is described by a temperature-dependent sigmoid function,
# which reproduces the experimentally observed kinetics of gas release during both heating and
# cooling transients.
# The transient is composed of 5 phases:
# 1. build up of fission gases and burnup accummulation at constant temperature
# 2. heat up representative of a transient (micro-cracking during heating)
# 3. constant high temperature (healing)
# 4. cool down representative of a transient (micro-cracking during cooling)
# 5. constant low temperature (healing)
# The calculated FGR rapidly increases during the transients, and the fission gas swelling decreases correspondingly.
# This test can be adapted using transient_option = MICROCRACKING_BURNUP in UO2Sifgrs.
# The resulting test leverages the option for considering a burnup-dependent central temperature, which accounts
# for the gradual weakening of grain boundaries due to irradiation-created defects.
# This is the AD version of the test
end_buildup_time = 1e6 # s
end_heating_time = ${fparse end_buildup_time + 500} # s
end_stable_time = ${fparse end_heating_time + 2e5} # s
end_cooling_time = ${fparse end_stable_time + 500} # s
end_healing_time = ${fparse end_cooling_time + 3e5} # s
[GlobalParams]
displacements = 'disp_x'
[]
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 1
[]
[]
[Functions]
[temperature_function]
type = PiecewiseLinear
x = '0. ${end_buildup_time} ${end_heating_time} ${end_stable_time} ${end_cooling_time} ${end_healing_time}'
y = '1000. 1000. 2300. 2300. 1000. 1000.'
[]
[fission_rate_function]
type = ParsedFunction
expression = '1e21'
[]
[]
[Variables]
[temperature]
initial_condition = 1000.
[]
[disp_x]
[]
[]
[AuxVariables]
[fission_rate]
[]
[burnup]
[]
[deltav_v0_bubble_GB]
order = CONSTANT
family = MONOMIAL
[]
[GBCoverage]
order = CONSTANT
family = MONOMIAL
[]
[sat_coverage]
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 = temperature
thermal_conductivity = 1
[]
[]
[AuxKernels]
[fission_rate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
value = 1
fission_rate_function = fission_rate_function
execute_on = 'initial timestep_begin'
[]
[burnup]
type = BurnupAux
variable = burnup
fission_rate = fission_rate
density = 10417.
execute_on = 'initial timestep_begin'
[]
[]
[BCs]
[bottom_T]
type = ADFunctionDirichletBC
variable = temperature
function = temperature_function
boundary = 1
preset = false
[]
[x]
type = ADDirichletBC
variable = disp_x
boundary = 'left right'
value = 0
[]
[]
[Materials]
[fission_gas_behavior]
type = ADUO2Sifgrs
temperature = temperature
fission_rate = fission_rate
burnup = burnup
effdiffcoeff_scalef = 1e2 # artificially increases intragranular diffusion to increase GB content
transient_option = MICROCRACKING
output_properties = 'bubble_concentration_intra bubble_radius_intra gas_concentration_bubble_intra gas_concentraion_matrix_intra gas_concentration_GB_bubble_volume deltav_v0_intra_total'
outputs = 'all'
[]
[density]
type = ADStrainAdjustedDensity
strain_free_density = 10417.
[]
[fuel_elasticity_tensor]
type = ADComputeIsotropicElasticityTensor
youngs_modulus = 1e6
poissons_ratio = 0
[]
[fuel_elastic_stress]
type = ADComputeFiniteStrainElasticStress
[]
[fuel_volumetric_swelling]
type = ADUO2VolumetricSwellingEigenstrain
gas_swelling_model_type = SIFGRS
temperature = temperature
burnup = burnup
initial_fuel_density = 10417.0
eigenstrain_name = fuel_volumetric_strain
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
l_tol = 1e-12
nl_abs_tol = 1e-40
nl_rel_tol = 1e-17
start_time = 0.
end_time = ${end_healing_time}
dtmax = 1e5
dtmin = 1
# direct control of time steps vs time (optional)
[TimeStepper]
type = IterationAdaptiveDT
dt = 1e5
optimal_iterations = 10
iteration_window = 4
growth_factor = 1
linear_iteration_ratio = 100
time_t = '0 ${end_buildup_time} ${end_heating_time} ${end_stable_time} ${end_cooling_time}'
time_dt = '1e4 1e2 1e3 1e2 2e3'
[]
[]
[Postprocessors]
[fis_gas_generated]
type = ADElementIntegralMaterialProperty
mat_prop = gas_concentration_generated_total
[]
[fis_gas_released]
type = ADElementIntegralMaterialProperty
mat_prop = gas_concentration_release_total
[]
[fgr_percent]
type = FGRPercent
fission_gas_released = fis_gas_released
fission_gas_generated = fis_gas_generated
[]
[intrag_swelling]
type = ADElementIntegralMaterialProperty
mat_prop = deltav_v0_intra_total
[]
[gas_amount_bubble_intra]
type = ADElementIntegralMaterialProperty
mat_prop = gas_concentration_bubble_intra
[]
[gas_amount_bubble_inter]
type = ADElementIntegralMaterialProperty
mat_prop = gas_concentration_GB_bubble_volume
[]
[gas_amount_matrix_intra]
type = ADElementIntegralMaterialProperty
mat_prop = gas_concentration_matrix_intra
[]
[gas_amount_material]
type = SumPostprocessor
values = 'gas_amount_matrix_intra gas_amount_bubble_intra gas_amount_bubble_inter'
[]
[bubble_amount_intra]
type = ADElementIntegralMaterialProperty
mat_prop = bubble_concentration_intra
[]
[bubble_radius_intra_average]
type = ADElementAverageMaterialProperty
mat_prop = bubble_radius_intra
[]
[bubble_amount_volume_inter]
type = ADElementIntegralMaterialProperty
mat_prop = bubble_GB_volume_density
[]
[bubble_amount_surface_inter]
type = ADElementIntegralMaterialProperty
mat_prop = bubble_GB_surface_density
[]
[bubble_radius_inter_average]
type = ADElementAverageMaterialProperty
mat_prop = bubble_radius_GB
[]
[intergranular_bubble_fractional_coverage]
type = ADElementIntegralMaterialProperty
mat_prop = GBCoverage
[]
[intergranular_bubble_fractional_coverage_saturation]
type = ADElementIntegralMaterialProperty
mat_prop = sat_coverage
[]
[intergranular_swelling]
type = ADElementIntegralMaterialProperty
mat_prop = deltav_v0_bubble_GB
[]
[burnup]
type = ElementAverageValue
variable = burnup
[]
[temperature]
type = ElementAverageValue
variable = temperature
[]
[fission_rate]
type = ElementAverageValue
variable = fission_rate
[]
[]
[Outputs]
csv = true
[]
(test/tests/thermalMOX/ThermalMOX_porosity_function_test.i)
# The mesh is 2 1x1x1 cubes. The mesh density is of 1 interval per edge.
# The temperature is ramped on all faces of each cube from 500 K to 2000K,
# then back to 1500.
#
# Porosity is now defined using PorosityMOX, where porosity is initially
# 0.05 at 500K then decreases linearly to 0 at 1973K.
#
# The purpose of PorosityMOX is for porosity to be defined as a function of
# temperature, or a constant.
# Additionally, in the case when porosity is a funciton of temperature an
# annealing temperature is defined.
# When the annealing temperature is reached, the porosity remains constant
# (whatever the value of porosity is at the annealing temperature)
# regardless of subsequent values of temperature.
# For this test problem, the porosity should stay 0 after the annealing temperature
# is reached (1973K in this case).
#
# The fission rate is from 2e19 n/m3/s, so that the burnup is from 5 at.%
# at the end of the simulation.
# Unirradiated thermal conductivity of block 1 is calculated using Duriez
# model. Then Lucuta's corrections are applied to account for burnup effect.
# Unirradiated thermal conductivity of block 2 is calculated using Fink-Amaya
# model. Then Lucuta's corrections for burnup are applied. For block2, a Pu
# content of 7 wt.% is assumed in MOX.
#
#
# The thermal conductivity computed by BISON was picked up each 10 time
# steps for each block, and compared with analytical solution for both Duriez
# and Amaya's models.The results are the following:
# DURIEZ
# Temp (k) Bu (at. %) Porosity BISON k (W/m/K) analytical k (W/m/K)
# 700.172 0.999619 0.043205 3.39382 3.39383
# 900.344 1.99924 0.036411 2.81614 2.81614
# 1100.52 2.99886 0.029616 2.54114 2.54113
# 1300.69 3.99848 0.022821 2.25040 2.25039
# 1500.90 4.99810 0.016027 2.04159 2.04155
# 1700.70 5.99770 0.009244 1.92175 1.92174
# 1900.50 6.99730 0.002460 1.89503 1.89503
# 1999.60 7.49710 0.0 1.91083 1.91084
# 1898.60 7.99700 0.0 1.87649 1.87649
# 1696.70 8.99660 0.0 1.86866 1.86866
# 1500.00 9.99620 0.0 1.92874 1.92873
# AMAYA
# Temp (k) Bu (at. %) Porosity BISON k (W/m/K) analytical k (W/m/K)
# 700.172 0.999619 0.043205 3.40254 3.40255
# 900.344 1.99924 0.036411 2.86709 2.86710
# 1100.52 2.99886 0.029616 2.58204 2.58203
# 1300.69 3.99848 0.022821 2.25723 2.25723
# 1500.90 4.99810 0.016027 2.00470 2.00466
# 1700.70 5.99770 0.009244 1.83369 1.83368
# 1900.50 6.99730 0.002460 1.74515 1.74516
# 1999.60 7.49710 0.0 1.72517 1.72517
# 1898.60 7.99700 0.0 1.72872 1.72872
# 1696.70 8.99660 0.0 1.78418 1.78418
# 1500.00 9.99620 0.0 1.89409 1.89409
initial_fuel_density = 10431.0
[Mesh]
[mesh]
type = FileMeshGenerator
file = 2cubes.e
[]
[]
[Variables]
[T]
order = FIRST
family = LAGRANGE
initial_condition = 500 # set initial T to 500 K
[]
[]
[AuxVariables]
[porosity_var]
order = CONSTANT
family = MONOMIAL
block = '1 2'
[]
[fission_rate]
order = FIRST
family = LAGRANGE
block = '1 2'
[]
[burnup]
order = FIRST
family = LAGRANGE
block = '1 2'
[]
[th_cond]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = T
[]
[heat_ie]
type = HeatConductionTimeDerivative
variable = T
[]
[heat_source]
type = NeutronHeatSource
variable = T
block = '1 2'
energy_per_fission = 3.2e-11
fission_rate = fission_rate
[]
[]
[AuxKernels]
[porosity_aux]
type = MaterialRealAux
variable = porosity_var
property = porosity
[]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable= fission_rate
block = '1 2'
value = 2e19 # Standard fission_rate
execute_on = 'initial timestep_begin'
[]
[th_cond]
type = MaterialRealAux
variable = th_cond
property = thermal_conductivity
block = '1 2'
[]
[burnup]
type = BurnupAux
block = '1 2'
variable = burnup
density = ${initial_fuel_density}
fission_rate = fission_rate
execute_on = timestep_begin
[]
[]
[Functions]
[p_func]
type = PiecewiseLinear
x = '500 1973'
y = '0.05 0.0'
[]
[temp_ramp]
type = PiecewiseLinear
x = '0.0 5.81e7 7e7 8.72e7 11.6e7'
y = '500 1500 1000 2000 1500'
[]
[]
[BCs]
[VariableT]
type = FunctionDirichletBC
boundary = 3
variable = T
function = temp_ramp
[]
[]
[Materials]
[porosity]
type = PorosityMOX
block = '1 2'
temperature = T
porosity_temperature_function = p_func
# anneal_temp = 1973
[]
[fuel_thermal_Duriez]
type = MOXThermal
thermal_conductivity_model = DURIEZ
block = 1
temperature = T
porosity_material = true
burnup = burnup
# initial_porosity = 0.05
oxy_to_metal_ratio = 2.0
[]
[fuel_thermal_Amaya]
type = MOXThermal
thermal_conductivity_model = AMAYA
block = 2
temperature = T
porosity_material = true
burnup = burnup
# initial_porosity = 0.05
Pu_content = 0.07
[]
[density]
type = ParsedMaterial
block = '1 2'
property_name = density
expression = ${initial_fuel_density}
[]
[]
[Executioner]
type = Transient
solve_type = PJFNK
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart'
petsc_options_value = '101'
line_search = 'none'
l_max_its = 100
nl_max_its = 100
nl_rel_tol = 1e-4
nl_abs_tol = 1e-6
l_tol = 1e-5
start_time = 0.0
num_steps = 100
dt = 1.163e6
[]
[Outputs]
file_base = out_porosity_function
[exodus]
type = Exodus
[]
[]
(test/tests/fission_rate_LWR/LWR.i)
#The reason for this test is to determine if the fission rate is calculated correctly. The fission rate is a function of
#rod average linear power (function named power here) in W/m - calculated via function PiecewiseLinear and LinearInerpolation,
#the 2D axial power profile function (power factors as a function of axial position and time - calculated using the auxkernel FissionRateGeneral (LWR formulation) via the
#function PiecewiseBilinear and BilinearInterpolation, function named axial_power_factors here), pellet diameter (m), inner pellet diameter (m) if fuel is annular, f_fuel (fraction of total power),
#and fuel_volume_ratio (volume reduction factor due to pellet dishing i.e. if the pellet is not a right circular cylinder), and energy per fission.
#
#The mesh consists of 5 1x1x1 brick elements "stacked" in the y-direction. The y-coordinate of nodes is 0, 1, 2, 3, 4, or 5.
#The power is 1 for the duration...after a ramp from 0 to 1 during the first time step.
#The power factors for this test are in the file powerfactors.csv, which as the following format
#
#0.25,1.25,2.25,3.5,4.25,4.75
#0,0,0,0,0,0,0
#1,1,1,1,1,1,1
#2,.5,.75,2.5,2.5,.75,.5
#3,.5,.7,.3,.1,1,.1
#4,.2,.9,.8,.7,1,.9
#5,.2,.9,.8,.7,1,.25
#
#Where the first row is a list of the axial positions where the power factors are defined.
#After the first row, the first column is a list of the times where the power factors are defined.
#All the other numbers are the power factors defined at the given axial position and time.
#For a given power, pellet diameter, and reduction factors (all described previously) the fission rate is calculated for every node at every time.
#The file powerfactors.csv is used/read by PiecewiseBilinear, which sends a vector (x) of the axial position values,
#a vector (y) of the times, a ColumnMajorMatrix (z) of the powerfactors to BilinearInterpolation, and a sample point (position,time). The value returned
#is used in the fission rate calculation.
#
#An example:
#
#At time 2.25 and axial position z = 1 (node 20)...sample point = (1, 2.25), the value returned is 0.678125. You can check this value by hand using the data provided.
#
#For this test, the fission rate has the same value as the power factor (for this example 0.678125).
#This is by design to make it easy to determine if the fission rate is being calculated correctly.
#Look at the output file for this test and plot the fission rate at node 20 (z-coordinate = 1). At time = 2.25, the value should be 0.678125
#
[Mesh]
[mesh]
type = FileMeshGenerator
file = 1x5x1.e
[]
[]
[Variables]
[temp]
order = FIRST
family = LAGRANGE
initial_condition = 1373.15
[]
[]
[AuxVariables]
[fission_rate]
order = FIRST
family = LAGRANGE
[]
[]
[Functions]
[power]
type = PiecewiseLinear
data_file = power.csv
[]
[axial_power_factor]
type = PiecewiseBilinear
data_file = powerfactors.csv
axis = 1
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temp
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = 'LWR'
variable = fission_rate
rod_ave_lin_pow = power
axial_power_profile = axial_power_factor
pellet_diameter = 1.1283791671 #fake pellet diameter to give a value of 1 for Power/area
pellet_inner_diameter = 0
energy_per_fission = 1 #J/fission
[]
[]
[BCs]
[bottom_temp]
type = DirichletBC
variable = temp
boundary = 3
value = 1373.15
[]
[top_temp]
type = DirichletBC
variable = temp
boundary = 5
value = 1373.15
[]
[]
[Materials]
[thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 1.e4
specific_heat = 1.
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew '
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type'
petsc_options_value = '70 hypre boomeramg'
l_max_its = 60
nl_rel_tol = 1e-8
nl_abs_tol = 1e-10
l_tol = 1e-5
start_time = 0.0
dt = 0.25
num_steps = 21
[]
[Outputs]
exodus = true
[]
(test/tests/grain_radius_aux/grain_radius.i)
# Tests the GrainRadius aux kernel
# Starting from a user/model specified grain size (e.g 5 microns), the grain radius evolves through growth and stagnant (for decreasing temp.) phases as dictated by the following temperature transient.
[Mesh]
[mesh]
type = FileMeshGenerator
file = 1hex8_10mm_cube.e
[]
[]
[Functions]
[Temp_func]
type = PiecewiseLinear
x = '0. 2.0e+08 4.0e+08'
y = '1100. 1800. 600. '
[]
[Fiss_func]
type = ParsedFunction
expression = '1.0e19'
[]
[]
[Variables]
[temp]
order = FIRST
family = LAGRANGE
initial_condition = 1100.
[]
[]
[AuxVariables]
[fission_rate]
order = FIRST
family = LAGRANGE
[]
[grain_size]
order = FIRST
family = LAGRANGE
initial_condition = 5.0e-6
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temp
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
value = 1
fission_rate_function = Fiss_func
execute_on = 'initial timestep_begin'
[]
[grainsize]
type = GrainRadiusAux
variable = grain_size
temperature = temp
block = 1
[]
[]
[BCs]
[bottom_T]
type = FunctionDirichletBC
variable = temp
function = Temp_func
boundary = 1
[]
[]
[Materials]
[UO2]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 1.0
specific_heat = 1.0
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
l_tol = 1.0e-04
nl_abs_tol = 1.0e-08
nl_rel_tol = 1.0e-08
start_time = 0.
num_steps = 500
dt = 1.0e+06
end_time = 4.0e+08
[]
[Postprocessors]
[grainsize]
type = ElementalVariableValue
elementid = 0
variable = grain_size
[]
[temperature]
type = ElementalVariableValue
elementid = 0
variable = temp
[]
[]
[Outputs]
csv = true
[out]
type = Exodus
[]
[]
(test/tests/fgr_fraction/fgr_fraction_test_RZ.i)
# This test is for verificication of BurnupMetalAux and FgrFraction in 2D-RZ
#
# BurnupMetalAux calculates the burnup in FIMA from the fission rate, and fuel
# constituents:
#
# atomic_weight = (1-X_Pu-X_Zr)*A_U + X_Pu*A_Pu + X_Zr*A_Zr;
# atoms_heavy_metal = density / atomic_weight * (1.0 - X_Zr) * avo;
# Bu = fission_rate * time / atoms_heavy_metal;
#
# For the current test, the burnup at 1e7 seconds should be 1.468380e-02
#
#
# FgrFraction calculates the molar fission gas produced as a function of time
# and fission rate. In addition, FgrFraction calculates the fission gas release
# as a function of burnup.
#
# For the current test, the produced fission gas is:
#
# fg_prod = yield / avo * time * fission_rate * volume = 7.869449E+02
#
# Also, gas release should occur above the threshold of 0.01 burnup, and should
# be 80% of gas produced = 6.295559E+02
initial_fuel_density = 15000
[Mesh]
coord_type = RZ
[mesh]
type = GeneratedMeshGenerator
dim = 2
[]
[]
[Variables]
[temp]
[]
[]
[AuxVariables]
[fission_rate]
[]
[burnup]
[]
[]
[Functions]
[constant_fission_rate]
type = ParsedFunction
expression = 5.0e19
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temp
[]
[]
[AuxKernels]
[fission_rate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
fission_rate_function = constant_fission_rate
execute_on = initial
[]
[burnup]
type = BurnupMetalAux
variable = burnup
density = ${initial_fuel_density}
fission_rate = fission_rate
X_Pu = 0.10
X_Zr = 0.225
execute_on = 'initial timestep_begin'
[]
[]
[BCs]
[fix_surf_temp]
type = DirichletBC
variable = temp
boundary = left
value = 298.0
[]
[]
[Materials]
[thermal]
type = HeatConductionMaterial
thermal_conductivity = 1.0
specific_heat = 1.0
[]
[density]
type = ParsedMaterial
property_name = density
expression = ${initial_fuel_density}
[]
[fission_gas_release]
type = FgrFraction
fission_rate = fission_rate
burnup = burnup
fraction_fission_gas_release = 0.8
burnup_fgr = 0.01
[]
[]
[Executioner]
type = Transient
nl_abs_tol = 1e-10
num_steps = 5
dt = 2e6
[]
[Postprocessors]
[fission_rate]
type = ElementAverageValue
variable = fission_rate
execute_on = 'initial timestep_end'
[]
[burnup]
type = ElementAverageValue
variable = burnup
execute_on = 'initial timestep_end'
[]
[fis_gas_produced]
type = ElementIntegralMaterialProperty
mat_prop = fis_gas_prod
[]
[fis_gas_released]
type = ElementIntegralMaterialProperty
mat_prop = fis_gas_rel
[]
[volume]
type = InternalVolume
boundary = 'left right top bottom'
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
exodus = true
[]
(test/tests/uo2_thermal/Staicu/test.i)
# This test case is prepared to test the thermal conductivity using the Staicu model.
#
# The temperature is ramped on all BCs of the unit line from 500K to 3000K over 100 Ms.
# The fission rate is 2e19 n/m3/s, so that the burnup goes from 0 to
# ~ 8.6 at.% (82 MWd/kgU) at the end of the simulation.
#
initial_fuel_density = 10431.0
[GlobalParams]
order = FIRST
family = LAGRANGE
[]
[Mesh]
[geom]
type = GeneratedMeshGenerator
dim = 1
elem_type= EDGE2
[]
[]
[Variables]
[T]
initial_condition = 500
[]
[]
[AuxVariables]
[fission_rate]
[]
[burnup]
[]
[th_cond]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = T
[]
[heat_ie]
type = HeatConductionTimeDerivative
variable = T
[]
[heat_source]
type = NeutronHeatSource
variable = T
energy_per_fission = 3.2e-11
fission_rate = fission_rate
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable= fission_rate
value = 2e19 # Standard fission_rate fissions/m^3/s
execute_on = 'initial timestep_begin'
[]
[th_cond]
type = MaterialRealAux
variable = th_cond
property = thermal_conductivity
execute_on = 'initial linear'
[]
[burnup]
type = BurnupAux
variable = burnup
density = ${initial_fuel_density} # 95% TD
fission_rate = fission_rate
execute_on = timestep_begin
[]
[]
[Functions]
[temp_ramp]
type = PiecewiseLinear
x = '0.0 100.e6'
y = '500 3000'
[]
[]
[BCs]
[VariableT]
type = FunctionDirichletBC
boundary = 'left right'
variable = T
function = temp_ramp
[]
[]
[Materials]
[fuel_thermal]
type = UO2Thermal
temperature = T
burnup = burnup
thermal_conductivity_model = STAICU
oxy_to_metal_ratio = 2.0
initial_porosity = 0.05
Gd_content = 0.0
[]
[density]
type = ParsedMaterial
property_name = density
expression = ${initial_fuel_density}
[]
[]
[Executioner]
type = Transient
start_time = 0
num_steps = 100
dt = 1.0e6
[]
[Postprocessors]
[avg_th_cond]
type = ElementAverageValue
variable = th_cond
execute_on = 'initial timestep_end'
[]
[average_rod_burnup]
type = ElementAverageValue
variable = burnup
execute_on = timestep_end
[]
[average_fuel_T]
type = ElementAverageValue
variable = T
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
csv = true
[]
(test/tests/sifgrs/u3si2/intragranular.i)
# @Requirement F2.40
# This test is for evaluating the extended PolyPole-2 algorithm (for the intra-granular behavior calculation)
# in the U3Si2Sifgrs fission gas behavior model.
#
[Mesh]
[mesh]
type = GeneratedMeshGenerator
dim = 3
xmin = 0
xmax = 0.01
ymin = 0
ymax = 0.01
zmin = 0
zmax = 0.01
nx = 1
ny = 1
nz = 1
[]
[]
[Functions]
[Temp_func]
type = ParsedFunction
expression = '800'
[]
[Fiss_func]
type = ParsedFunction
expression = '1.e19'
[]
[]
[Variables]
[T]
order = FIRST
family = LAGRANGE
initial_condition = 800
[]
[]
[AuxVariables]
[fission_rate]
order = FIRST
family = LAGRANGE
[]
[rad_bbl_grn]
order = CONSTANT
family = MONOMIAL
[]
[bbl_grn_3]
order = CONSTANT
family = MONOMIAL
[]
[gas_bbl_grn]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = T
diffusion_coefficient = 1
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
value = 1
fission_rate_function = Fiss_func
execute_on = 'initial timestep_begin'
[]
[bbl_cnc]
type = MaterialRealAux
variable = bbl_grn_3
property = bubble_concentration_intra
[]
[rad_bbl]
type = MaterialRealAux
variable = rad_bbl_grn
property = bubble_radius_intra
[]
[gascnc_bbl]
type = MaterialRealAux
variable = gas_bbl_grn
property = gas_concentration_bubble_intra
[]
[]
[BCs]
[bottom_T]
type = FunctionDirichletBC
variable = T
function = Temp_func
boundary = bottom
[]
[]
[Materials]
[fission_gas_behavior]
type = U3Si2Sifgrs
block = 0
skip_bdr_model = true
temperature = T
fission_rate = fission_rate
grain_radius_const = 28.e-6
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
l_tol = 1e-4
nl_abs_tol = 1e-5
nl_rel_tol = 1e-5
start_time = 0.0
num_steps = 50
dt = 1e3
[]
[Postprocessors]
[fis_gas_generated]
type = ElementIntegralFisGasGeneratedSifgrs
block = 0
[]
[fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = 0
[]
[]
[Outputs]
exodus = true
[]
(test/tests/thermalFastMOX/test1.i)
# The mesh is a 1x1x1 cube (single element).
# The temperature is ramped on all faces of each cube from 500 K to 1500K.
# The fission rate is from 2e19 n/m3/s, so that the burnup is from 5 at.%
# at the end of the simulation.
# Thermal conductivity is computed using FastMOXThermal material model
# with a oxygen to metal ratio of 2.0
#
#
# The thermal conductivity computed by BISON was picked up each 10 time
# steps for each block, and compared with analytical solution
# The results are the following:
#
# Temp (k) Bu (at. %) BISON k (W/m/K) analytical k (W/m/K)
# 700.172 0.999619 3.40129 3.40129
# 900.344 1.99924 2.86762 2.86762
# 1100.52 2.99886 2.59972 2.59971
# 1300.69 3.99848 2.29508 2.29508
# 1500.00 4.99810 2.06107 2.06107
initial_fuel_density = 10431.0
[Mesh]
[mesh]
type = FileMeshGenerator
file = 1x1x1cube.e
[]
[]
[Variables]
[T]
order = FIRST
family = LAGRANGE
initial_condition = 500 # set initial T to 500 K
[]
[]
[AuxVariables]
[fission_rate]
order = FIRST
family = LAGRANGE
block = 1
[]
[burnup]
order = FIRST
family = LAGRANGE
block = 1
[]
[th_cond]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = T
[]
[heat_ie]
type = HeatConductionTimeDerivative
variable = T
[]
[heat_source]
type = NeutronHeatSource
variable = T
block = 1
energy_per_fission = 3.2e-11
fission_rate = fission_rate
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable= fission_rate
block = 1
value = 2e19 # Standard fission_rate
execute_on = 'initial timestep_begin'
[]
[th_cond]
type = MaterialRealAux
variable = th_cond
property = thermal_conductivity
block = 1
[]
[burnup]
type = BurnupAux
block = 1
variable = burnup
density = ${initial_fuel_density}
fission_rate = fission_rate
execute_on = timestep_begin
[]
[]
[Functions]
[temp_ramp]
type = PiecewiseLinear
x = '0.0 5.81e7'
y = '500 1500'
[]
[]
[BCs]
[VariableT]
type = FunctionDirichletBC
boundary = 2 # All cube faces
variable = T
function = temp_ramp
[]
[]
[Materials]
[thermal_properties]
type = FastMOXThermal
block = 1
temperature = T
burnup = burnup
initial_porosity = 0.05
[]
[density]
type = ParsedMaterial
block = 1
property_name = density
expression = ${initial_fuel_density}
[]
[]
[Executioner]
type = Transient
solve_type = PJFNK
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart'
petsc_options_value = '101'
line_search = 'none'
l_max_its = 100
nl_max_its = 100
nl_rel_tol = 1e-4
nl_abs_tol = 1e-6
l_tol = 1e-5
start_time = 0.0
num_steps = 50
dt = 1.163e6
[]
[Outputs]
file_base = out
[exodus]
type = Exodus
[]
[]
(test/tests/fission_rate_from_power_density/power_density.i)
[Mesh]
[mesh]
type = FileMeshGenerator
file = rectangle.e
[]
[]
[Variables]
[temp]
order = FIRST
family = LAGRANGE
initial_condition = 500.0
[]
[]
[AuxVariables]
[fission_rate]
order = FIRST
family = LAGRANGE
[]
[]
[Functions]
[powerhistory]
type = PiecewiseLinear
data_file = powerhistory.csv
[]
[axial_power_factor]
type = PiecewiseBilinear
data_file = powerfactors.csv
axis = 1
[]
[powerdensity]
type = CompositeFunction
functions = 'powerhistory axial_power_factor'
scale_factor = 5e+8
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temp
[]
[heat_source]
type = NeutronHeatSource
variable = temp
energy_per_fission = 3.2e-11
fission_rate = fission_rate
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
variable = fission_rate
power_density_function = powerdensity
energy_per_fission = 3.2e-11
fission_rate_formulation = 'POWER_DENSITY'
[]
[]
[BCs]
[side_temp]
type = DirichletBC
variable = temp
boundary = 1
value = 500.0
[]
[]
[Materials]
[thermal]
type = HeatConductionMaterial
block = 1
thermal_conductivity = 5.0
specific_heat = 1.
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew '
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_hypre_type'
petsc_options_value = '70 hypre boomeramg'
l_max_its = 60
nl_rel_tol = 1e-10
nl_abs_tol = 1e-10
l_tol = 1e-5
start_time = 0.0
end_time = 5.0
dt = 0.25
num_steps = 21
[]
[Outputs]
exodus = true
[]
(test/tests/thermalUO2/thermalUO2_new_test.i)
# The mesh is a 1x1x1 cube (single element).
# The temperature is ramped on all faces of each cube from 500 K to 1500K.
# The fission rate is from 2e19 n/m3/s, so that the burnup is from 5 at.%
# at the end of the simulation.
# Thermal conductivity is computed using ThermalUO2 material model.
#
#
# The thermal conductivity computed by BISON was picked up each 10 time
# steps for each block, and compared with analytical solution
# The results are the following:
#
# Temp (k) Bu (at. %) BISON k (W/m/K) analytical k (W/m/K)
# 700.172 0.999619 3.76750 3.76765
# 900.344 1.99924 3.11527 3.11527
# 1100.52 2.99886 2.75603 2.75603
# 1300.69 3.99848 2.36929 2.36929
# 1500.00 4.99810 2.07300 2.07300
#
[Mesh]
[mesh]
type = FileMeshGenerator
file = 1x1x1cube.e
[]
[]
[Variables]
[T]
order = FIRST
family = LAGRANGE
initial_condition = 500 # set initial T to 500 K
[]
[]
[AuxVariables]
[fission_rate]
order = FIRST
family = LAGRANGE
block = 1
[]
[burnup]
order = FIRST
family = LAGRANGE
block = 1
[]
[th_cond]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = T
[]
[heat_ie]
type = HeatConductionTimeDerivative
variable = T
[]
[heat_source]
type = NeutronHeatSource
variable = T
block = 1
energy_per_fission = 3.2e-11
fission_rate = fission_rate
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable= fission_rate
block = 1
value = 2e19 # Standard fission_rate
execute_on = 'initial timestep_begin'
[]
[th_cond]
type = MaterialRealAux
variable = th_cond
property = thermal_conductivity
block = 1
execute_on = linear
[]
[burnup]
type = BurnupAux
block = 1
variable = burnup
density = 10431.0
fission_rate = fission_rate
execute_on = timestep_begin
[]
[]
[Functions]
[temp_ramp]
type = PiecewiseLinear
x = '0.0 5.81e7'
y = '500 1500'
[]
[]
[BCs]
[VariableT]
type = FunctionDirichletBC
boundary = 2 # All cube faces
variable = T
function = temp_ramp
[]
[]
[Materials]
[fuel_thermalUO2]
type = UO2Thermal
block = 1
thermal_conductivity_model = FINK_LUCUTA
temperature = T
burnup = burnup
initial_porosity = 0.05
[]
[density]
type = ParsedMaterial
block = 1
property_name = density
expression = 10431.0
[]
[]
[Executioner]
type = Transient
solve_type = PJFNK
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-ksp_gmres_restart'
petsc_options_value = '101'
line_search = 'none'
l_max_its = 100
nl_max_its = 100
nl_rel_tol = 1e-4
nl_abs_tol = 1e-6
l_tol = 1e-5
start_time = 0.0
num_steps = 50
dt = 1.163e6
[]
[Outputs]
file_base = out_new
[exodus]
type = Exodus
[]
[]
(test/tests/sifgrs/uo2/percolation_xfem.i)
# This is to test gas release through elements that are cut by XFEM. A 2D domain is
# used and the LineSegmentCutUserObject is used to insert a crack from the right edge
# of the domain inward toward the left edge. Because of the boundary conditions on temperature,
# gas would not normally be released to the free surface on the left side, but
# with the crack present gas release occurs.
[GlobalParams]
density = 10970
order = FIRST
family = LAGRANGE
energy_per_fission = 3.2e-11
[]
[Mesh]
[mesh]
type = GeneratedMeshGenerator
dim = 2
xmin = 0
xmax = 0.005
ymin = 0
ymax = 0.005
nx = 5
ny = 5
[]
[create_block2]
type = RenameBlockGenerator
input = mesh
old_block = 0
new_block = 2
[]
[free1]
type = SideSetsAroundSubdomainGenerator
new_boundary = free1
normal = '1 0 0'
block = 2
input = create_block2
[]
[subdomain1]
type = SubdomainBoundingBoxGenerator
bottom_left = '0 0 0'
top_right = '0.005 0.005 0'
block_id = 2
input = free1
[]
[]
#Create a notch in the mesh using XFEM
[XFEM]
qrule = volfrac
output_cut_plane = true
[]
[UserObjects]
[line_seg_cut_uo]
type = LineSegmentCutUserObject
cut_data = '0.005 0.0025 0.001 0.0025'
time_start_cut = 0.0
time_end_cut = 0.0
[]
[]
[Variables]
[temp]
initial_condition = 673.
[]
[]
[AuxVariables]
[grain_radius]
block = 2
initial_condition = 5.e-06
[]
[gas_gen_3]
order = CONSTANT
family = MONOMIAL
block = 2
[]
[GBCoverage]
order = CONSTANT
family = MONOMIAL
[]
[thermal_conductivity]
order = CONSTANT
family = MONOMIAL
block = 2
[]
[burnup]
block = 2
[]
[fission_rate]
block = 2
[]
# percolation variables
[open_coverage]
order = CONSTANT
family = MONOMIAL
[]
[open_threshold]
order = CONSTANT
family = MONOMIAL
[]
[open]
order = CONSTANT
family = MONOMIAL
[]
[cluster]
order = CONSTANT
family = MONOMIAL
[]
[percolated]
order = CONSTANT
family = MONOMIAL
[]
[]
# Define functions to control power and boundary conditions
[Functions]
[power_history]
type = PiecewiseLinear
x = '0. 10800. 1.0e+8'
y = '0. 25. 25. '
scale_factor = 1000.
[]
[pressure_ramp]
type = PiecewiseLinear
x = '0. 1.0e+8'
y = '25. 25.'
scale_factor = 1.0e+6
[]
[]
[Kernels]
[heat] # gradient term in heat conduction equation
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 # coupling to the fission_rate aux variable
[]
[]
# Define auxilliary kernels for each of the aux variables
[AuxKernels]
[fggen]
type = MaterialRealAux
variable = gas_gen_3
property = gas_concentration_generated_total
[]
[fractcov]
type = MaterialRealAux
variable = GBCoverage
property = GBCoverage
block = 2
[]
[fuel_conductivity]
type = MaterialRealAux
variable = thermal_conductivity
property = thermal_conductivity
[]
[brnp]
type = BurnupAux
variable = burnup
block = 2
fission_rate = fission_rate
molecular_weight = 0.270
[]
[frate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
block = 2
value = 5.e+14
fission_rate_function = power_history
[]
# percolation auxkernels
[open_coverage]
type = MaterialRealAux
variable = open_coverage
property = GBCoverage
[]
[open_threshold]
type = MaterialRealAux
variable = open_threshold
property = 0.3 #GB coverage at which trijunction network is percolated
[]
[open]
type = ParsedAux
variable = open
coupled_variables = 'open_coverage open_threshold'
expression = 'open_coverage-open_threshold'
[]
[cluster]
type = FeatureFloodCountAux
variable = cluster
execute_on = 'timestep_begin'
field_display = UNIQUE_REGION
flood_counter = percolate
[]
[percolated]
type = PercolationAux
variable = percolated
execute_on = 'timestep_begin'
percolation = percolate
[]
[]
# Define boundary conditions
[BCs]
[imposed_ext_temp]
type = DirichletBC
boundary = right
variable = temp
value = 673.
[]
# insulate the top and bottom of this pellet
[top_pellet]
variable = temp
value = 0.
type = NeumannBC
boundary = top
[]
[bottom_pellet]
variable = temp
value = 0.
type = NeumannBC
boundary = bottom
[]
[left_pellet]
variable = temp
value = 0.
type = NeumannBC
boundary = left
[]
[]
# Define material behavior models and input material property data
[Materials]
[fuel_thermal]
type = HeatConductionMaterial
block = 2
thermal_conductivity = 3.
specific_heat = 400.
[]
[fuel_density]
type = ParsedMaterial
block = 2
property_name = density
expression = 10970
[]
[fission_gas_release_and_swelling]
type = UO2Sifgrs
block = 2
diff_coeff_option = TURNBULL_D1_D2
transient_option = MICROCRACKING
res_param_option = HETEROGENEOUS_WHITE
temperature = temp
fission_rate = fission_rate
burnup = burnup
initial_porosity = 0.
percolation_to_surface = percolated
[]
[]
[Dampers]
[limitT]
type = MaxIncrement
max_increment = 50.
variable = temp
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-ksp_gmres_modifiedgramschmidt'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_composite_pcs -sub_0_pc_hypre_type -sub_0_pc_hypre_boomeramg_max_iter -sub_0_pc_hypre_boomeramg_grid_sweeps_all -sub_1_sub_pc_type -pc_composite_type -ksp_type -mat_mffd_type'
petsc_options_value = '201 composite hypre,asm boomeramg 2 2 lu multiplicative fgmres ds'
line_search = 'none'
# controls for linear iterations
l_max_its = 100
l_tol = 1.0e-06
# controls for nonlinear iterations
nl_max_its = 10
nl_rel_tol = 1.0e-4
nl_abs_tol = 1.0e-8
# time control
start_time = 0.
end_time = 1.0e+8
num_steps = 5000
dtmax = 1.0e+06
dtmin = 1.0
[TimeStepper]
type = IterationAdaptiveDT
dt = 1.0
timestep_limiting_function = power_history
max_function_change = 3000.
force_step_every_function_point = true
[]
[Quadrature]
order = THIRD
[]
[]
[UserObjects]
[percolate]
type = PercolationUserObject
execute_on = 'timestep_begin'
boundaries = 'free1'
variable = open
threshold = 0.0
use_xfem = true
[]
[]
# Define postprocessors (some are required as specified above; others are optional; many others are available)
[Postprocessors]
[ave_burnup_EAV]
type = ElementAverageValue
block = 2
variable = burnup
[]
[fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = 2
[]
[]
# Define output file(s)
[Outputs]
time_step_interval = 1
csv = true
exodus = true
color = true
print_linear_residuals = true
[console]
type = Console
max_rows = 25
output_linear = true
[]
[]
(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/sifgrs/uo2/polypole1_intergranular.i)
# This input is used to test Sifgrs for UO2 with polypole1 and the intergranular model
[Mesh]
[gen]
type = GeneratedMeshGenerator
dim = 1
[]
[]
[Functions]
[temperature_function]
type = ParsedFunction
expression = '1700'
[]
[fission_rate_function]
type = ParsedFunction
expression = '2.5e19'
[]
[]
[Variables]
[temperature]
initial_condition = 1700
[]
[]
[AuxVariables]
[fission_rate]
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temperature
diffusion_coefficient = 1
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
value = 1
fission_rate_function = fission_rate_function
execute_on = 'initial timestep_begin'
[]
[]
[BCs]
[bottom_temperature]
type = FunctionDirichletBC
variable = temperature
function = temperature_function
boundary = 1
[]
[]
[Materials]
[fission_gas_behavior]
type = UO2Sifgrs
temperature = temperature
fission_rate = fission_rate
testing_output = true
ig_diff_algorithm = POLYPOLE1
output_properties = 'bubble_concentration_intra bubble_radius_intra gas_concentration_bubble_intra gas_concentraion_matrix_intra deltav_v0_intra_total fract_FGR_analytical'
outputs = 'all'
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
l_tol = 1e-12
nl_abs_tol = 5e-16
nl_rel_tol = 1e-17
end_time = 3e8
dt = 5e5
[]
[Postprocessors]
[fis_gas_generated]
type = ElementIntegralMaterialProperty
mat_prop = gas_concentration_generated_total
[]
[fis_gas_released]
type = ElementIntegralMaterialProperty
mat_prop = gas_concentration_release_total
[]
[fgr_percent]
type = FGRPercent
fission_gas_released = fis_gas_released
fission_gas_generated = fis_gas_generated
[]
[intrag_swelling]
type = ElementIntegralMaterialProperty
mat_prop = deltav_v0_intra_total
[]
[gas_amount_bubble_intra]
type = ElementIntegralMaterialProperty
mat_prop = gas_concentration_bubble_intra
[]
[gas_amount_matrix_intra]
type = ElementIntegralMaterialProperty
mat_prop = gas_concentration_matrix_intra
[]
[bubble_amount_intra]
type = ElementIntegralMaterialProperty
mat_prop = bubble_concentration_intra
[]
[bubble_radius_intra_average]
type = ElementAverageMaterialProperty
mat_prop = bubble_radius_intra
[]
[bubble_GB_surface_density]
type = ElementAverageMaterialProperty
mat_prop = bubble_GB_surface_density
[]
[bubble_GB_volume_density]
type = ElementAverageMaterialProperty
mat_prop = bubble_GB_volume_density
[]
[bubble_GB_projected_area]
type = ElementAverageMaterialProperty
mat_prop = bubble_GB_projected_area
[]
[gas_amount_bubble_GB_volume]
type = ElementIntegralMaterialProperty
mat_prop = gas_concentration_GB_bubble_volume
[]
[gas_concentration_thermal_release_volume]
type = ElementAverageMaterialProperty
mat_prop = gas_concentration_thermal_release_volume
[]
[gas_concentration_thermal_release_surface]
type = ElementAverageMaterialProperty
mat_prop = gas_concentration_thermal_release_surface
[]
[temperature]
type = ElementAverageValue
variable = temperature
[]
[fission_rate]
type = ElementAverageValue
variable = fission_rate
[]
[]
[Outputs]
exodus = true
csv = true
[]
(test/tests/uo2_thermal/Halden/ad_test.i)
# This test case is prepared to test the thermal conductivity using the Halden model.
#
# The temperature is ramped on all BCs of the unit line from 500 K to 3000K over 100 Ms.
# The fission rate is 2e19 n/m3/s, so that the burnup goes from 0 to
# ~ 8.6 at.% (82 MWd/kgU) at the end of the simulation.
#
# Thermal conductivity of UO2 fuel at 95%TD is computed using the Halden UO2 thermal conductivity model.
# The BISON predictions (BISON_k) compared to the expected results (expected_k)
# are summarized (see: post_processing.py --> comparison_results.csv) as:
#
# expected_k BISON_k percent_error expected_Pu_k BISON_Pu_k percent_error_Pu
# 5.869784658 5.869784658 -7.55E-13 5.401819451 5.401819451 -1.55E-13
# 5.580864694 5.580864694 5.22E-13 5.136090924 5.136090924 3.77E-13
# 5.320199198 5.320199198 -7.11E-13 4.896360254 4.896360254 9.77E-13
# 5.083868147 5.083868147 -6.88E-13 4.6790212 4.6790212 -1.04E-12
# 4.868646629 4.868646629 2.00E-13 4.481107031 4.481107031 5.33E-13
[GlobalParams]
order = FIRST
family = LAGRANGE
[]
[Mesh]
[geom]
type = GeneratedMeshGenerator
dim = 1
elem_type= EDGE2
[]
[]
[Variables]
[T]
initial_condition = 500
[]
[]
[AuxVariables]
[fission_rate]
[]
[burnup]
[]
[th_cond]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[heat]
type = ADHeatConduction
variable = T
[]
[heat_ie]
type = ADHeatConductionTimeDerivative
variable = T
[]
[heat_source]
type = ADNeutronHeatSource
variable = T
energy_per_fission = 3.2e-11
fission_rate = fission_rate
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable= fission_rate
value = 2e19 # Standard fission_rate fissions/m^3/s
execute_on = 'initial timestep_begin'
[]
[th_cond]
type = ADMaterialRealAux
variable = th_cond
property = thermal_conductivity
execute_on = 'initial linear'
[]
[burnup]
type = ADBurnupAux
variable = burnup
density = 10431.0 # 95% TD
fission_rate = fission_rate
execute_on = timestep_begin
[]
[]
[Functions]
[temp_ramp]
type = PiecewiseLinear
x = '0.0 100.e6'
y = '500 3000'
[]
[]
[BCs]
[VariableT]
type = ADFunctionDirichletBC
boundary = 'left right'
variable = T
function = temp_ramp
[]
[]
[Materials]
[fuel_thermal]
type = ADUO2Thermal
temperature = T
burnup = burnup
thermal_conductivity_model = HALDEN
oxy_to_metal_ratio = 2.0
initial_porosity = 0.05
Gd_content = 0.0
[]
[density]
type = ADParsedMaterial
property_name = density
expression = 10431.0
[]
[]
[Executioner]
type = Transient
start_time = 0
num_steps = 100
dt = 1.0e6
[]
[Postprocessors]
[avg_th_cond]
type = ElementAverageValue
variable = th_cond
execute_on = 'initial timestep_end'
[]
[average_rod_burnup]
type = ElementAverageValue
variable = burnup
execute_on = timestep_end
[]
[average_fuel_T]
type = ElementAverageValue
variable = T
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
csv = true
[]
(test/tests/sifgrs/uo2/pbz_negative_temperature_exception.i)
# This test ensures that the moose exception to cut the timestep when a
# negative temperature is detected in PelletBrittleZone is properly executed.
[Mesh]
[square]
type = GeneratedMeshGenerator
dim = 2
[]
[]
[Functions]
[temperature_func]
type = PiecewiseLinear
x = '0 2'
y = '300 -100.0'
[]
[Fiss_func]
type = ConstantFunction
value = 1e19
[]
[]
[Variables]
[T]
order = FIRST
family = LAGRANGE
initial_condition = 800.0
[]
[]
[AuxVariables]
[fission_rate]
order = FIRST
family = LAGRANGE
[]
[pellet_id]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = T
diffusion_coefficient = 1
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
value = 1
fission_rate_function = Fiss_func
execute_on = 'initial timestep_begin'
[]
[pelletid]
type = PelletIdAux
variable = pellet_id
a_lower = 0
a_upper = 1
number_pellets = 1
execute_on = initial
[]
[]
[BCs]
[all_T]
type = FunctionDirichletBC
variable = T
function = temperature_func
boundary = 'bottom right left top'
[]
[]
[Materials]
[fission_gas_release]
type = UO2Sifgrs
temperature = T
fission_rate = fission_rate
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
start_time = 0.0
num_steps = 2
dt = 2
[]
[Postprocessors]
[dt]
type = TimestepSize
[]
[]
[UserObjects]
[terminator]
type = Terminator
expression = 'dt = 1'
[]
[pbz]
type = PelletBrittleZone
pellet_id = pellet_id
temperature = T
pellet_radius = 1
a_lower = 0
a_upper = 1
number_pellets = 1
execute_on = 'initial linear'
[]
[]
[Outputs]
csv = true
[]
(assessment/MOX/JOYO/B14/PTM001/analysis/b14_ptm001_1D_sample1.i)
# Sample at +33 mm from the midplane
initial_fuel_density = 11057.75
[GlobalParams]
density = ${initial_fuel_density}
family = LAGRANGE
energy_per_fission = 3.2e-11 # J/fission
[]
[Mesh]
coord_type = RZ
[layered1D_mesh]
type = Layered1DMeshGenerator
fuel_height = 10e-3
pellet_outer_radius = 0.0027
pellet_bottom_coor = 0.0
pellet_mesh_density = customize
nx_p = 200
elem_type = EDGE2
slices_per_block = 1
include_plenum = false
include_clad = false
[]
[]
[UserObjects]
[pin_geometry]
type = Layered1DFuelPinGeometry
include_clad = false
mesh_generator = layered1D_mesh
[]
[]
[Variables]
[temp]
initial_condition = 295.0
[]
[pore]
initial_condition = 0.1372
scaling = 1e14
block = fuel
[]
[]
[AuxVariables]
[fission_rate]
[]
[burnup]
[]
[pore_speed_aux]
order = constant
family = monomial
[]
[]
[Functions]
[power_history]
type = PiecewiseLinear
x = '-200 0 72000 158040 160200 246600 248400 249000.012 251280'
y = '0 0 39137.6 39137.6 43536.4 43536.4 53010.6 53010.6 0'
[]
[f_temp_out_fuel]
type = PiecewiseLinear
x = '-200 0 251280'
y = '295 295 1156'
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temp
[]
[heat_ie]
type = HeatConductionTimeDerivative
variable = temp
[]
[heat_source]
type = NeutronHeatSource
variable = temp
fission_rate = fission_rate
[]
[pore_continuity]
type = MOXPoreContinuity
variable = pore
temperature = temp
debug = 0
alpha = 0.25
beta = 1
heating_function = power_history
block = fuel
[]
[pore_diffusion]
type = MOXPoreDiffusion
variable = pore
debug = 0
nu = 1e-12
heating_function = power_history
v_upper = 1e-12
v_lower = 1e-20
block = fuel
[]
[poretimederivative]
type = CoefTimeDerivative
variable = pore
Coefficient = 1
block = fuel
[]
[]
[AuxKernels]
[pore_speed_aux]
type = MaterialRealAux
variable = pore_speed_aux
property = pore_velocity
block = fuel
execute_on = 'initial timestep_end'
[]
[fission_rate]
type = FissionRateGeneral
fission_rate_formulation = MOX
variable = fission_rate
block = fuel
initial_porosity = 0.1372
rod_ave_lin_pow = power_history
pellet_diameter = 0.0054
execute_on = timestep_begin
porosity = pore
energy_per_fission = 3.2e-11
[]
[burnup]
type = BurnupAux
block = fuel
fission_rate = fission_rate
variable = burnup
execute_on = timestep_begin
[]
[]
[BCs]
[temp_fuel_outside]
type = FunctionDirichletBC
variable = temp
function = f_temp_out_fuel
boundary = 10
[]
[]
[Materials]
[fuel_thermal]
type = MAMOXThermal
temperature = temp
porosity = pore
block = fuel
Am_content = 0.0237
oxy_to_metal_ratio = 1.982
[]
[fuel_density]
type = ParsedMaterial
block = fuel
property_name = density
expression = ${initial_fuel_density}
[]
[pore_velocity]
type = MOXPoreVelocity
temperature = temp
limit = 1e-3
scale_factor = 0.1
block = fuel
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Dampers]
[bound]
type = BoundingValueNodalDamper
max_value = 1
min_value = 0
variable = pore
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -sub_pc_type'
petsc_options_value = 'asm lu'
line_search = 'none'
l_max_its = 50
l_tol = 8e-3
nl_max_its = 50
nl_rel_tol = 1e-5
nl_abs_tol = 1e-5
start_time = -200
n_startup_steps = 1
end_time = 251280
dtmax = 10000
dtmin = 0.25
[TimeStepper]
type = IterationAdaptiveDT
dt = 1e1
optimal_iterations = 15
iteration_window = 2
linear_iteration_ratio = 100
growth_factor = 2
cutback_factor = .5
force_step_every_function_point = true
timestep_limiting_function = power_history
[]
[]
[Postprocessors]
[ave_temp_interior]
type = ElementAverageValue
variable = temp
execute_on = 'initial linear'
[]
[average_burnup]
type = ElementAverageValue
variable = burnup
[]
[ave_pore]
type = ElementAverageValue
block = fuel
variable = pore
[]
[max_pore]
type = NodalExtremeValue
block = fuel
value_type = max
variable = pore
[]
[min_pore]
type = NodalExtremeValue
block = fuel
value_type = min
variable = pore
[]
[max_pore_speed]
type = ElementExtremeValue
block = fuel
value_type = max
variable = pore_speed_aux
[]
[rod_total_power]
type = LayeredElementIntegralPowerPostprocessor
variable = temp
fission_rate = fission_rate
block = fuel
fuel_pin_geometry = pin_geometry
[]
[rod_input_power]
type = FunctionValuePostprocessor
function = power_history
scale_factor = 10e-3 # rod height
[]
[]
[VectorPostprocessors]
[fuel_radial_temperature_Sample]
type = LineValueSampler
variable = temp
start_point = '0.0 0.005 0.0'
end_point = '0.0027 0.005 0.0'
num_points = 200
execute_on = final
sort_by = x
outputs = line_plot
[]
[radial_porosity_Sample]
type = LineValueSampler
variable = pore
start_point = '0.0 0.005 0.0'
end_point = '0.0027 0.005 0.0'
num_points = 200
execute_on = final
sort_by = x
outputs = line_plot
[]
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = true
color = true
csv = true
[console]
type = Console
max_rows = 25
[]
[line_plot]
type = CSV
execute_on = 'FINAL'
time_step_interval = 1
file_base = 1d
create_final_symlink = true
[]
[chkfile]
type = CSV
execute_on = FINAL
show = 'ave_temp_interior max_pore'
[]
[]
[Debug]
show_var_residual_norms = true
[]
(test/tests/uo2_thermal/NFImod/ad_test.i)
# This test case is prepared to test the thermal conductivity using the Modified NFI model.
#
# The temperature is ramped on all BCs of the unit line from 500 K to 3000K over 100 Ms.
# The fission rate is 2e19 n/m3/s, so that the burnup goes from 0 to
# ~ 8.6 at.% (82 MWd/kgU) at the end of the simulation.
#
# Thermal conductivity of UO2 fuel at 95%TD is computed using the NFI modified thermal conductivity model.
# The BISON predictions (BISON_k) compared to the expected results (expected_k)
# are summarized (see: post_processing.py --> comparison_results.csv) as:
#
# expected_k BISON_k percent_error
# 5.945042197 5.945042197 -8.22E-13
# 5.540045922 5.540045922 -8.44E-13
# 5.252710693 5.252710693 6.77E-13
# 4.995710341 4.995710341 -8.66E-13
# 4.763281724 4.763281724 8.88E-14
[GlobalParams]
order = FIRST
family = LAGRANGE
[]
[Mesh]
[geom]
type = GeneratedMeshGenerator
dim = 1
elem_type= EDGE2
[]
[]
[Variables]
[T]
initial_condition = 500
[]
[]
[AuxVariables]
[fission_rate]
[]
[burnup]
[]
[th_cond]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[heat]
type = ADHeatConduction
variable = T
[]
[heat_ie]
type = ADHeatConductionTimeDerivative
variable = T
[]
[heat_source]
type = ADNeutronHeatSource
variable = T
energy_per_fission = 3.2e-11
fission_rate = fission_rate
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable= fission_rate
value = 2e19 # Standard fission_rate n/m^3/s
execute_on = 'initial timestep_begin'
[]
[th_cond]
type = ADMaterialRealAux
variable = th_cond
property = thermal_conductivity
execute_on = 'initial linear'
[]
[burnup]
type = ADBurnupAux
variable = burnup
density = 10431.0 # 95% TD
fission_rate = fission_rate
execute_on = timestep_begin
[]
[]
[Functions]
[temp_ramp]
type = PiecewiseLinear
x = '0.0 100.e6'
y = '500 3000'
[]
[]
[BCs]
[VariableT]
type = ADFunctionDirichletBC
boundary = 'left right'
variable = T
function = temp_ramp
[]
[]
[Materials]
[fuel_thermalUO2]
type = ADUO2Thermal
temperature = T
burnup = burnup
thermal_conductivity_model = MODIFIED_NFI
Gd_content = 0.00
initial_porosity = 0.05
oxy_to_metal_ratio = 2.0
[]
[density]
type = ADParsedMaterial
property_name = density
expression = 10431.0
[]
[]
[Executioner]
type = Transient
start_time = 0
num_steps = 100
dt = 1.0e6
[]
[Postprocessors]
[avg_th_cond]
type = ElementAverageValue
variable = th_cond
execute_on = 'initial timestep_end'
[]
[average_rod_burnup]
type = ElementAverageValue
variable = burnup
execute_on = timestep_end
[]
[average_fuel_T]
type = ElementAverageValue
variable = T
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
csv = true
[]
(test/tests/sifgrs/uo2/ad_second_stage.i)
# @Requirement F2.40
# This test is for evaluating the second stage of the FGR process in the Sifgrs fission gas behavior model. The second stage involves the calculation of the gas behavior at grain boundaries and release to the fuel rod free volume.
# UO2Sifgrs calculates the grain-boundary gas bubble kinetics, including bubble growth and coalescence driven by gas atoms and vacancies inflow at the bubbles, and release of a fraction of the grain-boundary gas after grain-boundary saturation. The saturation condition reads Fc = 0.5, with Fc being the fractional coverage of grain boundary surface by bubbles.
# This test is aimed at demonstrating how FGR commences upon attainment of the saturation condition (which occurs for this case after 8E+06 s), and how the saturation condition Fc = 0.5 is maintained from that moment on (see also attached file regression_tests_sifgrs.xlsx).
[Mesh]
[mesh]
type = FileMeshGenerator
file = 1hex8_10mm_cube.e
[]
[]
[Functions]
[Temp_func]
type = ParsedFunction
expression = '1400'
[]
[Fiss_func]
type = ParsedFunction
expression = '1.e19'
[]
[]
[Variables]
[T]
initial_condition = 1400
[]
[]
[AuxVariables]
[fission_rate]
[]
[GBCoverage]
order = CONSTANT
family = MONOMIAL
[]
[]
[Kernels]
[heat]
type = ADHeatConduction
variable = T
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
value = 1
fission_rate_function = Fiss_func
execute_on = 'initial timestep_begin'
[]
[frcvrg]
type = ADMaterialRealAux
variable = GBCoverage
property = GBCoverage
execute_on = 'initial linear'
[]
[]
[BCs]
[bottom_T]
type = ADFunctionDirichletBC
variable = T
function = Temp_func
boundary = 1
[]
[]
[Materials]
[UO2]
type = ADHeatConductionMaterial
block = 1
thermal_conductivity = 1.0
specific_heat = 1.0
[]
[fission_gas_behavior]
type = ADUO2Sifgrs
block = 1
temperature = T
fission_rate = fission_rate
[]
[]
[Executioner]
type = Transient
solve_type = NEWTON
l_tol = 1e-4
nl_abs_tol = 1e-5
nl_rel_tol = 1e-5
start_time = 0.0
num_steps = 50
dt = 1e6
end_time = 5e7
[]
[Postprocessors]
[fis_gas_generated]
type = ADElementIntegralFisGasGeneratedSifgrs
block = 1
[]
[fis_gas_released]
type = ADElementIntegralFisGasReleasedSifgrs
block = 1
[]
[]
[Outputs]
[out]
type = Exodus
[]
[]
(test/tests/uo2_transient_fission_gas_release/uo2_pulverization_transient_FGR_1D.i)
# This file is to test the transient fission gas release model that accounts for
# the amount of fission gas released as a result of fuel pulverization.
# It uses evolve_bubble_pressure_hbs = true and the 3D phase field criterion for
# pulverization.
# Local pulverization is tracked with the material property pulverized, which is
# 0 where pulverization has not occured and 1 where it has occurred.
# A material property uses the local pulverization to compute the
# amount of fission gas released as a results of fuel pulverization.
# This material property is output to the exodus file for this test.
# At each time step, the pulverized material property is computed, as well as
# the bubble radius and amount of fission gas in bubbles. These material property
# are then used to determine the amount of fission gas release due to pulverization.
# This amount predicted by the material block
# UO2PulverizationTransientFissionGasRelease is compared with analytical calculations
# made in the material block fission_gas_released_amount for verification.
# This input is the non-AD version.
hydrostatic_stress_constant = 1e7
[GlobalParams]
value_range_behavior = WARN
[]
[Mesh]
type = GeneratedMesh
dim = 1
nx = 10
xmax = 4.5e-3 # m pellet outer radius
[]
[Variables]
[temperature]
order = FIRST
family = LAGRANGE
initial_condition = 600
[]
[]
[AuxVariables]
[burnup]
order = FIRST
family = LAGRANGE
[]
[fission_rate]
order = FIRST
family = LAGRANGE
[]
[pulverized_aux]
order = CONSTANT
family = MONOMIAL
[]
[]
[Functions]
[burnup_function]
type = ParsedFunction
expression = 'x*1.6*t/4.275'
[]
[temperature_function]
type = ParsedFunction
expression = 'if(t < 100, 900, 900+(t-100)*200)'
[]
[Fiss_func]
type = ParsedFunction
expression = '1.e19'
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = temperature
[]
[]
[AuxKernels]
[burnup]
type = FunctionAux
variable = burnup
function = burnup_function
execute_on = 'initial linear'
[]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
value = 1
fission_rate_function = Fiss_func
execute_on = 'initial timestep_begin'
[]
[pulverized]
type = MaterialRealAux
variable = pulverized_aux
property = pulverized
execute_on = 'initial nonlinear'
[]
[]
[BCs]
[temperature]
type = FunctionDirichletBC
boundary = 'left right'
variable = temperature
function = temperature_function
[]
[]
[Materials]
[fission_gas_behavior]
type = UO2Sifgrs
temperature = temperature
fission_rate = fission_rate
burnup = burnup
skip_bdr_model = true
ig_bubble_model = MECHANISTIC_AAGESEN
hbs_model = true
hbs_material = hbs_formation
pulverization_model = true
pulverization_transient_fission_gas_release_material = UO2PulverizationTransientFissionGasRelease
ig_diff_algorithm = FORMAS
hydrostatic_stress_const = ${hydrostatic_stress_constant}
igdiffcoeff_scalef_HBS = 1e24 # Ensures that all the generated fission gases diffuse from the HBS matrix to the HBS bubbles
output_properties = 'bubble_concentration_intra_non_restructured bubble_radius_intra_non_restructured gas_concentration_bubble_intra_non_restructured gas_concentration_matrix_intra_non_restructured bubble_GB_volume_density_non_restructured bubble_radius_GB_non_restructured gas_concentration_GB_bubble_volume_non_restructured deltav_v0_intra_total bubble_concentration_intra_HBS bubble_radius_intra_HBS gas_concentration_bubble_intra_HBS gas_concentration_matrix_intra_HBS bubble_GB_volume_density_HBS bubble_radius_GB_HBS gas_concentration_GB_bubble_volume_HBS atom_per_bubble_GB_HBS gas_concentration_release_total'
outputs = 'exodus'
[]
[uo2pulverizationmesoscale]
type = UO2PulverizationMesoscale
temperature = temperature
output_properties = pulverized
pulverization_criterion_type = phase_field_3D
outputs = exodus
[]
[dummy_stress]
type = GenericConstantRankTwoTensor
tensor_name = 'stress'
tensor_values = '-${hydrostatic_stress_constant} -${hydrostatic_stress_constant} -${hydrostatic_stress_constant} 0 0 0'
[]
[fuel_thermal]
type = UO2Thermal
thermal_conductivity_model = STAICU
hbs_porosity_correction = KAMPF
model_hbs_formation = true
temperature = temperature
burnup_function = burnup_function
output_properties = hbs_porosity
outputs = exodus
[]
[hbs_formation]
type = HighBurnupStructureFormation
temperature = temperature
burnup = burnup
threshold_temperature = 1273.15 # default
output_properties = hbs_volume_fraction
outputs = exodus
[]
[fission_gas_density_bubble_HBS] # moles/m^3
type = ParsedMaterial
property_name = 'rho_FG_hbs'
material_property_names = 'atom_per_bubble_GB_HBS bubble_GB_volume_density_HBS'
constant_names = 'Na'
constant_expressions = '6.02214076e23'
expression = 'atom_per_bubble_GB_HBS * bubble_GB_volume_density_HBS / Na'
outputs = exodus
[]
[opened_pore_volume_fraction] # -
type = ParsedMaterial
property_name = 'f_V_pul'
material_property_names = 'hbs_porosity bubble_radius_GB_HBS'
constant_names = 'fragment_size c_p c_r c_0'
constant_expressions = '5e-5 0.03 5.17 0.02'
expression = 'c_p * hbs_porosity + c_r * bubble_radius_GB_HBS/fragment_size + c_0'
outputs = exodus
[]
[fission_gas_released_amount_analytical] # moles/m^3
type = ParsedMaterial
property_name = 'fis_gas_rel'
material_property_names = 'f_V_pul rho_FG_hbs pulverized'
expression = 'pulverized * f_V_pul * rho_FG_hbs'
outputs = exodus
[]
[UO2PulverizationTransientFissionGasRelease] # moles/m^3
type = UO2PulverizationTransientFissionGasRelease
output_properties = 'gas_concentration_release_pulverization'
outputs = exodus
[]
[]
[Postprocessors]
[FG_amount_bubble_HBS]
type = ElementIntegralMaterialProperty
mat_prop = rho_FG_hbs
[]
[FGR_transient_pulverization_analytical]
type = ElementIntegralMaterialProperty
mat_prop = fis_gas_rel
[]
[FGR_transient_pulverization]
type = ElementIntegralMaterialProperty
mat_prop = gas_concentration_release_pulverization
[]
[FGR_pps_diff_bison_analytical]
type = DifferencePostprocessor
value1 = FGR_transient_pulverization_analytical
value2 = FGR_transient_pulverization
[]
[FG_pps_diff_total_released]
type = DifferencePostprocessor
value1 = FG_amount_bubble_HBS
value2 = FGR_transient_pulverization
[]
[fis_gas_generated]
type = ElementIntegralMaterialProperty
mat_prop = gas_concentration_generated_total
[]
[fis_gas_released_total]
type = ElementIntegralMaterialProperty
mat_prop = gas_concentration_release_total
[]
[fgr_percent]
type = FGRPercent
fission_gas_released = fis_gas_released_total
fission_gas_generated = fis_gas_generated
[]
[gas_amount_bubble_intra_non_restructured]
type = ElementIntegralMaterialProperty
mat_prop = gas_concentration_bubble_intra_non_restructured
[]
[gas_amount_matrix_intra_non_restructured]
type = ElementIntegralMaterialProperty
mat_prop = gas_concentration_matrix_intra_non_restructured
[]
[bubble_amount_intra_non_restructured]
type = ElementIntegralMaterialProperty
mat_prop = bubble_concentration_intra_non_restructured
[]
[bubble_radius_intra_average_non_restructured]
type = ElementAverageMaterialProperty
mat_prop = bubble_radius_intra_non_restructured
[]
[temperature]
type = ElementAverageValue
variable = temperature
[]
[fission_rate]
type = ElementAverageValue
variable = fission_rate
[]
[gas_amount_hbs_GB_bubbles]
type = ElementIntegralMaterialProperty
mat_prop = gas_concentration_GB_bubble_volume_HBS
[]
[gas_amount_hbs_matrix]
type = ElementIntegralMaterialProperty
mat_prop = gas_concentration_matrix_intra_HBS
[]
[gas_amount_hbs_intra_bubbles]
type = ElementIntegralMaterialProperty
mat_prop = gas_concentration_bubble_intra_HBS
[]
[gas_amount_hbs_intra_total]
type = ElementIntegralMaterialProperty
mat_prop = gas_concentration_intra_total_HBS
[]
[bubble_amount_GB_hbs]
type = ElementIntegralMaterialProperty
mat_prop = bubble_GB_volume_density_HBS
[]
[bubble_radius_GB_average_hbs]
type = ElementAverageMaterialProperty
mat_prop = bubble_radius_GB_HBS
[]
[volume_domain]
type = ElementIntegralMaterialProperty
mat_prop = 1
execute_on = TIMESTEP_END
[]
[hbs_volume]
type = ElementIntegralMaterialProperty
mat_prop = hbs_volume_fraction
execute_on = TIMESTEP_END
[]
[hbs_volume_fraction]
type = ParsedPostprocessor
pp_names = 'hbs_volume volume_domain'
expression = 'hbs_volume / volume_domain'
execute_on = TIMESTEP_END
[]
[pulverized_volume]
type = ElementIntegralMaterialProperty
mat_prop = pulverized
execute_on = TIMESTEP_END
[]
[]
[Executioner]
type = Transient
solve_type = PJFNK
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type'
petsc_options_value = 'lu'
line_search = 'none'
l_max_its = 100
nl_max_its = 100
nl_rel_tol = 1e-8
nl_abs_tol = 1e-8
l_tol = 1e-5
start_time = 0.0
num_steps = 125
dt = 1
[]
[Outputs]
exodus = true
csv = true
[]
(test/tests/sifgrs/u3si2/polypole2_ext_fsngas.i)
# This input tests external fission gas coupling to U3Si2Sifgrs with PolyPole-2
[Mesh]
[gen]
type = ExamplePatchMeshGenerator
dim = 3
[]
[]
[Functions]
[Temp_func]
type = ParsedFunction
expression = '1700'
[]
[Fiss_func]
type = ParsedFunction
expression = '2.5e19'
[]
[]
[Variables]
[T]
initial_condition = 1700
[]
[]
[AuxVariables]
[fission_rate]
[]
[ext_gas]
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = T
diffusion_coefficient = 1
[]
[]
[AuxKernels]
[fissionrate]
type = FissionRateGeneral
fission_rate_formulation = GENERIC
variable = fission_rate
value = 1
fission_rate_function = Fiss_func
execute_on = 'initial timestep_begin'
[]
[ext_gas_aux]
type = ParsedAux
variable = ext_gas
coupled_variables = 'fission_rate'
use_xyzt = true
expression = 'fission_rate * 0.3 / 6.02214076e23 * t'
[]
[]
[BCs]
[bottom_T]
type = FunctionDirichletBC
variable = T
function = Temp_func
boundary = 1
[]
[]
[Materials]
[fission_gas_behavior]
type = U3Si2Sifgrs
skip_bdr_model = true
temperature = T
fission_rate = fission_rate
fission_gas_conc = ext_gas
ig_diff_algorithm = POLYPOLE2
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
l_tol = 1e-4
nl_abs_tol = 1e-5
nl_rel_tol = 1e-5
start_time = 0.0
num_steps = 50
dt = 1e6
[]
[Postprocessors]
[fis_gas_generated]
type = ElementIntegralFisGasGeneratedSifgrs
block = 1
[]
[fis_gas_released]
type = ElementIntegralFisGasReleasedSifgrs
block = 1
[]
[fgr_percent]
type = FGRPercent
fission_gas_released = fis_gas_released
fission_gas_generated = fis_gas_generated
[]
[]
[Outputs]
exodus = true
hide = 'ext_gas'
[]