<<

An Examination of Critical Heat Flux in a Nuclear Fuel Rod Using an Explicit Finite Difference Scheme

By Alex Christensen

A THESIS

submitted to

Oregon State University

University Honors College

in partial fulfillment of the requirements for the degree of

Honors Baccalaureate of Science in Nuclear Engineering (Honors Scholar)

Presented June 8, 2018 Commencement June 2018

AN ABSTRACT OF THE THESIS OF

Alex Christensen for the degree of Honors Baccalaureate of Science in Nuclear Engineering presented on June 8, 2018.

Title: An Examination of Critical Heat Flux in a Nuclear Fuel Rod Using an Explicit Finite Difference Scheme

Abstract approved:

Wade Marcum

One of the most important components in the safety analysis of a nuclear reactor is its critical heat flux (CHF), as it can compromise the structural integrity of the clad and lead to the release of fission products into the primary . Groeneveld et. al. has published a series of look-up tables used in the prediction of the onset of CHF. A forward-element finite difference method was written to model the temperature dis- tribution in a fuel rod and, using a series of look-up tables published by Groeneveld et. al, the CHF and critical heat flux ratio determined and compared against that previously published for a Westinghouse PWR. Two test cases were run using the finite difference method, one with a uniform volumetric heat generation distribution, the other a sinusoidal distribution. Included in the analysis of the sinusoidal dis- tribution are hot spot factors associated with typical LWRs. While the preliminary steady state test results appear accurate, future tests need to be performed using transient power distributions. Additionally, the assumption of no axial significantly affects the critical heat flux ratio (CHFR) at nodes near the inlet and outlet of the core when using a sinusoidal heat generation profile. This assumption should be removed prior to the conduction of transient tests.

Key Words: Critical Heat Flux, Departure From Nucleate , Finite Difference, Sub-channel Analysis,

Corresponding e-mail address: [email protected] ©Copyright by Alex Christensen June 8, 2018 All Rights Reserved An Examination of Critical Heat Flux in a Nuclear Fuel Rod Using an Explicit Finite Difference Scheme

By Alex Christensen

A THESIS

submitted to

Oregon State University

University Honors College

in partial fulfillment of the requirements for the degree of

Honors Baccalaureate of Science in Nuclear Engineering (Honors Scholar)

Presented June 8, 2018 Commencement June 2018 Honors Baccalaureate of Science in Nuclear Engineering project of Alex Christensen presented on June 8, 2018

APPROVED:

Wade Marcum, Mentor, representing the School of Nuclear Science and Engineering

Dan LaBrier, Committee Member, representing the School of Nuclear Science and Engineering

Guillaume Mignot, Committee Member, representing the School of Nuclear Science and Engineering

Toni Doolen, Dean, Oregon State University Honors College

I understand that my project will become part of the permanent collection of Oregon State University Honors College. My signature below authorizes release of my project to any reader upon request.

Alex Christensen, Author Contents

1 Introduction 1 1.1 Motivation ...... 1 1.2 Objectives ...... 2 1.3 Overview of the Following Chapters ...... 3

2 Literature Review 4 2.1 The heat equation ...... 4 2.2 The use of numerical methods in heat transfer ...... 4 2.2.1 The explicit finite-difference method ...... 5 2.2.2 The implicit finite-difference method ...... 6 2.3 Critical Heat Flux ...... 7

3 Problem Description 11

4 Methodology 14 4.1 Calculations ...... 14

5 Results and Discussion 18 5.1 Steady State Test Cases ...... 18 5.1.1 Derivation of the Analytical Solution ...... 18 5.1.2 Comparison Between Analytical and Numerical Solutions . . . 20 5.2 Steady State CHF Tests ...... 34

6 Conclusion 39

7 List of Variables 43

8 Appendix 45 1 Introduction

1.1 Motivation

The understanding of the temperature distribution in a nuclear fuel rod is paramount to the safety of nuclear energy. If a reactor’s cladding exceeds its maximum allowable temperature, it may be at risk of becoming breached, allowing for the release of ra- dioactive contaminants into the primary cooling loop. Because of the inherent risks associated with nuclear energy, much effort is expended in the analysis of so-called design basis accidents.

One type of design basis accident which must be taken into account is a control rod withdrawal accident. In this accident scenario, it is speculated that a control rod is suddenly ejected from the core. Assuming the reactor was previously at criticality (when the neutron population in any two consecutive fission generations is the same and power is unchanging), the massive positive reactivity insertion causes the core to become supercritical (where the neutron population and subsequent power level increase exponentially from generation to generation) [1]. Under many circumstances, the reactor core will actually become prompt critical, a unique case of supercriticality in which the prompt neutrons (those released directly from the fission reaction itself) alone are enough to bring the reactor critical. This phenomenon is often referred to as a reactor pulse.

Under normal operating conditions, it is important for the amount of heat being gen- erated inside the reactor core to equal that which is removed by the passing coolant. Under these operating conditions, the temperature is held constant throughout the core as a function of time. These conditions are known as steady state. However, when the core becomes supercritical, this is no longer the case. Since the volumet- ric heat generation rate in the fuel is proportional to the total power of the core, as power rapidly increases, the temperature distribution of the fuel itself will begin increasing. As heat is not transferred instantaneously, it takes time for the heat to diffuse through the rest of the fuel rod (typically comprised of three regions: the fuel, gap, and clad), before being transferred to the coolant. Because of this latency, the system will remain in a transient state until power levels out and the temperature

1 has time to equalize.

Due to the tight coupling between temperature and material properties, the rates at which temperatures change are highly non-linear. As power continues to increase, the amount of heat being transferred into the will increase as well, resulting in ever increasing temperatures. Eventually, the water will begin to boil. As the thermodynamic quality (the ratio of vapor and in the water as a function of mass) increases, a critical point is eventually reached when the vapor forms a film around the surface of the fuel element. The heat flux at which this occurs is known as the critical heat flux (CHF). Because steam is much less effective at transferring heat than liquid water, the amount of heat being transferred into the water will rapidly de- crease, causing the temperature of the cladding to increase dramatically in a fraction of a second [1]. This puts tremendous stress on the cladding, leading to its potential failure.

Because of the importance in ensuring this does not occur, a common thermal limi- tation is placed on the heat flux between the clad and the coolant. One of the most widely utilized methods for predicting the onset of critical heat flux are a set of look- up tables published by Groeneveld et al. that interpolate on the input quantities mass flux, pressure, and equilibrium quality [2]. These tables are the result of a sta- tistical analysis of hundreds of independent databases. Most importantly, however, is that an assumption of thermal equilibrium was made in the creation of these tables. Little research has been conducted into the impact non-thermal equilibrium has on the value of CHF

1.2 Objectives

The objective of this thesis to examine the prediction of critical heat flux in a standard Westinghouse pressurized water reactor. To do this, the current critical heat flux look- up tables published by Groeneveld et al. will be leveraged against the results obtained using an explicit finite difference scheme.

2 1.3 Overview of the Following Chapters

• Literature Review: An overview of general background information on the topic, including heat transfer, finite difference methods, boiling, and critical heat flux.

• Problem Description: This section contains a detailed description of the problem being modeled, including diagrams of a fuel rod and the binning layout used in the problem.

• Methodology: This section contains the derivation of the explicit finite differ- ence method used, including the equations used for the node temperatures, the convection coefficient, and the methodology for updating water temperature as a function of height.

• Results and Discussion: This section contains an analysis of the results ob- tained. It first describes a steady state test problem which was used to verify the finite difference codes ability to accurately model the parameters needed to determine critical heat flux. This includes the derivation of an analytical solu- tion for the temperature distribution in the fuel rod, which compared against the results of the numerical temperature distribution.

This section also analyzes the CHF results obtained with varied parameters and compares them with those predicted by the Groeneveld look-up tables.

• Conclusion: This section describes and attempts to justify the assumptions and simplifications used in this model and how they may have affected the results. It reiterates the importance of this work and the results obtained. Lastly, it examines several improvements that could be made to the model and outlines potential work to be done in the future.

3 2 Literature Review

2.1 The heat equation

Derived from the energy transport equation, the heat equation is [4]:

∂T (~r, t) ∇ · k(~r, T )∇T (~r, t) +q ˙(~r, t) = ρ(~r, T )C(~r, T ) (1) ∂t where k is the thermal conductivity, C is the heat capacity, ρ is the density of the material, andq ˙ is the volumetric heat generation. Equation (1) is a parabolic partial differential equation with spatial and temporal dependence. This makes developing an analytic solution difficult without using a large number of assumptions, such as con- stant material properties, one-dimensional heat flow, and time-independent (steady state).

