Griffin Open Xe-100 PKE Transient
Input Description
# ==============================================================================
# Model description
# ------------------------------------------------------------------------------
# Idaho Falls, INL, April 21, 2021 12:05 PM
# Author(s): Dr. Paolo Balestra & Dr. Ryan Stewart
# ==============================================================================
# - xe100: reference plant design based on 200MW XE100 Open Source Plant.
# - pke_temp_ramp: Recreate the temperature transient based on the PKE parameters
# using initial conditions and reactivity coefficients
# ==============================================================================
# - The Model has been built based on [1].
# ------------------------------------------------------------------------------
# [1] R. Stewart, P. Balestra, D. Reger, and E. Merzari.
# Generation of localized reactor point kinetics parameters using coupled
# neutronic and thermal fluid models for pebble-bed reactor transient analysis.
# Annals of Nuclear Energy, 174:109143, 2022.
# URL: https://www.sciencedirect.com/science/article/pii/S0306454922001785#s0065
# doi: https://doi.org/10.1016/j.anucene.2022.109143.
# ==============================================================================
# ==============================================================================
# Point Kinetics Equations
# ==============================================================================
[PKE]
n_delayed_groups = 6
DNP_variable = precursor
DN_fraction_aux = betas
DNP_decay_constant_aux = lambdas
mean_generation_time_aux = Lambda
reactivity_aux = rho
verbose = 1
amplitude_variable = n
pke_parameter_csv = 'iqs_pke_params.csv'
[]
# ==============================================================================
# INITIAL CONDITIONS
# ==============================================================================
[ICs]
[ic_n]
type = ScalarComponentIC
variable = n
values = 1
[]
[]
# ==============================================================================
# FUNCTIONS & AUXKERNELS
# ==============================================================================
# Applies a fixed reactivity profile
# [Functions]
# [rho_time]
# type = SlopeFunction
# timep = '0 1 4 10'
# value = '0 0 4.43177878883e-5 4.43177878883e-5'
# []
# []
# Applies the same reactivity profile as the IQS transient
[Functions]
[rho_time]
type = PiecewiseLinear
data_file = iqs_pke_params.csv
format = 'columns'
y_title = 'rho'
[]
[]
[AuxScalarKernels]
[temp_ramp]
type = FunctionScalarAux
variable = rho
function = rho_time
execute_on = 'INITIAL TIMESTEP_BEGIN'
[]
[]
# ==============================================================================
# EXECUTION PARAMETERS
# ==============================================================================
[Executioner]
type = Transient
solve_type = 'PJFNK'
# Problem time parameters.
start_time = 0.0
dt = 0.5
end_time = 10.0
reset_dt = true
# Linear/nonlinear iterations.
l_max_its = 50
l_tol = 1e-3
[]
# ==============================================================================
# OUTPUTS
# ==============================================================================
[Outputs]
file_base = pke_fuel_auto
print_linear_residuals = false
print_linear_converged_reason = false
print_nonlinear_converged_reason = false
csv = true
[](htgr/open-xe100/xe100_pke.i)This input file is different from the others for this model; this input uses the point kinetics equations to reproduce the temperature transient, rather than the IQS model.
PKE
This block sets up the point kinetic equations. It has the following parameters:
n_delayed_groups, the number of groups of delayed neutron precursors.
DNP_variable, the name of the delayed neutron precursor decay constant variable.
DN_fraction_aux, the name of the delayed neutron fraction variable.
DNP_decay_constant_aux, the value of the delayed neutron precursor decay constant variable.
mean_generation_time_aux, the name of the mean generation time variable.
reactivity_aux, the name of the reactivity variable.
verbose, the verbose level of the action. A higher verbosity results in more printed output.
amplitude_variable, the name of the amplitude variable.
pke_parameter_csv, the name of the csv file from which the initializing PKE parameters are read. These values are generated by the IQS run.
[PKE]
n_delayed_groups = 6
DNP_variable = precursor
DN_fraction_aux = betas
DNP_decay_constant_aux = lambdas
mean_generation_time_aux = Lambda
reactivity_aux = rho
verbose = 1
amplitude_variable = n
pke_parameter_csv = 'iqs_pke_params.csv'
[](htgr/open-xe100/xe100_pke.i)ICs
The initial conditions block only requires an initial condition for the amplitude. The remaining variables are initialized with the values in the PKE parameter csv.
[ICs]
[ic_n]
type = ScalarComponentIC
variable = n
values = 1
[]
[](htgr/open-xe100/xe100_pke.i)Functions
The rho_time function allows a step change in reactivity that corresponds to the temperature feedback.
[Functions]
[rho_time]
type = PiecewiseLinear
data_file = iqs_pke_params.csv
format = 'columns'
y_title = 'rho'
[]
[](htgr/open-xe100/xe100_pke.i)AuxKernels
The temp_ramp auxiliary kernel applies the step change in reactivity from the rho_time function to the reactivity variable.
[AuxScalarKernels]
[temp_ramp]
type = FunctionScalarAux
variable = rho
function = rho_time
execute_on = 'INITIAL TIMESTEP_BEGIN'
[]
[](htgr/open-xe100/xe100_pke.i)Executioner
The Executioner block sets up the problem type and the numerical methods used to solve the neutronics. This block has the following parameters:
solve_type, the solve type for the system.
petsc_options_iname, names of PETSc name/value pairs.
petsc_options_value, values of PETSc name/value pairs.start_time, the start time of the simulation.
dt, the timestep between solves.
end_time, the end time of the simulation.
reset_dt, used when restarting a calculation to force a change in dt.
l_max_its, specifies the maximum number of linear iterations.
l_tol, the linear relative tolerance.
nl_max_its, specifies the maximum number of nonlinear iterations.
nl_rel_tol, the nonlinear relative tolerance.
nl_abs_tol, the nonlinear absolute tolerance.
[Executioner]
type = Transient
solve_type = 'PJFNK'
# Problem time parameters.
start_time = 0.0
dt = 0.5
end_time = 10.0
reset_dt = true
# Linear/nonlinear iterations.
l_max_its = 50
l_tol = 1e-3
[](htgr/open-xe100/xe100_pke.i)Outputs
Output in various formats are requested or suppressed in this block. Notably, the csv file that can be used for regression testing is requested.
[Outputs]
file_base = pke_fuel_auto
print_linear_residuals = false
print_linear_converged_reason = false
print_nonlinear_converged_reason = false
csv = true
[](htgr/open-xe100/xe100_pke.i)Running the Simulation
Griffin can be run on Linux, Unix, MacOS, and Windows in WSL. Griffin can be run from the shell prompt as shown below:
griffin-opt -i xe100_pke.i
Links
Griffin Open Xe-100 null transient
Griffin Open Xe-100 IQS transient