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


Griffin Open Xe-100 index

Griffin Open Xe-100 null transient

Griffin Open Xe-100 IQS transient

Griffin Open Xe-100 PKE transient

Griffin Open Xe-100 results

Griffin Open Xe-100 model