In a control rod withdrawal accident, rapidly changing power levels combined with a tight coupling of material properties and temperature make these assumptions inap- plicable and therefore analytically solving for the temperature distribution unappeal- ing. Therefore, other methods will be looked at to solve the heat equation.

2.2 The use of numerical methods in heat transfer

Two commonly used approaches for numerically solving the heat equation include the explicit and implicit finite-difference methods. In a finite-difference method, spacial and temporal variables are discretized. The spatial discretization is often represented using a nodal network, as depicted in Figure 1. The spatial domain of the problem is discretized into an M×N grid, where M is the number of bins radially and N the num- ber of bins axially. Depending upon which method is used for each of the temporal and spatial derivatives, the methods can be first or second order in time and in space. In this paper, both the implicit and explicit methods referred to use a combination of either the forwards or backwards difference method for the temporal derivative and a central difference method for the spatial derivative. Both of these explicit and implicit finite difference methods are first order accurate in time and second order accurate in space, meaning the error introduced numerically into the solution will be

4 proportional to the time step and the square of the space step.

Figure 1: The nodal network associated with a finite difference scheme

2.2.1 The explicit finite-difference method

In the explicit finite difference scheme, the temperature for any node at time t + ∆t may be calculated using only information from the same node and its neighbors at the previous time t [3]. To do this, the spatial and time derivatives are approximated using a forward-difference approximation:

∂T T p+1 − T p = m,n m,n (2) ∂t m,n ∆t

Because of this, the temperature of a node at any given time step is independent of the temperature of itself or other nodes at the same time step. This is important because it significantly simplifies its implementation and does not require the sort of non-linear iteration seen in implicit methods.

A downside to this method is its stability requirement:

5 α∆t 1 ≤ (3) (∆r)2 2

k Where α is the thermal diffusivity, defined as α = ρC . Frequently, this stability requirement dictates the use of very small values for ∆t. This often leads to a large number of time intervals to be necessary for a solution to be reached, significantly increasing computation time [3].

2.2.2 The implicit finite-difference method

Unlike the explicit finite-difference method, the implicit finite-difference method uses a backward-difference approximation to evaluate the time and spatial derivatives, meaning that it uses the temperature values of the node and its neighbors at time t + ∆t and t instead of at t and t − ∆t to evaluate the derivatives:

T p+1 − T p+1 ∂T m+1,n m,n (4) m+ 1 ,n = ∂r 2 ∆r

T p+1 − T p+1 ∂T m,n m−1,n (5) m− 1 ,n = ∂r 2 ∆r

Because the new temperature of the (m,n) node is dependent on the new temperatures of it and its adjoining nodes, all of which are unknown, all of the new temperatures at time t + ∆t must be solved for simultaneously. This is done with an iterative (marching) scheme, typically utilizing Gauss-Seidel iteration or matrix inversion [3]. The backwards-difference scheme has a more advantageous region of stability than that of the forward-difference method. This allows for the use of a larger time step, leading to fewer iterations needed and thus a potential reduction in computational run time. It should be noted, however, that while a greater time step may be chosen for the backwards-difference method due to it being unconditionally stable, in order to ensure sufficient accuracy, ∆t must still remain adequately small for the solution

6 to converge, as well as maintain a high enough temporal resolution to capture key features in time. One should also note that the whatever potential reduction in run time is gained from needing fewer time steps is often offset by the increase in compu- tational expense, as the backwards difference method requires the solving of a system of equations at every time step. Because of this, the implicit method is generally considered best used when dealing with relatively large time steps.

Although there are other methods than the ones mentioned above, methods such as the Crank-Nicolson method which is based on the second order accurate trapezoidal rule used for ODEs, they are in general more difficult to implement and more com- putationally intensive.

Due to the necessity of using a small time step to capture the evolution of the tem- perature distribution in the fuel rod when CHF occurs, the explicit finite difference method was identified as the more favorable approach for this paper.

2.3 Critical Heat Flux

Boiling heat transfer is of particular importance in the safety analysis of nuclear reac- tors. The provision of sufficient margin between the anticipated transient heat fluxes and the critical boiling heat fluxes is a major factor in the designs of LWR cores, as are the two- coolant thermal conditions under accidental loss of coolant events [4].

Boiling occurs in several phases, as can be seen in Figure 2. In the natural convection region, the convective heat transfer coefficient is relatively constant. Once point a is reached, the water enters the phase, where, due to bubble formation and eventual departure, the quantity of heat being transfered into the water will in- crease. What this stage looks like can be seen in Figure 3. It should be noted that in this figure, the bubbles appear very neat and orderly. However, due to natural convection and turbulent flow, the region where bubbles begin to leave the surface is much more chaotic in nature.

Eventually, the increase in heat being transferred to the coolant comes to end at point c, where a phenomenon known as departure from nucleate boiling occurs (the heat flux at point c is known as the critical heat flux). Once the heat flux (q00) reaches

7 CHF, it becomes constant for a short period of time during which the heat transfer coefficient plummets, as steam transfers heat much more poorly than liquid water. 00 Because of this, in order for q to remain constant, ∆Texcess has to increase at a rate which is inversely proportional to h. Since the temperature of the water is constant, the temperature of the outer cladding increases.

Figure 2: A typical boiling curve for water.

Because the amount of time it takes from the moment CHF occurs to reach film boiling (where there is no longer any liquid water in contact with the fuel element) is near instantaneous, it is paramount for nuclear reactors not to reach CHF. If DNB occurs at full power, the reactor’s thermal design limits will be breached, leading to the loss of fuel integrity and eventual cladding breach.

Currently, there exists hundreds of empirical correlations to predict CHF. This demon- strates the complexity of the CHF mechanism, as no single correlation, equation, or theory will ever be applicable in every scenario. This complexity is exacerbated when additional factors such as transients, non-uniform flux distributions, and asymmetric

8 Figure 3: A representation of what is occurring in the cooling channel from the point at which nucleation begins to occur to when bubbles begin to depart. cross sections are introduced. To address this, Groeneveld et al. has published a series of look-up tables, each expanding upon the previous, that predict the value of CHF as a function of pressure, mass flux, and thermodynamic quality [2]. In these tables, Groeneveld has performed a statistical analysis of hundreds of different data sets and created what is essentially a normalized database. These look-up tables are used globally as the standard in CHF prediction. Figure 4 shows an example of the CHF distribution predicted by Groeneveld’s look-up tables at the mass flux seen in a standard Westinghouse PWR, the same type used in the model.

In nuclear reactor safety analysis, a parameter known as the critical heat flux ra-

9 tio (CHFR) is typically used to help determine what is considered safe operating conditions. CHFR is calculated using the simple ratio:

q00 CHFR = cr (6) q00

00 00 where qcr is the predicted CHF and q is the heat flux at some particular location in the core. A minimum CHFR is set for the entire core and no CHFR measured at any location in the core is allowed to exceed it. For a typical Westinghouse PWR, the minimum CHFR is 1.3 [1]. This conservative limit provides a certain safety margin, helping to ensure that departure from nucleate boiling never occurs.

Figure 4: A plot of the CHF predicted by Groeneveld’s tables vs. P and Xeq while using the mass flux associated with a standard Westinghouse PWR.

10 3 Problem Description

A PWR nuclear fuel rod is a cylinder composed of three layers, as seen in Figure 5: the

fuel, made of UO2, the gap, which is a void filled with an inert gas, such as helium, and the outer clad, made of the metal zircalloy, an alloy of zirconium used for its thermal and neutronic characteristics. It is both axially and azimuthally symmetrical, mean- ing symmetrical slices could be made down its center both horizontally and vertically.

In order for a finite difference method to be used, the domain must first be discretized as depicted in Figure 6, with the associated mathematical notation further explained in Figure 7. Since the problem is radially symmetric, only half of the cylinder needs to be modeled. First, the problem is divided into its three sections: fuel, gap, and clad. Next, the domain is discretized radially in the m-direction. Because the size of each section varies drastically, with the fuel nearly 50 times wider than the gap region, it would be impractical to use the same bin size in each section. Therefore, each section is assigned its own bin size. The most restrictive of these (the gap) is used in the stability analysis to determine ∆t.

Figure 5: (a) A radial slice of a PWR fuel rod and (b) a vertical slice of a PWR fuel rod.

11 While, technically, it is assumed that there is no heat being transferred azimuthally or axially, making the problem one-dimensional, the temperature of the outer cladding is still dependent on the temperature of the coolant which increases as it travels across the length of the core. Therefore, the problem must also be discretized vertically. Because there are no changes in material made from bin to bin in this direction, a constant ∆z can be used along the entire length of the core.

Figure 6: A layout of the binning used throughout the fuel rod.

12 Figure 7: A radial diagram of the binning and notation used in the derivation of the finite difference scheme.

