201 lines
No EOL
11 KiB
Python
201 lines
No EOL
11 KiB
Python
import numpy as np
|
|
import math
|
|
pi = math.pi
|
|
|
|
# domain
|
|
t0 = 0.0
|
|
tf = 1000.00
|
|
T = np.arange(t0,tf,0.01)
|
|
|
|
# NEUTRONICS DATA
|
|
tau_l = 16.73 # ORNL-TM-0728 %16.44; % (s)
|
|
tau_c = 8.46 # ORNL-TM-0728 %8.460; % (s)
|
|
P = 8.0 # Thermal Power in MW ORNL-TM-1070, p.2
|
|
n_frac0 = 1.0 # initial fractional neutron density n/n0 (n/cm^3/s)
|
|
Lam = 2.400E-04 # mean generation time ORNL-TM-1070 p.15 U235
|
|
# Lam = 4.0E-04; # mean generation time ORNL-TM-1070 p.15 U233
|
|
lam = np.array([1.240E-02, 3.05E-02, 1.11E-01, 3.01E-01, 1.140E+00, 3.014E+00])
|
|
beta = np.array([0.000223, 0.001457, 0.001307, 0.002628, 0.000766, 0.00023]) # U235
|
|
# beta = np.array([0.00023, 0.00079, 0.00067, 0.00073, 0.00013, 0.00009]) # U233
|
|
beta_t = np.sum(beta) # total delayed neutron fraction MSRE
|
|
rho_0 = beta_t-sum(np.divide(beta,1+np.divide(1-np.exp(-lam*tau_l),lam*tau_c))) # reactivity change in going from stationary to circulating fuel
|
|
C0 = beta / Lam * (1.0 / (lam - (np.exp(-lam * tau_l) - 1.0) / tau_c))
|
|
|
|
# Feedback co-efficients
|
|
a_f = -8.71E-05 # U235 (drho/°C) fuel salt temperature-reactivity feedback coefficient ORNL-TM-1647 p.3 % -5.904E-05; % ORNL-TM-0728 p. 101 %
|
|
a_g = -6.66E-05 # U235 (drho/°C) graphite temperature-reactivity feedback coefficient ORNL-TM-1647 p.3 % -6.624E-05; % ORNL-TM-0728 p.101
|
|
|
|
# CORE HEAT TRANSFER PARAMETERS
|
|
# FUEL PARAMETERS - DONE
|
|
vdot_f = 7.5708E-02 # ORNL-TM-0728 % 7.571e-2; % vol. flow rate (m^3/s) ORNL-TM-1647 p.3, ORNL-TM-0728 p.12
|
|
rho_f = 2.14647E+03 # (partially enriched U-235)ORNL-TM-0728 p.8 2.243E+03; % (Th-U) density of fuel salt (kg/m^3) ORNL-TM-0728 p.8
|
|
W_f = 1.623879934566580e+02 # 1.83085e+02;%vdot_f*rho_f; % 182.78; % calcd from m_dot*cp*delT=P; vdot_f*rho_f; % fuel flow rate (kg/s)
|
|
# tau_f_c = tau_c; % ORNL-TM-0728 % 8.45; % transit time of fuel in core (s) ORNL-TM-1070 p.15, TDAMSRE p.5
|
|
m_f = W_f * tau_c # fuel mass in core (kg)
|
|
nn_f = 2 # number of fuel nodes in core model
|
|
mn_f = m_f / nn_f # fuel mass per node (kg)
|
|
# cp_f = 4.2*9/5; % (MJ/deg-C) total fuel heat capacity TDAMSRE p.5
|
|
scp_f = 1.9665E-3 # specific heat capacity of fuel salt (MJ/kg-C) ORNL-TM-0728 p.8
|
|
|
|
# Core Upflow - DONE
|
|
v_g = 1.95386 # graphite volume(m^3) ORNL-TM-0728 p. 101
|
|
rho_g = 1.860E3 # graphite density (kg/m^3) ORNL-3812 p.77, ORNL-TM-0728 p.87
|
|
m_g = v_g * rho_g # graphite mass (kg)
|
|
cp_g = 3.6 * 9 / 5 # TDAMSRE p.5 graphite total heat capacity (MW-s/C) ORNL-TM-1647 p.3
|
|
scp_g = 1.773E-3 # cp_g/m_g; % graphite specific heat capacity (MW-s/kg-C) ORNL-TM-1647 p.3
|
|
mcp_g1 = m_g * scp_g # (mass of material x heat capacity of material) of graphite per lump (MW-s/°C)
|
|
mcp_f1 = mn_f * scp_f # (mass of material x heat capacity of material) of fuel salt per lump (MW-s/°C)
|
|
mcp_f2 = mn_f * scp_f # (mass of material x heat capacity of material) of fuel salt per lump (MW-s/°C)
|
|
hA_fg = 0.02 * 9 / 5 # (fuel to graphite heat transfer coeff x heat transfer area) (MW/°C) ORNL-TM-1647 p.3, TDAMSRE p.5
|
|
k_g = 0.07 # fraction of total power generated in the graphite ORNL-TM-0728 p.9
|
|
k_1 = 0.5 # fraction of heat transferred from graphite which goes to the first fuel lump
|
|
k_2 = 0.5 # fraction of heat transferred from graphite which goes to the second fuel lump
|
|
k_f = 0.93 # fraction of heat generated in fuel - that generated in the external loop ORNL-TM-0728 p.9
|
|
k_f1 = k_f / nn_f # fraction of total power generated in lump f1
|
|
k_f2 = k_f / nn_f # fraction of total power generated in lump f2
|
|
|
|
# New node for power deposited in fuel outside the core
|
|
k_out = 1 - (k_g + k_f) # fraction of power generated in fuel in external loop ORNL-TM-0728 p.9
|
|
m_out = W_f # (kg) Mass of node such that resident time is 1 sec (W_f needs to be defined)
|
|
|
|
# Initial conditions - DONE
|
|
Tf_in = 6.3222E+02 # in °C ORNL-TM-1647 p.2
|
|
T0_f2 = 6.5727E+02 # 6.5444E+02; % in °C 6.461904761904777e+02; ORNL-TM-1647 p.2
|
|
T0_f1 = Tf_in + (T0_f2 - Tf_in) / 2 # 6.405952380952389e+02; in °C
|
|
T0_g1 = T0_f1 + (k_g * P / hA_fg) # 6.589285714285924e+02; in °C
|
|
# T0_out = k_out * P / m_out / scp_f + T0_f2 # in °C (scp_f needs to be defined)
|
|
|
|
|
|
# Heat Exchanger - DONE
|
|
# Geometry
|
|
d_he = 16 # (in) he diameter ORNL-TM-0728 p. 164
|
|
h_he = 72 # (in) active height % 96; %(in) he height ORNL-TM-0728 p. 164
|
|
od_tube = 0.5 # (in) coolant tube OD ORNL-TM-0728 p. 164
|
|
id_tube = od_tube - 2 * 0.042 # (in) coolant tube ID ORNL-TM-0728 p. 164
|
|
n_tube = 159 # number of coolant tubes ORNL-TM-0728 p. 164
|
|
a_tube = 254 * 144 # (in^2) total area of tubes ORNL-TM-0728 p. 164
|
|
l_tube = a_tube / n_tube / (np.pi * od_tube) # (in) tube length
|
|
v_tube = n_tube * np.pi * (od_tube / 2) ** 2 * l_tube # (in^3) hx shell volume occupied by tubes
|
|
v_cool = n_tube * np.pi * (id_tube / 2) ** 2 * l_tube # (in^3) hx volume occupied by coolant
|
|
v_he = (d_he / 2) ** 2 * np.pi * h_he # (in^3) volume of heat exchanger shell
|
|
v_he_fuel = v_he - v_tube # (in^3) volume available to fuel in shell
|
|
|
|
# Unit conversions
|
|
in_m = 1.63871e-5 # 1 cubic inch = 1.63871e-5 cubic meters
|
|
|
|
# PRIMARY FLOW PARAMETERS - DONE
|
|
W_p = W_f # fuel flow rate (kg/s)
|
|
|
|
m_p = v_he_fuel * in_m * rho_f # fuel mass in PHE (kg)
|
|
nn_p = 4 # number of fuel nodes in PHE
|
|
mn_p = m_p / nn_p # fuel mass per node (kg)
|
|
cp_p = scp_f # fuel heat capacity (MJ/(kg-C))
|
|
|
|
# SECONDARY FLOW PARAMETERS - DONE
|
|
vdot_s = 5.36265E-02 # ORNL-TM-0728 p. 164 % 5.236E-02; % coolant volume flow rate (m^3/s) ORNL-TM-1647 p.3
|
|
rho_s = 1.922e3 # coolant salt density (kg/m^3) ORNL-TM-0728 p.8
|
|
W_s = 1.005793369810108e+02 # vdot_s*rho_s; % calcd from mdot*cp*delT; vdot_s*rho_s; % coolant flow rate (kg/s) ORNL-TM-1647 p.3
|
|
|
|
m_s = v_cool * in_m * rho_s # coolant mass in PHE (kg)
|
|
nn_s = 4 # number of coolant nodes in PHE
|
|
mn_s = m_s / nn_s # coolant mass per node (kg)
|
|
scp_s = 2.39E-3 # cp_s/m_s; % specific heat capacity of coolant (MJ/(kg-C) ORNL-TM-0728 p.8
|
|
|
|
A_phe = 2.359E+01 # effective area for heat transfer (primary and secondary, m^2) ORNL-TM-0728 p.164
|
|
|
|
ha_p = 6.480E-01 # heat transfer*area coefficient from primary to tubes (MW/C) ORNL-TM-1647 p.3
|
|
ha_s = 3.060E-01 # heat transfer*area coefficient from tubes to secondary (MW/C) ORNL-TM-1647 p.3
|
|
|
|
# Primary Side
|
|
mcp_pn = mn_p * cp_p # (mass of material x heat capacity of material) of fuel salt per lump in MW-s/°C
|
|
hA_pn = ha_p / nn_s # 3.030; % (primary to tube heat transfer coeff x heat transfer area) in MW/°C
|
|
|
|
# Tubes - DONE
|
|
nn_t = 2 # number of nodes of tubes in the model
|
|
rho_tube = 8.7745E+03 # (kg/m^3) density of INOR-8 ORNL-TM-0728 p.20
|
|
m_tn = (v_tube - v_cool) * in_m * rho_tube / nn_t # mass of tubes (kg)
|
|
scp_t = 5.778E-04 # specific heat capacity of tubes (MJ/(kg-C)) ORNL-TM-0728 p.20
|
|
mcp_tn = m_tn * scp_t # mass*(heat capacity) of tubes per lump in MW-s/°C
|
|
|
|
# Secondary Side - DONE
|
|
mcp_sn = mn_s * scp_s # (mass of material x heat capacity of material) of coolant salt per lump in MW-s/°C
|
|
hA_sn = ha_s / nn_s # (tube to secondary heat transfer coeff x heat transfer area) in MW/°C
|
|
|
|
# Initial conditions - DONE
|
|
# Primary nodes
|
|
Tp_in = T0_f2 # in °C ORNL-TM-1647 p.2
|
|
T0_p4 = Tf_in # 6.5444E+02; % in °C 6.461904761904777e+02; ORNL-TM-1647 p.2
|
|
T0_p1 = Tp_in + (T0_p4 - Tp_in) / 4 # in °C
|
|
T0_p2 = Tp_in + 2 * (T0_p4 - Tp_in) / 4 # in °C
|
|
T0_p3 = Tp_in + 3 * (T0_p4 - Tp_in) / 4 # in °C
|
|
|
|
# Secondary nodes
|
|
Ts_in = 5.4611E+02 # in °C ORNL-TM-1647 p.2
|
|
T0_s4 = 5.7939E+02 # in °C ORNL-TM-1647 p.2
|
|
T0_s1 = Ts_in + (T0_s4 - Ts_in) / nn_s # in °C
|
|
T0_s2 = Ts_in + 2 * (T0_s4 - Ts_in) / nn_s # in °C
|
|
T0_s3 = Ts_in + 3 * (T0_s4 - Ts_in) / nn_s # in °C
|
|
# Tube nodes
|
|
T0_t1 = (T0_p1 * hA_pn + T0_s3 * hA_sn) / (hA_pn + hA_sn) # in °C
|
|
T0_t2 = (T0_p3 * hA_pn + T0_s1 * hA_sn) / (hA_pn + hA_sn) # in °C
|
|
|
|
# Radiator Parameters - DONE
|
|
|
|
# Initial conditions - DONE
|
|
# Primary nodes
|
|
Trp_in = T0_s4 # 5.933E+02; % in °C ORNL-TM-1647 p.2
|
|
T0_rp = Ts_in # in °C ORNL-TM-1647 p.2
|
|
|
|
# Secondary nodes - DONE
|
|
Trs_in = 37.78 # (C) air inlet temperature ORNL-TM-1647 p.2
|
|
T0_rs = 148.9 # (C) air exit temperature ORNL-TM-1647 p.2
|
|
|
|
# Radiator Geometry
|
|
od_rad = 0.01905 # (m) outer diameter of tubes in the radiator ORNL-TM-0728 p.296
|
|
tube_wall_thick = 0.0018288 # (m) thickness of tubes in the radiator ORNL-TM-0728 p.296
|
|
id_rad = od_rad - 2 * tube_wall_thick
|
|
n_rtubes = 120 # number of tubes in the radiator (rows times tubes per row) ORNL-TM-0728 p.296
|
|
l_rtube = 9.144 # (m) length of tubes in the radiator ORNL-TM-0728 p.296
|
|
v_rp = pi * (id_rad / 2) ** 2 * l_rtube * n_rtubes # volume available to salt in the radiator
|
|
# v_rtube = pi * (od_rad / 2) ** 2 * l_rtube * n_rtubes - v_rp # volume of metal in radiator tubes *TUBES NOT MODELED
|
|
|
|
n_tpr = 12 # number of tubes per row in the radiator matrix
|
|
n_row = 10 # number rows in the radiator matrix
|
|
tube_space = 0.0381 # (m) spacing between tubes and rows of matrix
|
|
v_rs = (n_row * od_rad + (n_row - 1) * tube_space) * (n_tpr * od_rad + (n_tpr - 1) * tube_space) * l_rtube # volume of air inside radiator
|
|
|
|
# PRIMARY FLOW PARAMETERS - DONE
|
|
W_rp = W_s # coolant salt flow rate (kg/s)
|
|
m_rp = v_rp * rho_s # coolant salt mass in rad (kg)
|
|
nn_rp = 1 # number of coolant salt nodes in the radiator
|
|
mn_rp = m_rp / nn_rp # coolant mass per node (kg)
|
|
cp_rp = scp_s # coolant specific heat capacity (MJ/(kg-C))
|
|
|
|
# SECONDARY FLOW PARAMETERS - DONE
|
|
vdot_rs = 94.389 # ORNL-TM-0728 p. 296; 78.82; % air volume flow rate (m^3/s) ORNL-TM-1647 p.2
|
|
rho_rs = 1.1237 # air density (kg/m^3) REFPROP (310K and 0.1MPa)
|
|
W_rs = vdot_rs * rho_rs # air flow rate (kg/s)
|
|
|
|
m_rs = v_rs * rho_rs # coolant air mass in rad (kg)
|
|
nn_rs = 1 # number of coolant nodes in rad
|
|
mn_rs = m_rs / nn_rs # coolant mass per node (kg)
|
|
scp_rs = 1.0085E-3 # (MJ/kg-C) specific heat capacity of air at (air_out+air_in)/2 REFPROP
|
|
|
|
A_rad = 6.503E1 # (m^2) surface area of the radiator ORNL-TM-0728 p.14
|
|
h_roverall = P / A_rad / ((T0_rp + Trp_in) / 2 - (T0_rs + Trs_in) / 2) # cald as: P/A_rad/((T0_rp+Trp_in)/2-(T0_rs+Trs_in)/2) 3.168E-4; % (MW/m^2-C) polimi thesis
|
|
|
|
# Primary Side
|
|
mcp_rpn = mn_rp * cp_rp # (mass of material x heat capacity of material) of fuel salt per lump in MW-s/°C
|
|
hA_rpn = h_roverall * A_rad / nn_rs # 3.030; % (primary to secondary heat transfer coeff x heat transfer area) in MW/°C
|
|
|
|
# Secondary Side - DONE
|
|
mcp_rsn = mn_rs * scp_rs # (mass of material x heat capacity of material) of coolant salt per lump in MW-s/°C
|
|
hA_rsn = h_roverall * A_rad / nn_rs # (tube to secondary heat transfer coeff x heat transfer area) in MW/°C
|
|
|
|
# Pure time delays between components - DONE
|
|
tau_hx_c = 8.67 # (sec) delay from hx to core TDAMSRE p.6
|
|
tau_c_hx = 3.77 # (sec) subtracted 1 sec for external loop power generation node resident time; delay from core to fuel hx TDAMSRE p.6
|
|
tau_hx_r = 4.71 # (sec) fertile hx to core TDAMSRE p.6
|
|
tau_r_hx = 8.24 # (sec) core to fertile hx TDAMSRE p.6
|
|
|
|
first_val = (rho_0 - beta_t) * n_frac0 / Lam + lam[0] * C0[0] + lam[1] * C0[1] + lam[2] * C0[2] + lam[3] * C0[3] + lam[4] * C0[4] + lam[5] * C0[5] |