Reactor Kinetics — 0-D Point Kinetics + TH

Coupled 0-D reactor kinetics + 1-D thermal hydraulics + fuel/clad mechanics.

Simulates a Reactivity Insertion Accident (RIA) in a PWR-like subchannel:

  1. Steady-state (0–100 s): constant power, establish equilibrium.

  2. Transient (100–120 s): power excursion driven by an inlet-temperature perturbation, with Doppler and coolant temperature feedback. Gap closure is tracked as a terminal event.

Port of MATLAB Module 10 (reactorKinetics.m, initializeNeutronics.m, initializeCoolant.m, initializeFuelRod.m, funRHS.m, gapClosureEvent.m).

Key restructuring vs. MATLAB

  • Stresses are solved algebraically at every RHS evaluation (like Module 08) instead of being DAE state variables. This eliminates the need for a mass matrix and lets us use a standard ODE solver.

  • Pressure is also computed algebraically (not as an AE variable).

  • The state vector therefore contains only genuinely time-evolving quantities: power, 6 delayed-neutron precursor densities, fuel & clad temperatures, coolant enthalpy, clad plastic effective strain, and clad plastic strain components.

See also

Reactor Kinetics — 0-D Point Kinetics + TH — Key Facts, point kinetics, reactivity feedback.

class orpheus.kinetics.solver.KineticsParams(nz=2, dz0=1.5, fuel_r_in=0.0, fuel_r_out=0.00412, fuel_nr=20, porosity=0.05, burnup=0.0, fgr=0.06, pow0=69140.625, clad_r_in=0.00422, clad_r_out=0.00475, clad_nr=5, roughness=6e-06, p0_gas=1.2, v_gas_plenum=1e-05, a_flow0=8.914e-05, beta_eff=(0.0002584, 0.00152, 0.001391, 0.00307, 0.001102, 0.0002584), decay_constants=(0.013, 0.032, 0.119, 0.318, 1.403, 3.929), prompt_lifetime=2e-05, doppler_coeff=-2e-05, coolant_temp_coeff=-0.0002, inlet_T_table=((0.0, 553.0), (100.0, 553.0), (100.5, 300.0), (101.0, 300.0), (101.5, 553.0), (600.0, 553.0)), outlet_p_table=((0.0, 15.5), (600.0, 15.5)), inlet_vel_table=((0.0, 4.8), (600.0, 4.8)), t_steady_end=100.0, t_transient_end=120.0, dt_steady=1.0, dt_transient=0.1, rtol=1e-06, atol=0.0001, max_step_steady=10.0, max_step_transient=0.001)[source]

Bases: object

Physical parameters for the RIA simulation.

Parameters:
nz: int = 2
dz0: float = 1.5
fuel_r_in: float = 0.0
fuel_r_out: float = 0.00412
fuel_nr: int = 20
porosity: float = 0.05
burnup: float = 0.0
fgr: float = 0.06
pow0: float = 69140.625
clad_r_in: float = 0.00422
clad_r_out: float = 0.00475
clad_nr: int = 5
roughness: float = 6e-06
p0_gas: float = 1.2
v_gas_plenum: float = 1e-05
a_flow0: float = 8.914e-05
beta_eff: tuple = (0.0002584, 0.00152, 0.001391, 0.00307, 0.001102, 0.0002584)
decay_constants: tuple = (0.013, 0.032, 0.119, 0.318, 1.403, 3.929)
prompt_lifetime: float = 2e-05
doppler_coeff: float = -2e-05
coolant_temp_coeff: float = -0.0002
inlet_T_table: tuple = ((0.0, 553.0), (100.0, 553.0), (100.5, 300.0), (101.0, 300.0), (101.5, 553.0), (600.0, 553.0))
outlet_p_table: tuple = ((0.0, 15.5), (600.0, 15.5))
inlet_vel_table: tuple = ((0.0, 4.8), (600.0, 4.8))
t_steady_end: float = 100.0
t_transient_end: float = 120.0
dt_steady: float = 1.0
dt_transient: float = 0.1
rtol: float = 1e-06
atol: float = 0.0001
max_step_steady: float = 10.0
max_step_transient: float = 0.001
class orpheus.kinetics.solver.KineticsResult(time, power, reac_doppler, reac_coolant, reac_total, cDNP, ingas_p, fuel_T, clad_T, cool_T, cool_Tsat, cool_TCHF, cool_regime, cool_p, cool_h, cool_vel, cool_void, fuel_r_out, clad_r_in, clad_r_out, clad_sig_r, clad_sig_h, clad_sig_z, clad_sig_eng, gap_dr, gap_h, clad_epsPeff, params)[source]

Bases: object

Complete time-history of the RIA simulation.

Parameters:
time: ndarray
power: ndarray
reac_doppler: ndarray
reac_coolant: ndarray
reac_total: ndarray
cDNP: ndarray
ingas_p: ndarray
fuel_T: ndarray
clad_T: ndarray
cool_T: ndarray
cool_Tsat: ndarray
cool_TCHF: ndarray
cool_regime: ndarray
cool_p: ndarray
cool_h: ndarray
cool_vel: ndarray
cool_void: ndarray
fuel_r_out: ndarray
clad_r_in: ndarray
clad_r_out: ndarray
clad_sig_r: ndarray
clad_sig_h: ndarray
clad_sig_z: ndarray
clad_sig_eng: ndarray
gap_dr: ndarray
gap_h: ndarray
clad_epsPeff: ndarray
params: KineticsParams
orpheus.kinetics.solver.solve_reactor_kinetics(params=None, verbose=True)[source]

Simulate a Reactivity Insertion Accident.

Parameters:
  • params (KineticsParams, optional) – Problem specification. Uses defaults if None.

  • verbose (bool) – Print progress messages.

Return type:

KineticsResult