.

13 4 Methodology

4.1 Calculations

All equations calculated in this work allow for the inclusion of transient volumetric heat generation rates. However, all of the results presented are for steady state sys- tems in which the power is held constant.

Starting with the heat equation in cylindrical coordinates [3]:

1 ∂  ∂T  1 ∂  ∂T  ∂  ∂T  ∂T kr + k + k +q ˙ = ρC (7) r ∂r ∂r r2 ∂θ ∂θ ∂z ∂z ∂t where k is the thermal conductivity, C is the heat capacity, ρ is the density of the material, andq ˙ is the volumetric heat generation.

∂T  An assumption can be made that the problem is radially symmetric ∂θ = 0 and ∂T  that there is no heat being transferred along the axis of the fuel rod ∂z = 0 , allow- ing the equation to be written as

∂  ∂T  ∂T kr +qr ˙ = ρCr (8) ∂r ∂r ∂t

Using a forward-element finite-difference approximation, the equation can be written as

" #   p p   p p  1 p Tm−1,n − Tm,n p Tm+1,n − Tm,n k 1 r 1 + k 1 r 1 ∆rm−1+∆rm m− ,n m− m+ ,n m+ 2 2 ∆r 2 2 ∆r 2 m−1 m T p+1 − T p  +q ˙p r = ρp Cp r m,n m,n m,n m m,n m,n m ∆t (9) h i h i Now, if each bin m is split into two control volumes between r 1 , rm and rm, r 1 , m− 2 m+ 2 the equation takes the form:

14       p+1 p ! ∆rm−1 p p ∆rm p p Tm,n − Tm,n rm− 1 ρ 1 C 1 + rm+ 1 ρ 1 C 1 = 4 2 m− 4 ,n m− 4 ,n 4 2 m+ 4 ,n m+ 4 ,n ∆t p p ! p p ! p Tm−1,n − Tm,n p Tm+1,n − Tm,n k r 1 + k r 1 m− 1 ,n m− m+ 1 ,n m+ 2 2 ∆rm−1 2 2 ∆rm     p ∆rm−1 p ∆rm +q ˙m−1,nrm− 1 +q ˙m,nrm+ 1 4 2 4 2 (10)

The notation being used is explained visually in Figure 7. After a bit of rearrange- ment, the final form of the equation for nodes m = [2,M − 1] can be written:

  p p  p+1 2∆t p Tm−1,n − Tm,n T = p p p p k 1 r 1 m,n m− ,n m− 2 rm− 1 ∆rm−1ρ 1 C 1 + rm+ 1 ∆rmρ 1 C 1 2 ∆rm−1 4 m− 4 ,n m− 4 ,n 4 m+ 4 ,n m+ 4 ,n   p p      p Tm+1,n − Tm,n ∆rm−1 p ∆rm +k r 1 +q ˙ r 1 +q ˙ r 1 m+ 1 ,n m+ m−1,n m− m,n m+ 2 2 ∆rm 4 2 4 2 p + Tm,n (11)

For node m = 1, because only one control volume is looked at (as opposed to the normal two), equation (3) may be written as:

" #   p p  p+1 p ! 1 p T2,n − T1,n p p p T1,n − T1,n k 1 r 1 +q ˙ r 1 = ρ 1 C 1 r 1 ∆r1 1+ ,n 1+ 1,n 1+ 1+ ,n 1+ ,n 1+ 2 2 ∆r 4 2 2 2 ∆t 2 1 (12)

∆r1 Replacing r 1 with and simplifying gives 1+ 2 2

  p p    p+1 2∆t p T2,n − T1,n p ∆r1 p T = p p k 1 r 1 +q ˙ r 1 + T 1,n 1+ ,n 1+ 2 1,n 1+ 4 1,n ρ 1 C 1 r1+ 1 ∆r1 2 ∆r1 2 1+ 4 ,n 1+ 4 ,n 4 (13)

For node M, because of the convection boundary condition, the equation has the form

15   p p  p+1 2∆t p TM−1,n − TM,n T = k r 1 M,n p p M− 1 ,n M− r 1 ∆r ρ C 2 2 ∆r M− M−1 M− 1 ,n M− 1 ,n M−1 4 4 4 (14)  ∆r  +hp r T p − T p  m + T p c,n M w,n M,n 2 m,n

where Tw is the water temperature and hc is the convective heat transfer coefficient.

To obtain hc, first the Reynolds number is calculated:

md˙ Re = (15) Axµ

wherem ˙ is the mass flow rate, d is the hydraulic diameter of the reactor core, Ax is the cross sectional flow area of the core, and µ is the viscosity. Next, the Prandtl number is calculated:

Cµ P r = (16) k

The Reynolds number and Prandtl number are then plugged into the Dittus-Boelter correlation for a fluid being heated to calculate the Nusselt number:

Nu = 0.023Re0.8P r0.4 (17)

Finally, hc may be calculated

Nuk h = (18) c d

p To update the water temperature, the total heat into the water at n (Qn) is calculated:

p p p  Qn = hcA Tw,n − TM,n (19)

where A is the total wetted surface area. Since the purpose of this paper is to examine

16 CHF, being able to identify the properties of water under two phase flow is necessary. Therefore, enthalpy will be used to update the temperature of the water. To calculate the enthalpy (h) for the next value of n, the following equation is used:

 v2   v2  0 = Qp − W˙ p +m ˙ hp + n + gz − m˙ hp + n+1 + gz (20) n n n n 2 n n+1 n+1 2 n+1 where v is the velocity of the water. Sincem ˙ and v are assumed to be constant throughout the core and W˙ = 0, the equation may be rewritten as:

Qp hp = n + hp − g(z − z ) (21) n+1 m˙ n n+1 n

After determining the enthalpy at node n+1, the following function is used to calculate p Tw,n+1:

p Tw,n+1 = Tsat hl ≤ h ≤ hg p p (22) p hn+1−hn p Tw,n+1 = C + Tw,n h ≤ hl ∨ h ≥ hg

where hl and hv are the liquid and vapor enthalpies.

17 5 Results and Discussion

5.1 Steady State Test Cases

To verify the numerical scheme, the method was run under steady state (constant power) conditions typically seen in Westinghouse PWRs operating at full power (3411 MW thermal [4]). To speed up the time required to reach thermal equilibrium, an analytical approximation was used to estimate the initial temperature distribution. However, it should be noted that even with a relatively accurate initial distribution, thousands of iterations were required before all nodes met the convergence criteria. This is a direct consequence to the strict stability requirements of the explicit finite difference scheme. In order to maintain a high enough resolution to capture the gap region between the fuel and clad, a very small time step is required.

5.1.1 Derivation of the Analytical Solution

The equations used to model the analytical solution are the following:

Clad and Gap:

Starting with the simplified heat equation (steady state, no heat generation):

∂  ∂T  kr = 0 (23) ∂r ∂r

The temperature of the outer clad is found using the equation:

q˙ Tco = + Tw (24) hc

Where hc is obtained using the same process outlined for the numerical solution.

Using Tco and a convection boundary condition, the equation can be integrated twice and written as:

18 Z T Z Rco h R (T − T ) dT = c co co w dr (25) Tco r kr

Since thermal conductivity varies as a function of temperature, one cannot simply integrate this function. To get around this, a plot of integrated thermal conductivity vs. temperature is often used. However, lacking these plots for zirconium and helium, this method could not be used. To get around this, the domain is instead discretized in the same manner as the finite difference method and thermophysical property tables used instead. These tables were extracted from the IAEA’s Thermophysical properties database of materials for light water reactors and heavy water reactors [10] in addition to the MATLAB function XSteam [11]. Using a right point Riemann sums method, the problem is numerically integrated, giving an equation for each nodes temperature:

Z xi+1 f(x)dx ≈ ∆xf(xi+1) (26) xi

  hcRco(Tco − Tw) Tm = Tm+1 + ∆r (27) km+1rm+1

00 00 In the gap, using Tci and setting qg (r = rci) = qc (r = rci) for the boundary conditions, the final equation is identical to that of the clad.

Fuel:

∂  ∂T  kr +qr ˙ = 0 (28) ∂r ∂r

dT Using the boundary condition dr = 0 at r = 0, the equation may be integrated and written in the form:

dT q˙ = − r (29) dr 2k

19 Integrating again yields:

Z T Z Rfo  qr˙  dT = dr (30) Tfo r 2k

Using the same Riemann sums integration technique as before, the steady state so- lution for the fuel region is:

q˙ Tm = Tm+1 + ∆r rm+1 (31) 2km+1

5.1.2 Comparison Between Analytical and Numerical Solutions

