- temperatureCoupled Temperature
C++ Type:std::vector<VariableName>
Unit:(no unit assumed)
Controllable:No
Description:Coupled Temperature
MOXPoreVelocity
Computes pore speed. Used with kernel MOXPoreContinuity.
Description
Pore speed is calculated in this class [MOXPoreVelocity], which is used in the kernel MOXPoreContinuity shown in the second term of the following equation:
where is the porosity, is the pore velocity, is the temperature, and is the diffusion coefficient MOXPoreDiffusion. Usually, the temperature gradient is included in the pore velocity term, but here, the temperature gradient is written separately to emphasize the dependence of pore migration on temperature gradient. The equation for pore speed is (Sens, 1972),
This class is still under development!
See bison/test/mox_pore_velocity/ for examples of how this class should be used.
Input Parameters
- blockThe list of blocks (ids or names) that this object will be applied
C++ Type:std::vector<SubdomainName>
Controllable:No
Description:The list of blocks (ids or names) that this object will be applied
- boundaryThe list of boundaries (ids or names) from the mesh where this object applies
C++ Type:std::vector<BoundaryName>
Controllable:No
Description:The list of boundaries (ids or names) from the mesh where this object applies
- 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
Options:NONE, ELEMENT, SUBDOMAIN
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.
- limit1limit for pore velocity in m/s
Default:1
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:limit for pore velocity in m/s
- pore_velocitycalculated in materials property
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:calculated in materials property
- scale_factor1scale the velocity to account for uncertainty
Default:1
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:scale the velocity to account for uncertainty
Optional Parameters
- control_tagsAdds user-defined labels for accessing object parameters via control logic.
C++ Type:std::vector<std::string>
Controllable:No
Description:Adds user-defined labels for accessing object parameters via control logic.
- enableTrueSet the enabled status of the MooseObject.
Default:True
C++ Type:bool
Controllable:Yes
Description:Set the enabled status of the MooseObject.
- 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/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/JOYO/B14/PTM001/analysis/b14_ptm001_pore.i)
- (assessment/MOX/JOYO/B14/PTM003/analysis/b14_ptm003_pore.i)
- (assessment/MOX/FFTF/FO-2/L09/analysis/fftf_fo2_L09_sub_1D.i)
- (assessment/MOX/JOYO/B14/PTM010/analysis/b14_ptm010_mechanics.i)
- (assessment/MOX/FFTF/FO-2/L09/analysis/fftf_fo2_L09_sub.i)
- (assessment/MOX/JOYO/B14/PTM003/analysis/b14_ptm003_1D_sample1.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/MK-I/analysis/MK-I_50MW_sub_new_bubble_gb_lim.i)
- (assessment/MOX/JOYO/B14/PTM010/analysis/b14_ptm010_1D_sample1.i)
- (assessment/MOX/JOYO/MK-I/analysis/MK-I_75MW_sub_old_bubble_gb_lim.i)
- (assessment/MOX/JOYO/MK-I/analysis/MK-I_50MW_sub_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/JOYO/B14/PTM010/analysis/b14_ptm010_pore.i)
- (examples/pore_migration/mox_porosity_demo_2D_offset.i)
- (assessment/MOX/JOYO/MK-II/analysis/MK-II_sub_new_bubble_gb_lim.i)
- (assessment/MOX/JOYO/B14/PTM002/analysis/b14_ptm002_1D_sample2.i)
- (examples/pore_migration/paper_solid.i)
- (assessment/MOX/JOYO/B14/PTM002/analysis/b14_ptm002_pore.i)
- (assessment/MOX/JOYO/B14/PTM001/analysis/b14_ptm001_1D_sample1.i)
- (assessment/MOX/JOYO/B14/PTM002/analysis/b14_ptm002_p-15_percent.i)
- (assessment/MOX/JOYO/MK-II/analysis/MK-II_sub_old_bubble_gb_lim.i)
- (assessment/MOX/JOYO/MK-I/analysis/MK-I_75MW_sub_new_bubble_gb_lim.i)
References
- P.F. Sens.
The kinetics of pore movement in uo2 fuel rods.
Journal of Nuclear Materials, 43(3):293–307, 1972.
doi:10.1016/0022-3115(72)90061-X.[BibTeX]
@article{SENS1972293, author = "Sens, P.F.", title = "The kinetics of pore movement in UO2 fuel rods", journal = "Journal of Nuclear Materials", volume = "43", number = "3", pages = "293-307", year = "1972", issn = "0022-3115", doi = "10.1016/0022-3115(72)90061-X" }
(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/JOYO/B14/PTM001/analysis/b14_ptm001_pore.i)
[Problem]
type = ReferenceResidualProblem
extra_tag_vectors = 'ref'
reference_vector = 'ref'
[]
[Mesh]
coord_type = RZ
[mesh]
type = GeneratedMeshGenerator
dim = 1
xmax = 0.0027
nx = 100
elem_type = EDGE
[]
[]
[Variables]
[pore]
initial_condition = 0.1372
scaling = 1e14
[]
[]
[AuxVariables]
[temp]
[]
[pore_speed_aux]
order = constant
family = monomial
[]
[saved_t]
[]
[saved_p]
[]
[]
[Functions]
[average_power_history]
type = PiecewiseLinear
x = ' 0 72000 158040 160200 246600 248400 249000.012 251280'
y = ' 0 34700 34700 38600 38600 47000 47000 0'
[]
[]
[Kernels]
[pore_continuity]
type = MOXPoreContinuity
variable = pore
temperature = temp
debug = 0
alpha = 0.25
beta = 1
heating_function = average_power_history
extra_vector_tags = 'ref'
[]
[pore_diffusion]
type = MOXPoreDiffusion
variable = pore
debug = 0
nu = 1e-12
heating_function = average_power_history
v_upper = 1e-12
v_lower = 1e-20
extra_vector_tags = 'ref'
[]
[poretimederivative]
type = CoefTimeDerivative
variable = pore
Coefficient = 1
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[pore_speed_aux]
type = MaterialRealAux
variable = pore_speed_aux
property = pore_velocity
execute_on = 'initial timestep_end'
[]
[]
[Materials]
[pore_velocity]
type = MOXPoreVelocity
temperature = temp
limit = 1e-3
scale_factor = 0.1
[]
[]
[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-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 = average_power_history
[]
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = false
color = true
csv = false
[console]
type = Console
max_rows = 25
[]
[]
[Debug]
show_var_residual_norms = true
show_var_residual = 'pore'
[]
(assessment/MOX/JOYO/B14/PTM003/analysis/b14_ptm003_pore.i)
[Problem]
type = ReferenceResidualProblem
extra_tag_vectors = 'ref'
reference_vector = 'ref'
[]
[Mesh]
coord_type = RZ
[mesh]
type = GeneratedMeshGenerator
dim = 1
xmax = 0.0027
nx = 100
elem_type = EDGE
[]
[]
[Variables]
[pore]
initial_condition = 0.1409
scaling = 1e15
[]
[]
[AuxVariables]
[temp]
[]
[pore_speed_aux]
order = constant
family = monomial
[]
[saved_t]
[]
[saved_p]
[]
[]
[Functions]
[average_power_history]
type = PiecewiseLinear
x = ' 0 72000 158040 160200 246600 248400 249000.012 251280'
y = ' 0 34700 34700 38600 38600 47000 47000 0'
[]
[]
[Kernels]
[pore_continuity]
type = MOXPoreContinuity
variable = pore
temperature = temp
debug = 0
alpha = 0.25
beta = 1
heating_function = average_power_history
extra_vector_tags = 'ref'
[]
[pore_diffusion]
type = MOXPoreDiffusion
variable = pore
debug = 0
nu = 1e-12
heating_function = average_power_history
v_upper = 1e-12
v_lower = 1e-20
extra_vector_tags = 'ref'
[]
[poretimederivative]
type = CoefTimeDerivative
variable = pore
Coefficient = 1
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[pore_speed_aux]
type = MaterialRealAux
variable = pore_speed_aux
property = pore_velocity
execute_on = 'initial timestep_end'
[]
[]
[Materials]
[pore_velocity]
type = MOXPoreVelocity
temperature = temp
limit = 1e-3
scale_factor = 0.1
[]
[]
[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-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 = average_power_history
[]
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = false
color = true
csv = false
[console]
type = Console
max_rows = 25
[]
[]
[Debug]
show_var_residual_norms = true
show_var_residual = 'pore'
[]
(assessment/MOX/FFTF/FO-2/L09/analysis/fftf_fo2_L09_sub_1D.i)
#sens porosity velocity
initial_fuel_density = 10431.0
[GlobalParams]
density = ${initial_fuel_density}
energy_per_fission = 3.2e-11 # J/fission
[]
[Problem]
type = ReferenceResidualProblem
extra_tag_vectors = 'ref'
reference_vector = 'ref'
[]
[Mesh]
coord_type = RZ
[mesh]
type = GeneratedMeshGenerator
dim = 1
xmax = 2.794e-3
xmin = 6.985e-4
nx = 1000
elem_type = EDGE
[]
[]
[Variables]
[pore]
initial_condition = 0.2
scaling = 1e14
[]
[]
[AuxVariables]
[temp]
initial_condition = 295
[]
[pore_speed_aux]
order = constant
family = monomial
[]
[fission_rate]
[]
[burnup]
[]
[]
[Functions]
[power_history]
type = PiecewiseLinear
x = '0 74993.42422 31858942.74'
y = '0 24065.94372 24065.94372'
[]
[]
[Kernels]
[pore_continuity]
type = MOXPoreContinuity
variable = pore
temperature = temp
debug = 0
alpha = 0.25
beta = 1
heating_function = power_history
extra_vector_tags = 'ref'
[]
[pore_diffusion]
type = MOXPoreDiffusion
variable = pore
debug = 0
nu = 1e-12
heating_function = power_history
v_upper = 1e-12
v_lower = 1e-20
extra_vector_tags = 'ref'
[]
[poretimederivative]
type = CoefTimeDerivative
variable = pore
Coefficient = 1
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[pore_speed_aux]
type = MaterialRealAux
variable = pore_speed_aux
property = pore_velocity
execute_on = 'initial timestep_end'
[]
[fission_rate]
type = FissionRateGeneral
fission_rate_formulation = MOX
variable = fission_rate
initial_porosity = 0.2
rod_ave_lin_pow = power_history
pellet_diameter = 0.005588
execute_on = timestep_begin
pellet_inner_diameter = 0.001397
porosity = pore
[]
[burnup]
type = BurnupAux
fission_rate = fission_rate
variable = burnup
execute_on = timestep_begin
[]
[]
[Materials]
[pore_velocity]
type = MOXPoreVelocity
temperature = temp
limit = 1e-3
scale_factor = 0.1
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
l_max_its = 50
l_tol = 8e-3
nl_max_its = 15
nl_rel_tol = 1e-4
nl_abs_tol = 1e-4
start_time = -200
n_startup_steps = 1
end_time = 31858942.74
dtmax = 1e6
dtmin = 1
[TimeStepper]
type = IterationAdaptiveDT
dt = 2e2
optimal_iterations = 10
iteration_window = 2
linear_iteration_ratio = 100
growth_factor = 2
cutback_factor = .5
force_step_every_function_point = true
timestep_limiting_function = power_history
[]
[]
[Postprocessors]
[ave_pore]
type = ElementAverageValue
variable = pore
[]
[max_pore]
type = NodalExtremeValue
value_type = max
variable = pore
[]
[min_pore]
type = NodalExtremeValue
value_type = min
variable = pore
[]
[max_pore_speed]
type = ElementExtremeValue
value_type = max
variable = pore_speed_aux
[]
[]
[VectorPostprocessors]
[radial_porosity]
type = LineValueSampler
variable = pore
start_point = '6.985e-4 0 0.0'
end_point = '2.794e-3 0 0.0'
num_points = 200
execute_on = final
sort_by = x
outputs = line_plot
[]
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = false
color = true
csv = false
[console]
type = Console
max_rows = 25
[]
[line_plot]
type = CSV
execute_on = 'FINAL'
time_step_interval = 1
file_base = 1d
create_final_symlink = true
[]
[]
[Debug]
show_var_residual_norms = true
show_var_residual = 'pore'
[]
(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/FFTF/FO-2/L09/analysis/fftf_fo2_L09_sub.i)
#sens porosity velocity
[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 = 300
elem_type = EDGE
[]
[]
[Variables]
[pore]
initial_condition = 0.2
scaling = 1e14
[]
[]
[AuxVariables]
[temp]
[]
[pore_speed_aux]
order = constant
family = monomial
[]
[]
[Functions]
[fraction_history]
type = PiecewiseLinear
x = '0 74993.42422 31858942.74'
y = '0 0.854004932 0.854004932'
[]
[]
[Kernels]
[pore_continuity]
type = MOXPoreContinuity
variable = pore
temperature = temp
debug = 0
alpha = 0.25
beta = 1
heating_function = fraction_history
extra_vector_tags = 'ref'
[]
[pore_diffusion]
type = MOXPoreDiffusion
variable = pore
debug = 0
nu = 1e-12
heating_function = fraction_history
v_upper = 1e-12
v_lower = 1e-20
extra_vector_tags = 'ref'
[]
[poretimederivative]
type = CoefTimeDerivative
variable = pore
Coefficient = 1
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[pore_speed_aux]
type = MaterialRealAux
variable = pore_speed_aux
property = pore_velocity
execute_on = 'initial timestep_end'
[]
[]
[Materials]
[pore_velocity]
type = MOXPoreVelocity
temperature = temp
limit = 1e-3
scale_factor = 0.1
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
l_max_its = 50
l_tol = 8e-3
nl_max_its = 15
nl_rel_tol = 1e-4
nl_abs_tol = 1e-4
start_time = -200
n_startup_steps = 1
end_time = 31858942.74
dtmax = 1e6
dtmin = 1
[TimeStepper]
type = IterationAdaptiveDT
dt = 2e2
optimal_iterations = 10
iteration_window = 2
linear_iteration_ratio = 100
growth_factor = 2
cutback_factor = .5
force_step_every_function_point = true
timestep_limiting_function = fraction_history
[]
[]
[Postprocessors]
[ave_pore]
type = ElementAverageValue
variable = pore
[]
[max_pore]
type = NodalExtremeValue
value_type = max
variable = pore
[]
[min_pore]
type = NodalExtremeValue
value_type = min
variable = pore
[]
[max_pore_speed]
type = ElementExtremeValue
value_type = max
variable = pore_speed_aux
[]
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = false
color = true
csv = false
[console]
type = Console
max_rows = 25
[]
[]
[Debug]
show_var_residual_norms = true
show_var_residual = 'pore'
[]
(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/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/MK-I/analysis/MK-I_50MW_sub_new_bubble_gb_lim.i)
#sens porosity velocity
[Problem]
type = ReferenceResidualProblem
extra_tag_vectors = 'ref'
reference_vector = 'ref'
[]
[Mesh]
coord_type = RZ
[mesh]
type = GeneratedMeshGenerator
dim = 1
xmax = 0.0027
nx = 100
elem_type = EDGE
[]
[]
[Variables]
[pore]
initial_condition = 0.065
scaling = 1e15
[]
[]
[AuxVariables]
[temp]
[]
[pore_speed_aux]
order = constant
family = monomial
[]
[]
[Functions]
[power_history] #related to the LHGR at the midplane
type = PiecewiseLinear
x = '0 70000 17153028'
y = '0 25577 25577'
[]
[]
[Kernels]
[pore_continuity]
type = MOXPoreContinuity
variable = pore
temperature = temp
debug = 0
alpha = 0.25
beta = 1
heating_function = power_history
extra_vector_tags = 'ref'
[]
[pore_diffusion]
type = MOXPoreDiffusion
variable = pore
debug = 0
nu = 1e-12
heating_function = power_history
v_upper = 1e-12
v_lower = 1e-20
extra_vector_tags = 'ref'
[]
[poretimederivative]
type = CoefTimeDerivative
variable = pore
Coefficient = 1
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[pore_speed_aux]
type = MaterialRealAux
variable = pore_speed_aux
property = pore_velocity
execute_on = 'initial timestep_end'
[]
[]
[Materials]
[pore_velocity]
type = MOXPoreVelocity
temperature = temp
limit = 1e-3
scale_factor = 0.1
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
l_max_its = 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_pore]
type = ElementAverageValue
variable = pore
[]
[max_pore]
type = NodalExtremeValue
value_type = max
variable = pore
[]
[min_pore]
type = NodalExtremeValue
value_type = min
variable = pore
[]
[max_pore_speed]
type = ElementExtremeValue
value_type = max
variable = pore_speed_aux
[]
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = false
color = true
csv = false
[console]
type = Console
max_rows = 25
[]
[]
[Debug]
show_var_residual_norms = true
show_var_residual = 'pore'
[]
(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_sub_old_bubble_gb_lim.i)
#sens porosity velocity
[Problem]
type = ReferenceResidualProblem
extra_tag_vectors = 'ref'
reference_vector = 'ref'
[]
[Mesh]
coord_type = RZ
[mesh]
type = GeneratedMeshGenerator
dim = 1
xmax = 0.0027
nx = 100
elem_type = EDGE
[]
[]
[Variables]
[pore]
initial_condition = 0.065
scaling = 1e15
[]
[]
[AuxVariables]
[temp]
[]
[pore_speed_aux]
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'
[]
[]
[Kernels]
[pore_continuity]
type = MOXPoreContinuity
variable = pore
temperature = temp
debug = 0
alpha = 0.25
beta = 1
heating_function = power_history
extra_vector_tags = 'ref'
[]
[pore_diffusion]
type = MOXPoreDiffusion
variable = pore
debug = 0
nu = 1e-12
heating_function = power_history
v_upper = 1e-12
v_lower = 1e-20
extra_vector_tags = 'ref'
[]
[poretimederivative]
type = CoefTimeDerivative
variable = pore
Coefficient = 1
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[pore_speed_aux]
type = MaterialRealAux
variable = pore_speed_aux
property = pore_velocity
execute_on = 'initial timestep_end'
[]
[]
[Materials]
[pore_velocity]
type = MOXPoreVelocity
temperature = temp
limit = 1e-3
scale_factor = 0.1
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
l_max_its = 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_pore]
type = ElementAverageValue
variable = pore
[]
[max_pore]
type = NodalExtremeValue
value_type = max
variable = pore
[]
[min_pore]
type = NodalExtremeValue
value_type = min
variable = pore
[]
[max_pore_speed]
type = ElementExtremeValue
value_type = max
variable = pore_speed_aux
[]
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = false
color = true
csv = false
[console]
type = Console
max_rows = 25
[]
[]
[Debug]
show_var_residual_norms = true
show_var_residual = 'pore'
[]
(assessment/MOX/JOYO/MK-I/analysis/MK-I_50MW_sub_old_bubble_gb_lim.i)
#sens porosity velocity
[Problem]
type = ReferenceResidualProblem
extra_tag_vectors = 'ref'
reference_vector = 'ref'
[]
[Mesh]
coord_type = RZ
[mesh]
type = GeneratedMeshGenerator
dim = 1
xmax = 0.0027
nx = 100
elem_type = EDGE
[]
[]
[Variables]
[pore]
initial_condition = 0.065
scaling = 1e15
[]
[]
[AuxVariables]
[temp]
[]
[pore_speed_aux]
order = constant
family = monomial
[]
[]
[Functions]
[power_history] #related to the LHGR at the midplane
type = PiecewiseLinear
x = '0 70000 17153028'
y = '0 25577 25577'
[]
[]
[Kernels]
[pore_continuity]
type = MOXPoreContinuity
variable = pore
temperature = temp
debug = 0
alpha = 0.25
beta = 1
heating_function = power_history
extra_vector_tags = 'ref'
[]
[pore_diffusion]
type = MOXPoreDiffusion
variable = pore
debug = 0
nu = 1e-12
heating_function = power_history
v_upper = 1e-12
v_lower = 1e-20
extra_vector_tags = 'ref'
[]
[poretimederivative]
type = CoefTimeDerivative
variable = pore
Coefficient = 1
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[pore_speed_aux]
type = MaterialRealAux
variable = pore_speed_aux
property = pore_velocity
execute_on = 'initial timestep_end'
[]
[]
[Materials]
[pore_velocity]
type = MOXPoreVelocity
temperature = temp
limit = 1e-3
scale_factor = 0.1
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
l_max_its = 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_pore]
type = ElementAverageValue
variable = pore
[]
[max_pore]
type = NodalExtremeValue
value_type = max
variable = pore
[]
[min_pore]
type = NodalExtremeValue
value_type = min
variable = pore
[]
[max_pore_speed]
type = ElementExtremeValue
value_type = max
variable = pore_speed_aux
[]
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = false
color = true
csv = false
[console]
type = Console
max_rows = 25
[]
[]
[Debug]
show_var_residual_norms = true
show_var_residual = 'pore'
[]
(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/JOYO/B14/PTM010/analysis/b14_ptm010_pore.i)
[Problem]
type = ReferenceResidualProblem
extra_tag_vectors = 'ref'
reference_vector = 'ref'
[]
[Mesh]
coord_type = RZ
[mesh]
type = GeneratedMeshGenerator
dim = 1
xmax = 0.002675
nx = 100
elem_type = EDGE
[]
[]
[Variables]
[pore]
initial_condition = 0.143
scaling = 1e14
[]
[]
[AuxVariables]
[temp]
[]
[pore_speed_aux]
order = constant
family = monomial
[]
[saved_t]
[]
[saved_p]
[]
[]
[Functions]
[average_power_history]
type = PiecewiseLinear
x = ' 0 72000 158040 160200 246600 248400 249000.012 251280'
y = ' 0 34700 34700 38600 38600 47000 47000 0'
[]
[]
[Kernels]
[pore_continuity]
type = MOXPoreContinuity
variable = pore
temperature = temp
debug = 0
alpha = 0.25
beta = 1
heating_function = average_power_history
extra_vector_tags = 'ref'
[]
[pore_diffusion]
type = MOXPoreDiffusion
variable = pore
debug = 0
nu = 1e-12
heating_function = average_power_history
v_upper = 1e-12
v_lower = 1e-20
extra_vector_tags = 'ref'
[]
[poretimederivative]
type = CoefTimeDerivative
variable = pore
Coefficient = 1
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[pore_speed_aux]
type = MaterialRealAux
variable = pore_speed_aux
property = pore_velocity
execute_on = 'initial timestep_end'
[]
[]
[Materials]
[pore_velocity]
type = MOXPoreVelocity
temperature = temp
limit = 1e-3
scale_factor = 0.1
[]
[]
[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-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 = average_power_history
[]
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = false
color = true
csv = false
[console]
type = Console
max_rows = 25
[]
[]
[Debug]
show_var_residual_norms = true
show_var_residual = 'pore'
[]
(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/JOYO/MK-II/analysis/MK-II_sub_new_bubble_gb_lim.i)
[Problem]
type = ReferenceResidualProblem
extra_tag_vectors = 'ref'
reference_vector = 'ref'
[]
[Mesh]
coord_type = RZ
[mesh]
type = GeneratedMeshGenerator
dim = 1
xmax = 0.002315
nx = 100
elem_type = EDGE
[]
[]
[Variables]
[pore]
initial_condition = 0.07
scaling = 1e15
[]
[]
[AuxVariables]
[temp]
[]
[pore_speed_aux]
order = constant
family = monomial
[]
[]
[Functions]
[power_history]
type = PiecewiseLinear
x = '0 70000 12970000'
y = '0 47668.70 47668.70'
[]
[]
[Kernels]
[pore_continuity]
type = MOXPoreContinuity
variable = pore
temperature = temp
debug = 0
alpha = 0.25
beta = 1
heating_function = power_history
extra_vector_tags = 'ref'
[]
[pore_diffusion]
type = MOXPoreDiffusion
variable = pore
debug = 0
nu = 1e-12
heating_function = power_history
v_upper = 1e-12
v_lower = 1e-20
extra_vector_tags = 'ref'
[]
[poretimederivative]
type = CoefTimeDerivative
variable = pore
Coefficient = 1
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[pore_speed_aux]
type = MaterialRealAux
variable = pore_speed_aux
property = pore_velocity
execute_on = 'initial timestep_end'
[]
[]
[Materials]
[pore_velocity]
type = MOXPoreVelocity
temperature = temp
limit = 1e-3
scale_factor = 0.1
[]
[]
[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 -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
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 = 1517490
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_pore]
type = ElementAverageValue
variable = pore
[]
[max_pore]
type = NodalExtremeValue
value_type = max
variable = pore
[]
[min_pore]
type = NodalExtremeValue
value_type = min
variable = pore
[]
[max_pore_speed]
type = ElementExtremeValue
value_type = max
variable = pore_speed_aux
[]
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = false
color = true
csv = false
[console]
type = Console
max_rows = 25
[]
[]
[Debug]
show_var_residual_norms = true
show_var_residual = 'pore'
[]
(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/B14/PTM002/analysis/b14_ptm002_pore.i)
[Problem]
type = ReferenceResidualProblem
extra_tag_vectors = 'ref'
reference_vector = 'ref'
[]
[Mesh]
coord_type = RZ
[mesh]
type = GeneratedMeshGenerator
dim = 1
xmax = 0.002675
nx = 100
elem_type = EDGE
[]
[]
[Variables]
[pore]
initial_condition = 0.1372
scaling = 1e14
[]
[]
[AuxVariables]
[temp]
[]
[pore_speed_aux]
order = constant
family = monomial
[]
[]
[Functions]
[average_power_history]
type = PiecewiseLinear
x = ' 0 72000 158040 160200 246600 248400 249000.012 251280'
y = ' 0 34700 34700 38600 38600 47000 47000 0'
[]
[]
[Kernels]
[pore_continuity]
type = MOXPoreContinuity
variable = pore
temperature = temp
debug = 0
alpha = 0.25
beta = 1
heating_function = average_power_history
extra_vector_tags = 'ref'
[]
[pore_diffusion]
type = MOXPoreDiffusion
variable = pore
debug = 0
nu = 1e-12
heating_function = average_power_history
v_upper = 1e-12
v_lower = 1e-20
extra_vector_tags = 'ref'
[]
[poretimederivative]
type = CoefTimeDerivative
variable = pore
Coefficient = 1
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[pore_speed_aux]
type = MaterialRealAux
variable = pore_speed_aux
property = pore_velocity
execute_on = 'initial timestep_end'
[]
[]
[Materials]
[pore_velocity]
type = MOXPoreVelocity
temperature = temp
limit = 1e-3
scale_factor = 0.1
[]
[]
[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-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 = average_power_history
[]
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = false
color = true
csv = false
[console]
type = Console
max_rows = 25
[]
[]
[Debug]
show_var_residual_norms = true
show_var_residual = 'pore'
[]
(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/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/JOYO/MK-II/analysis/MK-II_sub_old_bubble_gb_lim.i)
[Problem]
type = ReferenceResidualProblem
extra_tag_vectors = 'ref'
reference_vector = 'ref'
[]
[Mesh]
coord_type = RZ
[mesh]
type = GeneratedMeshGenerator
dim = 1
xmax = 0.002315
nx = 100
elem_type = EDGE
[]
[]
[Variables]
[pore]
initial_condition = 0.07
scaling = 1e15
[]
[]
[AuxVariables]
[temp]
[]
[pore_speed_aux]
order = constant
family = monomial
[]
[]
[Functions]
[power_history]
type = PiecewiseLinear
x = '0 70000 12697021'
y = '0 47668.70 47668.70'
[]
[]
[Kernels]
[pore_continuity]
type = MOXPoreContinuity
variable = pore
temperature = temp
debug = 0
alpha = 0.25
beta = 1
heating_function = power_history
extra_vector_tags = 'ref'
[]
[pore_diffusion]
type = MOXPoreDiffusion
variable = pore
debug = 0
nu = 1e-12
heating_function = power_history
v_upper = 1e-12
v_lower = 1e-20
extra_vector_tags = 'ref'
[]
[poretimederivative]
type = CoefTimeDerivative
variable = pore
Coefficient = 1
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[pore_speed_aux]
type = MaterialRealAux
variable = pore_speed_aux
property = pore_velocity
execute_on = 'initial timestep_end'
[]
[]
[Materials]
[pore_velocity]
type = MOXPoreVelocity
temperature = temp
limit = 1e-3
scale_factor = 0.1
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
l_max_its = 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 = 1517490
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_pore]
type = ElementAverageValue
variable = pore
[]
[max_pore]
type = NodalExtremeValue
value_type = max
variable = pore
[]
[min_pore]
type = NodalExtremeValue
value_type = min
variable = pore
[]
[max_pore_speed]
type = ElementExtremeValue
value_type = max
variable = pore_speed_aux
[]
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = false
color = true
csv = false
[console]
type = Console
max_rows = 25
[]
[]
[Debug]
show_var_residual_norms = true
show_var_residual = 'pore'
[]
(assessment/MOX/JOYO/MK-I/analysis/MK-I_75MW_sub_new_bubble_gb_lim.i)
#sens porosity velocity
[Problem]
type = ReferenceResidualProblem
extra_tag_vectors = 'ref'
reference_vector = 'ref'
[]
[Mesh]
coord_type = RZ
[mesh]
type = GeneratedMeshGenerator
dim = 1
xmax = 0.0027
nx = 100
elem_type = EDGE
[]
[]
[Variables]
[pore]
initial_condition = 0.065
scaling = 1e15
[]
[]
[AuxVariables]
[temp]
[]
[pore_speed_aux]
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'
[]
[]
[Kernels]
[pore_continuity]
type = MOXPoreContinuity
variable = pore
temperature = temp
debug = 0
alpha = 0.25
beta = 1
heating_function = power_history
extra_vector_tags = 'ref'
[]
[pore_diffusion]
type = MOXPoreDiffusion
variable = pore
debug = 0
nu = 1e-12
heating_function = power_history
v_upper = 1e-12
v_lower = 1e-20
extra_vector_tags = 'ref'
[]
[poretimederivative]
type = CoefTimeDerivative
variable = pore
Coefficient = 1
extra_vector_tags = 'ref'
[]
[]
[AuxKernels]
[pore_speed_aux]
type = MaterialRealAux
variable = pore_speed_aux
property = pore_velocity
execute_on = 'initial timestep_end'
[]
[]
[Materials]
[pore_velocity]
type = MOXPoreVelocity
temperature = temp
limit = 1e-3
scale_factor = 0.1
[]
[]
[Preconditioning]
[SMP]
type = SMP
full = true
[]
[]
[Executioner]
type = Transient
solve_type = 'PJFNK'
petsc_options = '-snes_ksp_ew'
petsc_options_iname = '-pc_type -pc_factor_mat_solver_package'
petsc_options_value = 'lu superlu_dist'
line_search = 'none'
l_max_its = 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_pore]
type = ElementAverageValue
variable = pore
[]
[max_pore]
type = NodalExtremeValue
value_type = max
variable = pore
[]
[min_pore]
type = NodalExtremeValue
value_type = min
variable = pore
[]
[max_pore_speed]
type = ElementExtremeValue
value_type = max
variable = pore_speed_aux
[]
[]
[PerformanceMetricOutputs]
[]
[Outputs]
perf_graph = true
exodus = false
color = true
csv = false
[console]
type = Console
max_rows = 25
[]
[]
[Debug]
show_var_residual_norms = true
show_var_residual = 'pore'
[]