- Am_content0Weight fraction of Am in MAMOX fuel
Default:0
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Weight fraction of Am in MAMOX fuel
- Np_content0Weight fraction of Np in MAMOX fuel
Default:0
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Weight fraction of Np in MAMOX fuel
- 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
- computeTrueWhen false, MOOSE will not call compute methods on this material. The user must call computeProperties() after retrieving the MaterialBase via MaterialBasePropertyInterface::getMaterialBase(). Non-computed MaterialBases are not sorted for dependencies.
Default:True
C++ Type:bool
Controllable:No
Description:When false, MOOSE will not call compute methods on this material. The user must call computeProperties() after retrieving the MaterialBase via MaterialBasePropertyInterface::getMaterialBase(). Non-computed MaterialBases are not sorted for dependencies.
- constant_onNONEWhen ELEMENT, MOOSE will only call computeQpProperties() for the 0th quadrature point, and then copy that value to the other qps.When SUBDOMAIN, MOOSE will only call computeQpProperties() for the 0th quadrature point, and then copy that value to the other qps. Evaluations on element qps will be skipped
Default:NONE
C++ Type:MooseEnum
Controllable:No
Description:When ELEMENT, MOOSE will only call computeQpProperties() for the 0th quadrature point, and then copy that value to the other qps.When SUBDOMAIN, MOOSE will only call computeQpProperties() for the 0th quadrature point, and then copy that value to the other qps. Evaluations on element qps will be skipped
- declare_suffixAn optional suffix parameter that can be appended to any declared 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 declared properties. The suffix will be prepended with a '_' character.
- fp_functionporosity reducing thermal conductivity function
C++ Type:FunctionName
Unit:(no unit assumed)
Controllable:No
Description:porosity reducing thermal conductivity function
- oxy_to_metal_ratio2Oxygen to metal ratio
Default:2
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Oxygen to metal ratio
- porosityCoupled Porosity from field variable
C++ Type:std::vector<VariableName>
Unit:(no unit assumed)
Controllable:No
Description:Coupled Porosity from field variable
- porosity_limit0.9Maximum allowed porosity for thermal conductivity calculation. Avoids k = 0 when porosity = 1
Default:0.9
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Maximum allowed porosity for thermal conductivity calculation. Avoids k = 0 when porosity = 1
- temperatureCoupled Temperature
C++ Type:std::vector<VariableName>
Unit:(no unit assumed)
Controllable:No
Description:Coupled Temperature
MAMOXThermal
Computes the thermal conductivity for minor actinide fast MOX fuel.
Description
The MAMOXThermal model computes the thermal conductivity for minor actinide, Np- and Am- bearing, fast MOX fuel (MA-MOX). The specific heat capacity is treated as a constant value for the correlation used.
MAMOXThermal computes the thermal conductivity of minor actinide doped (MA) mixed oxide fuel (MOX). The thermal model that was developed by Kato et al. (2011) was used for this model. This model was based on irradiation results of experiments from the JOYO fast reactor. The experiments consisted of MOX and MA-MOX stacks of fuel with oxygen to metal ratios of 1.98 and 1.96. The correlation below was conceived from these experiments. It is important to note that the additions of 0% - 3% Am and 0% - 12% Np have been shown to have only small effects on the physical properties of the MOX fuel (Kato et al., 2011). where is the effective fuel thermal conductivity in W/m-K, is the fuel porosity, is the stoichiometric deviation (2.00-x), is the americium content and is the neptunium content. Porosity can be coupled either as a field variable or as a porosity_aux AuxVariable.
Example Input Syntax
[Materials<<<{"href": "../../syntax/Materials/index.html"}>>>]
[thermal_properties]
type = MAMOXThermal<<<{"description": "Computes the thermal conductivity for minor actinide fast MOX fuel.", "href": "MAMOXThermal.html"}>>>
block<<<{"description": "The list of blocks (ids or names) that this object will be applied"}>>> = 1
temperature<<<{"description": "Coupled Temperature"}>>> = T
oxy_to_metal_ratio<<<{"description": "Oxygen to metal ratio"}>>> = 2.00
Am_content<<<{"description": "Weight fraction of Am in MAMOX fuel"}>>> = 0.0
Np_content<<<{"description": "Weight fraction of Np in MAMOX fuel"}>>> = 0.0
porosity<<<{"description": "Coupled Porosity from field variable"}>>> = porosity_var
[]
[](test/tests/thermalMAMOX/test.i)Input 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.
- implicitTrueDetermines whether this object is calculated using an implicit or explicit form
Default:True
C++ Type:bool
Controllable:No
Description:Determines whether this object is calculated using an implicit or explicit form
- 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
- output_propertiesList of material properties, from this material, to output (outputs must also be defined to an output type)
C++ Type:std::vector<std::string>
Controllable:No
Description:List of material properties, from this material, to output (outputs must also be defined to an output type)
- outputsnone Vector of output names where you would like to restrict the output of variables(s) associated with this object
Default:none
C++ Type:std::vector<OutputName>
Controllable:No
Description:Vector of output names where you would like to restrict the output of variables(s) associated with this object
Outputs Parameters
- prop_getter_suffixAn optional suffix parameter that can be appended to any attempt to retrieve/get material properties. The suffix will be prepended with a '_' character.
C++ Type:MaterialPropertyName
Unit:(no unit assumed)
Controllable:No
Description:An optional suffix parameter that can be appended to any attempt to retrieve/get material properties. The suffix will be prepended with a '_' character.
- use_interpolated_stateFalseFor the old and older state use projected material properties interpolated at the quadrature points. To set up projection use the ProjectedStatefulMaterialStorageAction.
Default:False
C++ Type:bool
Controllable:No
Description:For the old and older state use projected material properties interpolated at the quadrature points. To set up projection use the ProjectedStatefulMaterialStorageAction.
Material Property Retrieval Parameters
Input Files
- (assessment/MOX/JOYO/MK-I/analysis/MK-I_75MW_master_new_bubble_gb_lim.i)
- (assessment/MOX/JOYO/MK-II/analysis/MK-II_master_old_bubble_gb_lim.i)
- (assessment/MOX/JOYO/B14/PTM003/analysis/b14_ptm003_1D_sample2.i)
- (examples/mox_fuel/mox_porosity_demo.i)
- (assessment/MOX/JOYO/B14/PTM001/analysis/b14_ptm001_1D_sample2.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)
- (assessment/MOX/FFTF/FO-2/L09/analysis/fftf_fo2_L09_master.i)
- (assessment/MOX/JOYO/B14/PTM010/analysis/b14_ptm010_mechanics.i)
- (assessment/MOX/JOYO/MK-II/analysis/MK-II_master_new_bubble_gb_lim.i)
- (assessment/MOX/FFTF/FO-2/L09/analysis/L09_2DRZ_new_bubble_gb_lim_DiffCoeff4.i)
- (assessment/MOX/JOYO/B14/PTM001/analysis/b14_ptm001_1D_sample3_ox_noAm.i)
- (assessment/MOX/JOYO/B14/PTM001/analysis/b14_ptm001_1D_sample3_ox.i)
- (test/tests/mox_oxygen_transport/mox_oxygen_transport_hyper.i)
- (assessment/MOX/JOYO/B14/PTM001/analysis/b14_ptm001_1D_sample3.i)
- (test/tests/mox_pore_velocity/MOXPoreVelocityVaporPressure.i)
- (assessment/MOX/JOYO/B14/PTM003/analysis/b14_ptm003_1D_sample1.i)
- (test/tests/thermalMAMOX/test.i)
- (test/tests/mox_pore_velocity/MOXActinide.i)
- (assessment/MOX/JOYO/B14/PTM002/analysis/b14_ptm002_1D_sample1.i)
- (assessment/MOX/JOYO/B14/PTM002/analysis/b14_ptm002_mechanics.i)
- (examples/pore_migration/mox_porosity_demo_2D_concentric.i)
- (assessment/MOX/JOYO/B14/PTM001/analysis/b14_ptm001_2DRZ_t.i)
- (assessment/MOX/JOYO/B14/PTM010/analysis/b14_ptm010_1D_sample1.i)
- (assessment/MOX/JOYO/MK-I/analysis/MK-I_75MW_master_old_bubble_gb_lim.i)
- (assessment/MOX/JOYO/B14/PTM001/analysis/b14_ptm001_1D_sample3_noAm.i)
- (assessment/MOX/FFTF/FO-2/L09/analysis/L09_2DRZ_new_bubble_gb_lim_grainGrowth.i)
- (assessment/MOX/JOYO/MK-I/analysis/MK-I_50MW_master_old_bubble_gb_lim.i)
- (test/tests/mox_pore_velocity/MOXPoreVelocity.i)
- (assessment/MOX/JOYO/B14/PTM010/analysis/b14_ptm010_1D_sample2.i)
- (assessment/MOX/FFTF/FO-2/L09/analysis/fftf_fo2_L09_master_sampleL.i)
- (test/tests/mox_oxygen_transport/mox_oxygen_transport_hypo_V_Pu_low3.3.i)
- (examples/pore_migration/mox_porosity_demo_2D_offset.i)
- (assessment/MOX/FFTF/FO-2/L09/analysis/fftf_fo2_L09_master_sampleJ.i)
- (assessment/MOX/JOYO/B14/PTM002/analysis/b14_ptm002_2DRZ_t.i)
- (test/tests/mox_pore_velocity/MOXActinide_simple.i)
- (assessment/MOX/JOYO/B14/PTM002/analysis/b14_ptm002_1D_sample2.i)
- (examples/pore_migration/paper_solid.i)
- (assessment/MOX/JOYO/MK-I/analysis/MK-I_50MW_master_new_bubble_gb_lim.i)
- (assessment/MOX/JOYO/B14/PTM003/analysis/b14_ptm003_2DRZ_t.i)
- (assessment/MOX/FFTF/FO-2/L09/analysis/L09_2DRZ_new_bubble_gb_lim_DiffCoeff4_GrainGrowth.i)
- (assessment/MOX/JOYO/B14/PTM001/analysis/b14_ptm001_1D_sample1.i)
- (assessment/MOX/FFTF/FO-2/L09/analysis/L09_2DRZ_old_bubble_gb_lim.i)
- (assessment/MOX/JOYO/B14/PTM010/analysis/b14_ptm010_2DRZ_t.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)
- (examples/fast_mox_sifgrs/input_single_pellet_sifgrs_mox.i)
References
- M. Kato, K. Maeda, T. Ozawa, M. Kashimura, and Y. Kihara.
Physical properties and irradiation behavior analysis of Np- and Am-bearing MOX fuels.
Journal of Nuclear Science and Technology, 48:646–653, 2011.[BibTeX]
@article{kato2011, author = "Kato, M. and Maeda, K. and Ozawa, T. and Kashimura, M. and Kihara, Y.", title = "Physical properties and Irradiation behavior analysis of {Np-} and {Am}-bearing {MOX} fuels", journal = "Journal of Nuclear Science and Technology", volume = "48", pages = "646-653", year = "2011" }
(test/tests/thermalMAMOX/test.i)
# The mesh is a 1x1x1 cube (single element).
# The temperature is ramped on all faces of the cube from 300 K to 3000K
# over 13500 s.
#
# The thermal conductivity computed by BISON
# for the temperatures shown below are compared with analytical solution.
# The excel thermal_handcalc.xlsx is included.
# The results are as follows:
#
# Temp(K) k BISON k analytical
# (W/m-K) (W/m-K)
# 300 6.708129294 6.708129294
# 400 5.262346621 5.262346781
# 500 4.329272169 4.329272065
# 600 3.677252815 3.677252879
# 700 3.1959265 3.195926438
# 800 2.826044599 2.826044622
# 900 2.533029458 2.533029405
# 1000 2.295527958 2.295528003
# 1100 2.099937672 2.099937636
# 1200 1.937526345 1.937526344
# 1300 1.802740214 1.802740199
# 1400 1.692089406 1.692089409
# 1500 1.603360418 1.60336041
# 1600 1.535051316 1.535051301
# 1700 1.485982296 1.48598229
# 1800 1.455047309 1.455047314
# 1900 1.441075382 1.441075382
# 2000 1.44277157 1.442771569
# 2100 1.458711035 1.458711032
# 2200 1.487364402 1.487364409
# 2300 1.527138482 1.527138502
# 2400 1.576421206 1.576421197
# 2500 1.633623772 1.633623774
# 2600 1.697216893 1.697216869
# 2700 1.765758544 1.765758548
# 2800 1.837914343 1.83791434
# 2900 1.912469883 1.912469894
# 3000 1.988337302 1.988337315
#------------------------------------------------------------------------
[Mesh]
[mesh]
type = FileMeshGenerator
file = 1x1x1cube.e
[]
[]
[Variables]
[T]
order = FIRST
family = LAGRANGE
initial_condition = 300
[]
[]
[AuxVariables]
[th_cond]
order = CONSTANT
family = MONOMIAL
[]
[porosity_var]
order = CONSTANT
family = MONOMIAL
initial_condition = 0.3
block = 1
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = T
[]
[heat_ie]
type = HeatConductionTimeDerivative
variable = T
[]
[]
[AuxKernels]
[th_cond]
type = MaterialRealAux
variable = th_cond
property = thermal_conductivity
block = 1
execute_on = 'initial linear'
[]
[porosity_aux]
type = MaterialRealAux
variable = porosity_var
property = porosity
execute_on = linear
[]
[]
[Functions]
[temp_ramp]
type = PiecewiseLinear
x = '0 500 1000 1500 2000 2500 3000 3500 4000 4500 5000 5500 6000 6500 7000 7500 8000 8500 9000 9500 10000 10500 11000 11500 12000 12500 13000 13500'
y = '300 400 500 600 700 800 900 1000 1100 1200 1300 1400 1500 1600 1700 1800 1900 2000 2100 2200 2300 2400 2500 2600 2700 2800 2900 3000'
[]
[]
[BCs]
[VariableT]
type = FunctionDirichletBC
boundary = 2 # All cube faces
variable = T
function = temp_ramp
[]
[]
[Materials]
[thermal_properties]
type = MAMOXThermal
block = 1
temperature = T
oxy_to_metal_ratio = 2.00
Am_content = 0.0
Np_content = 0.0
porosity = porosity_var
[]
[density]
type = ParsedMaterial
block = 1
property_name = density
expression = 10431.0
[]
[porosity]
type = PorosityMOX
block = 1
porosity = 0.3
[]
[]
[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
end_time = 13500
dt = 500
[]
[Postprocessors]
[avg_th_cond]
type = ElementAverageValue
block = 1
variable = th_cond
execute_on = 'initial timestep_end'
[]
[average_T]
type = ElementAverageValue
block = 1
variable = T
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
file_base = 'test_out'
[exodus]
type = Exodus
[]
[]
(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/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'
[]
(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
[]
(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/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
[]
(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
[]
(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'
[]
(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'
[]
(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
[]
(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
[]
[]
(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
[]
(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/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
[]
(test/tests/thermalMAMOX/test.i)
# The mesh is a 1x1x1 cube (single element).
# The temperature is ramped on all faces of the cube from 300 K to 3000K
# over 13500 s.
#
# The thermal conductivity computed by BISON
# for the temperatures shown below are compared with analytical solution.
# The excel thermal_handcalc.xlsx is included.
# The results are as follows:
#
# Temp(K) k BISON k analytical
# (W/m-K) (W/m-K)
# 300 6.708129294 6.708129294
# 400 5.262346621 5.262346781
# 500 4.329272169 4.329272065
# 600 3.677252815 3.677252879
# 700 3.1959265 3.195926438
# 800 2.826044599 2.826044622
# 900 2.533029458 2.533029405
# 1000 2.295527958 2.295528003
# 1100 2.099937672 2.099937636
# 1200 1.937526345 1.937526344
# 1300 1.802740214 1.802740199
# 1400 1.692089406 1.692089409
# 1500 1.603360418 1.60336041
# 1600 1.535051316 1.535051301
# 1700 1.485982296 1.48598229
# 1800 1.455047309 1.455047314
# 1900 1.441075382 1.441075382
# 2000 1.44277157 1.442771569
# 2100 1.458711035 1.458711032
# 2200 1.487364402 1.487364409
# 2300 1.527138482 1.527138502
# 2400 1.576421206 1.576421197
# 2500 1.633623772 1.633623774
# 2600 1.697216893 1.697216869
# 2700 1.765758544 1.765758548
# 2800 1.837914343 1.83791434
# 2900 1.912469883 1.912469894
# 3000 1.988337302 1.988337315
#------------------------------------------------------------------------
[Mesh]
[mesh]
type = FileMeshGenerator
file = 1x1x1cube.e
[]
[]
[Variables]
[T]
order = FIRST
family = LAGRANGE
initial_condition = 300
[]
[]
[AuxVariables]
[th_cond]
order = CONSTANT
family = MONOMIAL
[]
[porosity_var]
order = CONSTANT
family = MONOMIAL
initial_condition = 0.3
block = 1
[]
[]
[Kernels]
[heat]
type = HeatConduction
variable = T
[]
[heat_ie]
type = HeatConductionTimeDerivative
variable = T
[]
[]
[AuxKernels]
[th_cond]
type = MaterialRealAux
variable = th_cond
property = thermal_conductivity
block = 1
execute_on = 'initial linear'
[]
[porosity_aux]
type = MaterialRealAux
variable = porosity_var
property = porosity
execute_on = linear
[]
[]
[Functions]
[temp_ramp]
type = PiecewiseLinear
x = '0 500 1000 1500 2000 2500 3000 3500 4000 4500 5000 5500 6000 6500 7000 7500 8000 8500 9000 9500 10000 10500 11000 11500 12000 12500 13000 13500'
y = '300 400 500 600 700 800 900 1000 1100 1200 1300 1400 1500 1600 1700 1800 1900 2000 2100 2200 2300 2400 2500 2600 2700 2800 2900 3000'
[]
[]
[BCs]
[VariableT]
type = FunctionDirichletBC
boundary = 2 # All cube faces
variable = T
function = temp_ramp
[]
[]
[Materials]
[thermal_properties]
type = MAMOXThermal
block = 1
temperature = T
oxy_to_metal_ratio = 2.00
Am_content = 0.0
Np_content = 0.0
porosity = porosity_var
[]
[density]
type = ParsedMaterial
block = 1
property_name = density
expression = 10431.0
[]
[porosity]
type = PorosityMOX
block = 1
porosity = 0.3
[]
[]
[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
end_time = 13500
dt = 500
[]
[Postprocessors]
[avg_th_cond]
type = ElementAverageValue
block = 1
variable = th_cond
execute_on = 'initial timestep_end'
[]
[average_T]
type = ElementAverageValue
block = 1
variable = T
execute_on = 'initial timestep_end'
[]
[]
[Outputs]
file_base = 'test_out'
[exodus]
type = Exodus
[]
[]
(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
[]
(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
[]
(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/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
[]
(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
[]
(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
[]
(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'
[]
(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
[]
(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/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'
[]
(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
[]
(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/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
[]
(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
[]
(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
[]
(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/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
[]
(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/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'
[]
(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
[]
(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
[]
(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
[]
(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
[]
(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
[]
(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
[]
(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
[]
[]