For verification purposes, several variables were chosen to be examined in the 3411 MW test problem. These variables include the coolant temperature, pressure, and equilibrium quality, as they are the parameters used in Groeneveld’s look up table.

First, the temperature distributions will be examined. For the purpose of verifica- tion, two cases will run at 3411 MW. The first will use a constant volumetric heat generation, meaning the power is assumed to be uniform throughout the core. The second case will use a more realistic sinusoidal power distribution.

Constant Power Profile: Under the assumption of a constant power profile, the volumetric heat generation rate can be obtained using the following equation:

Q q˙ = 2 (32) πrfoL

The following equation may be used to analytically derive an equation for the water temperature while in single-phase flow [4]:

20 Z Tw(z) Z z mC˙ dT = πrfoqdz˙ (33) L Tin − 2

Which can be rewritten and solved for Tw as a function of z:

πr2 q˙  L T (z) = T + fo z + (34) w in mC˙ 2

To be consistent with the numerical method, however, the function needs be solved explicitly, meaning the temperature of the current bin will depend on the previous one. This can be done using a discrete equation of the form:

πr2 q˙ T = T + fo ∆z (35) w,n+1 w,n mC˙

Using the same methodology to calculate h as was used in the finite difference method, equilibrium quality (Xeq) can be calculated using the following equation:

h − hl Xeq = (36) hl − hg

As can be seen in Figure 8, all three of the temperature distribution plots exhibit the correct shape for the temperature distribution in a nuclear fuel rod: a peak tempera- ture at the center of the fuel rod, followed by an ever increasing negative slope until the gap is reached, at which point a sharp, linear-like drop is seen. This continues until the next material change occurs, at which point the temperature slowly declines until it reaches the edge of the clad. The outer temperature of the clad is similar to that of the water at that particular node.

In all three temperature distribution error plots, the error can clearly be seen to decrease from left to right, with the exception of the clad at the outlet. Several things are contributing to the error propagation. First, the truncation error associ- ated with the finite difference method. The explicit scheme is second order in space

21 and is typically the least accurate finite difference scheme used. Second, the finite difference scheme uses an average of two temperatures to calculate each of the heat capacities and thermal conductivities. The analytical solution does not, although due to computational simplicity uses a considerably higher resolution mesh, especially in the fuel region. However, the differences in thermal properties is likely contributing in large part to the error observed. Another thing that may be contributing to the error is where the function evaluation starts. In the finite difference scheme, error does not propagate in a specific direction, but rather in both, as the temperature of the next time step depends on previously evaluated temperatures of both its left and right neighbors. The analytical solution, however, requires one to start on the right side (at the outer surface of the clad) and work their way left, as this is where the boundary condition is known.

With a uniform power profile and in the sub-cooled liquid region, the water tem- perature profile should linearly increase throughout the core, as predicted by the equation:

Q =mCdT ˙ (37)

for which the equation used to calculate Tw is based on. Indeed, the temperature q0 distribution in the water seen in Figure 9 appears linear with a slope of mC˙ . Any non-linear behavior can be attributed to the temperature dependent nature of heat capacity.

Enthalpy can be calculated independently of temperature using the equation:

Qp hp = n + hp − g(z − z ) (38) n+1 m˙ n n+1 n

Enthalpy can also be directly related to temperature when in single phase flow (hl > h and h > hv). This relationship is characterized by the equation:

h2 − h1 =mC ˙ (T2 − T1) (39)

22 Therefore, it is expected that the value of h will be linearly proportional to the value of T. This relationship is observed in Figure 10. Furthermore, because the equilib- rium quality is dependent on the value of h, it is linearly proportional to enthalpy and, through enthalpy, water temperature. This linear behavior is reflected in Figure 11.

Groeneveld’s CHF look-up tables use three parameters to predict CHF: pressure, mass flux, and equilibrium quality. Because the system is assumed to be in equilibrium, a constant mass flux is used throughout the core:

m˙ G = (40) Ax

Pressure is more difficult to quantify, due to the complex geometry of a reactor core designed specifically to make the flow as turbulent as reasonably achievable. To truly quantify the losses throughout a core is a difficult, tedious process. Therefore, because the overall pressure drop throughout the core is rather small, all losses but that due to gravity are assumed to be negligible. Therefore, the pressure distribution throughout the core is linear, defined by the function:

P (z) = P0 − gρwz (41)

23 Table 1: The parameters used in the analytical solution [4].

Parameter Value Q 3411 MW q000 309.92 MW/m3

Tinlet 573.00 K

Tmid 589.61 K

Tout 605.03 K

P0 155 bar

24 Figure 8: A comparison between the analytical and numerical temperature distribu- tions while at 3411 MW using a uniform heat generation and the percent difference between the two solutions at: (a),(b) the core inlet (c),(d) midcore and (e),(f) the core outlet.

25 Figure 9: A comparison between the analytical and numerical water temperature distributions while using a uniform volumetric heat generation rate throughout the core.

Figure 10: A plot of the analytical and numerical enthalpy distributions while using a uniform volumetric heat generation rate throughout the core.

26 Figure 11: A plot of the analytical and numerically calculated equilibrium quality distributions while using a uniform volumetric heat generation rate throughout the core.

Figure 12: A plot of the mass flux throughout the core.

27 Figure 13: A plot of the pressure distribution throughout the core.

While using a uniform heat generation makes for a good test problem, it is not repre- sentative of a nuclear system like a pressurized water reactor. For further verification purposes, a second test problem was run, this time using a realistic axial power dis- tribution.

Sinusoidal Power Profile: The equation defining the power profile of a typical PWR is [4]:

L Z 2 0 πz Q = qmax cos dz (42) L L − 2

0 Where qmax is the maximum linear heat rate. Using known information, the equation can be rewritten to solve for the max linear heat rate:

L q0 = (43) max 2π

Which can the be used to solve for the linear heat rate as a function of height and subsequently the volumetric heat generation rate:

28 πz q0 = q0 cos (44) max L

γq0 q˙ = 2 (45) Npπrfo

where γ is the fraction of energy deposited into the fuel per fission and Np is the number of fuel rods in the core.

Unlike in the uniform heat generation case, due to the way the volumetric heat gener- ation goes to zero at the inlet and outlet, there is no temperature gradient across the fuel rod. This is, of course, not physically true. It is, however, an effect of assuming no heat transfer along the axis of the fuel rod. Because of this, the temperature of all the nodes at n = 1 and n = N equal that of the coolant (note: there is a change of 0.3 K across the domain at the outlet in the numerical solution. However, this is due to the truncation error associated with the finite difference method). Therefore, in this particular test case, inlet refers to the nodes at n = 2 and outlet to nodes n = N - 1.

In Figure 14, the relationship between the error plots of the temperature distribu- tions is more complicated. Interestingly, the error appears to increase towards the midpoint of the reactor core and decrease at the sides. This is because of the changing heat generation. As less heat is generated, the heat flux and temperature gradient becomes smaller, yielding less error throughout the domain. The actual features of the inlet and outlet plots are overshadowed by their small magnitudes in comparison to the midcore. The error plot at the inlet is noticeably different from any of the other plots, where the slope of the error in the clad is negative. It should be noted, however, that this error is several orders of magnitude smaller than anywhere else. This, along with the negative nature of the line, offer two possible explanations for the odd behavior: either the difference is due to the use of temperature averages in the numerical solution or the numerical solution never truly reached thermal equilib- rium. It is possible that if allowed to run longer, the system would equilibrate at the boundary and the error would grow even smaller. While further research would need to be conducted to identify the cause of this behavior, for the purposes of verification, it is not considered significant.

29 There is an observable difference in Figure 15 between the water temperature calcu- lated using the analytical solution and that calculated using the numerical solution. The two lines are almost perfectly out of phase with one another by a single node. This indicates the error is likely due to the discretization of the problem.

As explained and observed in the previous test case, the linearly proportional rela- tionship between enthalpy and equilibrium quality is still present in Figures 16 and 17. Although no longer linear in form, the water temperature is still dependent on the integral of the linear heat rate. The overall shape of the curves is sinusoidal, a characteristic obtained from the non-uniform heat generation distribution. It should be noted, however, that due to the assumption of no heat being transferred along the axis of the fuel rod, the temperatures at the top and bottom of the rod will be lower than they realistically should be. While this assumption will impact the equilibrium quality distribution throughout the core, the overall quality change should not be sig- nificantly impacted, as the same amount of heat is being transferred into the coolant, just at different locations. If axial heat transfer were considered, more heat would be transferred at the top and bottom of the rod and less in the middle.

Because the system is in thermal equilibrium and the only pressure loss being consid- ered is due to gravity, there is no change in the pressure and mass flux distributions from the previous test case.

Table 2: The parameters used in the sinusoidal solution [4].

Parameter Value Q 3411 MW

Tinlet 573.00 K

Tmid 588.90 K

Tout 604.99 K

P0 155 bar

30 Figure 14: A comparison between the analytical and numerical temperature distri- butions while at 3411 MW using a sinusoidal heat generation distribution and the percent difference between the two solutions at: (a),(b) the core inlet (c),(d) midcore and (e),(f) the core outlet. 31 Figure 15: A comparison between the analytical and numerical water temperature distributions while using a sinusoidal volumetric heat generation rate throughout the core.

Figure 16: A plot of the analytical and numerical enthalpy distributions while using a sinusoidal volumetric heat generation rate throughout the core.

32 Figure 17: A plot of the analytical and numerically calculated equilibrium quality distributions while using a sinusoidal volumetric heat generation rate throughout the core.

Figure 18: A plot of the mass flux throughout the core.

33 Figure 19: A plot of the pressure distribution throughout the core.

The results of these two cases using both uniform and sinusoidal heat generation pro- files demonstrates the code’s ability to accurately model the parameters that go into Groeneveld’s look-up tables.

5.2 Steady State CHF Tests

In the case of a uniform heat generation distribution, equilibrium quality increases linearly throughout the core, pressure decreases linearly, and mass flux remains con- stant. Under realistic conditions, the predicted CHF line should be linear with a negative slope as a function of height. While the heat generation profile in this case is unrealistic, this linear behavior should still be seen. However, observed is a line with slightly non-linear characteristics. This is likely due to the assumptions made in calculating the pressure distribution across the core. Were a more accurate pressure distribution used, the curve would straighten out.

More interesting is the data pertaining to the second case, where, since a realistic

34 Figure 20: Plots of the calculated heat flux, critical heat flux, and critical heat flux ratio using a uniform volumetric heat generation rate throughout the core. axial flux profile was used, meaningful comparisons can be made to typical CHFR profiles. Under realistic conditions, the predicted CHF line should be linear with a negative slope as a function of height. This linear relationship was not observed in the test case. This non-linear behavior in the predicted critical heat flux is due to several things, the first of which is the simplified pressure distribution. The overall impact of this, however, is likely rather small, as the total pressure drop across the reactor core is essentially negligible in comparison to the pressure’s overall magnitude. The sinusoidal behavior of the curve suggests the largest contributor to this behavior is in fact tied to the heat generation distribution. Due to the assumption of no heat being transferred axially, the heat flux at the outer cladding is only dependent upon what heat is being generated at that particular axial position. While the impact of this at the midcore is relatively small, as the heat generation profile is peaking and

35 thus changes in the rate are smallest, near the inlet and outlet, little to no heat is being generated. Because the temperature of the outer cladding is not as high as it would be in real life, the equilibrium quality at these locations is not entirely accurate, resulting in the irregular behavior of the CHF curve.

Figure 21: Plots of the calculated heat flux, critical heat flux, and critical heat flux ratio using a sinusoidal volumetric heat generation rate throughout the core.

In a typical Westinghouse PWR, the minimum CHFR is 1.3 [4] and should be lo- cated at the midcore location, as this is where the flux profile is highest. While the minimum CHFR of the model is also located at the midcore location, it is 6.0. This difference is due to the use of core average values in the model. In a physical reactor core, the radial thermal neutron flux profile throughout the core, proportional to the radial power profile, is not uniform. In general, fuel bundles (a 17x17 array of fuel rods) closer to the center of the core have higher power profiles than those towards the edges, although other factors also contribute like proximity to control rods, fuel enrichment, and burn up. This power variation results in some fuel rods to be hotter than others. The minimum CHFR value reported for a typical Westinghouse PWR is for the hottest fuel rod. The temperature profile calculated in the model assumes

36 all fuel rods to be of equal temperature.

Using a heat flux hot spot factor allows for the analysis of areas in the core with power levels that vary from the average values already discussed. Here, the two

largest parameters will be examined. These factors include fR, the radial variation in power density (the ratio of peak flux to flux averaged with respect to radial distance), and fz, the axial variation in power density (the ratio of peak flux to flux averaged with respect to axial distance). Typical values for fR and fz in an LWR are around 2.058 and 1.484, respectively. These factors are used to modify the flux using the simple equation: 00 00 qmax = fqavg (46)

As expected, Figure 22 shows how as the hot spot factor is increased, the average CHFR for the entire fuel rod decreases. As the power of the rod increases, the qual- ity of the fluid increases as well, causing the critical heat flux ratio to decrease at some non-linear rate. As is apparent from the figure, the significance of radial and axial variations in power density throughout the core cannot be ignored. Where the minimum CHFR found for the core average heat flux was 6.0, including fz in the cal- culation dropped it to 3.4 and with fR dropped to 1.7. This difference only reinforces the necessity of using the peak power in the safety analysis of reactors. Interestingly, as the power of the rod is increased, the location of the minimum CHFR shifts away from the midcore and closer to the core outlet. The exact reason for this is unclear. The only variable used in the CHF look-up tables to change is equilibrium quality. One possible explanation is the non-linear relationship between equilibrium quality and CHF.

00 00 00 Because CHFR equals the ratio of qcr over q , as qcr decreases at each node from the previously calculated value using information from case 2 and q00 increases at each node by f, the CHFR decreases at some non-linear rate. This relationship is further examined in Fig. 23, where the CHFR at the midcore is plotted against a varying value for the hot spot factor. As the behavior of CHF as a function of Xeq is non-linear and based on empirical data, the exact nature of the relationship between CHFR and f is difficult to derive. However, both a relatively low order polynomial and an exponential curve can be fit to the data with high accuracy.

37 Figure 22: A plot comparing the average CHFR with those amplified by the hot spot factors.

Figure 23: A plot in which the calculated CHFR at the midcore using a varying hot spot factor f.

38 6 Conclusion

This model is a much simplified version of a nuclear fuel rod. It was assumed that heat transfer along the axis and angular directions was negligible. A common simplifica- tion, especially with analytical solutions, this will impact the calculated temperature distribution along the fuel rod to some degree. However, this should not significantly impact the parameters at the outer cladding when DNB occurs.

Another simplification made was to model the water channel using a single cell. This implies that the water temperature across the entire channel is a uniform temper- ature. Without this simplification, the model would have been significantly more complicated, as well as computationally expensive. Because CHF is a local phe- nomena and not a global one (meaning steam will form on the sides of the cladding before appearing in the entire channel), the overall impact this assumption has on the numerical solution may be large. It may be possible to increase the accuracy of the solution by breaking the channel up into several nodes and assuming conduction between them. This, however, will create its own problems, as the channel’s velocity profile is not uniform and any mixing between cells will be difficult to account for.

Other assumptions made include azimuthal symmetry, meaning the geometry, mate- rial composition, power generation, and temperatures are symmetric about the z-axis, as well as a uniform volumetric heat generation in the fuel. Each fuel rod is assumed to be the same, so placement in the core is not a factor. While making meaningful comparisons between results from the numerical model and the temperature distribu- tion of an actual reactor difficult, this should not have any impact on the parameters of DNB and therefore poses no significant source of error in any future analysis.

Lastly, although heat transfer in the gap region is dominated by radiation (as it is a gas), only conduction is used in the model. This should have a similar impact to the assumptions mentioned earlier: while affecting the temperature distribution and heat flux throughout the fuel rod, it will have little impact on the parameters of the outer clad or water at the time DNB occurs. This assumption will increase the ther- mal resistance of the gap significantly, decreasing the temperature of the clad and increasing the temperature of the fuel itself.

39 Much work remains to be done. In a control rod withdrawal accident, thermal equi- librium no longer exists, as power is increasing exponentially. Currently, only steady state test cases have been used for the purpose of verification. Minimal testing has been done using a time-dependent power level. The accuracy of these results is highly questionable, as the currently used Nusselt number correlation does not apply in a mixed liquid-vapor state. In the future, transient cases need to be run and analyzed.

Two of the simplifications made to the problem could be eliminated without requir- ing a reworking of the entire model: including radiation heat transfer in the gap and allowing for axial heat flow. The overall impact that neglecting radiation had on the problem is unknown, as the numerical results could not be compared with reliable empirical data. However, not allowing for axial heat transfer had a noticeable impact on the temperature distribution at nodes near the inlet and outlet of the core when using a sinusoidal heat generation distribution. Including this would require the ad- dition of two terms in the temperature equations used.

Changes could also be made to the numerical scheme used. Some of the biggest drawbacks to the forward difference scheme are its inaccuracy and run time. The stability requirements dictate the use of a very small time step. In the steady state cases, even using an analytical approximation as an initial guess, the small time step lead to needing tens of thousands of iterations to be run before thermal equilibrium was reached. An unconditionally stable implicit method, such as the backwards dif- ference or Crank-Nicolson method, would eliminate the strict stability requirements associated with explicit methods. This would allow for the use of a varying time step, where a coarser time discretization could be used until the boiling region, where a finer discretization would then be used to ensure features/phenomena, like departure from nucleate boiling, aren’t lost. Since departure from nucleate boiling occurs on the order of milliseconds, the Crank-Nicolson method in particular could be a viable alternative approach. Although more computationally expensive, it is of higher or- der accuracy and is generally considered the most accurate finite-difference method to use with small time steps. However, although unconditionally stable, the Crank- Nicolson method suffers from numerical oscillations unless a small enough time step is used. This puts similar restrictions on the maximum allowed time step to those that the currently used forward difference method used. A possible hybrid method

40 using a backwards difference method for the coarse time step and the Crank-Nicolson method for the fine time step could prove very effective.

Even with the forward difference method, there are multiple ways in which improve- ments could be made. While the current implementation of the forward difference scheme is serial, the method itself is parallelizable in space, as the temperature at each node for a given time step only relies on previously calculated data from the last time step. A tridiagonal matrix can be created and solved quickly using pre-built solvers. Parallelizing the code will require substantial effort, but the potential speed up may well be worth it.

41 References

[1] J. Duderstadt, L. Hamilton Nuclear Reactor Analysis, John Wiley and Sons, (1976).

[2] D.C. Groeneveld, et. al., ”The 2007 CHF look-up table,” Nuclear Engineering and Design, Vol. 237, p. 1909-1922, (2006).

[3] T. Bergman, A. Lavine, F. Incropera, D. Dewitt, Fundamentals of Heat and Mass Transfer, ch. 5, p. 337, John Wiley and Sons, (2011).

[4] N. Todreas, M. Kazimi, Nuclear Systems I: Thermal Hydraulic Fundamentals, ch. 12, Hemisphere Publishing Corporation, (1990).

[5] C. An, F. C. Moreira, J. Su, ”Thermal analysis of the melting process in a nuclear fuel rod,” Applied Thermal Engineering, Vol. 68, p. 133-143, (2014).

[6] I. Noor, Irzaman, H, Syafutra, F. Ahmad, ”Simulation of Heat Transfer in Cylin- der Husks Furnace with Finite Difference Method,” IOP Conference Series: Earth and Environmental Science, 31, (2016).

[7] K. Pandey, M. Mahesh, ”Determination of Temperature Distribution in a Cylin- drical Nuclear Fuel Rod a Mathematical Approach,” International Journal of Innovation, Management, and Technology, Vol. 1, (2010).

[8] Y. Cengel, Heat Transfer: A Particle Approach, (2nd ed.), ch. 10, p. 518-519, McGraw-Hill, (1998).

[9] L. Tong ”Heat Transfer in Water-Cooled Nuclear Reactors,” Nuclear Engineering Design, Vol. 6, p. 301-324, (2010).

[10] ”Thermophysical properties database of materials for light water reactors and heavy water reactors,” IAEA-TECDOC-1496, (2006).

[11] M. Holmgren, ”XSteam - Thermophysical Properties of Water and Steam,” (2007).

42 7 List of Variables

T ≡ Temperature t ≡ Time ∆t ≡ Change in time α ≡ Thermal diffusivity ∆r ≡ Change in space radially P ≡ Pressure q00 ≡ Heat flux 00 qcr ≡ Critical heat flux r ≡ Radius rfo ≡ Outer fuel radius rci ≡ Inner clad radius rco ≡ Outer clad radius ∆z ≡ Change in space axially k ≡ Thermal conductivity C ≡ Heat capacity ρ ≡ Density q000 ≡ Volumetric heat generation rate q0 ≡ Linear heat rate Re ≡ Reynolds number m˙ ≡ Mass flow rate

Ax ≡ Cross sectional flow area µ ≡ Viscosity d ≡ Hydraulic diameter P r ≡ Prandtl number

hc ≡ Heat transfer coefficient Q ≡ Thermal power A ≡ Total wetted surface area v ≡ Flow velocity g ≡ Gravity constant

Tsat ≡ Saturated temperature

Tw ≡ Water temperature

43 Tco ≡ Outer clad temperature L ≡ Length of core z ≡ Axial position

Xeq ≡ Equilibrium quality h ≡ Enthalpy hl ≡ Enthalpy of saturated liquid

hg ≡ Enthalpy of saturated gas

Np ≡ Number of fuel rods

P0 ≡ Inlet pressure

44 8 Appendix

%% Finite Difference Method clear

%Oregon State University Honors Thesis %Author: Alex Christensen

%heat_capacities_UO2 is initially in kJ/mol*K

%The user is able to determine the number of interior nodes in each region, %which in turn determines delta_x. Nodes will always be located at the %center of the pin, the material transitions, and the edge of the pin. %Using the stability criterion, the largest delta_t is selected that will %keep the system stable.

%MAKE SURE TO CHECK THE UNITS OF EVERYTHING

%%%%%%%%%%%%%%% IMPORTANT %%%%%%%%%%%%%%%%% %Run this prior to executing script %addpath(strcat(pwd,’\Functions’)); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%% Initialization

%User-Defined Variables run_number = 7; t_max = 10; num_int_nodes_fuel = 15; num_int_nodes_gap = 2; num_int_nodes_clad = 5; num_nodes_axial = 50;

%Constants g = 9.81; sigma = 5.67e-8; %Boltzman Constant eps_fo = 0.87;

45 eps_ci = 0.806;

%Reactor Properties Q0 = 3411e6; reactivity_inserted = [0.9]; times_of_P_changes = [0.0]; enrichment = 0.031; r_fo = 0.4095e-2; r_ci = 0.4177e-2; r_co = 0.4749e-2; D_eq_c = 3.37; %m L = 3.66; %m m_dot = 17.4e3; %kg/s (NS) A_x_c = 4.747; %cross sectional flow area [m^2] T_inlet = 573; %559; %K (300 deg C) T_outlet = 605; %597; %K (332 deg C) density_UO2 = 10.97e3; %kg/m^3 This assumes 100% packed, which may be incorrect density_clad = 6.55e3; %kg/m^3 Zircaloy 4 T_max_i = 2061; %K Max initial temperature of fuel T_min_i = 597; %K Outer cladding initial temperature P_sys_in = 155; %bar num_assemblies = 193; num_rods_per_assembly = 17^2; pitch = 1.25e-2; %m

P_sys = P_sys_in;

%For channel A_x = pitch^2-pi*r_co^2; P_w = 2*pi*r_co; D_eq = 4*A_x/P_w;

%Mass flux (kg/m^2*s) G = m_dot/A_x_c;

%Water velocity V_water = m_dot/(A_x_c*XSteam(’rho_pT’,P_sys,(T_inlet+T_outlet)/2 - 273));

46 T_water_sat = XSteam(’Tsat_p’,P_sys) + 273; h_v = XSteam(’hV_p’,P_sys); h_l = XSteam(’hL_p’,P_sys);

%Tables are defined as: [T (K), variable] load(’Tables.mat’);

%Convert Cp_UO2 to kJ/kg*K (based on enrichment of U) M_U235 = 235.04; M_U238 = 238.05; M_O = 16.00; atom_frac = enrichment/(enrichment + (M_U235/M_U238)*(1-enrichment)); M_UO2 = atom_frac*M_U235 + (1-atom_frac)*M_U238 + 2*M_O; Cp_UO2(:,2) = Cp_UO2(:,2) * (1000/M_UO2);

%Calculate delta_x for each region delta_r_fuel = r_fo/(num_int_nodes_fuel + 1); %The (+ 1) takes into account the node at the transition delta_r_gap = (r_ci - r_fo)/(num_int_nodes_gap + 1); delta_r_clad = (r_co - r_ci)/(num_int_nodes_clad + 1); delta_z = L/(num_nodes_axial - 1); %The (- 1) takes into account the node at y=0

%Identify the positions of each of the nodes %x_positions = zeros(1,M); r_positions = 0; for i = 2:(num_int_nodes_fuel + 2) r_positions(i) = delta_r_fuel + r_positions(i-1); end for i = (i + 1):(num_int_nodes_gap + i + 1) r_positions(i) = delta_r_gap + r_positions(i-1); end for i = (i + 1):(num_int_nodes_clad + i + 1) r_positions(i) = delta_r_clad + r_positions(i-1); end z_positions = (0:num_nodes_axial-1).*delta_z;

%Identify delta_t based on stability criterion alpha = [k_UO2(60,2)/(Cp_UO2(22)*density_UO2),

47 k_He(60,2)/(Cp_He(60,2)*density_He(60,2)), k_clad(4,2)/(Cp_clad(5,2)*density_clad)]; delta_r = [delta_r_fuel; delta_r_gap; delta_r_clad];

% Convergence Criteria: alpha*delta_t/delta_x^2 <= 1/2 delta_t = min(0.5*delta_r.^2./alpha)*0.9; %0.9 is margin times = (0:(t_max/delta_t)).*delta_t;

M = 4 + num_int_nodes_fuel + num_int_nodes_gap + num_int_nodes_clad; N = num_nodes_axial;

%Calculate in a fuel rod %Q = getPowers(Q0, reactivity_inserted, times_of_P_changes, delta_t, times); %Q(1) = 3411e6;

%Q = ones(length(times),1)*8000e6; % Q(1) = 3411e6; % for i = 2:length(times) % Q(i) = Q(i-1) + 20e6; % end %Q = ones(length(times),1)*3411e6;

%Q = ones(N,1)*3411e6;

% q_vol = (Thermal power produced in fuel)/V_fuel = (0.974*Thermal Power) / V_fuel

%q_vol = 0.974*Q/(num_assemblies*num_rods_per_assembly*(pi*r_fo^2*L)); %W/m^3

Q = 3411e6; z = -L/2:delta_z:L/2; q_lin_max = Q/(L/pi*2*num_assemblies*num_rods_per_assembly); q_lin = q_lin_max*cos(pi*z/L); %W/m q_vol = 0.974*q_lin/(pi*r_fo^2); %W/m^3

%% Equations

T_water = zeros(N,length(times));

48 %T_water(:,1) = (T_outlet-T_inlet)/L*z_positions + T_inlet; T_water(1,1) = T_inlet;

T = zeros(M,N,1);

%Calculate the initial temperature distribution using analytical %approximation for n = 1:N q_flux = r_fo^2*q_vol(n)/(2*r_co); h1 = XSteam(’h_pT’,P_sys,T_water(n,1)-273); Cp = XSteam(’Cp_ph’,P_sys,h1)*1000; mu = XSteam(’my_ph’,P_sys,h1); k = XSteam(’tc_ph’,P_sys,h1); Re = G*D_eq/mu; Pr = Cp*mu/k; Nu = 0.023*Re^0.8*Pr^0.4; %Dittus-Boelter Correlation h = Nu*k/D_eq; T_co = q_flux/h + T_water(n,1); k_c = interp1(k_clad(:,1),k_clad(:,2),T_co,’linear’,’extrap’); for i = 0:num_int_nodes_clad + 1 %The clad T(M-i,n,1) = q_vol(n)/(4*k_c)*(r_co^2 - (r_co - delta_r_clad*i)^2) + T_co; k_c = interp1(k_clad(:,1),k_clad(:,2),T(M-i,n,1),’linear’,’extrap’); end T_ci = T(M - 1 - num_int_nodes_clad,n,1); k_g = interp1(k_He(:,1),k_He(:,2),T_ci,’linear’,’extrap’); for i = 1:num_int_nodes_gap + 1 %The gap (only conduction assumed) T(M-num_int_nodes_clad-1-i,n,1) = q_vol(n)/(4*k_g)*(r_ci^2 - ... (r_ci - delta_r_gap*i)^2) + T_ci; k_g = interp1(k_He(:,1),k_He(:,2),T(M-i,n,1),’linear’,’extrap’); end for i = (num_int_nodes_fuel+1):-1:1 k_f = interp1(k_UO2(:,1),k_UO2(:,2),T(i+1,n,1),’pchip’,’extrap’); T(i,n,1) = T(i+1,n,1)+delta_r_fuel*(q_vol(n)/(2*k_f)*((i-1)*delta_r_fuel)); end if n ~= N T_water(n+1,1) = q_flux*(num_assemblies*num_rods_per_assembly*... 2*pi*r_co*delta_z)/(m_dot*Cp) + T_water(n,1); end end

49 x_th = zeros(N,1); x_fl = zeros(N,1); density_H2O = XSteam(’rho_ph’,P_sys,h1); m_tot = A_x_c*delta_z*density_H2O; for p = 1:length(times)-1 for n = 1:N for m = 1:M if m ~= M %Center Line if m == 1 [a1,a2,a3,a4] = getInputs_CL(m, n, p, delta_t, T, delta_r_fuel, q_vol(n), k_UO2, Cp_UO2, density_UO2);

%Internal fuel nodes elseif m <= 1+num_int_nodes_fuel [a1,a2,a3,a4] = getInputs(m, n, p, delta_t, T, delta_r_fuel, ... delta_r_fuel, r_positions(m), q_vol(n), q_vol(n), k_UO2, ... k_UO2, Cp_UO2, Cp_UO2, density_UO2, density_UO2, ... num_int_nodes_fuel, num_int_nodes_gap);

%Fuel-gap transition elseif m == 2 + num_int_nodes_fuel %check on the Cp temperatures [a1,a2,a3,a4] = getInputs(m, n, p, delta_t, T, delta_r_fuel, ... delta_r_gap, r_positions(m), q_vol(n), 0, k_UO2, k_He, Cp_UO2, ... Cp_He, density_UO2, density_He , num_int_nodes_fuel, ... num_int_nodes_gap);

%Internal Gap Nodes elseif 3 + num_int_nodes_fuel <= m && ... m <= 2 + num_int_nodes_fuel + num_int_nodes_gap [a1,a2,a3,a4] = getInputs(m, n, p, delta_t, T, delta_r_gap, ... delta_r_gap, r_positions(m), 0, 0, k_He, k_He, Cp_He, Cp_He, ... density_He, density_He, num_int_nodes_fuel, num_int_nodes_gap);

%Gap-Clad Interface

50 elseif m == 3 + num_int_nodes_fuel + num_int_nodes_gap [a1,a2,a3,a4] = getInputs(m, n, p, delta_t, T, delta_r_gap, ... delta_r_clad, r_positions(m), 0, 0, k_He, k_clad, Cp_He, ... Cp_clad, density_He, density_clad, num_int_nodes_fuel, ... num_int_nodes_gap);

%Clad Nodes elseif 4 + num_int_nodes_fuel + num_int_nodes_gap <= m && ... m <= 3 + num_int_nodes_fuel + num_int_nodes_gap + ... num_int_nodes_clad [a1,a2,a3,a4] = getInputs(m, n, p, delta_t, T, delta_r_clad, ... delta_r_clad, r_positions(m), 0, 0, k_clad, k_clad, ... Cp_clad, Cp_clad, density_clad, density_clad, ... num_int_nodes_fuel, num_int_nodes_gap); end

%Update the temperature T(m,n,p+1) = T(m,n,p) + a1*(a2 + a3 + a4);

%Clad-Water Interface else if n == 1 T_water(n,p) = T_inlet; P_sys = P_sys_in; x_th(1,p) = 0; x_fl(1,p) = 0; h1 = XSteam(’h_pT’,P_sys,T_water(n,p)-273); density_H2O = XSteam(’rho_pT’,P_sys,(T_inlet+T_outlet)/2 - 273); else density_H2O = XSteam(’rho_pT’,P_sys,(T_inlet+T_outlet)/2 - 273); P_sys = P_sys - g*delta_z*density_H2O*1e-5; V_water = m_dot/(A_x_c*density_H2O); T_water_sat = XSteam(’Tsat_p’,P_sys) + 273; h_v = XSteam(’hV_p’,P_sys); h_l = XSteam(’hL_p’,P_sys); end %Look into why x_fl does not equal 1.0 ever.

51 if h1 >= h_l && h1 <= h_v %if saturated alpha(n,p) = 1/(1 + (1-x_fl(n,p))/x_fl(n,p)* ... (XSteam(’rhoV_p’,P_sys)/XSteam(’rhoL_p’,P_sys))); Cp2 = alpha(n,p)*XSteam(’CpV_p’,P_sys)*1000 + ... (1 - alpha(n,p))*XSteam(’CpL_p’,P_sys)*1000; mu = alpha(n,p)*XSteam(’my_ph’,P_sys,h_v) + ... (1 - alpha(n,p))*XSteam(’my_ph’,P_sys,h_l); elseif h1 <= h_l %if fully liquid alpha(n,p) = 0.0; Cp2 = XSteam(’Cp_ph’,P_sys,h1)*1000; mu = XSteam(’my_ph’,P_sys,h1); else %if fully vapor alpha(n,p) = 1.0; Cp2 = XSteam(’Cp_ph’,P_sys,h1)*1000; mu = XSteam(’my_ph’,P_sys,h1); end

%Calculate h h = getH(P_sys,h1,G,D_eq,Cp2,mu,alpha(n,p)); %Use different nu correlation h_dummy(n,p) = h; %Calculate new temperature for T_co [a1,a2,a3] = getInputs_CO(m,n,p,delta_t,T,T_water,delta_r_clad, ... r_positions(m),density_clad,h,Cp_clad,k_clad); T(m,n,p+1) = T(m,n,p) + a1*(a2 + a3);

%heat into water at n (all flow channels) q(n,p) = h*(T(M,n,p) - T_water(n,p))*(2*pi*r_co*delta_z)* ... (num_assemblies*num_rods_per_assembly); if n ~= N %No reason to do this if n == N if p == 1 %The water temperatures are already calculated h1 = (q(n,p)/1000)/m_dot + h1 - g*delta_z/1000; %Units of h are in kJ/kg... else h2 = (q(n,p)/1000)/m_dot + h1 - g*delta_z/1000; if h2 >= h_l && h2 <= h_v %Check to see if mixture T_water(n+1,p) = T_water_sat;

52 h1 = h2; else T_water(n+1,p) = (h2-h1)*1000/Cp2 + T_water(n,p); h1 = h2; end end x_th(n+1,p) = XSteam(’x_ph’,P_sys,h1); %x_fl(n+1,p) = x_th(n+1,p); x_fl(n+1,p) = x_th(n+1,p)*m_tot*V_water/(m_dot*delta_z); %This will never equal 1. Only variable is x_th. %Will create a discontinuity when x_th = 1. end end end end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%Save a backup of the run every 500 iterations to allow for easier %debugging if mod(p,500) == 0 save(strcat(pwd,strcat(’\Runs\’,sprintf(’run_%1.0f_data’,run_number)))); end

%%Convergence Criteria %if %Add a convergence criteria to stop method %end end save(sprintf(’run_%1.0f_data’,run_number));

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Functions %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function h = getH(P_sys, h1, G, D_eq, Cp2, mu, alpha)

%Water Properties

53 %These need to be multiplied by the void fraction. IDK how %to calculate the void fraction with what is known. %Form: a = (1-alpha)*a_l + alpha*a_v k3 = alpha*XSteam(’tcV_p’,P_sys) + (1 - alpha)*XSteam(’tcL_p’,P_sys); %k3 = XSteam(’tc_ph’,P_sys,h1); %density_H2O = XSteam(’rho_ph’,P_sys,h1);

Re = G*D_eq/mu; Pr = Cp2*mu/k3; Nu = 0.023*Re^0.8*Pr^0.4; %Dittus-Boelter Correlation h = Nu*k3/D_eq;

function [a1,a2,a3,a4] = getInputs(m, n, p, delta_t, T, delta_r_1, delta_r_2, ... r, q_vol_1, q_vol_2, k1_dat, k2_dat, Cp1_dat, Cp2_dat, rho1, rho2, ... num_int_nodes_fuel , num_int_nodes_gap)

T_avg_1 = (0.25*T(m-1,n,p) + 0.75*T(m,n,p))/2; %T_(m-1/4) T_avg_2 = (0.75*T(m,n,p) + 0.25*T(m+1,n,p))/2; %T_(m+1/4) T_avg_3 = (T(m-1,n,p) + T(m,n,p))/2; %T_(m-1/2) T_avg_4 = (T(m,n,p) + T(m+1,n,p))/2; %T_(m+1/2) k1 = interp1(k1_dat(:,1),k1_dat(:,2),T_avg_3,’linear’,’extrap’); Cp1 = interp1(Cp1_dat(:,1),Cp1_dat(:,2),T_avg_1,’linear’,’extrap’); k2 = interp1(k2_dat(:,1),k2_dat(:,2),T_avg_4,’linear’,’extrap’); Cp2 = interp1(Cp2_dat(:,1),Cp2_dat(:,2),T_avg_2,’linear’,’extrap’);

%Interpolate if necessary to find the He density if m == 2 + num_int_nodes_fuel rho2 = interp1(rho2(:,1),rho2(:,2),T_avg_2,’linear’,’extrap’); elseif 3 + num_int_nodes_fuel <= m && m <= 2+num_int_nodes_fuel+num_int_nodes_gap rho1 = interp1(rho1(:,1),rho1(:,2),T_avg_1,’linear’,’extrap’); rho2 = interp1(rho2(:,1),rho2(:,2),T_avg_2,’linear’,’extrap’); elseif m == 3 + num_int_nodes_fuel + num_int_nodes_gap rho1 = interp1(rho1(:,1),rho1(:,2),T_avg_1,’linear’,’extrap’); end

%Update the temperature

54 a1 = (2*delta_t)/((r-0.25*delta_r_1)*delta_r_1*rho1*Cp1 + ... (r+0.25*delta_r_2)*delta_r_2*rho2*Cp2); a2 = k1*(r-0.5*delta_r_1)*(T(m-1,n,p) - T(m,n,p))/delta_r_1; %Heat in a3 = k2*(r+0.5*delta_r_2)*(T(m+1,n,p) - T(m,n,p))/delta_r_2; %Heat out a4 = 1/2*((r-0.25*delta_r_1)*q_vol_1*delta_r_1 + ... (r+0.25*delta_r_2)*q_vol_2*delta_r_2); %Heat generated

function [a1,a2,a3,a4] = getInputs_CL(m, n, p, delta_t, T, delta_r_2, q_vol_2, ... k2_dat, Cp2_dat, rho2)

T_avg_2 = (T(m,n,p) + T(m+1,n,p))/2; r = 0; k2 = interp1(k2_dat(:,1),k2_dat(:,2),T_avg_2,’linear’,’extrap’); Cp2 = interp1(Cp2_dat(:,1),Cp2_dat(:,2),T_avg_2,’linear’,’extrap’); a1 = 2*delta_t/(rho2*Cp2*(r+0.25*delta_r_2)*delta_r_2); a2 = k2*(r+0.5*delta_r_2)*(T(m+1,n,p) - T(m,n,p))/delta_r_2; a3 = 0; %No heat into the central node a4 = q_vol_2*(r+0.25*delta_r_2)*(delta_r_2)/2;

function [a1,a2,a3] = getInputs_CO(m, n, p, delta_t, T, T_water, delta_r, r, ... rho_0, h, Cp_clad, k_clad)

T_avg_0 = 3/4*(T(m,n,p) - T(m-1,n,p)) + T(m-1,n,p); %at the center of the CV T_avg_1 = (T(m-1,n,p) + T(m,n,p))/2;

%Clad Properties Cp0 = interp1(Cp_clad(:,1),Cp_clad(:,2),T_avg_0,’linear’,’extrap’); k1 = interp1(k_clad(:,1),k_clad(:,2),T_avg_1,’linear’,’extrap’);

%Update the temperature a1 = 1/(r-0.25*delta_r) * (2*delta_t)/(rho_0*Cp0*delta_r); a2 = k1*(r-0.5*delta_r)*(T(m-1,n,p) - T(m,n,p))/delta_r; %heat in a3 = r*h*(T_water(n,p) - T(m,n,p)); %heat out

55 function P = getPowers(P0, rho_dollars, times_of_P_changes, delta_t, times) %Generate the power profile of a pulse using the point reactor kinetic equations

P0 = P0*1e-6;

%Data from tables or constants given in problem statement hl = [54.51,21.84,6,2.23,.496,.179]; rel_yield = [.038,.213,.188,.407,.128,.026]; nu_d = .01668; nu = 2.432; Lambda = 1e-6;

%Calculate betas, lambdas, and change rho to unitless beta_total = nu_d/nu; beta = beta_total*rel_yield; lambda = log(2)./hl; rho = rho_dollars*beta_total;

%Initialize vectors and matrices A = 0; C = zeros(length(times),6); P = zeros(length(times),1); react = zeros(length(times),1);

%Counters i = 1; k = 1;

%Method for t = times if ismember(t,times_of_P_changes) %Recompute A after reactivity insertion A = (rho(k)-beta_total)/Lambda; k = k + 1; end react(i) = rho_dollars(k-1); %construct rho array for plotting %Calculate P and C if i == 1 P(i) = P0; C(1,:) = (beta.*P(i))./(lambda.*Lambda);

56 else P(i) = P(i-1)*exp(A*delta_t) + 1/A*(exp(A*delta_t)-1)*sum(lambda.*C(i-1,:)); C(i,:) = C(i-1,:).*exp(-lambda*delta_t) + beta/(2*Lambda).*(P(i-1)+P(i)) ... .* (1-exp(-lambda*delta_t)) ./ lambda; end i = i + 1; end

P = P*1e6;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

XSteam was developed independent of this thesis by Magnus Holmgren and may be obtained from the following URL: https://www.mathworks.com/matlabcentral/fileexchange/9817-x-steam--thermodynamic- properties-of-water-and-steam

57