<<

DEVELOPMENT OF AN ON-LINE FUEL FAILURE MONITORING SYSTEM FOR

CANDU REACTORS

DEVELOPPEMENT D'UN SYSTEME DE SURVEILLANCE EN LIGNE POUR DES RUPTURES DE GAINES DES REACTEURS CANDU

A Thesis Submitted

to the Division of Graduate Studies of the Royal Military College of Canada

by

Stephen Jason Livingstone, BSc, MSc Sub-Lieutenant

In Partial Fulfillment of the Requirements for the Degree of

Doctor of Philosophy

March 2012

©This thesis may be used within the Department of National Defence but copyright for open publication remains the property of the author. Library and Archives Bibliotheque et Canada Archives Canada Published Heritage Direction du Branch Patrimoine de I'edition

395 Wellington Street 395, rue Wellington Ottawa ON K1A0N4 Ottawa ON K1A 0N4 Canada Canada Your file Votre reference ISBN: 978-0-494-83407-7

Our file Notre reference ISBN: 978-0-494-83407-7

NOTICE: AVIS: The author has granted a non­ L'auteur a accorde une licence non exclusive exclusive license allowing Library and permettant a la Bibliotheque et Archives Archives Canada to reproduce, Canada de reproduire, publier, archiver, publish, archive, preserve, conserve, sauvegarder, conserver, transmettre au public communicate to the public by par telecommunication ou par Plnternet, preter, telecommunication or on the Internet, distribuer et vendre des theses partout dans le loan, distrbute and sell theses monde, a des fins commerciales ou autres, sur worldwide, for commercial or non­ support microforme, papier, electronique et/ou commercial purposes, in microform, autres formats. paper, electronic and/or any other formats.

The author retains copyright L'auteur conserve la propriete du droit d'auteur ownership and moral rights in this et des droits moraux qui protege cette these. Ni thesis. Neither the thesis nor la these ni des extraits substantiels de celle-ci substantial extracts from it may be ne doivent etre imprimes ou autrement printed or otherwise reproduced reproduits sans son autorisation. without the author's permission.

In compliance with the Canadian Conformement a la loi canadienne sur la Privacy Act some supporting forms protection de la vie privee, quelques may have been removed from this formulaires secondares ont ete enleves de thesis. cette these.

While these forms may be included Bien que ces formulaires aient inclus dans in the document page count, their la pagination, il n'y aura aucun contenu removal does not represent any loss manquant. of content from the thesis. Canada ROYAL MILITARY COLLEGE OF CANADA COLLEGE MILITAIRE ROYAL DU CANADA

DIVISION OF GRADUATE STUDIES AND RESEARCH DIVISION DES ETUDES SUPERIEURES ET DE LA RECHERCHE

This is to certify that the thesis prepared by / Ceci certifie que la these redigee par

STEPHEN JASON LIVINGSTONE entitled / intitulee

DEVELOPMENT OF AN ON-LINE FUEL FAILURE MONITORING SYSTEM FOR CANDU REACTORS

DEVELOPPEMENT D'UN SYSTEME DE SURVEILLANCE EN LIGNE D'ECHEC DE CARBURANT POUR DES REACTEURS DE CANDU

complies with the Royal Military College of Canada regulations and that it meets the accepted standards of the Graduate School with respect to quality, and, in the case of a doctoral thesis, originality, / satisfait aux reglements du College militaire royal du Canada et qu'elle respecte les normes acceptees par la Faculte des eludes superieures quant a la qualite et, dans le cas d*une these de doctorat, l'originalite, for the degree of/ pour le diplome de DOCTOR OF PHILOSPHY IN

PHILOSOPHISE DOCTOR EN GENIE NUCLEAIRE

u ACKNOWLEDGEMENTS

I would like to express thanks and gratitude to a number of people, and in particular my supervisor Prof. B. J. Lewis for enabling this work to become a success. The continued and amazing support of Dr. L.W. Dickson, Dr. R. Ham-Su, and AECL was instrumental in allowing me to complete this work. I must also thank my father for his tremendous efforts proofreading every part of this thesis. I am also indebted to Mark Floyd and Prof. W. Thompson for many insightful discussions and comments. I would further like to thank Dr. A. El-Jaby for his invaluable expertise and cooperation in many technical aspects of this work. The generosity of Bruce Power and OPG for supplying commercial reactor data for analysis made this work possible.

Help was also gratefully received from fellow graduate students Dr. Michael Welland, Dr. Markus Piro, and Dr. Khaled Shaheen whenever needed.

This work was supported by financial and in-kind contributions from Atomic Energy of Canada Limited, CANDU Owner's Group, and funds from the Natural Sciences and Engineering Research Council of Canada.

in ABSTRACT

Livingstone, Stephen; Ph.D. (Nucl. Eng.); Royal Military College of Canada; January 2012; Development of an On-Line Fuel Failure Monitoring System for CANDU Reactors; Supervisor Prof. Lewis, Brent.

Although relatively rare in CANDU plants, fuel defects have always been an important operating concern for CANDU fuel operation and behaviour, and play a critical role in health, safety, and the economics of an operating reactor. A fuel defect occurs when a fuel element has a breach in its sheath resulting in fission product (FP) release and/or fuel loss into the reactor primary heat system (PHTS). The unintended release of FP and fuel material into the PHTS creates elevated fields and hazards for the reactor operator. The intent of this thesis is to develop an online real-time system that can analyse PHTS activity and infer information relating to otherwise unknown defect(s) in the reactor core.

A MATLAB® based Graphical User Interface (GUI) programme called COLDD (CANDU On-Line Defected fuel Diagnostic) has been developed to provide detailed diagnostics of PHTS activities. COLDD is based on new techniques, a new empirical diffusion coefficient, new algorithms, and refinement of existing techniques. Several techniques are based on detailed mechanistic models that are presented in detail, while other techniques are based on empirical rules from experimental and commercial experience; the diversity of techniques are shown to be self-consistent. The techniques employed by COLDD are compared to techniques used internationally by other defected fuel diagnostic tools for non-CANDU type reactors.

The ability for COLDD to perform successful defected fuel diagnostics is dependent on the quality of the data provided. A detailed sensitivity analysis is performed to determine key measurement parameters. Techniques are also developed to allow operators to perform robust error checking of data to ensure consistency.

iv COLDD is validated against theoretical, experimental, and commercial reactor data, and shown to be stable and consistent in all cases. The plethora of analysis modes are shown to be self-consistent. The version of COLDD described in this thesis is considered a Beta version ready for testing at a commercial station, and for development to add and improve algorithms and the user interface. There are several possible improvements discussed, including gaps in defected fuel understanding that require further research. COLDD is highly stable and has been demonstrated to be effective; it is a new powerful tool in the arsenal of a reactor operator faced with defected fuel in core.

Key words: Defected fuel, CANDU, Nuclear, Fission Product Release, Diagnostic.

v RESUME

Meme si les defaillances de combustible sont relativement rares pour les reacteurs CANDU modernes, elles ont toujours ete un sujet d'inquietude dans l'exploitation et le comportement du combustible CANDU, et representent un facteur critique pour la sante, la surete et Peconomique d'un reacteur en exploitation. Une defaillance du combustible se produit lorsque la gaine d'un element de combustible subit une rupture resultant en un relachement de produits de fission (PF) et/ou une perte de I'uranium du combustible dans le circuit primaire de caloportage (CPC). Le relachement non intentionnel de PF et de materiaux du combustible dans le CPC cree des champs de rayonnement eleves et des dangers pour Poperateur du reacteur. Le but de cette these est de developper un systeme en ligne et en temps reel pour l'analyse de l'activite du CPC et la deduction de F information sur des defaillances dans le coeur du reacteur qui ne seraient pas connues autrement.

Un programme d'interface graphique-utilisateur (IGU) base sur MATLAB® et appele COLDD (« CANDU On-Line Defected fuel Diagnostic » - Diagnostic en ligne de combustible CANDU defectueux) a ete developpe afin de fournir des diagnostics detailles sur l'activite du CPC. COLDD se base sur de nouvelles techniques, un nouveau coefficient de diffusion empirique, de nouveaux algorithmes et des techniques existantes ameliorees. Plusieurs des techniques sont fondees sur des modeles mecaniques detailles, tandis que d'autres techniques se basent sur des regies empiriques obtenues de Fexperimentation et de F experience acquise de l'exploitation commerciale; la diversite de ces techniques est demontree comme etant self-consistante. Les techniques utilisees par COLDD sont comparees et mises en contraste avec des techniques utilisees dans le monde par d'autres outils de diagnostic de combustible defectueux pour des reacteurs de types autres que le CANDU.

VI La facilite avec laquelle COLDD reussit a produire des diagnostics de combustibles defectueux depend de la qualite des donnees fournies. Une analyse detaillee de sensibilite est menee afin de determiner les parametres-clefs de mesure. On a aussi developpe des techniques pour permettre aux operateurs d'accomplir une verification rigoureuse de l'erreur pour s'assurer de la consistance des donnees.

COLDD est valide a I'aide de donnees theoriques, experimentales et provenant de Fexploitation commerciale du reacteur, et ses resultats demontrent une stabilite et une consistance dans tous les cas. La surabondance des modes d'analyse montre que ceux-ci sont self-consistants. La version de COLDD decrite dans cette these est consideree comme une version « Beta » prete a etre mise a l'essai a une centrale commerciale et pouvant etre developpee davantage par 1'addition et 1'amelioration d'algorithmes et de l'interface avec l'utilisateur. On discute de plusieurs ameliorations possibles, incluant des manquements dans la comprehension du combustible defectueux demandant plus d'efforts de recherche. COLDD est tres stable et a demontre son efficacite; il est un nouvel outil puissant dans l'arsenal de l'operateur du reacteur qui doit faire face a la defaillance du combustible dans le coeur du reacteur.

Mots-clefs: Combustible defectueux, CANDU, nucleaire, relachement de produits de fission, diagnostic.

vn Table of Contents ACKNOWLEDGEMENTS iii ABSTRACT iv RESUME vi Table of Contents viii List of Tables xi List of Figures xiii List of Symbols, Abbreviations, Acronyms xvii Chapter 1 Introduction 1 1.1 1 1.2 The Canadian Uranium (CANDU) Reactor 3 1.3 Defected Fuel 6 1.4 Thesis Outline and Goals 7 Chapter 2 Background and Literature Review 11 2.1 Defected Fuel Root Causes 11 2.2 Fission Products (FP) 14 2.2.1 Gaseous Fission Products (GFP) 18 2.2.2 Soluble Fission Products (SFP) 18 2.2.3 Depositing Fission Products (DFP) 19 2.3 Fission Product Release from Defected Fuel 20 2.3.1 Fission Product Release by Recoil 21 2.3.2 Fission Product Release by Knock-Out 23 2.3.3 Fission Product Release by Diffusion in the Fuel 24 2.3.4 Comparison of the Fission Product Release Mechanisms 37 2.3.5 Fission Product Release from the Fuel-to-Sheath Gap to the PHTS 38 2.4 Fission Product Detection 41 2.4.1 Gaseous Fission Product (GFP) and Grab Sample Analysis 42 2.4.2 Delayed System 43 2.4.3 Feeder Scanning System 44 2.5 Defected Fuel Analysis Programmes 45 Chapter 3 Defected Fuel Analysis Techniques 47 3.1 Calculating the Release Rate 47 3.1.1 Release Rate from Equilibrium Concentration 49 3.1.2 Release Rate from Savitsky-Golay Coupled With Low-Pass Filtering 50 3.1.3 Release Rate using Fourier Transform 53

3.2 R/yc Analysis 54 3.2.1 Fitting Routine 56 3.3 Defect Size 58 3.3.1 Defect Size Using R/yc Analysis and v 58 3.3.3 Defect Size Using R/yc Analysis and b 61 3.3.4 Defect Size Using Release Rate or Activity Ratios 62 3.3.5 Defect Size Using l33Xe Release Rate and Xe/I Ratios 65 3.4 Defect Element Power 67 3.4.1 Defect Element Power Using R/yc Analysis 67 3.4.2 Defect Element Power Using 133Xe Release Rate 68 3.4.3 Defect Element Power Using Spike 71

Vlll 3.4.4 Defect Element Power Using Reactor Power Change 74 3.4.5 Comparing all Four Defect Power Analysis 77 3.6 Iodine Spike Prediction 79 3.7 Number of Defects 80 3.7.1 Number of Defects from Iodine Release 80 3.7.2 Number of Defects from R/yc Analysis 81 3.8 Defect 83 3.8.1 Defect Burnup Using l34Cs/137Cs Molar Ratios during Iodine Spike 83 3.8.2 Defect Burnup by Optimizing the RlyJJBu) Fit 85 3.9 Secondary Sheath Hydriding 86 3.10 Tramp Uranium Analysis 88 3.10.1 Finding Instances of Defect-Free Operation 89 3.10.2 Using and Noble Gases to Measure 235U 90 3.10.3 Using 239Np to Measure Circulating 238U 93 3.10.4 Using Actinium Series to Measure Circulating Tramp 95 3.10.6 Using Heavy and Light FP ratios to Determine Tramp Burnup 97 3.10.7 Using Depositing Fission Products (DFP) to Measure Tramp 99 3.11 Mass of Activation Corrosion Product (ACP) Targets 100 3.12 Techniques Used by International Programmes 102 3.12.1 PROFIP, SADDAM, and DIADEME (France based Programmes) 102 3.12.2 RELWWER-2.0 (Russian Qualified Programme) 106 3.12.3 RTOP-CA (Russian WWER Programme) 107 3.12.4 CHIRON (US Based Programme) 109 3.12.5 STAR and Visual_DETECT (Canadian Programmes) 111 Chapter 4 Sensitivity Analysis 115 4.1 Measurement Considerations 115 4.1.2 Detector Type and Number of Identified 116 4.1.3 Identification 118 4.1.4 Transit Time 121 4.1.5 Delay Time 122 4.1.6 Spectrometer Counting Time 123 4.1.7 Calibration for Absolute Measurements 125 4.1.8 Sampling Pressure and Temperature 126 4.1.9 (IX) Column Efficiency (Gas and Iodines) 128 4.2 Data Error Checking 131 4.2.1 Comparison of Grab Sample and GFP Data 131 4.2.2 Checking DC Efficiency ( and Iodine) 133 4.2.3 Comparing Rlyc to Check Data 134 4.3 Ensuring a Valid R/yc Fit 137 4.4 Variable Sensitivity for R/yc Analysis 139 Chapter 5 Benchmarking and Validation 147 5.1 Virtual Test Case 148 5.2 Visual_DETECT Test Case 154 5.3 NRX Test Case 158 5.4 Commercial Reactor Test Case 164 Chapter 6 Discussion 173 6.1 Programming Language Choice 173 6.1.1 GUI Development 174 ix 6.1.2 Commercial Product Limitations 174 6.1.3 Code Layout and Modifications 175 6.2 Programme Optimization 177 6.3 Direct Connection to Real-Time Data 179 6.4 Empirical and Mechanistic Techniques 179 6.6 Strengths and Weaknesses 181 Chapter 7 Conclusions 183 Chapter 8 Recommendations 185 References 189 CURRICULUM VITAE 323

Appendices Appendix A Detailed Defect Root Causes 199 Appendix B Fissile Content Calculations 205 Appendix C Nuclear Data 207 Appendix D Solution of the Diffusion Equation 213 Appendix E Pseudo Code and Overview of Algorithms 223 Appendix F Source Code 227 Appendix G Gamma Spec Analysis Results (UNISAMPO-SHAMAN) 295 Appendix H User Guide 315

x List of Tables

Table 1-1: List of CANDU reactors by country [3] 5 Table 2-1: List of defect root causes, see Appendix A for more details 12 Table 2-2: Fuel defect excursions that have occurred in CANDU reactors 12 Table 2-3: Mean energies, numbers, and ranges for fission fragments and knock-ons [21], [22] 24 Table 2-4: Summary of slopes from RIB = Xb from NRX experiments [40] 39 Table 2-5: Summary of vliNG values for different programmes 46 Table 3-1: Fitting coefficient ranges 57 Table 3-2: Defect size using R/yc slope [40] 62 Table 3-3: Isotopic ratios for defect experiments [15] 64 Table 3-4: COLDD priority for ratios (mixed ratios before same species ratios) 65 Table 3-5: Using reactor step power change to measure element power 76 Table 3-6: Comparison of defect power techniques from FFO-109 78 Table 3-7: Comparison of defect power techniques for the virtual case 78 Table 3-8: Nuclear properties of '34Cs and 137Cs [5] 83 Table 3-9: Main gamma-ray energies for 239Np [68] 95 Table 3-10: Actinium decay series 96 Table 3-11: Variation in cumulative yield with burnup 99 Table 4-1: Comparison of NGS GFP spectra examined bythe Nuclear Station System, SHAMAN, and APTEC 120 Table 4-2: Comparison of NRU spectra examined by SHAMAN and APTEC 120 Table 4-3: Parameters used to define the actual data for the virtual case 140 Table 4-4: Uncertainties applied for error simulation 141 Table 4-5: Table values are correlation coefficients between fit coefficients and possible error factors for noble gases. Shaded values indicate a high correlation 142 Table 4-6: Table values are correlation coefficients between fit coefficients and possible error factors for iodines. Shaded values indicate a high correlation 143 Table 5-1: Summary of validation against virtual test case 150 Table 5-2: Iodine concentrations for VisualDETECT test case 154 Table 5-3: Summary of validation against VisualDETECT [35] 155 Table 5-4: Comparison of X-2 (FFO-109) and commercial power reactor conditions... 159 Table 5-5: available for analysis of the FFO-109 experiment 160 Table 5-6: Summary of validation against Exp-FFO-109 [86] 161 Table 5-7: Isotopes available for analysis of the commercial reactor data 165 Table 5-8: Summary of validation against the Commercial Reactor test case 166

XI Appendix Tables

Table C-1: half-lives [98], decay constants, cumulative fission yields [5], [99], and data and results for pre-cursor correction calculations [39]. Exact table read by COLDD in nukedata.xlsx 208 Table C-2: energies of key isotopes [98] 209 Table E-l: Summary of MATLAB® m-files 224 Table H-l: Example reactor data excel data file 315 Table H-2: Example nuclide excel data file 316 Table H-3: Example constants excel data file. Column "B" units are defined in column "C" in html script to display superscript () measurement units correctly 316

XII List of Figures Figure 1-1 Eight CANDU pellets to power a home for a year [1] 1 Figure 1-2 Snapshot of Ontario's electrical power generation on 2011 March 13lh at 2:15 pm[4] 2 Figure 1-3 Generic CANDU fuel bundle. Modified model courtesy of A. El-Jaby (Not to Scale) 3 Figure 1-4 CANDU reactor schematic. Image courtesy AECL 4 Figure 1-5 Schematic of a typical defect in a CANDU fuel element [8] 6 Figure 1-6 Schematic of a typical CANDU power plant (modified from [6]) with a defect in core. The fission products will rapidly circulate through the entire PHTS 8 Figure 1-7 Schematic of COLDD in operation at a reactor 9 Figure 2-1 Generic debris fretting fuel defect near a spacer pad. Image courtesy AECL 13 Figure 2-2 Fission yield [, fission"1] versus for 235U and 239Pu. Generated using ENDF/B-VII.O data [51 with JANIS 3.0 [13] 15 Figure 2-3 Fissile content of 235U and23 Pu as a function of burnup [14]. New correlation form and derivation provided in Appendix B 17 Figure 2-4 Schematic (not to scale) of fission fragment release by recoil and knock-out.22 Figure 2-5 Fuel element parameters that influence fission gas release into the fuel to sheath gap [24] 25 Figure 2-6 Empirical diffusion coefficient D\P) for iodine and noble gases versus linear power for the CRL experiments [15] 26 Figure 2-7 Empirical diffusion coefficient D \P) for l38Xe as a function of linear power for intact CANDU-type fuel elements [29]. £(/) = 1 in this Case 28 Figure 2-8 133Xe Release rate [atom.s" ] as a function of power [kW.rrf1]. Defect size and element burnup shown if known (C6 = CANDU-6, DP = Douglas Point) [31] 29 Figure 2-9 Comparison of the three empirical diffusion coefficient equations [31] 31 Figure 2-10 C{X,x) in a Booth equivalent sphere following a step power reduction from 36 kW.m"1 to 31 kW.m"1. Notice the small range in Xand increase in slope atX= 1 with increasing time as the new equilibrium is reached at the lower power 34 Figure 2-11: Diffusion release Rfg{t) from a Booth equivalent sphere as power changes from 36 kW.m"1 to 31 kW.m"1 36 Figure 2-12 Comparison of recoil, knock-out and diffusion release to experimental data [40] 37 Figure 2-13 Evolution of the release rate to the during a small power change from 36 kW.rn' to 31 kW.nf1 (v„ = lxlO"5 s"1) 40 Figure 2-14 Noble gas and iodine release as a function of defect size from CRL experiments in the NRX reactor (modified from [8]) 41 Figure 2-15 Schematic of Bruce GFP system, including photo of sample holders [19]...42 Figure 2-16 Schematic of a CANDU-6 DN system. Image courtesy of AECL 44 Figure 2-17 Feeder Scan results (a set of point measurements made at 5 cm increments) from Pickering Unit 4 Carrier Tube #1 East, November 1974 [43] 45 Figure 3-1 Using Piecewise Cubic Hermite Interpolating Polynomials (PCHIP) to interpolate nuclide and reactor data onto identical equally spaced time scales 49 Figure 3-2 Example of Savitsky-Golay smoothing 51

xiu Figure 3-3 Savitsky-Golay smoothing coupled with a low-pass filter (fc = 2/t\a) applied to 133Xedata 53 Figure 3-4 Surface exchange coefficient a [m.s1] for iodine and noble gases versus defect size for CRL experiments [15] 59 Figure 3-5 Using 7>' to examine a small/medium defect from [19] 62 Figure 3-6 Determining the predominant defect type and estimation of the number of defected elements [40] 66 Figure 3-7 COLDD output for defect state from FFO-102-3 [57] 67 Figure 3-8 Element power using 133Xe for a virtual case (see section 5.1), defect initiates at day 30. Notice that the release rate data responds faster 70 Figure 3-9 Element power using l33Xe release rate from FFO-109-2. Note: v(/) »X- 1.5xl0"6s"' 70 Figure 3-10 Element power using 133Xe from reactor data 71 Figure 3-11 Spike analysis of 133I from FFO-109 [59] 72 Figure 3-12 133Xe during reactor step power change [31] 75 Figure 3-13 Defected fuel release rate calculated from FFO-109-2. Data courtesy AECL. 76 Figure 3-14 Example of PRatio used to analyze the case shown in Figure 3-12 77 Figure 3-15 Example COLDD output predicting an iodine spike after shutdown 80 Figure 3-16 Iodine release rate used to determine number of defects [8]. Defect removed at-105 days 81 Figure 3-17 Example of defect number by R/yc analysis applied to 140 days of data from [8] with a single defect. Notice how the release rate data leads the activity data 82 Figure 3-18 GUI used to request user input for calculating burnup using the 137Cs/134Cs ratio 85 Figure 3-19 Failed defect element burnup analysis (data from [63]). Low-pass cut-off frequency of 1/5 days"1 used to eliminate noise in the Kr data 86 Figure 3-20 Locke secondary hydriding threshold curve [64] 87 Figure 3-21 COLDD output for a defect power of 40 kW.m"1. Defect threshold curves taken from [65]. Small defect threshold terminates at ~ 1300 kW.m"2 88 Figure 3-22 Trampfmder used to find defect-free operation (data from [19]). Gap at day ~ 600 due to reactor shutdown 90 138 134 Figure 3-23 Mass of tramp from noble gas Rlyc analysis and from Xe and I using CANDU data from [19] 92 Figure 3-24 Failed tramp burnup analysis using data from [19] with COLDD generated error message 98 Figure 3-25 Successful (after following COLDD suggestions) tramp burnup analysis using data from [19] 98 Figure 3-26 Target mass of 123Sb [g] during several years of reactor operation (data from [19]) 102 Figure 3-27 Parametric study of release rate ratio versus temperature [42]. The ratio is plotted for various defect sizes by varying vg (v) [s"1] from 10"2 to 10"6 for each ratio.. 104 Figure 3-28 Defected fuel assemblies characterization in SADDAM [44] 106

xiv Figure 3-29 "Clouds" of different colours represent different RTOP-CA calculations with different numbers of defects (JV». Measured data in bottom left at two confidence levels indicated^ 1-2 [73] 109 Figure 3-30 Example output from Visual_DETECT [54] 112 Figure 3-31 STAR tuned values for g(t) and viyNa(t) and the corresponding comparison between measured 88Kr data and the STAR model predictions [6] 114 Figure 4-1 Typical Spectra from a Planar Detector Viewing FP in a CANDU reactor (spectra taken from [19]) 117 Figure 4-2 Typical spectra from a coaxial detector viewing FP in the NRU reactor. Notice the 1.5 MeV Compton edge created by the 28A1 peak at 1.8 MeV. Image courtesy ofAECL 118 Figure 4-3 Influence of counting time (tp) on activity measurements 124 Figure 4-4 Influence of counting time (tp) on release calculations of C(i) from Figure 4-3 125 1 % 1 Figure 4-5 Effect of coolant temperature on I concentration (time scale and activity scale not provided [82]) 128 Figure 4-6 Xe in H2O at partial pressures of 0.1, 1, and 10 atm [83] 130 Figure 4-7 Comparison of GFP and grab samples (CEM) measurements from a CANDU station showing excellent agreement [6] 132 Figure 4-8 Comparison of GFP and grab samples measurements from a CANDU station showing up to a factor 2.5 difference in activity concentration [84] 132 Figure 4-9 Monitoring IX efficiency for l31I removal during several shutdowns (S/D) for the NRU coolant. Data provided courtesy AECL 134 Figure 4-10 Example of data checking in defect free data highlighting possible issues with 133I and 85mKr 136 Figure 4-11 Example of data checking with a defect present. Notice elevated iodines relative to the noble gases (data is not during an iodine spike event) 136 Figure 4-12 Example of a bad fit with R2 > 0.95, coefficients outside expected ranges (Table 3-1), and coefficient errors > 100 %, excluding C 138 Figure 4-13 Example of a good fit with R2 > 0.95, coefficients within expected ranges (Table 3-1), and coefficient errors < 100% 139 Figure 4-14 Exact data for virtual case used for error analysis 140 Figure 4-15 Graphical representation showing positive correlation between fit coefficient A (from successful fits that met all requirements), (5pIXeffig and transit time 145 Figure 5-1: Power [kW.irf1], tramp mass [g], 123Sb mass [g] and escape rate coefficients [s1] for the virtual test case run by STAR 149 Figure 5-2 Example isotope activities for the virtual test case calculated by STAR [6]. 149 Figure 5-3 Schematic oftheX-2 facility [57] 159 Figure 5-4 Power history and two example isotope activity concentrations from the FFO- 109 experiment [86] 160 Figure 5-5 Bruce Power Unit 5 data from [19] 165 Figure 5-6 Steady defect size output from COLDD using "b" from the noble gases 170 Figure 5-7 Increasing power from COLDD based on 133Xe release rate 171 Figure 6-1 Entire empirical diffusion coefficient file "Dp.w" from equation (2-18) and (2-19) 175

XV Figure 6-2 Minor code addition to RyAnalysis to produce STAR input values 176 Figure 6-3 Comparison of COLDD calculated STAR input values to actual STAR input values from [6] based on experiment FFO-102 177 Figure 6-4 Example Profiler output from Rlyc analysis 178

Appendix Figures

Figure C-l Half-lives of key nuclides 211 Figure E-l High level pseudo code of COLDD execution 223 Figure H-l Nuclide plotting options (top of COLDD GUI) 317 Figure H-2 Nuclides list (left) and ignored list (right) 318 Figure H-3 Zoom in, zoom out, pan, and select data point (top left of all Figures) 318 Figure H-4 Model Constants table (bottom left of COLDD GUI) 318 Figure H-5 Six generic analysis types available 319 Figure H-6 Analysis types available after clicking "Tramp" in Figure H-5 319 Figure H-7 Main COLDD GUI (opened as PDF by "HELP" button) 321

XVI List of Symbols, Abbreviations, Acronyms

Acronyms: ACP Activated Corrosion Product(s) AECL Atomic Energy of Canada Ltd AR As Received (material microstructure) BC Boundary Condition BWR CANDU Canada Deuterium Uranium COLDD CANDU On-Line Defected fuel Diagnostic tool CRL Chalk River Laboratories DFP Depositing Fission Product(s) DN detection system FP Fission Product(s) GFP Gaseous Fission Product system, Gaseous Fission Product(s) GUI Graphical User Interface HAZ Heat Affected Zone HEU Highly HTS Heat Transport System LEU Low Enriched Uranium LWR Light Water Reactor NGS Nuclear Generating Station NRU National Research Universal (research reactor at CRL) NRX National Research experimental (decommissioned reactor at CRL) NU Natural Uranium MDA Minimum Detectable Activity PCI Pellet Clad Interaction PHTS Primary Heat Transport System PWR Pressurized light Water Reactor RFP Reactor Full Power [%] SCC Stress Corrosion Cracking SEU Slightly Enriched Uranium SFP Soluble Fission Product(s) STAR Steady-state and Transient Activity Release WWER Water-Water Energetic Reactor (Russian PWR design) xvii A,(t) Activity concentration [Bq.kg1] of nuclide i A6^ (t) Equilibrium activity concentration [Bq.kg"1] of nuclide i a Fuel grain radius [m] B, B(Bu,P) Volumetric birth rate [atom.m"3.s"1], function of burnup and power Bu Defected element Burnup [MWh.kgU"1] 1 Butr Tramp uranium burnup [MWh.kgU ] 1 6p(t) Purification flow rate [kg.s" ] c Tramp fitting constant for R/yc(Bu) analysis C(r,t) Concentration [atom.m3] D(P) Diffusion coefficient [m .s" ] D \P) Empirical diffusion coefficient (= D/a2) [s1] E Defect size [mm2] e(t) Leakage loss rate from the PHTS [kg.s"1] fc Cut-off frequency [Hz] fs Sampling frequency [Hz] F Fission rate [fission.s"1] Ff Fission rate per element linear power [fission.s1 .m.kW"1] 1 Flr Tramp fission rate [fission.s ]

; v 1Y Ion exchange column efficiency [%] for iodines and gases, ixeffj ixeff,g respectivdy log(x), h\{x) Natural logarithm of x logio(*) Log base 10 of x i Fuel element length [m]

X, Xt Decay constant [s"' ], decay constant of nuclide / [s"' ] 1 X&t) Effective decay constant {Xt + Bp(t)IXeffi/Mc + e(t)/Mc) [s ]

Mc Coolant mass [kg] my Tramp 235U mass [g] A^4 Avogadro's constant -= 6.02x1023 atom-mol"1

Nc Coolant inventory [] Nf Fuel matrix inventory [atoms]

Ng Fuel-to-sheath gap inventory [atoms] P Defected element power [kW.m"1] 2 (

xvui Rc(t) Release rate from a defected element into the coolant [atom.s" ] eq^.x Equilibrium release rate from a defected element into the coolant Hc w [atom.s1] 1 Rfg{t) Release rate from the fuel matrix into the fuel-to-sheath gap [atom.s ] 1 Rtr{t) Release rate from tramp uranium into the coolant [atom.s ] RFP Reactor Full Power [%] ft Dimensionless constant (= A/D') t,r Transit time [s] Days until secondary/primary hydriding defect occurs from large <-di defect [days] Days until secondary/primary hydriding defect occurs from small d5 defect [days] tr Defect residence time [days] r Dimensionless constant (= D't) w Specific fissile content [g.kglT1] X Number of defects 1 yc, yc(Bu) Cumulative yield [atom.fission ], as a function of burnup 1 1 v, vtr Gap escape rate constant [s" ], transient gap escape rate constant [s ]

xix 1

Chapter 1

Introduction

1.1 Nuclear Power

Nuclear power is currently the only large-scale (greater than 1000 MW) power source capable of producing vast quantities of energy with minimal release of harmful or damage to the environment . It is the inconvenient answer to modern society's ever growing hunger for energy, and the inability of our fragile environment to sustain our prodigious release of greenhouse gases. Nuclear power can generate massive amounts of energy due to the huge energy density of . The main reaction driving nuclear reactors is fission of heavy elements (i.e., 235U, 239Pu). Fission occurs when an incident neutron of appropriate energy interacts with a heavy nucleus, causing it to split into fission products and release energy (~ 200 MeV per fission). The fission products serve as a signature of the fission process (a feature that is exploited in this work), and the highly energetic reaction means that a relatively small amount of fuel can produce a large amount of energy. For example, the eight CANDU natural uranium (NU) pellets shown in Figure 1-1 contain enough energy to power an average Canadian household for approximately one year[l]. Approximately 2,800 kg of coal would be required to generate the same amount of thermal energy.

< 92 mm • Figure 1-1 Eight CANDU pellets to power a home for a year [1]

1 Hydro power can also generate large-scale power without releasing greenhouse gases, but at the expense of flooding large tracts of land. " "Inconvenient answer" is a wordplay from Dr. Romney Duffy (ex-AECL Principal Scientist) on Al Gore's award winning documentary "Inconvenient Truth" which describes global warming, but fails to provide nuclear power as a clean energy option (i.e., the inconvenient answer). 2

In 2008, there were 437 reactors operating worldwide [2], which included 25 international CANDU reactors, and 17 domestic units [3]. Currently, Ontario, Quebec, and New Brunswick are the only provinces in Canada with a nuclear component in their electricity production portfolio. The largest capacity is in Ontario which produces ~ 50 % of its electrical energy requirements from nuclear, with 12,024 MW (gross electrical) of installed nuclear capacity [1]. Figure 1-2 is a snapshot of Ontario's instantaneous power production on 2011 March 13th [4]. With increasing energy demands, and the Ontario Government's plans to close coal plants by 2014, new nuclear power is required in Ontario. Furthermore, Alberta and Saskatchewan are facing growing energy demands, and are considering adding nuclear power to their energy repertoire.

Figure 1-2 Snapshot of Ontario's electrical power generation on 2011 March 13 at 2:15 pm [4]

Figure 1-2 shows 59 % nuclear power, slightly higher than the quoted ~ 50 % [1]. This is because on that Sunday afternoon industrial electricity consumption would be low, and as nuclear provides -50 % of the base load power, nuclear provides a higher fraction during off-peak times. 3

1.2 The Canadian Deuterium Uranium (CANDU) Reactor

The CANDU reactor has several unique features that differentiate it from other power reactor designs: heavy water coolant, heavy water moderator, pressure tubes, calandria tubes, fuel bundles, and on-line refuelling. Using heavy water as the coolant and moderator, and utilising low neutron absorbing materials for core components, allows the CANDU reactor to use natural uranium as a fuel source, which has a very low fissile content of only 0.72 wt. % U in total uranium [5]. In contrast, light water reactors (PWR, Pressurised Water Reactor, and BWR, Boiling Water Reactors) must use slightly enriched uranium (~ 2-5 wt % 235U in total uranium).

Figure 1 -3 and Figure 1 -4 show a generic CANDU fuel bundle, and the typical CANDU reactor layout, respectively. The current production CANDU fuel bundle consists of 28 or 37 fuel elements, filled with small UO2 ceramic pellets (see Figure 1-1). The CANDU bundle design of ~ 50 cm long results in a bundle weight of ~ 22 kg (50 lbs), which

Figure 1-3 Generic CANDU fuel bundle. Modified model courtesy of A. El-Jaby (Not to Scale) Calandria Tube

Figure 1-4 CANDU reactor schematic. Image courtesy AECL

CANDU reactors are horizontal pressure tube reactors, containing approximately 250 - 400 fuel channels (different CANDU designs have different numbers of fuel channels), with each channel containing 12-13 fuel bundles. The fuelling machines (one on each side of the calandria) work in tandem to simultaneously load and unload fuel bundle pairs from the reactor. The channels contain pressurised heavy water (known as the primary heat transport system, PHTS) operating at approximately 10 MPa, and ~ 300°C, with a mass flow rate of- 15-20 kg.s"1 per channel. Heat from the fuel channels is rapidly removed by the PHTS and transferred to a steam generator. Steam from the generator is then used to power a turbine as occurs in a typical steam-based electrical power plant. The typical arrangement of the key nuclear plant components is shown inFigure 1-6.

The first CANDU reactor (Nuclear Power Demonstration, NPD) generated - 20 MWe of electrical power, and was built to illustrate the viability of Canadian for power production. NPD was operational from 1962 to 1987 and was instrumental in the success of CANDU. NPD was succeeded by Douglas Point (DP), a - 200 MWe plant 5 that operated successfully from 1968 to 1984. Douglas Point is the CANDU design sold and built in India and Pakistan in the 1970's. After Douglas Point, the CANDU-6 (~ 600 MWe) and then Darlington/Bruce (~ 900 MWe) designs were built, and continue to operate in Canada and around the world. The CANDU reactor has a proven track record of safe operation, and its online refuelling enables high operating capacities and extended periods of operation. Table 1-1 is a list of all CANDU plants built to date. Table 1-1: List of CANDU reactors by country [3] Country Operating Construction Shut-Down Refurbishment Argentina Embalse Pickering A (1,4) Pickering B (5-8) NPD Bruce A (1,2) Canada Bruce A (3-4) Douglas Point Point Lepreau Bruce B (5-8) Pickering A (2-3) Darlington (1-4) China Qinshan (4-5) India Rajasthan (RAPS 1-2) (CANDU) Madras (MAPS 1-2) Narora (NAPS 1-2) Kaiga-4 Indian Kakrapar (KAPS 1-2) (CANDU- Rajasthan 1 Kaiga(Kaiga 1-3) derivative ) (RAPS 7-8) Rajasthan (RAPS 3-6) Tarapur (TAPS 3-4) South Korea Wolsong (2-4) Wolsong-1 Pakistan Kanupp Romania Cernavoda(l-2) 1 Based on the CANDU design but developed domestically within India

One key benefit of natural uranium (NU) is the ability for a country to have a without enrichment technology; a purely political advantage. NU fuelling also allows a country, such as Canada, to mine and produce fuel locally without the requirement of obtaining enrichment capabilities, and therefore does not have to out­ source to a different country for fuel supplies. Another side benefit of NU fuelling is enhanced flexibility in advanced fuel cycles. This enhancement is due to the requirement of a very neutron efficient reactor to allow operation with the low fissile content of NU fuel. Therefore, CANDU reactors are unique in their ability to use , Thorium mixed with SEU/LEU, DUPIC Fuel (Direct Use of PWR fuel In CANDU), Parallex 6

(weapons grade Pu mixed with NU), and Recovered Uranium (RU, extracted from spent PWR fuel). Recently, a CANDU reactor in China was used to demonstrate the first commercial irradiation of RU at ~ 0.72 wt% 235U [6], and work has begun on a Thoria/LEU demonstration irradiation in China (although this, and several variants, have already been successfully irradiated in the National Research Universal (NRU) experimental reactor).

1.3 Defected Fuel

Although relatively rare in modern CANDU plants, fuel defects have always been an important operating concern for CANDU fuel operation and behaviour, and play a critical role in health (e.g., impact on PHTS radiation fields), safety (e.g., stringent limits on coolant activity) and economics (e.g., defects can cause lost revenue) of an operating reactor. A fuel defect occurs when a fuel element has a breach in its sheath resulting in fission product (FP) release and/or uranium material loss into the PHTS, as shown in Figure 1-5 and Figure 1-6.

Figure 1-5 Schematic of a typical defect in a CANDU fuel element [7]

Fuel defect rates in CANDU reactors have historically been very low. As early as 1976 when only 92,593 bundles had been irradiated and the technology was fairly young, the average fuel bundle cumulative defect rate was only 0.27 % [8]. By 1992 the cumulative defect rate had dropped to less than 0.1 % [9]. Recent estimates of Canadian CANDU fuel bundle performance show a current cumulative bundle defect rate (from 2001 to 2005) of the order of 0.005% [10], which corresponds to approximately 1 defected element per reactor per year. 7

There are various causes of primary defects in CANDU fuel elements including: fabrication defects, (e.g., incomplete end closure welds, porous endcap bar stock, primary hydriding), operational defects (e.g., debris fretting, abnormal fuel handling, acoustic resonance) and design related defects (e.g., stress corrosion cracking, fission gas overpressure, circumferential endcap cracks). These defect types and their behaviour are discussed in more detail in section 2.1.

CANDU plants in Canada operate to strict safety guidelines under the regulatory oversight of the CNSC (Canadian Nuclear Safety Commission), with multiple levels of passive and active safety systems. Due to the unique feature of on-line refuelling in CANDU plants, it is possible for these reactors to safely handle fuel defects in the core without requiring a reactor shutdown. When a fuel defect occurs, radioactive FP enter the reactor's PHTS, which poses a radiation risk to workers and the public, particularly in an accident scenario. To limit the risks of exposure associated with fuel defects, stringent coolant activity maximum levels are imposed on each CANDU station. If a station cannot quickly and effectively locate and remove fuel defects, it could be forced to shut down - a huge economic and electrical supply penalty.

1.4 Thesis Outline and Goals

The main goal of this work is to develop an effective tool to assist in minimizing the impact of defected fuel on reactor operations. This will help reduce potential risks to workers, the public, and the reactor. As illustrated by Figure 1-6, the challenge is to use fission product detection methods to deduce the defect state in the core, as quickly and as accurately as possible. 8

Figure 1-6 Schematic of a typical CANDU power plant (modified from [11]) with a defect in core. The fission products will rapidly circulate through the entire PHTS.

The intent of the thesis is to develop the algorithms, principles, assumptions, and create an initial beta Graphical User Interface (GUI) version of COLDD (CANDU On-Line Defected fuel Diagnostic) for demonstrating to reactor operators, and to allow testing and use at the station as a non-qualified tool. Development of a qualified Industry Standard Toolset (1ST) code for qualified application at the station would require a commercial development programme involving a team of engineers working over several years to complete, and is considered outside the scope of this work, but represents the final vision. Figure 1-7 illustrates the final intent of COLDD as installed at a reactor to provide real time processing and defected fuel diagnostic results during reactor operation. 9

Figure 1-7 Schematic of COLDD in operation at a reactor

COLDD is based on new and existing FP release models, and new and existing empirical models, all based on commercial and experimental experience. The programme also includes several novel defected fuel diagnostic techniques not previously published. There is currently no real-time FP diagnostic system in place at any CANDU plant around the world; this tool would act as an invaluable addition to the tool-set available to the reactor operator for the reactor's safe and continued operation.

The thesis is organised in a logical manner that guides the reader through background information, development, application, comparisons, and then discussions and a conclusion. The next chapter, Chapter 2, discusses defect root causes, FP, the theory of FP release phenomena, and a brief description of FP detection methods and existing analysis tools. This theoretical background is then applied in Chapter 3 to develop, research and implement techniques for analyzing defected fuel, and examples and discussions of each technique is presented. Chapter 4 discusses the sensitivity and error checking capability of the proposed techniques applied in COLDD. Chapter 5 describes the validation and benchmarking of the software programme against theoretical, commercial, and experimental data. Chapter 6 provides detailed discussion and Chapter 7 presents final conclusions. The final chapter, Chapter 8, discusses recommendations for future studies of defected fuel and possible improvements and additions to COLDD.

11

Chapter 2

Background and Literature Review

This chapter acts as both a theoretical background and literature review of the key aspects of this work. The definition and causes of defected fuel are examined in detail, before investigating the mechanistic and empirical studies of FP and tramp uranium release. A minor review of defected fuel detection techniques is given to provide background on later discussions on weaknesses and possible improvements. The exact details of defected fuel diagnostic techniques are only discussed briefly in this chapter, as their derivations, improvements, and developments of new techniques are more thoroughly discussed in Chapter 3.

2.1 Defected Fuel Root Causes

Defect root causes can be divided into three broad categories: fabrication defects, (e.g., incomplete end-closure welds, porous endcap bar stock, primary hydriding), operational defects (e.g., debris fretting, abnormal fuel handling, acoustic resonance) and design related defects (e.g., stress corrosion cracking, fission gas overpressure, circumferential endcap cracks). Table 2-1 lists the various defect types, more detailed descriptions and explanations of each mechanism are presented in Appendix A. 12

Table 2-1: List of defect root causes, see Appendix A for more details Defect Category Defect Type Incomplete end-closure weld Porous endcap material Primary hydriding

Defect s Insufficient volume Fabricatio n Fretting from endcap weld flash Debris fretting Mechanical damage from abnormal handling Coolant induced acoustic resonance endplate

Defect s fracture Operationa l Spacer-pad to spacer-pad wear Stress Corrosion Cracking (SCC) Pellet Clad Interaction (PCI) Sheath texture

Defect s Circumferential endcap cracks

Syste m Desig n Fission gas overpressure

Although the defect types described occur infrequently, there is a risk of defects occurring in 'defect excursions', defined as a period of operation when many fuel elements fail because of a common cause. The number of failed elements involved can vary substantially (5 - 400), and may or may not significantly affect reactor operations. Table 2-2 lists defect excursions and their root cause from CANDU reactors [12].

Table 2-2: Fuel defect excursions that have occurred in CANDU reactors

Year Reactor Fuel Defect Type 1969-72 Douglas Point Stress Corrosion Cracking (SCC) 1971-72 Pickering A Units 1 & 2 SCC 1976-77 Bruce A Unit 2 Incomplete end closure welds, debris fretting 1981 Douglas Point Incomplete end closure welds 1984 Bruce A Unit 3 Endcap cracking (SCC) 1985 Pickering B Unit 5 Debris fretting due to strainer breakup 1984-85 Wolsong Unit 1 Debris fretting 13

Year Reactor Fuel Defect Type 1985 Embalse Incomplete end closure welds 1988 Pickering A Unit 1 SCC (overpower) 1990-92 Darlington Unit 2 Endplate fatigue (acoustic resonance) 1991 Wolsong Unit 1 Debris fretting 1991-92 Pt Lepreau Primary hydriding (underbaked CANLUB) 1995-96 Wolsong Unit 1 Primary hydriding (underbaked CANLUB) 2003-06 Qinshan Units 1 & 2 Incomplete closure welds 2003-06 Bruce B Debris fretting 2008 Cernadova Unit 2 Incomplete end closure welds, debris fretting

Table 2-2 shows a decrease in the frequency of defect excursions due to improvements in understanding of fuel defects, as the time between defect excusrions has been steadily increasing. Furthermore, modern defect excursions tend to involve far fewer defected elements than earlier excursions. The predominant cause of defects in the past was from manufacturing flaws; however, stringent modern Quality Assurance (QA) requirements have largely prevented this type of defect from reoccurring. Modem reactors are more likely to experience operational defects from debris fretting (Figure 2-1) and abnormal fuel handling, although the defect rate is now extremely low and the defects generally minor.

Figure 2-1 Generic debris fretting fuel defect near a spacer pad. Image courtesy AECL 14

It is important to realise that the number of defects, typical defect powers, and defect locations can be a function of the defect type. There are a limited number of scenarios that can (and have) occurred in a reactor:

• Single defect: Most likely in modern CANDU reactors, and typically from debris fretting. This is not location or element power history specific.

• 2-5 defects: Could occur from a manufacturing defect. Bundles are made in batches, and each batch is inserted slowly into the reactor to confirm performance. Manufacturing defects all preferentially occur in higher power elements.

• >50 defects: If this occurs, the defects will either be predominantly high-power elements, or a complete mix. A significant number of very low power defects is not feasible, as no defect mechanism preferentially selects low power elements.

2.2 Fission Products (FP)

Before detailing FP release models, it is necessary to have an understanding of how FP are created, and the types of FP that can be released. In this section, aspects of FP generation and behaviour relevant to defected fuel analysis are discussed.

The birth rate (B [atom.s1]) of FP in a CANDU fuel element can be determined from:

fission MeVi r MJ B = x ^[m] x 200 MeV 1.602 x 10"19 MJ 1000 kW-s atom rkW x yc(Bu) xP (2-1) fission. m atom B = Ffyc(Bu)P

Where i = 0.477 m is the typical CANDU fuel length, yc(Bu) [atom.fission" ] is the burnup (Bu [MWh.kgU1]) dependent cumulative yield, P [kW.m1] is the linear element power, and F/= 1.489><1013 fission.s'.m.kW"1 is the fission rate per element linear power. 15

The actual birth rate is spatially dependent within the fuel element, but equation (2-1) is a sufficient macroscopic estimate that will be shown to model FP release reasonably well.

The burnup dependant cumulative yield, yc(Bu), is the number of atoms of a specific FP that will be produced by 100 fission events, including decay from precursors. The burnup dependence is introduced here to account for the variation of CANDU NU fuel composition during irradiation, which results in decreasing amounts of U, and increasing amounts of 239Pu. The 239Pu is bred into the fuel mainly from the following sequence:

238 239zjy T 23' 239 U + neutron -» U ^p - Pu (2-2) P- Decay, t1/2=23 mins P-Decay, £1/2=2.2d

This buildup of 239Pr u creates a shift in the relative production of 'light' and 'heavy' nuclides, as shown in Figure 2-2.

Incident neutron data / ENDF/B-VII.O / / Fission data / Parent cumulative fission yields Thermal (0.0253eV)

too--

10-- PU239 I UZ3S 1-- •* 01--

2 oot-- a ** 0 001 I E-4--

E5-- V £«--

£?--

E4--

E9-- -¥ « so 100 +120 140 1« '» Chain ma**

Figure 2-2 Fission yield [atom.fission1] versus atomic mass for 235U and 239Pu. Generated using ENDF/B-VII.O data [5] with JAMS 3.0 [13]. 16

The changing composition of the fissile content as a function of burnup can be exploited in defected fuel and tramp uranium analysis as a means to determine uranium burnup. This can be achieved by examination of the different cumulative yields for 235U and 239Pu, as shown in Figure 2-2. The important aspect to observe in Figure 2-2 is that the 'heavy' (chain mass of 130 - 160) FP have relatively similar yields between 235U and 239Pu, whereas the 'light' (chain mass of 80 - 110) show more variation. This enables ratios of 'heavy' and 'light' FP to indicate the uranium burnup. This technique has been used in the past [11], but a new methodology is developed, discussed, and applied in this work (see section 3.10.5).

The fission yield as a function of burnup of NU fuel can be determined from

35u 5 9p 39p yc w23Su(Bu)ap " + yf "w239pu(gu)q; " ydBu) = _ ^ 35u23 239pu (2-3) w235u(Bu)a* + w239pu(Bu)a*

l 1 where y c is the cumulative yield from species /, w,(Bu) [g.kglT ] is the burnup dependent specific fissile content of species /, and oj [cm2] is the fission cross-section of species /. The specific fissile content has been calculated for CANDU fuel3 [14], and a correlation developed from that data [15]:

W235(J(BU) = 10°-85095-0.0027604Bu (2.4)

3 2 4 2 w239Pu(Bu) = 4.204 x 10~ + 4.075 x 10~ Bu - 2.970 x W~ Bu + 1.304 x 10_6fiu3 - 3.181 x 10-gBu4 + 3.221 x 10~12fiu5 ^2"5^

The limitation of equations (2-4) and (2-5) is that Bu must be < 300 MWh.kgU"1. While this limitation is acceptable for irradiation of CANDU fuel (typical discharge burnup is ~ 250 MWh.kgU*1), it limits the ability to examine tramp uranium that may exceed 300 MWh.kgU"1. As no published data is available above 300 MWh.kgU"1, new correlations were developed to tentatively extrapolate up to ~ 500 MWh.kgU"1 (equation (2-5) is unstable above 300 MWh.kgU"1 due to its high order):

3 Correlation is based on calculations for Bruce A, Pickering A, and Gentilly-2 [14]. The data is shown as "CANDU Data" in Figure 2-3. 17

6 325xl0-3Bu w235(/(Bii) = 7.076e- - (2-6)

7506xl0_6Bu 0144Bu w239P (Bu) = 2.794e - 2.785e-° (2-7)

The form of equations (2-6) and (2-7) are based on a simple NU model incorporating 235U, 238U, and 239Pu (bred from 238U), as shown in Appendix B. These isotopes generate the majority of the fuel power, and the correct fit of the simple model to the full model ("CANDU Data" in Figure 2-3) provides confidence in the correlations. Equations (2-6) and (2-7) are only employed in one MATLAB® script file (ycBu.m), and therefore the programme can be readily improved by replacing these correlations with more accurate data.

o - IT 7 ) X CANDU Data (U235) o CANDU Data (Pu239) M -235U Correlation 239Pu Correlation M fa C c _ c O A - U 4

"Si 3 - vt J

E l O. 1 -^ "^-^ 5" l 0 < t i i i i 100 200 300 400 500 Bumup [MWh.kgU1]

Figure 2-3 Fissile content of "'U and 239Pu as a function of burnup [14]. New correlation form and derivation provided in Appendix B.

Within the FP chain masses shown in Figure 2-2, the FP can be divided into three distinct groupings: gaseous (GFP), soluble (SFP) and depositing (DFP). A description of these groups, and their importance and behaviour are discussed in the following three subsections. 18

2.2.1 Gaseous Fission Products (GFP)

The only radioactive gaseous FP (GFP) present in nuclear fuel are nuclides of the noble gases xenon and krypton. As noble gases are chemically inert, Xe and Kr do not appear as compounds, only in elemental form. Table C-l in Appendix C lists the important GFP and some of their key properties.

The inert nature of these gases makes them mobile within a fuel element, and they are not held up in the fuel-to-sheath gap by any chemical processes. Therefore the fractional release of noble gases is always greater than or equal to the release of soluble FP (see Figure 2-14) or depositing FP. This can be an important verification to confirm that FP data is correct (section 4.2).

2.2.2 Soluble Fission Products (SFP)

Soluble FP (SFP) refer to FP that dissolve in the coolant and appear in ionic form (alkali metals and halogens). The main soluble FP are and iodine, which can have half lives up to 30 years ( Cs). Rb, Mo and possibly Te [16] are the other soluble FP. A detailed list of SFP is given in Table C-2 in Appendix C. Due to their ionic state in the coolant, soluble FP are removed by the purification system creating an effective half-life on the order of the purification half-life of the coolant system, which is typically ~ 3 hours4 in a CANDU reactor. This behaviour can be exploited to determine ion exchange efficiencies (section 4.1.9).

The solubility of these FP is a critical property for examining their release to the coolant, as liquid ingress is required before release can occur. This is the reason for the 'spiking' behaviour seen during reactor start up and shutdown, as discussed in section 3.4.3.

The behaviour of the SFP 132Te is not well understood as experimental evidence shows 132Te washing out of the defect at high powers (> 67 kW.m"1), but not appearing in the PHTS at low powers (< 23 kW.m"1) [16]; it is not clear where this change in behaviour

4 ln(2) 0 693 1 [hj Typical effective half-life = l = 3 hours Pp/Mc 15 [kg s ]/244000 [kg] 3600 [s] 19 occurs. Furthermore, thermodynamic modelling suggests that Te is not soluble under any circumstances and should never be washed out as a SFP [11]. The thermodynamic modelling is performed at 300°C, but TeCh (predicted Te state) melts at 733°C and boils at 1245°C, both of which are below typical centerline operating temperatures (1200 - 1600°C); it is not clear how this may impact the thermodynamic analysis. As 132Te is a long-lived precursor to 132I, this unknown behaviour creates uncertainty in l32I data. Ideally COLDD could neglect I data, but unfortunately the full suite of iodines are not typically available, and l32I is retained but acknowledged to be used with caution. If a station has a fully developed FP detection system that records the full iodine family, then l32I should be neglected to improve analysis results.

2.2.3 Depositing Fission Products (DFP)

Depositing FP may be further sub divided into two groups, Type A and Type B [17]. Type A depositing FP refers to FP associated with UO2 debris that can be released from a defect and subsequently deposited in the PHTS. These FP deposit as a single entity and do not circulate as separate chemical components. Fission products included in Type A depositing FP are particulate FP: Ba, La, Ce, Zr, Nb and the [16]. Thus, type A deposits tend to remain locked in the UO2 matrix of uranium contamination (tramp uranium) in the PHTS, and do not occur separately from fuel debris. A detailed list of DFP is given in Table C-2 in Appendix C.

Unlike Type A FP, Type B depositing FP can escape from the UO2 fuel matrix (similar to soluble FP) through a fuel defect, and subsequently deposit in the PHTS. Type B FPs are also found in Type A FP as FP contained in the UO2 fuel matrix itself. Type B FPs are only Mo, possibly Tc [17], [18], and possibly Te [16].

From Table C-2, care must be taken to properly separate 99Mo and 99mTc by gamma spectrometry due to the single shared energy at 140.5 keV. 99Mo must be identified by its 739.5 keV peak, and then the calculated 99Mo contribution to the 140.5 keV peak must be removed to then accurately measure 99mTc. In the work of Swann [19], the planar detectors in that instance could not detect energies above ~ 400 keV, and therefore it is 20

impossible in that case to separate Mo and 99mTc. When 99Mo and 99mTc data are presented, it is not always clear if this subtle correction has been included in the analysis, and therefore caution is advised in analyzing the data.

2.3 Fission Product Release from Defected Fuel

The CANDU fuel system can be split into three distinct volumes: (i) fuel matrix, (ii) fuel- to-sheath gap, and (iii) the PHTS (or coolant). Fission product inventory in each specified volume can be treated as a classic time-dependent mass conservation problem in a known volume:

Accumulation = Production - Losses (2-8)

In a CANDU reactor, the FP generated in the UO2 fuel move through a complicated process to the fuel-to-sheath gap. The FP can be subsequently trapped in the gap or migrate to the defect and escape to the coolant. In the coolant the FP are then detected, and also removed by decay and ion exchange columns. The mass balance for each volume is shown in equations (2-9) through (2-11). Detailed descriptions of the FP behaviour from generation to detection are provided in the next few sub-sections.

(i) UO2: Accumulation - Fission production - (Decay + Loss to the gap)

dNf(t) = Ffyc(Bu)P(t) - (XNf(t) + Rfg(t)) (2-9) dt (ii) Gap: Accumulation = Gain from UO2 - (Decay + Loss to the coolant)

R (t) - {AN (t) + R (t)) (2-10) dt fg g c (iii) Coolant: Accumulation = Gain from gap + Gain from Tramp U - (Decay + Loss from purification +Loss from leakage)

dNJt) —^- = Rc(t) + Rtr(t) - A*(t)Nc(t) (2 n) rftl_1+P, m *(o " X{t)~x + MM effi) Kw> 21

Where:

PP(f) = Coolant purification flow rate [kg.s~'] e(t) = Coolant leakage rate [kg.s-1] Fif(t) = Tramp uranium fission rate [fission.s"1] Ff = Fission rate per element linear power [fission.s" .m.kW" ] IXefj(t) = Ion exchange efficiency [%] X = constant [s~'] X = Effective radioactive decay constant [s_1] Mc = Coolant mass [kg] Ncig = FP inventory in the coolant, fuel and gap [atom] P = Defected element power [kW.m1] 1 Rtr(t) = Total FP release rate from tramp U to the coolant [atom.s" ] 1 Rfg(t) = Total FP release rate from the fuel to the gap [atom.s ] -h Rc(t) = Total FP release rate from the gap to the coolant [atom.s" ] t = time [sec] 1 yc = Cumulative yield of a given FP [atom, fission" ]

1 The release rate from the fuel to the gap (R/g(t) [atom.s" ]) is an important quantity in the set of equations from (2-9) through (2-11) as it represents the source term for the FP in the fuel-to-sheath gap that subsequently become available for release into the coolant. There are three main methods for FPs to leave the UO2 matrix: (/) recoil, (11) knock-out and (///) diffusion.

2.3.1 Fission Product Release by Recoil

An energetic fission fragment released from a fission event will move a finite distance in the UO2 matrix before coming to rest. If the fission fragment is produced within a surface layer comparable to the FP range, then it is possible that it will be stopped in the steam (assuming a defected element) in the fiiel-to-sheath gap and contribute to the gap FP 1 inventory. The fractional recoil release (recoil release rate, Rreco,i [atom.s" ], divided by the birth rate) is shown below [20], [21]:

2 12 eg = l/4 for t>iig < " )

V *g = c/ScHg for / « \lg

Here: Sg/V = Ratio of the geometrical surface area to the UO2 volume [m"1] 22

ixf = Approximate range of fission fragments in the UO2 (-10 urn) [m] B = Volumetric birth rate [atom.s1] eg - Release efficiency (fraction of fragments born within fXf of the surface that stop in the gas-filled space) -0.13 % for noble gases [20]. VJSc = Volume to surface ratio of the gas-filled space [m] rj = Efficiency of FP stopping in the gap [xg = Maximum fission fragment range in the gas-filled space [m]

Figure 2-4 is a schematic pictorially illustrating fission fragment release by direct recoil. Equation (2-12) is developed from geometrical arguments by examining a hemisphere of radius Hf placed against the solid surface; any small volume dV within the hemisphere can generate recoil release through the solid angle to a unit area at the surface of the centre of the hemisphere. Release by recoil only impacts the FP concentration within (Xf of the surface, and creates a linear concentration profile from Coo at x - ixf to Coo/2 at x = 0, where x is the distance from the surface, and Coo the bulk FP concentration.

Solid Surface Fission ^. Direct recoil release

Primary 03 XT Knock-On ft X \ n Higher-order \ •V Knock-On Fission^-"" \7

iif 10 Jim Lig -1 cm

iifco , A AA, 1 ...V, ' / -20^im

Figure 2-4 Schematic (not to scale) of fission fragment release by recoil and knock­ out 23

2.3.2 Fission Product Release by Knock-Out

Knock-out into the gap occurs when an energetic fission fragment collides with a stationary FP, and may cause this FP atom to be dislodged from the fuel matrix. Atoms displaced by primary knock-on can also trigger higher order knock-on effects. Table 2-3 shows that each fission fragment generates ~ 14 primary knock-on uranium atoms, which in turn create ~ 750 higher-order knock-on uranium atoms each, for a total of- 21,000 higher-order knock-on uranium atoms per fission event. Although the mass and charge of FP are approximately half of uranium, the Rutherford scattering cross section is roughly half as well, allowing application of uranium ranges and knock-on to FP calculations [21].

As described for recoil release, the same geometric arguments can be employed to determine the fractional knock-out release rate (knock-out release rate, Rxnockoui [atom.s1], divided by the birth rate) as shown below [20]:

2 g ^Knockout _St ..fco„rrt „ _ (M///4°) t/F n .-> —g— - yHu W). H - — (2-13)

15 cos(A) H + 6 cos(A) - 2 sin(A) - 4tf - 6 (2-14a) /(//) ~ 2 tf(5cos(A)-4)

H H 3 _ 19 . ,~ , ., x « + H3 H* + - (2-14b) 8 24 128 960 A = 2oT7o (2-14c)

Here: S,IV = Ratio of the total surface area to the UO2 volume [m"1] /iy° = Approximate range of higher-order uranium knock-ons (~ 0.004 um) [m] au = Number of uranium atoms emitted per fission fragment (~ 5 [22]) F = Fission rate [fission.s1] Nu = Number density of uranium atoms [atom.m"3] 24

The equation for 1(H) was developed by Lewis [20], and is presented in simplified form in equation (2-14a) for the first time. H represents the ratio of knock-out removal versus loss by decay. Due to the small range of knock-ons, knock-on release only occurs within a very small range of the fuel surface, and is a significantly smaller contribution than recoil (section 2.3.4).

Table 2-3: Mean energies, numbers, and ranges for fission fragments and knock-ons [21], [22]. Mean Energy Number Particle Type Range [urn] [keV] per Fission Fission Fragment 80,000 2 10 Primary uranium knock-on 100 28 0.022 Higher-order uranium knock-on 0.2 21,000 0.0044

2.3.3 Fission Product Release by Diffusion in the Fuel

Fission product release by diffusion type processes from the fuel into the fuel-to-sheath gap is an extremely complex process involving: changing fuel microstructure and macrostructure, intergranular and intragranular bubble formation, migration and sweeping, dissolution and re-solution of the insoluble gases, movement through inter­ connected porosity, inter-linkage of inter-connected porosity, irradiation damage, and changing (time and spatial location) fuel properties (see Chapter 13 of Olander [21] for an excellent review of some these phenomenon, and Shaheen [23] for a recent mechanistic model incorporating all such effects). This process is not only important for understanding defected fuel behaviour, but also plays a significant role in fuel performance under normal operating conditions; fission gas release can cause fuel swelling, and fission gas build-up in the fuel-to-sheath gap affects the fuel-to-sheath gap properties which in turn influences fuel performance. Figure 2-5 is an intricate diagram that attempts to convey the complexities and links between fuel phenomena. 25

Figure 2-5 Fuel element parameters that influence fission gas release into the fuel to sheath gap [24]

Figure 2-5 shows the complexity of fission gas release for intact fuel, adding fuel oxidation and non-gaseous FP release adds significantly more complexity, and is the subject of on-going work [23]. For the purposes of this work, the diffusion release of FP into the fuel-to-sheath gap of a defected fuel element is shown to be adequately represented by an effective diffusion coefficient, known as the empirical diffusion coefficient D \P), and represents the rate-controlling mechanism.

This approximation was first employed by Cubicciotti who used infinitely long cylinders in an equivalent-cylinder model to analyze diffusion in uranium-carbide [25]. This approach was applied by Booth to ceramic UO2 using equivalent-spheres of radius a [m] to represent ceramic UO2 [26] [27]. Booth's assumption that FP diffusion out of the equivalent sphere is the rate controlling step has been used successfully for diffusion coefficient studies (i.e., [28]), and CANDU defected fuel studies (i.e., [15]). 26

The empirical diffusion coefficient D' has been examined in detail in the past, and two models have been proposed in the literature for defected CANDU fuel based on: defected fuel experiments in NRX [15], and sweep gas experiments in the NRX applied to oxidised fuel [11], [29], [30]. This thesis introduces a new D' model based entirely on commercial reactor experience, as discussed in the progress update conference paper [31], and reproduced in this section. All the D' models are shown to be consistent, and COLDD is programmed with the new D'.

2.3.3.1 D'(P) From NRX Defected Fuel Experiments

Lewis et. al. [15] developed the following relation for D'(P) [s*1] based on four NRX defected fuel experiments:

8 6321 p) 23 4091 1 1 D'NRX(P) = 10 - °8io( - - (25 kW.m < P < 60 kW.m ) (2-15)

1 where D'NRX(P) [s ] is the empirical diffusion coefficient for noble gases based on NRX defected fuel data, and P [kW.m"1] is the defected element power. Equation (2-15) was found by fitting equation (2-32b) to experimental data. Lewis et. al. [15] were able to plot

D'NRX(P) versus element linear power, as shown in Figure 2-6. The relationship in equation (2-15) is from data in the 25 - 60 kW.m"1 range, or typical CANDU conditions.

7 _ r r__ , . _._—g 10" ET — . t t b -- bdine point extrapolated- ^ . FFO-104 ; ^ -Iff8 u co 10 r --©• - Noble Gas FFO-10JK * \ro * - Iodines f 10" &

10 *¥QAW-2y/ FFO-102-2 '_ 1 io" r CO o todine point a. -11 v £ 10 - extrapolated _j HI FFO-102-3 12 F F F F i__ £..._? :___ : io-1 u ^ 10 20 30 40 50 60 70 80 90100 Linear Power [kW.m"1] Figure 2-6 Empirical diffusion coefficient D\P) for iodine and noble gases versus linear power for the CRL experiments [15] 27

2.3.3.2 D'(P) From Sweep Gas Experiments

In the mid-1980's, AECL Chalk River Labs performed a series of "sweep gas" experiments in the NRX reactor [29]. In these experiments, a carrier gas (He) continuously flowed through the fuel-to-sheath gap of an operating intact fuel element, and past a gamma ray spectrometer which monitored the quantity and species of fission gas released from the UO2.

One of the sweep gas experiments consisted of a stepped power increase (reactor power 138 held for 1 hour at each power level), where measurements of the short-lived Xe {tx/2 = 14 minutes) were used to determine the empirical diffusion coefficient as a function of power. The results from this experiment are shown in Figure 2-7 [29].

The limitations of these sweep gas measurements are that the fuel is not oxidised, and with such a short half-life for Xe, recoil release had to be taken into account [32].

El Jaby et. al. [30] used the sweep gas D'Sweep{P) in the development of their Steady-state and Transient Activity Release (STAR) programme for analysing defected fuel, by introducing a factor £(t) to account for the enhancement of FP diffusivity due to oxidation of the UO2 in a defected element to UO2+X [11], [33], [34]. The value of {(t) was found to be in the order of 350 - 2000 for NRX experiments, and a selected commercial case [30]. The empirical diffusion coefficient from the sweep gas experiments was determined to be:

DsweepiP) = £(t)ea°+aip+a2p2 (18kW.ni-1 < P < 60 kW.m1) (2-16)

3 3 where a0 = -30.8 + 0.4, ax = -0.04 ± 0.02, and a2 = 2.1 xlO' + 0.3xlO' are the coefficients used to fit equation (2-16) to the experimental data, as shown in Figure 2-7. The standard error (± 1

10 138 Xe Sweep Gas Measurements C/5 •30.8-0.04/N-2.1xlO"V Sweep •4—• c a0) 10 o U c o

•13 x 10

oc3 ex £ io"14^ 10 20 30 40 50 60 Element Linear Power [kW.mf ] Figure 2-7 Empirical diffusion coefficient D'(P) for ,38Xe as a function of linear power for intact CANDU-type fuel elements [29]. £(*) = 1 in this Case

2.3.3.3 D'CANDU(P) From Commercial Reactor Experience

To evaluate D'CANDU(P') from commercial reactor experience, one can focus on the steady-state release of 133Xe from defected fuel elements. Due to the relatively long half- 133 life (t1/2 = 5 days), and chemically inert nature, Xe is the least affected by defect size. This approximation is illustrated in Figure 2-8, which shows 133Xe steady-state release rate behaviour versus power for defects of various sizes (where known), (where known), and from different reactors; data is taken from [15], [35].

For steady-state release, the release-to-birth ratio of 133Xe is found from equation (2-32a), with the assumption A « v (reasonable approximation for 133Xe), and therefore: 29

R _ 10a+bp 'X ®CANDu(P} (2-17) B~ FfycP

133-, 235 Where yc = 0.066991 [atom.fission"] is the '"Xe cumulative yield for U (as 1 239 yc = 0.070163 [atom.fission" ] for Pu, the yield is nearly invariant with burnup), X= 1 for a single defect, and A = 1.53x10"6 [s"1] is the 133Xe decay constant.

13 io f L . L L I I . '. 1 ~ h O CANDU Data H 1 - " R = 10a+"P Darlington, 75 MWh.kgU" , Cfi--*-*^ o ~ 10mm2 ^ o tfH*"-^**^ 4-* CO ^^^-^*^C6 oc * Bruce _^-—Q^ CD DP, 110MWh.kgU'1 ^*r^O ^\ CO CO 12 ^n Bruce ^ i r Rnirp -An mm? _£-—"^ Darlington, 145 MWh.kgU- : ; © 10 druce, ~4U mrrv>- B -20mm2 «„ 2 CD O^—-'"^^ -0.4 mm - CC CO X CO - Bruce, ~ 1 mm2

HQ11L r • r ' r r • r r _t 30 32 34 36 38 40 42 44 46 48 50 Linear Power [kW.rrf1]

Figure 2-8 ,33Xe Release rate [atom.s1] as a function of power [kW.ni"1 J. Defect size and element burnup shown if known (C6 = CANDU-6, DP = Douglas Point) [31].

In Figure 2-8, the fit coefficients are a = 9.86 ± 0.06 and b = 0.057 + 0.003. Equation (2-17) can be solved directly for D'(P):

10 2a+2bP D'r (P) = CANDU 9Ffyl P2 -^Q(0.114±0.006)P (2-18) -12 12 = (9.0 x 10 ± 2.4 x 10" ) T2

The correlation in equation (2-18) is based on limited data in the 30 - 50 kW.m"1 range (typical CANDU conditions), and extrapolations outside this range should be used with caution. Without defect residence times and fuel burnup, it is not clear how increased oxidation and burnup may influence the I33-X, e release rate, as defects are typically 30 removed within as short a residence time as possible. Nevertheless, as shown in Figure 1 2-9, the behaviour of D'CANDU(P) in the 18 - 60 kW.m" range is fairly consistent with

D'NRX(P), and D'Sweev(P) at different values of £, providing confidence in D'CANDU.

z For very low powers, the P~ term in equation (2-18) causes D'CANDU(P) to reach a minimum at P = 7.6 + 0.4 kW.m"1, and then increase with decreasing power to an undefined value at P = 0; a non-physical result. Previous work by Turnbull et. al. [28] showed that at low fuel temperatures (or low linear powers) the diffusion coefficient is dominated by athermal diffusion and proportional to the fission rate, whereas at higher powers vacancy-enhanced and temperature effects dominate. Therefore, at low powers D'(P) is expected to be proportional to the fission rate (or element power), decreasing to 1 zero at zero element power. A rough approximation for D'CAND{J(P) below 7.6 kW.m" is a linear decrease as shown in equation (2-19), and removes the singularity point at P = 0. At P = 7.6 kW.m"1, equations (2-18) and (2-19) are equal.

1 13 13 D'CANDU {P < 7-6 kW.m ) * (1.5 x 10" ± 0.5 x 1Q- )P (2-19) 31

2.3.3.5 Comparing the Different Empirical Diffusion Coefficients

Figure 2-9 compares D'NRX(P), D'Sweep(P), and D'CANDU(P) over the range of typical CANDU conditions.

1E-08

- 4^\ !.• Q 1E-09 v : * ** ^ '' i ••• * 1

& 1E-10 i e t -•" .2 ^ 3 3= 5 - —„ •-~"' ? Sweep D'(PU=350 | 1E-11 ,--/ - - Sweep D'(P),*=2000 *w a / NRXD'(P) E : **' —•CANDU D'(P) CANDU D'(P) Extrapolated 1E-12 — i — . — - ^ .\. __j _j 15 20 25 30 35 40 45 50 55 60 Power [kW.m1]

Figure 2-9 Comparison of the three empirical diffusion coefficient equations [31]

From Figure 2-9 it is apparent that in the typical range of £ = 350 — 2000 [30], the three empirical diffusion coefficients are all in very close agreement; providing confidence in all three models. The D'CANDU is similar in form to D'Sweep incorporating a large £(t) that may appear to increase with power. The consistency between D'CANDU and D'NRX in the 30 - 50 kW.m"1 range is reasonable, confirming that the NRX experiments are a reasonable approximation of commercial defected fuel behaviour. For the remainder of this work

D\P)= D'CANDU{P) is assumed.

Note the logarithmic behaviour of all three D', this is important in section 3.4.4 which exploits this relationship to calculate defected element power from reactor power changes. 32

2.3.3.6 Using D'(P) to Calculate Release From the Fuel to the Gap

If the diffusion release is considered the rate-controlling step for FP release from the fuel to the gap, then mass balance in equivalent spheres used to represent the fuel can be used to determine the effective FP release rate into the gap:

Rate of change of concentration = Birth rate + Loss/Gain by diffusion - Loss by decay

dC(r,t) B(r,t) + V • [D(r, t)VC(r, t)] - M{r, t) (2-20) dt V, where B(r,t)/Vf [atom.m" .s" ] is the birth rate per unit volume, Vj [m ] is the fuel volume, C{r,t) [atom.m" ] is the FP concentration, and D(r,t) [nr.s" ] is the FP diffusion coefficient in the grain. Equation (2-20) can be simplified and solved by removing the spatial dependence of B and D, and applying the following boundary conditions (BC):

1. C{a, t) = 0 There must be zero concentration at the sphere surface. 2. C(r, 0) = C*(r) Assume initial concentration is a stationary solution C*. 3. 0 < r < a Solution only applies inside the equivalent-sphere. 4. C(0, t) = defined The solution must be defined at the grain centre.

The second boundary condition is often written as C(r, 0) = 0 in the literature [11], [36], [27], but in this work power changes are considered, and therefore it is more appropriate to consider the change in C(r,t) from one power (not zero) to another. Therefore, as this is a unique solution to this problem, the general solution is described in the text, with the full derivation in Appendix D detailing the calculation of all the equations in this section. The solution is shown to be consistent with Kidson's generalised solution [37].

Equation (2-20) is readily solved in the steady-state case with boundary conditions 1, 3, and 4, where C(r, t) -> C(r), D(r,t) -* D, and B(r, t) -* B. The stationary solution for C(r) is:

B ( sinh(XJji) \ C(X)=W- 1- / J7 (2-21) Wf\ X- smh(^)/ where fx{P) = A/D'(P), and X= rla are dimensionless constants, and D \P) = D{P)la2 [s1] is the empirical diffusion coefficient. Consider that at t = 0, C(X,0) = C (X) is at 33

equilibrium for an element that was operating at f?s* = aBs, where Bs is the current birth rate. As Bs is directly proportional to P, it follows that P* = aP, and if we solve fD'{aP) = D'(P) for/ then:

sinh aB ', where /(P) = _0-114gp (2-22) M *-sinh(/£ 10w

Equation (2-20) can be solved for C(r, f) using the following substitution (modified from Beck's approach [36]): U(r,t) C(r,t) = •exp(-At) + C(r) (2-23)

Substituting (2-23) into (2-20) produces the well-known heat equation:

dU(r,t) d2U(r,t) = D (2-24) dt dr2

Equation (2-24) is readily solved using separation of variables, and normalizing with X=rla. Boundary condition 2) is applied by defining C(X,0) = C*(X). Therefore,

B sinh(Xy/jT) C(X,T) = X- XXV sinh(VJI) f (2-25) 2fi (-l)nsin(7mX)fc(l - g) + n27T2(/ - ape-"*** + n Z_J n(ji + n2n2)(n2n2f + fi) n=X where T = D'(P)t is a dimensionless constant. Appendix D shows that equation (2-25) is consistent with Kidson's general solution, which if provided with the appropriate case conditions, provides:

B 2^Y (_1)n sin(nrtX) C(X,T) = 2 2 XXVf n Z-i n(ji + n n ') n=l (2-26) 2(i Y" (-l)nsin(7ntX')(^(l - a) + n2n2(f - a))e~n2n2T T-'I n(ji + n2n2)(n2n2f + fi) n=l

The time dependent components of equations (2-25) and (2-26) are identical, and the spatial component in (2-26) is the Fourier Sine Series of the spatial component in (2-25). 34

If a = 0 then that is equivalent to C(X,0) = 0, and the usual solution is recovered [26], [36]:

B sinh(XyJJi) 2\i (-l)nsin(7rnX)e-n27r2T C{X,x) = Y ' '' ' j (2-27) XXV, sinh(V)u) 7itT L-{Z_i nip.n(u ++ n 2n72rn 2) n=l

1 The evolution of C(X,T) for a defect with steady power of 36 kW.m" decreased to 31 kW.m"1 is shown in Figure 2-10; this power change is chosen to replicate the commercial case described in section 3.4.4.

A* = -

Figure 2-10 C(X,T) in a Booth equivalent sphere following a step power reduction from 36 kW.m"1 to 31 kW.m"1. Notice the small range in A" and increase in slope at X=\ with increasing time as the new equilibrium is reached at the lower power.

Once the concentration profile C(X, t) is known, Fick's law [38] can be used to determine the release rate

dC(X,T) 7(T) = -D Fick's Law dX

Fick's law states that the flux J(T) [atom.m" .s" ] is negatively proportional to the concentration gradient C(X, T) [atom.m" ], where the proportionality constant D [m .s" ] is 3 1 the diffusion coefficient. Therefore, the diffusion flux Rfg(j)/Vs [atom.m" .s" ] from the sphere surface per unit volume is 35

Rfg(j) Surface Area ( dC(X, x) dC(X,r) (2-28) Vo Volume dX 's (-°mJ=l(-° J where Vs [m ] is the Booth sphere volume. Therefore the total fuel volume fractional release rate to birth rate ratio is

(Rfg(r)/Vs)Vf Rfg(r)

{B/Vr)Vf B

= 3( — cothJ/I - -)// (2-29)

(n27r2 + u)(n2n2/ + u) n=l

Once again, if a = 0, then Rfg{t)IB recovers the usual form [26], [36] using the boundary condition C(X,0) = 0:

l l\ v-1 eK > — cothJJi-- //-6e_"T > —r-r -// (V/Z v \i) Z-. (n27r2 + n) , n_1 (2-30) Rf9 3 D' f^H = 3jT" The factor // is to account for pre-cursor diffusion which can result in non-isotropic birth rates in the equivalent sphere from decay of pre-cursors. Lewis et. al. [39] showed that only the immediate parent needs to be considered, and then

(A'+gd<0))P»> H = Hfy< *PDd yc (2 31) * \(A* + a?(

•y i [n.cm" .s" ] is the volumetric average thermal flux. Table C-l provides the data and shows that H~ 1 for all nuclides except 135Xe, 135mXe, and 132I which have large H, or H is highly sensitive to (); these nuclides should be used with caution when using R/g(t) as (0) is not well known. 36

The power change sample shown in Figure 2-10 can now be used to show the evolution of the diffusion release during the same power step:

Figure 2-11: Diffusion release Rfg(t) from a Booth equivalent sphere as power changes from 36 kW.m"1 to 31 kW.m"1

In Figure 2-11, the analytical model cannot model a realistic power decrease over a finite period, and therefore is used to model an instantaneous power decrease. The numerical solution is capable of handling any realistic power change, and therefore models a relatively slower 2 hour decrease. The numerical solution is determined by solving equation (2-20) in COMSOL™5 while maintaining the time dependence in B and D. It can be seen from the Figure that the results are comparable, providing confidence for using instantaneous power changes with the analytical model to examine real power changes.

It is important to note in Figure 2-11 that the diffusion release almost instantaneously drops with fuel power - this is discussed further in sections 2.3.5 and 3.1 and leads to a significant advantage in defected fuel analysis. The sudden drop in R/g(t) occurs because

5 COMSOL™ is a commercial finite element code modelling program. 37

dC(r,t) D'(P, t) changes immediately with fuel power, but takes on the order of St-i/2 to reach the new equilibrium profile, and therefore in accordance with Fick's Law the release rate must immediately drop and then increase to the new steady-state level.

2.3.4 Comparison of the Fission Product Release Mechanisms

Recoil, knock-out and diffusion release were calculated for NRX experiment FFO-102-3, and are shown in Figure 2-12.

«A-2 10

^S. R/B • 2.5 x M-* X*» Vj/B - 5.1 x 1CT* XM» >^^^ 9 - 3s wmm ^£ ^^^^ MH £ 10 ^ ^W fW _ v S v ^^x^ < *v ^JAA I-T^S ec v ^TJ "S. O Uf ix»oi V X ^s. »- \ /^w ^^^ ^ 10 - *\. *"ifcv X \ \A o \ H* • 5 EXPERtKNT Ff 0-102-3 \ "* NEASUK0 ACASC TO COOUNT * \ £«- MUASC PRQH FUa o \ • g «K0l N00EL X- KNOCKOUT MO0CL

«r« —' 1 L L 1 ll 1 1 10"* 10"1 W"4 10"3 01 oa. •*• M OS If or. Xt Xt Kr Kr Xt Kr Xt DECAY CONSTANT Xls^)

Figure 2-12 Comparison of recoil, knock-out and diffusion release to experimental data [40]

In Figure 2-12, the knock-out release has been multiplied by 100 to appear on the graph, demonstrating that knock-out can be neglected as recoil and diffusion are orders of magnitude larger. Recoil in Figure 2-12 is also substantially smaller than diffusion and 38

only plays a role for short lived species. As the diffusion release mechanism is dominant in defected fuel, recoil and knock-out can be neglected when investigating FP release from the fuel to the gap. However, for tramp uranium that consists of small particles and deposits operating at relatively low temperatures, recoil is the dominant release mechanism and is used to model FP release from tramp uranium into the PHTS.

2.3.5 Fission Product Release from the Fuel-to-Sheath Gap to the PHTS

The final step for FP to reach the PHTS is transport from the gap and into the coolant 1 (Rc(t) [atom.s" ]). This has been treated by various methods in the past including atomic diffusion in steam in the gap, a first-order rate process where the release is proportional to the gap inventory, of iodine has been considered, and kinetic models [41]. The main challenge is treatment of the FP transport in the gap, and subsequent release through the defect to the PHTS. Two main formulations have been proposed for CANDU fuel: diffusion in the gap [39], and first-order kinetic process [42]. Under steady-state conditions, these can be defined by

Rc \Da Rfa \Da D' = 2 —t L ud -12- = 2 \—t 9 d 3 — (gap diffusion) (2-32a) B *• I ^ g e g \ X "

Rr VN„ R (2-32b) fa (first-order kinetic) B B v+X B

2 2 where Dz [m .s"'] is the diffusion coefficient in the gap, ts [m] is the gap width, de [m ] is 1 the effective defect diameter, v [s ] is the escape rate coefficient, and Ng [atom] is the equilibrium gap inventory.

-1 Equation (2-32a) suggests that Rc/B oc A , however, (2-32b) suggests that if v > X -05 1 5 (large defect) then Rc/B oc A" and if v < A (small defect) then Rc/B oc A" - . This behaviour is observed in CANDU defected fuel, as shown in Table 2-4. This observed dependence on A indicates that the kinetic approach is more suited to modelling FP release from the defect, and the agreement between the theoretical and measured Xb dependence provides confidence in the model. 39

Table 2-4: Summary of slopes from RIB == 3X* from NRX experiments [40] b U02 Exposure X Dependence Defect Size 2 (mm ) Iodine Noble Gas Large 300-1500 -0.5 -0.5 Moderate 11-200 -1.0 -1.0 Small <1 -1.5 -1.0

From Figure 2-11 it is reasonable to assume that /?/g(t) ~ Rfg is always at the equilibrium value assuming a steady-state power, Pit) = P, and escape-rate coefficient, v(t) = v. Therefore solving for mass balance in the gap, using first-order kinetic theory for the gap release gives:

*c(0 Rfa J_R lB\, +v o Ii x+v)t B v+AB p "^rr; (2-33) *c(0 v D' ( BJyfW/P -(A+v)t

where Ng0 [atom] is the initial gap inventory. Equation (2-33) is typically presented without the time-dependence (steady-state solution), but Figure 2-13 shows that equation (2-33) is a reasonable estimate of the complete time dependent solution. In Figure 2-13 the "Analytical Solution" is equation (2-33), the other solutions are numerical time dependent solutions using STAR, where a transient vtr is used to model the FP spiking phenomenon [11]. Figure 2-13 is important as it illustrates that the release to the coolant reaches equilibrium relatively quickly compared to the nuclide half-life, and therefore if

Rc is measured, analysis results can be computed quickly without having to wait for equilibrium activity concentrations; as required by existing steady-state programmes. 40

• v. = 5 v tr ss •v = 10 v tr ss • Analytical Solution (v = 0)

0.8 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8

Multiples Of tQ

Figure 2-13 Evolution of the release rate to the coolant during a small power change 1 s 1 from 36 kW.m" to 31 kW.m"' (vss = 1x10 s" ).

The release model described can be successfully applied to both noble gas and iodine data; however it is important to realise that v is different between the iodine and gas species. The noble gases are highly inert, and therefore travel relatively easily through the fuel-to-sheath gap in a gaseous phase, whereas the iodines are a chemically reactive and soluble species that move through a more complicated process. The behaviour of the iodines can be empirically described as 'hold-up' in the fuel-to-sheath gap, which in effect delays the iodine escape resulting in more decay in the gap and subsequently lower fractional release compared to a noble gas with similar decay constant.

This phenomenon is clearly seen in NRX experimental results, and can be exploited to infer defect size by examining the ratio of iodine to noble gas release rates (see section 3.3). Figure 2-14 shows the decreasing yield corrected release rate ratio of (Noble Gas)/(Iodine) as defect size increases. In the extreme case of a large defect there is negligible hold up and both gases and iodines approach the A-0,5 limit.

6 Normalized by the cumulative yield for each species (i.e., Rlyc) 41

Figure 2-14 Noble gas and iodine release as a function of defect size from CRL experiments in the NRX reactor (modified from [7])

2.4 Fission Product Detection

There are three techniques for measuring FP in a CANDU PHTS; gamma spectrometry of the PHTS (online GFP system and grab samples), delayed neutron (DN) system, and feeder scanning. Defected fuel diagnostic programmes rely on GFP and grab sample systems for providing nuclide activity concentrations [Bq.kg1]. 42

2.4.1 Gaseous Fission Product (GFP) and Grab Sample Analysis

The GFP system relies on an online gamma spectrometer that monitors and records nuclide concentrations in real-time. The name of the system can be misleading as the GFP also monitors SFP and DFP. Grab sampling is a lab and dose intensive process that requires a worker to remove a sample of PHTS coolant, and then perform gamma spectrometry on the sample. Figure 2-15 is an example of the Bruce GFP system; other CANDU NGS use similar arrangements (if equipped).

Figure 2-15 Schematic of Bruce GFP system, including photo of sample holders [19] 43

The GFP system monitors a side-stream of the PHTS and is susceptible to several sources of error. As the sources of error in the GFP and Grab Sample system are critical to defected fuel diagnostics by COLDD, they are examined in more detail in Chapter 4, and are listed below: • Detector type (coaxial or planar) and nuclide identification algorithms (section 4.1.1). • Transit time from the reactor outlet to the sample point must be known (section 4.1.4). • Spectrometer counting time (section 4.1.6). • Geometrical, efficiency and energy calibrations to ensure accurate measurements (section 4.1.7). • Sampling temperature and pressure (section 4.1.8).

COLDD, and other programmes discussed in section 2.5 must all assume the raw data from the GFP system is correct for proper analysis. A novel error checking routine is developed and discussed (section 4.2), and a sensitivity analysis (section 4.4) is used to determine the importance of errors from the GFP and grab sample data.

2.4.2 Delayed Neutron System

The delayed neutron (DN) system is only present in some CANDU NGS, and relies on the detection of emitted from short-lived FP (l37I (24.5 second half-life), 37Br (55.65 second half-life), and 141Cs (24.84 second half-life)). The DN system works by measuring the neutron flux from each channel (after ~ 45 seconds of delay), and then compares the value against the average flux from all the channels. The ratio of the channel activity to the average activity is known as the discrimination ratio, and if this is above a certain level then that indicates a possible fuel failure in that specific channel. Figure 2-16 is a schematic of a CANDU-6 DN system; other CANDU NGS use similar arrangements (if equipped). 44

CANDU-600 Pump Steam Cart Generator -K7* 380 Channels *"D*T v_y W •+* Outlet Loopl Header 95 channels

• • 95 channels Loop 2

«-H* 95 channels trt t t T t T<^ ^>T

Figure 2-16 Schematic of a CANDU-6 DN system. Image courtesy of AECL.

A properly functioning DN system is very effective at locating defected fuel, although the GFP system (and in particular 13 Xe detection) is more sensitive and will detect the defect sooner and provide more information. Ideally the GFP system is used to detect and diagnose the defect, and the DN system used to locate and then remove the defected fuel.

2.4.3 Feeder Scanning System

The feeder scanning system is typically used if the GFP and/or DN systems are not available, and relies on FP deposition in the channel outlet feeder. A gross activity measuring device (e.g., Geiger-Muller tube) is passed over each channel outlet feeder, and the activity recorded. As per the DN system, the activity at each channel is compared to the average, and if it is above a threshold level, then that channel contains the defect. The analysis can only be performed shortly after shutdown due to the immense fields during irradiation, and radioactive decay of the FP after shutdown. Figure 2-17 is a sample scan showing a defect in Channel J10 at Pickering NGS. 45

i i i T T } r~T~r Fiir r TTTTTTT "? I 7 80 70 011—>

J10—-* 60 70

< CURVE (a) ON-POWER 3" SO - eo ; 3 I 3 I « 50a S g 30 H CURVE (b) SHUTDOWN > 40 g m g 20 VAAMVN AAM HI I 10 20 «.

Dashed Linos show Faador Pipa Positions - 10 H JL_J—I—I—1 1 1 . I I I I I I I I 1 I I 1 I I i L_J I L 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Pwrtration into Carriw Tub* (Mtttn) Figure 2-17 Feeder Scan results (a set of point measurements made at 5 cm increments) from Pickering Unit 4 Carrier Tube #1 East, November 1974 [43].

2.5 Defected Fuel Analysis Programmes

Although this work focuses on CANDU defected fuel analysis, it is important to consider the international effort that has been performed in developing defected fuel analysis techniques for various reactor types. The Booth diffusion and Rfg(t) models discussed earlier in this Chapter form the foundation for several defected fuel programmes: PROFIP [42] (used in SADDAM [44] and DIADEME [45]), RELWWER-2.0 [46],

Visual_DETECT [15], and STAR [11]. In fact, all these programmes use %(t) = vNg (with different nomenclature), and as shown in Table 2-5, the values for v are consistent across different reactor types and powers (defect sizes and causes are comparable amongst the reactor types). 46

Table 2-5: Summary of v/^c values for different programmes Reactor Programme Country V/ (Iodine) Type vNG (Gas) PROFIP [42] (used in PWR, 6 SADDAM [44] and France lxlO^-lxlO^s"1 ixio' -ixio"V BWR DIADEME [45]) lxlO-MxlQ-V Ixl0"6-lxl0"2s"' RELWWER-2.0 [46] Russia WWER 5 1 Default value of vNCJ = 5xlO" s" CHIRON [47] USA PWR 7xlO"6-lxlO"V Ixl0"6-8xl0"5s"' Visual DETECT [15], Canada CANDU 7xl0-8-2xl0^s"' COLDD [7] sxio^xKrV STAR3 [11] Canada CANDU IxlO^xlO-V Ixl0'6-2xl0-5s"' a The commercial CANDU values are listed here.

Although based upon similar principles, the various programmes have unique capabilities, some of which are built into COLDD (Chapter 3). A recent overview of some of the programmes has been provided by El-Jaby [11] (excluding RELWWER-2.0), and in section 3.12 the specific programmes are described in more detail, with emphases on the diagnostic techniques employed. Defected fuel analysis techniques which exploit the theory developed in this chapter, are detailed in the next chapter, Chapter 3. f

47

Chapter 3 Defected Fuel Analysis Techniques

This chapter discusses the development and implementation of the defected fuel diagnostic techniques in COLDD, based on the theory presented in Chapter 2. The theory and pseudo-code for each technique is presented in this chapter. References to subroutines in COLDD are stated in italics (i.e., SameTimeScale refers to the SameTimeScale.m MATLAB® script file). A summary of the subroutines described in this chapter are provided in Appendix E, including a brief description and reference to the appropriate section of this chapter. The complete source code listing for COLDD is provided in Appendix F.

3.1 Calculating the Release Rate

4 The release rate Rc(t) [atom.s ] from the defect into the PHTS is a key measurement for defected fuel diagnosis, and has been calculated in the past using two methods: equilibrium concentration (section 3.1.1), and Savitsky-Golay filtering (section 3.1.2). For COLDD, Savitsky-Golay smoothing and differentiating with a novel method incorporating frequency filtering is used to determine release rates. A new potential technique using Fourier analysis is proposed and discussed (section 3.1.3) but is not incorporated in COLDD, as it could not capture time varying purification and degassing effects.

All techniques described in the following subsections for calculating the release rate are based on solving the mass balance equation in the coolant:

RM _ Mc(t) (dc(t) ( ppV)ixem(t) e(t) \ \ i m~~T-{~dT+{+ W) +MAT))m)'W) (3_1)

1 where C(t) [Bq.kg ] = XNc(t)/Mc(t) is the measured nuclide concentration in the 1 coolant, Mc(i) [kg] is the PHTS mass, /?p(0 [kg.s ] is the ion exchange (IX) flow rate, 48

IXgffiit) is the IX efficiency (may be different for gases and iodines), and e(t) [kg.s"1] is the leakage rate of coolant from the PHTS. An instance where e(t) > 0 is highly unusual in a CANDU plant, and the leak would have to be repaired for safe operation. It is important to note that equation (3-1) is independent of the model chosen for FP release from the fuel into the coolant, and is not based on any assumptions of the FP release model.

The Savitsky-Golay, frequency filtering, and Fourier techniques all require equally spaced C(i) data {i.e., each C(i) measurement is taken after identical time periods). In an experimental and commercial setting, C(t) may be provided in various sampling periods.

Furthermore, the reactor data (i.e., /?p(t)) may be on a different time scale, and also contain various sampling periods. As equation (3-1) must be applied to digitised data, it is mandatory that the time scale is evenly spaced and identical for every time dependant variable, and the activity data and reactor data must be on the same time scale, and then digital signal processing can be performed.

To solve this problem, COLDD implements a Piecewise Cubic Hermite Interpolating Polynomial (PCHIP) to interpolate all the time dependant data onto a single equally spaced timescale. This is performed in the algorithm SameTimeScale and uses the MATLAB® built-in interpl function, which is based on [48] and [49]. The PCHIP algorithm is chosen as it has no overshoots (maintains local maxima and minima; close examination of the interpolated RFP data in Figure 3-1 shows that PCHIP never exceeds or undershoots the steady values despite step changes in power), and preserves the shape and monoticity of the data. Figure 3-1 is an example of interpolated data, where in this instance the reactor operator has increased 133Xe sampling rates after discovering a rise in activity levels; COLDD is capable of seamless handling of changing sampling periods. The mean sampling period chosen for the new timescale is the mean sampling period for the data; if the activity data is evenly spaced then the activity data is not interpolated, but the reactor data must be interpolated onto the activity data timescale for analysis. 49

,x10°

° Measured 133Xe Data 6- •+- •Interpolated 133,JJXeDatv a -e— Measured RFP X • Interpolated RFP > tf o]50 • • «3» a* • • • »ir ™~S-4-*a>-*-•- «§*f*-^ €)•••• 40 fc > I < ^ "I 30^ r 1 ^* 10 ^-^' =M=*=#*=*SM> •*3*-rt « 105 110 115 120 125 130 135 Time [days]

Figure 3-1 Using Piecewise Cubic Hermite Interpolating Polynomials (PCHIP) to interpolate nuclide and reactor data onto identical equally spaced time scales.

3.1.1 Release Rate from Equilibrium Concentration

The equilibrium concentration is the method currently employed by VisualDETECT, CHIRON, DIADEME, RELWWER-2.0, the previous CANDU prototype expert system [15], and in semi-empirical defect analysis in CANDU reactors [40]. The technique is very simple and effective, requiring equilibrium conditions such that dC(t)/dt = 0, and therefore equation (3-1) immediately reduces to

IX Pp efU . £ 1 A* Mc<-eqrC, + Ceq (3-2) S4((" Mr Mc) ]'B~ X B

e q 1 1 where R c [atom.s ] and Ceq [Bq.kg ] are the equilibrium release rate and concentration respectively, A* [s"1] is the effective decay constant, and all parameters are at equilibrium. The effective decay constant incorporates all the nuclide loss terms in a single variable to simplify the analysis. Equation (3-2) is the form used by the steady-state codes to convert measured coolant activities to release-to-birth ratios. 50

The equilibrium based technique is subjective, as the analyst must examine the data and determine where the concentration is steady-state. If the release rate and reactor parameters are steady, then C(t) from equation (3-1) is:

x C(t) c

XK -\x+^Txr-+Wc)t (3-3) + \ c0 M X + + ^ —M^ WC)/ e q rt = J-R? c + (Co - -?-R c c ) e- X*Mr \ ° A*Mr J

From equation (3-3), it is apparent that C{i) varies on the time scale of A* and therefore to reach 90 % of the equilibrium concentration value would require ~ 3.3 effective half- lives. For 133Xe this takes ~ 17 days, and therefore can delay the analysis.

Although the equilibrium conditions must be selected for some analysis types, the R/yc analysis discussed in section 3.2 is self-determining for steady-state conditions as the goodness-of-fit of the model to the data is very poor during transient conditions; a situation within which the model does not apply. Nevertheless, the operator using this technique must typically wait ~ 17 days for the 133Xe to reach equilibrium, as 133Xe is a critical isotope for almost all the analysis techniques.

3.1.2 Release Rate from Savitsky-Golay Coupled With Low-Pass Filtering

Savitsky-Golay smoothing and differentiation is a simple and robust method for analyzing noisy experimental data [50], [51]. It is effective for calculating the release rate in accordance with equation (3-1) as it smoothes the data, and its continuous polynomial technique provides steady first-order derivatives. 51

The Savitsky-Golay technique works by fitting well-behaved polynomials of degree n to windows of data F points long, where n < F - 1, and F is odd. The polynomial fits are performed across the data; for example, as shown by Polynoimal 1, Polynomial 2, etc.. in Figure 3-2. The centre point of the polynomial and its derivative represents the smoothed data and its derivative at that point. This process is shown schematically in Figure 3-2, where noisy data is smoothed using 3 polynomials of degree n = 2 and length F=5. The start and end of the data from Savitsky-Golay filtering is defined by the values of the first and last polynomial. 60 • Noisy Data \ 50 O Smoothed Data f 40 —Polynomial 1 9 ! Polynomial 2 * \ 30 1 -—Polynomial 3

10 ' 0

-10 Polynomial 2 (n=1. F=5) 0 4 x

Figure 3-2 Example of Savitsky-Golay smoothing

The Savitisky-Golay polynomials take the form

k=n k 2 n fi — y ubnknkl i —= ubn0nn ~r+ u nl<-k.1 ir +"n2 bn2l i r + - T +"nn b„„i (3-4) fc=0 which is fit to the data range — m < i < m (/ = 0 is the midpoint), where F = 2/w+l, using least squares by minimizing the square of the difference between the measured value y* and the fit value ft. This creates n + 1 linear equations of the form

k=n i-m i—m 2>* ^ ik+r= 2 y'r (3"5) fc=0 i=-m 52

Equation (3-5) can be solved to determine b„k, where r goes from 0 to n. For the purposes of determining the release rate from equation (3-1), only the smoothed value of the data, C(t), and its first derivative, dC{t)ldt, are required. These two values are defined by b„o and b„i, and therefore the release rate is found from:

Rcit) ~T[-KT + 1A + —ioo— + KF)I no{)) ( }

Where the b„k terms are from smoothing and differentiating C(t) data, and At is the time stepsize.

The analysis described above has been described previously for analyzing CANDU data [7], [19] as part of the development programme for COLDD. However, one major issue with this technique is that the Savitsky-Golay method tends to preserve high-frequency data; in fact this property is exploited in certain applications. For the purpose of analysis, the coolant activity should respond on a time scale comparable to the effective half-life of the species (see equation (3-3)); higher frequency components may be considered unwanted noise. To attempt to eliminate this noise and clean up the data, a zero-phase first-order low-pass Butterworth filter (cut-off period is the effective half-life) is applied to the C(t) data before the Savitsky-Golay analysis. Figure 3-3 illustrates how effective this technique is in providing a smooth release rate from noisy data.

COLDD calculates the release rate using the subroutine Releaserate after the data has been processed by SameTimeScale (see section 3.1). Releaserate first removes high frequency noise by building an appropriate Butterworth filter using the in-built butter function, and then Releaserate uses equation (3-6) to determine the release rate. 53

Figure 3-3 Savitsky-Golay smoothing coupled with a low-pass filter (fc = 2/tm) applied to 133Xe data

3.1.3 Release Rate using Fourier Transform

A new method was proposed to use a Fourier transform to perform the differential in k- space, and then apply a low-pass filter to remove experimental noise. This technique was found to produce comparable results to the filtered Savitsky-Golay algorithm described in the preceding section, but unfortunately had a tendency to oscillate, and could not handle time-varying reactor parameters (a major weakness). Therefore the technique is included here to demonstrate this possibility, but is not included in COLDD. 54

Taking the Fourier transform of (3-1) produces:

Ix Met /, PP efU £ . , -

Where j is1/(—1), Rc{k) and C(k) are the Fourier transforms of Rc(t) and C(t) respectively, and the Fourier transform of the derivative dC(t)/dt is jkC(k) [52]. The release rate is then found by taking the inverse Fourier transform of equation (3-7) after applying the appropriate frequency filter. The advantage of equation (3-7) is that the derivative in k-space is a simple multiplication by/, and with the release rate in &-space it is ideally suited for frequency filtering.

3.2 Rlyc Analysis

1 "R/yc Analysis'' refers to fitting models to R/yc(Bu) data, where R [atom.s" ] is the release 1 rate, and yc(Bu) [atom, fission" ] is the burnup dependent cumulative yield. Information about the defect is then extracted from the model fitting coefficients. There are two common forms of Rlyc models found in the literature for application to CANDU activity data [15], [40]:

aXb + C (3-8a) yc(Bu)

2 R _ 3v \X D'(P) =_^_J_ (3-8b) B(Bu,P) v + A^J X C v + AVI °

Where a, b, C, c, v, and a — 3vXyjD'(JP') are the fitting coefficients for the two models. Equation (3-8a) is based on experimental/commercial experience, and can be used to infer defect size (section 3.3.2) and tramp uranium contributions (section 3.10.2). Equation (3-8b) is the model described in Chapter 2 based on theoretical principles, and can be used to infer defect size (section 3.3.1), tramp uranium contributions (section 3.10.2), defect power (section 3.4.1), defect number (section 3.7.2), and defect burnup (section 3.8). 55

In most cases, the burnup dependence of yc is neglected; as shown in Table 3-11 this is a reasonable assumption, particularly as the average maximum burnup is ~200 MWh.kgU"'. Nevertheless, to minimise the error associated with this assumption COLDD retains the burnup dependence. The default defect burnup assumption in COLDD is 62 MWh.kgU"1 (centre7 of the change in cumulative yield to minimise uncertainty, assuming an exit burnup of 190 MWh.kgU"1), and is used unless the operator has reason to suspect a different known burnup. In both models, c, is the tramp uranium contribution, and its analysis is discussed in detail in section 3.10. COLDD uses a modified version of (3-8b) for analysis R _ t v >, A y~{M)~^TV7X + 2 (3 9) A = 3FfXjP D'(P) "

C = FfPc

2 where B = Ffyc(Bu)P has been used in equation (3-8b). Now, as A = 3FfXyJP D'(P), this has the added benefit of removing the P~2 dependence from

io0114P D'(P) = 9.0 x 10 1Z —-—, P has now also been removed from the y-axis variable, and

C = FfcP is acceptable for determining tramp mass as FfcP is required in equation (3-35) of section 3.10.2, and therefore the mass of tramp remains independent of the choice of P orX.

From the definition of A, given P or X the alternate can be determined, but it is impossible with an R/yc analysis alone to distinguish between these two variables. This is a significant weakness for this analysis technique and can lead to confusion when R/B plots or analysis are used to examine an unknown defect, as the user has inadvertently defined an unknown (P) before performing the analysis. Other codes tend to choose a core average value for this value; a method that COLDD employs if the user specifies the power to assume. This is a major issue and is discussed in more detail in section 6.5.

7 yc(Bu) does not vary linearly with burnup, and therefore yc(62) = (yc(0) -_yt(190))/2 +.yc(0) 56

3.2.1 Fitting Routine

The R/yc Analysis fitting is performed in the TRfit (equation (3-9)) and TRfitb (equation (3-8b)) subroutines. As a, A, b, v, and C have vastly different orders of magnitude, the fitting routine is optimised by using the logarithms of the coefficients:

Let x' = log(x) for variable x: 108 log +eC =logAi c' kik)= (&i)ix ) + A;V ((*I +£e / (3-10) R

where a = v' + A' — (vA)'. To further optimise and stabilise the fitting routine, effective initial guesses for equation (3-9) are employed, including minimization of the number of calculations. The coefficient C can be estimated by the value of the shortest lived isotope, as the major source of this isotope is from the tramp uranium due to hold up and decay in the gap (see section 2.3.5).

At the maximum X -» log f —-—r) ~ log(ec')

\ (3-11) C'~logf \ydBu) max(A)/ An initial guess for v and A is more complicated, but can be found by fitting equation (3-10) to the first two data points (this is similar to the semi-empirical same species release rate ratios discussed in section 3.3.4), where yt = --— • yc(Bu)

v ~ log yzih - yxyfh) /2 y^iyiA y2X ->^r\ * o/, ,, v> ay\ 2 (3-i2) A'~ - log [ y U +|log(A1y«eV + X,) ) xyijh - yiVAi/ l

2 v 2 = -v' + ilog(/l1y1 (e '+/l1) )

A' is defined as a function of v' in the algorithm to reduce the number of calculations required, and thus reduce the computation time. Computational time is a concern as the 57

fitting routine may be applied to several hundred days of data requiring thousands of Rlyc fits. The same process can be applied to the b dependent fit, where C follows the same form as equation (3-11). An initial guess for b' and a' can be performed by using the first two data points; log(yi/y ) b~ 2 logCAO-logCy (3-13) log(yi/y ) a'~ logOi) 2 log(Ai) = logOj) - b • logC^i) log(Ai) - log(A2) where a' is defined as a function of b to reduce the number of calculations required, and thus reduce the computation time. The final piece of information for efficient fitting is to define acceptable ranges of the coefficients, to ensure that spurious results are rejected. These ranges are presented in Table 3-1, and apply to the initial guess and the final fitted coefficient.

Table 3-1: Fitting coefficient ranges Coefficient Range Rejection Criteria Providing b and C are within range, and the a >0 goodness of fit is acceptable, then the fit is deemed acceptable A = 3F XjP2D'(P), range is from 1 defect A 4xl08to4xl013 f at 10 kW.m"1 to 100 defects at 60 kW.m"1 Expected range of A dependence including b -2tol uncertainty (section 2.3.5) lxlO^tolxlO"1 Range of experience from other programmes V and prior experience (Table 2-5) If C is not comparable to the shortest lived C isotope, then there is an error with the data and/or model (section 2.3.5)

With the model, fitting coefficients, and initial guesses defined, the data fitting can now be performed. The model is fit using the inbuilt MATLAB® fitting routine nlinfit which uses the Levenberg-Marquardt based algorithm from [53]. The Levenberg-Marquardt algorithm is an efficient least-squares based method for curve fitting, and is also 58

employed in VisualDETECT [15], [54]. Once a fit to the model has been determined, COLDD checks (inside TRfit and TRfitb):

• The coefficients are within the acceptable ranges (Table 3-1)

• The goodness of fit R2 is greater than 0.95

• The error in the coefficients is less than 200 % (error in b < 0.5)

The goodness-of-fit parameter R2 is a measure of how well the model applies to the data. A low value of R2 suggests an incorrect model has been applied, and the fit should be rejected. The value of R2 > 0.95 is based on the work of Cheng [55] as implemented in CHIRON, and automatically rejects attempts to fit the steady-state model (activity or release rate) to transient data. The rejection of large coefficient errors ensures only reliable fit results are reported to the user. The implementation and effectiveness of this approach is detailed in section 4.3 "Ensuring a Valid Rlyc Fit".

3.3 Defect Size

The defect size is an important parameter required to assist a reactor operator to determine the optimum method for managing a defect in the core. In this subsection three distinct methods are described for determining defect size; (0 using v from an R/yc

analysis, (//) using b from an R/yc analysis, and (/'/'/') using activity and release rate ratios.

3.3.1 Defect Size Using R/yc Analysis and v

The gap escape rate coefficient v is a function of the defect geometry and size, and increases through several orders of magnitude with increasing defect size (Table 2-5). The general defect model described by Lewis [41] shows that:

v=^ (3-,4) where n describes the defect geometry (n = 1 for a mid-rod defect, n = V2 for an end element defect, as described by Lewis [41] based on modeling generalised defects using diffusion in the gap along a specific path length (proportional to n/£) to the defect site), £ 59

[m] is the element length, and a [m.s"1] is the surface-exchange coefficient between the gap and coolant. Applying equation (3-14) to CRL defect experiments (experimental data fit with equation (3-8b) to determine v), Lewis et. al. [15] were able to determine a relationship between a and defect size, E [mm ], as shown in Figure 3-4.

t—u u vw life c E—rrvran

(0.71og E-7.5) 0^=10 10 * Iodine O Noble Gas

— aNG = 7.1x10"

L-- J* e r.-.JL.JLZx~rl c : r.-.e.-cr..:xl.. z r, r.,.c. r,.cr,* _c c—r ,,c,„f.r rr.f c_ 10 Defect Size [mm ]

Figure 3-4 Surface exchange coefficient a [m.s_-i i] for iodine and noble gases versus defect size for CRL experiments [15]

7046lo The fits to the data were provided as a, = io°- 8io £-7.5173 m s-i and ^ _ 71 x 10-6 m.s"1, where / and NG refer to iodines and noble gases respectively [15]. The data was refit to provide ±1 a error estimates in the fit coefficients as follows:

a - 10(0.7±0.2)log10£-(7.5±0.5)

6 6 3 15 am = 7.1 x 10' ± 1.5 x 10~ ^ " ) 60

Using equations (3-14) and (3-15), if vNG is known, then the defect size and uncertainty can be found from: 5 """Eg)"- " [M»VjV«C 0.7 £ = 10 = 10

2 (3-16) 2 2v2, ,

where a ± aa and b ± ab are used as temporary variables for 7.5 ± 0.5 and 0.7 ± 0.2, respectively, and propagation of errors used to calculate the uncertainty equation [56].

If vNG is not known, then n = 1 can be assumed, and the defect size estimated from:

"»«io(%)+™ l0g"(%r) +a\ 0.7 £ = 10 = 10 (3-17) a2 aj ln(10)\2^2a2j 2 E t ln(2)-ln(—)-ln(10)o °l E2 b2vf b2

Equations (3-16) and (3-17) are implemented in RyAnalysis, and can be selected in the COLDD GUI by choosing "Defect Size" and then "Defect size by R/y nu analysis using iodines". The primary requirements are v, and vNG (vNG is required to calculate n), although the defect size can also be estimated using v{ alone (secondary choice by assuming n = 1). The user is prompted to choose between a default n= 1, or n = 0.5, or to choose n from a noble gas analysis (if possible). When COLDD calculates n from (3-14), values greater than 1 or less than 0.5 are returned as 1 or 0.5, respectively, to maintain n within the acceptable range [41]. 61

3.3.3 Defect Size Using R/yc Analysis and b

This is an existing empirically-based method that uses equation (3-8a)

-75-T =alb + C (3-8a) yc{Bu) to infer defect size through correlation with b [40]. There is no exact correlation, but an approximate system is employed as detailed in Table 3-2. The principle behind this technique is that smaller defects will create enhanced hold-up of shorter lived FP, resulting in a smaller b (steeper slope in a R/yc(Bu) versus A plot), while larger defects provide less hold-up, creating a larger b (section 2.2, and Figure 2-14).

While not providing a quantitative size, the result from this technique can provide a rough guideline and provide an extra piece of knowledge to the operator. Figure 3-5 illustrates successful application of this technique to a small/medium sized defect. The fit for equation (3-8a) is performed by TRfitb called from Sizefromb. This analysis can be selected in the COLDD GUI by choosing "Defect Size" and then "Defect size by R/y b analysis using iodines" or "Defect size by R/y b analysis using noble gases". One advantage of this technique to the previous section is that it can be performed with gases or iodines alone, whereas the defect size using v must have complete iodine data.

It is not acceptable to apply this technique to tramp uranium situations (no defect in core), as in that case C » aX~b and the model is independent of b, or the model fit may determine b is approximately 0. This situation is avoided in COLDD as fitting equation (3-8a) to tramp uranium data results in a poor fit that is rejected (see section 3.2.1). 62

Table 3-2: Defect size using Rlyc slope [40]

Approximate "6" Dependence Defect Size Defect Size Iodine Noble Gas Tramp Only - 0 0 Large 300-1500 mm2 -0.5 -0.5 Moderate 11 - 200 mm2 -1.0 -1.0 Small < 1 mm2 -1.5 -1.0

Time [days] Figure 3-5 Using '6' to examine a small/medium defect from [19]

If the data available is limited, then b can be determined by the ratio of release rates (or activities) of two same species nuclides (one long lived, one short lived), assuming minimal tramp contributions. This ratios technique is discussed in detail in the next subsection.

3.3.4 Defect Size Using Release Rate or Activity Ratios

If the data available is insufficient to determine defect size from b or v (as discussed in the previous two sections), then two other options are available: ratios of different species (primary choice), or ratios of same species (secondary choice). 63

The mixed species ratio is an empirical technique that relies on the variation in hold-up between noble gases and iodines (section 2.3.5). As the defect increases in size, mixed ratios of gas/iodine decrease as the iodine release increases relatively faster than the noble gas release. A new novel approach for the defect size from the release rate ratio has been developed by combining the equations in section 3.3.1 for iodine and gas release as follows:

2nl0(o.7log10(«-7.s) LQtR'=^M= v^H*) EandasV/ = { 1 / NO (3-18) 7.5 1 .-. E = 100.72 0.7 \}v\ee

\xx,n* (-(vxe + XXe)R' + vxejjj^j j where R' is the release rate ratio, subscript Xe and subscript / refer to any xenon and

iodine nuclide respectively, and vXe = 2naNG/£ can be used if vXe is unknown.

If ratios of mixed species are not an option (insufficient or poor data), then ratios of same species (e.g., 133Xe/88Kr) can be used as a crude method to estimate b as follows

log b ^ \R2/B2) (3-19) ~log(A2) - log(Ai) where subscripts / and 2 refer to the two nuclides. Equation (3-19) is found by solving

b > Rifyc =aXi and Ri/yc =CL^2 for b. This technique applies the same methodology as determining defect size using b and comparing with Table 3-2, but the confidence in b is much lower as only two data points have been used.

Table 3-3 illustrates experimental cases of same and mixed species, including comparison with equation (3-19) for determining b, and equation (3-18) for estimating defect size. The crude method of using ratios is acceptable for order of magnitude estimates. Table 3-4 shows the priority sequence used by COLDD to determine the appropriate ratio to use, and also indicates which isotopes are not acceptable for use in this analysis. This analysis method can be selected in COLDD by choosing "Defect Size" and then "Defect 64 size by Nuclide ratios" which will call DefSizeRatios. DefSizeRatios allows the user to specify which available ratio to use, and by default selects the priority option. If sufficient isotopes are available for a full R/yc analysis then a message is presented to the user indicating that a b or v based analysis is more appropriate for defect size estimates.

Table 3-3: Isotopic ratios for defect experiments [15]

Defect Size [mm2] Release Rate Ratio 1 10-200 300 - 900

131 133 Same I/ I 6.5 [-0.84] 6.9 [-0.87] 1.9 [-0.29] Species 133Xe/88Kr 53.5 [-1.0] 104.2 [-1.2] 13.3 [-0.7] 88Kr/133j 3.7(3) 0.4(113) 0.1(9700) Mixed 133Xe/131I 30.3(0.1) 5.6(1.3) 0.7 (560) Species .33Xe/,33j 195 (0.8) 40(8) 1.3(1400) Values in no brackets are the measured ratio Values in [parenthesis] are the value of b from equation (3-19) Values in (parenthesis) are the defect size in mm from equation (3-18) 65

Table 3-4: COLDD priority for ratios (mixed ratios before same species ratios)

Nuclide Half-Life Notes Priority

133Xe 5.243 days Numerator 133mXe 2.19 days A mXB 9.14 hours Ignored due to neutron absorption effects 85mKr 4.48 hours 88Kr 2.84 hours 87Kr 76.3 mins 1 IgfTl. r 15.29 mins Ignored as half-life is too short; 44*Xe 14.08 mins influenced by tramp uranium 13.j 8.0252 days 133I 20.8 hours 135T 6.58 hours UZT 2.295 hours Ignored due to long lived precursor «4T 52.5 mins Ignored as half-life is too short; V influenced by tramp uranium Denominator

3.3.5 Defect Size Using Xe Release Rate and Xe/I Ratios

The final defect size technique is purely empirical and provides only a qualitative 'defect state' to describe the predominant defect type in core [40]. The technique is based on prior correlations of 133Xe release rate, 133Xe/131I release rate ratios, and 133Xe/133I release rate ratios. The correlations are shown in Figure 3-6, where increasing l33Xe release rate and decreasing 133Xe/l33'l31I ratios indicate that the defect type is increasing in power and size, and vice versa. The changing ratios are caused by decreasing hold-up of the iodines as the defect size increases (see Figure 2-14), and l33Xe release rate increases with increasing element power (see section 3.4.2). 66

Figure 3-6 Determining the predominant defect type and estimation of the number of defected elements [40].

The analysis is called in the COLDD GUI by selecting "Plots" and then "Plot defect state using Xel33, 1131, 1133" which calls the Defectstate algorithm. An example output is shown in Figure 3-7; indicating a large high power defect. The actual defect was FFO- 102 which ran at high power (67 kW.m"1) with substantial secondary hydriding damage and subsequent fuel loss [57]. This technique is highly qualitative but provides a rough description of the defect state (size and power). 67

Zone with most data points is the approximate defect state 1000.1e14 1 o • 100.1e13 cr

at 10.1e12

(9 at c •o l.lell o

01.1810 02 04 06 08 Defect increasing in power/size from left to nght

Figure 3-7 COLDD output for defect state from FFO-102-3 [57]

3.4 Defect Element Power

The defected element power is a crucial piece of information to any reactor operator, and greatly assists in safe defected fuel management. This section presents three novel techniques, and one modified existing technique using ratios. These four methods add to the arsenal of the fuelling engineer, and are expected to provide new pieces of information not previously available.

3.4.1 Defect Element Power Using R/yc Analysis

The first novel method is to extract the element power from the R/yc analysis fit coefficient A. This option is not available to existing programmes as the analysis is typically performed using an RIB analysis, where the user has pre-selected the power. From A = 3FfXy/P2D'(P) the defected element power P can be readily found from: 68

'-M^) (3-20) — °A ap ~ A • log(10)i>

bp a\Q where D'(P) = —— has been used for the empirical diffusion coefficient, and at is the error in i. This technique requires knowledge of X (defect number), and four or more iodines or gases to provide a confident fit with uncertainties. For X > 1 the analysis will provide an average element power, weighted towards the high power elements. If the COLDD suggested power is greater than the maximum element power in the core, then X must be higher than the initial assumption.

This method can be chosen in COLDD by selecting "Defect Power" and then "Power of X defect(s) using noble gas R/yc" or "Power of X defect(s) using iodines R/yc", where X is the defect number supplied by the user. The analysis is performed as part of the RyAnalysis subroutine. The method discussed in the next section is in essence an approximation of this technique, and examples are provided.

3.4.2 Defect Element Power Using 133Xe Release Rate

This is a new technique using only the l33Xe activity concentration data to infer the element power. A few examples show this to be a fairly robust technique, even during element power changes. If the approximation X « v is employed (as used in developing the new D'(P), see section 2.3.3), and tramp is assumed to have negligible contribution to l33Xe, then R f v \ A A c = ( ;)~^+ ~~7= 3 21 yc{Bu) • - VI VI ( - >

where A = 3FfXyJP2D'(P) can now be solved directly for P as it is the only unknown in (3-21): 69

alObp where D'(P)=—— has been used for the empirical diffusion coefficient. The requirement that C-0 and Aj « v(t) (i.e., see Figure 3-9) limits this analysis to 133Xe. If steady-state activity has been reached, then the power can also be calculated by replacing

*i33Xe(0 with ^f*C%3xe (t)Mc in equation (3-22).

This analysis can be performed using 133Xe only, without the requirement for other noble gases for an Rlyc analysis. The limitation of this method is that it does not apply to multiple defects. However, if the analysis returns a power higher than the maximum element power in core, then immediately the operator should realise that multiple defects must be present.

This technique is a robust technique to estimate the power of a single element required to release the measured 133Xe activity or release rate, and is performed by the PlotP algorithm in COLDD. The analysis can be selected in COLDD by choosing "Defect Power" and then "Power of one element to produce Xel33". Three examples of this technique are shown; Figure 3-8 a virtual case (from section 5.1), Figure 3-9 an experimental case, and Figure 3-10 a commercial case. In all three cases the technique is shown to work quite well, as in each case only 1 defected element is present and significant fuel oxidation or defect deterioration has not occurred. 70

1 Release Rate 1 Actvity Data • Element Power

0 50 100 150 Time [days]

Figure 3-8 Element power using 133X, e for a virtual case (see section 5.1), defect initiates at day 30. Notice that the release rate data responds faster.

•v(t) 50 •COLDD Power 10 NRX Power

Figure 3-9 Element power using 133Xe release rate from FFO-109-2. Note: v(t) » k = 1.5xlO"V. 71

Figure 3-10 Element power using Xe from reactor data

3.4.3 Defect Element Power Using Iodine Spike

This is a novel technique developed in this work to determine if it is possible to use the inventory of iodine released during an iodine-spike to infer the original element power. The technique is shown to work in principle using NRX data, but no commercial data is available to confirm (as discussed at the end of this section). As the technique has limited validation, it is not included in COLDD, but is included in the thesis as a possible technique that may warrant further investigation.

During steady state conditions, steam is present in the fuel-to-sheath gap, and acts as a trap for FP that are relatively immobile in steam (radioiodines, Mo, Rb and possibly Te [11], [58]). As the temperature of the fuel decreases (due to a localised or global power decrease), the fuel-to-sheath gap reaches the saturation temperature and condensation occurs. The mobility of certain FP (radioiodines, Mo, Rb, Te) are orders of magnitudes higher in water than steam, and the condensed coolant rapidly sweeps trapped FP out of the fuel-to-sheath gap and into the coolant. This FP release (known as "spiking") following a power decrease can be large (particularly after a reactor shutdown), and for iodine release is important for reactor safety and licensing requirements. 72

The release is related to the initial coolant and gap inventory, and the purification and losses from the coolant [40], [59]:

Ci(t) = Nc + N ~Mc[ ° °° (vtr - (e + £/Mc • /*.„)) \ (3-23) Vtr { €+ ,Mc IXe t X (l - e~^ ' - ^ ' f^ ) \e-(*He+PP/Mcixeff))t

where NCo, N3o [atoms] are the initial (pre-spike) coolant and gap inventories, and vtr[s"'] is the transient gap escape rate coefficient.

By fitting the model of equation (3-23) to an iodine spike, the initial gap inventory can be determined. This is shown in Figure 3-11 using data from an l33I spike during experiment FFO-109 [59]. The 133I spike was chosen (as opposed to 131I) as the 133I had reached equilibrium coolant activity concentration before the reactor shutdown, and subsequent iodine spike. From the fitting routine, it is found that Ngo =1.1><10 ±0.1x10 atoms.

Figure 3-11 Spike analysis of Uil from FFO-109 [59] 73

Once N3o is known, the next step is to determine what P, v combination could produce the modelled N9o. Therefore, from mass balance in the fuel-to-sheath gap, and mass balance in the coolant, it can be shown that:

IT i • u >u M ZFfy

q 2 2 9 log10(*>) (X*C° Mc + A Ngo) " ° \ 9F?y?x**a J b*

alObp Where D'(P)=—— has been used for the empirical diffusion coefficient, C-q = 1.615xl07 Bq.kg"1, and X* = X + 1.51xl0"6 s"1. From equation (3-25), it is found that P = 45 ± 2 kW.m"1, which is only 18 % above the actual power of-38 kW.m"1.

A similar over-estimate is found when analyzing the other iodine spikes in FFO-109. One possible explanation is that this technique assumes the effective gap inventory e q available for release during operation {R c = vNgo), is the same as the gap inventory swept out of the element after coolant condensation occurs in the gap. However, it may be possible that the liquid phase coolant is able to extract more gap inventory than effectively seen in the gap during operation, therefore creating a larger gap inventory when fitting to equation (3-23). This would result in an over estimate of the power. For example, if the known power of 38 kW.m"1 is used in equation (3-25), then the gap inventory is 0.5 x 1017 atoms, yet the spike model suggests an inventory of 1.1 x 1017 atoms was available and released. 74

Although a steady-state example was shown, the technique can also be applied before

steady-state conditions are reached by using STAR (see section 3.12.5) to generate Ng as a function of P, v, and t, where t is the irradiation time. The problem can then be solved to extract P.

Unfortunately, there is no commercial data available to test this technique due to the powerful IX columns, and long GFP sampling period used in CANDU plants. The iodine

spike decays on a time scale of X + (e + flp/Mc), which in a typical CANDU is an effective time constant of ~4 hours (131I), and ~ 3 hours (l33I). With a GFP sampling frequency of > 1 hour, and a transient on the time scale of ~ 3-4 hours, it has not been possible to fit equation (3-25) with confidence. There are three possible methods for further investigating this method: 1) Decrease the GFP sampling period to ~ 15 minutes at all times. Sum the spectra together for accurate measurements of longer lived species. 2) Decrease the GFP sampling period to ~ 15 minutes just before shutdown in order to accurately monitor the iodine peak. Every 4 spectra can be summed together to identically recreate the spectra that would have been collected using the standard period. 3) Another theoretical option is to shut-off the EX columns and maintain the long sampling period, but this would result in potentially unsafe high iodine concentrations and should never be attempted except as a thought experiment, or in NRU during defected fuel experiments.

3.4.4 Defect Element Power Using Reactor Power Change

This technique has been described in the past using equilibrium activity ratios, [60], [61], and is improved in COLDD by adding the ability to use equilibrium release rate ratios, and the ability to calculate the uncertainty. The method works by utilizing the form of D'(P) that ensures D'(P)/D'(aP) is unique for all a, where a represents a fractional change in the element linear power, P. Therefore by using the ratio of release rates (or activities) at two different reactor powers, the defected element power can be determined. 75

Using equation (3-9), setting P2 = aPx, and C = 0, then taking the release rate ratio — R2 gives the following:

-21og (&) 10 (3-26a) Pi = b(a - 1) 2 < , < , log(/?i//?2) cr . = ^r + ^f + (3-26b) P log(10)2&2(a-l)2\Ki R

bP where D'(P) = alO has been used for the empirical diffusion coefficient, and a is the P2 t error in /. The error in Px was calculated using standard propagation of errors [56]. Equation (3-26a) assumes no tramp uranium contribution; a reasonable assumption for longer lived isotopes from a reasonable size/power defect. This technique was published in a paper on COLDD and the results replicated in Figure 3-12, and Table 3-5 [31]. A second analysis was performed using FFO-109 data, and is shown in Figure 3-13 and Table 3-5, and a third check was performed by analyzing the STAR virtual case (section 5.1), as shown in Table 3-5.

62 1.4E+12

90 ++*m*m0m0iHk*4*Sf^Hj0mi****** 1.25*12 * Reactor Power • 133XeData 1*88 1E*12 —133Xe Activity Model

Ri = 1.15x10" + 0.05x10" [atom-s1] ..SWafe 86 R, * 7x10" + 1x10" [atom.s *)

J 84

82 4E+11

80 2E+11

78 6 8 10 12 14 Tim* [Days]

Figure 3-12 Xe during reactor step power change [31] 76

2E+12 45 -Release Rate •Average Rl -Average R2 -Power 1.8E+12

1.6E+12

Figure 3-13 Defected fuel release rate calculated from FFO-109-2. Data courtesy AECL.

Table 3-5: Using reactor step power change to measure element power

1 l P, (kW-m ! P2 [kW.m' l Case Measured Predicted Error Measured Predicted Error Commercial [31 ] 36 31 ±9 -13% 31 27 ±8 -13 % FFO-109-2 38 45 ±13 +18% 25 28 ±8 +12% STAR Virtual 44 46 ±2 + 4.5 % 55 57 ±3 + 3.6%

Table 3-5 shows modest agreement within error between measurements and predictions, although the uncertainty is artificially large for the first two cases due to the sub-optimum data for these test cases. To properly validate this technique, more examples are required across a larger range of powers, where the release rate is held steady at each power sufficiently long enough to reduce the release rate uncertainty. 77

This technique has been built into the small GUI titled PRatio which presents the user with the interactive form as shown in Figure 3-14. The user can select this GUI in COLDD by choosing "Defect Power" and then "Power from activity or release rate ratio". The PRatio GUI will catch the following user errors:

• Error message displayed if one of the following variables not entered: a, Rv R2

• Error message displayed if R1 < R2 and Px > P2 (or vice versa), indicating power or release has been entered in the wrong order.

Calculates Elamant Pewar P From Activity or Ralsass Rata Ratio Following Roactor Stop Powor Chanoa

Define P2 =

and R,, and R2 the associated release/activity

i—Reactor Power Data (P = a*P,) Fa* in any two of these three boxes: 2 Powers can be KW*n or RFP | 79 | "|0577 90 but must have the same urtts P2 * P1

[-ActJvtyData

Now n in these two boxes: R1 = 1.15e12 0.05e12 Can use release rate or activty •A R 7e11 1e11 but must have the same urtts 7 =

r- Resuts- Calculate P = Therefore: 1 31 ^9kWJm 27+/-8kW*n P2 = Done

CaUtort This method requires further vaMaUon work and Is only inducted as a guide.

Figure 3-14 Example of PRatio used to analyze the case shown in Figure 3-12

3.4.5 Comparing all Four Defect Power Analysis

There are only two available defected fuel cases where all four defected element power analysis can be performed; FFO-109 and the STAR Virtual case (section 5.1). Table 3-6 and Table 3-7 present a comparison of the four techniques using the two data sets. For FFO-109, it is observed that the four techniques have poor accuracy but high precision, 78 and all tend to over predict the power. This over prediction may be due to fuel oxidation or perhaps an error in the NRX reactor physics code calculated values; it is not clear if chemical burnup measurements were used to confirm the NRX code predictions. The power from l33Xe release and using Rlyc are not truly independent measurements, but the other two techniques (iodine spike and reactor power change) are independent, and provide excellent confidence and agreement between these methods. Table 3-6 illustrates that the methods are physically sound, and Table 3-7 confirms that the mathematical implementation of the techniques is correct

Table 3-6: Comparison of defect power techniques from FFO-109

Technique to Determine Defect NRX Code COLDD Power Error Element Power Calculated Power using 133Xe release rate 43 ± 1 kW.m"1 38 kW.m"1 + 13 % Power using iodine spike 45 ± 2 kW.m"1 38 kW.m"1 + 18 % Power using reactor power change 45±13kW.m-' 38 kW.m-1 + 18% 1 Power using Rlyc (release rate) 40±2kW.m-' 38 kW.m- + 5%

Table 3-7: Comparison of defect power techniques for the virtual case

Technique to Determine Defect STAR COLDD Power Error Element Power Power Power using 133Xe release rate 54±lkW.m'' 55 kW.m1 -1.8% Power using iodine spike 54 ± 1 kW.rn1 55 kW.m"1 -1.8% Power using reactor power change 56 ± 2 kW.m"1 55 kW.m"1 + 1.8% 1 Power using Rlyc (release rate) 55.0 ±0.1 kW.rn' 55 kW.m- 0% 1 Power using Rlyc (activity) 55.0 ±0.1 kW.m"' 55 kW.m 0% 79

3.6 Iodine Spike Prediction

This is a known technique that uses the iodine spiking phenomenon discussed in section 3.4.3 to attempt to predict the 13II spike following shutdown. The STAR code is best suited to defect behaviour predictions of iodine spiking [11], [30], but COLDD uses the method employed in VisualDETECT [35] to make a reasonable estimate. Ideally COLDD would be used to determine v(t) and D'(P,t) for the iodines, and then those values used as a starting point for a STAR analysis.

The prediction is made using equation (3-23) where the gap inventory, Ngo, and coolant inventory, NCo, are replaced by

Rc 3 JD'(P)

Mc c° X ° where subscript "o" indicates the conditions just before shutdown. The time of the maximum peak can be found by differentiating equation (3-23) (with the substitutions from equation (3-27)) with respect to time and then solving for t. This gives the following equation for tmax:

= 1 n + (e + Pp/Mc-IXeff) tmax l0g (3-28) (e + Pp/Mc-IXeff)-vtr { A + vtr

Close examination of equation (3-28) shows that the time of the maximum peak is only dependent on the shutdown purification flow (including leakage) and the transient escape rate coefficient. The maximum activity is readily found by substituting tmax into equation (3-23).

This analysis is performed in COLDD by selecting "Plots" and then "Plot iodine spike from end of data", which calls Ryanalysis to perform the requested calculations. The peak is predicted based on the last set of iodine data that provides an acceptable fit; if no 80 valid fit is present then an error message is returned. Figure 3-15 is an example output from COLDD for this analysis.

Figure 3-15 Example COLDD output predicting an iodine spike after shutdown

3.7 Number of Defects

The number of defects is another important piece of information to any reactor operator, and greatly assists in safe defected fuel management. This section presents two techniques for determining defect number, an empirical method using 131I release, and a mechanistic based method using an R/yc analysis.

3.7.1 Number of Defects from Iodine Release

One simple method to roughly gauge the number of defects in the core is to divide the l3lI release rate by a typical release rate per defect. This is a simple robust technique for separating 1-2 defects from 5+ defects, and provides a rough estimate of the defect number. Lewis [62] shows that the l31I release rate from the CRL experiment FFO-102-2 (sheath hydriding defect at 67 kW.m'1) is comparable to that observed in similar defects 81 at Pickering and Douglas Point reactors. The release rate from FFO-102-2 was ~ 5.0*10" [atoms.s1], and the commercial stations experienced a release rate of- 6x10n [atoms.s"1]. Application of this simple rule is demonstrated in Figure 3-16.

1 T 1 1 I ! T i

II -

ilHT'HMtin''^JJ*1 ' ' i i H i i i Lt«ALU»*>iUiwiwimmnmi , n1 , -t 0 20 40 60 80 100 120 140 160 180 Tim* [days]

Figure 3-16 Iodine release rate used to determine number of defects [7]. Defect removed at ~ 105 days.

If the defect data from days 25 - 100 is isolated in Figure 3-16, then COLDD reports the defect number as 0.7 ± 0.3 defects (one defect was actually present). This calculation is performed using the algorithm DnumberI131 which can be selected in COLDD by choosing "Defect Number" and then "Defect number by 1131 activity and release rate".

This technique is important to provide a robust starting value for X (defect number) before performing more complicated analysis. Caution must be used to ensure that multiple small defects do not appear as a single high power defect. However, as discussed in section 2.1, if multiple defects are present they will have a variety of powers, and therefore X> 1 will appear from this analysis.

3.7.2 Number of Defects from R/yc Analysis

The number of defects from the R/yc analysis is found from the fit coefficient A = 3FfXy/P2D'(P) (section 3.2), where Xis the only unknown provided the user supplies an element power P. This is a well-known and studied technique and is employed by 82

VisualDETECT and CHIRON, and has been shown to be a reliable method [15], [54],

[55]. The method relies on ensuring a confident R/yc fit to the data in order to produce reliable results. The defect number and uncertainty (uncertainty not provided by the other codes) can be found from: A X = 3F /P2D'(P) fy (3-29) GA X Ox 2 OA 3FfJP D'(P) A

The analysis is performed in the RyAnalysis subroutine and can be selected in COLDD by choosing "Defect Number" and then "Defect number by R/y analysis using iodines" or "Defect number by R/y analysis using noble gases". The analysis is performed across the data as shown in Figure 3-17. It is important to note that in Figure 3-17 the release rate analysis tends to lead the activity analysis, indicating the ability for the release rate to provide earlier analysis possibilities. Dott€s d lines are +/-1 a Activity , ID ^^—Release Rate 4- J? II Actual Defect Number J Q.

60 80 Times [days]

Figure 3-17 Example of defect number by Rlyc analysis applied to 140 days of data from [7] with a single defect. Notice how the release rate data leads the activity data. 83

3.8 Defect Burnup

The defect burnup can be theoretically found and would add to the information available to the operator to narrow down a list of suspected defects. Two theoretical models are presented in this section, although unfortunately neither has been demonstrated on CANDU data and should therefore be used with caution.

3.8.1 Defect Burnup Using 134Cs/137Cs Molar Ratios during Iodine Spike

This method for determining defect burnup is employed in CHIRON [55] and VisualDETECT [54] and is based on 134Cs/137Cs ratios released during iodine spiking events (section 3.4.3). The technique exploits the properties of these nuclides shown in Table 3-8. Table 3-8: Nuclear properties of 134Cs and 137Cs [5] Property 134Cs 137Cs Cumulative yield from U [atom, fission" ] 7.7x10"8 0.062 Cumulative yield from 239Pu [atom.fission"1] 6.7x10"6 0.066 Half-Life [years] 2.0652 30.08

The cumulative yield of l34Cs is low as l34Xe (parent in the (S ) is stable 22 l37 134 (t1/2~l0 years). Therefore while Cs is produced by fission, Cs is only produced

1 'X'X by of the stable Cs as a function of time (burnup). The caesium ratio in the fuel is released into the coolant during iodine spiking events, as caesium, like iodine, is only mobile under wet conditions in the defected element [11]. The 134Cs/l37Cs ratio in the fuel (now in the coolant) can be determined by physics programmes applicable to the fuel, and then measurements in grab samples can be used to infer burnup. Grab samples must be used (as opposed to online GFP measurements) as the long half-lives of the caesium isotopes result in low activities, and therefore the sample must be stored for several weeks before an accurate measurement of the long lived species can be made (after short lived species have decayed). 84

The physics correlation for burnup used by COLDD is taken from [54], but modified to include the decay time, and the uncertainty is calculated using propagation of errors [56]:

t 3349.3 f-?Hl^e d(A134Cs-A137Cs)\ ^^ Bu [MWh.kgU1] = 137cs ACs„4 fl - 2.3551 p^pI^e^^cs-^cA \ ^137Cs *134Cs / (3-30)

33493e^^C,-^»C,)A137cf ^3^37^ ^34c, + Aisles OB x 2 (23S5lA1McsA137cA ™cr^cs) _ ^137csA134cs) where A, [Bq.m" ] is the coolant activity of caesium isotope /' as measured after a decay 1 period of td [s], and Xt [s" ] is the decay constant. Equation (3-30) is employed by COLDD, and although based on a correlation to data for an average bundle in the Bruce A reactor (i.e., assumes Bruce A average bundle powers, neutron fluxes, and fueling manoeuvers), it would provide a reasonable estimate for any 37-element bundle in any CANDU reactor.

The analysis is performed in COLDD by selecting the "Defect Burnup" analysis button in the COLDD GUI, and then "Defect Burnup using the 134Cs/137Cs ratio" from the list of analysis choices (this analysis is always available). A sub-GUI called DefectBurnupCsRatio is called that warns the user the code is specific to Bruce A average powers, and then requests the concentration ratio, and returns the burnup (see Figure 3-18). For future application at a station, the operator must employ physics codes specific to that station to determine a more accurate correlation. Unfortunately there are no examples of this technique applied to CANDU data, although it has been used for LWR fuel that typically operates to much higher burnup [55]. 85

Csartvty and uncertainty can twin any unls, as long as they are al the same

137, Cs Activity 100 Uncertainty 10

m Cs Activity 50 Uncertainty 5 Decay time [days]

Calculate

Burnup -125 •/-19 MWh*flU

Qose

Figure 3-18 GUI used to request user input for calculating burnup using the ,37Cs/134Cs ratio

3.8.2 Defect Burnup by Optimizing the Rlyc(Bu) Fit

This novel method was postulated during development of the code, and while performing accurately on theoretical data, was found to be too sensitive for application to reactor data. The method works by varying Bu during the RJyc{Bu) fitting routine (section 3.2.1) in order to find the optimum fit; theoretically this occurs at the defected element burnup. This technique is possible due to the relatively larger change in yield of the light8 kryptons compared to the xenons (iodines cannot be used as they are all heavy8). However, as the cumulative yield change is only ~ +/- 20 % between 0 - 200MWh.kgU"', and the noise in the data is roughly +/- 15 %, the signal to noise ratio is too high for this technique to apply.

Figure 3-19 illustrates the result of applying this approach to CANDU data. If the technique is applied to virtual test cases, it works perfectly as expected. Therefore, if longer count rates (or spectra are added together), or more sensitive GFP systems are installed, then this technique may be feasible in the future providing the signal to noise ratio is improved. Furthermore, PWR/BWR's or advanced high burnup CANDU fuels may be more suited to this technique due to larger yield changes. NRX data could not be

See section 2.2 for a discussion of'light' and 'heavy' FP. 86 used to test this algorithm as the fuel was enriched and only experienced low bumups of < 300 MWh.kgU"1 (no significant Pu build up). The analysis can be performed in COLDD by selecting "Defect Burnup" and then "Defect burnup using noble gas R/yc at a user specified time" or "Defect burnup using noble gas R/yc". The analysis is performed by the algorithms DefectBurnupFromRyc and DefectBurnupFromRycScan respectively.

Figure 3-19 Failed defect element burnup analysis (data from [63]). Low-pass cut­ off frequency of 1/5 days'* used to eliminate noise in the Kr data

3.9 Secondary Sheath Hydriding

Secondary sheath hydriding refers to deuteriding9 of the fuel element sheath following the occurrence of a primary fuel defect. The initial defect allows coolant to enter the defected element and provides a source of hydrogen that can be absorbed by the sheath. Under certain conditions, the hydrogen absorption is excessive and causes hydride blisters and degradation of the defected element, which can eventually lead to secondary defects. Early work by Locke [64] showed a strong correlation between surface heat flux [kW.m" ] and incubation time before severe secondary damage occurred. This correlation and the data are shown in Figure 3-20.

As hydriding (hydrogen uptake) and deuteriding (deuterium uptake) are identical processes, it is common in the literature to avoid confusion and consistently refer to 'hydriding', even if the phenomenon is actually 'deuteriding'. This practice is used in this thesis, which henceforth only refers to 'hydriding'. 87

Linear Power (kW.m"1) of a 13.1 mm Diameter Fuel Element

Z 32.9 49.4 65.8 . 82.3 98.8 115.2 o TET zioor- o U hJ 9 ttCWPUHJMDMnU r- HYDRIDE FAILURE O UJ A I SATMFACTOM.Y Q OPBUTD a*Tar*CTWa.T«MtBMK» A UITWKM.I CK A Ul •M.TUUU.TI N r- U. I HOLOBtACAnuUMEMjOWTDrj < UJ 1}tT « rarrr LOOPI ( SAXTQM •MM T CTI TOT LOOP < • MIMMI » MM** LOOP) u. 9 NP> «. i* Man w CVTK #9M • i cm

<0 CTR TOT IMP MO 10 MKtMPMN < e llM °AT M "uiniN> PKT> wttrtriMtoo n o 400 800 1200 1600 2000 2400 2800

HEAT FLUX (kW/m ) Figure 3-20 Locke secondary hydriding threshold curve [64]

More recent work by Manzer [65] focusing on CANDU operational experience discovered an additional dependence on defect size, as very small defects (manufacturing defects) typically had a smaller incubation time than predicted by the Locke threshold. COLDD uses the Locke and Manzer curves to estimate the time to secondary damage for 'small' and 'large' primary defects. There is no specific quantitative value for 'small' and 'large', but during the NRX experimental campaign, secondary damage never occurred for artificial defects with defect sizes > 1 mm2; therefore for the purposes of this technique, a 'small' defect is < 1 mm and a 'moderate' or 'large' defect is > 1 mm .

Figure 3-21 illustrates the output from COLDD when selecting "Plots" and then "Plot days to secondary hydriding from P". The analysis is performed in the sub-routine SecondaryHydriding which loads tabulated data for the curves from HydrideData.xlsx (provided in Appendix F section F.36), and then uses spline interpolation to interpolate an exact time from each curve based on the input power. The default input power P is retrieved from the "Model Constants" table in the COLDD GUI, the chosen user defined element power and element outer diameter (OD) is requested from the user, and then both values and the surface heat flux are displayed in the output plot title.

P = 40 kW.m"1 SHF = 972 kW.m"2 Element OD = 13.1 mm 2000 - % x IOOOSA v : 352 days ^v u I00rr S-a ^54 days — \ ««^^ N^ es \ •o a o 10* \ u 1/2 L ™" •"" Moderate/Large (> 1 mm ) Defect Threshold o « 1 ~ , —— Small (< 1 mm2) Defect Threshold * 7- » O \ 40 kW.m"1 \ n I L 50: 0 100UL. 0 150c 0 2003L_0 2500 Surface Heat Flux [kW.m'2]

Figure 3-21 COLDD output for a defect power of 40 kW.m"1. Defect threshold curves taken from [65]. Small defect threshold terminates at ~ 1300 kW.m 2.

3.10 Tramp Uranium Analysis

Tramp uranium refers to uranium contamination in the PHTS system, regardless of source. As soon as uranium leaves a defected element it is tramp uranium and will circulate and deposit around the PHTS. Detailed tramp uranium transport models for CANDU reactors have not been published beyond earlier papers [66], so detailed deposition/adsorption/re-dissolution behaviour is not known.

This section describes the various mechanistic models and techniques for measuring tramp uranium in a CANDU PHTS. The two types that can be measured with a GFP and/or grab sample system are circulating contamination [g-kg1 (D2O)], and in-core contamination [g]. The in-core contamination includes circulating contamination present in the coolant in the core. As well as the tramp uranium contamination, some techniques can attempt to estimate the tramp uranium bumup. 89

The mass of tramp uranium calculated in COLDD and by other programmes typically refers to the mass of (i.e., 235U and 239Pu) and does not include the much larger mass of 238U that must be associated with the tramp uranium, and its associated highly active actinides that may prove problematic during maintenance/repair operations.

3.10.1 Finding instances of Defect-Free Operation

Several of the tramp uranium analysis techniques require that no defects are present in order to function properly. Therefore, a simple algorithm, trampfinder, was developed to find instances of defect free operation. The algorithm attempts to fit:

-T^TT = a^-* (3-31) to the data, which is a modified version of equation (3-8) by removing the C term. The algorithm then selects periods when - 0.1 < b < 0.1 and defines these as defect free. Values of b close to zero indicate that the FP release is independent of decay constant, and therefore predominately produced by recoil from tramp uranium.

The RELWWER-2.0 programme described by Slavyagin et. al. [46] defines defect free operation when (/?/S|131/)/(/?/S|134;) < 3, exploiting the difference in diffusion release from a defect for long-lived species, compared to recoil release. A drawback of this technique is that it relies on only two measurements (as opposed to all nuclides available), and the short lived ' 4I release rate is susceptible to transit time errors (section 4.1.4) which could result in false readings.

Figure 3-22 illustrates successful application of the trampfinder algorithm to several years of data. The algorithm requires correct data otherwise misleading results may be produced which may impact other tramp uranium and defected fuel algorithms that rely on trampfinder to indicate defect free operation. 90

xlO

133X e (Defect + Tramp) O 133 7 1.5 Xe (Tramp Only) 0X1 fl \ •

I 0.5

0*- 0 100 200 300 400 500 600 700 Time [days]

Figure 3-22 Trampfinder used to find defect-free operation (data from [19]). Gap at day ~ 600 due to reactor shutdown

3.10.2 Using Iodines and Noble Gases to Measure 235U

The iodine and noble gas FP can be used to indirectly measure the mass of 235U exposed to neutron fluence; this includes both in-core depositions and suspended as they pass through the core. In the case of l38Xe and 134I, their half-lives (14 mins and 52 mins, respectively) are short enough that, except in the case of very large defects, their production in the PHTS is almost entirely from recoil release into the coolant. Furthermore, as these are 'heavy' FP, the cumulative yield does not change significantly with burnup (see Figure 2-2). If the activity of these short lived isotopes is measured, then the mass of tramp uranium can be determined directly from (modified version from [20] to allow direct application of measured activity or release rate):

q eq C? Mc R my [kg] = r (3-32) A NAip{)yc{Butr) NAxP(

.-2 z„-tl i 1 Where (0) [n.m* .s ] is the volumetric thermal average neutron flux, Butr [MWh.kgU ] is the tramp uranium burnup, and xp is the burnup dependent weighted fission cross section (equation (3-33)) [20]. Equation (3-32) assumes equilibrium release rates which is a reasonable assumption for 138Xe and 134I as the typical counting time is less than or 91 comparable to the half-life (see section 4.1.6), and therefore it is not possible to calculate the release rate accurately from the activity, rp [mol.cm2.kgU"'] is defined as [15]:

(3-33) At i=235l//239Pu

yc(.Butr) = — ^—j r-^ (3-34)

where T ~ 500 K is the reactor average thermal , T0 = 290 K is the usual thermal neutron temperature, w^Bu^) [g.kgU-1] is the specific fissile content (see 1 2 equations (2-6) and (2-7)), A-, [g.mol ] is the atomic mass, 0/(£o) [cm ] is the fission cross-section at energy E0 = 0.0253 eV, Qf(T) is the non-l/v neutron absorption fission 1 factor, and yc(Butr) [atom.fission ] is the tramp cumulative yield as a function of tramp burnup.

Unless the tramp burnup is known (see section 3.10.5), a burnup of 116 MWh.kgU"1 is assumed to minimise error from the unknown burnup. This value provides a yc exactly halfway10 between 0 MWh.kgU-1 and 500 MWh.kgU-1; for 138Xe and l34I the maximum error due to unknown burnup is only ± 9 % and ± 3 %, respectively.

If a defect is present in the core, then an Rlyc analysis is required to calculate the fit coefficient C from equation (3-8a) or (3-9), and therefore from (3-32):

(C = FfPc) m,, = (3-35) NM4>)

Figure 3-23 shows the application of equation (3-32) and (3-35) to data from [19] when no defect was present in the core. This calculation is performed by the algorithm c2mass ftf A*C?qM which returns tramp mass, my [g] from C, —-f—-,or -—/ c . Figure 3-23 shows

yc{Butr) Ayc(Butr) excellent agreement between the Xe and I data; this provides confidence in the GFP measurements and illustrates stable tramp uranium during this period. 'yc(Bu) does not vary linearly with burnup, and therefore yc(l 16) = (yc(0) -yc(500))/2 +yc(0) 92

The work of Manzer [66] shows that uranium is removed by refuelling (tx/2 « 11 24 2 14 300 FPD ), fission (t1/2 « ln(2) /of{

Therefore, in Figure 3-23, my[g] should have decreased over the period, rather than remain constant. The steady my suggests a steady addition of tramp uranium that is in secular equilibrium with the fission removal rate. This addition could come from fresh fuel (surface contamination) or from surfaces outside the core releasing tramp that subsequently deposited in-core, resulting in an equilibrium tramp uranium in-core mass.

Figure 3-23 Mass of tramp from noble gas Rlyc analysis and from Xe and I using CANDU data from [19]

Tramp uranium mass calculations using the techniques in this section are performed in

COLDD by choosing "Tramp" and then "Tramp mass by X", where X is by R/yc analysis, or by 138Xe or 134I. There is also an option in COLDD to choose "Tramp mass using all 138 available techniques", which will perform the R/yc of gases and iodines, and use Xe or 134I to determine the tramp mass, as shown in Figure 3-23.

" FPD = Full Power Day 93

3.10.3 Using 239Np to Measure Circulating 238U

239Np is an of 238U that decays with a half-life of 2.4 days and has several identifiable gamma rays (Table 3-9) suitable for identification by a GFP or grab l 239 sample system. Therefore, if the activity concentration (A.N)Np23<)[Bq-kg ] of Np is measured, then theoretically the corresponding mass of 238U is readily found (assuming equilibrium) from:

1 238 1 Where A2^Q= 238.05 gmol" is the U atomic mass, (AN)JVp239[Bq-kg" ] is the activity concentration, crc = 2.68x10" cm is the U neutron capture cross-section [5], Mc [kg] 23 1 is the coolant mass, NA = 6.023* 10 atom.mor is Avogadro's number [67], and () [n.cm"2.s''] is the average coolant thermal flux.

Table 3-9 indicates that there are several strong gamma rays for identifying 239Np (all below 400 keV, and therefore accessible to planar and coaxial detectors; see section 4.1.1), yet it has never been reported in published CANDU GFP or grab sample results. This could be due to several reasons:

o Its activity is below the minimum detection limit

o Unlike mobile FP it remains in the fuel matrix and therefore only circulating tramp passing through the GFP or deposited in the grab sample could be detected [16]

o It is not included in the radioisotope libraries used for analysis and therefore is not identified. 94

Consider a typical CANDU plant with ~ 1 g of U contamination, neglecting burnup 238 14 2 effects, this corresponds to ~ 140 g U. Assuming ((f)) = lxlO n.cm" .s"', and Mc = = 8 1 244.000 kg, then re-arranging equation (3-36) gives (AA0wP239 4xl0 Bqkg" . From Table 3-9, the highest intensity gamma would have a count rate of- lxlO8 Bqkg"1 at 106.1 keV. From Figure 4-1, the minimum detection limit in that case was 4xl04 Bqkg"1 at 81 keV12, so the 239Np should have been detected unless only -0.1 % of the tramp uranium is circulating in the coolant, with the other 99.9 % deposited on in-core surfaces.

Unfortunately there is no published model of tramp uranium transport in a CANDU reactor beyond an early paper in 1986 [66] to determine if this first-order analysis is of the right magnitude. However, in one experiment in the X-2 loop, studies of DFP by Da Silva et. al. [16] showed a two order of magnitude drop in l32Te from ~2xl014Bq-m"3 (H2O) at the test section outlet, to 2xl012 Bqm"3(H20) at the test section inlet; a drop of 99 % (comparable to the new 239Np analysis). This indicated significant deposition of DFP (which includes 239Np [16]) around the relatively small X-2 loop (120 kg), so it is feasible that similar deposition of 239Np in DFP deposits in a CANDU reactor means the circulating levels are below the MDA for typical tramp contamination levels. This is an important piece of information to the station as it suggests the tramp contamination of PHTS surfaces outside the core may be significantly higher than expected.

As the 239Np is not detectable, and probably deposits significantly, its measurement by the GFP and/or grab sample systems would be a function of position around the PHTS; making for only qualitative measurements of changes in Np (and subsequently DFP) levels. This analysis technique is not implemented in COLDD, but future investigations could benchmark against chemical or gamma spectrometry measurements performed on coolant grab samples. It is also recommended that GFP and grab sample systems should include 239Np in their isotopic libraries, as a sudden detection of 239Np could be an indication of a problem.

12 From Figure 4-1 the MDA is 0.08 uCi * 37000 BquCi'1 - 715 kg-nT3 (water density at PHTS temperature and pressure) - 0.0001 m3 (approximate sample volume [19]) = 4><104 Bqkg'1. 95

Table 3-9: Main gamma-ray energies for Np [68]

Energy [keV] Intensity [%] 103.374 22.2 106.123 26.3 116.244 2.68 117.228 5.26 120.54 2.06 209.753 3.42 228.183 11.14 277.599 14.44 315.880 1.600 334.310 2.060

3.10.4 Using Actinium Series to Measure Circulating Tramp

The detection of the nuclide 219Rn in the Bruce spectra analyzed using the SHAMAN analysis programme (see section 4.1.3), suggests a possible indirect measurement of 235U by detection of its daughter products. 235U is part of the actinium series, and is in the decay chain from Pu to Pb as shown in Table 3-10. During production of CANDU fuel, the daughter products in Table 3-10 are removed, and therefore the series is not in equilibrium.

Close inspection of Table 3-10 indicates that 23lTh will be in equilibrium, with 23lPa growing on a -30,000 year timescale. As this timescale is large compared to the expected 235U lifetime in a reactor, it is unlikely the 219Rn was from 235U decay, unless there were daughter product impurities in the fuel, or there was a mis-identification in the spectral analysis.

Ideally, direct measurement of U and/or Th using the GFP system would allow real­ time monitoring of the circulating tramp uranium - a very important characteristic for any reactor operator. However, with a typical tramp contamination of ~ 3g, this corresponds to only ~ 230 Bq.kg"1 of 231Th, too small for a GFP system to detect. Nevertheless, grab samples that are allowed to decay could be used to measure the 235U directly, either by 96 gamma spectrometry in a low background facility, or mass spectrometry. This could provide excellent trending data for tramp uranium, and is a direct measurement of the circulating levels. As most stations take grab samples for gamma spectrometry or other chemical analysis on a regular basis, it would not be a significant cost to add a U or 23'Th analysis to the same sample.

Table 3-10: Actinium decay series

Nuclide Decay Mode Half Life ' ~. V1 Daughter 239Pu a 2.41-104 a 5.244 235u 235 u a 7.04-108 a 4.678 23.Th 23.Th P~ 25.52 h 0.391 231Pa 231Pa a 32760 a 5.150 227Ac p~ 98.62% 0.045 227Th 227Ac 21.772 a a 1.38% 5.042 223Fr 227Th a 18.68 d 6.147 223Ra (T 99.994% 1.149 223Ra 223Fr 22.00 min a 0.006% 5.340 219At 223Ra a 11.43 d 5.979 219Rn a 97.00% 6.275 215Bi 2l9At 56 s p" 3.00% 1.700 219Rn 219Rn a 3.96 s 6.946 215Po 215Bi P~ 7.6 min 2.250 215At a 99.99977% 7.527 21 'Pb 215Po 1.781 ms P" 0.00023% 0.715 215At 215At a 0.1 ms 8.178 2llBi~ 211Pb P~ 36.1 min 1.367 2llBi a 99.724% 6.751 207™ 211Bi 2.14 min P~ 0.276% 0.575 211Po 21,Po a 516 ms 7.595 207pb 207-p. P~ 4.77 min 1.418 207pb 207pb stable 97

3.10.6 Using Heavy and Light FP ratios to Determine Tramp Burnup

This is a new interpretation of a known technique that exploits the burnup dependence of FP cumulative yields [11], [69]. Recall Figure 2-2 that illustrates a shift in fission yields for 'low' mass FP, this shift is shown in detail in Table 3-11 at the end of this section.

This new methodology is based on finding the optimum solution for R/yc(Butr) = C using all the available nuclides. Previous techniques find the exact solution using only two nuclides [11], which is the only option if only two acceptable nuclides are available. This technique will exactly recreate the two nuclide solution if only two nuclides are available, but if multiple nuclides are available it will produce a more accurate result by incorporating as many nuclides as possible.

The tramp uranium burnup, Bu^, is found using a least-squares approach by solving the following equation for Butr: Rf \ 2T N I R eq.c Li=\ VcSfiUtr) = 0 (3-37) dBu tr I yCi(Butr) N V l\ where '/" refers to all the available nuclides (excluding l35Xe, 132I), 'eq' refers to equilibrium conditions (reached after ~ 15 days of operation), and Butr is restricted from 1 1 0 - 500 MWh.kgU" (the equation for yc(Butr) is only valid to 500 MWh.kgU" , as discussed in section 2.2). If the data is perfect and no defects are in the core, then e q,c theoretically it should be possible to find Bu^ such that R t /yCi(Butr) is identical for all isotopes. However, data inconsistencies and measurement errors mean an exact solution is not always possible.

The solution to equation (3-37) is performed by the COLDD algorithm trampburnup coupled with trampfinder (see section 3.10.1) to ensure only periods with no defects are e q c analyzed. If R t ' /yc.(Butr) = C cannot be matched within ± 25 % for all isotopes, or 1 no unique minimum exists within Butr = 0 - 500 MWh.kgU" , then COLDD will report an error, suggesting possible issues and solutions. Figure 3-24 and Figure 3-25 show the 98

progression from a failed solution of equation (3-37), to a successful solution with Butr 330 MWh.kgU . In this example the isotopes 131-I. and wm85mKt r do not follow the expected behaviour; this could be indicative of unknown measurement problems (see section 4.2). This re-enforces the importance of stringent data checking before performing any kind of defected fuel analysis.

3r A Bii^= 0 MWh kg"1 A D Bu^ 500 MWh kg"1 2- [H31 u Average

"O 0) XL Xe-133 6 a S \ A 1-133 H 1-134 Xe-138 Kr-88 Kr-87 Kr-85m

_i » i i i i i n i 10" 10"' 10" 10' 10"

No Solution: It appears that 1-131 and Kr-85m "might" be too high or low9 Figure 3-24 Failed tramp burnup analysis using data from [19] with COLDD generated error message

1 3 p A Bu^ 0 MWh kg*

D Bu^ 500 MWh kg'1

1 2 •*- Bu,^ 330 MWh kg" u £T - Optimum Solution -a a rsi y 1 Xe-133 5 CO * + £ 1 A A O M33 1-134 Xe-138 = 0 Kr-88 Kr-87

•I -1 9 s 4 3 1Cf io- io- 10" Ms'1)

Figure 3-25 Successful (after following COLDD suggestions) tramp burnup analysis using data from [19] 99

Table 3-11: Variation in cumulative yield with burnup

1 Burnup = 0MWh.kglT Burnup = Nuclide 1 % Change (M5U Yield) 500MWh.kgU" 133Xe 0.066991 0.068325 2.0 133mXe 0.001947 0.002115 8.6 I35Xe 0.065385 0.069883 6.9 85mKr 0.012907 0.009851 -23.7 88Kr 0.035524 0.025935 -27.0 87Kr 0.025576 0.018981 -25.8 135mXe 0.011016 0.013591 23.4 138Xe 0.062968 0.058233 -7.5 89Kr 0.045107 0.032249 -28.5 13N 0.028907 0.032968 14.0 133T 0.066965 0.068128 1.7 135T 0.062819 0.063912 1.7 132T 0.043118 0.047642 10.5 134J 0.078296 0.076522 -2.3 "Mo 0.061087 0.06152 0.7 125Sb 0.000340 0.000667 96.2

3.10.7 Using Depositing Fission Products (DFP) to Measure Tramp

This final tramp uranium technique is included for completeness, but not incorporated in COLDD. The concept is to use DFP activities to infer tramp uranium masses. The technique is identical to that of using iodines and noble gases:

A* C?Me R? u A NAxP()yc(Butr) NM4>)yc(Butr) where C\q or R\q refer to the concentration, or release, of DFP as detected by the GFP or grab sample system. As DFP concentrations are a function of location in the PHTS [16], the results have limited application, but are useful for trending purposes, investigating DFP transport phenomena, and studying impact on PHTS radiation fields. 100

3.11 Mass of Activation Corrosion Product (ACP) Targets

In a similar manner in which the mass of tramp uranium can be calculated, one can also estimate the mass of the source term (target) for Activated Corrosion Products (ACP). Although this does not provide data directly applicable to defected fuel, the method is readily programmed into COLDD, and may prove beneficial in separating ACP 95Zr/95Nb from FP 95Zr/95Nb should a station experience significant fretting from acoustic channels, and contain defected fuel at the same time.

The current version of COLDD only includes the ability to calculate the mass of l23Sb from l25Sb measurements, as only ACP l25Sb measurements were available [19]. The analysis is performed in COLDD by selecting "Plots" and then "Plot Sb-123 Mass Estimate", which uses the sub-routine Sbl23mass to perform the analysis described below; COLDD could be readily modified to analyse user specific ACP (section 6.1.3).

In effect, this technique is identical to performing neutron activation analysis (NAA), where the reactor system is the sample under investigation. In standard NAA, the activity

of the activation product, A2N2 [Bq], can be found from:

mi A At _At X2N2 = ^ (1 - e ')e " f o(E)(E)dE (3-39)

Where mx [g] is the mass of the target material, fx is the target isotopic abundance, NA 1 1 [atom.mol" ] is Avogadro's number, Ax [g.mol ] is the target atomic mass, t; [s] is the 2 irradiation time, td [s] is the delay/transit time, a(E) [cm ] is the energy dependent cross- section, and (f>(E) [n.cm"2.s"'] is the energy dependent neutron flux.

Using equation (3-39), it is possible to determine the mass of target material generating ACP in the PHTS system. The only GFP data available to demonstrate this principle is recent Sb measurements [19]; Sb is a common ACP that can cause elevated PHTS radiation fields [70]. As l25Sb is formed by two successive neutron capture reactions from 123Sb, equation (3-39) must be solved as follows to determine the target mass of ,23Sb: 101

C 123Sb 1245 = \ Mc Leas " 0-40) mi23sb 2 ^24sft<0th) /l23sb^^23sb

Al25 N 1 l25 24 Where f sb ™sb\ [Bq.kg ] is the measured Sb activity, er124s6 = 17.4xl0'

2 24 2 1 cm , a123sb = 3.875*10" cm , A123sb=\2l.l6 g.mol" , and f123Sb= 0.4279. Equation

(3-40) is a first order estimate that assumes tt » X, td « A.,a(E) = a0l(j)(E) = ( 10 years, and Figure 3-26 illustrates that steady-state Sb had been achieved in this case.

CANDU reactors have thermalised neutron flux profiles, and 0\usb and (E)dE for this simple estimate. If a more accurate result was required, then a station could consider performing this integral using the known neutron flux profile, however, choosing an appropriate flux profile to represent the flux seen by circulating and deposited 123Sb may not be possible without knowing the exact location of the 123Sb.

Figure 3-26 is an example of equation (3-40) applied to reactor data from [19]. In this case steady-state I25Sb activity was maintained until a lengthy shutdown which resulted in a significant drop. As the 125Sb half-life is ~ 1000 days, the 125Sb activity should have shown steady decline from t = 0 to 600 days if the measurement was stationary deposits in the GFP sample holder (see Figure 2-15); this rules out deposits and suggests circulating I25Sb, possibly in equilibrium with surface deposits. In theory a model could be created to predict the build-up of Sb as a function of time, which could be used with the data in Figure 3-26 to predict the new steady-state level. 102

5Sb Mass [g]

0 200 400 600 800 1000 1200 Time [days]

Figure 3-26 Target mass of l23Sb [g] during several years of reactor operation (data from [19])

3.12 Techniques Used by International Programmes

This section describes international defected fuel programmes in more detail, with specific emphasis on similarities and differences to the techniques applied in COLDD. The international codes apply to PWR, BWR, and WWER type reactors, which have various fuel designs, although the fundamentals of defected fuel behaviour described in Chapter 2 still apply.

3.12.1 PROFIP, SADDAM, and DIADEME (France based Programmes)

PROFIP-3 [42], SADDAM [44], and DIADEME [45] are three successive programmes described in the literature used for defected fuel diagnostics in France, with DIADEME the most recent version. The code was developed in the 1980's through to the present (like VisualDETECT) and has some similarities and differences to COLDD. For example, the use of Cs ratios in COLDD for burnup calculations is from the French work on LWRs. 103

One interesting difference is that unlike COLDD, which uses a simple isotope generation model based on the cumulative yields of species, DIADEME includes detailed calculations to determine FP birth rates in the fuel [42]. This provides a more accurate generation rate and could be considered for future improvements to COLDD.

The gap release methodology is similar to COLDD, but also includes iodine absorption effects. DIADEME also includes a generic l31I release rate for estimating the defect number, comparable to the COLDD technique described in section 3.7.1 "Number of Defects from Iodine Release".

DIADEME uses, amongst other techniques, noble gas activity ratios to infer defect size and power. Figure 3-27 shows a numerical calculation using PROFIP-3 of noble gas ratios versus temperature (element power), where vg [s1] (the gap escape rate coefficient) is representative of increasing defect size. 104

iC

"Hr/'"* i i 1MX»/',,Xi — '«e«/,Mxt 10>

.2 10

« as « « 1 '^^IO-' 0* n«r4 .:'_:'_:' — — — — — '— — ' nW

_i • i i * T i i • i i i i t_i_A " ' ***T i i i i i "" •»' 10" ..7.~T.T:.T:.T. .TT.rr. ~ *io-* _—--~ *1ff*

• > i i i i i i i i i t t t t i i i i > i i i i i i vq 10'*

Iff' i 800 1000 1200 1400 1600 1800 Temperature |°C]

Figure 3-27 Parametric study of release rate ratio versus temperature [42]. The ratio is plotted for various defect sizes by varying vg (v) [s1] from 10"2 to 10"6 for each ratio.

From Figure 3-27, the authors concluded that the 133Xe/135Xe ratio is most sensitive to defect power, and the other ratios insensitive to defect power, but more dependent on defect size. Similar findings are exploited by COLDD, specifically the use of 133Xe as an indicator of defect power, and the slope '6' used for defect size estimates. One important difference is that COLDD neglects 135Xe due to its large neutron absorption cross-section and by using b essentially uses an average of the specific ratios used by DIADEME. 105

The Rlyc analysis employed by DIADEME is almost identical and uses the following nomenclature:

| = kX~n (3-41)

where R [atom.s1] and B [atom.s"1] are the usual release rate and birth rate, A; is a fitting constant, and n another fitting constant that correlates to defect size and power. This is b similar to the COLDD version of Rlyc = aX + C, with the replacement of B and yc, and the exclusion of the C term for tramp uranium. DIADEME correlates increasing n with increasing power, and decreasing defect size; as with COLDD and the fit coefficient A, DIADEME cannot differentiate between size, power or defect number with this fit alone. DIADEME uses a low value for 133Xe release to estimate a maximum limit on the defect number, and a correlation between n and 133Xe RIB to determine a lower limit [45].

DIADEME is an online code that receives data remotely from the NGS GFP system and reactor data [45]. This advance could readily be achieved by COLDD with minimal effort, and would probably require a unique solution at each NGS dependant on the GFP and reactor data system. Figure 3-28 is a sample of the SADDAM GUI [44], which appears to present a variety of defected fuel data, and is more similar to the Visual_DETECT GUI [54] than the COLDD GUI. 106

Figure 3-28 Defected fuel assemblies characterization in SADDAM [44]

3.12.2 RELWWER-2.0 (Russian Qualified Programme)

The RELWWER-2.0 programme described by Slavyagin et. al. [46] is a qualified programme used for defected fuel analysis in Russia on WWER type reactors. The mass balance formulations differ slightly to those discussed in Chapter 2 as the fuel contains a central axial hole, which acts as an extra void volume in the sequence of mass balance equations. The programme also considers the IX columns as a volume containing FP and daughter products, as well as considering sorption and desorption rates on internal

surfaces in the PHTS. The steady-state solution for Nc is identical to the CANDU case, but precursors are accounted for separately:

A*NC = RC + Rtr + Rprecursor (3-42) where X* [s"1] is the effective decay constant and includes purification, leakage, 1 degassing, and sorption/desorption, and Rprea,rSor [atom.s ] is for production of gaseous FP from the decay of parents in the coolant, IX resins and on PHTS surfaces. 107

RELWWER-2.0 recognises the inherent difficulty in separating X (defect number) and P (defect power) and therefore is only used to estimate the "mean characteristics of the entire failed rod population (excepting, may be, the case with a single leaking rod)"13 [46]. This is the same problem faced by COLDD, Visual_DETECT, and CHIRON. In RELWWER-2.0, X is found by using the calculated activity for a single rod (presumably using an average power) for each iodine nuclide (except 134I which is assumed to be tramp only and is subtracted from the other iodines). This provides Xi from each iodine isotope, which is combined to determine an average value for X with uncertainty (measurement uncertainties are also included in this calculation). X is stated to have an accuracy of -100 % to +50 % from this method. This would be a similar approach to choosing P as an average element power in COLDD, and then using the corresponding X (section 3.7.2).

RELWWER-2.0 assumes tramp uranium contamination only if q < (R* ' 'yc O/C^f Vc ') 3, which is comparable to the technique used by b COLDD which assumes tramp if-0.1 < b < 0.1 where R/yc = aX~ has been fitted to the data (section 3.10.1).

3.12.3 RTOP-CA (Russian WWER Programme)

RTOP-CA is a mechanistic defected fuel code under development that is based on the intact fuel code RTOP, and attempts to model the defect behaviour as completely as possible [69], [71], [72], [73]. RTOP is an intact fuel performance code that uses physical models that describe microstructure changes in the fuel, behaviour of stable fission gases, geometrical parameters of the fuel and cladding, spatial temperature distributions, and changes in fuel properties with burnup, stoichiometry and temperature [71]. RTOP-CA builds on RTOP and adds defected fuel phenomena, including mass transport in the gap and central hole, and a detailed mechanistic model for secondary hydriding [71].

13 Quoted from section 2.2 of [47] 108

The RTOP-CA developers are pursuing a neural network approach, whereby the first step is to illustrate the ability to predict PHTS activities based on known defect conditions. A neural network approach will then be used to solve the inverse problem, and determine defect conditions based on activity data [72]. As insufficient experimental and commercial defected fuel data is available, the intent is to use RTOP-CA to generate a large database of defect scenarios, and then use a neural network to correlate measured activities with a solution from the database [72]. Preliminary analysis using this approach has shown promising results [72].

The RTOP-CA code has been incorporated into an "Expert System" for fuel failure analysis [69]. Defect analysis is performed by first estimating the tramp uranium mass using 134I in the same manner as COLDD (section 3.10.2) for the reasons described in Chapter 2. The system monitors the 13li/134I ratio as an indication of the core integrity, and correlates rises in 134I with fuel degradation and a measure of fuel loss. Spikes of iodine and caesium release during power maneuvers, start-up, or shutdown are considered the primary indicators of defects in core. Defect burnup is determined using two methods: caesium spikes in the same manner as CHIRON and COLDD, and using 88Kr and 85mKr ratios with l33Xe. The latter method exploits the relative changes with cumulative yields, and is similar in approach to the method employed by COLDD (section 3.8.2). The defect burnup from this method only works with single defects or defects of similar burnup, and is highly sensitive to variations in the defect state. The defect number is determined by comparing the steady-state 133I and 13II activities as shown in Figure 3-29. The RTOP-CA code is used to generate 'clouds' of data based on different defect numbers (JV» and characteristics, and then the measured values (with uncertainties) are compared against the predictions to determine the defect number with confidence levels [73]. At the time of writing, this system is being prepared for certification by Russian regulatory authorities. 109

Figure 3-29 "Clouds" of different colours represent different RTOP-CA calculations with different numbers of defects (NF). Measured data in bottom left at two confidence levels indicated NF ~ 1 - 2 [73].

3.12.4 CHIRON (US Based Programme)

CHIRON14 is a quasi-empirical programme held by TransWare Inc., and originally developed by TransWare personnel for the Electric Power Research Institute (EPRI) [74]. The programme is commercially available (Windows based), the User Manual (including Theory Manual) is publicly available [55] and is the main source of information for this section. The programme is currently being used by several US reactors for ongoing fuel failure analysis.

CHIRON uses similar foundations to VisualDETECT and COLDD for determining the defect number. One variation to the Canadian work is the treatment of the defected fuel power, P, as proportional to the core average element power, P =/FPav, where /F is the proportionality constant, and Pav the average rod power (a similar treatment is applied to

14 CHIRON is named after the Greek Centaur Chiron, known for his wisdom and healing abilities. 110

the burnup). The possibility of diffusion release from tramp uranium is also considered, although the User Manual suggests this is often negligible. This leads to the following R _ a-v + (C Bav ~ VI(v + A) (3-43) a = ELi a'kfFkfyk and ( = Y + (1 " Y) Jrf (T)

7 where a'k is a constant including diffusion effects and rod geometry (oc VD ), fyk = yc(Bu)/yc(Buav) is the ratio of the defected element cumulative yield to the core 1 average, D'tr [s ] is the tramp uranium empirical diffusion coefficient, and y is the fraction of FP produced in the tramp that enter the coolant (assumed XA in COLDD, Visual_DETECT and STAR for CANDU analysis).

As per VisualDETECT, CHIRON fits equation (3-43) to the measured data to determine a, v, and C, and checks the goodness-of-fit R2 is between 0.95 - 1 to confirm good quality data; the same criterion is applied in COLDD (section 3.2). CHIRON uses a nonlinear fitting routine, similar to the approach used by Lewis et. al. [15] in the prototype expert system that was developed before VisualDETECT. The number of defects X is then found with the following relation:

Ci av ,C2P X = CQ (3-44) V + VoJ where Co, C/, v0, and C2 are fit coefficients from applying equation (3-44) to a reactor specific database of defected fuel data, and P is a function of the effective failed rod power and the average core power. This enables accurate predictions of defected fuel numbers based on prior reactor experience. CHIRON also includes another technique that includes the ratio of iodine to noble gas release as a means to extract X. Ill

Like COLDD and VisualDETECT, the separation of X and P is difficult and is performed by CHIRON based on past reactor experience. A similar approach can be used in COLDD by considering the possible defect scenarios described in section 2.1 when analyzing data. CHIRON also uses Cs ratios to determine burnup in the same manner implemented in COLDD; this is described in section 3.8.

According to [74], the CHIRON developers performed a study to determine if pre-cursor diffusion for l32I needed to be considered (H = 8.5). It was found that R2 was not significantly impacted by the removal of 132I and they concluded the pre-cursor effects were incorporated in the yield factors. However, as CHIRON has all 5 iodines, slight errors in one should not be a concern, but, if only 3 iodines are available (one of which is l32I) then that might result in a different outcome. COLDD neglects I due to pre-cursor effects and the unknown behaviour of the 132Te pre-cursor (section 2.2.2).

3.12.5 STAR and Visual_DETECT (Canadian Programmes)

VisualDETECT (Defective Element/Tramp Estimate Characterization Tool) is a steady- state activity defect diagnostic tool developed for CANDU reactors, and is a foundation for the development of its successor, COLDD. The code was initially developed as an expert system based on similar concepts to PROFIP-3 and CHIRON that were under development at the same time [15]. VisualDETECT was developed over the years to a completed Windows based GUI, as shown in Figure 3-30 [54]. 112

up I *.timate f hdractenzatron Tool)

r MODEL WPUT ===== O todm C NcUtfia rPHTS STEADY-STATE ACTMTY- POWEWBURNUPAHALYSIS- | CanoMMan(tfOka) P2/PIFWK |aW™3 9POM*PI • Pow*P2 f? 1-131 496 U8S1 07 P 1-132 178 aims ••*•« |Xe-133 »| f-Tir-r F 1-133 5.01 0.7230 P l-13« 603 an» I lictcpic Aciw|p mp | OriBmArMtow P 1-135 392 02390 Ct-134A^137: | 0.5 C MwPenn^ AvftPbMf

PHTSPARAMETERS- CORE PARAMETERS == Man«4gt VotatlfcaVA«angidNoukatnuKfeE14nftai2-«) I \_ SSPu*cafanF)owf

SoucoafoonenMiendltt Ketfxad ^J Ftaramc |C:\DETECT_lnputb* rMOOEL OUTPUT HTtEb^ASSUMlbll^LPARAMETERS- r QMM Output Tat Fh r EreetPlot 24CM07 6op Etcapo Rate Cendant (1 At PUhffeNww |C:\DET£CT_OulptAI»t Env«*D*aii»Coofci««p/amMEtnooRal*CoMtMt(1At | 4oO05 Amount of toCow tone Ibsan tot IbT -l-SPKE PREDICTION TimaII-131SaiwiRMSA)i4 504 -ELEMENT P0WEFKURNUP ESTIMATE— Mm M31 Spfc»Aotiy»(ua*flt I 37>-18 Av«agtElo»or«Linoa>Pai*«fAtfA*): | 32.8

AvmgoElaMntBwMplMVAtAgUt I 124 Erit

Figure 3-30 Example output from VisualDETECT [54].

In Figure 3-30, the input power change matches Figure 3-14 (although the P2/P1 ratio must be multiples of 10 % in VisualDETECT) and produces a similar power, and the Cs ratio matches Figure 3-18 and the COLDD burnup. These calculations are identical to COLDD, except error calculations derived and employed in COLDD are not included. Furthermore, the iodine data shown in Figure 3-30 is used in the sensitivity analysis in Chapter 4.

Visual_DETECT requires steady-state activity data from a specific time period to perform calculations. From input iodine or noble gas data VisualDETECT performs an R/B analysis using a user defined element power for B, The code uses the same Levenberg-Marquardt fitting routine as COLDD, and uses some of the same calculations for defect number (section 3.7.2), size (section 3.3.1), and tramp uranium (section 3.10.2). The code checks for a reasonable fit and that the results are within acceptable ranges; this would in effect reject transient data in the same manner as COLDD, as no acceptable fit to the data would be found. 113

STAR (Steady-state and Transient Activity Release) is a standalone (C++) finite element solver, specifically programmed to solve the following set of equations (taken from Chapter 2 and modified to be time dependent as solved in STAR) [11], [30]:

Grain: ^ = && + V • [D(r, t)VC(r, t)] - AC(r, t) (2-20) dt

3D(P,t) dCir.t) Grain-to-gap: /?/(t) (2-28) dr r=a

Gap-to-coolant: Rc(t) = v(t)Ng(t) (2-32b)

V Coolant: ^T = (*W0 + «tr(0 - WNc(t) (2-11)

Unlike the steady-state analysis described in section 2.3, STAR retains the time dependence in all the variables, includes loss by neutron absorption for Xe, and uses a custom variable size mesh to determine the grain release rate with incredible accuracy and efficiency. The user must use STAR to manually fine tune v(t), <"(t), and P(t) to match the measured data, as shown in Figure 3-31. Once v(t), {(t), and P(t) have been tuned to match the data, the user now has information about the defect, and most importantly for STAR can now predict the future behaviour for postulated reactor operations. This is a crucial piece of information for reactor operators to ensure activity levels remain below action levels.

Although COLDD and STAR are not linked, COLDD can be used to determine v(t) and

D'(P) through its Rlyc fitting routine, and then D\P) converted to ((t) through equation (2-16). The user can then use the COLDD outputs as the initial input to STAR in order to make predictions about future behaviour. Ultimately in the future it would be ideal to combine COLDD and STAR into a complete defected fuel diagnostic package, providing both real-time diagnostics using all techniques known for CANDU (COLDD), and future predictions of anticipated activity behaviours (STAR). Future predictions of activity are important for DIADEME and RTOP-CA, as these codes are used to predict behaviour from known defects that are reloaded into the core (a practice never performed in CANDU's due to the online refuelling capability). Escape Rate Coefficient [/$ 1 1E-0 2 © , 1E-0 6 1E-0 5 1E-0 4 1E-0 3 3 Tl Coolant activity concentration A^ (Bqm" | m "S f o o o o o O •— t-* u» 4* O -p- § V s—> i t nrrni— 1 1 1 11 lll| 1 rillllt ITTTTH]! — _ «• «M M >V* —|* |9» —> — —• » -* . "V — —Oxidatio n Enhancemen t Facto r

It3 » "jfr^ Iodin e "nu " [/s ] rcopi c oa s n u i/s j 5 1 0 3 9 T i r I 88 5 './« e a S.S. -I* o> CO o Ul t-» »-» K» N> (At U) ° 8 8 8 8 8 B 8 8 — TO o o o 1o Element linear power P [kWm ] Oxidation Enhancement Factor 115

Chapter 4 Sensitivity Analysis

This chapter examines the sensitivity of the techniques described in the previous chapter to errors and variations in the measured data. To examine each technique in detail would require significant effort and be inefficient. Instead, this chapter first examines sources of error, and discusses how each of these sources may impact the various techniques (section 4.1). The second section describes simple robust methods of error checking the data before performing analysis to ensure high quality data is used (section 4.2). The next section illustrates the ability of the R/yc fitting routine to reject unsuitable results (section

4.3). The final section focuses on the sensitivity of valid fit coefficients from the Rlyc analysis to variations in the input data (section 4.4); this assessment is achieved using a combination of brute force and Monte-Carlo error simulation.

4.1 Measurement Considerations

One component impacting proper analysis by COLDD is the raw data. There are several nuances to GFP and grab sample data that must be incorporated before COLDD can be used effectively. Previous defected fuel diagnostic tools assume the data provided is a measurement of the actual coolant activity; however this may not be true. For COLDD to be implemented at a station, the station data needs to be checked against the following sections to ensure the measurements are as accurate as possible, and do not provide misleading values. 116

4.1.2 Detector Type and Number of Nuclides Identified

There are two main HPGe (High-Purity Germanium) gamma spectrometer detector types used at CANDU stations: planar and coaxial. The planar detector is sometimes employed on the GFP system, and the coaxial type used in the laboratory for grab sample measurements. The crucial difference between these detector types is the energy range; planar detectors are best suited to low energy analysis (5 - 400 keV) due to their relatively small active volume, and coaxial detectors are suitable for a large energy range (40 keV - 10 MeV) due to their larger size [75].

The benefits of a planar detector for online FP monitoring is the reduction of Compton scattering from high energy gamma rays, and increased resolution over a coaxial detector for the low energy range. In comparison, a coaxial detector can detect a much broader spectrum but can be susceptible to noise from high energy rays. However, the high energy rays can be reduced by increasing the transit time to lower the high energy radiation from short lived FP and ACP to reduce Compton scattering effects to an acceptable level. Proper shielding from background sources and shine from the sample lines can further improve the signal-to-noise ratio.

Increasing the transit time and using a coaxial detector is highly recommended; it is clearly shown in Figure 4-1, Figure 4-2, and section 4.1.3 that the extra energy range supplied by the coaxial detector provides vastly superior data for analysis. Note the extreme difference in nuclides available between Figure 4-1 and Figure 4-2; this is discussed in detail in the next section. In Figure 4-2, the Compton scatter up to 1.6 MeV15 is mainly caused by the 1.8 MeV gamma peak from the ACP 28A1 (the NRU reactor is constructed of aluminum, and the fuel clad in aluminum, and therefore 28A1 is an expected ACP). As the 28A1 half-life is only ~ 2 minutes, the transit time is chosen to ensure short lived FP could be measured (i.e., I34I, half-life of 53 minutes), but not too short to ensure 28A1 does not dominate the signal.

15 Ecomvton = Ty = 2>18Z = 1.6 MeV tompton meC2+2E_Y 0S11 + 2»18 117

The main impact of using a planar detector to provide data for a COLDD analysis is a reduction in the number of nuclides available, and increased uncertainty. For example, l33I identification with a planar detector is performed using the 345 keV peak with 0.1 % abundance, whereas a coaxial detector can use the 529 keV peak with 87 % abundance

for a lower error measurement. For the Rlyc type analysis this can result in increased error in the coefficients, and/or error calculations are not possible if too few nuclides are reported. Some techniques in COLDD may not be possible due to lack of nuclides, which handicaps COLDD's performance. The detector choice also impacts measurement accuracy and precision, as the limited range of the planar detectors limits the number of peaks available for each isotope, and also removes the ability to separate 99Mo from "mTc as discussed in section 2.2.3.

Figure 4-1 Typical Spectra from a Planar Detector Viewing FP in a CANDU reactor (spectra taken from [19]) 118

Figure 4-2 Typical spectra from a coaxial detector viewing FP in the NRU reactor. Notice the 1.5 MeV Compton edge created by the 28A1 peak at 1.8 MeV. Image courtesy of AECL.

4.1.3 Nuclide Identification

Most gamma spectra are analyzed using first-order techniques that utilise peak finding algorithms for nuclide identification and characterization [19]. More advanced techniques are available, and are the subject of recent studies and development in gamma spectrometry analysis [76]. Labs around the world have developed numerous algorithms and software packages such as GammaLab [77], UNISAMPO-SHAMAN [78], as well as Hyper-Lab, NADA92, MULTINAA, ActAn, Span, ADVNAA, ZAKI, SPAAC, INTERPRET, and ROMOS [76], [77]. Developing spectral analysis tools is outside the scope of this work, but GammaLab and UNISAMPO-SHAMAN are of particular interest to COLDD. 119

GammaLab [77] has the advantage of being programmed in MATLAB , and therefore is immediately compatible with COLDD with minimal effort, and can also be setup in a real-time application. UNISAMPO-SHAMAN is of interest as development work is performed at Health Canada (this programme is used for air monitoring in support of the international nuclear test ban treaty), who kindly16 analyzed both a Bruce (planar detector) and NRU (co-axial) spectra. The results of this analysis are presented in Appendix G, and summarised in Table 4-1 and Table 4-2.

From Table 4-1, it is clear that APTEC and SHAMAN are both capable of extracting more isotopic data from the GFP data than typically recorded by the station. A key difference between APTEC and SHAMAN is that the APTEC analysis assumed a priori knowledge of the spectra, and pre-populated the analysis library with expected FP. In contrast the SHAMAN analysis was performed using a library containing 3,648 and 80,062 gamma-ray lines [78], and made no assumptions about the nuclides present.

Two anomalies in Table 4-1 are the detection of 99Mo by APTEC but not by SHAMAN, and the detection of 2l9Rn and 139Ba by SHAMAN. The detection of 99Mo may not be correct as the APTEC library had an incorrect entry for 99Mo: the APTEC library used a gamma line of 140.51 keV with .909 y/dis (see Table 2 in [19]), whereas the actual value is 0.045 y/dis. Also there is a more prominent peak at 181.068 keV with 0.06 y/dis. that should have been present, but was not, to confirm this identification [79], i.e., the lack of the higher energy higher intensity peak suggests this might be a mis-identification. Note that a coaxial detector can use the 739.5 keV peak at 0.1213 y/dis. to confirm 99Mo (Appendix C). The detection of 219Rn and l39Ba by SHAMAN is important for monitoring tramp uranium. 2I9Rn is part of the 235U decay chain, and therefore its measurement can be used to directly measure the mass of 235U circulating in the PHTS (see section 3.10), and 139Ba is a FP that remains in the fuel matrix allowing for possible measurements of tramp uranium.

16 Many thanks to Weihua Zhang of the Radiation Protection Bureau, Product Safety Program, HECSB, Health Canada, Ottawa, Ontario. 120

Table 4-2 is important as it demonstrates the wealth of data available if radionuclide spectra are monitored by a coaxial detector and analyzed in detail (spectra and analysis results provided courtesy of AECL). Of particular note is the presence of nuclide families

(i.e., Sb, Ba, La...) which could prove useful as studies of R/yc analysis of these families may help improve the understanding of the presence of tramp uranium and/or defected fuel. As discussed in the previous section, the choice of nuclide detection software and nuclides to identify handicaps COLDD's performance for a variety of the techniques. Table 4-1: Comparison of NGS GFP spectra examined bythe Nuclear Station System, SHAMAN, and APTEC Recorded by Detected by Detected by Nuclide Station SHAMAN APTEC 85nwr - Yes Yes 87K - Yes Yes 88K Yes Yes Yes ,25Sb - Yes Yes 131I Yes Yes Yes 134T - Yes Yes '"Xe Yes Yes Yes 133mXe - Yes Yes ,3SXe Yes Yes Yes ,38Xe - Yes Yes ,38Cs - Yes - ,39Ba - Yes - "Mo - - Yes m'Mo - Yes - 219Rn - Yes -

Table 4-2: Comparison of NRU spectra examined by SHAMAN and APTEC Detected Detected Detected Detected Nuclide Nuclide by by APTEC by by APTEC SHAMAN SHAMAN 14Na Yes Yes 1J'Te Yes - -*Al Yes Yes l31mTe Yes - 4liCr - Yes lJ4Te - Yes 5,Co Yes - mI Yes Yes *Mn Yes Yes i«. Yes Yes ^Co Yes - mI Yes Yes "Se - Yes 134. Yes Yes s'Kr Yes - U5I Yes Yes ""Kr Yes - lj5Xe Yes - *5Sr Yes - ,J>mXe Yes - mRb Yes Yes ljsXe Yes Yes 121

Detected Detected Detected Detected Nuclide by Nuclide byAPTEC by byAPTEC SHAMAN SHAMAN ^'Sr Yes Yes lj8Cs Yes Yes yiSr Yes Yes 143Cs Yes - V,Y Yes - 1J*Ba Yes Yes vimy Yes - 14UBa Yes Yes 92Y Yes - 14,Ba Yes - Wy Yes - 142Ba Yes - "5Zr Yes Yes l4ULa Yes Yes "7Zr Yes - ,4lLa Yes - y5Nb Yes - l42La Yes - *7Nb Yes - 141Ce Yes Yes *>Mo Yes - ,43Ce Yes - Wm Tc Yes Yes 144pr Yes - ,01mRh Yes - 158Eu Yes - m ioopd - Yes lv Yes ,0SRu Yes Yes ,y4Ir - Yes "4mIn Yes Yes "^Au - Yes 125Sb Yes - lu?b - Yes 126Sb Yes - 221Fr Yes - lz,Sb Yes - ^Th Yes - 12i!Sb Yes - mPa Yes - ™Sb Yes - 23»Np Yes Yes

4.1.4 Transit Time

The transit time ttr [s] represents the delay between the fuel channel outlets and the gamma spectrometer or grab sample measurement location. The transit time is an important design parameter:

l6 • If t,r is too short, then short lived activation products such as N (generated by an (n,p) reaction with 160) will overwhelm the spectrometer. l6N (t^ =7.1 s ) has a 6.1 MeV gamma ray of 67 % abundance, which will produce a large Compton scatter up to the Compton edge of ~ 5.9 MeV.

89 138 135m 134 • If ttr is too large, then short lived FP's ( Kr, Xe, Xe and maybe I) may decay significantly before measurement. 122

Typically a transit time of ~ 15 minutes will suffice. The recorded activity is a function of the detector and sample geometry (also a function of energy), detector efficiency,

Altr l 2 detector energy calibration, and is proportional to e = e ' . Therefore if ttr~ t1/2 then the transit time will impact the measured activity. The only way to confirm that ttr is reasonable is if l34I, l38Xe and possibly 89Kr are present in the spectra; if none of these isotopes are found then the data must be used with caution as there is no indication of an accurate ttr. COLDD will create the following warning dialog box to this effect if none of these isotopes are present "There are no short lived nuclides present to confirm the correct transit time. Use short lived data with caution". A false ttr could appear as hold­ up, or remove hold-up, thus artificially converting tramp data to appear as a defect or making defect data appear as tramp, respectively. This phenomenon appears in the Rlyc sensitivity analysis as discussed in section 4.4.

l34 Using the Rlyc test described in section 4.2.3 on the isotopes I {tx/2 = 53 minutes), 138 89 Xe (ti/2 = 14 minutes), and Kr (tj/2 =3 minutes) will confirm that ttr (ttr~ 15 minutes) is correct (e.g., Figure 4-10). Errors on ttr mainly impact tramp uranium analysis by artificially raising or lowering the activity of the short lived FP. This will cause high or low readings, and may also prevent tramp burnup calculations. In the extreme case, large errors in ttr will prevent good fits for the R/yc analysis. It is highly recommended that ttr is checked on a regular basis, as slight trends detected in tramp uranium levels might actually be slight trends in the flow rate to the GFP or grab sample system, for example by deposits in the sampling lines restricting and reducing flow.

4.1.5 Delay Time

The delay time td [s] is the time delay between physically taking the grab sample and measuring its activity (this effect does not apply to the GFP system). The importance and impact of this parameter on defected fuel diagnostics, are identical to the description in the preceding section for ttr. 123

Besides ensuring a proper td is used to produce accurate activity measurements, care must also be taken to account for parent-daughter pairs that will decay during td. For 134 134 example, Te (t1/2 = 42 mins) will decay into I (t1/2 = 53 mins) during the delay time, which will impact the 134I reported measurements if not properly accounted for. Due to safety requirements for the worker taking and measuring the grab samples, the delay time might be long enough to require consideration. Modern gamma spectrometer software should account for these parent-daughter decays during counting, although this should be checked and not assumed to be correct.

4.1.6 Spectrometer Counting Time

The activity concentrations reported by a gamma spectrometer are not instantaneous measurements, but rather averages over the counting period. This concept is illustrated by equation (4-1)

1 ff Cm(t) = - Ca(T)dT (4-1) l J p t-tp where Cm(t) is the reported measured concentration, tp is the spectrometer counting period, and Ca(i) is the actual concentration in the HTS. Ca(t) varies with a time-scale tnen on the order of the effective half-life, therefore if tp « t{/2 Cm(0 * Ca(t).

Consider a simple case where Ca(t) = (1 — exp(—At)); spectrometer measurements of

Cm(t) for this case with tp = 0 to 16 multiples of tx/2 are shown in Figure 4-3. 124

Figure 4-3 Influence of counting time (tp) on activity measurements

From Figure 4-3, providing tp < tx/2, then the measured concentration is a good approximation of the actual concentration. A typical value of tp is ~ 1 hour, and therefore is reasonable for most isotopes except the short-lived isotopes with tx/2 < 1 hour used for tramp uranium signals. However, for the short lived isotopes, if the counting period is longer or similar to the half-life, then the spectrometer is essentially reporting the release rate. This is shown in Figure 4-4 which shows that the measured release rate (Rm(t)) is close to the actual release (Ra(t)) rate when tp > t1/2.

One option to remove this consideration from defected fuel monitoring is to reduce the counting time to ~ 15 minutes, but then also sum every ~ 4 spectra to retain the long spectral counting period. The counting error for the combined spectra is identical to the error in one single longer count of the same total counting period. In this regard the 125 activity concentration of the short lived species could be measured accurately, and the release rate of the long lived species determined over longer periods for improved accuracy. An added benefit would be a much quicker response to transient events, and higher resolution measurements of the transient event. This would allow, for example, the power method described in section 3.4.3 using the iodine spike to be applied at a CANDU station (which is not possible with current data as tp is too long).

-qi&ia*+m*mi+*iii*imt**tmmm^k*i*m*i*<)\ imit* * .a •R.(0 — RJO.t =0.25t m 1/2 R(t),t =0.5t, uis " p 1/2

H—RJD.t =t 1/2 cs -^R (t),t =2t v 1/2 m ' p -&-RJ*Xt =4t 1/2

-v-R (t),t =16t.1/ 2 10 15 20 25 30 35 Time (t) [multiples of t1/2]

Figure 4-4 Influence of counting time (tp) on release calculations of C(t) from Figure 4-3

4.1.7 Calibration for Absolute Measurements

Calibration for absolute measurements of both the GFP and grab sample systems is critical to confident measurements. The calibrations must also be performed regularly. This procedure includes geometry, efficiency, and energy calibrations. For example, a GFP incident involving an incorrect setting caused an incorrect calibration that resulted in 126 the system providing artificially low activity concentration measurements (OPEX No. 34777). As discussed in section 4.2.1, a simple regular comparison between GFP and grab sample data (collected through independent systems) would ensure reliable results (assuming the station has a GFP system).

As discussed in the work of Swann [19], a geometry correction factor is required to account for geometry, aperture setting, density and shielding. For the purposes of a planar detector, as the energy range is limited, it is a reasonable assumption to treat the correction factor as independent of energy. However, for coaxial detectors covering large energy ranges, an energy dependent correction factor must be developed and employed. This can be achieved using an accurate standard that properly reflects the measuring geometry and intended energy range. This is required as the stopping power of any shielding (including the walls of the sample holder itself) is a function of energy. Without proper calibration, false information may be provided to COLDD that will result in misleading results. If the error checking techniques described in section 4.2 are properly employed, then this error can be minimised.

4.1.8 Sampling Pressure and Temperature

Early work of Palmer et. al. [80], [81] shows that sample pressure and temperature play a key role in the measured activity concentration compared to the actual value. In the case of grab samples that are performed at atmospheric pressure17, Figure 4-6 shows that the solubility of the gases decreases as temperature and pressure is lowered. Therefore as the coolant is cooled and depressurised from ~ 280°C at ~ 10 MPa to ~ 50°C at ~ 0.1 MPa it is anticipated that the gases will be released. This was indeed observed by Palmer et. al. by the discrepancy between gas activity measurements performed by the online GFP and grab sample systems [80], [81]. In contrast the iodine measurements showed excellent agreement between GFP and grab sample measurements. Based on these results, direct grab sample gas activity measurements should never be used for coolant activity analysis in COLDD or any other diagnostic tool/calculation. However, with detailed analysis and

The cooled depressurized samples are essentially dispensed through a tap into the sample container. 127 modeling of the sampling process and gas release, it may be possible to monitor trends or perform analysis if confidence in the measurements is possible.

The temperature dependence of sampling efficiency was also examined by Palmer et. al. and it was found that iodine can deposit on PHTS surfaces if the coolant temperature drops below 95°C [80] - 165°C [81]. This temperature dependence was also observed by Allison during coolant heat-up of Pickering-1, as shown in Figure 4-5 [82]. Therefore, if the sampling lines to the GFP system are sufficiently long to drop the sample temperature to below ~ 150°C, then iodine may deposit in the sampling line, and the measured activity would be below the actual activity. The same phenomena may apply to the cooling process for grab sampling, with similar impact on the measurements. Once again, the operator must make every effort to ensure pressure and temperature of the samples are properly accounted for; slight errors in the measurements of these parameters would be hard to detect and could lead to misleading outputs from COLDD for a variety of techniques. 128

Figure 4-5 Effect of coolant temperature on I concentration (time scale and activity scale not provided [82])

4.1.9 Ion exchange (IX) Column Efficiency (Gas and Iodines)

The Ion eXchange (IX) efficiency refers to the efficiency of the IX columns to remove species from the coolant. While important for reactor safety and minimizing radiation fields, the efficiency of the IX columns (and possible impact on noble gases) is a crucial factor for defected fuel diagnostics (see section 4.4). The IX efficiency appears in the equation for the effective decay constant (recall equation (2-11))

*v = *+j$)'x-"w+& <2"U)

1 where lXeff is the IX efficiency. For a typical single loop CANDU plant, /?p~ 15 kg.s" ,

Mc ~ 244000 kg, lXeff ~ 1, and therefore the effective half-life of the IX system is approximately 3 hours. For isotopes with half-lives < 3 hours, or gaseous species that are 129 not significantly affected by the IX column, then A*(t) « A(t) and the IX efficiency does not impact the measurements.

However, for long lived iodines (131I, 133I, and l35I) and possibly long-lived gases (I33Xe, 133mXe, 135Xe, and 85mKr) the IX efficiency has a strong impact on defected fuel diagnostics. Consider a tramp uranium case in equilibrium where the IX system has q failed, but lXeff = 1 is input into COLDD. As R* = A*McCeq/ X (see equation (3-2)), an artificially high A* will raise the reported activity of the long lived species, making it appear as if a defect is present. The opposite is true if a defect is present and IXeff is undervalued; this misinterpretation will lower the long-lived species relative to the short lived species and remove the defect impact on the activities.

There is also the standard assumption that lXeff g = 0, however, the IX resins cannot survive standard coolant temperatures, and therefore the coolant must be cooled to ~ 80°C. As shown in Figure 4-6, xenon solubility is a function of temperature, and therefore during this cooling phase noble gases may be lost; if so this would appear as an extra loss term for the noble gases. Typically lXeffg = 0 is correct (assuming no degassing operations), and could be verified by measuring the effective half-life of 133Xe. 130

• • i • i — 0.1 atm — 1 atm Xe paritial pressure — 10 atm

10"1 o CM I

1 10-2 o Decreasing Pressure E,

9 • o 10-3 -

\. v ^^^

•ir>-4 250 300 350 400 450 500 550 600 650 Temperature 7"(K)

Figure 4-6 Xe solubility in H2O at partial pressures of 0.1,1, and 10 atm [83]

Fortunately, as described in section 4.2.2 "Checking IX Efficiency (Noble Gas and Iodine)" it is possible to routinely check the IX efficiency using the GFP, grab sample, or specific measuring systems. If the IX efficiency is incorrect, this can impact all COLDD routines that rely on long lived iodines or gases, possibly resulting in significant errors. As IX efficiency errors can appear as increasing or decreasing the defect state, it is easy to successfully compute defect diagnostics with an incorrect value. Fortunately the IX resins and removal capacities (~ 100 %) are extremely reliable and are highly effective due to the high pH of the CANDU system. 131

4.2 Data Error Checking

This section examines the techniques available to the operator for error checking activity data to assure high quality data are provided to COLDD.

4.2.1 Comparison of Grab Sample and GFP Data

The simplest test a station can perform to provide measurement confidence is to demonstrate that GFP and grab sample measurements are identical for all species. As these systems are completely independent (different sample location, sample temperature, and gamma spectrometry equipment), they provide a perfect comparison. Ideally a pressurised sample holder would be used to collect a grab sample at pressure and temperature; this is currently not available at CANDU stations. Instead a non-pressurised and cooled sample can be used to compare non-gaseous isotopes. There is no reason to limit this comparison to FP only, it should include all detectable isotopes.

Figure 4-7 is an example showing excellent agreement between GFP and grab sample (CEM) measurements for l3lI [11]. In comparison, Figure 4-8 is an example where reported GFP and grab sample measurements differ by up to a factor of ~ 2.5; in this instance, only one measurement can possibly be correct. Ideally, regular comparisons of all soluble FP available covering a variety of energy and half-life ranges should be used to ensure accurate reliable data are provided to COLDD for analysis. Differences between GFP and grab sample data are an indicator of a measuring system error which could impact all of COLDD's techniques in a variety of ways. 30 I i i i i i i i i i i • i i i i i i i ' i i ' I' i i '' i i I' i' i ' i ' i I 50

c Measured (GFP) _o Measured (CEM) eo 40 E ^i_^ e STAR (Constant #/)) «. CO ej 10 .£ J5 GFP threshold (4.13 /iCikg") c o o uo 0 J3

120 122 124 126 128 130 132 134 136 Day

Figure 4-7 Comparison of GFP and grab samples (CEM) measurements from a CANDU station showing excellent agreement [11]

-o- 1-131 GFP 300- 3 5 • -o- 1-131 GRAB SAMPLE J " s tse- g n u at- *•« -Djin H4VTI Bflftg 8 no­ § se- U Nk^mSvHPr'* »"H tUmiSS S3 > ithmitt thtitt Figure 4-8 Comparison of GFP and grab samples measurements from a CANDU station showing up to a factor 2.5 difference in activity concentration [84] 133

4.2.2 Checking IX Efficiency (Noble Gas and Iodine)

As discussed in section 4.1.9 and 4.4, the IX efficiency and purification flow rate are crucial to successful analysis. The IX efficiency can be regularly checked using the GFP and/or grab sample system by measuring the effective half-lives of long lived isotopes, by direct measurement of the input and output streams (if possible), or by any other qualified means. Recall equation (3-23)

Cf(t) = + N Wc ("* 'o U - (6+ V«c •/*.//)) x (l - e-frfr-^+V^e-'**//))') |e~(A+(e+VMc-/*«//))t

where lXeff is the IX efficiency. After shutdown, by fitting (3-23) to measured data, the IX efficiency can be extracted. 131I is the most suitable isotope as it has the longest half- life. Figure 4-9 is an example (Ngo= 0 in this case as the NRU metallic fuel does not have a gap to release iodine after shutdown; i.e., no iodine spike occurs) of the fit performed to NRU coolant data to monitor the IX condition over several shutdowns. COLDD by default assumes lXefftl = 100 % and lXeffg = 0 %, which is typically correct. However, stations should routinely analyze the effective half-life of noble gases (section 4.1.9 discusses the possible impact of the IX column on noble gases) and iodines with the IX at full flow to determine correct effective decay constants. 134

15.05 • S/D1 • c»/n o A S/0 3 - S/D4 t S/D5 Nat. Decay II 15.00 - - Lower Limit - • - Upper Limit

| 14.95 ^^r^r

•an > ' X | 14.90 X • «k ^ "3 v • • • ^ ^ X • v ^ o ^ " X * X J • • 14.85 ' X 1 1 "" —I •— 5 10 15 20 14.80 Time After Shut-Down [hours]

Figure 4-9 Monitoring IX efficiency for 131I removal during several shutdowns (S/D) for the NRU coolant. Data provided courtesy AECL.

4.2.3 Comparing Rlyc to Check Data

This is a novel data error checking technique formulated during the development of COLDD as a simple robust method of rapidly checking data quality. The basic premise is to examine Rlyc versus half-life data and confirm that it conforms to expected theory and experience; any deviation that cannot be reasonably explained is an indication of errors in the measurements. The technique can work in two ways: (/') by examining a defect free period (Figure 4-10), or (ii) by examining a defect region (Figure 4-11).

In the case of examining defect free data, the user must confirm that within the burnup range of 0 - 500 MWh.kgU" it must be possible to draw a horizontal line through Rlyc of all the FP isotopes. If this is not possible, then either a defect region has been chosen, or an error is present in one of the isotopes. In the example shown in Figure 4-10, the elevated 125Sb is consistent with ACP knowledge and confirms that the 125Sb in the PHTS is primarily from ACP and not fission. The extremely low 99Mo value is consistent with the work of McCracken and Floyd [ 17] which identifies 99Mo as a depositing FP. The large range of l33I is due to the use of a planar detector that prevents the main gamma ray 135 of 530 keV at 87 % intensity being used for identification, and instead a lower abundance ray of 345 keV at 0.1 % intensity near the detector energy limit must be used, resulting in significantly larger uncertainty. It is not clear why 85mKr is reported so low, but one possibility is that the branching ratio between /T decay (78.6 %) and internal transition (21.4 %) does not appear to have been included in the activity calculations [19], which would decrease the 85mKr activity by a factor of 1.3. The close similarity between the remaining data provides confidence in the transit time, IX efficiency values, and activity calculations for this specific dataset.

For the second case in Figure 4-11 using defect data, the user must confirm that gases b appear above iodines of similar half-life, gases and iodines obey a general R/yc — aX +

C type form, and that the short lived species have similar Rlyc. In this instance it would appear that 131I is showing a higher normalised release rate than 133Xe. As the data is from a period of steady state activity without iodine spikes, this is unusual. It might be possible that iodine has a larger diffusivity in this case, or precursor diffusion is having an 131 133 effect. However, the only experimental case where I and Xe had similar Rlyc values was FFO-103 that contained very large defects at high power (see Figure 2-14). As this was not an instance of a large high power defect (steady-state 133Xe release rate not very high), this is unlikely to be the case. Once again 133I is showing a large spread in values due to the limitations of the planar detector. The remaining noble gases appear to follow the expected trend, but unfortunately there is no 134I present to confirm that the transit time is correct. Overall the data shown in Figure 4-11 is highly suspect, and therefore was not used for testing or validation purposes. 136

a> •o 73 c Sb-125 O B = 0 MWh/kgU TJ a> 10' O B = 500 MWh/kgU j£ •^ Normalized to 1 en a> tz o Xe-135 -C (0 g.Xe-133 K^7 Xe-13„ 8 ° 0 -131 « «' -134 15 £ o 1-133 c Kr-85m (A -2 10 o CO Mo-99 iI I I I lilt I I I I I III! I I I I l_ J u 4 3 2 1 D -1 10 10 10 10 10 10 10 t1/2 [hours]

Figure 4-10 Example of data checking in defect free data highlighting possible issues with 133I and 85mKr

1 in2 J-131 0 B = 0 MWh/kgU O B = 500 MWh/kgU Noimdlized to 1 ™ 8 Xe-133 1-133 \ Xe- 135

Xe-138

_i o )3 102 10' 10° itf1

R/y c [fission/s j normalize d t o shortes live nu t1/2 [hours]

Figure 4-11 Example of data checking with a defect present. Notice elevated iodines relative to the noble gases (data is not during an iodine spike event). 137

Checking the data by analysing RJyc is performed in COLDD by selecting "Plots" and then "Plot R/yc using all isotopes (used for data checking)" to create the plots shown in Figure 4-10 and Figure 4-11. The analysis is performed by the subroutine RycChecker and produces the activity and release rate R/yc plots for the user to examine. Whenever a new case is loaded in COLDD, COLDD will recommend the user perform the R/yc check before continuing with subsequent analysis.

4.3 Ensuring a Valid Rlyc Fit

After performing an R/yc fit to measured data, it is important that only valid results are returned. As discussed in section 3.2, various rules are used by COLDD to ensure viable results; this section illustrates how those rules are applied. Figure 4-12 and Figure 4-13 are examples of unacceptable and acceptable R/yc fits to commercial reactor data. In Figure 4-12, this result is tramp uranium data with elevated Xe levels, but insufficient to indicate a defect state. In this case, COLDD rejects the values of v, A, a, and b as the coefficient errors are too large. However, as R > 0.95, and C is within the expected range (Table 3-1) with low uncertainty (< 1 %), the value of C is reported as an acceptable fit result. Figure 4-13 in contrast is an excellent fit with high R2, coefficients within expected ranges, and low coefficient errors, and therefore COLDD would return all the coefficients and consider this analysis as an acceptable fit.

As both RJyc models used for fitting have three unknowns, four data points are required for fit with coefficient errors; a fit can be performed with three data points, but no error values can be determined (insufficient degrees of freedom). As shown in Figure 4-12, this analysis procedure could result in a good fit (R2 > 0.95), but grossly misleading coefficients. Therefore, in the case that only three data points are available, the fitting routine will issue a warning to the user and recommend the data be used with caution. If required, in the extreme case of only two points, COLDD could be modified to discard C and provide a two point solution for A and v or a and b respectively, although this result would be highly suspect. Furthermore, the inbuilt MATLAB® fitting routine nlinfit issues error messages if there is a problem with the fit (for example, the maximum number of 138 iterations are reached before finding a solution). The custom fitting routine TRfit and TRfitb automatically reject any results if nlinfit produces an error, and defaults to returning NaN18.

O RwrD*t4 R; * 1.00, v - 6.80t-011 +/- 837129.8 %, A « 2.26t+014 •*- 592931.2 %, C - 5.52»*012 •/- 0.7 % RJ - 1.00, * « 2.0*-024 •/-10597229.0 %,\> - -6.29 *l- 431746.16, C - 5.6rM)12 •/- 0.2 %

Kr-85m -e—e-e- Xe-135 Kr-88 12 1 10 i i t i i •• I » t i ,|.,t ,l„H.l I. I t ,1.J,J,U.l. • •JL.,l.l.l.lAi- J 1 1-1.. L.l.1,1 .-6 -3 . -2 10 10 10 10'3 US] ^ 10

Figure 4-12 Example of a bad fit with R > 0.95, coefficients outside expected ranges (Table 3-1), and coefficient errors > 100 %, excluding C.

18 NaN (Not A Number) is the MATLAB® syntax for void results. It is used as MATLAB® will plot data with NaN values as blanks in the plot. MATLAB® also returns NaN for any mathematical operations on NaN and therefore large data arrays with NaN can be processed easily. 139

16 io ir * i . . L n.i i • i .u.ii l . 1 l . . 1 l s . LiL.-ltJ. t L . 1 L llU I Raw Data

2 io15 R = 1.00, v = 4.52c-007 +/- 31.6 %, A = 3.19e+OIl +/-30.4%,C= 1.00e+012+/- 11.5% 2 ; R = 1.00, a = 7.4

14 io J* ^S. >? : I-131X z 2 ]. X 1-133 io13 •s --^ M32 • io12 1-135 s 1-134 ~

io11 _ r r,.rrr.p r . r . r r„pf r -rr-'rr- • rrr--rrF r r- r r r r z. 1C io'6 io"5 io4 io"3 10" X [s'l

Figure 4-13 Example of a good fit with R2 > 0.95, coefficients within expected ranges (Table 3-1), and coefficient errors < 100 %.

4.4 Variable Sensitivity for Rlyz Analysis

In this section, a single virtual case is generated, and then appropriate uncertainties applied to the activity and reactor parameters in an effort to determine critical parameters and the impact of parameter uncertainties on fit coefficients. The virtual case is chosen where tramp uranium has a minimal impact on the gases but a larger impact on the iodines, such that the impact of tramp uranium contribution can also be examined (see Figure 4-14). This type of analysis also tests COLDD's ability to reject poor fits as illustrated by Figure 4-12. 140

X iodine Data bdine: R/y =v/(v+A)A/VA+C

bdine: R/y =aA°+C

Gas: R/y=aA°+C i Gas: R/y =v/(v+A)-A/VA+C r

Figure 4-14 Exact data for virtual case used for error analysis

The actual data of the virtual case is calculated using equation (4-2) for the data defined in Table 4-3. The actual data assume all parameters are known perfectly, the transit time is properly applied, and there is no uncertainty in the activity measurement.

C'eqn = —r.—— I ——r + muNAxlj((p) Actual Data (4-2) Mc A*\v + A VI

Table 4-3: Parameters used to define the actual data for the virtual case Parameter Value Parameter Value 7 2££10o.7iog10E-7.5 =l.3664xl0- s-' vWc lxio'V V/ E 5 mm2 Bu 100 MWh.kg'

lX IXeff,I 90% eff.g 5% 1 € OS" Mc 244000 kg 1 P 40 kW.rn ttr 0s

Butr 250 MWh.kg ' mu 0.1 g 14 1 <*> lxl0 n.cm.V Bv lOkg.s" 1 X 1 defect x\){Bulr) S.OSxlO^mol.cmlkgU- 13 1 Ff 1.489xl0 fission.s'.m.kW 141

When Reqlyc is measured and reported for analysis, there is a possibility for uncertainties in various parameters as follows

P'plX'e Reported + 4 3 yc(Bu') A yc(Bu') M' Data ( " ) where the ' refers to a value that will be varied in the error simulation with the uncertainty described in Table 4-4. Uncertainties are based on typical measurement capabilities. As

{fi'plX'eff,g) and (P'pIX'effj) appear together, they can therefore be varied as one parameter. As e « fipIXeff, it can be neglected from the error simulation. Furthermore, uncertainties in ((f)), ip, and mu do not impact the fit coefficient C, only the subsequent calculations, and are therefore not varied in the sensitivity analysis. Table 4-4: Uncertainties applied for error simulation Parameter Uncertainty Range Parameter Uncertainty Range K ±5% C ± 10 % u eq Bu' ± 100 MWh.kgU-1 P'plX'eff,g 0-10% t'tr ± 5 minutes P'plX'eff.1 80-100%

If C'eq is temporarily excluded, then to scan the remaining 4 variables (the two IX efficiencies can be combined19) in Table 4-4 separately, and split each range into 24 requires 244 = 331776 cases, which can be performed in ~ 1 hour by a desktop computer. 14 19 To include C'eq would add another 14 parameters, and therefore require 24 = 2><10 cases, which would take ~ 7 billion years to complete ; therefore a Monte-Carlo sampling approach was used for C'eq, and brute force used for the reactor parameters. A similar approach is used for experimental uncertainties when testing codes with the ZED- 2 reactor at Chalk River Labs [85]. For each of the 331776 cases, each nuclide was randomly varied by -10 to +10 % to simulate counting uncertainties. Once the 331776 cases were analyzed by COLDD's fitting routine, the correlation coefficient between each parameter with the fit coefficient and its error was computed, as shown in Table 4-5 and Table 4-6.

19 lX'eff g and IX'effj can be varied as one in the analysis as each has no effect on the other species type. 20 1/331776 hr.case1 x(2xl019) cases x l/24day.hr-' x 1/365 year.day"1 =6.88x109 years 142

Table 4-5: Table values are correlation coefficients between fit coefficients and possible error factors for noble gases. Shaded values indicate a high correlation Fit P'p'X'g Bu' M' 133Xe 133mXe 135Xe 85mKr 88Kr 87Kr 135mXe 138Xe 89Kr Coef. t'tr c A 0.95 0.15 -0.18 0.03 0.09 0.07 0.01 -0.01 -0.01 -0.02 -0.01 0.00 0.01

+ OA 0.90 0.07 -0.06 0.04 0.09 0.07 0.01 0.00 -0.01 -0.01 -0.01 0.00 0.01

V -0.82 -0.29 0.34 0.03 -0.08 -0.06 0.01 0.04 0.04 0.05 0.01 0.01 -0.03 > + 0.02 > av -0.71 -0.35 0.41 -0.06 -0.07 0.01 0.03 0.04 0.06 0.01 0.00 -0.03 II C 0.05 0.98 -0.06 0.07 0.01 0.00 -0.01 -0.02 -0.02 0.00 0.07 0.06 0.03

<*c 0.09 0.96 -0.05 0.07 0.02 0.00 -0.01 -0.02 -0.02 0.00 0.07 0.07 0.02

b -0.83 -0.37 0.09 0.04 -0.13 0.03 0.00 0.01 0.02 0.04 0.03 0.03 -0.04 + Ob -0.63 -0.69 0.04 0.03 -0.07 0.00 -0.04 0.00 0.02 0.07 0.05 0.05 -0.07

II C 0.37 0.87 0.07 0.02 0.07 -0.05 -0.01 -0.01 -0.01 -0.02 0.02 0.02 0.05 "- ^s °c 0.24 0.89 -0.10 0.04 0.02 0.03 -0.04 -0.03 -0.02 0.00 0.04 0.05 0.03 Table 4-6: Table values are correlation coefficients between fit coefficients and possible error factors for iodines. Shaded values indicate a high correlation

U1 m I35J 132j I34 Fit Coef. P'pIX'i t'tr Bu' Mc I l I

A 0.11 0.09 -0.28 0.00 0.43 -0.34 -0.19 -0.06 0.21

+ °A 0.11 0.08 -0.25 0.00 0.38 -0.30 -0.17 -0.05 0.18 1_ V 0.00 -0.13 0.30 0.00 -0.54 0.54 0.30 0.01 -0.26 > + av 0.00 -0.11 0.24 0.00 -0.44 0.46 0.25 0.02 -0.22

II C 0.21 0.52 -0.18 0.44 -0.07 -0.16 0.39 0.55 0.53

Oc 0.17 0.47 -0.23 0.38 0.06 -0.27 0.25 0.47 0.51

b 0.02 -0.18 0.24 -0.01 -0.54 0.50 0.37 -0.05 -0.27

+ Ob 0.04 -0.11 0.16 -0.02 -0.20 0.16 0.31 -0.05 -0.15

ll C 0.16 0.52 -0.27 0.41 0.09 -0.22 0.04 0.37 0.52 « £ <*c 0.08 0.28 -0.09 0.22 0.09 -0.22 0.15 0.19 0.28 144

In Table 4-5 and Table 4-6, correlation coefficients < -0.3 or > 0.3 indicate strong linear correlations between the parameter (columns) and fit coefficient (rows). It is apparent that some reactor parameters are crucial to obtaining valuable results. In particular,

PpIXeff, assuming minimal tramp is crucial for an accurate estimate of A (defect power and number), b (defect size) and v (also defect size), and the transit time is key for accurate C fits for tramp analysis. However, as described in section 4.1, both these parameters can be measured and monitored on a regular basis; failure to do so will result in false defected fuel diagnosis. The uncertainty in Bu has a larger correlation with uncertainty than expected for A and v (minimal correlation for b based fits); this uncertainty is minimised by assuming Bu = 62 MWh.kgU"1 by default; the center of the yc(Bu) range (see section 3.2).

In the case of a relatively larger tramp contribution for the iodines relative to the defect contribution, the error in the spectrometer measurements starts to dominate. Optimised counting times (section 4.1.6), and gamma spectrometer design (section 4.1.1) will improve this uncertainty. The secondary dependence on the transit time can be minimised through regular transit time checks, and the coolant mass is well known, thus reducing possible bias for incorrect Mc values.

Figure 4-15 is an example illustrating the strong positive correlation (0.95) between the fit coefficient A and BplXeff, with a secondary dependence on the transit time (0.15). Plots of other fit coefficients versus reactor parameters are similar, with the variation proportional to the correlation coefficient from Table 4-5 or Table 4-6 In this case between A and BPlXeff, a -5 % to + 5 % variation in the assumed BPlXeff value creates a

2 -60% to + 100 % error in fit coefficient A. Recall that A = 3FfX^P D'(P~), and therefore this bias propagates into power or defect number calculations, but unfortunately still allows a viable fit result, and therefore COLDD would return the incorrect value to the user. 145

Figure 4-15 Graphical representation showing positive correlation between fit coefficient A (from successful fits that met all requirements), PpIXeffjg and transit time

The results of this section indicate that (SplXeff is a critical parameter, and therefore the 1 purification flow rate /?p [kg.s" ] and IX efficiency ^e//,5/i [%] must be known with high accuracy and precision (± 2 %). As shown in Figure 4-15, errors in these values can result in acceptable fits and analysis that will return false information to the user. The same applies to the transit time ttr [s] if the user wishes to accurately monitor tramp uranium levels, and trends in tramp uranium levels. Further improvements can only be made by increasing the performance of the gamma spectrometer system through optimised transit times, proper detector choice, variable counting times, and improved analysis software/techniques. If these reactor parameters (/?p, IXeff, ttr) are not well known and routinely monitored, and poor gamma spectrometry measurements are performed, then precise defect diagnostics are not possible.

147

Chapter 5 Benchmarking and Validation

This chapter examines four test cases using COLDD to provide confidence in its ability. This benchmarking does not meet stringent code qualification requirements, as that is beyond the scope of this work. Stringent QA verification, validation and qualification could be performed in the future if COLDD (or a similar type code) is ever to be used as a qualified defected fuel code in the CANDU industry. It should be noted that throughout Chapter 3, each technique was individually verified and validated successfully against experimental and/or commercial reactor data; this section benchmarks all the techniques at the same time against the same set of data. As COLDD is time dependent, the consistency of the data across the time period is also examined.

The first test case in section 5.1 is a virtual test case generated using STAR. The purpose of this test case is to check that the mathematical implementation is correct in COLDD for the mechanistic-based techniques (a process known as code verification), compare the performance of the more empirical-based techniques against the mechanistic analysis, and provide a sample case for checking new installations of the code. The next section (5.2) specifically examines the mechanistic Rlyc techniques by comparison against Visual_DETECT using commercial reactor data. Section 5.3 illustrates an example of experimental experience from the NRX defected fuel programme analyzed by COLDD. The final section demonstrates application of COLDD to actual commercial reactor data. 148

5.1 Virtual Test Case

This 'virtual' test case is a hypothetical defect and power history input in to STAR [11] and a COMSOL-based version of STAR to construct the corresponding activity concentration profile. STAR has been successfully verified against numerical solutions [11], and a basic validation was performed against NRX and commercial data [11], [30]; this is considered sufficient for initial verification of COLDD. The STAR constructed activity concentration profiles are then used to achieve three goals:

• Provide a verification case for COLDD to ensure that all features are properly implemented. • Provide a direct comparison of the mechanistic model of STAR against the new and existing defected fuel techniques, and provide a comparison between the mechanistic and empirical based approaches. • Provide a sample case to check each installation is correct by comparing every analysis against the results in Table 5-1; any discrepancies would indicate an error during installation.

Figure 5-1 illustrates the defected fuel parameters that were implemented in STAR to generate the activity results. The test case is split into three distinct phases; tramp uranium only (no defect), high power phase (55 kW.m"1), and low power phase (44 kW.m"1). The reactor parameters (fuel and tramp buraup, purification flow and efficiency, neutron flux...) are identical to those presented earlier in Table 4-3 for the sensitivity analysis. Figure 5-2 presents the activity profile for three isotopes; all possible isotopes were generated using STAR, except 125Sb that was calculated using equation (3-40). 149

60 1E-03

50 -ttgr power phase 1E-04 jl 40 Tramp •: Low power phase 3 < *E ST 30 £ > 1E-05 £ •Power I 20 Tramp & 123Sb Mass [g] nu (Noble Gas) 1E-06 I 10 • nu (Iodine)

1E-07 , ! r 25 50 75 100 125 150 Tim* [days]

Figure 5-1: Power [kW.m1], tramp mass [g], 123Sb mass [g] and escape rate coefficients [s_-~ i ] for the virtual test case run by STAR 5E+7

•Xe-133 5E+6 Xe-138 • 1-131 •Sb-125 2. 5E+5 I f 5E+4 •v

5E+3 I 0 25 50 75 100 125 150 Tim* [days]

Figure 5-2 Example activities for the virtual test case calculated by STAR [11]

The reactor data and activity data are stored in "STARVirtual-FP.xlsx" and "STARVirtual- RD.xlsx", and then called by selecting the "STAR Virtuar case in COLDD. The naming convention and structure of these case files are described in the User Manual (Appendix H). Once the data was loaded into COLDD, each technique described in Chapter 3 was tested using the COLDD built-in menus. The results of this analysis are presented in Table 5-1. 150

Table 5-1: Summary of validation against virtual test case Result (Activity and Section Technique Actual Value Comments Release Rate) During tramp only all the isotopes meet Rly = 4.1.4 Transit Time c Constant During initial verification this technique immediately spotted an issue caused by Comparing R/y to Check Gases above iodines, data follows correct 4.2.3 c human error in the STAR input files. Data behaviour throughout The correct analysis below that relies on 3.1 Calculating the Release NA NA the release rate and/or the Rly fit confirm Rate and R/y Analysis c 3.2 c that these algorithms are correctly coded. 0.2 ±0.1 mm2(n = l) Relatively large contribution from tramp in the iodines results in a large error in fit Defect Size Using R/y 0.5±0.3mm2(« = 0.5) 3.3.1 c 5 mm coefficient A for the iodines, and Analysis 2 0.5 ±0.3 mm (n from subsequently a large error and bias in the vNc) size estimate. Gases are not sensitive enough as Defect Size Using R/y 1 - 200 mm2 (Gas) moderate/small defects have the same b 3.3.2 c 5 mm2 Analysis and b ~1 mm2 (Iodine) (see Table 3-2), but iodines provide a more reasonable estimate.

2 133 m Weak order of magnitude estimate that -6-8 mm ( Xe/ I) should only be used if only two isotopes Defect Size Using 2 133 133 -20 mm ( Xe/ I) are available. The prime choice of 3.3.4 Release Rate or Activity 5 mm2 2 133m 88 l33Xe/13lI is confirmed to be the best Ratios ~l-200mm ( Xe/ Kr) ~10-200mm2(l31I/133I) option; convenient as these two isotopes are typically available. 151

Result (Activity and Section Technique Actual Value Comments Release Rate) This technique appears to over-estimate Defect Size Using l33Xe Medium/large defect and the defect size from the Xe/I ratios, as the 3.3.5 Release Rate and Xe/I 5 mm2 tramp uranium present previous technique was more accurate Ratios using the same data. Mass of Activation Equation (3-40) was used to generate 3.11 Corrosion Product (ACP) 5g 5g data to confirm correct coding of this Targets technique. High Low Power Power Phase Phase 55 kW.m"1 during The iodines are limited by the impact of high power phase Defect Element Power 55 ±1 44 ±1 tramp uranium contributions, which are 3.4.1 1 1 and 44 kW.m"1 Using R/y Analysis kW.m" kW.m- more apparent during the lower power c during low power (Gas) (Gas) phase at the end of the cycle. 64 ±2 No phase kW.m"1 solution (Iodine) (Iodine) 55 kW.m"' during high power phase The tramp uranium contribution and Defect Element Power 3.4.2 54 kW.m"1 43 kW.m"1 and 44 kW.m'1 assumption that v « A causes the slight Using 133Xe Release Rate during low power error. phase Defect Element Power Technique assumes no tramp contribution 54 ±3 43 ±2 55 kW.m"1 & 3.4.4 Using Reactor Power which is enough to introduce a small bias kW.m"1 kW.m"1 44 kW.m"1 Change error. 152

Result (Activity and Section Technique Actual Value Comments Release Rate) 3.2e6 Bq.kg'1 at STAR uses a time dependant transient 3.5 5.9e6 Bq.kg1 at 12.0 hrs Iodine Spike Prediction 12.0 hrs escape rate coefficient as per [11] Number of Defects from 1.3 (high power phase), 3.7.1 1 Good order of magnitude estimate Iodine Release 0.5 (low power phase) 101-24at20kW.nl"1 First value is from the high power period, 7-2at40kW.ni-1 second value from the low power period. Number of Defects from Implementation correct as values are 3.7.2 0.5-0.1at60kW.m"' 1 1 1 R/yc Analysis 1 correct at 55 kW.m" and 44 kW.m" 1 - 0.2 at 55 kW.m' respectively. Other results illustrate 4 - 1 at 44 kW.nf1 sensitivity to power. The tramp uranium contribution is enough to distort the results. Curiously, during the initial period of no defect, this 200 MWh/kgU (high technique correctly calculates the tramp power), 220 MWh/kgU Defect Burnup by burnup of 250 MWh.kgU"1 (defect (low power). Defect burnup = 1 3.8.2 Optimizing the R/yc{Bu) 89 1 burnup is 100 MWh.kgU , tramp burnup 115 MWh/kgU if Kr, 100 MWh.kgU 1 Fit 138 135m is 250 MWh.kgU ). A cautionary Xeand Xe warning is displayed to the user before removed analysis commences. If the short half-life isotopes are removed, then the result is more accurate. 153

Result (Activity and Section Technique Actual Value Comments Release Rate) 112 days (large 112 days (large defect) at defect) at 55 kW.m"1 The plot and numbers returned correctly Secondary Sheath 55 kW.m1 and 249 days 3.9 and 249 days (large), match the secondary hydriding threshold Hydriding (large), 48 days (small) at 48 days (small) at 44 curves. 44 kW.m"1 kW.m"1 The smoothing algorithms broadened the initial FP release peak, causing COLDD to assume the defect started at 28.83 Finding Instances of Tramp only from 3.5 - Tramp only from 0 - 3.10.1 days. These values are extracted from 30 days Defect-Free Operation 28.83 days COLDD by calling the "Tramp Burnup" algorithm which plots the tramp periods for the user. 4.5 g (high power), 4.4 g (low power) [gases] The defect causes minor deviation from 5.1 g (high and low the actual value. When tramp Using Iodines and Noble power) [iodines] contributions are relatively larger (as per 3.10.2 235 5g Gases to Measure U 5 g (no defect), 5.3 g the iodines in the virtual defect case) then (high power), 5 g (low l34I appears most steady throughout as a power) [138Xe] tramp uranium marker. 5g(alltimes)[134I] 235 MWh.kgU"1 Results are consistent regardless of (including transient time isotopes chosen (any two or more). Using Heavy and Light Tramp burnup = 3.10.5 at start). 250 MWh.kgU"1 Choosing short lived isotopes during the FP ratios to Determine 250 MWh.kgU"1 Tramp Burnup (steady state before transient stage minimizes error as defect release initiated) expected. 154

In Table 5-1, the results from each technique are presented, and a short discussion provided to discuss differences and similarities with the actual values. The correct calculated results provide confidence in the correct coding and calculations within the myriad of interconnected code modules that define COLDD, and confirm correct implementation. Consistency was also observed as a function of time. Slight discrepancies are the result of approximations and/or artifacts from data processing. Table 5-1 illustrates that the new techniques and empirical methods developed in Chapter 3, and the empirical 'rules-of-thumb' are consistent with the theory presented in Chapter 2 and the STAR model. After successful benchmarking of COLDD against the STAR code, the validation of the code against VisualDETECT (section 5.2 using commercial data), known experimental data (section 5.3), and then commercial data (section 5.4) are considered.

5.2 VisuaLDETECT Test Case

In this section, the default test case built in to VisualDETECT is examined by COLDD to provide a direct comparison of the shared techniques. The nuclide data is shown in Table 5-2, and the reactor data shown in Figure 3-30; the data is entered into COLDD by assuming a few days of steady-state operation at the given values. The raw data is from a commercial reactor [54], and the comparison against the COLDD analysis is shown in Table 5-3. Table 5-2: Iodine concentrations for Visual DETECT test case

Isotope Concentration [fi.Ci.kg~1] 131 j 4.96 132y 3.78 133T 5.01 134y 6.03 135T 3.92 155

Tabie 5-3: Summary of validation against VisualDETECT [35] Result (Activity and VisualDETECT Section Technique Comments Release Rate) Result 4.1.4 Transit Time Insufficient data Not applicable Comparing R/y to Data follows correct 4.2.3 c Not applicable Check Data trends Element burnup must be set to 0 MWh/kgU in Calculating the lMlR/B= 13.8% the 3.1 COLDD. "Default Element Burnup" in Release Rate and remaining isotopes are 13,I/?/fi=13.9% VisualDETECT only impacts tramp mass 3.2 R/y Analysis assumed correct c calculation. Defect Size Using 3.5mm2(« = l) Slight variation in v from the different fitting 3.3.1 2 2.55 mm R/yc Analysis and v 9.5 mm (n = 0.5) routines (also slight variations in nuclear data). Defect Size Using 3.3.2 1-10 mm2 Not applicable BJyc Analysis and b Iodines from the grab samples do a reasonable job 3.3.4 Defect Size Using 2 131 133 of describing the defect size from all three l-10mm ( I/ I) techniques. Release Rate or 2 l31 135 Not applicable Activity Ratios l-10mm ( I/ I) Defect Size Using 3.3.5 l33Xe Release Rate Insufficient data Not applicable Actual results not known and Xe/I Ratios Mass of Activation 3.11 Corrosion Product Insufficient Data Not applicable (ACP) Targets 156

Result (Activity and Visual DETECT Section Technique Comments Release Rate) Result Defect Element 1 3.4.1 Power Using R/yc 62 +/- 2 kW.m" Not applicable Actual results not known Analysis Defect Element 3.4.2 Power Using 133Xe Insufficient data Not applicable Release Rate Defect Element 3.4.4 Power Using Reactor Insufficient data Not applicable Power Change

Iodine Spike 1.4e7Bq.kg"' at Slight differences in fit coefficients produce 3.5 1.08e7Bq.kg"'at5.1 hrs Prediction 5.0 hrs slightly different values

Number of Defects 3.7.1 5.3 Not applicable from Iodine Release Codes use different empirical diffusion coefficient definitions. COLDD is modular; changing D'iP) Number of Defects 3.7.2 2.8 at 54 kW.m'1 2 at 54 kW.m"1 to the NRX based (section 2.3.3.1) format results from R/y Analysis c in COLDD returning 2.0 defects at 54 kW.m"1 to perfectly match VisualDETECT. Defect Burnup by 3.8.2 Optimizing the Inconclusive Not applicable R/yc(Bu) Fit Secondary Sheath 3.9 Hydriding 118daysat54kW.m"' Not applicable 157

Result (Activity and Visual DETECT Section Technique Comments Release Rate) Result Finding Instances of 3.10.1 Defect-Free Operation Insufficient data Not applicable Using Iodines and 3.1 g using Rlyc analysis Slight differences in fit coefficients produce 3.10.2 Noble Gases to l34 3.26 g Measure 235U 2.7 g using I slightly different values Using Heavy and Light 3.10.5 FP ratios to Determine Insufficient data Not applicable Tramp Burnup 158

From Table 5-3, COLDD and VisualDETECT are in general agreement for the shared techniques, as expected. Slight variations are present due to varying nuclear data constants, and the implementation of different models for the empirical diffusion coefficient (Visual_DETECT uses D'NRX(P) from section 2.3.3.1, and COLDD uses the newly developed D'CANDU(P) from section 2.3.3.3). The table is also a good example of the enhanced and new techniques available in COLDD, as well as the deployment of the VisualDETECT algorithms in time space.

5.3 NRX Test Case

The NRX reactor was a heavy-water moderated, light water cooled research reactor operated in Canada at Chalk River Labs from 1947 - 1993. The reactor contained a test reactor loop (X-2) that was used to conduct several defected fuel experiments during the period 1975 - 1983; a summary of some key experiments is discussed by Lewis et. al [57]. A schematic of the loop is shown in Figure 5-3, and the loop conditions (including a comparison against the Virtual Reactor test case and Commercial test case) are provided in Table 5-4.

The NRX Test Case is the experiment designated FFO-109 that included the re-irradiation of a defected element that contained secondary hydriding due to a porous end-cap that was the primary defect root cause [57]. The element was power-cycled from 23 - 38 kW/m"1 as shown in Figure 5-4 as part of a study to examine the feasibility of load- following in a CANDU reactor with defected fuel in-core. This experiment was chosen as the conditions are comparable to a CANDU reactor, and the transient behaviour from load-following represents a challenging signal to process for data smoothing and release rate calculations. The isotopes available for analysis are shown in Table 5-5, 133Xe and 13 LI activity concentration profiles are included in Figure 5-4, and the results of the analysis (including brief discussions) are presented in Table 5-6. 159

Figure 5-3 Schematic of the X-2 facility [57]

Table 5-4: Comparison of X-2 (FFO-109) and commercial power reactor conditions Virtual and Parameter X-2 Loop for FFO-109 Commercial Test Case Coolant volume -150 kg - 244,000 kg Coolant temperature - 260 °C - 300 °C Coolant pressure -lOMPa Channel flow rate - 1.1 kg.s"1 - 20 kg.s"1 Re-circulation time - 105 s ~30s IX flowrate Not used - 10 kg.s"1 Transit time ~97s Unavailable Coolant pH - 10 (LiOH control) Element length 485 mm 477 mm 160

Table 5-4 Continued: Comparison of X-2 (FFO-109) and commercial power reactor conditions Virtual and Parameter X-2 Loop for FFO-109 Commercial Test Case Element diameter 13.1 mm U enrichment in total U 5 wt. % (SEU) 0.7 wt. % (NU) Fuel orientation Vertical Horizontal

1E+10 40

30 \ rrrUU 20 « >Xe-133

1-131 10 | Power

10 15 20 25 Time [days]

Figure 5-4 Power history and two example isotope activity concentrations from the FFO-109 experiment [86]

Table 5-5: Isotopes available for analysis of the FFO-109 experiment Noble Gases Iodines 133Xe, 133mXe, 135Xe, 85mKr, 88Kr, 87Kr, l38Xe ,31I, 133I, ,35I, 134I 161

Table 5-6: Summary of validation against Exp-FFO-109 [86] Result (Activity and Section Technique Actual Value Comments Release Rate) There was no "tramp only" situation, however, the 4.1.4 Transit Time No solution Correct l38Xe was above 134I as expected for defect only behaviour. Comparing R/y to Gases above iodines, data follows correct 4.2.3 c Check Data behaviour throughout

3.1 Calculating the The correct analysis below that relies on the release Release Rate, and NA NA rate and/or the Rly fit confirms that these algorithms 3.2 c R/yc Analysis are correctly coded. Defect Size Using The actual final total defect size is unknown. The element had a 3.3.1 10-100 mm2 (noisy) R/yc Analysis and v known um-scale endcap porosity that led to several cracked hydride blisters before this irradiation commenced. Final PIE revealed 7 Defect Size Using 10-300 mm2 (Gas) 3.3.2 2 cracked hydride blisters ranging in size from 1 to 5 mm in diameter R/yc Analysis and b 10-200 mm (Iodine) [86]; there may have been many more cracks not identified. The 2 133 131 large range in sizes from the techniques may be consistent with 3.3.4 Defect Size Using 5-200mm ( Xe/ I) 2 133 88 cracks opening and closing as the element was power cycled. The Release Rate or 10-300 mm ( Xe/ Kr) power cycling also introduces significant noise due to exaggerated Activity Ratios l-10mm2(131I/133I) transient releases. Defect Size Using Depending on the time chosen, the results vary widely and cover all 3.3.5 133Xe Release Rate Inconclusive possible outcomes. This technique is not suited to transient and Xe/I Ratios conditions. Mass of Activation 3.11 Corrosion Product NA NA No ACP data available (ACP) Targets 162

Result (Activity and Section Technique Actual Value Comments Release Rate)

Defect Element 1 33 ± 2 kW.nf (Gas) Iodine results were very sporadic due to high levels 3.4.1 Power Using R/y Power cycling c of noise in the data. Analysis Inconclusive (Iodine) from 23 - 38 kW.m'1 Defect Element Power cycling (average = 3.4.2 Power Using 133Xe 1 23 - 38 kW.m"1 30.5 kW.m ) Release Rate Defect Element Power cycling As expected as this example was used in Chapter 3 3.4.4 Power Using Reactor 23 - 38 kW.m"1 as one of the cases to develop this technique. Power Change Iodine Spike Noise in iodine data from power fluctuations prevented a good fit 3.5 Inconclusive Prediction with both valid v and A fitting coefficients to perform this analysis. Number of Defects 3.7.1 0 - 1 defect Correctly predicts one defect. from Iodine Release 0.4(40kW.m"',Gas) 1 defect Number of Defects 1.5 (30.5 kW.m1, Gas) 3.7.2 1 from R/yc Analysis 0.2 (40 kW.m" , Iodine) 0.4 (30.5 kW.m"1, Iodine) Defect Burnup by 140 The fuel is enriched and therefore this technique 3.8.2 Optimizing the Does not apply MWh.kgU"1 does not apply. R/yc{Bu) Fit 163

Result (Activity and Section Technique Actual Value Comments Release Rate) 23 kW.m"1 = 96 days (small defect) Secondary Sheath No As predicted by the hydriding thresholds, no 3.9 1 Hydriding 38 kW.m- = 57 days deterioration additional secondary hydriding occurred. (small defect), 423 days (large defect) Finding Instances of Before the long lived isotopes have time to establish 3.10.1 Defect-Free Day 0 to 1.4 0 steady-state release (or high release) the data will Operation appear as tramp uranium only.

0.2 ± 0.2 g [gases] Assumed 0 g Using Iodines and 0.1 ±0.1 g iodines] due to It's reasonable to assume a small amount of tramp 3.10.2 Noble Gases to 138 filtration uranium would deposit in-core and in-flux. Measure 235U 0.5±0.2g[ Xe] 0.2±0.1g [134I] systems COLDD correctly calculates that the "tramp only" Using Heavy and condition may only appear at the cycle start before Light FP ratios to isotopes accumulate; however no solution is found 3.10.5 No solution Unknown Determine Tramp as the tramp contribution is too small and probably Burnup slightly enriched uranium for which this technique does not apply. 164

The results presented in Table 5-6 show reasonable agreement between the code calculations and the actual experimental values. The analysis indicates a single low power element with large uranium exposure, which is consistent with the experimental conditions. The different defected fuel techniques provide a consistent picture, although the large power variations with power-cycling every 24 hour period created similar variations in some of the techniques. This is perhaps the best example of the power of the release rate calculation methodology to provide faster results than relying on activity alone. As for the virtual test case in section 5.1, the defect size is the least well calculated parameter with the COLDD programme, although the remaining techniques consistently suggest 1 defect being power cycled. It should be noted that many of the mechanistic- based approaches were developed using X-2 data, and therefore validation against X-2 data is circular in some cases and should be treated with caution.

5.4 Commercial Reactor Test Case

The final example validation case involves actual commercial reactor data that have been re-processed to extract as many isotopes as possible [19]. Unlike the virtual test case (section 5.1) that contained no uncertainty and all isotopes, or the NRX test case (section 5.3) that contained some noise and several isotopes, the commercial case contains the fewest isotopes (Table 5-7) and most noise, making it the most challenging to analyze and the most typical theatre of operations. This difficulty is because the NRX data are from a highly-controlled experiment that had specific emphasis on high quality FP data, whereas the commercial data are from routine operations that although fully meets the requirements of FP monitoring at a CANDU station in Canada, cannot compare to a detailed in-reactor experiment. The commercial reactor is also a much larger system with significantly more systems that will inevitably increase noise and uncertainty in the data. 165

Table 5-7 lists the nuclides available, and Figure 5-5 shows the reactor power (as a percentage of full power), and the activity concentration of Xe and I as examples. The defect region (i.e., when a failure was present) was used to analyse the defect characteristics, and the tramp region used for the tramp uranium analysis techniques (i.e., when no failures were present). The results of the validation exercise are listed in Table 5-8, including comments and discussions for the relative techniques.

Table 5-7: Isotopes available for analysis of the commercial reactor data

Noble Gases Iodines ACP

,33Xe, 135Xe, 85mKr, 88Kr, 87Kr, 138Xe 131I, l33I, 134I "Mo, 125Sb

Figure 5-5 Bruce Power Unit 5 data from [19] 166

Table 5-8: Summary of validation against the Commercial Reactor test case Result (Activity and Section Technique Actual Value Comments Release Rate) During tramp only, 138Xe and ' 4I have same R/y Correct transit 4.1.4 Transit Time c indicating correct transit time time During tramp only, 85mKr 85mKr and 133I were removed for the subsequent Comparing R/y to was significantly low, 4.2.3 c analysis (by clicking "Click to Remove Nuclides" in Check Data and 133I highly suspect the COLDD GUI). from extreme noise.

3.1 Calculating the The correct analysis below that relies on the release Release Rate, and NA NA rate and/or the Rly fit confirm that these algorithms 3.2 c R/yc Analysis are correctly coded. 167

Result (Activity and Section Technique Actual Value Comments Release Rate) No solution as only two Defect Size Using 3.3.1 iodines were available R/y Analysis and v c for analysis Small fretted hole next to the upstream outboard bearing pad of Defect Size Using 2 3.3.2 10-200 mm (Gas) element #11, two hydride areas at downstream end with a small R/yc Analysis and b longitudinal crack and with a fully separated circumferential endcap Defect Size Using ~ 50 mm2 (133Xe/13II) crack. The downstream inboard bearing pad also had a fretted mark 3.3.4 Release Rate or 10-200 mm2 (l33Xe/88Kr) and chatter wear. There is an abnormal mark (maybe light fretting) Activity Ratios around the downstream outboard bearing pad of element # 14 [63] Defect Size Using Medium to large defect 3.3.5 l33Xe Release Rate with tramp uranium and Xe/I Ratios present Mass of Activation 3.11 Corrosion Product ~27gof123Sb Unknown (AC?) Targets Defect Element Both results show an initial power of ~ 40 kW/m that 1 1 3.4.1 Power Using R/yc 40 - 48 kW.rn (Gas) 38 kW.m" subsequently increased with time. As the release rate Analysis should already be at equilibrium, this increasing release must be a result of element degradation or Defect Element increased FP release with fuel oxidation. As the 3.4.2 Power Using 133Xe ~40-48kW.ni-1 38 kW.m"1 defect size is steady according to the defect size Release Rate analysis, it is apparent that the power must be closer to 40 kW/m. 168

Result (Activity and Section Technique Actual Value Comments Release Rate) Defect Element 3.4.4 Power Using Reactor NA NA Power Change Insufficient iodines to Several iodine spikes were observed, but the iodine 3.5 Iodine Spike Prediction perform the analysis. data was too noisy for a reliable fit. Number of Defects 3.7.1 ~ 1 from Iodine Release 1 Number of Defects 1 increasing to 3 at As described for the defect power estimate, this 3.7.2 1 from R/yc Analysis 40 kW.m' would suggest 1 defect with increasing FP release. Defect Burnup by -80 3.8.2 Optimizing the No solution As expected, no solution possible. MWh.kgU"1 R/yc(Bu) Fit Two hydride areas at downstream end with a small longitudinal crack Secondary Sheath 54 days (small defect), and with a fully separated circumferential endcap crack. Fuel was 3.9 Hydriding 352 days (large defect) irradiated ~ 94 days in the defected state; secondary hydriding feasible from an initial small defect. Finding Instances of Algorithm correctly 3.10.1 Defect-Free selects what appears to Operation be defect free operation 3 ± 1 g (Gases) Using Iodines and 2.8 ± 0.2 g(138Xe during Consistency provides confidence in the 3.10.2 Noble Gases to tramp only) Unknown 235 measurements. Measure U 2.5 ±lg(134Iduring tramp only) 169

Result (Activity and Section Technique Actual Value Comments Release Rate) Using Heavy and Light FP ratios to High burnup suggests long residence time of tramp 3.10.5 385 MWh.kgLT' Unknown Determine Tramp uranium in flux. Burnup 170

The results from Table 5-8 show the challenges of diagnosing a defect with limited and noisy data. In this instance, through the defect period, all defect size techniques suggest a defect of constant stable size throughout the period (for example see Figure 5-6). Conversely, the defect power techniques all suggest a constantly increasing power following the initial defect, without a corresponding increase in reactor power (see Figure 5-7).

If the increasing FP release was from a deteriorating defect, then there should be a relatively larger release of short-lived FP to long-lived FP, causing the defect size techniques to suggest an increasing defect size. However, this doesn't occur, suggesting perhaps that fuel oxidation is causing a relatively uniform increase of FP across the half- life range, creating bias in the power calculations. The defect resides for ~ 100 days at power, providing sufficient time for fuel oxidation. Therefore, the initial release rate calculations and predictions provide the most reliable results. Ideally, more isotopes would be available to provide more precise and accurate results.

Figure 5-6 Steady defect size output from COLDD using "6" from the noble gases 171

50

45 1 £*^ F mmmmm Release Rate 40 y^ ™—-ActvityData ^ 35

% 30 o Q. 25

20 7 t 15 r r r r r r r 10 20 30 40 50 60 70 80 90 100 Time [days]

Figure 5-7 Increasing power from COLDD based on 133X, e release rate

The general picture from Table 5-8 is of a single defect at reasonable power (> 40 kW.m*1), with tramp uranium and ACP calculations producing sensible consistent numbers. This analysis is consistent with the post-irradiation visual examination of the fuel described in Table 5-8. Interestingly, the secondary hydriding defect thresholds successfully predict the presence of hydriding damage on the element from an initial small defect; the primary root cause is not known. Furthermore, the ability to investigate defect parameters as a function of time with COLDD is a strong advantage for defect diagnostics.

173

Chapter 6 Discussion

This chapter discusses why the MATLAB® environment and language was chosen for programming COLDD (section 6.1), how COLDD was optimised to ensure quick calculations (section 6.2), and how a real-time installation could be performed (section 6.3). A discussion of empirical-based and mechanistic-based defected fuel diagnostic techniques is presented (section 6.4), and finally the strengths and weaknesses of COLDD are examined (section 6.5).

6.1 Programming Language Choice

As COLDD required the development, linking, and testing of many algorithms, and the creation of a Graphical User Interface (GUI), it was important to select an appropriate programming language. Choosing a first generation (machine language) or second generation (assembly language) language would be highly inefficient, but a third generation (FORTRAN, Java, COBOL, C, C++ ...) or fourth generation (MATLAB®, Lab VIEW, SQL, Mathematica ...) language could meet the requirements. A fourth generation language (MATLAB®) was chosen as it is specifically designed to speed up application building, create applications that are easy to build and modify, simplify/automate debugging, and employ user friendly language [87] - all of which are specific requirements for development of COLDD.

MATLAB® (Matrix Laboratory) is a "high-level technical computing language and interactive environment for algorithm development, data visualization, data analysis, and numeric computation" [88]. MATLAB® also includes several toolboxes that contain built-in functions for calculations such as Fourier analysis, data acquisition (directly compatible with Excel spreadsheets), curve fitting (Levenberg-Marquardt fitting routine), interpolation (including splines), and many more. 174

The MATLAB built-in functions allowed rapid development of the new defected fuel diagnostics, as traditional calculations are already hard-wired and did not require re­ writing. For example, the Levenberg-Marquardt fit for the Rlyc analysis in MATLAB® is performed by the command nlinfit(xdata, ydata, fitting function, startpoint), whereas Visual_DETECT required several lines of code for the same algorithm that are difficult to read and understand for a user not familiar with the language. Furthermore, MATLAB® does not require variable initialization or memory allocation/removal, and uses instantly recognizable text for mathematical functions (i.e., ab is aAb in MATLAB® versus pow(a,b) in C++). This means that the COLDD source code is easy to read by users not familiar with the MATLAB® language. The complete source code is included in Appendix F.

6.1.1 GUI Development

Another key feature for choosing the MATLAB® environment is the built-in GUI development tool Guide. This tool allows, without the programmer writing or editing any specific GUI commands, seamless integration between the GUI and the source code. The programmer can modify the GUI (add buttons, plots, text,...) directly in the GUI environment, and then MATLAB® can automatically update the source code. The programmer must then code in plain language how the code responds when options in the GUI are selected, and is never required to do any coding relating to GUI displays and functions.

6.1.2 Commercial Product Limitations

Limitations with MATLAB arise from the product development cycle that may result in new code versions being incompatible with certain features of older versions. This means that COLDD requires annual maintenance to update to the latest version of MATLAB®. Furthermore, MATLAB® is a commercial software programme, and therefore its use at the stations would require the purchase of a commercial license (as opposed to the academic license used for research and development), which adds to the operating cost of the system. 175

STAR and VisualDETECT were specifically built in C++ to avoid the requirement of commercial software for any user to execute the code. However, one advantage that MATLAB® has is the MATLAB® Compiler can generate an executable version of COLDD for execution on any windows, linux, or MAC based computer running a modern operating system. In order to run the executable, the user must be provided with the MATLAB® Compiler Runtime (MCR) and the COLDD executable, but one is not required to purchase MATLAB®. The current version of COLDD also requires the user to have Microsoft Excel 2007 (or better) installed for handling of the xlsx files, and a modern version of the free Microsoft .NET Framework.

A user would only need to procure MATLAB® if it was required to modify the source code. It is recognised though that both Visual_DETECT and STAR can also be provided as an executable, where again the user would require the C++ development programme software should modification be required to the source code.

6.1.3 Code Layout and Modifications

As a high-level language, MATLAB allows a modular code design where each function can be stored as a separate file and readily called. This allows algorithms to be written and stored in separate files to produce a more streamlined code, and allow rapid changes and updates. For example, Figure 6-1 is the entire "Dp.m" file that is used to compute the empirical diffusion coefficient. Any formulae in any algorithm in COLDD that writes Dp(/>) where P is the element power (it can be a single value or a vector of values) will return the empirical diffusion coefficient. Therefore, any updates to D'(P) can be readily implemented into COLDD by changing one line of one file.

functiori [D]=Dp(P) % Takes in P [kW/m] and re turns the empirical diffu sion % coefficient D'(P)

D«9e-12* 10^(0.114. *P). /P. A2 ,*(P>-7 .6)+l 5e-•13 .•P.* (P<7. 6);

Figure 6-1 Entire empirical diffusion coefficient file uDp.mn from equation (2-18) and (2-19) 176

The modular file system and layout of COLDD also allows rapid deployment of new experimental techniques. This was key during COLDD development as new techniques could be quickly tested and developed without significant effort. This ability is also useful in the future, as COLDD provides a stable platform for testing, developing, and validating new techniques. For example, to test the ability of COLDD to calculate the STAR input, only the 6 lines of code in Figure 6-2, plus the addition of the string "Plot STAR input values" to the list of analysis choices was required.

if strcmp(Analy,'Plot STAR input values')

% Calculate the oxidation enhancement factor Dp^lAA./(3*Ff*X*P)) .A2; zeta=Dp./exp(-30.856311-0.039332*P+2. 05696e-3 + p''2)1

% Write the data to a t sxt tile dlmwrite('STARINPUT.LxL \ [t./3600/24 nuA zeta ])

Figure 6-2 Minor code addition to RyAnalysis to produce STAR input values

In Figure 6-2, strcmp is 'string compare' that compares the analysis type the user has chosen to perform against "Plot STAR input values"; if the two match then the subsequent lines of code are executed. AA is a vector of fit coefficients AA = 3FfXyjP2D'(P) over the time period / that is rearranged to solve for Dp = D'(P), zeta is the oxidation enhancement factor from (2-16) that is used by STAR for D'(P), and nuA is a vector of v the escape rate coefficient over the same time period. The "dlmwrite" command is used to write the results to "STARINPUT.txt" in column format: time [days], escape rate coefficient [s1], oxidation enhancement factor. When the code in Figure 6-2 was first executed, MATLAB® returned a warning that "Dp" appears as both a variable (Figure 6-2) and function (Figure 6-1) and terminated the code, therefore Dp in Figure 6-2 was replaced with a different definition before execution. The results of this analysis using the FFO-102 case are plotted in Figure 6-3. 177

1E-02 10000

5 1E-03 1000 *

1E-04 100

1E-05 10

1E-06

•STAR Input nu —•— COLDD calculated nu STAR Input zeta —•— COLDD calculated zeta

Figure 6-3 Comparison of COLDD calculated STAR input values to actual STAR input values from [11] based on experiment FFO-102

From Figure 6-3 the COLDD calculated values are consistent with the values previously used in STAR for the STAR validation exercises [11]. During the STAR validation, the £(t) and v(t) values were determined by trial and error; COLDD could greatly improve the time and effort required to build a STAR model. To complete installation of this technique into COLDD would require determining the optimum output plots/form for implementation into STAR and requisite error checking; ideally the routine could be designed to directly output the requisite STAR input text file "input_data_lPDE.txt" [11].

6.2 Programme Optimization

During the development of COLDD, several methods were employed to ensure that all analysis techniques were performed in a timely manner. The design intent was that any technique performed over ~ 200 days of data should be completed in under a minute; 680 days of data from [19] sampled every 4 hours (~ 4000 data points) can be loaded in seconds, and the R/yc fitting routine applied to every instance in ~ 30 seconds. 178

The code was optimised using the MATLAB in-built Profiler tool which tracks the time spent in each function. Figure 6-4 is an example Profiler output for an Rlyc analysis; the majority of the time is spent in the optimised in-built function nlinfit, and not in the custom codes and algorithms. This was achieved through several means:

• Replacement of loglO(x) by log(x)/log( 10) significantly increased the speed of log\o based calculations. • Large variables of known size are pre-loaded before being used. • The same variable name is carried through functions to minimise the number of variables. • Matrix manipulations are used when possible to avoid loop statements; MATLAB® is optimised for matrix manipulations. • Care was taken to avoid repeat calculations (e.g., equation (3-12)).

^MvJ^H| 1 File Edit Otbug Desktop Window Hdp •m + + ai^ M Start Profiling Run this code » 9 Profik time 91 sec

Profile Summary Generated 05-Sep-2011 13 01 52 using cpu time § Function Name Calls Total Time Self Time* Total Time Plot (dark band = self lime)

nhnfiOLMfit 4118 15 030 s 7 768 s ^m nlinfit>getjacobian 60419 6680s 5845 s m 1 statset 12354 7 837 s 5 323 s

TRFit 4120 32 030 s 3 603 s

| TRFrt>fun 279997 1 564 s 1 564 s •

statset>checkDaram 41180 2 029 s 1215 s i

strmatch 32951 1 110 s 1 110 s i

uitools\pnvate\uiwaitbar 2543 1916 s 1091 s i

I nlinfit 4118 24 526 s 1076 s •^ • dlmwnte 1 1086s 1048 s 1

Figure 6-4 Example Profiler output from R/yc analysis. Self time* is the time spent in a function excluding the time spent in its children functions. 179

Another custom time saving feature built-in to COLDD is to save R/yc fitting results to avoid repeating the same fit analysis on identical data. The fit results are saved to a text file with a name using the format (case name)(RyBu or SizebBu)(burnup)(DC)(IX efficiency)(species)(no)(missing-species); for example "FFO-109-2RyBu62IX0gasnoXe- 135.txt" is the saved analysis from FFO-109-2 for a gas analysis with l35Xe excluded, an element burnup of 62 MWh.kgU"1, an DC efficiency of 0 % for the gases, and Ry indicates the fit is against equation (3-9). The text file contains the fit results as a function of time, and COLDD will add missing data (i.e., new data from an online system) to the existing file, and read the results from the file for any analysis with the same settings.

6.3 Direct Connection to Real-Time Data

Although COLDD offers a "Real-Time Spectra" option for the data source, this is a place holder for future work. As online gamma spectrometry and grab sample analysis work on a relatively slow time scale (samples every 15 minutes is the fastest, and typically every 1 - 5 hours), high-end fast data acquisition (kHZ to MHz) techniques are not required. As each station has its own data acquisition and data storing system, each COLDD real­ time installation would require a unique installation. Perhaps the simplest generic system would be a subroutine that checks for the addition of new data, and then processes that data into COLDD as soon as it is available. Another option would be to integrate the spectral analysis into COLDD; this option is not advised as tools designed and developed for this purpose could be far more effective than a custom built algorithm (see section 4.1.3). Either option would be readily compatible with COLDD's built-in algorithm that writes and reads analysis data to files to prevent re-analysing historical data. A similar approach could be implemented for the required input reactor data (i.e., reactor power and purification flow rate).

6.4 Empirical and Mechanistic Techniques

There are two types of approaches to analysing defected fuel data, labelled in this thesis as empirical and mechanistic. The empirical techniques are more experience-based 180

techniques, and the mechanistic techniques are based more on fitting theoretical models to the data. None of the techniques are purely one method or the other, but tend to be based more on experience or underlying theoretical understanding.

Examples of empirical techniques are such as using "6" to infer defect size (section 3.3.2), or a known average I release rate per defect to estimate defect number (section 3.7.1). These types of techniques are engineered solutions to a known problem that use previous experience to analyse new data. The methods are not purely empirical, but are also supported by a sound understanding of defected fuel theory.

The main mechanistic techniques are those that rely on the Rlyc fitting routine to fit the theoretical diffusion release model to the isotopic data. This type of technique is based on an understanding of the underlying phenomena in order to model the behaviour. The successful comparison of the model against actual data is used to provide confidence in the theory.

It is impossible to state whether the empirical or mechanistic (or a combination of the two) approach is superior. An advantage of the empirical techniques is the ability to work with fewer isotopes, while the mechanistic techniques require several isotopes to provide a valid and confident output. In contrast, when many isotopes are available, the mechanistic results can provide more information including confidence levels and error estimates.

COLDD represents the first Canadian tool to bring these two approaches together to allow the user to have all CANDU techniques available. As shown in Chapter 5, the empirical and mechanistic models are in agreement and provide a self-consistent picture of the defect state. The intent with COLDD is that with a complete dataset, or limited dataset, the general picture can be gleaned by examining the data with all available methods. 181

6.6 Strengths and Weaknesses

COLDD is ideally suited to studying single defect cases with sufficient data for a complete analysis; this type of situation can be analysed in detail and confidence. However, as the number of defects increases, and the available number of isotopes decreases, the confidence in the COLDD output is reduced, and it may not be clear if one or several defects are present. The largest challenge is separating the average defect power (P) from the number of defects (X) as these two variables appear together in the diffusional release model in the form A = 3FfX^JP2D'(P). In this instance, the analyst must carefully consider the output from all the COLDD techniques, along with any other pertinent information, and deduce the possible outcomes. In this manner, COLDD serves as a tool providing important information to the analyst, and ultimately the reactor operator, to determine the best method to proceed.

During the development of COLDD (and STAR and VisualDETECT), there has never been any commercial reactor data available that includes all possible isotopes. The codes have been validated successfully against detailed experimental data, and successfully against partial commercial reactor data, but never against detailed commercial reactor data. It would be interesting to investigate the anticipated improved performance from the addition of many more isotopes to the commercial data. This would also allow a more detailed investigation of possible differences between the small scale vertical NRX tests and the large scale horizontal situations which result when a defect occurs in a commercial reactor.

COLDD is the first Canadian code (and possibly first International Code) to have implemented error checking algorithms that can be used to properly screen the data. As shown in section 4.2 these techniques can be used to spot slight errors and discrepancies in nuclide concentrations and transit times. GFP and grab sample analysis is not a simple task, and slight errors can lead to data that appears correct, but may have a subtle discrepancy that could lead to erroneous defected fuel analysis. The output from COLDD is only as reliable as the quality and correctness of the input data.

183

Chapter 7 Conclusions

Although relatively rare in modern CANDU plants, fuel defects have always been an important operating concern for CANDU fuel operation and behaviour, and play a critical role in health (e.g., impact on PHTS radiation fields), safety (e.g., stringent limits on coolant activity) and economics (e.g., defects can cause lost revenue) of an operating reactor. The main goal of this work was to develop a successful on-line tool for defect diagnostics in order to minimise the impact of defected fuel to reactor operations.

Effective on-line defected fuel diagnostics have been achieved through the development of new techniques, a new empirical diffusion coefficient, new algorithms, and refinement of existing techniques. The various techniques were combined into COLDD and shown to be self-consistent when tested against theoretical data, experimental data and commercial experience, with reasonable agreement in all cases. A basic GUI and User's Manual were created to allow users to test and deploy COLDD and its algorithms with commercial reactor data (see Appendix H "User Guide"). COLDD is also a suitable foundation for advanced users to develop new defected fuel techniques.

COLDD has been developed for GFP and grab sample data analysis, and could be readily adapted to an online application. The code is written in MATLAB® but can be compiled into an executable that can be deployed on any Windows, Mac, or Linux computers running a modern operating system with the requisite hardware and software. The current version of COLDD is highly stable and has been demonstrated to be effective. It is a new powerful tool in the arsenal of a reactor operator faced with defected fuel in core.

185

Chapter 8 Recommendations

The ability of COLDD (or any other defected fuel tool) to perform reliable calculations is heavily dependent on the quality of the input data. There are several key options for improving input data that could be used to improve defected fuel diagnostics:

• Implementation of advanced spectral analysis codes (section 4.1.3)

• Implementation of gamma spectrometer counting period algorithms to enable capture of transient events (section 4.1.6)

• Installation of high-end coaxial detectors with high efficiency, high resolution, and large energy ranges (section 4.1.1)

• Implementation of routine and robust data checking (section 4.2)

The improved measurement capabilities would also enable more detailed studies of other FP. For example different isotopic families (i.e., l25Sb, 126Sb, 127Sb, 128Sb, 130Sb) could be examined with an Rlyc type analysis to study tramp uranium, actinides, defected fuel, and corrosion products. If daughter products in the uranium decay chains could be detected then direct measurements of circulating tramp uranium could also be performed.

The methods for examining tramp uranium discussed in section 3.10 are reliant on gamma ray activities of key nuclides. It would be interesting to perform isotopic analysis of grab samples to measure uranium and isotopes. Similarly, other chemical analysis techniques could be used to measure uranium, plutonium and concentrations in the coolant. This information could be used to determine the mass and enrichment of circulating tramp uranium levels. Detailed comparisons of the isotopic measurements coupled with GFP and grab sample measurements could be used to investigate tramp uranium transport, and the behaviour of circulating versus deposited tramp uranium. The goal of this research would be to develop an understanding of tramp uranium transport to assist in future maintenance or refurbishment activities. 186

There are some minor inconsistencies in the field of defected fuel that may warrant further investigation. One abnormality is the behaviour of , which has been shown to be washed out in high power (67 kW.m'1) defect experiments, but not low power defect experiments (23 kW.m"1) [16]. In contrast, thermodynamic analysis predicts that tellurium should remain in a solid state with the fuel matrix, and never be washed out [11]. The exact behaviour of tellurium is mainly important if 132I is to be properly modelled; however, if the other iodines are available (131I, l33I, 134I, and 135I) then there is sufficient information to perform the analysis without I. Nevertheless, any future defected fuel experiments should specifically examine Te release behaviour from defected elements.

Some CANDU plants (e.g., Darlington) employ a two loop PHTS system, whereby each half of the PHTS circulates independently. However, the two loops are combined through the IX system, which although removes ~ 100 % of the iodines, is not designed to remove noble gases. Therefore, the noble gases communicate between the loops, but the iodines in theory cannot cross-contaminate between the loops. For defected fuel analysis, care must be taken to ensure the appropriate coolant mass is assigned to the analysis of each species. Care must also be taken to prove that cross-contamination is not occurring, as this will introduce uncertainties into the results. Studies of single loop versus dual loop systems for FP transport (specifically iodines and noble gases) and cross-loop contamination would improve defected fuel diagnostics of dual loop systems.

Another aspect that may warrant further investigation is the behaviour of iodine in the PHTS as the temperature is cooled (discussed in detail in section 4.1.8). Experimental and commercial experience has shown evidence of iodine deposition as the coolant temperature has dropped, which could create a bias in iodine measurements from both GFP and grab sample systems. Deposition of iodine in the sampling lines would appear as an unaccounted loss term in the effective decay constant, and would tend to have a relatively larger impact on the longer-lived isotopes. 187

There are several additions to COLDD that could be considered in future versions. The current version is reliant on Excel 2007+ being installed for reading xlsx files; the code could be reconfigured to read txt or Open Office files instead. The STAR module discussed briefly in section 6.1.3 could be developed to provide seamless integration with STAR, and provide enhancements to the STAR user interface. For example, the current version of STAR requires the user to manually input the decay constant and cumulative yield for each isotope separately; a MATLAB® script could be written to automate STAR execution and allow batch execution for selected isotopes, including calculating cumulative yields based on input burnups. The STAR code employs an oxidation enhancement factor on the empirical diffusion coefficient, but it is not clear if an enhancement factor is required for the new empricial diffusion coefficient developed in this work. Further accurate data are required from commercial or experimental experience to refine the new D \P), and should be examined during proposed new tests in the NRU reactor, or with future commercial experience.

Further COLDD modules could be developed for fitting iodine decays after shutdown (with or without iodine spikes) in order to produce IX efficiency values for the user. Another advancement could be developed based on the sensitivity analysis (section 4.4) to determine when the tramp uranium contribution is relatively sufficient compared to the defect contribution to introduce uncertainty in the results. There is also minor work required to update the w (specific fissile content [g.kgU1]) calculations (equations (2-6) and (2-7)) to include all fuel designs, and for application to higher burnups. The secondary hydriding thresholds built into COLDD are based on older data; new instances of primary or secondary hydriding should be collected and used to refine these thresholds. In the future, if CANDU reactors begin to implement advanced fuel cycles (NUE, RU, Thoria, DUPIC, Parallax...) then COLDD should be developed to analyse the new fuels. Advanced fuel cycle work could include the ability to determine the defected fuel type in a heterogeneous core. 188

As discussed in section 6.3, the next step in the development of COLDD would include the direct connection to real-time data (spectrometry and reactor data). The ideal test case is a defected fuel experiment in NRU that would allow real-time analysis of a known defect in a controlled environment. A defected fuel experiment would provide an excellent opportunity to validate the system models and test its capability for on-line monitoring. Following a successful demonstration with the NRU reactor, installation and commissioning at a commercial NGS would provide the final benchmark under realistic operating conditions.

The current version of COLDD focuses on the development of the algorithms for existing and new defected fuel techniques. While the current version is suitably considered a Beta version for testing purposes, the GUI requires input from Human Performance specialists and feedback from Reactor Analysts after using COLDD for real defected fuel analysis. This type of incremental work can begin immediately; connection to real-time data and/or a defected fuel experiment represent longer term improvements. With appropriate feedback and development of the user interface, and validation against real-time experimental and commercial data, COLDD could become an exemplary defected fuel code. References

[1] Canadian Nuclear Association, "Nuclear Handbook 2009," 2009. [2] World Association of Nuclear Operators (WANO), "2008 Performance Indicators," 2008. [3] J Whitlock. Canadian Nuclear FAQ. [Online], http://www.nuclearfaq.ca/ [4] Canadian Nuclear Society. (2011, March) Where is my Electricity Coming From at this Hour? (if I live in Ontario). [Online], http://media.cns- snc.ca/ontarioelectricity/ontarioelectricitv.html [5] M B Chadwick, P Oblozinsky, M Herman, N M Greene, R D McKnight, D L Smith, P G Young, R E MacFarlane, G M Hale, S C Frankle, A C Kahler, T Kawano, R C Little, D G Madland, P Moller, R D Mosteller, P R Page, P Talou, H Trellue, M C White, and W B Wilson, "ENDF/B-VII.O: Next Generation Evaluated Nuclear Data Library for Nuclear Science and Technology," Nuclear Data Sheets, vol. 107, no. 12, pp. 2931-3060, December 2006. [6] AECL News Release, CANDU Reactor in China First to Directly Use Recovered Uranium Fuel, March 2010, (available through www.aecl.ca). [7] S J Livingstone and B J Lewis, "On-Line Defected Fuel Monitoring Using GFP Data," in 10th CNS International Conference on CANDU Fuel, Ottawa, ON, October 2008. [8] R D Page, "Canadian Power Reactor Fuel," AECL-5609, March 1976. [9] A M Manzer, "Review of Fuel Failures in Water Cooled Reactors," IAEA Technical Reports, Series 388, August 1998. [10] E Suk, "Workshop on Experience Exchange on CANDU Fuel Defect Investigation and Fuel Performance," in IAEA Workshop, China, November 2006, pp. EBP-ASIA-264. [11] A El-Jaby, "A Model for Predicting Coolant Activity," RMC, PhD Thesis March 2009. [12] S J Livingstone, B J Lewis, E Suk, and S Yatabe, "State-Of-The-Art-Report On Defected Fuel," COG Report COG-08-2075, 2008. [13] NEA (Nuclear Energy Agency). (2008) Java-based Nuclear Data Display Program (JANIS), v3.0. Program. [14] M S Milgram and K N Sly, "Tables of the Isotopic Composition of Transuranium Elements Produced in Canadian D20 Moderated Reactors," AECL, AECL-5904, 1977. 190

[15] B J Lewis, R J Green, and C W T Che, "A Prototype Expert System for the Monitoring of Defected Nuclear Fuel Elements in Canada Deuterium Uranium Reactors," Nuclear Technology, vol. 98, pp. 307-321, June 1992. [16] R L Da Silva, D R McCracken, and K J Monserrat, "Behaviour of Depositing Fission Products Released from Defective Fuel," American Ceramics Society, vol. 17, pp. 107-120, 1986.

[17] D R McCracken and M R Floyd, "Studies of Activity Transport and Fission Product Behaviour in Water-Cooled Nuclear Generating Stations and Consequences for Defective Fuel Removal," AECL, AECL-12065, 1986.

[18] B J Lewis, W T Thompson, F Akbari, C Morrison, and A Husain, "Thermodynamic Considerations and Prediction of the Primary Coolant Activity of 99Tc," Journal of Nuclear Materials, vol. 340, p. 69, 2005. [19] J D Swann, "Spectral Analysis of Coolant Activity from a Commercial Nuclear Generating Station," M.Sc Thesis, RMC, 2008.

[20] B J Lewis, "Fission Product Release from Nuclear Fuel by Recoil and Knockout," Journal of Nuclear Materials, vol. 148, pp. 28-42, 1987. [21] D R Olander, Fundamental Aspects of Fuel Elements.: Technical Information Centre, US Department of Energy, 1976.

[22] G Nilsson, "Ejection of uranium atoms from sintered U02 by fission fragments in different gases and at different gas pressures," Journal of Nuclear Materials, vol. II, no. 20, p. 215, 1966.

[23] K Shaheen, "A Mechanistic Fuel Performance Code for Intact and Defective Nuclear Fuel Element Behaviour," Royal Military College of Canada, PhD Thesis 2011. [24] D Morgan, "A Thermomechanical Model of CANDU Fuel," Royal Military College of Canada, Masters Thesis 2007. [25] D Cubicciotti, "The diffusion of Xenon from Uranium Carbide-Impregnated Graphite at High Temperatures," NAA-SR-194, 13 October 1952.

[26] A H Booth, "A Method of Calculating Fission Gas Diffusion from U02 Fuel and its Application to the X-2-f Loop Test," AECL, AECL No. 496, September 1967. 191

[27] A H Booth, "A Suggested Method for Calculating the Diffusion of Radioactive Rare Gas Fission Products From UO_2 Fuel Elements and a Discussion of Proposed In-Reactor Experiments That May be Used to Test its Validity," AECL, A.E.C.L. No. 700, September 1957.

[28] J A Turnbull, J R Friskney, F A Findlay, F A Johnson, and A J Walter, "The Diffusion Coefficients of Gaseous and Volatile Species During the Irradiation of Uranium Dioxide," Journal ofNuclear Materials, no. 107, p. 168, 1982.

[29] C E L Hunt, J J Lipsett, and IJ Hastings, "Short-Lived Fission Product Release from the

Surface and Centre of Operating U02 Fuel Under Oxidising Conditions," in ANS Topical Meeting on Fission Product Behaviour and Source Term Research, Snowbird, Utah, AECL- 8564, 1984 June 15-19. [30] A El-Jaby, B J Lewis, W T Thompson, F Iglesias, and M Ip, "A General Model for Predicting Coolant Activity Behaviour for Fuel-Failure Monitoring Analysis," Journal of Nuclear Materials, no. 399, pp. 87-100, 2010. [31] S J Livingstone, B J Lewis, M Ip, F Iglesias, and A Fitchett, "Progress in Developing an On- Line Fuel-Failure Monitoring Tool for CANDU Reactors," in J 1th International Conference on CANDU Fuel, Niagara Falls, ON, Canada, 2010.

[32] J J Lipsett, IJ Hastings, and C E Hunt, "Behaviour of Short-Lived Iodines in Operating U02 Fuel Elements," AECL, AECL-7721, 1984. [33] J D Higgs, "Modelling Oxidation Behaviour in Operating Defective Nuclear Reactor Fuel Elements," Royal Military College of Canada, Kingston, ON, PhD Thesis 2006 January. [34] J D Higgs, B J Lewis, W T Thompson, and Z He, "A Conceptual Model for the Fuel Oxidation of Defected Fuel," Journal of Nuclear Materials, vol. 99, p. 366,2007. [35] B J Lewis, A El-Jaby, J Higgs, W T Thompson, F C Iglesias, R Laidler, J Armstrong, R Stone, and R Oduntan, "A model for predicting coolant activity behaviour for fuel-failure monitoring analysis," Journal of Nuclear Materials, vol. 366, no. 1-2, pp. 37-51, 2007.

[36] Stephen D Beck, "The Diffusion of Radioactive Fission Products From Porous Fuel Elements," Battelle Memorial Institute, BMI-1433, 18 April 1960. [37] G V Kidson, "A Generalized Analysis of the Cumulative Diffusional Release of Fission

Product Gases from an "Equivalent Sphere" of U02," Journal of Nuclear Materials, vol. 88, pp. 299-309,1980. 192

[38] A Fick, "On Liquid Diffusion," Phil. Mag. and Jour. Sci, vol. 10, pp. 31-39, 1855. [39] B J Lewis, C R Phillips, and M F Notley, "A Model for the Release of Radioactive Krypton,

Xenon, and Iodine From Defective U02 Fuel Elements," Nuclear Technology, vol. 73, pp. 72- 83, 1986.

[40] R D MacDonald, M R Floyd, B J Lewis, A M Manzer, and P T Truant, "Detecting, Locating and Identifying Failed Fuel in Canadian Power Reactors," AECL, Chalk River, ON, Prepared for the IAEA Coordinated Research Program on the Examination and Documentation Methodology for Water Reactor Fuel (ED-WARF) AECL-9714, 1990.

[41] B J Lewis, "A Generalized Model for Fission-Product Transport in the Fuel-to-Sheath Gap of Defective Fuel Elements," Journal of Nuclear Materials, vol. 175, pp. 218-226, 1990. [42] R Beraha, G Beuken, G Frejaville, C Leuthrot, and Y Musante, "Fuel Survey in the Light Water Reactors Based on the Activity of the Fission Products," Nuclear Technology, vol. 49, pp. 426-434, August 1980.

[43] J J Lipsett and W B Stewart, "Failed Fuel Location in CANDU-PHW Reactors Using a Feeder Scanning Technique," The Institute of Electrical and Electronics Engineers (IEEE) Transactions on Nuclear Science, vol. NS-23, p. 1, February 1976.

[44] C Leuthrot, J B Genin, P Ridoux, and A Harrer, "SADDAM: An Online Computer Code to Assess in Operation Defective Fuel Characteristics and Primary Circuit Contamination," in Proceedings of the 1997 International Topical Meeting on LWR Fuel Performance, Portland, Oregon, USA, 1997, pp. 365-371. [45] D Parrat, J B Genin, Y Musante, C Petit, and A Harrer, "Failed Rod Diagnosis and Primary Circuit Contamination Level Determination Thanks to the Diademe Code," in Fuel failure in water reactors: Causes and Mitigation, Bratislava, Solvakia, 2003. [46] P Slavyagin, L Lusanova, and V Miglo, "Regulation of the Fission Product Activity in the Primary Coolant and Assessment of Defective Fuel Rod Characteritics in Steady-state WWER-type Reactor Operation," in IAEA International Technical Meeting on Fuel Failure in Water Reactors: Causes and Mitigation, Bratislava, Slovakia, 2002, pp. 326-337. [47] C E Beyer, "An Analytical Model for Estimating the Number and Size of Defected Fuel Rods in an Operating Reactor," in Proceedings of the ANS International Topical Meeting on L WR Fuel Performance, Avignon, France, 1991, p. 437. 193

[48] F N Fritsch and R E Carlson, "Monotone Piecewise Cubic Interpolation," SIAM Journal of Numerical Analysis, vol. 17, pp. 238-246, 1980. [49] D Kahaner, C Moler, and S Nash, Numerical Methods and Software.: Prentice Hall, 1988. [50] A Savitsky and M Golay, "Smoothing and Differentiation of Data by Simplified Least Squares Procedures," Analytical Chemistry, vol. 36, p. 1627, 1964. [51] J Steinier, T Yves, and J Deltour, "Comments on smoothing and differentiation of data by simplified least square procedure," Journal of Analytical Chemistry, vol. 44, no. 11, pp. 1906- 1909, 1972. [52] George B Arfken and Hans J. Weber, Mathematical Methods for Physicists, 5th ed.: Academic Press, 2001. [53] G F Seber and C J Wild, Nonlinear Regression. Hoboken, NJ: Wiley-Interscience, 2003. [54] B J Lewis, W T Thompson, J Higgs, F Akbari, M Kaye, A El-Jaby, J Serdula, F C Iglesias, and M R Floyd, "Model Development for Fuel-Failure Monitoring by GFP/Grab Sample Analysis," COG, COG Report COG-04-2042, 2005. [55] B Cheng, "CHIRON for Windows - User's Manual: "A Code for Analyzing Coolant and Offgas Activity in a Light Water Nuclear Reactor"," EPRI, Computer Manual CM-110056, 1998. [56] P R Bevington and D K Robinson, Data Reduction and Error Analysis for the Physical Sciences, 3rd ed.: McGraw-Hill, 2003. [57] B J Lewis, R D MacDonald, N V Ivanhoff, and F C Iglesias, "Fuel Performance and Fission Product Release Studies for Defected Fuel Elements," Nuclear Technology, vol. 103, pp. 220- 245, August 1993. [58] M R Floyd and J R Lamarre, "The Impact of Fission Products on Radiation Fields in Ontario Hydro CANDU Reactors," in 10th Annual Conference of Canadian Nuclear Society, Ottawa, Ontario, Canada, 1989. [59] B J Lewis, D B Duncan, and C R Phillips, "Release of Iodine from Defective Fuel Elements Following Reactor Shutdown," Nuclear Technology, vol. 77, pp. 303-312, June 1987. [60] B J Lewis, "An Overview of Defective Fuel Analysis in CANDU and Light Water Reactors," in 6th International Conference on CANDU Fuel, Niagara Falls, Ontario, Canada, 1999, pp. 403-427. 194

[61] C Leuthrot, A Brissaurd, and J P Missud, "Relationships Between the Characteristics of Cladding Defects and the Activity of the Primary Coolant Circuit and Aid for the Management of Leaking Fuel Assemblies in PWR," in Proceedings of the International Topical Meeting on LWR Fuel Performance, Avignon, France, 1991, p. 234.

[62] B J Lewis, "Fission Product Release to the Primary Coolant of a Reactor," in 6th Annual Conference of the Canadian Nuclear Society, Ottawa, Canada, June 1985, pp. 6.22-6.25.

[63] R Oduntan, "Fission Products Behaviour in the PHTS Following Fuel Failure Occurrence," Bruce Power, NK29-REP-37000 P NSAS, 2005.

[64] D H Locke, "The Behaviour of Defective Reactor Fuel," Nuclear Engineering and Design, vol. 21, pp. 318-330, 1972.

[65] A M Manzer, "Post Defect Deterioration of CANDU Fuel: What Have we Learned?," in 4th International Conference on CANDU Fuel, Pembroke, ON, Canada, October 1995. [66] A M Manzer, "Transport Mechanisms of Uranium Released to the Coolant from Fuel Defects," in 1st International Conference on CANDU Fuel, Chalk River, ON, Canada, 1986. [67] P J Mohr, B N Taylor, and D B Newell, "CODATA Recommended Values of the Fundamental Physical Constants: 2006," Reviews of Modern Physics, vol. 80, pp. 633-730, 2008. [68] E Browne, "Nuclear Data Sheets for A = 235,239," Nuclear Data Sheets, vol. 98, no. 3, pp. 665-800, March 2003. [69] V V Likhanskii, I A Evdokimov, A A Sorokin, A G Khromov, V D Kanukova, O V Apollonova, and A V Ugryumov , "WWER Expert System for Fuel Failure Analysis Using Data on Primary Coolant Activity," in Proceedings of the 2007 International LWR Fuel Performance Meeting, San Fransico, California, USA, 2007, p. 1067. [70] P Gauthier and D Guzonas, "Reducing Plant Radiation Fields by Source Term Reduction - Tracking Cobalt and Antimony to their Sources at Gentilly-2," in 7th International CANDU Maintenance Conference, Toronto, 2005.

[71] V Likhanskii, I Evdokimov, O Khoruzhii, A Sorokin, and V Novikov, "Modelling of fission product release from defective fuel rods under WWER operation conditions and in leakage tests during refueling," in Proceedings of the 2004 International Meeting on LWR Fuel Performance, Orlando, Florida, USA, 2004, p. 1083. 195

[72] V Likhanskii, I Evdokimov, A Sorokin, V Kanukova, A Khromov, and E Afanasieva, "Failed Fuel Diagnosis during WWER Reactor Operation using the RTOP-CA Code," in Proceedings of the 6th International Conference on WWER Fuel Performance "Modelling and Experimental Support", Albena, Bulgaria, 2005. [73] V V Likhanskii, IA Evdokimov, A A Sorokin, and V D Kanukova, "Applications of the RTOP-CA Code for Failed Fuel Diagnosis and Predictions of Activity Level in WWER Primary Circuit," in Proceedings of Top Fuel 2009, Paris, France, 2009, p. 2054.

[74] (2010, Janurary) Trans Ware Enterprises: Core Management. [Online]. http://www.transware.net/index.php/services/core-management [75] G F Knoll, Radiation Detection and Measurement, 3rd ed. USA: John Wiley & Sons Inc., 2000. [76] IAEA, "Specialized Software Utilities for Gamma Ray Spectrometry," IAEA, Vienna, Co­ ordinated Reseach Project 1996-2002 ISSN 1011-4289, 2002. [77] M Wasim, "GammaLab: A Suite of Programs for kO-NAA and Gamma-ray Spectrum Analysis," Journal of Radioanalytical , vol. 285, pp. 337-342, April 2010. [78] P A Arnio, J J Ala-Heikkila, and T T Hakulinen, "Performance of UniSampo-Shaman with gamma-ray spectra containing known traces of fission products," Journal of Radioanalytical and Nuclear Chemistry, vol. 276, no. 2, pp. 455-460, May 2008. [79] J K Tuli, G Reed, and B Singh, "Nuclear Data Sheets for 99Tc," Nuclear Data Sheets, vol. 93, no. l,pp. 1-32, May 2001. [80] J F Palmer, G M Allison, and J J Lipsett, "Fission Product Deposition in Water-Cooled Systems, Part III," CRNL, Eng. R-6,1966. [81] J F Palmer, G M Allison, and J J Lipsett, "Fission Product Deposition in Water-Cooled Systems, Part IV," CRNL, Eng. R-7,1967. [82] G M Allison, "Fission-Product Release into the Primary Coolant of the Gentilly and Pickering Reactors to the End of 1972," CRNL-990, 1973. [83] A S Seidu, "Materials Chemical Compatibility for the Fabrication of Small Inherently Safe Nuclear Reactors," Royal Military College of Canada, MASc Thesis 2005. [84] H T Park, A M Manzer, S J Palleck, and J W Love, "Fuel Defect Root Cause Investigation at Wolsong-1," in Proceedings of the 5 th International Conference on CANDU Fuel, Toronto, Canada, 1997, p. 219. 196

[85] F P Adams, "Physics Code Validation: Quantifying Bias and Uncertainty," in ZED-2 Experimental Reactor Physics Summer School, Chalk River Labs, 2011.

[86] R L Silva and N Macici, "The Irradiation Performance of a Naturally Defective CANDU U02 Fuel Element Power Cycled Between Linear Powers of 25-14 kW/m and 38-22 kW/m in the X-2 Loop of NRX," Chalk River Nuclear Laboratories, CRNL-2674, 1984.

[87] S R Schach, Object-Oriented and Classical Software Engineering, 7th ed.: WCB/McGraw- Hill, 2007.

[88] Math Works. (2011, September) Matlab Product Description. [Online]. http://www.mathworks.com/products/matlab/description 1 .html [89] T J Carter and A M Manzer, "An Overview of Defect Mechanisms in CANDU Fuel," in IAEA Technical Committee on Fuel Failure in Normal Operation of Water Reactors: Experience, Mechanisms, and Management., Dimitrovgrad, Russian Federation, 1992. [90] M R Floyd, R J Chenier, R R Elder, and D E Teed, "Examination of GE Canada Fuel Containing End Cap Porosities Discharged from Bruce NGS B in 1986 and 1987," CANDU Owner's Group, COG Report COG-90-67, 1990. [91] P Hyun-Taek, J Hwee-Soo, A M Manzer, S J Palleck, and J W Love, "Fuel Defect Root Cause Investigation at Wolsong-1," in 5th International CNS CANDU Fuel Conference, Toronto, ON, Canada, 1997. [92] C E Ells, ""Behaviour of Hydrogen in Alloys" in "The Physical Metallurgy of Zirconium Alloys"," AECL, CRNL-1208, 1974. [93] R Sejnoha, A M Manzer, and B A Surette, "Hydrogen in CANDU Fuel Elements," in 4th International Conference on CANDU Fuel, Chalk River, ON, Canada, 1995. [94] B Cox and J C Wood, "Iodine Induced Cracking of Zircaloy Fuel Cladding - A Review," AECL, AECL Report AECL-4936, 1974. [95] B Cox, "Pellet Clad Interaction (PCI) Failures of Zirconium Alloy Fuel Cladding - A Review," Journal of Nuclear Materials, vol. 172, pp. 249-292, 1990. [96] M R Floyd, "Extended-Burnup CANDU Fuel Performance," in 7th International Conference on CANDU Fuel, Kingston, ON, Canada, 2001. 197

[97] T J Carter, R J Chenier, J P Murphy, and D F Shields, "Documentation of Unusual,

Abnormal, or Inadequately Documented Observations from Examinations of U02 Fuel Irradiated Under Normal Operating Conditions (WP 2886)," CANDU Owner's Group COG- 90-36,1991. [98] National Nuclear Data Centre. Information extracted from the Chart of Nuclides database. [Online], http://www.nndc.bnl.gov/chart/

[99] A J Koning and D Rochman, "TENDL-2009: "TALYS-based Evaluated Nuclear Data Library"," Nuclear Research and Consultancy Group, Petten, The Netherlands, November 2009.

All reports referenced in this document are the property of the originating organisation, and release to third parties is at their sole discretion.

199

Appendix A Detailed Defect Root Causes Defect Defect Description Category Type In a typical CANDU reactor there are approximately 350,000 end closure welds (endcap to sheath welds) in the reactor core during normal operating conditions. An incomplete end-closure weld Incomplete provides a micron scale free path for FP escape. This defect type is present when the fuel is fresh and contains minimal FP's; thus initially causing minor FP release. The residence time before detectable end-closure FP's are released to the coolant varies dependent upon the defect size and fuel power. Due to the small weld nature of this primary defect, it allows a small ingress of D2O and creates ideal conditions for secondary deuteriding damage. Typically this defect is detected following secondary damage that results in measurable FP and tramp uranium release to the PHTS. u This type of defect stems from a porous ingot in the manufacture of the bar stock supplied to fuel Q Porous manufacturers for the production of endcaps [89], and results in microscale (10-100 urn) axial pores ea through the endcap. After insertion of the fuel bundle into a reactor, the high pressure of the PHTS endcap (10 MPa) forces a small amount of coolant into the fuel element. The pores are typically then sealed 1 material with Z1O2 during irradiation creating ideal conditions for secondary deuteriding. Improvements in •c ultra-sonic techniques for porosity detection have prevented further cases of this primary defect [90]. •a Occasionally a fuel element is manufactured with an internal hydrogen content that exceeds the to technical specification of ~ 1 mg, which can lead to a primary hydriding defect [91]. Hydriding is the uptake of hydrogen (or deuterium in the case of deuteriding) into a metal, and the subsequent formation Primary of metal hydride (deuteride) phases. In Zircaloy, metal hydrides (deuterides) of the form ZrH2 (ZrD2) hydriding are created, which generally exhibit a significantly reduced ductility compared to the original material [92], and can cause localised swelling leading to hydride blisters. Under certain conditions, the hydrogen absorption is excessive and causes hydride blisters and sheath degradation that results in a defect. Defect Defect Description Category Type

This type of defect occurred once in Bruce A Unit 3 (1983-1984), and was related to a combination of factors that contributed to fuel failure [93]: axial gap between the fuel pellets and the endcaps was low, Insufficient diametral clearance between the pellets at the element ends and the sheath was low due to the use of standard pellets at the stack ends, fuel density was high, and the presence of hydrides in the vicinity of volume a notch resulting from closure weld upset. These factors created an ideal environment for Stress Corrosion Cracking through Pellet-Clad Interaction (PCI), and subsequently led to fuel defects.

This is a rare and obsolete defect mechanism that is included for completeness. A brazing defect occurs through an unwanted mechanism during the brazing process, that causes braze alloy to penetrate into the sheath, or creates a crevice beneath a brazed on appendage. A crevice can also be formed by the

Endcap weld flash are small metal extrusions located in proximity to the weld. In rare cases, this flash Fretting from remains attached to the element end and can lead to through-wall fretting during in-reactor operation. endcap weld The flash may remain attached to the fuel element and vibrate violently in the coolant flow, or it may dislodge and become trapped in another bundle; either way creating an ideal situation for debris flash fretting. Defect Defect Description Category Type

The PHTS of a Nuclear Generating Station (NGS) is an extensive network of pipes, pumps, heaters, filters, etc. It is not uncommon for small amounts of solid debris to be present in the coolant and enter a fuel channel; despite every effort taken to remove all debris (filters and IX columns continually purify Debris the coolant). The bundles in the channel act as a filter due to their geometry, and occasionally trap fretting passing debris. The high mass flow rate (>20 kg.s"1) and complex fuel geometry result in a turbulent flow through the fuel channel, which may cause the debris to oscillate violently against the fuel sheath and potentially fret through the wall of the element.

Mechanical & damage Mechanical damage, although rare, may occur through abnormal handling of the fuel. This can occur from physical damage during fuel loading/unloading, excessive time in the cross-flow zone of the fuel from channel, fuelling machine malfunctions, loading too many bundles into a channel, and any other event a e abnormal that results in unexpected forces acting on the fuel bundle. 1 handling o Coolant This defect occurs when is transferred from the coolant to the fuel bundles. Pulsations in the coolant from pump impellers or other components may match a natural harmonic resonance induced frequency of the fuel bundles in the fuel channel. The fuel bundles then become actively driven acoustic harmonic oscillators, and vibrate sufficiently to cause damage from high-cycle, low amplitude fatigue. resonance This harmonic motion may cause fatigue and cracking in the endplates (including endplate failure), and/or excessive wear between adjacent spacer-pads. In the case of endplate failure, the subsequent endplate bundle disassembly can cause massive defects. Excessive wear on the spacer-pads can also be fracture sufficient to wear completely through the sheath, resulting in a defect. Defect Defect Description Category Type

Spacer-pad The spacer-pads are small Zircaloy-4 appendages attached to the fuel sheath to prevent element-element contact. During normal operating conditions, minor wear of the spacer-pads is to spacer- expected. However, in the case of acoustically active channels, and cross-flow induced vibrations, Defect s pad wear spacer-pad wear can lead to a fuel defect. Operationa l

Stress Corrosion Cracking (SCC) occurs in an environment with three critical conditions: sustained mechanical stress, susceptible metallurgical microstructure, and a corrosive environment [94]. All three of these components may be present in CANDU fuel: stress is supplied by pellet-clad interaction w Stress (PCI) and/or fission gas overpressure, microstructure susceptibility may increase due to the presence of "S hydrides/deuterides and radiation damage, and fission products (e.g., Iodine and Caesium) provide the Q Corrosion corrosive agents that facilitate SCC. "8 Cracking Stress corrosion cracks typically appear as thin jagged branching cracks, at a microscopic scale SCC (SCC) initiates as transgranular cracks, and propagates rapidly as intergranular cracks. SCC cracks vary in size 3 from micrometer scale lengths to the order of millimetres, which causes fission product release to a on change considerably dependent on each defect. Smaller pinhole SCC is capable of inducing secondary 8 hydriding effects, and can also enlarge resulting in significant UO2 loss to the coolant. Q 6 Pellet Clad PCI is the most common mechanism leading to SCC [95] (see above), and is most commonly caused by a period of sustained low power operation followed by a power ramp to a sustained high power. This Interaction causes increased fission product release from the fuel matrix, and pellet expansion (due to thermal (PCI) effects), which induces hoop stress in the sheath, which can ultimately lead to sheath failure. Defect Defect Description Category Type

During the manufacture of fuel elements, the heat from the brazing and welding processes create Heat Affected Zones (HAZ). HAZ occur when the cold-worked material is heated above ~1000°C, causing a Sheath phase change from the annealed Alpha phase into a Beta phase. After the welding or brazing process, the material cools and reforms a prior-beta alpha phase with a Widmanstatten microstructure. Unlike texture the cold-worked alpha material, the re-crystallised alpha phase has small, randomly oriented hydride platelets, and is more susceptible to SCC [19].

During fuel manufacture, the endcap welding process creates HAZ, AR, and transitional zones in the Circumfere­ vicinity of the endcap closure weld. The weld notch is an area of elevated stress, and therefore is susceptible to SCC. The elevated stress in the notch is coupled with a susceptible microstructure ntial endcap (boundary between the HAZ and AR material) and may lead to complete circumferential endcap weld cracks cracking from SCC [93]. Further susceptibility is caused in this area by the initial increased deuterium absorption in HAZ material compared to AR sheath.

At extended burnup (>500 MWh.kgU"1) the volume of fission gas inside the fuel element may become excessive, particularly when the fuel has operated at powers > 40 kW.m"1 [96]. As a result, the internal Fission gas gas pressure may significantly exceed the external coolant pressure. These extended burnup conditions overpressure can result in SCC failure, as the three critical components of SCC are present: stress is induced by the internal overpressure, the Zircaloy 4 sheath is embrittled due to burnup (radiation damage and coolant deuterium pickup), and the presence of significant quantities of corrosive FPs in the fuel to sheath gap. Defect Defect Description Category Type

Excess hydrogen in an as-fabricated appendage could cause excessive hydriding/deuteriding damage and result in the appendage breaking off and exposing uranium fuel in a defect. This type of defect has never been seen in commercial fuel, only in an NRU experiment. Corrosion of Beryllium braze alloy has been observed at extreme powers (60 - 70 kW.m"1) and burnups Past/obscure (> 500 MWh.kgU"1). The beryllium oxide can act as an indicator of elevated temperatures, but has defects (or never been a primary root cause for a defect. SB •** possible Manufacturing processes can cause external sheath oxidation to occur in preferential locations, w suggested resulting in oxidation patterns on the fuel element. This has never caused fuel failure in CANDU fuel. Q Longitudinal ridging refers to long large longitudinal ridges along the length of the fuel element. This defect 3 wa phenomena has never occurred in commercial fuel due to the high pellet density (> 10.5 Mg.m" ), but mechanisms) has occurred in low density experimental fuel. Low density fuel compacts under irradiation leading to 0 no longer sheath collapse (also possible if the diametral clearance between the fuel pellet and the sheath is too large) that results in ridging. This can result in excessive strain in the sheath and subsequent SCC experienced sheath failure. [97]. The thin Zircaloy-4 sheath is designed to collapse onto the fuel pellets in the high pressure of the fuel channel. If a pellet is chipped (or missing), the sheath will collapse into the void, creating excessive strain in the material. This type of sheath collapse has occurred in commercial and experimental fuel, but never led to a fuel defect. 205

Appendix B Fissile Content Calculations

Define the mass balance of 235U (U5), 239Pu (P9) and 238U (U8) considering removal by fission and neutron capture. >restart;eq[U5] :=diff (N[U5] (t) ,t)=- (sigf [U5]+sigc[U5])*phi*N[U5] (t) ;eq[P9] :=diff (N[P9] (t) ,t)=si gc[U8]*phi*N[U8] (t)- sigf[P9]*phi*N[P9](t);eq[U8]:=diff(N[U8](t),t)=- sigc[U8]*phi*N[U8](t);

& := N St C N t IP9 Jt P9^ = 8 n*U8 *T ulU8) y " S'Sfro'/> 9

e := N 1u8 Jt ulO = sigcU8^NJt)

Solve the above equations for the atom density number of 235U (N5) and 239U (N9) >sols:=dsolve({eq[U5],eq[P9],eq[U8],N[U5](0)=No[U5],N[U8](0) =No[U8] ,N[P9] (0)=0}, {N[U5] (t) ,N[U8] (t) ,N[P9] (t) }) : >N5:=rhs(sols[2]) ;N9:=rhs (sols[l]) ; s (-<(> (sigfU5 + 'SCy5) t) N5-Nouse

( si c No si 8 v8 u8 _ SCU8NoU8sigfp^ (-«gfP9+n i-*&u8*» si si No *'&,,„- 8fpo sigp'U8 m~sigf'P9p &„*U8 „**U8 N9:= sigc-sigfU8 f P9 sigc'Wl!K -sigff P9 Define the fissile content of 235U (w5) and 239U (w9): > w5:=N5/Na*A[235]/kgU;w9: = (N9/Na*A[239]/kgU); (-$(sigfU5+sigcU5)t) NoU5e A235 w5 := NakgU

(f si sigcm No... sigc,,.No,llt sigfe t (- 8fp9*l) U8 U8 *P9 (-*& *o siSc No...e U8 sigcnx-sigfpg'P9 sigc.-sigf.U8 'P9 nRU8 U8 239 sigcnfl-sigff sigc-sigff w9 'U8 P9 m P9 NakgU The fissile content for w5 and w9 are based on the form of the equation above.

207

Appendix C Nuclear Data

List of symbols used in header row of Table C-1 on the next page:

1 235y 235 A [s ] Nuclide decay constant sc,p Cumulative yield of the parent from U 235 239 239 235u Cumulative yield from U Pu Cumulative yield of the parent from Pu yc yc,p 239Pu Cumulative yield from 239Pu 1 Parent decay constant yc h [a" ] Cumulative yield at a burnup of 100 2 M100) 1 o [cm ] Daughter neutron capture cross section MWh.kglT c 1 14 Parent Parent of "Nuclide" ed [s- ] A + ac{) where () = 1><10 n.cmls"' Branching ratio of the decay of the parent H Pre-cursor correction factor f to the daughter Table C-1: Isotope half-lives [98], decay constants, cumulative fission yields [5], [99], and data and results for pre-cursor correction calculations [39]. Exact table read by COLDD in nukedata.xlsx Nuc­ 239^ H H 1 v235„ -.239^ ycdoo) 235,, v 1 2 x A [s ] Jc Jc Parent / Jc,p JC,p Apis ] ac [cm ] ed[s ] a5 lide ( u) ("»pU) 133Xe 1.53E-06 6.70% 7.02% 6.86% 133, 0.99 6.70% 6.97% 9.26E-06 1.49E-22 1.55E-06 1.12 1.12 133mXe 3.66E-06 0.19% 0.23% 0.21% 133, 0.01 6.70% 6.97% 9.26E-06 1.49E-22 3.68E-06 1.09 1.08 135Xe 2.11E-05 6.54% 7.61% 7.07% 135, 0.90 6.28% 6.54% 2.93E-05 6.36E-23 2.11E-05 1.34 1.30 SSmKr 4.30E-05 1.29% 0.56% 0.93% 85Br 0.96 1.28% 0.56% 1.73E-03 1.31E-24 4.30E-05 1.02 1.02 88Kr 6.78E-05 3.55% 1.27% 2.41% ^Br 1.00 1.78% 0.51% 1.85E-02 9.65E-25 6.78E-05 1.00 1.00 87Kr 1.51E-04 2.56% 0.99% 1.77% 87Br 1.00 2.03% 0.69% 5.41E-03 1.57E-24 1.51E-04 1.02 1.02 135mXe 7.56E-04 1.10% 1.71% 1.41% 135, 0.10 0.03% 0.11% 7.97E-09 6.36E-23 7.56E-04 1.93 2.97 138Xe 8.20E-04 6.30% 5.17% 5.73% 138. 0.95 1.49% 1.28% 4.83E-02 3.70E-25 8.20E-04 1.00 1.00 89Kr 3.67E-03 4.51% 1.45% 2.98% 89Br 0.86 1.09% 0.35% 6.84E-02 1.23E-24 3.67E-03 1.01 1.01 131. 1.00E-06 2.89% 3.86% 3.37% mTe 1.00 2.55% 2.98% 2.01E-04 3.08E-24 1.00E-06 1.00 1.00 133. 9.26E-06 6.70% 6.97% 6.83% 133Te 1.00 3.06% 2.91% 4.01E-04 3.66E-24 9.26E-06 1.01 1.01 13S. 2.93E-05 6.28% 6.54% 6.41% 13STe 1.00 3.34% 2.25% 1.58E-02 5.18E-25 2.93E-05 1.00 1.00 132. 8.39E-05 4.31% 5.39% 4.85% 132Te 1.00 4.29% 5.14% 1.09E-06 1.00E-23 8.39E-05 8.85 8.52 134. 2.20E-04 7.83% 7.41% 7.62% 134Te 1.00 6.97% 4.81% 1.20E-04 3.50E-24 2.20E-04 1.69 1.51 "Mo 2.92E-06 6.11% 6.21% 6.16% ------125Sb 7.97E-09 0.03% 0.11% 0.07% ------13S 135m 132 Xe and Xe are extremely sensitive to (0), H for l is very high - these nuclides are neglected in R/yc analysis. Table C-2: Gamma ray energies of key isotopes [98]

Type Nuclide Half-Life Main Gamma Energies [keV] (Intensity %)" 133Xe 5.2 81.00(38%) ,33m s Xe 2.19 d 100% IT: 233.22 (10 %) 135Xe 9.14 hrs 249.79 (90 %), 608.19 (3 %) 85m a Kr 4.48 hrs 21% IT: 304.87 (14 %), 79% P" 151.20 (75 %) 88Kr 2.84 hrs 196.30 (26 %), 834.83 (13 %), 1529.77 (11 %), 2195.84 (13 %), 2392.11 (35 %) 87 to Kr 76.3 mins 402.59 (50 %), 845.44 (7 %), 2554.8 (9 %) a ,35mXe 15.3 mins 99.4% IT: 526.56 (80 %), 0.6% P" (no y) 3 ,38Xe 14 mins 258.41 (32 %), 434.56 (20 %), 2015.82 (12 %) 89Kr 3.15 mins 220.9(20%), 586.0(17%) ,31I 8.03 d 80.185 (3 %), 284.31 (6 %), 364.49 (82 %), 636.99 (7 %) 133j 20.8 hrs 529.87 (87 %), 875.33 (5 %) 417.63 (4%), 546.56 (7 %), 836.80 (7 %), 1038.76 (8 %), 1131.51 (23 %), 1260.41 (29 %), 1457.56 (9 %), l35I 6.58 hrs 1678.03 (10 %), 1706.46 (4 %), 1791.20 (7 %) ! .32j 2.3 hrs 522.65 (16 %), 630.19 (13 %), 667.71 (99 %), 772.60 (76 %), 954.2 (18 %) i 135.40 (4 %), 405.45 (7 %), 433.35 (4 %), 540.83 (8 %), 595.36 (11 %), 621.79 (11 %), 677.34 (8%), 766.68 a I34r 52.5 mins (4%), 847.03 (96 %), 884.09 (65 %), 947.86 (4 %), 974.67 (5 %), 1072.55 (15 %), 1136.16 (9 %), 1613.80 £ (4%), 1806.84(6%) l37Cs 30yrs 661.66(85%) 4) l34Cs 2.07 yrs 604.7 (98 %), 795.9 (85 %) 9 1 138Cs 33.4 mins 462.8 (31 %), 1009.9 (29.8 %), 1435.9 (76.3 %) !32Teb 3.2 d 228.2 (88 %) "Mob 2.75 d 140.5 (5 %), 181.1 (6 %), 739.5 (12 %) Type Nuclide Half-Life Main Gamma Energies [keV] (Intensity %)' 239Np< 2.4 d 99.5 (14 %), 103.4 (22 %), 106.12 (26 %), 228.2 (11 %), 277.6 (14 %) 103Ru 39.3 d 497.1 (91%) 1 143Ce 33hrs 293.3 (43 %) o ,40Ba 12.75 hrs 537.3 (24 %) •so 2 < 140La 1.68 d 487.0 (46 %), 1596.21 (95 %) a. 99mT(. 6 hrs 140.511 (89%) B 95 d O Zr 64 d 724.2 (44 %), 756.7 (54 %) aa E 95Nbd 37.99 d 765.8(100%) a 88 « Rb 17.7 mins 898.03 (15 %), 1836.00 (23 %) 09 o l32Te 3.2 d 228.2 (88 %) a CQ 4) 99Mo 2.75 d 140.511 (5 %), 181.1 (6 %), 739.5 (12 %) Q 3 This list is only the main energies ( >100 keV to avoid low energy lead X-rays from shielding). The '%' values are the relative abundance of that energy per disintegration. Gamma spectrometry analysis should be performed using all available energies. l32Te and 99Mo are soluble but also deposit on reactor surfaces. Figure 4-10 is an example illustration of 99Mo deposition. c 239Np is an activation product from 238U but is included here as it only appears along with Type A DFP. d 95Zr and 95Nb may also appear as activated corrosion products, e.g., from bearing-pad wear and pressure tube fretting. 211

135mXe 1341 1321 8$mKr i35Xe 1331 1311 A • • • • • v 138Xe i 87Kr 88Kr 1351 133mXe 133Xe

1 i 0.1 1 10 100 Half-Life [hours]

Figure C-1 Half-lives of key nuclides

Appendix D Solution of the Diffusion Equation This Appendix solves the diffusion equation using the Maple programming language. The Maple language is mathematically intuitive, and with the included comments should be self-explanatory to the reader: First define the diffusion equation: restart; eq := diff(C(r, t), t) = — diff(rC{r, t), r, r) + B - hC(r, /); p/(2(lcH+r(j^H C(r.f) = + B-kC(r,t) (1) Our boundary conditions are: C(«, t) = C(r, 0) =0 and C(0, t) =defined. Start by solving the stationary equation: eqS •- expand(subs(C(r, t) = Cr(r), eq)); d

,.'»(» Cr(r) + B-lCr(r) (2) + Di Idr1 This ODE is readily solved with the boundary conditions C(a) -0,C(0) -defined

so/ := rhs(dsolve( {eqS, Cr(a) =0, Cr(0) = defined), Cr{r))) :sol •= expand s»Hi/>/im SM/M

U-Di «2X , so/ assuming a > 0 : sol •= subs] Di = .so/ ;

B a sinn — Jj a_ -+* (3) rsinh(VTi') X * To simplify equation (1) we make the following substitution (similar to Beck) Let CS •= r— (3): C == (r.f)-» ^r,f) exp(-X/) + CS(/-} : C{r.t):

.\, B a sinh U(r,t)e a + (4) rsinh(VTr) X *•

W«tf := expand suos D/ = , eq reU + U(r,t)k

X

n2K solution, where n is a positive integer dsolve Tbne = —, T(t) a

T{t)=_Clc (8)

l2-K dsohe Space=-^~T~.R{a) =0 .R(r) assuming n '• '• posinr.

R(r)=_C1 sin (T) (9) Therefore the bases of solutions are: rhs{(%)) rhs((9)); t?r?Du 2 K n,l ' a • ( "'' 1 (10) _C/e »«[ — } We can also define C(r,0) as a function of C(r,infinity) by using: CSl — r—r- • subs fi =

r aBa sinh ± aB (11) I + r sinh V

U(r,t) defined in (10) is a basis of solutions to (5). To satisfy U (r, 0 )«-/•• Cr we can build a Fourier series to represent -r-Cr over the period 0 < r < a using (10):

b[n] •= factor\ —int\ r •( CS/(r) - CS( r) )• sin [-^-^ ],/•=()..«] assuming n '• '• posinr.

la (-Kn2a-\i.a + n2Kf+ii) ja g ( -1)' ~ " (12) n K (|i + K n2) (n2Kf+\x)\ Equation (12) above is for the case C(r,t«0)-C(r,gB,fD), where C(r,t-infinity)-C(r,B,D). Equation (13)isC(r,U0)«0. Therefore, we can now define U(r,t) to satisfy the boundary conditions: U == (r, t) ->sum{faaor(b[n]rhs((S)) rhs((9)) ),n = \ ..infinity) : U(r, t): r?-T?Dit Z 2 l+n 2 Kn r 2a{-nn a + n Kf-\ia + n)\iB(-l) _Cl e * sin

n=l nn(n + n n2) (n2n f+\i) X We can set _C1«1 asfc[«] carries the constant. Therefore_C7 — 1 : C(r. r); Mat ^ 2a(-\)"(\i + n2Kf-Kn2a-\ia)B\ie ** sinf-^J -Xi 1 2 2 nn \[i + K n ) \n n f+\i) X

sinh Ba a ; B + rsinh

The release rate conies from: R ••= [ -- eval(diff(C(r,t),r),r=a) 1 assuming/i :: posinr.

2 2 2 2 y 2 (-l)"(|i + /i 7i /-7C « a-na) fl|ie COS(TC«) -Xi «=J (n + 7tV) {n2nf+y)X 3Di

cosh B H77« + aX sinh

1 n- Examining (13) and (14) and making \i» -^r0i and t • —y- we get R(t)/B >

5M&S (15) 2 r = Xa 7-:=(T)~ J- :R = {x)-*subs Di = T(x) :/?(x);

2 2 2 2 y 2 (-l)"(n + w 7t /-7t >i a-na) ffne^cosCrcw) T>» 1 "=> (H + TCV) («2Tt2/ + n)X 3Xa iiB 216

/ t \ ^_^ 'N \ cosh / * R w « ) + a A. sinh 4. A. W a' J ) / sunphfs(( 16))dssuming poutise ( i 1 y 2\)L + n~K f-n n a-ya) B\nz 1 rMsinh(/7)>- (»7) n=l 2 2 flHsinh(./|7 ) V (ii + Kn ) {n Kf+\i)X \A -fisinh(/M") + cosh(J~\i) J~\i B

R = (x)-*e\pand{il7)) R{x). ( ( x ( 2 2r n n f (18) SP n=\I 2 2 + 2 K (H + KV) {n K f+v)/*' iix+nn ) („V/+n) e^' 2 2 it « a 1 (H + KV) („V/+M)e— (H + KV) (n^V+^e"-"- J 3cosh(/]i) + VsinhCTlT) AndC(r,t)/B-: X a subs t = ,(14) expand simplify ~5T assuming H powit. a > 0 C=(jt 1? \ Di = , i =X a r(n.x) C(M.T),« =(n) \l ( ( ka2 subs Di = ,r=X a ,(3) M expand simplify assuming /i posmt, a > 0 cs(M).

subs D, = AiLf=x„ ,(il) csi =(M)- expand smipltfs assuming n posmt, a

>0 C5/(M)

n 1 r f J; ' (-l) sm(7t»X) n (-l)%sin(rc»X) 7t"/ 2H Z •>_2 XXe™* n rt 2 rrT n=l I „ (H + TCV) (,,V/+M) e " (M + t « ) («V/+M) e' •-l)"/isin(rtnX) 7t2a (-l)"sin(7t/iX) na \A

2 2 2,rt 2 2 (M + rcV) (« it /+fi)e" »(M + rtV) (nVz+^e* * * J 217

sinh(/jTx) _|_ Xsinh(/iT)A. * sinh(/7x) I Xsinh(7TT)X *

ocsinh X a (15 Xsinh /

It is clear from the above solution that setting alpha-0 recovers the usual solution for C(r,t-0)-0. To visualize these results, consider Xel33 release from a fuel element operating at 40kW/m going to 20kW/m. Set the summation limit to 1000 for plotting. Now we can define the constants, and define the sum from 1:N:

f N 1 (-l)"sin(ft«X)n restart; C •— (X, T)-» 2U XXe™K n=l (-!)"« sin(ltwX)*y (-l)"»sin(it/»X) n a 2 2 2 2 (n + ieV) {f* f+») n (n + Jt n2) {n2n f+\i)e/ ^ Xsinh(77)X X

asinhI / -^ X sinh - (/^) + -f:CS/:=(X)- • *=,-<„- Xsinh(71»)X X Xsinh t f N ( 6 ^ „V/ n=l +

2 2 M« JI « a 1

+ ^(77) :/?(t);CS/(X);C5(X);

f ^ f I (-t)"sin(7tnX)n (!)"/»sin(rcnX) 71 / 2M XJle^Jt 2 2 2 + 2 2 k V. VM n + TtV) (icV^e* " ' (u + *V) (nVz+uJe* " ' (-l)"«sin(jinX) JI a (-l)"sin(7C/iX) |ia \^ (U + KV) (x2ff+»)!?* ndx + n'n2) (icV/+n) e^* J 218

sinh(/^"x) J_ Xsinh(7T") X X ( ( N rt2 «2/ JM 1 +

nil a \LCt (n + JtV) (nV/H-n)/"2* (H + TCV) (nVz+n)/"2*, 3 cosh(VJ7) + /7sinh(77)

asinh a i/y*) + — X Xsinh w / J A

SHI^/M"*) 1 + — Xsinh(/]T)x. *• We need to calculate f: Dp= P—9e-l2 IOA(0.1I4P)/P2:/-= (solve(Dp{a-P) =f-Dp(P),f) ): A -0.0000015301 : .^O.lHOOOOOOOaP .,. 0.1140000000/> 2

X 36 P ~ 31 : Dp ••= Dp(P) : \l - — : a := -7- : N — 1000 : Onav — //>»/>(CS{X). X = 0) : fl/wa Dp 31 :=/?(— log(2)0/>-lOo] :Rmaxl :=Re(/f(0)) :/.

2.754979592 (22) Now we can plot the evolution of C(r,t): plot f C(X, 0). c(x. — log(2) Dp). c{x, ~ log(2) Dp |, CS(X) X = 0.95..l.f/V*wwrjb

= \ default. (o=0. Own . 6Q)i(» . . . . labels •- typeset {'X') —-— =0.5, - = 1.5, Gnax= 1, 2C«i

typesetl /^ ' j . legend = [typeseti"t = ". 0). typeset^"t = ". r05), typeset^"t = ". 3 f05 ).

typeset("l = ",=») 1, legendstyle = [location - top], adaptive = false, numpoints = 100 |; t = 0 t = t,0. 5 t = 3r0. 5 t= oe

C(0, 00) 0.5-

Appendix D.2

This section confirms that the solution above is completely consistent with the the work of G.V. Kidsou, "A Generalized Analysis of the Cumulative Difrusional Release of Fission Product Gases from an Equivalent Sphere of U02", Journal of Nuclear Materials, Volume 88, Pages 299-308, 1980 Take the special case of k=m=l for Kidsen, then C(r,t)=Ey(n,r)b(ii,t). Assuming C(r,r-0)=0 for now, gives y(a,r), b(n,t) as follows: restart; egO •= C(r,t) =Sum{y(n,r)b{n,t),n=-0..infinity); eql - V(«,r) = l/sqrt(2*Pi*a) *sin(/i*Pi*A')/r,e^2:=/>(rt,/) = l/X*(X*exp(-(mu + nA2*PiA2)*T)*b0+mu/(mu + n A2*PiA2)*(l-exp(-(mu + nA2*PiA2)»T))*(-l)A(/i + l)*{2*Pi*a)A(3/2)/n/PiA2

C{r,t) = Xw(n,r)b(n,t) rt-0 , ( 1 sin(jinX)V2 J Ka r

+ JA,.„. 2M(l-e-^+"2'c2)l)(-l)^1/r(^03/2g Xc~ '/>0 + / 2 2^ - *(/!./) = V H + /) It J II K (23)

To allow an initial C(r,t«0)-C*(r), consider C(r,t«infinity): x temp ••= C(r,<») = SMW(\|/(«, r) •/>(«,»), « =0..infinity); eqi •— />(«. ) = simplify(limit[rhs{(23)), t = infinity)) assuming positive;

C(r. Jo) = ^y{n,r)b{n, •*•) n = 0 2(-l)"*'yTnfl3/2fi />(«, •*) = (24) /rt (|i + «2 rt") rtX Now consider that this is the solution at M), where u * u/f and B - aB «/-/ := b0 = simplifyy\ subs\ \x=^.B=aB , r/«((24)) ')> 2(-l)"nr, +7TMfl i rr.3.'"q 3/2g />o = (25) /rt (\i + n2n~f) n X Therefore, we can now write C(r,t): eqO •= V|/(/J, r) b(n, t) = expand(subs{bO = rhs{{25)). rhs(eq2)) rhs(eql)) assuming a > 0: 2sin(KnX)ncr-aB(-\)n 2sin(KnX)a\iB{-\)" \JT(H, r) b(n,t) = (26) tM tn2 ,2 2 2 X/77re e ' /7(ti+/rjt /)» Xnr{ii+n n)n 2sin(7t»X) ajiBjl)" ^/•(u. + nVjne'V"2*2 Unfortunately Maple fails to isolate for r, this is the x terms simplified 2sin(KnX)iiirzaB(-\)n 2sin(nnX)a\iB{-l)n eqO ••= simplify xl, zn2 ? 2 + 2 tnV K kJ7a"re e ' J7{^ + n Kf)n Xnr (M + n n) ne™ e / 2 (-l)"sin(n/».y) Mfl(-Qfl(i-Qfi^:!/i2 + gM + fl7i2/)2/)e^M+n2'12^ (27) 2 ir X /• (|i + /i 7C /) n (M + M2 Jt ) Compare Equation (27) and the time dependant component of C(r,t) in Chapter 2 of the thesis • QED they are the same, confirming the solution is correct by showing it is consistent with the general solution of Kidson. The time independent component is also identical as shown below: limit(rhs({26)),i = infinity) X eqK '•= simplify assuming positive : eqK •= Kidson = subs(r = Xa, B

, Xsinh{f\i)X X eqK); eqB '•= Booth = expand B 2(-l)"^'sin(7CnX)n Kidson •• 2 n X (n + n K ) n

Booths / /—( + ! (28)

The Kidson solution is simply the Fourier sine series of the Booth solution: 2 bn •= —int(Xrhs(eqB) sin(nnX)7 X = 0 ..l)assumingn :: posinr,

2(-l)"u (29) Kn (|i + /i27C )

QED Appendix D.3

This section looks at the FP release from the gap into the sheath: renarr.eqlNg] •= diff{N[g](t),t)=R[fg}- {X + v)N[g](t);eq[Nc) := diff(N[c)(t),t)=v •N[g]U)-rN[c]U):

d N (t)=vN (t)-yN {t) (30) di c c

Assuming Ng(0)»Ngo and Nc(0)»Nco, the above system of ODE's can be readily solved: sots := dsolve({eq[Ncleq[Ng],N[g]{0) =Ngo.N[c](0) =Nco}, {Nlg](t),N[c]{t))); dsolve({eq[NglN[g](0)=Ngo),N[g](t)); V v ,X ,v 1 Rfge (-Rflt+NgoX + vNgo)Xe NAD = A. + v (X + v)(y-X-v) yi -tX-tv \ ( -Rfg + NgoX + vNgo) ve + (X + v)(y-X-v) 2 -v y/Vco + v Rfg - v y^go + y Nco - yNco X T fi + e- '.W,(r) = r - Y(y-A.-v) * X + v (X + v) e' ' ( -/?/g + /Vgo A. + v Ngo) + X + v R, Vx + e-[X~v),\Ngo- "/« (31) * X+v { X+v We can now define Re - v*Ng(t): eq[Rc] ••= R[c] = v-rts(so/s[2)); {X + R,*g_ e- ^'(-Rfg + NgoX + vNgo) ' R=v (32) { X + v X + v

Appendix E Pseudo Code and Overview of Algorithms Executes in COLDDl.m

COLDDl.m SelectFiles SelectFiles Update AnalysisType -> —> —>

A X/ _\ \ Executes i n separate m-fde V getNData.m getRData.m Requested analysis (nuclide data) (reactor data) performed

"\^ SameTimeScale. m v (match time scales) Plots produced and results returned v Releaserate.m (calc. re le£is e rate)

Figure E-1 High level pseudo code of COLDD execution 224

Table E-l: Summary of MATLAB* m-files Analysis Description Section (function nante(s)) Pre-processor Spline interpolation to match time series between reactor and nuclides data 3.1 (Same TimeScale) Release rate Calculates the release rate Rf(t) = -f- \— h A£(t)Cj(t) using Savitsky-Golay to smooth and 3.1.2 (Releaserate) A-i I (it J find first-order differential. Low-pass filter is used to remove high frequency noise. Rly analysis R 3v I x^D* (P*\ Ft K c Fits - = —- I— 1- c or - = aX~b + c to the data using a Levenberg-Marquardt routine. If 3.2 (TRfit, TRfitb) B V+A ^ A a the fit is acceptable then it returns the fitting parameters. Defect size from v Uses TRfit to fine v. Uses v to infer defect size. The value for n is chosen by the user to be n=\ or 3.3.1 (RyAnalysis) found by a fitt o the noble gases (if possible) Defect size from b Uses TRfitb to determine b. Uses b to infer defect size (gas or iodine) 3.3.2 (Sizefromb) Defect size from ratios Uses same species or mixed species ratios to determine defect size. Numerator and denominator 3.3.4 (DefSizeRatios) provided in order of priority; suggests b or v analysis if possible. Defect state (Defectstate) Uses 133Xe release rate and l33Xe?33I and 133Xe/l3i ratios to infer defect state 3.3.5

l23 McAl23 124 Sb mass V Mc / Sb Sb m S 3.11 (Sbl23mass) Usesmi23c, = tJ. ,T!° to determine the Sbmass. Plots the smoothed and unsmoothed results. Defect Power from RJy L 2 3.4.1 (RyAnalysis) Uses fitcoefficien t A = 3FfXyJP D'(P) from TRfit to determine defect power P Defect Power from l33Xe 3.4.2 (PlotP) u-^M&fl. —— P-^-X.-- -Zlogxoff1) Defect Power from Power Uses release rate at two different power levels to find element power: P = —— -2- 3.4.4 Step (PRatio) x

Iodine Spike Prediction Uses TRfit to determine fit coefficients, requests v and shutdown /S from user, then plots tr p 3.5 (Ryanalysis) the shutdown iodine spike, returning the maximum value and time. 225

Analysis Description Section (function name(s)) Defect number by l3lI Uses default value of 6x 101' [atoms.s1] of 131I released per defect to determine the defect 3.7.1 (DnumberlBl) number. The user can modify Model Constants to define a new value. Defect number by R/y c 2 3.7.2 (RyAnalysis) Uses fit coefficient A = 3FfX^JP D'(P) from TRfit to determine defect number X Uses the 134Cs/l37Cs ratio to determine the defect burnup:

l34 137 Defect burnup by Cs/ Cs xi R TMWh lrcrTI"ll — ^ 'Cs / A fit TT ir lirrH tn rrnnrrt 3.8.1 ratio (DefectBurnupCsRatio) a IvlVVn.KHU 1 — / . 4 137c, t A a v J\ VJU1 is uscu 10 rcuucsi AcSl34fl-2.355/" ^ »C ^ »*C,- »7Cs)\ cs "*\ »I37CXA134CS ; activities from the user, results are returned to COLDD results box.

Defect burnup by R/yc Optimises the R/yc(Bu) fit through TRfit to find Bu that produces the best fit. First (DefectBurnupFromRyc, algorithm performs the optimization at a user defined time, seconds algorithm spans across 3.8.2 DefectBurnupFromRycScan) the time in the nuclides plot.

Secondary Hydriding Takes the user defined power (default from model constants) and element OD and returns 3.9 (SecondaryHydriding) the time to secondary hydriding on a plot with the Locke curves. Find defect free operation Fits —-—- = aX to the data, and if - 0.1 < b < 0.1 then assumes no defect at that time 3.10.1 (trampfinder) Tramp mass from R/y c 3.10.2 (c2mass) Uses TRfit to find fit coefficient C, and then m„ = -—f-—-.

l38 Tramp mass from Xe or 138 134 134 Assumes fit coefficient C defined by Xe or I, uses mu = TTTT- 3.10.2 I (trampisotope) 3 u ' NAxt>m 226

Analysis Description Section {function name(s))

Uses i'rampfinder to find defect free pe riods, and then finds Bulr to minimise eq c 2 Tramp burnup / R ' \ " d 3.10.5 (trampburnup) I=1 = 0 dButr ^ l yc,(Butr) N J

RJy data check Plots R/y versus A for all available isotopes for activity and release rate for the user to c c 4.2.3 (RycChecker) examine. Appendix F Source Code Each subheading in this Appendix is a separate MATLAB® m-file script. The last four sections are copies of Excel files used by COLDD for data input. The text colours are from the MATLAB® editor.

F.1. COLDD1 function varargout = COLDD1 (varargm) % This is main backbone of the COLDD programme and provides the interface % to the GUI. When buttons, lists, toggles,... are manipulated by the % user in the GUI, then an appropriate function is called m COLDD, known % as a callback. % Each callback is defined in this file, along with the trigger, algorithm % and output. % M-files that exist outside COLDDl.m (this file) are commented separately

% Last Modified by GUIDE v2.5 14-Aug-2011 13:36:55

% "Initialization code" below is created by GUIDE as part of the GUI % process. It has not been edited from the default values. % Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct ('gui_Name', mfilename, ... 1 gui_Singleton ', gui_Smgleton, ... 'gui_0pemngFcn', @COLDDl_OpenmgFcn, ... 'gui_OutputFcn', @COLDDl_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []); if nargin && ischar (varargm (1)) gui_State.gui_Callback = str2func (varargmf 1)) ; end if nargout [varargoutfl :nargout) ] = gui_mainfcn (gui_State, varargm! :)) ; else gui_mamfcn (gui_State, varargm( : }) ; end % End initialization code - DO NOT EDIT

% This function executes ]ust before the GUI is made visible. function COLDDl_OpenmgFcn(hOb]ect, eventdata, handles, varargm) % This function has no output values. % hOb^ect handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargm optional command line arguments to C0LDD1 (see VARARGIN)

% Choose default command line output for C0LDD1 handles.output = hObject;

% Update handles structure guidata(hObject, handles);

% Create interactive zooming hZoom = zoom; set(hZoom,'Enable','on');

% Create interactive panning hPan = pan; set(hPan,'Enable','on') ;

% Turn off warning messages warning off % If COLDD received an input argument it means this instance was loaded % from a reset if -lsempty(varargin) set(handles.Ignored,'String','reset'); end

% Outputs from this function are returned to the command line. function varargout - COLDDl_OutputFcn (hOb]ect, eventdata, handles) % varargout cell array for returning output arguments (see VARARGOUT); % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

% Get default command line output from handles structure varargout(1) - handles.output;

% Required by Matlab for the GJI initialization function figurel_ResizeFcn(~, ~, ~)

% Executes when a user clicks the "Select Case" button function SelectFiles_Callback(hObject, eventdata, handles) % hOb^ect handle to SelectFiles (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

% Reset ignored nuclides listbox as new data is being retrieved set(handles.Ignored,'String',([]}); set(handles.DataAvail,'Value',1); % Reset available isotope list

% Reset the list of possible analysis to the top value % This prevents an error if the currently selected analysis type is not % possible with the new dataset. set(handles.AnalysisType,'Value',1);

% If this is a subsequent selection, close COLDD and restart if get (handles .SelecttoBegm, ' ForegroundColor')== [0 0 0] eval ('close all;h=f lrdall (0, ' 'type' ', ' 'figure' ') ; close (h) ,-COLDDl (1) ; ' ) return end % Switch "Click to begin" text back to black set(handles.SelecttoBegin,'ForegroundColor',[0 0 0]);

% Create a popup box to select the new analysis type: Atypes=('Pre-loaded Cases','New Case','Real-Time Spectra'); [selT,OKT] =listdlg ('ListStrmg', Atypes, ' SelectionMode', 'single', 'Name ', . . . 'Please select the Analysis Type:', 'ListSize', [280 50],... 'PromptString','Press ok when ready');

% Repond to the users choice of analysis type if strcmp(Atypes(selT),'Pre-loaded Cases') % Create ard sort the list of possible cases currently available. cases-sort({'FFO-103', 'i10-10 9-2', 'EEO-102-21, 'Bruce Unit 5', . .. 'Bruce Unit 6','Bruce Unit 7',... 'V Detect Case 1',... 'V Detect Case 2', 'FFO-test', . . . 'Darlington R36588Z','DNGS Aug 2011 N','DNGS Aug 2011 S'... 'Bruce Unit 5 R04508Z','FFO-104','Test Case',... 'DarlirgtonN2011', 'DarlingtonS2011', 'Bruce Power Step',... 'STAR Virtual'}); % Create a dialog box to ask the user to select the case [sel, OK]=listdlg ('ListStrmg', cases, ' SelectionMode' , 'single ' , 'Name ' , . . 'Please select the case you wish to study','ListSize',[350 200],.. 'PromptString','Press ok when ready'); if OK==l % Response after the user has selected % Set the cases handle and remove spaces from cases cases=cases(selI;set(handles.Case,'String',cases); cases=cases(~isspace (cases)); % Create the file name for the FP and reactor data, respectively FPname=[cases '-FP.xlsx'];Rname=[cases '-RD.xlsx'];

% Select Correct constants file appropriate for the case if strcmp(FPname(l) , 'F') const='ConstantsX2.xlsx1; elseif strcmp(cases,'VDetectCase2') const='ConstantsPL.xlsx'; elseif strcmp(cases,'VDetectCasel') const='ConstantsVl.xlsx'; elseif strcmp(FPname(l),•D') const='ConstantsD.xlsx'; else const='Constants.xlsx'; end else return % If user chooses cancel, return to GUI without proceeding end elseif strcmp(Atypes(selT),'New Case') % Request the user to provide the FP, reactor, and constants files [FPname,~,~] = uigetflie('*.xlsx','Select file with FP data'); [Rname,~,~] = uigetflie ('*.xlsx','Select file with Reactor data'); [const,~,~] = uigetfile ('*.xlsx',... 'Select file with Reactor constants data'); cases=FPname(1:strfind(FPname,'.xlsx')-l); elseif strcmp(Atypes(selT),'Real-Time Spectra') % Place holder for future work to connect with real-time data h=warndlg('Sorry, no gamma spectrometer attached'); uiwait (h) delete (plswait) return end

% Define GUI appdata - this is used to store data accessible within % COLDDl.m and scripts called by this file, setappdata(C0LDD1,'cases',cases); FileNames=((FPname 'NukeData.xlsx' Rname}); setappdata(C0LDD1, 'FileNames',FileNames) ;

% Populate the "Model Constants" table in the GUI columnformat=('char', 'numeric', 'char'};[~,~,raw)=xlsread(const); set(handles.Constants,'ColumnFormat',columnformat, 'Data', raw);

% Load the nuclear constants data and set in appdata [NukeData,names,~1=xlsread('NukeData.xlsx'); names=names(2:end,1); % First row is blank and needs to be discarded setappdata(C0LDD1,'names',names);setappdata(C0LDD1,'NukeData', NukeData);

% Get the FP data and reactor data using the custom getNData.m, getRData.m [NData,Avail]=getNData (handles);RData=getRData; % Stop if there was an error in the data (getNData returns [1,1] for error) if length(NData)==1 I length(RData)==1 return; end

% Interpolate NData, RData on same time scale using custom SameTimeScale.m [NData,RData]=SameTimeScale(NData,RData) ; % Load the data into the appdata setappdata(COLDD1,'NData',NData);setappdata(COLDD1,'RData',RData);

% Calculate release rate and smoothed activity data using custom code [NDataR,NDataS]=Releaserate(handles);

% Load the data in appdata setappdata(C0LDD1,'NDataR*,NDataR);setappdata(C0LDD1,'NDataS' ,NDataS); setappdata(COLDD1,'Avail',Avail); setappdata(COLDD1,'RycCheck','False'); % Request Rye check for first load

% Load in the Explanations.xlsx data which defines analysis title, analysis % description, and analysis commands. [~,defns,~!=xlsread('Explanations.xlsx');setappdata(COLDDl,'defns',defns);

% Clear and setup axes 1,2 (top left and right plots) pause(0.5);axes(handles.axesl);cla reset;axes(handles.axes2);cla reset;

% Plot the reactor data pause (0.5); axes(handles.axes2); plot(RData(:,1)./3600/24,RData(:,2),RData(:,l)./3600/24,RData(:,3)); % Link the time axis to maintain the same time scale on the top 2 plots linkaxes([handles.axes2 handles.axesl] , 'x'); legend)'Element Power', 'IX How') ;xlabel ('Time [days]'); ylabeK'Element Power [kW.m*{-l}], IX Flow [kg. s* ( -11 ] ') ; set(handles.axes2, 'YLim',[0 100]);

% Determine which analysis types are available and populate the listbox SetAnalysisTypes(handles);

% Reset the togglebuttons to default values set(handles.Activity,'Value',1,'FontWeight', 'Bold'); set(handles.LinearScale,'Value',1,'tontWeight', 'Bold'); set(handles.Release, 'Value',0, 'FontWeight', 'Normal'); set(handles.LogScale,'Value',0, 'FontWeight', 'Normal'); set (handles.Smooth,•Value', 0);

% Turn off Analysis type and repopulate, turn off descriptor and reset to % or set(handles.AnalysisType,'visible','off'); set (hardies .descriptor, 'visible', 'off, ' value ', 0, 'String', . . . 'Turn Off Analysis Descriptions');

% Turn on Simple buttons (Analysis choice boxes) h-f mdob] (' -regexp ', ' Tag', 'simple ') ;set (h, 'visible', 'on');

% Turn off Select Button set(handles.SelAType,'visible','off');

% Display error message if no Xel38, 1134, Kr89 for trarsit time % confirmation names=get(handles.DataAvail,'String'); if lsempty (fmd(strcmp (' 1-134 ', names) , 1)) & ... lsempty(find(strcmp('Xe-138',names), 1)) ... & lsempty(find(strcmp('Kr-89',names) , 1)) f ~ warndlg(['There are ro short lived nuclides present to '... 'confirm the correct transit time. Use short lived data with'... ' caution. Click ok to proceed'], 'WARNING'); uiwait(f) % Wait for user response before continuing end % Plot the data using the Update routine m COLDDl.m Update(handles);

% The update command plots the current or rewly selected data. function Update(handles) % This function updates the top plots with the relevant data as chosen by % the user. Handles cortams user data (see GoIDATA)

% Get the FP data: release rate or activity (smoothed or not) as required if get(handles.Release,'Value')==1 % Release rate chosen Data=getappdata(COLDDl, 'NDataR') ; axes(handles.axesl); ylab='Release Rate [Atom.s~(-1}]'; % Set correct y-axis label else if get(handles.Smooth,'Value')—1 % Smoothed activity choser Data=getappdata(COLDDl,'NDataS'); else Data=getappdata(COLDDl, 'NData'); end axes(handles.axesl); ylab='Activity Concentration [Bq.kgA{-1]]'; % Set correct y-axis label end

% Get the current top left x-axis limits and clear the plot xlim=get(handles.axesl,'XLim');axes(handles.axesl);cla;

% Plot what the user asks to plot using the custom plot2 routine [Y,L]=plot2(Data,handles);plot(Data (:,1) ./3600/24,Y);legend(L); set(handles.axesl,'YLim',[0 1.2*max(get(handles.axesl,'YLim'))]); set(handles.axesl,'XLim',xlim);

% Set the selected axis scale (log scale or linear) if get (handles. LmearScale, 'Value')==l set(handles.axesl, 'YScale', 'Linear') else set(handles.axesl,'YScale','Log'); end

% Turn on the grid, locate legend, add axis labels. set(handles.axesl,'YGrid','on');legend!'location', 'best') ; xlabel('Time [days]');ylabel(ylab);

% If an RYc check hasn't been performed, then force it on the user if strcmp(getappdata(COLDDl,'RycCheck'),'False'); setappdata(C0LDD1,'RycCheck','true'); % Cancel subseuqent check

% Display warning message and ask user how proceed: ButtonName = questdlg(['This is the first time loading this data'... ' this session. It is highly recommended that a R/yc versus'... ' lambda plot is used as a cursory check of the data. Do you'... ' wish to perform the check at this time?'], ... 'Warning', ... 'Yes', 'No','Yes');

switch ButtonName, % Repond to user selection of 'Yes' or 'No' case 'Yes', % Request the time period to analyse prompt = ('Enter start time [days]','Enter end time [days]']; dlg_title = 'R/yc for Error Checking - Choose a Tramp Period'; num_lines = l;def = (num2str(xlim(l)),num2str(xlim(2))}; options.Resize='on';options.Windowstyle='normal'; options . Interpreter' tex' ; answer-inputdlg(prompt,dlg_title,num_lines,def .options);

% Perform analysis tl=str2num(answer(1));t2=str2num(answer(2}) ; RycChecker(handles, tl, t2)

case 'No', end % end switch end % end Rye check if

% Executes after the user selects an analysis to perform function AnalysisType_Callback(hOb]ect, ~, handles) % hOb]ect handle to AnalysisType (see GCBO) % handles structure with handles and user data (see GUIDATA)

% Get definitions and explanations from appdata defns=getappdata(COLDDl,'defns');

% Get the analysis chosen by the user, and remove blank spaces Analy=cellstr(get(hOb^ect,'String')); Analy=strtnm(Analy{get (hObject, 'Value') }) ;

% Match the selected analysis against the list in defns i=strmatch(Analy,defns,'exact');

if -lsempty(strfind(get(handles.descriptor,'String'),'Off')) % If descriptions are turned on, then provide the descrption options.Interpreter = 'tex';options.Default = 'Yes'; choice=questdlg([defns{i,2) '. Do you which to proceed?'],... 'Information','Yes','No',options); % Handle answer switch choice case 'Yes' eval(defns{1,3}); case 'No' return end else eval (defns {1, 3 )) ; % No description requested, perfor-n analysis end

% This is a work around to force Matlab compiler to include these m files % when the code is compiled into an executable. They are only called by % the defn's as required, if 2==3 DefectBurnupFromRycScan(handles) DefectBurnupFromRyc(handles) [B]=DefectBurnupCsRatio ;set(handles.MsgResult,'String',... (char(get(handles.MsgResult,'String')), fAnaly ' indicates ' B])); [~,~,~,~,~]-DnumberI131(hardies); varargout=RyAnalysis(handles,'iodines',Analy); varargout=RyAnalysis(handles, 'gas', Analy) ; result=DefSizeRatios(get(handles.DataAvail, 'Strirg'),... get(handles.Ignored,'String'),handles);set(handles.MsgResult,... 'String',(char(get(handles.MsgResult,'String')),result)); varargout=Sizefromb(handles,'iodines'); varargout-Sizefromb(handles, 'gas'); varargout=RyAnalysis(handles,'iodines', Analy) ; DtypeXel33I131(handles) DtypeXel33Kr88(handles); [~, ~]=SecondaryHydnding(handles) ; Defectstate(handles); RycChecker(handles); Sbl23mass(handles) [hi,time]=Roy(handles,'both');[h2,time]=Roy(handles,'gas',time); figure(hi);figure(h2); [hi, time]=Roy(handles, 'iodines');[hi,time]=Roy(handles,•gas'); [PI, P2]=PRatio;set(handles.MsgResult, 'String',... {char(get(handles.MsgResult,'String')),... [Analy ' indicates PI = ' PI ' and P2 = ' P2]l); plotP(handles) varargout=RyAnalysis(handles,* iodines',Analy); varargout=RyAnalysis(handles, 'gas', Analy) ; trampburnup(handles) ; varargout=RyAnalysis(handles, 'iodines', Analy) ; varargout=RyAnalysis(handles, 'gas',Analy); trampall(handles) [~,~]-trampisotope('1-134',handles); [~,~]=trampisotope('Xe-138',handles); varargout=RyAnalysis(handles, 'iodines',Analy); varargout=RyAnalysis(handles,'iodine', Analy); end

% Executes when the user changes selections ir the nuclides available % listbox function DataAvail_Callback(~, ~, handles) % handles structure with hardies and user data (see GUIDATA)

% Call Update function to update plots with new selection, only if data l % available if ~isempty(get(handles.DataAvail,'String')) Update(handles); end

% Executes during object creation, after setting all properties. % This is a pre-built Matlab file to create the default colour scheme function AnalysisType CreateFcn(hObject, ~, ~) % hObject handle to AnalysisType (see GCBO) if ispc SS lsequal(get(hObject,'BackgroundColor') , ... get(0,'defaultUicontrolBackgroundColor')) set(hOb]ect,'BackgroundColor','white'); end

% Executes when a user clicks the "Activity" button at the top function Activity_Callback(hOb]ect, ~, handles) % hOb]ect handle to Activity (see GCBO) % handles structure with handles and user data (see GUIDATA)

% Unclick Release Rate button and switch bold text set(handles.Release,'Value',0,'FontWeight', 'Normal'); set(hOb]ect,'FontWeight','Bold');

% Call Update function to update the plot Update(handles);

% Executes when a user clicks the "Release Rate" button at the top function Release_Callback(hOb]ect, ~, handles) % hOb^ect handle to Release (see GCBO) % handles structure with handles and user data (see GUIDATA)

% Unclick Activity button, switch bold text set (handles.Activity,'Value',0,'FontWeight','Normal'); set (hOb]ect,'FontWeight','Bold');

% Call Update function to update the plot Update(handles);

% Executes when user clicks "Smoothed" function Smooth_CallbacM~, ~, handles) % handles structure with handles and user data (see GUIDATA)

% Update the plots with the new button arrangement Update(handles);

% Executes when the user clicks the "Clear" button function Clear_Callback(~, ~, handles) % handles structure with handles and user data (see GUIDATA)

% Replace the message result values with "Results" set(handles.MsgResult,'String','Results') ; set(handles.MsgResult,'Value',1);

% Creates the available box function DataAvail_CreateFcn(hOb]ect, ~, ~) % hObject handle to DataAvail (see GCBO)

if ispc SS lsequal(get(hObject, 'BackgroundColor'),... get(0,'defaultUicontrolBackgroundColor')) set(hObiect,'BackgroundColor','white'); end

% Executes during ob]ect creation, after setting all properties. function Constants_CreateFcn(~, -, ~)

% Executes when data is modified in the Model Constants table function Constants_CellEditCallback(~, eventdata, handles) % eventdata structure with the following fields (see UITABLE) % Indices: row and column indices of the cell(s) edited % PreviousData: previous data for the cell(s) edited % EditData: string(s) entered by the user % NewData: EditData or its converted form set on the Data property. % Empty if Data was not changed % Error: error string when failed to convert EditData to appropriate % value for Data % handles structure with handles and user data (see GUIDATA) % Get string for edited variable: indices=eventdata.Indices; dat=get(handles.Constants, 'data');str=dat(indices(1), 1) ;

% If IX efficiency (gas or iodines) changed, NDataR needs updating.

if strcmp(str,'IX Iodine Efficiency') I strcmp(str,'IX Gas Efficiency')

[NDataR,NDataS]=Releaserate(handles); % Gets IX efficiency from table

% Load the new data into appdata setappdata(COLDDl,'NDataR',NDataR);setappdata(COLDDl,'NDataS',NDataS); % Call Update function to update plots Update(handles!; end

% If the transit time is changed if strcmp(str,'Transit Time (0 if already included)')

% Load the existing data NData=getappdata(COLDDl,'NData'); NukeData=getappdata(COLDDl,'NukeData');L=NukeData (:,1);

% Add the new transit time correction for i=l:length(L) NData (:, l + l )=NData(:, 1 + 1) . *exp(L(i) *str2r.um(eventdata.EditData) ) ; end

% Save the new data and calculate the new release rates setappdata(COLDDl,'NData',NData);[NDataR,NDataS]=Releaserate(handles); setappdata(COLDDl,'NDataR',NDataR);setappdata(COLDDl,'NDataS',NDataS);

% Call Update function to update plots Update(handles); end

% Executes when user selects "Log Scale" button function LogScale_Callback(hObject, ~, handles) % hObject handle to LogScale (see GCBO) % hardies structure with handles and user data (see GUIDATA)

% Jnclick LmearScale, switch bold text set (handles.LmearScale, ' Value ', 0, 'FontWeight' , 'Normal') ; set(hOb]ect,'EontWeight', 'Bold');

% update Plot set(handles.axesl,'YScale','Log') axes(handles.axesl); legend('location ', 'best') ;

% Executes when user clicks "Click to Ignore Nuclides" function RNuclideCallback (~, ~, handles) % handles structure with handles and user data (see GuIDATA)

3 Ask for and get the new selection for available and ignored using the '--, custom NuclideRemoval .m script if lsempty(get(handles.DataAvail,'String')) &... lsempty(get(handles.Ignored,'String')) •> If no data is present, issue a warning and return f = warndlg(['There are no available or ignored nuclides, please'... ' load some data first'], 'Warning'),- uiwait(f); else % Get current selectior in the nuclides available listbox in.it SelV=get (handles .DataAvail, 'Value') ; imtSelStr=get (handles. DataAvail, 'String' ) ; initSelStr=imtSelStr (lmtSelV) ; % Get the new values for available and ignored [a,b]=NuclideRemoval(get (handles.DataAvail,'String'),... get(handles.Ignored,'String'),getappdata(COLDD1,'names'));

% Set the new values set(handles.DataAvail,'String',a); set (handles.Ignored,'String',b);

% Make sure previous selection still highlighted (or default to 0) new= [ ]; for 1=1: length (mitSelStr) for 3=1:length(a) if strcmp(imtSelStr (I) ,a<3) ) new(end+1)=3; end end end if lsempty(new); new=l; end set(handles.DataAvail,'Value',new); set(handles.Ignored,'Value', 1) ;

% Call Update function Update(handles) ; end

% Executes during object creation, after setting all properties. function Ignored_CreateFcn(hObject, ~, ~) % hOb^ect handle to Ignored (see GCBO)

% Hint: popupmenu controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && lsequal(get(hObject, 'BackgroundColor') , ... get(0,'defaultUicontrolBackgroundColor') ) set(hOb3ect,'BackgroundColor','white'); end

% Executes when user clicks "Close all Figures" function Closeall_Callback () % Grab all Figures that are not the COLDD GUI and closes them. h=fmdob3 (' type', ' Figure') ;names=get (f indobj (' type', ' Figure') , 'Name') ; if -lschar(names) % If only COLDD is open, names is type 'char' for i=l:length(h) if -strcmp(names(l),'CANDU On-Line Defected fuel Diagnostic') close(h(I)) end end end

% Executes when user clicks "Linear Scale" button function LinearScale_Callback(hOb3ect, -, handles) % h0b3ect handle to LmearScale (see GCBO) % handles structure with handles and user data (see GUIDATA)

% Unclick "Log Scale" button and switch bold text to "Linear Scale" butt set(handles.LogScale, 'Value',0, 'FontWeight', 'Normal'); set(hOb3ect,'FontWeight', 'Bold') ;

% Update Plot with new scale, relocate legend as required set (handles.axesl,'YScale', 'Linear') axes(handles.axesl);legend!'location','best') ;

% Executes when the user clicks the "Help" button function Help_Callback () % Provides the user with information and an option to open the helpfile.

Button=questdlg(['Hover the mouse icon over buttons, plot titles, '... 'list boxes, and tables to get information.1],... 'Help','Open Help File', 'Close', 'Open Help File'); switch Button, case 'Open Help File', winopen Helpfile.pdf case 'Close', return end

% Executes when one of the nine analysis type buttons are pushed function simplepush(hObject,-,handles) % hObject handle to LinearScale (see GCBO) % handles structure with handles and user data (see GUIDATA)

% Get the string title of the button pushed ana=get (hOb]ect,'String');

% Convert Plots to plot and Defect Power to power for camparison if strcmp(ana,'Plots'); ana='plot'; end if strcmp(ana,'Defect Power'); ana='power'; end

% Grab list of analysis possible Analy=cellstr(get(handles.AnalysisType,'String')) ;

% Grab all analysis with the key word Analy=Analy(strmatch(lower(ana),lower(Analy)));

% Create and display a listbox of possible analysis (already alphabeticed) set(handles.AnalysisType,'String',Analy,'Visible','on','Value',1)

% Hide the nine analysis type buttons h=f mdobj('-regexp','Tag','simple');set(h,'visible','off');

% Turn on Select Analysis box and Descriptor box set(handles.SelAType,'visible','on') set(handles.descriptor, 'visible','on ')

% Executes when the user clicks "Select Different Analysis Type" butto function SelAType_Callback(hOb^ect, -, handles) % hObject handle to SelAType (see GCBO) % handles structure with handles and user data (see GUIDATA)

% Hide the list of analysis options and repopulate set(handles.AnalysisType,'visible','off); SetAnalysisTypes(handles);

% Turn the nine analysis type buttons back on h=findob]('-regexp','Tag','simple'); set(h,'visible','or');

% Turn off "Select Different Analysis Type" Button set(hOb^ect,'visible','off');

% Turn off Description button set(handles.descriptor,'visible','off');

% Executes wher user clicks "Turn On/Off Analysis Descriptions" function descriptor_Callback(hOb^ect, ~, ~) % hOb^ect handle to descriptor (see GCBO)

% Change the On to Off or vice versa if strcmp(get(hOb^ect, 'String'),'Turn On Analysis Descriptions') set(hObject, ' String','Turn Off Analysis Descriptions'); else set(hObject,'String','Turn On Analysis Descriptions'); end

F.2. C2mass function mass=C2mass(C,handles) % Converts the fit coefficient "C to tramp mass [g] % Handles allows access to COLDD GUI information.

% Get constants from the Model Contants table Const=get(handles.Constants,'Data'); phi=cell2mat(Const(strcmp(Const(:, 1) , ... 'Average Thermal Neutron Flux') , 2) ) *lel4; Btr=cell2mat(Const(strcmp(Const(:,1), 'Initial Tramp Burnup'),2)),

% Define nuclear constants To=290;T=500;A235=235.0439299;gf235=0.9364;sigf235=5.8e-22; A239=239.0521634;gf239=1.3533;sigf239=7.42e-22;

% Calculate the burnup dependant Psi term wPu=2.794*exp(7.506e-6*Btr)-2.785*exp(-0.0144*Btr); wU5=7.076*exp(-6.325e-3*Btr); Psi=sqrt(pi)/4*sqrt(To/T)*... (wU5/A235*gf235*sigf235+wPu/A239*gf239*sigf239);

% Calculate the tramp mass: mass=C/6.0221415e23/Psi*1000/phi; % Tramp mass in grams mass(mass<0)=0; % Return 0 if the mass is negative

F.3. DefectBurnupCsRatio function varargout = DefectBurnupCsRatio (varargm) % Creates a GUI that requests the user input the 137CS and 134Cs activity % (including error), and decay time. Calculates the burnup (with % uncertainty) and returns the value to the user

% Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpemngFcn', @DefectBurnupCsRatio_OpemngFcn, ... 'gui_OutputFcn', @DefectBurnupCsRatio_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback\ []); if nargin SS ischar(varargin)1)) gui_State.gui_Callback = &tr2func(varargin{1}); end if nargout [varargout(1:nargout)] = gui_mainfen(gui_State, varargin):}); else gui_mamfcn (gui_State, varargin ( : () ; end % End initialization code - DO NOT EDIT

% Executes just before DefectBurnupCsRatio is made visible. function DefectBurnupCsRatio_OpeningFcn(hObject, ~, handles, varargin) % This function has no output args, see OutputFcn. % hOb]ect handle to figure % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to DefectBurnupCsRatio (see VARARGIN)

% Choose default command line output for DefectBurnupCsRatio handles.output = hOb]ect;

% Update handles structure guidata(hObject, handles);

% Produce a warning message, wait for user to click ok before proceeding h=warndlg(sprmtf(['Caution: This algorithm is specific to average'... ' burnup Bruce A fuel \n Caution: This algorithm has not been'... ' tested on CANDU fuel'])); uiwait(h); % Below is a work arourd to get the superscript atomic numbers handles.laxis = axes('parent',hObject,'units','normalized','position', [0011],'visible','off'); % Find all static text UICONTROLS whose 'Tag' starts with latex_ Ibis = fmdobj (hObject,'-regexp','tag','latex_*') ; for 1=1:length(Ibis) 1 = lbls(i) ; set(1,'units','normalized'); % Get current text, position and tag s = get(1, 'string');p = get(1,'position');t = get(1, 'tag'); deleted),•% Remove the UICONTROL. Replace it with a TEXT object handles.(t) = text(p(l),p(2),s, 'interpreter','tex','FontSize',9,.. ' HonzontalAlignment', ' left') ; end

% UIWAIT makes the GUI wait for user response (see UIRESUME) uiwait(handles.figurel);

% Outputs from this function are returned to the command line. function varargout = DefectBurnupCsRatio_OutputFcn(~, ~, handles) % varargout cell array for returning output args (see VARARGOUT); % handles structure with handles and user data (see GUIDATA)

% Get the burnup for writing in the COLDD results box. varargout(l) = get(handles.burnup,'String'); close(handles.figurel); % Close the GUI

% Executes when the user clicks "Calculate" function Calculate_Callback(~, ~, handles) % handles structure with handles and user data (see GUIDATA)

% Collect the data: Cs137=str2num(get(handles.Cs137,'String')); sigl37=str2num(get(handles.sigl37,'String')); Cs134=str2num(get(handles.Csl34,'String')); sigl34=str2num(get(handles.sigl34,'String')); td=str2num(get(handles.td,'String'));

% Check for null and negative values. Also Csl37 or Csl34 cannot be zero check=(Csl37 sigl37 Csl34 sigl34 td] ; if length(check)<5 f-errordlg([ ' You must enter numbers for each of the five'... ' entries.'],'Error'); return elseif -lsempty(check(check<0)) f=errordlg('You canrot enter negative values','Error'); return elseif Csl37==0 I Csl34==0 f=errordlg('Cs activities must be greater than zero','Error'); return end

% Calculate burnup and error: L134-log(2)/(2.0652*365*24*3600); L137=log(2)/(30.08*365*24*3600); % Define decay constants in seconds td=td*24*3600; % Convert td to seconds B=334 9.3*Csl34/Csl37*exp(td*(L134-L137))*L137/L134/(1-2.3551*Csl34/Csl37*. L137/L134*exp(td*(L134-L137))); sigB=3 34 9.3*exp(td*(L134-L137))*L137*L134*sqrt (Csl37"2*sigl34"2+Csl34"2*. . sigl37"2)/(2.3551*Csl34*L137*exp(td*(L134-L137))-Csl37*L134)A2;

% Return burnup and error: set (handles .burnup, ' String',['Burnup =• ' num2str (B, ' % . Of' ) ' +/- '... num2str (sigB, '%.0f ' ) ' MWh/kg'J • ] ) ,-

% Executes during object creation, after setting all properties. function Csl37_CreateFcn(hObject, ~, ~) % hObject handle to Csl37 (see GCBO) % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && lsequal(get(hObject,'BackgroundColor') , ... get(0,'defaultUicontrolBackgroundColor ') ) set(hObject,'BackgroundColor','white'); end

% Executes during object creation, after setting all properties. function Csl34_CreateFcn(hObject, ~, ~) % hObject handle to Csl34 (see GCBO)

% Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && lsequal(get(hObject,'BackgroundColor'),... get(0,'defaultUicontrolBackgroundColor') ) set(hObject,'BackgroundColor','white'); end

% Executes during object creation, after setting all properties. function td_CreateFcn(hObject, ~, ~) % hObject handle to td (see GCBO)

% Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'),... get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white') ; end

% Executes during object creation, after setting all properties. function sigl37_CreateFcn(hObject, ~, ~) % hObject handle to sigl37 (see GCBO)

% Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc S& lsequal(get(hObject,'BackgroundColor'),... get (0, "defaultUicontrolBackgroundColor') ) set (hObject,'BackgroundColor', 'white') ; end

% Executes during object creation, after setting all properties. function sigl34_CreateFcn(hObject, ~, ~) % hObject handle to sigl34 (see GCBO)

% Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc Si isequal(get(hObject,'BackgroundColor'),... get(0, 'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end

% Executes during object creation, after setting all properties. function burnup_CreateFcn(hObject, ~, -) % hObject handle to burnup (see GCBO)

% Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc S& isequal(get(hObject,'BackgroundColor'),... get(0,'defaultUicontrolBackgroundColor') ) set (hObject,'BackgroundColor', 'white') ; end

% Executes when user clicks "Close" function close_Callback(~, ~, handles) % handles structure with handles and user data (see GUIDATA) uiresume(handles.figurel);

F.4. DefectBurnupFromRyc function DefectBurnupFromRyc(handles) % Varies burnup (0-500) to find the optimum R/yc fit to the data at the % user specificed time. Plots the best fit versus burnup for activity and % release rate.

% Get Required data NData=getappdata(COLDDl,'NDataS');RData=getappdata(COLDD1,'RData'); NukeData=getappdata(COLDDl,'NukeData'); yc235=NukeData(:,2);yc239=NukeData(:,3);NDataR=getappdata(COLDD1,'NDataR'); Const=get(handles.Constants,'Data');names=getappdata(COLDD1,'names');

% Issue warning message h=warndlg(['Caution: This technique requires extreme precision data "... ' (+/- 1%) and minimal tramp (remove short lived isotopes)'],... 1 ! ' Warning "'); uiwait (h);

i Get the required time from the user prompt = (['Enter time [days, between ' num2str(NData(1,1)/24/3600,. . . '%.2f') ' and ' num2str(NData(end,1)/24/3600,'%.2f'),... '] for single Burnup analysis']); dlg_title = 'Select a Time to Analyse'; num_lines = 1;def=(num2str(round ( (NData(end,1)-NData(1,1)1/2/24/3600)) ); options.Resize='on'; options.WindowStyle='normal'; options. Interpreter ' tex ' ; time=str2num(cell2mat(inputdig(prompt,dlg_title,num_lines,def,options)));

% Extract required data and get constants Model Constants lX=RData(:,3) ; L=NukeData (:, 1) ;t=NData(:, 1) ; Mc-cell2mat(Const(strcmp(Const (:,1), 'Coolant Mass'),2)); epsilon=cell2mat(Const(strcmp(Const(:,1),'Leakage Rate'),2)); Ff=cell2mat(Const (strcmp (Const (:,1),. . . 'Fission rate per element linear power'),2)); GasIX=cell2mat(Const(strcmp(Const(:,1),'IX Gas Efficiency'),2))/100;

if timet(end)/24/3600 f-errordlg ('Sorry, the time you entered is outside the range.','Oops'); h=nan;time=nan; return end

% Isolated requested data in time timei=find(t./24/3600<=time,l,'last'); NData=NData(timei,2:end);t=t(timei);IX=IX(timei);RData=RData(timei, :); NDataR=NDataR(timei,2:end);

% Create k vector for gases (ignoring ignored) avail=get(handles.DataAvail,'String');k (1:9)=0; for 1=1:length(k) for ]=1:length(avail) if strcmp(names(I),avail (i)) k(i)=l; end end end

% Select gas data L=L(k«l) ;NData=NData(k==l) ;NDataR=NDataR (k-=l) ;names=names (k==l) ; IX=IX*GasIX;yc235'yc235(k==l);yc239=yc239(k==l) ;

% Calculate R for each isotope RoBAcyc=(L+epsilon/Mc+IX/Mc)./L.*NData'.*Mc; RoBAcycR=NDataR;

% Check for more than 3 data points and remove zeroes x=L;y=RoBAcyc;x2=L;y2=RoBAcycR; x(y==0) = [l;y(y==0) = []; x2 (y2==0) = [] ;y2 (y2—0)-[] ; x(isnan(y) ) = [] ;y(isnan(y) ) = []; x2(isran(y2) ) = [ ] ; y2 (isnan (y2) ) = []; if length(x)<=3 h=errordlg ( ['Only ' num2str(length(x)) ' gases are'... ' present, insufficient for',... ' analysis: Please select a different time to analyse'],... 'CAUTION'); uiwait (h); return end

Bu=0:2:500; % Define the burnup range to scan

% Create a waitbar hbar=waitbar(0,['Calculating defect burnup using noble gas R/yc at ',... 'the user specified time of ' num2str(time) ' days']); for i=l:length(Bu)% Scan through the burnup range waitbar(l/length(Bu),hbar); % Update the waitbar

% Calculate yc(Bu) yc=ycBu(Bu(1),yc235,yc239);

% Calculate R/yc(Bu) for each isotope RoBAc=y./yc; RoBRe=y2'./yc;

% Calculate the fit [beta]=TRFit(x,RoBAc);R2(i)=beta(7); [beta]=TRFit(x2,RoBRe);R2R(i)=beta(7); end delete(hbar); % Close the waitbar

% Create the figure h=figure('Name',['Defect burnup using noble gas R/yc at ',... num2str(time) ' days']);cla;hold on; h=get(h,'CurrentAxes');plot(Bu,R2, 'r',Bu,R2R, 'k') ;

% Axes labels, title, and legend ylabeK'Goodness of Fit (Ut R" (2 }(') ;xlabel ('Burnup [MWh.kgU"(-1 ] ] ') ; title('Goodness of Fit Versus Burnup'); legend('Activity','Release Rate','Location','Best');

% Find best fit and return results set(handles.MsgResult,'String',(char(get(handles.MsgResult, 'String')),... ['Burnup analysis indicates approximately "... num2str(Bu(R2==max(R2))) ' MWh/kgU and '... num2str(Bu(R2R==max(R2R))) ' MWh/kgU by activity and'... ' release rate respectively']});

F.5. DefectBurnupFromRycScan function DefectBurnupFromRycScan(handles) % Varies burnup (0-500 MWh/kgU) to find the optimum R/yc fit to the data % This is performed at each timestep. The optimum burnup from each timestep % is then plotted against time, and an average value issued to the user.

% Issue warning message h=warndlg(['Caution: This technique requires extreme precision data '... '(+/- 1%) and minimal tramp (remove short lived isotopes)'],... ''' Warning '''); uiwait(h);

% Issue a 2nd warning message h=warndlg(['2nd Caution: This technique is coraputationaly intensive and'... ' can take a long time to complete. If it is taking too long, "... 'consider examining a smaller time range'],'11 Warning '''); uiwait(h);

% Get Required data NData=getappdata(C0LDD1,'NDataS');t=NData(1:end, 1) ; RData=getappdata(COLDD1,'RData');IX=RData(:,3); NukeData=getappdata(COLDDl,'NukeData');L=NukeData(:,1); yc235=NukeData(:,2);yc239=NukeData(:,3); NDataR=getappdata(COLDDl,'NDataR');Const=get(handles.Constants, 'Data'); names=getappdata(COLDD1,'names');

% Shrink the data to only examine the time range in the top left plot [xmin,xmax]=getrange (t,get(handles.axes1, 'XLim')); NData=NData(xmm:xmax, 2 :end) ;t=t (xmin:xmax) ; IX=IX (xmm :xmax) ; RData=RData(xmm:xmax,:);NDataR=NDataR(xmin:xmax, 2:end) ;

% Extract required data from the Model Constants table Mc=cell2mat(Const(strcmp(Const(:,1),'Coolant Mass'),2)); epsilon=cell2mat(Const(strcmp(Const(:,1) , 'Leakage Rate'),2)); Ff=cell2mat(Const(strcmp (Const(:,1) 'Eissior rate per element linear power'),2)); GasIX=cell2mat(Const(strcmp(Const(:,1),'IX Gas Efficiency'),2))/100;

% Create k vector for gases (ignoring ignored) avail=get(handles.DataAvail,'String');k(l:9)=0; for 1=1:length(k) for j-1:length(avail) if strcmp(names(l),avail(]) ) k(i)-l; end end end

% Select gas nuclear data L=L(k==l);NData=NData(:,k—1);NDataR=NDataR(:,k==l);names=names(k==l); !X=IX*GaslX;yc235=yc235(k==l);yc239=yc23 9(k-=l) ;

Bu=0:10:500; % Define the burnup range to scan ht=waitbar(0,'Calculating defect burnup using noble gas R/yc...'); for 1=1:length(t) waitbar(i/length(t),ht);

% Calculate R for each isotope (activity and release rate) RoBAcyc=(L'+epsilon/Mc+IX(i)/Mc)./L'.*NData(i,:).*Mc; RoBAcycR=NDataR(i,:);

% Scan the burnup range for -=1:length(Bu)

% Calculate yc(Bu) yc-ycBu(Bu(]) , yc235, yc239) ' ;

% Calculate R/yc(Bu) for each isotope RoBAc-RoBAcyc./yc; RoBRe=RoBAcycR./yc;

% Calculate the fit and define R2 [beta]=TRFit (L,RoBAc) ;R2 (])=beta(7) ; [beta]-TRFit(L,RoBRe);R2R(])=beta(7);

end

% If a maximum R2 exists, then record it if -lsempty(max(Bu(R2==max(R2)))) ActMax(i)=max(Bu(R2=-max(R2))) ; else ActMax(l)=NaN; end if ~isempty(max(Bu(R2R=-max(R2R)))) RelMax(i)=max(Bu(R2R==max(R2R) ) ) ; else RelMax(l)=NaN; end end delete (ht); % Close the waitbar % Create plot h=figure('Name','Burnup from R/yc fit');cla;hold on;h=get(h,'CurrentAxes ') ; plot (t./24/3600,ActMax,•r',t./24/3600,RelMax, ' k')

% Axes labels, title, and legend ylabelC Burnup [MWh. kgUA (-1)) ') ;xlabel ('Time [days]'); title('Burnup from (\it R/y_{c}) Fit');legend('Activity','Release Rate');

% Return average over the period set(handles.MsgResult,'String',{char(get(handles.MsgResult,'String')),... ['Burnup analysis indicates an average of '... num2str(nanmean(ActMax) , '%.lf') ' MWh/kgU and '... num2str(nanmean(RelMax),'%.If') ' MWh/kgU across the period by'... 1 activity and release rate respectively']));

F.6. Defectstate

function Defectstate(handles) % Uses the AECL-9714 Xel33,1133, 1131 concept for defect state and generates % a qualitative plot for the user to have an estimate of the defect state.

% Read in the data [data,~, ~]=xlsread('Defectstate.xlsx'); Xaxis=data(:,l);Xel33I131d=data(:,2);Xel33I133d=data(:,3) ;Xel33d=data(:, 4) ; % Get the required data NData=getappdata(COLDDl,'NDataS');NDataR=getappdata(C0LDD1, 'NDataR') ; RData=getappdata(COLDDl,'RData');names=getappdata(C0LDD1,'names'); NukeData=getappdata(C0LDD1,'NukeData');Avail=getappdata(C0LDD1,'Avail'); Const=get(handles.Constants, 'Data'); B=cell2mat(Const(strcmp(Const(:,1) , 'Default Element Burnup'),2)) ; Mc=cell2mat(Const(strcmp(Const(:,1),'Coolant Mass'),2)); epsilon=cell2mat(Const(strcmp(Const(:,1),'Leakage Rate') ,2)); GasIX=cell2mat(Const(strcmp(Const(:,1),'IX Gas Efficiency'),2))/100; IodineIX=cell2mat(Const(strcmp (Const(:,1),'IX Iodine Efficiency'),2))/100; % Select approriate data IX=RData(:,3);L=NukeData (:,1);yc=ycBu(B);t=NData(2:end,1) ; Xel33=find(strcmp('Xe-133•,names)==1);I133=find(strcmp('1-133',names)==1); 1131=fmd (strcmp ('1-131', names) ==1) ; %ycXel33=yc (Xel33) ; % Shrink the data to only examine the time range in the nuclides plot [xmin,xmax]=getrange(t,get(handles.axes1,'XLim')) ; IX=IX(xmin:xmax) ; NData=NData (xmm:xmax, 2 :end) ;NDataR=NDataR(xmin:xmax, 2 :end) ; % Select nuclear data L=L(1:14);yc=yc(l:14);NData=NData(:,1:14);NDataR=NDataR(:,1:14); IXeff(1:9)=GasIX;IXeff(10:14)=IodineIX; % Calculate R/yc for each isotope for 1=1:length(L) RA(:,i)=(L(i)+epsilon/Mc+IX.*IXeff(l)./Mc)./... L(i) .*NData(:,i) .*Mc./yc(i) ; RR(:,i)=NDataR(:,i) ./yc(i) ; end % Find the mean values Xel33R=nanmean(RR(:,Xel33));Xel33A=nanmean(RA(:,Xel33)); Xel33H31R=Xel33R/nanmean(RR(:,I131) ) ; Xel33I131A=Xel33A/nanmean(RA(:,I131) ) ; Xel33I133R=Xel33R/nanmean(RR(:,I133)) ; Xel33I133A=Xel33A/nanmean(RA(:,I133)) ; % Find where the mean value matches the pre-loaded data (if possible) if Xel33R. *yc (Xel33Xmm (Xel33d), DXel33R=min (Xaxis) ; elseif Xel33R.*yc(Xel33)>max(Xel33d),DXel33R=max (Xaxis); else DXel33R=interpl(Xel33d,Xaxis,Xel33R.*yc(Xel33)); end if Xel33A.*yc(Xel33)max(Xel33d),DXel33A=max(Xaxis); else DXel33A=mterpl(Xel33d,Xaxis,Xel33A.*yc(Xel33) ) ; end if isnan(Xel33I131R),DXel33I131R=nan; elseif Xel33I131Rmax(Xel33I131d) , DXel33ll31R=mm (Xaxis) ; else DXel33I131R=interpl(Xel33I131d,Xaxis,Xel33I131R); end if isnan(Xel33I131A),DXel33I131A=nan; elseif Xel33I131Amax(Xel33I131d),DXel33I131A=min(Xaxis) ; else DXel33ll31A=interpl(Xel33I131d,Xaxis,Xel33I131A); end if isnan (Xel331133R),DXel33I133R=nan; elseif Xel33H33Rraax(Xel33I133d),DXel33I133R-rain(Xaxis); else DXel33I133R=mterpl (Xel33H33d,Xaxis,Xel33H33R) ; end if isnan(Xel33I133A),DXel33I133A=nan; elseif Xel33I133Amax(Xel33H33d) , DXel331133A=min (Xaxis) ; else DXel33I133A=interpl(Xel33I133d,Xaxis,Xel33I133A); end % Create the plot h=figure('Name','Defect State');cla;hold on;tv=get(h,'CurrertAxes'); set(h,'YScale','log')

% Plot results semilogy(Xaxis, 10."(Iogl0(Xel33d)-11) ,'k-', 'LineWidth',2) ; semilogy(DXel33R,10"(loglO(Xel33R.*yc(Xel33))-ll),'ko','LineWidth',10) semilogy(DXel33A,10"(loglO (Xel33A.*yc(Xel33))-ll),'co', 'LineWidth',10); semilogy (Xaxis, Xel33H31d, ' k-' , ' LireWidth ', 2) ; semilogy(DXel33I131R,Xel33I131R,'k+','LineWidth',10) semilogy (DXel33H31A,Xel33H31A, ' c+', 'LineWidth', 10) ; semilogy(Xaxis,Xel331133d,'k-','LineWidth',2); semilogy(DXel33H33R,Xel33I133R, 'k*', ' LineWidth', 10) semilogy(DXel331133A,Xel331133A,'c*','LineWidth',10) % Add text information xlabel('Defect increasing in power/size from left to right') ylabel('Xenon/Iodine Ratio, "(133)Xe Release Rate [atom/s]') text (0,60, '"[133}Xe/"(131)I', ' FontWeight', 'bold') ; text(0,400,'"(133}Xe/"(133)1','FontWeight','bold'); text(0,2,'"{133)Xe Release rate [atom.s"(-1}]','FortWeight','bold'); text (0,0.2, ['Cyan circle - activity result. Black circle "... '= release rate result']) set(h,'YTick',[0.1 1 10 100 1000]); set(h,'YTickLabel',{'0.1, lelO','1, lell','10, lel2',... '100, lel3','1000, lel4'}) % Add coloured areas semilogy([0 0.85 0.85 0 0],[le-l le-l 1000 1000 le-l],'b:') fill([0 0.85 0.85 0 0],[le-l le-l 1000 1000 le-l],'b','FaceAlpha',0.1,... 'EdgeColor', 'none ') text(0.01,800,'Small/Medium Defect Zone','FontWeight','bold') semilogy([0 0 11 0],[le-l 10 10 le-l le-l],'g: ') fill([0 0 11 0],[le-l 10 10 le-l le-l], 'g','FaceAlpha',0 .1, 'EdgeColor',... 'none') text (0.01,8, 'Tramp Zone', 'FontWeight', 'bold') title('Zone with most data points is the approximate defect state') semilogy([0.85 0.85 0.5 0.5 1 1 0.85],[le-l 10 10 le3 le3 le-l le-l],'r:') fill([0.85 0.85 0.5 0.5 1 1 0.85],[le-l 10 10 le3 le3 le-l le-l],'r',... 'FaceAlpha',0.1,'EdgeColor','rone1) text(0.51,800,'Large Defect Zone','lontWeight','bold') fill([0.85 0.85 1 l],[le-l 10 10 le-l],[.7 .5 0],'FaceAlpha',0.1,... 'EdgeColor','none')

F.7. DefSizeRatios function varargout = DefSizeRatios (varargm) % Produces a GUI that lets the user select which isotopes to use for a % defect size by isotope ratio. Different species (preferred) or same % species (secondary) can be selected. Nuclides are orgnized in order of % priority

% Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State - struct('gui_Name', mfilename, ... 'gui__Smgleton ' , gui_Smgleton, ... 'qui OpenmgFcn', 8DefSizeRatios OpenmgFcn, ... 'gui_OutputFcn', @DefSizeRatios_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback\ []); if nargm && ischar (vararginf 1)) gui_State.gui_Callback = str2func (varargm( 1}) ; end if nargout [varargout{l:nargoutl] = gui_mainfcn(gui_State, vararginj: }) ; else gui_mamfcn (gui_State, varargin( : )) ; end % End initialization code - DO NOT EDIT

% Executes ]ust before DefSizeRatios is made visible. function DefSizeRatios_OpemngFcn (hObject, -, handles, varargm) % This function has no output args, see OutputFcn. % hObject handle to figure % handles structure with handles and user data (see GUIDATA) % varargin command lire arguments to DefSizeRatios (see VARARGIN)

% Choose default command line output for DefSizeRatios handles.output = hOb]ect;

% Update handles structure guidata(hObject, handles);

% If 3 or more iodines or gases are available, then suggest a b or nu based % analysis. names= [varargin (1); varargin{2) ]; iodines=sum(cell2mat (strf md (names, ' I') ) ) ; gas=sum(cell2mat(strfind(names,'X')))+sum(cell2mat(strfind(names,'K'))); if iodines>=3 f=warndlg(['There are sufficient iodines for a nu or b based size'... 1 estimate'], 'Warning');uiwait(f); end if gas>=3 f=warndlg (['There are sufficient gases for a b based size1... 1 estimate1], 'Warning');uiwait(f); end

% Organize and display options numerP=('Xe-133';'Xe-133m\ 'Kr-85m';'Kr-88';'Kr-87';'1-131';... '1-133';'1-135'); % Prime order for numerator. denomP={ '1-131'; '1-133';'1-135';'Kr-87';'Kr-88';'Kr-85m'}; % Prime denom

% Determine availabity and sort: numer=[];denom=[]; for 1=1:length(numerP) if strmatch(numerPfi}, names, 'exact') numer(end+1}=numerP(i) ; end end for 1=1:length(denomP) if strmatch(denomP{i),names, 'exact') denomf end+1 }=denomP( I ) ,- end end

% Display the nuclides (in order of priority) set(handles.numer,'string',numer);set(handles.denom,'string',denom); handle=varargin(3);setappdata(C0LDD1,'DefSizeRate',handle); set(hOb^ect,'Name','Choose your ratio')

% UIWAIT makes DefSizeRatios wait for user response (see UIRESUME) uiwait(handles.figurel);

% Outputs from this function are returned to the command line. function varargout = DefSizeRatios OutputFcn (~, ~, handles) % varargout cell array for returning output args (see VARARGOUT); % handles structure with handles and user data (see GUIDATA)

% Define output for COLDD to put in the Results listbox varargoutf1}=get(handles.result,'String'); close(handles.figurel); % Close GUI when done

% Executes when user clicks "Ok" function OK_Callback(~, ~, handles) % handles structure with handles and user data (see GUIDATA)

% Get selected numerator (numer) and denominator (denom) numer=cellstr(get(handles.numer,'String'));% returns contents as cell array numer-numer(get(handles.rumer,'Value')}; % returns selected item denom=cellstr(get(handles.denom,'String'));% returns contents as cell array denom=denom{get(handles.denom,'Value')}; % returns selected item

% Get nuclear data NukeData=getappdata(COLDDl, 'NukeData');names^getappdata(COLDDl, 'names'); NData=getappdata(COLDDl,'NDataS');NDataR=getappdata(COLDDl,'NDataR'); RData^getappdata(COLDDl,'RData');

% Find the numer and denom lambda and yc LXe=NukeData(strmatch(numer,names,'exact'),1); LI=NukeData(strmatch(denom,names, 'exact' ), 1) ; handle=getappdata(COLDDl, 'DefSizeRate');Const=get(handle.Constants, 'Data') ; yc=ycBu(ce!12mat(Const(strcmp(Const(:,1),'Default Element Burnup'),2))); Mc=cell2mat(Const(strcmp(Const(:,1), 'Coolant Mass'),2)); epsilon=cell2mat(Const(strcmp(Const(:, 1),'Leakage Rate'),2)); IodineIX=cell2mat(Const(strcmp(Const(:,1),'IX Iodire Efficiency'),2))/100; GasIX=cell2mat(Const(strcmp(Const(:,l),'IX Gas Efficiency'),2))/100; yXe=yc (strmatch(numer,names,'exact') , 1) ; yl=yc (strmatch(denom,names, 'exact'),1);

% Shrink the data to only examine the time range nuclide plot t=NData (1 :end, 1) ; [xmm, xmax] =getrange (t,get (handle.axes 1, 'XLim') ) ; NData=NData(xmin:xmax,:);t'NData(1:end,1);IX=RData(:, 3) ; IX=IX (xmm:xmax) ;RData=RData (xmin:xmax, :) ;NDataR=NDataR(xmm: xmax, :) ;

% Get the data Xe=NData(:,strmatch(numer, names, 'exact')+1) ; I=NData(:,strmatch(denom, names, 'exact')+1);

% Determine R/yc for gas or iodine for numer and denom from activity if strcmp(numer(1), 'X') I strcmp (numer(1),'K') RXeoyXe=(LXe+epsilon/Mc+IX.*GasIX/Mc)./LXe.*Xe.*Mc./yXe; else RXeoyXe=(LXe+epsilon/Mc+IX.*IodmeIX/Mc) ./LXe.*Xe.*Mc./yXe; end if strcmp(denom(1),'X') I strcmp(denom(1),'K') RIoyI=(LI+epsilon/Mc+IX.*GasIX/Mc)./LI.*I.*Mc./yl; else RIoyI=(LI+epsilon/Mc+IX.*IodineIX/Mc)./LI.*I.*Mc./yI; end

% Determine R/yc for gas or iodine for numer and denom from release rate XeR=NDataR(:,strmatch(numer, names, 'exact')+1); IR=NDataR(:,strmatch(denom,names, 'exact')+1) ; RXeoyXeR-XeR./yXe;RIoyIR=IR. /yl;

% If mixed species ratio then find E, else calculate b: if strcmp(numer(1) ,'X') S strcmp(denom(1),'I')

nuXe=le-5; % Default nuXe Rp=RXeoyXe./RIoyI;RpR=RXeoyXeR./RIoylR; % Calculate temp ratios a=7.5;b=0.7;L=0.477;n=l;alphaNG=7.1e-6; % Define constants

% Calculate defect sie E=10"(a/b)*LI"(3/2/b)*alphaNG~(1/b).*(1./(Rp.*sqrt(LXe)*nuXe+... Rp.*LXe"(3/2)-sqrt(LI)*nuXe)."2)."(1/2/b); ER=10A(a/b)*LIA(3/2/b)*alphaNG~(1/b).*(1./(RpR.*sqrt(LXe)*nuXe+... RpR.*LXeA(3/2)-sqrt(LI)*nuXe).A2).A(1/2/b); % Plot data h=figure('Name','Defect Size Using Mixed Species Ratio');cla;hold on; h=get(h, 'CurrentAxes') ;plot (t./24/3600, E, 'r') ,-plot (t./24/3600,ER, ' k') ; set(h,'YLim', [0 mm([50 max(get(h,'YLim'))])]); legend('Activity Data','Release Rate Data','Location','Best'); ylabel('Approximate Defect Size [mm"2]');xlabel('Time [days]') title(['From ' numer '/' denom ' ratio']);

% Report results result^['Defect size from mixed species ratio averaged over period'.. 1 is ~ ' num2str(nanmean(E)) ' +/- ' num2str(nanstd(E)) ' mm2']; set (handles.result,'String',result); se % Same species calculation

% Calculate "b" b=log(RXeoyXe./RIoyI)./(log(LXe)-log(LI)); bR=log(RXeoyXeR./RIoyIR)./(log(LXe)-log(LI));

% Define sizes if strcmp(numer(1),'I') Tramp=0;Large=-0.5;Small=-1.5;Med=-l; else Tramp=0;Large=-0.5;Small=-l;Med=-l; end

% Plot figure h^figure('Name','Defect Size Using Same Species Ratio');cla;hold on; h=get(h,'CurrentAxes');t=t./24/3600;plot(t,b, 'r');plot(t,bR,'k') ; if strcmp(numer(1),'X') % Iodine plot plot([t(l) t(end)],[Tramp Tramp], 'c'); plot([t(l) t(end)],[Large Large],'g'); plot([t(l) t(end) ], [Med Med], 'y') ; plot([t(l) t(end)],[Small Small],'b'); legend)'Activity Data','Release Rate Data','Tramp',... •Large Defect 300-1500 mm"(2))',.. . 'Medium Defect 10-200 mm"(2}) ', 'Small Defect (<1 mm"(2))',... 'Location','Best'); else % Gas plot plot([t(l) t(end)],[Tramp Tramp],'c'); plot([t(l) t (end)],[Large Large],'g') plot([t(D t(end)],[Small Small],'b'), legend)'Activity Data','Release Rate Data','Tramp',... "Large Defect (300-1500 mm"{2))',... 'Small/Medium Defect (1-200 mm"(2))'); end

% Add title and axis labels title(['From ' numer '/' denom ' ratio']);xlabel('Time [days]'); ylabel('Size Coefficient "b"');

% Report results by size range bavg=round(nanmean(b)*10)/10;bRavg=round(nanmean(bR)*10)/10; if strcmp(numer(1),'I') if mean([bavg bRavg]) > (-0.2) dtype='Tramp'; elseif mean([bavg bRavg]) <= (-0.2) 4 mean([bavg bRavg]) > (-0.7) dtype-'Large OR Tramp only'; elseif mean([bavg bRavg]) <= (-0.7) & mean([bavg bRavg]) > (-1.2) dtype='Medium'; elseif mean([bavg bRavg]) <= (-1.2) 4 mean([bavg bRavg]) > (-1.5) dtype='Medium/Small'; else dtype='Small'; end else if mean([bavg bRavg]) > (-0.2) dtype='Tramp'; elseif mean([bavg bRavg]) <= (-0.2) 4 mean([bavg bRavg]) > (-0.7) dtype='Large OR Tramp only'; else dtype='Small/Medium'; end end

set(handles.result, 'String ',['Defect size by same species ratio'... ' averaged over the period indicates defect is ' dtype... ' by activity and release rate analysis.']); end uiresume(handles.figurel); % Close the GUI

% Executes during object creation, after setting all properties. function numer_CreateFcn (h.Object, ~, ~) % hObject handle to numer (see GCBO)

% Hint: listbox controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && lsequal(get(hOb]ect, 'BackgroundColor'),.. . get (0, 'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end

% Executes during object creation, after setting all properties. function denom_CreateFcn(hObject, ~, ~) % hOb^ect handle to denom (see GCBO)

% Hint: listbox controls usually have a white background on Wirdows. % See ISPC and COMPUTER. if ispc && lsequal(get(hObiect,'BackgroundColor'),.. . get (0, 'defaultUicortrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end

F.8. Dnumberl131 function DnumberI131(handles) % Returns the number of defects based on the activity ard the release rate % of 1131 using the release per defect in the Model Constants. % Results is plotted as a function of time, ard the average returned to the % results listbox.

% Get the required data NDataS-getappdata(COLDDl,'NDataS');NDataR=getappdata(COLDD1,'NDataR'); RData=getappdata(COLDD1,'RData');NukeData=getappdata(COLDD1,'NukeData'); Const=get(handles.Constants,'Data');names=getappdata(COLDD1,'names'); iso=f md(strcmp (' 1-131', names) ==1) ;

% Extract required data and get constants from Model Corstarts IX=RData(:,3).»cell2mat(Const(strcmp(Const(:,1),... 'IX Iodire Efficiency'),2))/100;L=NukeData(iso,1);t=NDataS(:, 1) ; I131A=NDataS(:,iso+l);I131R-NDataR(:,iso+1); Mc=cell2mat(Const(strcmp(Const (:,1),'Coolant Mass'),2)); epsilon=cell2mat (Const(strcmp(Const(:,1), 'Leakage Rate'),2)); I131perDefect=cell2mat(Const(strcmp(Const(:,1),... '13K/sup>I Release/Defect ') , 2) ) ;

% Shrink the data to only examine the time range in the top left plot (xmin,xmax]=getrange(t,get(handles.axesl,'XLim'));I131A=I131A(xmin:xmax); I131R=I131R(xmin:xmax);t=t(xmin:xmax);IX=IX(xmin:xmax);

% Check to see if 1131 is near detection limit. Temp=diff(I131A);BDL=0; for 1=1:length(Temp) if Temp(i)==0 BDL=BDL+1; end end % Report to User if more than 1% of the data is identical. if round(BDL/length(I131A)*100)>=l % Warn user and ask to continue or stop ButtonName=questdlg<['Caution, ' num2str(round(BDL/length(I131A)*100))... 1 % of the 1131 data currently shown is identical, most likely '... 'because it is near the detection limit.'... ' Click "Ok" to continue, or "Cancel" to stop'], ... 'Warning', ... 'Ok', 'Cancel', 'Ok');

switch ButtonName, case 'Cancel', return % Terminate case 'Ok', % Continue end end

% Compute the number of defects assuming steady-state throughout DnumberA=Mc/L*(L+IX/Mc+epsilon/Mc)/I131perDefect.*I131A; DnumberR=I131R./I131perDefect;

% Issue results to MsgResult indexSelected=get(handles.AnalysisType, 'Value'); Atype=get(handles.AnalysisType, 'String') ; set(handles.MsgResult,'String',(char(get(handles.MsgResult, ... 'String')),['During Period t = ' num2str(t(1)/24/3600,'%.If•)... ' to ' num2str(t(end)/24/3600,'%.lf') ' days. Defect number'... ' by 1131 activity and release rate indicates'... ' approximately:'])); set(handles.MsgResult,'String',(char(get(handles.MsgResult,... 'String')),[num2str(round(nanmean(DnumberA)*10)/10) ' +/- "... num2str(round(nanstd(DnumberA)*10) /10) . . . ' defects by activity analysis and "... num2str(round(nanmean(DnumberR)*10)/10) ' +/- "... num2str(round(nanstd(DnumberR)*10)/10) ... ' defects by release rate analysis.']));

% Create Figure h=figure('Name','Defect number by 1131 activity and release rate');cla; hold on;h=get(h,'CurrentAxes');

% Plot data plot(t./3600/24,DnumberA,'r','linewidth',2); plot(t./3600/24,DnumberR,'k1,'linewidth', 2);

% Set axis limits, place legend, and add axis labels set(h,*YLim1,[0 1.l*max(max([DnumberA DnumberR]))]) set(h,*XLim', get(handles.axesl,'XLim')) legend)'Activity','Release Rate','Location','Best') ylabel('Defect Number');xlabel('Time [days]');

F.9. Dp function [D]=Dp(P) % Takes in P [kw/m] and returns the empirical diffusion coefficient D'(P)

% New CANDU D D=9e-12*10."M0.114.*P) . /P. "2 . * (P>=7 . 6) +1. 5e-13 . *P. * (P<7 . 6) ;

% NRX D % D=10*(8.632*logl0(P)-23.4091); % Gas % D=1(T (9.857*logl0(P)-25.1314); % Iodine

F.10. getNData function [NData,Avail]=getNData(handles) % Loads the Nuclide Data in handles irto NData in the format % Timefs],133Xe[Bq/kg],133mXe[Bq/kg],...; nuclide order is defined by % the nuclear constants file. Avail is a list of O's and l's for presence % or not of that isotope. An error is returned if the time sequence in % handles is not sequential, or there are identical duplicate time values.

% Read in the FP data iileNames=getappdata(COLDD1, 'FileNames'); [Data,nuclides,~]=xlsread(FileNames(1}) ;

% Check that the time sequence is continuous and there are no duplicates for i=l:length(Data(:,l))-1 if Data(1,1)>=Data(l+l,1) % Look for an increase or duplicate in time % Display an error message, including the error time. % Wait for user response then terminate f = warndlg ([' Error: Fission Product time data not contmous, "... 'or contains duplicates at time = ',... num2str(Data(I,1)) ' s. Analysis will terminate'], 'Warning'); uiwait(f); NData=l;Avail=l; % Define output values to be rejected by COLDDl.m return end end

% Create an empty NData matrix of correct size rames=getappdata(C0LDD1, 'names'); NData(1:length(Data(:,1)),1:length(names)+1)=NaN;

% Populate NData matrix, putting nuclides in correct order NData (:,l)=Data(:,l);Avail=zeros(1,length(names));

% Flip Avail to 1 where the nuclide exists for 1=1:size(nuclides,2) for ]=1:length(names) if strcmp(nuclides(2,l),names (]) ) NData (:, j+1) -Data (:, I) ,- Avail(3)=1; end end end

% List all the available nucldies in the Data Available list box set (handles.DataAvail,'Strirg', names(Avail=-1));

% Set 0 activity to nan to prevent divide by 0 in other analysis t=NData(:,1);NData(isnan(NData))-0;NData(:,1)=t;

F.11. getrange function [x-nin, xmax] =getrange (t, xlim) % Returns the indices of vector t that match the time range in xlim xmm=max( [1 f md (t./3600/24<=xlim(l) , 1, ' last' ) ] ) ; xmax-min([length(t) findft./3600724>=xlim(2),1,'first')]) ;

* Below is my original non-optimized method performing the same task. The % two lines above are much faster.

% while t(i)/3600/24xlim(l) % xtiin=l; % elseif td)/3600/24<=xlim(l) % xmin=i; % end % 1=1+1; % end % xmax=i; F.12. getRData function RData=getRData % Loads the Reactor Data from the previously selected file. Format is: % Time [s]. Power [RFP], Purification Flow [kg/s]. % Returns an error if Time is not sequential or there are duplicates.

% Read in the reactor data FileNames=getappdata(C0LDD1,'FileNames'); [RData,~,~]=xlsread

% Check that the time sequence is continuous and there are no duplicates for i=l:length(RData(:,1))-1 if RData(1,l)>=RData(i+l,1) % Look for an increase or duplicate in time % Display an error message, including the error time. % Wait for user response then terminate f *• warndlg( ['Error: Fission Product time data not continous, '... 'or contains duplicates at time = ',... num2str(Datad,1)) ' s. Analysis will terminate'], 'Warning'); uiwait(f); RData=l; % Define output values to be rejected by COLDDl.m return end end

F.13. NuclideRemoval function varargout = NuclideRemoval(varargin) % This function creates a GUI that the user can use to select which % nuclides to include or ignore in the subsequent analysis

% Begin initialization code - DO NOT EDIT gui_Singleton - 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Smgleton, ... 'gui_OpemngFcn', SNuclideRemoval_0pemngFcn, ... 'gui_OutputFcn', @NuclideRemoval_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []); if nargm &S ischar (varargin(l)) gui_State.gui_Callback = str2func(varargin(1}) ; end

if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin):}); else guijnainfcn(gui_State, varargin(: }) ; end % End initialization code - DO NOT EDIT

% Executes just before NuclideRemoval is made visible. function NuclideRemoval_0pemngFcn (hObject, ~, handles, varargin) % This function has no output args, see OutputFcn. % hObject handle to figure % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to NuclideRemoval (see VARARGIN)

% Choose default command line output for NuclideRemoval handles.output = hObject;

% Update handles structure guidata(hObject, handles);

% Define input parameters to be passed from COLDDl.m when calling this file set(handles.Avail,'String',varargin(1(); set(handles.Ignore,'String',varargin{2}); set(handles.names,'String',varargin{3(); % Place holder for names

% Define name and make C0LDD1 wait for a reply set(hOb]ect,'Name','Choose Nuclides');uiwait (handles.figure1);

% Outputs from this function are returned to the command line. function varargout = NuclideRemoval_OutputFcn (-, --, handles) % varargout cell array for returning output args (see VARARGOUT); % handles structure with handles and user data (see GUIDATA)

% Return the new available and ignored strings and close the GUI varargout(l) = get(handles.Avail,'String'); varargout(2) = get(handles.Ignore,'String'); close(handles.figurel);

% Executes when user clicks "Remove" button function Remove_Callback(~, ~, handles) % handles structure with handles and user data (see GUIDATA)

% Get 'names' for sorting names=get(handles.names,'String');

% Get Available nuclides string and current index avail=cellstr(get(handles.Avail,'String')); index=avail{get(handles.Avail,'Value'));

% Remove selected nuclide from the available string avail(get(handles.Avail,'Value'!)=[]; set(handles.Avail,'Value',1); set(handles.Avail,'Strirg',avail);

% Add selected nuclide to Ignored string, sorting by names temp=cellstr(get(handles.Ignore,'String')); temp=temp(-strcmp(temp,''));temp= ftemp' index];Ignore={[] }; for 1=1:length(names) for 3=1:length(temp) if strcmp(names{li,tempi])) Ignore(end+1}=temp{](; end end end Ignore(1)=[];set(handles.Ignore,'String',Ignore);

% Executes when user clicks the "Add" button function Add_Callback(~, ~, handles) % handles structure with handles and user data (see GUIDATA) % This is the reverse of the "Remove" button callback.

% Get 'names' for sorting names=get(handles.names,'String');

% Get Ignored nuclides string avail-cellstr(get(handles.Ignore,'String' ) ) ; index=avail{get(handles.Ignore,'Value'));

% Remove selected nuclide from the Ignore string avail(get(handles.Ignore, 'Value ')) = []; set(handles.Ignore,'Value ', 1) ; set(handles.Ignore,'String',avail);

% Add selected nuclide to Avail, sorting by rames temp=cellstr(get(handles.Avail,'String'));temp=temp(-strcmp(temp,'')); temp=[lemp' index];Avail={[]); for l-l:length(names) for j=l:length(temp) if strcmp(names(l),tempij)) 253

Avail {end+l}=temp{;)) ; end end end Avail(1) = [];set(handles.Avail, 'String',Avail);

% Executes during object creation, after setting all properties. function Avail_CreateFcn(hOb]ect, ~, ~) % hObject handle to Avail (see GCBO)

% Hint: listbox controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && lsequal(get(hOb]ect,'BackgroundColor'), ... get(0,'defaultUicontrolBackgroundColor') ) set(hObject,'BackgroundColor', 'white'); end

% Executes during object creation, after setting all properties. function Ignore_CreateFcn (hObject, ~, ~) % hObuect handle to Ignore (see GCBO)

% Hint: listbox controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc ss lsequal(get(hobject,'BackgroundColor'),.. . get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor', 'white'); end

% Executes when user clicks "Done" function Done_Callback(~,~,handles) % handles structure with handles and user data (see GUIDATA)

% Present a warning if no selected nuclides, or close GUI and return values if lsempty(get(handles.Avail,'String')) f = warndlg(['You must have some selected nuclides in the left'... ' coloumn'], 'Warning'); uiwait(f); else uiresume(handles.figurel); % close GUI and return values end

F.14. plot2 function [Y,L]=plot2(Data,handles) % Creates Y(data) and L(legend) for plotting on the top left plot

% Get the list and indices of selected nuclides list=get(handles.DataAvail,'String') ; indices=get(handles.DataAvail, 'Value') ;

% Find the coloumn in NData associated with names=getappdata(COLDD1,'names') ;

Y=[];L-{[] ); % Pre-build empty matrices

for 1=1:length(indices) % Go through all the indices for 3=1:length(names) % Compare against all the names if strcmpdist (indices (l) ),names (]) ) % Add matches to Y and L Y(:,end+l)=Data(:,3+l); L=(L{l:end) char(names(]))); end end end L(!)=[]; % Discard L(l), it's an artefact of the algorithm above and is [] F.15. plotP function plotP (handles) % Assumes 1 element and uses Xel33 activity and release to return element % power. If nu(t) is available, it is not used.

% Get the data NData=getappdata(COLDDl,'NDataS');RData=getappdata(C0LDD1,'RData') ; NukeData=getappdata(COLDDl,'NukeData');NDataR=getappdata(C0LDD1, 'NDataR') ; Const=get(handles.Constants,'Data');cases=getappdata(C0LDD1, 'cases'); names=getappdata(COLDD1, 'names');

% Extract required data and get constants from Model Constants IX=RData(:,3);L=NukeData(:,1);t=NData(1: end, 1) ; Mc=cell2mat(Const(strcmp(Const(:,1),'Coolant Mass'),2)) ; B=cell2mat(Const (strcmp(Const(:,1),'Default Element Burnup'),2)); yc=ycBu(B); epsilon=cell2mat(Const(strcmp(Const(:,1),'Leakage Rate'),2) ) ; Ff=cell2mat(Const(strcmp(Const (:,1),... 'Fission rate per element linear power '),2)); GasIX=cell2mat(Const(strcmp(Const(:,1),'IX Gas Efficiency'),2))/100; X=cell2mat(Const (strcmp(Const(:,1), 'Default Number of Defects'),2)); P=cell2mat(Const (strcmp(Const(:,1), 'Default Power Estimate') ,2));

% Get any iodines or kryptors being ignored and remove from NData, NDataR Missing=get(handles.Ignored,'String')'; for i=l:length(names) for j-1:length(Missing) if strcmp(names(l),Missing(3)) NData (:,l + l)=nan; NDataR(:, i + l)=nan; end end end

% Shrink the data to only examine the time range in the nuclides plot [xmm, xmax] =getrange (t, get (handles .axesl, 'XLim')); NData=NData (xmin :xmax, :) ; t=t (xmin:xmax) ; IX= IX (xmm: xmax) ; RData=RData (xmm: xmax, :);NDataR=NDataR(xmin:xmax, :);

% Select Xel33 nuclear data L=L(1);yc=yc(1);NData-NData(:,2);NDataR-NDataR(:,2); IX=IX.*GasIX;

% Calculate R from activity assuming steady state RAc=(L+epsilon/Mc+IX./Mc)./L.*NData.*Mc;

% Calculate power: PRe=2/0.114.*log(NDataR./3/X/Ff/yc'sgrt(L/9e-12))/log(10); PAc=2/0.114.*log(RAc./3/X/Ff/yc*sqrt(L/9e-12))/log(10);

% Create figure and plot results h=figure('Name','Defect Power from Xe-133');cla;hold on; h=get(h,'CurrentAxes'); plot(t./3600/24,PRe,'r',t./3600/24,PAc, 'k'); plot(RData(:,1)./3600/24,RData(:,2),'b'); legend('Release Rate','Actvity Data','Reactor Power','Location','Best'); xlabelCTime [days]'); ylabel ('Power [kW.m" (-1) ] ') ; set(h,'YLim',[0 min([100 1.l'max(get(h,'YLim'))])]); set(h, 'XLim',get(handles.axesl,'XLim'));title('Defect Power from A{133}Xe')

% Report and plot set(handles.MsgResult,'String',(char(get(handles.MsgResult,'String')),... ['Averaged across the period, a power of '... num2str(round(nanmean(PAc)*10)/10) '+/- "... num2str(round(nanstd(PAc)*10)/10) ' kW/mor '... num2str(round(nanmean(PRe)*10)/10) '+/- '... num2str(round(nanstd(PRe)*10)/10) ' kW/m (activity, release) is'... ' needed to produce the Xel33 assuming ' num2str(X) ' defect(s)'])); F.16. PRatio function varargout = PRatio(varargin) % GUI file that presents a GUI asking the user to input two reactor power % levels and the associated release rate at each power level. Code then % returns the element power to the results box.

% Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Narae', mfilename, ... ' gui_Singleton', gui_Smgleton, ... 'gui_OpeningFcn', @PRatio_OpenmgFcn, ... 'gui_OutputFcn', @PRatio_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []); if nargin SS ischar(varargin)1)) gui_State.gui_Callback - str2func(varargin(l)); end if nargout [varargout {l:nargout}] = gui_mamf en (gui_State, varargin{ : }) ; else gui_mainfen(gui_State, varargin(:}); end % End initialization code - DO NOT EDIT

% Executes just before PRatio is made visible. function PRatio_OpemngFcn(hOb]ect, ~, handles, varargin) % This function has no output args, see OutputFcn. % hObject handle to figure % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to PRatio (see VARARGIN)

% Choose default command line output for PRatio handles.output = hObject;

% Below is a work around to get supscripts to display m the GUI: handles.laxis=axes('parent',hOb]ect,'units','normalized','position',... [0 0 11],'visible','off'); % Find all static text UICONTROLS whose 'Tag' starts with latex_ Ibis = findobj(hObject,'-regexp','tag','latex_*'), for 1-1:length(Ibis) 1 = lbls(i); % Get current text, position and tag set(1,'units','normalized'); s=get(1,'string');p=get (1,'position');t-get(1,'tag'); deleted); % Remove the UICONTROL % Replace it with a TEXT object handles, (t) = text(p(l),p(2),s, 'interpreter','tex','FontSize',9, ... 'HonzontalAlignment', ' left') ; end

% Update handles structure guidata(hOb]ect, handles);

% UIWAIT makes PRatio wait for user response (see UIRESUME) uiwait(handles.figurel);

% Outputs from this function are returned to the command line. function varargout = PRatio_OutputFcn(~, ~, handles) % varargout cell array for returning output args (see VARARGOUT); % handles structure with handles and user data (see GUIDATA)

% Return the two power levels PI and P2 varargout(1) = get(handles.PIResult,'String'); varargout(2) = get(handles.P2Result,'String'); close(handles.figurel), % Close the GUI function Pl_Callback(~, -, handles) % handles structure with handles and user data (see GUIDATA)

% If P2 or alpha available, complete the third box: if -isempty(get(handles.alpha,'String')) % If alpha present: set(handles.PI,'String',num2str(str2num(get(handles.P2,'String'))/... str2num(get(handles.alpha,'String')))); elseif -isempty(get(handles.P2,'String')) % If P2 present: set (hardies .alpha, 'String', num2str (str2num(get (handles .P2,'String'))/... str2num(get(handles.PI,'String')))); end function alpha_Callback(~, ~, handles) % handles structure with handles and user data (see GUIDATA)

% If PI or P2 available, complete the third box: if -isempty(get(handles.PI,'String')) % If PI present: set(handles.P2,'String',num2str (str2num(get(handles.PI,'String'))*... str2num(get(handles.alpha,'String')))); elseif -isempty(get(handles.P2,'String')) % If P2 present: set(handles.PI,'String',num2str (str2num(get(handles.P2,'String'))/... str2num(get(handles.alpha,'String')))) ; end function P2_Callback(~, ~, handles) * handles structure with handles and user data (see GUIDATA)

% If PI or alpha available, complete the third box: if -isempty(get(handles.alpha,'String')) % If alpha present: set(handles.PI,'String',num2str(str2num(get(handles.P2,'String'))*... str2num(get(handles.alpha, 'String')))); elseif -isempty(get(handles.PI,'String')) % If PI present: set(handles.alpha,'String',num2str(str2num(get(handles.P2,'String'))/... str2num(get(handles.Pl,'Strirg')))); end

% Executes when user clicks "Calculate" function calculate_Callback(~, ~, handles) % handles structure with handles and user data (see GJIDATA)

% Check data is available if isempty(get(handles.Rl,'String')) | isempty(get(handles.R2, ' String')).. . I isempty(get(handles.alpha,'String')) set(handles.PIResult,'String','You must enter Rl, R2,') set(handles.P2Result, 'String', ' and alpha') else % Perform calculation

% Get release rate and error data Rl=str2num(get(handles.Rl,'String')); if isempty(get(handles.sigRl,'String')) sigRl=0; else sigRl=str2num(get(handles.sigRl,'String')); end R2=str2num(get(handles.R2,'String')); if isempty(get(handles.sigR2,'String')) sigR2=0; else sigR2=str2num(get(handles.sigR2,'String1)); end

% Get remaining data alpha=str2num(get(handles.alpha,'String')); b=0.114;sigb=0.006; Pl=str2num(get(handles.PI,'String')); P2=str2num(get(handles.P2,'String'));

% Check no confusion between _1 and _2 for P and R if RKR2 S P1>P2 set (handles.PIResult, 'String','RKR2 but P1>P2, one of) set(handles.P2Result,'String',' these is the wrong way rourd?') elseif R1>R2 & PKP2 set (handles. PIResult, 'String', 'R1>R2 but PKP2, one of) set(handles.P2Result,'String',' these is the wrong way round?1) else % Calculate powers PI—2*logl0 (R1/R2) / (b* (alpha-1) ) ; sigPl=2*sqrt(1/(log(10)A2*bA2*(alpha-1)A2)*((sigRlA2)/(R1A2)+... (sigR2A2)/(R2A2)+log(Rl/R2)A2/bA2*sigbA2)) ; P2=alpha*Pl; sigP2=alpha*sigPl;

% Report Results set(handles.PIResult,'String*,[num2str(round(PI)) ' +/- ',... num2str(round(sigPl)) ' kW/m']); set(handles.P2Result,'String',[nura2str(round(P2)) ' +/- ',... num2str(round(sigP2)) ' kW/m'l); end end

% Executes when user clicks "Done" function Done_Callback(~, ~, handles) % handles structure with handles and user data (see GUIDATA) uiresume(handles.figurel); % Close figure and return results

% Executes during object creation, after setting all properties. function Pl_CreateFcn(hObject, ~, ~) % hObject handle to PI (see GCBO)

if ispc SS lsequal(get(hObject, 'BackgroundColor') , . . . get(0,'defaultUicontrolBackgroundColor') ) set(hObject,'BackgroundColor','white'); end

% Executes during object creation, after setting all properties. function alpha_CreateFcn(hObject, ~, -) i hObject handle to alpha (see GCBO) if ispc SS lsequal(get(hObject,'BackgroundColor'),... get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end

% Executes during object creation, after setting all properties. function P2_CreateFcn(hObject, -, ~) % hObject handle to PI (see GCBO) if ispc SS lsequal(get(hObject,'BackgroundColor'),.. . get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor', 'white') ; end

% Executes during object creation, after setting all properties. function Rl_CreateFcn(hObject, ~, ~) % hObject handle to Rl (see GCBO)

if ispc && lsequal(get(hObject, "BackgroundColor'),.. . get(0,'defaultUicontrolBackgroundColor') ) set(hObject,'BackgroundColor', 'white'); end

% Executes during object creation, after setting all properties. function R2_CreateFcn(hObject, ~, ~) % hObject handle to R2 (see GCBO) if ispc SS lsequal(get(hObject,'BackgroundColor'),... get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end % Executes during object creation, after setting all properties. function sigRl_CreateFcn(hObject, -, ~) % hObject handle to sigRl (see GCBO)

if ispc && lsequal(get(hObject,'BackgroundColor'),... get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end

I Executes during object creation, after setting all properties. function sigR2_CreateFcn(hObject, ~, ~) % hObject handle to sigR2 (see GCBO)

if ispc && lsequal(get(hObject,'BackgroundColor'),... get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end

% Executes during object creation, after setting all properties. function PlResult_CreateFcn(hObject, ~, ~) % hObject handle to PIResult (see GCBO)

if ispc && lsequal (get (hObject, 'BackgroundColor'),.. . get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end

% Executes during object creation, after setting all properties. functior P2Result_CreateFcn(hObject, ~, ~) % hObject handle to P2Result (see GCBO)

if ispc SS lsequal(get(hObject,'BackgroundColor'),... get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end

F.17. Releaserate

function [NDataR,NDataS]=Releaserate(handles) % Returns the release rate for the isotopes in Ndata, and a smoothed % version of NData as NDataS

% Get constants and reactor data Data=getappdata(COLDDl,'NData');NukeData=getappdata(COLDDl,'NukeData'); RData=getappdata(COLDDl, 'RData');Const=get(handles.Constants, 'Data'); IX=RData(:,3);L=NukeData (:,1); Mc=cel12mat(Const(strcmp(Const(:,l),'Coolant Mass'),2)); IodmeIX=cell2mat (Const (strcmp (Const (: ,1) , ' IX Iodine Efficiency') ,2) ) /100; GasIX-cell2mat(Const(strcmp(Const(:, 1), 'IX Gas Efficiency'),2))/100; IXeff(l:9)=GasIX;IXeff(10:14)=IodineIX;IXeff (15:16)=0; epsilon=cell2mat (Const(strcmp(Const(:,1),'Leakage Rate'),2)); names-getappdata(COLDDl,'names') ;

% Get t, C. Nan data should be set to 0 to not impact filterirg Data(isnan(Data))=0; t-Data (:,1);

% Compute the values for the filter rs=t(2)-t(l);fs=l/Ts;

% Display a waitbar h = waitbar(0,'Calculating release rates...');

% Pre-load NDataS NDataS (1:length(t),1:length(Data(1,:)))=0;NDataS(:,1)=Data(:, 1);

% Perform filtering over segmerts of positive data. Often the nuclide data % is scattered through the period, with segments of 0 or Nan when the % activity is below the minimim detectable limit. The algorithm below % removes high frequency noise from all segments longer than 20 points. h2=waitbar(0,'Filtering Segments'); thalf=log(2)./L;fC=2./thalf; % Define the cut-off frequency for 1=1:length (L) % Scan through all the half-lives waitbar(l/length(L),h2); % Update the waitbar if fC(i)<(fs/2) % Cut-off less than Nyquist [B,A]=butter(l,fC(i)/(fs/2) , 'low') ; elseif 1/(24*3600)<(fs/2) % Max cut off of 1/day [B,A]-butter(2,(1/(1*24*3600))/(fs/2),'low'); else % Else cut-off high frequency [B,A]=butter(1,0.9999,'low'); end J=find(Data(:,i+l)~=0,l,'first'); % Find first bit of non-zero data I=find(Data(:,i+D==0,l,'first'); % Find first bit of zero data if lsempty(J) NDataS (:,i + l)-Data (:,l + l); % No data to filter elseif lsempty(I) % Filter contmous non-zero data NDataS (J:end,l + l)=flltflit(B,A,Data(J:end,l + l)); else % Need to filter each segment of non-zero data while J20 NDataS(J:1-1,l+l)=filtfilt(B,A, Data(J:1-1,1+1)); else NDataS(J:1-1,l+l)=Data(J:1-1,1+1); end % Find start of next data segment and repeat until done. J=find(Data(I:end, i+D~=0,l, 'first • )+I; end end end close(h2) % Close the filtering segments wait bar.

% Now we can calucate the release rate using the Savitsky-Golay (SG) method for 1=1:length(L) % Scan all half-lives waitbar(l/length(L),h); % Update the release rate wait bar

% Calculate the SG Release from smoothed data: C<:, i)-NDataS(:,l+l);

% Define the fitler parameters, and build the filter N=2;F=11;[~,g]=sgolay (N,F);

% Pre-load the outputs to correct size zO(1:length(C(:,i)))=0;zl(1:length(C(:, I)))=0;

% Define start and end points wstart-(F+l)/2;wend=length(C(:,i))-(F+D/2;

% SG filter across the data from wstart to wend for n = wstart:wend % Zero-th order derivative z0(n)=dot(g(:,l),C(n - (F+D/2 + 1: n + (F+D/2 - 1,1)); % 1st order derivative zl(n)=dot(g(:,2),C(n - (F+D/2 + 1: n + (F+D/2 - l,i)); end

% Define smoothed concentration and first derivative Cn(:,i)-zO;Cnl(:,i)=zl./(t(2)-t(D);

% Populate the start and end using the start and end polynomial fits Pstart=polyfit(t(l:wstart-l),Data(1:wstart-l,l+l),N); % Start Cn(l:wstart-l,i)=polyval(Pstart,t(1:wstart-l)); dPstart=Pstart.*(N:-l:0); % Differentiate the polynomial Cnl(1:wstart-1,1)=polyval(dPstart(1:end-1),t(1:wstart-1));

% Populate the end Pend=polyfit(t(wend+l:end),Data(wend+1:end,l+l),N); % End Cn(wend+1:end,i)=polyval(Pend,t(wend+1:end)); dPend=Pend.* (N:-l:0); % Differentiate the polynomial Cnl (wend+1:end,i)=polyval (dPend(1:end-l),t(wend+1:end));

% Build release rate Rt(:,i)=Mc/L(l) .* (Cnl (:, l) + (L (l)+IX (1: length (Cn(:,l) ))./... Mc*IXeff(i)+epsilon/Mc).*Cn(:,i)); end

close (h); % Close the wait bar

% Remove sub zero and releases Rt(Rt<=0)=0;

% Build Release matrix for output NDataR=Data;NDataR(:,2:length(L)+1)=Rt;

F.18. Roy

function [h,time!=Roy(varargin) % Displays a R/yc(Bu) analysis to the user at the user specified tine, % "varagm" is either handles, type, time or handles, type handles=varargm (1}; type=varargm {2 );

% Get the data NData=getappdata(COLDDl,'NDataS');RData=getappdata(COLDDl,'RData'); NukeData=getappdata(COLDDl,'NukeData');NDataR=getappdata(COLDDl,'NDataR'); Const=get(handles.Constants,'Data');names=getappdata(COLDDl,'names'); t=NData(:,1);IX=RData(:, 3) ;

if nargin—2 % Get the required time from the user prompt = {['Enter time [days, between ' num2str(NData(1,1)/24/3600,... '%.2f') ' and ' num2str(NData(end, 1)/24/3600,'%.2f').. . '] for sirgle R/y_(c}(B) analysis']}; dlg_title='Select a Time to Analyse';numline=l; def=(num2str(round!(NData(end,1)-NData(1,1)1/2/24/3600))}; options.Resize='on'; options.Windowstyle='normal'; options.Interpreter^'tex'; time=str2num(cell2mat(inputdlg(prompt,dlg_title,numline,def,options))); if timet(end)/24/3600 f=errordlg('Sorry, the time you entered is outside the range.',... 'Oops'); h=nan;time-nan; return end else time=varargm (3} ; end

% Select appropriate time timei'find(t./2 4/3600<=time,l,'last'); NData=NData(timei,2:end);t=t(timei! ;IX=IX(timei);RData=RData(timei, :) ; NDataR-NDataR(timei,2:end);

% Extract required data and get constarts from the Model Constants L=NukeData(:, 1) ; Bu=cell2mat(Const(strcmp(Const(:,1),'Default Element Burnup'),2)); yc=ycBu(Bu); Mc=cell2mat(Const(strcmp(Const(:,1),'Coolant Mass'),2)); epsilon=cell2mat(Const(strcmp(Const(:,1),'Leakage Rate'),2)); I131perDefect=cell2mat(Const(strcmp(Const(:,1),... •131l Release/Defect '),2)); P=cell2raat(Const(strcmp(Const(:,1),'Default Power Estimate'),2) ) ; Ff=cell2mat(Const(strcmp(Const(:, 1) , ... 'Fission rate per element linear power'),2)); IodineIX=cell2mat(Const(strcmp(Const(:,1),'IX Iodine Efficiency'),2))/100; GasIX=cell2mat(Const(strcmp(Const(:,l),'IX Gas Efflciency'),2))/100; X=cell2mat(Const(strcmp(Const(:,l),'Default Number of Defects'),2));

if strcmp(type,'gas') % Select gas nuclear data avail=get(handles.DataAvail,* String') ;k(1:9)=0; for i=l:length(k) for ]=1:length(avail) if strcmp(names(i) , avail(])) k(i)=l; end end end L=L(k-=l);yc=yc(k==l);NData=NData(k==l);NDataR=NDataR(k==l); names=names(k-=l);IX=IX*GasIX; else % Select iodine data avail=get(handles.DataAvail, 'String') ; k(1:14) =0; for 1=10:14 for ]=1:length(avail) if strcmp(names(i),avail (])) k(i)=l; end end end names=names(k~=l);L=L(k~=l);yc=yc(k==l);NData=NData(k==l); NDataR=NDataR(k==l);IX=IX*IodineIX; end

% Calculate R/yc for each isotope RoBAc=(t+epsilon/Mc+IX/Mc)./L.*NData".*Mc./yc; RoBRe=NDataR'./yc;

% Perform the fit ("1" ensures even bad fits returned) (betaAc]=TRFit(L,RoBAc,l);[betaRe]=TRFit(L,RoBRe, 1) ; [betaAcb]=TRFitb(L,RoBAc,l);[betaReb]=TRFitb(L,RoBRe, 1);

% Define values nuA=betaAc(3);dnuA=betaAc(6);xDA=betaAc(1);dxDA=betaAc(4) ; cA=betaAc(2);dcA=betaAc(5);nuR=betaRe(3);dnuR=betaRe(6);xDR=betaRe(1); dxDR=betaRe(4);cR-betaRe(2);dcR=betaRe(5); R2Ac=betaAc(7);R2Re=betaRe(7) ;

baA=betaAcb(l);bbA=betaAcb(2);bcA=betaAcb(3);dbaA=betaAcb(4); dbbA=betaAcb(5);dbcA=betaAcb(6);baR=betaReb(1);bbR=betaReb(2) ; bcR=betaReb(3);dbaR=betaReb(4);dbbR=betaReb(5);dbcR=betaReb(6); R2Acb=betaAcb(7);R2Reb=betaReb(7) ;

% If nu, xD, c is less than zero, set to NaN nuA(nuA<0)=0;nuR(nuR<0)=0;xDA(xDA<0)=0;xDR(xDR<0)=0;cA(cA<0)=0;cR(cR<0)=0;

% Calculate Dp and error DPA=xDA/(9*X"2*P"2*Ff"2);dDPA=dxDA/100*xDA/(9*X"2*P"2*Ff"2)*100/DPA; DPR=xDR/(9*X"2*P"2*FfA2);dDPR=dxDR/100*xDR/(9*XA2*P"2*FfA2)*100/DPR;

% Report fit results set(handles.MsgResult,'String',(char(get(handles.MsgResult, 'String')),... ['Activity: nu = ' num2str(nuA,'%.le') ' +/- ' num2str(dnuA,'%.If')... '%, D(P) = ' num2str(DPA,'%.le') ' +/- ' num2str(dDPA,'%.If'),... '%, C =' num2str(cA, •%.le') ' +/- ' num2str(dcA,'%.lf') ' %'])); set(handles.MsgResult,'String",(char(get(handles.MsgResult,'String')),... ['Activity: a = ' num2str(baA,'%.le') ' +/- ' num2str(dbaA,'%.If'). .. '%, b - • num2str(bbA,'%.2f') ' +/- ' num2str(dbbA,'%.2f'),... •, C =' num2str(bcA,'%.le') ' +/- ' num2str(dbcA,'%.If') ' %•])); set(handles.MsgResult,'String',{char(get(handles.MsgResult, 'String')), ['Release: a = ' num2str(baR, '%.le') ' + /- ' num2str(dbaR, '%.If') . '%, b = ' nura2str(bbR,'%.2f') ' +/- • num2str(dbbR,'%.2f'),... ', C =' num2str(bcR,'%.le') ' + /- ' nura2str (dbcR,'%.If') ' %']});

% Create L vector for ploting the fit Lm=10.A(-7:0.01:-2);

% Create the figure scrz=get(0,'ScreenSize '); if strcmp (type, 'both') h=figure('Position',[0 0 scrz(3)/2 scrz(4)],... 'Name',['R/yc Analysis at ' num2str(time)]); else h=figure('Position', [scrz (3)/2 0 scrz(3)/2 scrz(4)],... 'Name',['R/yc Analysis at ' num2str(time)]); end

% Plot results subplot(2,1,1);loglog(L,(RoBAc),'ro');hold on; loglog(Lm, (nuA.*xDA./(nuA+Lm).*Lm.A(-0.5)+cA) , 'r') ; loglog(Lm,baA.*Lm."bbA+bcA, 'k- ') title(['Activity Data, Time = ' num2str(time)]);format shortE legend('Raw Data',['R"{2} = ' num2str(R2Ac,'%.2f') ', f\nu) = '... num2str(nuA,'%.2e') ' +/- ' num2str (dr.uA, ' % . If' ) ' %, A = "... num2str(xDA,'%.2e') ' +/- ' num2str(dxDA,'%.If') ' %, C = '... num2str(cA,'%.2e') ' +/- ' num2str(dcA,'%.If') ' %'],... ['R"(2} - ' num2str(R2Re,'%.2f') ', a = ' num2str(baA, '%.le ' ) . . . ' +/- ' num2str(dbaA,'%.lf') ' %, b = '... num2str(bbA, '%.2f') ' +/- ' num2str(dbbA, '% .2f') ' , C = "... num2str(bcA,'%.le') ' +/- ' num2str(dbcA,'%.If') ' %'],... 'Location','Best') text(L,RoBAc,names);xlabel('{\lambda) [s"(-l}J');ylabel('R/y_(c)'); subplot(2,1,2);loglog(L,(RoBRe),'ro'l;hold on; loglog(Lm,(nuR.*xDR./(nuR+Lm).*Lm."(-0.5)+cR),'r') loglog(Lm,baR.*Lm.AbbR+bcR,' k-') title('Release Data') legendl'Raw Data',['R"(2| - ' num2str(R2Re,'%.2f') ', (\nu) = "... num2str(nuR,'%.2e') ' + /- num2str(dnuR,'%.lf') ' %, A = "... num2str(xDR, '%.2e') ' +/- num2str(dxDR,'%.lf') ' %, C = '... num2str(cR,'%.2e') ' +/- num2str(dcR,'%.lf') ' %'],... ['R"(2| = ' num2str(R2Reb, %.2f) ', a = ' num2str(baR,'%.le') ' +/- ' num2str(dbaR,'%.lf') ' %, b - ' . . . num2str(bbR,'%.2f') ' +/- num2str(dbbR, '%.2f') ' , C = '... rum2str(bcR,'%.le') ' +/- num2str(dbcR, '%.lf') ' «'],... 'Location','Best') text(L,RoBRe,names);xlabel('(\lambda) (s"{-l(]');ylabel('R/y (c)');

% If not first part of a double plot, prompt user for next data poirt, % previous, or done, if ~strcmp(type,'both') NData=getappdata(COLDDl,'NData'); h=f mdob] (' name ',[' R/yc Analysis at ' num2str (time) 1 ) ; if length(h)>l figure(h(1));figure(h(end)); return else figure(h) % Construct a questdlg with three options ButtonName=questdlg(['Do you wish to look at the rext/previous' ' data point, or done?;'], 'Question','Previous','Next',.. . ' Done','Done ' ) ; switch ButtonName, case 'Previous1, % Plot previous timestep [h,time]=Roy(handles,type, NData(timei-1,l)/24/3600); return case 'Next', % Plot next tiraestep [h, time]=Roy(handles,type,NData(timei+1,1)/24/3600); return case 'Done', % Exit figure (h) set(h,'name',[' R/yc Analysis at ' num2str(time)]); return end % switch end end

F.19. RyAnalysis

function varargout=RyAnalysis(handles,type,Analy) % Performs a R/yc Analysis analysis using activity and release rate data % Type='gas' for noble gas or 'iodine' for iodines % Analy indicates the type of analysis to be performed varargout(1}=1; % Not all analysis types create an output.

% Get the data NData=getappdata(COLDDl,'NDataS');RData=getappdata(COLDDl,'RData'); NukeData=getappdata(COLDDl,'NukeData');NDataR=getappdata(COLDDl,'NDataR'); Const=get(handles.Constants,'Data') ;cases=getappdata(COLDDl, 'cases'); names=getappdata(COLDDl, 'names') ;

% Get any iodines or gases being ignored and remove them from NData, NDataR Missing=get(handles.Ignored,'String')';MissingI=[];MissingNG=(]; I=strmatch('I',Missing);X=strmatch('X',Missing);K=strmatch('K',Missing); MissingI=Missing(I);MissingNG=[Missing(X) Missing(K)]; Avail=get(handles.DataAvail,'String') ;numl=length(strmatch('I',Avail)); numNG=length(strmatch('X',Avail))+length(strmatch('K', Avail)); for 1=1:length(names) for ]=1:length(Missing) if strcmp(names(l),Missing(3) ) NData(:,i+l)=nan; NDataR(:,i+l)=nan; end end end

% Report insufficient inputs. Terminate if less than 3. if (numl<3 S strcmp(type,'iodines')) I (numNG<3 S strcmp(type, 'gas')) h=errordlg({'Less than 3 nuclides are present, insufficient for a ',... 'fit analysis: Analysis will terminate'],'CAUTION'); uiwait(h); return end if (numl==3 & strcmp(type,'iodines')) I (numNG==3 S strcmp(type,'gas')) h=errordlg(['Only 3 nuclides are present, insufficient for a ',... 'fit error analysis: Use results with caution, they',... ' may be meaningless'1,'CAUTION'); uiwait(h); end

% Extract required data and get constants from Model Constants Bu=cell2mat(Const(strcmp(Const(:, 1) , 'Default Element Burnup'),2)); IX=RData(:,3);L=NukeData(:,1);yc=ycBu(Bu);t=NData(1:end,1); Mc=cell2mat(Const(strcmp(Const(:,1) , 'Coolant Mass'),2)); epsilon=cell2mat(Const(strcmp(Const(:, 1) , 'Leakage Rate'),2)); P=cell2mat(Const(strcmp(Const(:,1),'Default Power Estimate'),2)); Ff=cell2mat(Const(strcmp(Const(:, 1), . . . 'Fission rate per element linear power'),2)); IodineIX=cell2mat(Const(strcmp(Const(:,1) , 'IX Iodine Efficiency'),2))/100; GasIX=cell2mat(Const(strcmp(Const(:, 1) , 'IX Gas Efficiency'),2))/100; X=cell2mat(Const(strcmp(Const(:,1),'Default Number of Defects'),2)); 264

% Shrink the data to only examine the time range in axesl [xmin,xmax]=getrange(t,get(handles.axesl,'XLim')) ; NData=NData(xmin:xmax,:);t=t(xnun:xmax);IX=IX(xmin:xmax); RData=RData (xmin:xmax, :) ;NDataR=NDataR(xmm :xmax, :) ;

% Select gas or iodine data, as required if strcmp(type,'gas') % Select gas nuclear data L=L(1:9);yc=yc(l:9);NData=NData(:,2:10);NDataR=NDataR(:, 2:10); IX=IX.*GasIX; else % Select iodine data L=L(10:14);yc=yc(10:14);NData=NData(:,11:15);NDataR=NDataR(:, 11:15) ; IX=IX.*IodineIX; end

% Calculate R/yc for each isotope for i=l:length(L) RoBAc(:,i) = (L(i)+epsilon/Mc+IX./Mc) ./L(i) . *NData(:,i) .*Mc./yc(i) ; RoBRe(:,i)=NDataR(:,i) ./yc(i) ; end

% Remove zeroes from RoB(:,i) RoBAc(RoBAc==0)=NaN;RoBRe(RoBRe==0)=NaN;

% Display a waitbar h = waitbar(0,('Calculating ' Analy]);

% lirst check the analysis has not already performed. If it has, then load % the existing data. cd((pwd '/fitdata']); % Switch to /fitdata folder if strcmp('iodines',type) & exist([cases 'RyBu'... num2str(ceil(Bu)) 'IX' num2str(IodineIX*100) type 'no'... cell2mat (Missmgl) '.txt'])~=0 data=dlmread([cases 'RyBu' num2str(ceil(Bu))... 'IX' num2str(IodineIX*100) type 'no' cell2mat(MissingI) '.txt']); elseif strcmp('gas',type) S existftcases 'RyBu'... num2str(ceil(Bu)) 'IX' num2str(GasIX*100) type 'no'... cell2mat (MissingNG) '.txt'])--=0 data=dlmread([cases 'RyBu' num2str(ceil(Bu))... 'IX' num2str(GasIX*100) type 'no' cell2mat(MissingNG) '.txt']); end cd .. % return to the home directory if exist('data')>0 % Load the previously analysed data prev=data; else prevd, 1:15) =nan; end % Pre-load prev

% Perform the R/yc fit at each timestep for 1=1:length (t) waitbar(l/length (t),h); % Update the waitbar

% Check if current timestep already analysed if ~isempty(find(prev(:,1)==round(td)), 1)) new(i, :)=prev(find(prev(:,1)==round(t(i)), 1),:); elseif RData (1,2)<1 % If the reactor power less than 1%, then skip: new(i,l:15)=nan; else % Aralysis required

% Perform fit betaAc-TRFit(L,RoBAc(i,:));betaRe=TRFit(L, PoBRe(l, :)) ;

% Record data [t A C nu dA dC dnu R2 AR CR nuR dAR dCR dnuR R2R] new(i,:)=(round(t(l)) real(betaAc) real(betaRe)];

prev-[prev;new (I, :)]; % Add new data end end

% Sort prev and then write to file prev=sortrows(prev,1);cd([pwd '/fitdata']); if strcrnp (type, 'iodines ') dlmwrite([cases 'RyBu' num2str(ceil(Bu))... •IX' num2str(IodmeIX*100) type 'no' cell2mat (MissingI) '.txt'],... prev, 'precision' ,'%15.15f); else dlmwrite([cases 'RyBu' num2str(ceil(Bu))... •IX1 num2str(GasIX*100) type 'no' cell2mat(MissingNG) '.txt'],... prev, 'precision' , *%15.15f); end cd .. % Return to home directory delete(h); % Close waitbar

% Define values: (a=Activity, r=Release rate) % [t Aa Ca nua dAa dCa dnua R2a Ar Cr nur dAr dCr dnur R2r] % [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15] nuA=new(:,4);AA=new(:,2);cA=new(:, 3) ; dnuA=new (:, 7) ; dAA=new (:, 5) ; dcA=new (:, 6) ; nuR=new(:,ll);AR=new(:,9);cR=new(:,10); dnuR=new(:,14);dAR=new(:,12);dcR=new(:, 13);

% Depending on the Analysis requested, perform the correct actions: if strcrnp(Analy,'Plot STAR input values') % This is a temporary analysis input to illustrate the ability of the % code to be modified.

% Calculate the oxidation enhancement factor Demp=MAA./(3*Ff*X*P) ) -"2;

zeta=Demp./exp(-30.856311-0.039332*P+2.05696e-3*P"2);

Ftr=2.*cA; % Calculate Ftr

% Write the data to a text file dlmwrite('STARINPUT.txt',[t./3600/24 nuA zeta]) % Create figure and plot data (should add axis labels) h=figure('Name', Analy);cla;hold on;h=get(h, 'CurrentAxes') ; subplot(3,1,1);plot(t./3600/24,nuA,'LineWidth',2);title('nu') subplot(3,1,2) ;plot(t./3600/24, zeta, 'LineWidth',2);title('zeta') subplot (3,1,3);plot(t./3600/24,Ftr,'LineWidth', 2);title('Ftr'); elseif strcrnp(Analy,'Plot iodine spike from end of data')

% Get last nu and A (fit routine only outputs them together) last=find(nuA>0,l,'last') ; nu=nuA(last);DpP=(AA(last)/3/Ff/X/P)"2;tlast-t(last) ;

L=L(1);yc=yc(l); % Get 1-131 nuclear data

% Terminate if no proper value for nu and Dp(P) if lsnan(nu) I lsnan(DpP) h=warndlg(['No valid iodine fit result at end of... ' displayed data. Calculation terminated.'],'11 Warning '''); uiwait(h) return end

% Request shutdowr IX flow (default is final value) and transient nu prompt=('Enter Shutdown IX flow rate [kg/s] (default is last value)',... 'Enter transient escape rate coeffiemt [/s]'); dlg_title - 'Shutdown IX';num_lmss = 2; def = fnum2str(RData(end,3)) , '4e-5') ; answer=mputdlg(prompt,dlg_title,num_lines,def) ; Bp=str2num(answer{1})/Mc+epsilon;nutr=str2num(answer)2});

% Calculate the spike profile: tmax=log<(L+Bp)/(nutr+L))/(Bp-nutr);t=0:60:5*tmax; C=L/Mc.*(Mc/L*NData(end,l)+3/(nu+L)*sqrt(DpP/L)*Ff*X*P*yc*nutr/... (nutr-Bp).*(l-exp(-(nutr-Bp).*t))).*exp(-(L+Bp).*t); Cmax=max(C);tmax=tmax/3600; 266

% Create the plot h=figure('Name',Analy);cla;hold on;h=get (h,'CurrentAxes'); plot(t./3600,C,'LineWidth',2); ylabeK'"(131)1 Activity Concentration [Bq/kg]') ;xlabel ('Time [hours]'); title(['Iodine spike after shutdown, based on fit at t = "... num2str(tlast/24/3600) ' [days]']) text(tmax+l,Cmax/2,['(nu_(tr) = ' num2str(nutr) ... ' sA(-l) and IX flow = ' answer(l) ' kg.s"{-1))'],... 'BackgrourdColor',[1 1 1]);

% Add solutions plot([tmax tmax],[0 Cmax],'k:','LineWidth',2) plot([0 tmax],[Cmax Cmax],'k:','LineWidth',2) text(tmax+l,Cmax/10,['Max occurs at t = ' num2str(tmax,'%6.2f')... 1 hours']) text(tmax+1,Cmax,['Max value is ' num2str(Cmax,'%6.2e') ' Bq/kg or '... rum2str(Cmax/37000,'%6.0f') ' uCi/kg'])

% Report results set(handles.MsgResult,'String',(char(get(handles.MsgResult,... 'String')),['Iodine spike maximum occurs at '... num2str(tmax,'%6.2f') ' hours with an activity of '... rum2str(Cmax,'%6.2e') ' Bq/kg or "... num2str(Cmax/37000,'%6.0f') ' uCi/kg'])); elseif strcmp(Analy,'Tramp mass by R/yc analysis using noble gases')... I strcmp(Analy,'Tramp mass by R/yc analysis using iodines') % Calculates the tramp uranium mass from "C" for either iodine or gas

% Calculate the tramp mass and uncertainty mA=C2mass(cA,handles);dmA=mA./cA.*(dcA./lOO.*cA); mR=C2mass(cR,handles);dmR=mR./cR.*(dcR./100.*cR);

% Report to Results set(hardies.MsgResult,'String',(char(get(handles.MsgResult,... 'String')), [Analy ' averaged over the period indicates'... ' approximately ' num2str(round(nanmean(mA)*10)/10) '+/- '... num2str(round(nanstd(mA)*100)/100) ' grams of tramp by'... ' activity analysis and approximately '... num2str(round(nanmean(mR)*10)/10) '+/- '... num2str(round(nanstd(mR)*100)/100)... ' grams of tramp by release rate analysis.']));

% Create figure and plot data h=figure('Name',Analy);cla;hold on;h=get(h,'CurrentAxes'); plot(t./3600/24,mA,'k','LineWidth',3); plot(t./3600/24,mR,'r','LineWidth',3); set(h,'YLim',[0 min([50 max(get(h,'YLim'))])]) set(h,'XLim',get(handles.axesl,'XLim')) legend('Activity','Release Rate','Location','Best') ylabeK'Mass of Tramp U [g] ') ; xlabel ('Time [days]');

% Need to output values for the tramp by all means algorithm varargout(1)=t;varargout(2)=mA;varargout(3)=mR;

% Plot errors if available if sum(~isnan(dmA)>0) I sum(~isnan(dmR)>0) if size(mA,2)>size(dmA,2) dmA-dmA';dmR=dmR'; end plot (t./3600/24,mA+dmA, 'k:');plot(t./3600/24,mA-dmA, 'k: '); plot(t./3600/24,mR+dmR,'r:');plot(t./3600/24,mR-dmR,'r:'); title('Dotted Line is +/- 1 (\sigma)') end elseif strcmp(Analy,'Defect number by R/y analysis using noble gases')... I strcmp(Analy,'Defect number by R/y analysis using iodines')

% Calculates the defect number and uncertainty xA=AA./(3*Ff*P*sqrt(Dp(P)));dxA=xA./AA.*(dAA./100.*AA); xR=AR./(3*Ff*P*sqrt(Dp(P)));dxR=xR./AR.*(dAA./100.*AR);

% Report and plot set(handles.MsgResult,'String',{char(get(handles.MsgResult,'String')),... ['During Period t = ' num2str(t(1)/24/3600,'%.If') ' to "... num2str(t(end)/24/3600,'%.lf') ' days, and assuming P = "... num2str(P) ' kW/m:']}); set(handles.MsgResult,'String',{char(get(handles.MsgResult, 'String')),... [Analy ' indicates an average defect number of '... num2str(real((round(nanmean(xA)*10)/10))),... ' defects by activity analysis and ',... num2str (real( (round(nanmean(xR)*10)/10))),... ' defects by release rate analysis, averaged across the period.']]);

% Create Figure and plot data hl=figure('Name',Analy);cla;hold on;h=get(hi,'CurrentAxes'); plot(t./3600/24,xA, 'r', ' lmewidth', 2) ; plot (t./3600/24,xR, 'k', ' lmewidth', 2) ; set(h,'YLira', [0 mm([500 1.5*max(get(h,'YLim'))])]); set(h,'XLim',get(handles.axesl,'XLim'));set(h,'YGrid','on') legend) 'Activity','Release Rate','Location','Best') ylabel(['Defect Number assuming P = ' num2str(P) ' kW.mA{-1(']); xlabel('Times [days]')

% Error analysis possible, add to plot if sum(~isnan(dxA)>0) I sum(~isnan(dxR)>0) title('Dotted lines are +/- 1 (\sigma)') plot(t./3600/24,xA+dxA,'r:');plot(t./3600/24,xA-dxA,'r:'); plot(t./3600/24,xR+dxR,'k:');plot(t./3600/24,xR-dxR, 'k:'); end

% Output results: [t xA dxA xR dxR h] varargout{1}=t;varargout{2)=xA;varargout{3)=dxA; varargout{4}=xR;varargout(5)=dxR;varargout{6}=hl ; elseif strcmp(Analy,'Defect size by R/y nu analysis using iodines') % Ask user to use n=l or perform R/y analysis for gases (if possible, % else n=l will be assumed) Button=questdlg (['Do you wish to assume a default n=l or n=0.5 or'... ' use an R/yc analysis of gases (if possible) to determine n'... ' from nuXe?'],'Choice for n','n=l','n=0.5',... 'n from gas analysis','n=l'); switch Button, case 'n=l',nXe=l;nXeR=l; % Default Value case 'n=0.5', nXe=0.5;nXeR=0.5; % Default Value case 'n from gas analysis', if numNG<3 % Error; use default values h=errordlg(['Less than 3 gases are present,'... ' therefore n=l shall be assumed'],'CAUTION'); uiwait(h); nXe=l;nXeR=l; % Default Value else % Perform Rye analysis temp=RyAnalysis(handles, 'gas", ... 'n for defect size analysis'); % Load the data cd([pwd '/fitdata']); data=dlmread([cases 'RyBu' num2str(ceil (Bu)) 'IX'... num2str(GasIX*100) 'gasno' cell2mat(MissingNG)... '.txt' ] ) ; data(isnan(data(:,1)),:)=[]; % Calculate n from activity and release rate nuXe=data(:,4);nXe=nuXe. *0 .477/2/7.le-6; nXe(nXe>l)=l;nXe(nXe<0.5)=0.5;nXe(isnan(nXe))=1; nuXeR=data(:,11);nXeR=nuXeR.*0.477/2/7.le-6; nXeR(nXeR>l)=1;nXeR(nXeR<0.5)=0.5;nXeR(isnan(nXeR))=1; cd . . % Shrink to time range in the nuclides axis nXe=nXe(xmin:xmax);nXeR=nXeR(xmin:xmax); end end % switch % Calculate the defect size and error EA=10.A((7.5 + logl0(.4 77/2./nXe.*nuA)) ./ .1) ; dnuA=dnuA./100.*nuA; dEA=dnuA.A2./0.7A2./nuA.A2+log(10) A2*0.5A2/0.7A2+. . . (log(2)-log(nuA.*0.477./nXe)-log (101*7.5) .A2.*0.2A2/0.7A4; dEA=sqrt(EA.A2.*dEA); ER=10.A((7.5+logl0(.4 77/2./nXeR.*nuR)) ./.7) ; dnuR=dnuR./100.*nuR; dER=dnuR.A2./0.7A2./nuR.A2+log(10)A2*0.5A2/0.7A2+. . . (log(2)-log(nuR.*0.477./nXeR)-log(10)*7.5).A2.*0.2A2/0.7A4; dER-sqrt(ER.A2.*dER); % Report results set(handles.MsgResult,'String',(char(get(handles.MsgResult, 'String')),... [Analy ' averaged over the period indicates a defect size of... ' approximately ' num2str(round(nanmean(EA)*10)/10) '+/- '... num2str(round(nanstd(EA-EA.*(1+dEA))*10)/10) ' and '... num2str(round(nanmean(ER)*10)/10) '+/- "... num2str(round(nanstd(ER-ER.*(1+dER))*10)/10)... ' mmA2 according to activity and release rate analysis']}); % Create plot and plot results h=figure ('Name',Analy);cla,-hold on;h=get(h,'CurrertAxes'); plot(t./3600/24,EA,'r');plot(t./3600/24, ER, ' k ') ; legend('Activity','Release Rate','Location','Best') set(h,'YLim',[0 1.l*min([1000 max([EA ER])])]) set(h, 'XLim',get(handles.axes 1, 'XLim'));ylabel('Defect Size [mmA2] '); % If error availablem then plot if numl>=4 title('Dotted lires are +/- 1 (\sigma)') plot(t./3600/24,EA.*(1+dEA) , 'r: '); plot(t./3600/24,EA.*(1-dEA) , 'r: ' ) ; plot(t./3600/24,ER.*(1+dER) ,'k:') ; plot(t./3600/24,ER.*(1-dER) ,'k:'); end eif strcmp(Analy,'Power of X defect(s) using lodires R/yc') |... strcmp(Analy,'Power of X defect(s) using noble gas R/yc')

% Calculate the power and urcertamty: A-3*Ff *X*P*sqrt (D (P) ) a=9e-12;b=0.114; PA=log(l/9.*AA.A2/a./FfA2/XA2)./log(10)/b; dAA-dAA./100.*AA; dPA=2.*(l./AA.A2./log(10)A2/bA2.*dAA.A2).A(l/2); PR=log(l/9.*AR.A2/a./FfA2/XA2)./log(10)/to; dAR=dAR./100.*AR; dPR=2.*(l./AR.A2./log(10)A2/bA2.*dAR.A2).A(l/2);

% Report results set(handles.MsgResult,'String',(char(get(handles.MsgResult,... 'String')),['Power assuming ' num2str(X) ' defect(s) for ' type... ' averaged across the period indicates ar approximate power of ',... num2str(round(nanmean(PA)*10)/10) '+/- ',... num2str(round(nanstd(PA)*10)/10) ' kw/m activity analysis',... ' and approximately ' num2str(round(nanmean(PR)*10)/10) '+/- ',... num2str(roundfnanstd(PR)*10)/10) . . . ' kW/m by release rate analysis.']});

% Create plot and plot results h=figure('Name',Analy);cla;hold on;h=get(h,'CurrentAxes'); plot(t./3600/24, PA, 'k');plot (t./3600/24,PR,'r'); legend('Activity','Release Rate','Location', 'Best') ylabel(['Power for ' num2str(X) ' defects']);xlabel('Time [days]') set(h,'YLim',[0 1.l'max(get(h,'YLim'))]); set(h,'XLim',get(handles.axesl, 'XLim'));

% Plot errors if sum(~isnan(dAA))>1 I sum(-isnan(dAR))>1 title('Dotted lines (if present) are +/- 1 (\sigma]') plot(t./3600/24,PA+dPA, 'k: ');plot(t./3600/24,PA-dPA,'k:'); plot(t./3600/24,PR-dPR,'r:');plot(t./3600/24, PR+dPR, 'r:'); end end

F.20. RycChecker

function varargout=RycChecker(handles,tl,t2) % Calculates R/yc for all isotopes and plots in new figure % Takes the time average over the range in the nuclides plot, % or range if provided as input.

% Get the requried data NData=getappdata(COLDDl,'NDataS');RData=getappdata(COLDDl, 'RData'); NukeData=getappdata(COLDDl,'NukeData');NDataR=getappdata(COLDDl,'NDataR'); avail=get(handles.DataAvail,'String');names=getappdata(COLDDl, 'names'); FileNames=getappdata(COLDDl,'FileNames');

% Determine available nuclides Avail(1:length(names))=0; for 1=1:length(names) for ]=1:length(avail) if strcmp(names(I),avail(])) Avail(i)=l; end end end names=names(Avail==l);Const=get(handles.Constants, 'Data');

% Extract required data and get constants from the Model Constants IX=RData(:,3);L=NukeData(Avail==l,1);yc235=NukeData(Avail==l,2); yc239=NukeData(Avail==l,3);t=NData(l:end, 1) ; Bu=cell2mat(Const(strcmp(Const(:,1),'Default Element Burnup'),2) ) ; Mc=cell2mat(Const(strcmp(Const(:, 1),'Coolant Mass'),2)); epsilon=cell2mat(Const(strcmp(Const(:,1),'Leakage Rate'),2) ) ; I131perDefect=cell2mat(Const(strcmp(Const(:, 1) , . . . '13K/sup>I Release/Defect ') , 2) ) ; IodineIX=cell2mat(Const(strcmp(Const(:,1),'IX Iodine Efficiency'),2))/100; GasIX=cell2mat(Const(strcmp(Const(:,1),'IX Gas Efficiency'),2))/100;

% Shrink the data to only examine the time range in nuclides plot if nargin<3 [xmm, xmax] =getrange (t, get (handles.axesl, 'XLim') ) ; else % Use user defined range [xmin,xmax]=getrange(t,[tl t2]); end NData=NData (xmm:xmax, :) ; t=t (xmm:xmax) ; IX=IX (xmin:xmax) ; RData=RData (xmm:xmax, :) ;NData(:, 1) = [] ;NDataR(:, 1) = [] ; NDataR=NDataR(xmm:xmax, :) ; NData=NData(:,Avail==l);NDataR=NDataR(:,Avail==l); %Only available nuclides

% Build IX vector IXeff (l:9)=GasIX;IXeff (10:14) =IodmeIX; IXef f (15:16)=0; IXeff=IXeff(Avail==l) ;

% Calculate R/yc(Bu) for Bu = 0 and 500 MWh/kgU ycO=ycBu(0);yc0=yc0(Avail==l); yc500=ycBu(500);yc500=yc500(Avail==l); % whos NData RData for l-l:length(L) RycO(:,i)=(L(i)+epsilon/Mc+IX.*IXeff(l)./Mc)./L(i).*... NData(:,i).*Mc./ycO(i); Ryc500(:,i)=(L(i)+epsilon/Mc+IX.*IXeff(l)./Mc)./L(i).*... NData (:,i) . *Mc./yc500 d) ; RycOR(:,i)=NDataR(:,i) ./ycO(i) ; Ryc500R(:,i)=NDataR(:,i)./yc500(i); end % Calculate R/yc(bu) averages yO=nanmean(RycO);syO=nanstd(RycO);yOR^nanmean(RycOR);syOR=nanstd(RycOR); y500=nanmean(Ryc500) ;sy500=nanstd(Ryc500);y500R=nanmean(Ryc500); sy500R-nanstd(Ryc500R);

% Create x-axis thalf=log(2)./(L.*3600);x=thalf;

% Create y-data syO=syO./yO(thalf==min(thalf)); sy500=sy500./y500(thalf==min(thalf)); yO=yO./yO(thalf==mm (thalf) ) ; y500=y500./y500(thalf==min(thalf) ) ; syOR=syOR./yOR(thalf==min(thalf)); sy500R=sy500R./y500R(thalf==min(thalf)); yOR=yOR./yOR(thalf==min(thalf)); y500R=y500R./y500R(thalf=-min(thalf));

% Need to avoid negative values for errors bars: syO(y0-sy0<0)-yO(y0-sy0<0)-yO(y0-sy0<0)./10; sy500(y500-sy500<0)=y500(y500-sy500<0)-y500(y500-sy500<0)./10; sy0R(y0R-sy0R<0)=y0R(y0R-sy0R<0)-y0R(y0R-sy0R<0)./10; sy500R(y500R-sy500R<0)=y500R(y500R-sy500R<0)-y500R(y500R-sy500R<0)./10;

% Create plots scrz=get (0, 'Screenslze'); plotRyclx,t,thalf,L,names,yO,sy0,y500,sy500,0,... 'Plotting R/yc to Check Data (activity)') plotRyc(x,t, thalf, L,names,yOR,syOR,y500R,sy500R,scrz(3)12, ... 'Plotting R/yc to Check Data (Release rate)') function plotRyc(x,t,thalf,L,names,y0,sy0,y500,sy500,pos,figcap) % Creates the plots with axis labels and nuclide labels

% Create the figure (with positioning) scrz=get (0,'ScreenSize'); h=figure('Name',figcap, 'Position', [pos scrz(4)/2 scrz(3)/2 scrz (4)/2*.8]); cla;hold on;h=get(h,'CurrentAxes'); errorbar(x,yO,syO,syO,'bo');errorbar(x,y500,sy500,sy500,'ro'); plot([min(thalf) max(thalf)],[1 1],'k-','LineWidth',2); z=names; % Write the nuclide names on the plot in the correct position for K = 1: length(L) text(x(K),y0(K),z(K),'BackgrourdColor',[1 1 1]) end

% Set axis scales and labels set(h,'XScale','log');set(h,'XDir','reverse');set(h,'YScale','log'); ylabel('R/yc [fission/s] normalized to shortest lived nuclide'); xlabel ('tl/2 [hours] ');

% Set appropriate ranges set (h, 'XLim', [.9*mir(thalf) 1.l*max(thalf) ] ) set(h,'YLim',[10Afloor(loglO(min([yO y500])))... 10Aceil(logl0(rnax( [yO y500])))]) xlim=get(h,'XLim'); set(h,'XLim',[10Afloor(loglO(min(xlim))) 10'ceil(loglO(max(xlim)))]) set (h, ' YGrid', 'on') legend!'B = 0 MWh/kgU','B = 500 MWh/kgU', 'Normalized to I',... 'Location ', 'Best'); title(['Examined Range: t = ' num2str(t (1)/24/3600, '%.If') ' to '... num2str(t(end)/24/3600,'%.lf') ' days. Error bars are +/- 1'... 1 (\sigma)']) varargout=([]); % Place holder for output if required

F.21. SameTimeScale function [NDatai,RDatai]=SameTimeScale(NData,RData) % Puts NData and RData on the same evenly spaced time scale.

% Choose NData as the primary scale, find the mean step size. meanstep=mean(diff(NData(:, 1)) ) ;

% Build the new time scale tr=NData(l,l):meanstep:NData(end,1);

% Interpolate both data sets on tr. If NData is evenly spaced then NData % is not changed by this algorithm, 'pchip' is the shape-preserving % piecewise cubic interpolation, as discussed in the thesis. NDatai=interpl(NData(:,1),NData(:, 2:end),tr, 'pchip') ; RDatai=interpl(RData(:,1),RData(:,2:end),tr,'pchip'); NDatai=[tr' NDatai];RDatai=[tr' RDatai];

F.22. Sb123mass function Sbl23mass(handles) % Plots the Sbl23 mass using the Sbl25 data

% Get the required data NData=-getappdata(COLDDl, 'NData') ;NDataS=getappdata (COLDD1, 'NDataS') ; Const=get(handles.Constants,'Data') ; Mc=cell2mat(Const(strcmp(Const(:,1),'Coolant Mass'),2)); phi=cell2mat(Const(strcmp(Const(:,1),... 'Average Thermal Neutron Flux'),2))*lel4; names~getappdata(C0LDD1,'names');iso=find(strcmp('Sb-125',names)==1); t=NData(:,1);Acl25=NData(:,iso+1);Sml25=NDataS(:,iso+1);

% Define constants sigl24=.174e-22;f124=1;A124=124;Na=6.02e23;sigl23=.3875e-23; f123=.4279;A123=121.760;Ll24=log(2)/(60*24*3600);

% Shrink the data to only examine the time range in the nuclides plot [xmin,xmax]=getrange(t,get(handles.axes1,'XLim')); Acl25=Acl25 (xmm:xmax) ; t=t (xminrxmax) ;

% Calculate the mass of 123Sb ml23=Acl25.*Mc*A123*L124/sigl24/phi"2/fl24/Na/sigl23/fl23; ml23S=Sml25.*Mc*A123*L124/sigl24/phi"2/fl24/Na/sigl23/fl23;

% Create the figure and plot the data h=figure('Name','123Sb Mass Estimate');cla;hold on; h=get(h,'CurrentAxes');plot(t./24/3600,ml23,'r',t./24/3600,ml23S, 'k'); ylabel('"(123)Sb Mass [g]');xlabel('Time [days]'); legend('Raw Data','Smoothed Data','Location','Best') set(h,'YLim',[0 max(get(h,'YLim'))])

% Report the results set(handles.MsgResult,'String',(char(get(handles.MsgResult, 'String')),... ['The mean 123-Sb mass across the time period is "... num2str(round(nanmean(ml23)*10)/10)... '+/- ' num2str(round(nanstd(ml23)*10)/10) ' [g]']));

F.23. SecondaryHydriding

function [tL, ts]=SecondaryHydridmg (handles) % Takes in element power (P [kW/m]) from Model Constant or user defined % and returns the days to defect.

% Load the curves [data,~,~)=xlsread( 'HydrideData.xlsx'); LP=data(:,l);LD=data(:,2!;sP=data(:, 3) ; sD=data(:, 4) ;

% Get P from Model Constants Const=get(handles.Constants,'Data'); P=cell2mat(Const(strcmp(Const(:,1),'Default Power Estimate'),2));

% Request element power and diameter from the user prorapt=('Enter power [kW/m] (default value is from Model Constants)',... 'Enter element diameter [mm]'}; dlg_title= ' Input Parameters ' ;num_lmes=l;def={num2str (P) , ' 13 .1' } ;dia=-5; while dia<0 I dia>20 I lsempty(dia) answer=inputdlg(prompt,dlg_titie,num_lines,def); P=str2num(answer{l});dia=str2num(answer{2}); if dia<0 I dia>20 | isempty(dia) h=errordlg('Please enter a diameter between 0 and 20 mm',... 'Irput Error'); uiwait (h); end end

SHF=P/pi/(dia/10/100) ; % Surface Heat Flux

% Remove NaN from manufacturing data (it's short in the xlsx file) sPdsnan(sP) ) = [] ; sD(isnan (sD) ) = [] ;

% Interpolate to find tL tM corresponding to SHF tL=interpl(LP,LD,SHF),ts-interpl(sP, sD, SHF);

% Report if SHF<48.74 I SHF>2014 % No solution set(handles.MsgResult,'String1,{char(get(handles.MsgResult,'String')),... ['The surface heat flux is outside the range of known data']}); else set(handles.MsgResult,'String',(char(get(handles.MsgResult, . . . 'String')),['A power of ' num2str(P) ' kW/m may have secondary'... ' hydridmg in ' rum2str(ceil(tL)) ' days (large) or '... num2str(ceil(ts)) ' days (small)']}); end

% Create plot and plot data h=figure('Name','Secondary Sheath Hydriding Curves');cla;hold on; h=get (h,'CurrertAxes');plot(LP, LD, 'r',sP,sD,'k') set(h,'YLim',[0.1 2000]);set(h,'YTick",[0.1 1 10 100 1000 2000]) set(h, 'YTickLabel', ('0.1', ' 1', ' 10 ', ' 100 ', '1000 ','2000'}) setlmmA{2}) Defect Threshold',... 'Small (

% Add the solutions to the plot (if available) if SHF>48.74 & SHF<2014 plot([SHF SHF], [0.1 maxUtL ts] ) ] , ' k: ' ) ;plot ([0 SHF],fts ts],'k:') text(50,ts, [num2str(ceil(ts)) ' days'] , 'BackgroundColor', [1 1 1]) plot( [0 SHE], [tL tL] , 'r:') text(50,tL, [num2str(cell(tL)) ' days'], 'BackgrourdColor', [1 1 1]) text(SHF-5,0.2,[num2str(P) ' kw.m"(-1}'],'BackgroundColor',[1 1 1]) end

F.24. SetAnalysisTypes function SetAnalysisTypes(handles) % Determine which analysis types are available and populate the listbox. i The list box is used to populate the available analysis displayed to the % user when selecting an analysis type.

* Get required data names-get(handles.DataAvail, 'String') ;

* Populate the Analysis Available box with these default analysis that are % always available: set(handles.AnalysisType,'Strirg',['Plot R/yc using all isotopes'... ' (used for data checkirg) ' ] ) ; set(handles.AnalysisType,'String',(char(get(handles.AnalysisType, ... 'String')),'Plot days to secondary hydriding from P'}); set(handles.AnalysisType,'String',{char(get(handles.AnalysisType, ... 'String')),'Power from activity or release rate ratio'}) set(handles.AnalysisType,'String',(char(get(handles.AnalysisType,... 'String')),'Defect burnup using the 134Cs/137Cs ratio')) set(handles.AnalysisType,'String',{char(get(handles.AnalysisType,... 'String')),'Tramp burnup')) set(handles.AnalysisType,'String',{char(get(handles.AnalysisType,... 'String')),'Defect size by isotope ratio'))

% Line below was used the test example to add STAR outputs % set(handles.AnalysisType,'String',{char(get(handles.AnalysisType,... % 'String')),'Plot STAR input values*))

% If 1-131 is present, the defect number from 1-131 is possible if find(strcmp('1-131',names))>0 set(handles.AnalysisType,'String',{char(get(handles.AnalysisType,. 'String')),'Defect number by 1131 activity and release rate')) end

% If 3 or more gases are present, including Xe-133, then we can R/yc % analysis of the noble gases. if (sum(cell2mat(strfind(names,'X')))+sum(cell2mat(strfind(names,... •K'))))>=3 S find(strcmp('Xe-133',names))>0 set(handles.AnalysisType,'String',{char(get(handles.AnalysisType,. 'String')), 'Tramp mass by R/yc analysis using noble gases')) set(handles.AnalysisType,'String',{char(get(handles.AnalysisType,. 'String')),'Defect number by R/y analysis using noble gases')) set(handles.AnalysisType,'String',{char(get(handles.AnalysisType, . 'String')),{'Plot single R/y analysis at specified time'... ' using noble gases'])) set(handles.AnalysisType,'String',{char(get(handles.AnalysisType,. 'String1)),'Defect size by R/y b analysis using noble gases')) set(handles.AnalysisType,'String',{char(get(handles.AnalysisType,. 'String')),'Power of X defect(s) using noble gas R/yc')) set(handles.AnalysisType,'String',{char(get(handles.AnalysisType,. 'String')),'Defect burnup using noble gas R/yc')) set(handles.AnalysisType,'String',{char(get(handles.AnalysisType,. 'String')),['Defect burnup using noble gas R/yc at'... ' a user specified time'])) end

% If Xe-133 is present, then we can do the following: if find(strcmp('Xe-133',names))>0 set(handles.AnalysisType,'String',{char(get(handles.AnalysisType, . . , 'String')),'Power of one element to produce Xel33'l) set(handles.AnalysisType,'String',(char(get(handles.AnalysisType, .. , 'String')),'Plot defect state using Xel33, 1131, 1133')) end

% If 3 or more iodines are present, including 1-131, then we can R/yc % analysis of the iodines. if sum(cell2mat(strfind(names,'I')))>=3 S fmd(strcmp ('1-131', names) ) >0 set(handles.AnalysisType,'String',(char(get(handles.AnalysisType, . 'String')),'Defect number by R/y analysis using iodines')) set(handles.AnalysisType,'String',{char(get(handles.AnalysisType, . 'String')),'Tramp mass by R/yc analysis using iodines'}) set(handles.AnalysisType,'String',{char(get(handles.AnalysisType, . 'String')),'Defect size by R/y nu analysis using iodines'}) set(handles.AnalysisType,'String',(char(get(handles.AnalysisType,. 'String')),'Power of X defect(s) using iodines R/yc'}) set(handles.AnalysisType,'String',{char(get(handles.AnalysisType,. 'String')),'Defect size by R/y b analysis using iodines'}) set(handles.AnalysisType,'String',{char(get(handles.AnalysisType,. 'String')),'Plot iodine spike from end of data')) set(handles.AnalysisType,'String',{char(get(handles.AnalysisType,. 'String')),['Plot single R/y analysis at specified'... ' time using iodines'])) end % If 1-134 or Xe-138 is present, then we can use it to find the tramp % uranium if find(strcmp('Xe-138', names))>0 set (handles.AnalysisType,'String',(char(get(handles.AnalysisType,... 'String')), 'Tramp mass using Xel38')) end if find (strcmp('1-134',names))>0 set(handles.AnalysisType,'String',(char(get(hardies.AnalysisType,... 'String')),'Tramp mass using 1134')) end

% If we have sufficient iodines and gases, we can plot both at orce if (sum(cell2mat(strfind(names,'X')))+sum(cell2mat(strfind(names,... 'K'))))>=3 S find(strcmp('Xe-133',names))>0 S ... sum(cell2mat (strf mdfnames, ' I' ) ) ) >=2 & ... find(strcmp('1-131',names))>0 set(handles.AnalysisType,'String',{char(get(hardies.AnalysisType,... 'String')),['Plot single R/y analysis at specified1... ' time using both iodines and gases']I) end

% If Sb-125 is available then we can caluculate Sb-123 if find(strcmp('Sb-125',names))>0 set(handles.AnalysisType,'String',{char(get(handles.AnalysisType,... 'String')), 'Plot Sb-123 mass estimate'!) end

% If more than one entry by this point starts with 'Tramp mass' then % add Tramp mass by all methods. if sum(cell2mat(regexp(get(handles.AnalysisType,'String'),... 'Tramp mass')))>-2 set(handles.AnalysisType,'String',... (char(get(handles.AnalysisType,'String')),... 'Tramp mass using all available techniques'}) end

% Grab the listbox contents and sort alphabetically set (handles.AnalysisType, 'String',sort(get(handles.AnalysisType, 'String')))

F.25. Sizefromb function varargout=Sizefromb(handles,type) % Performs a R/yc(Bu)=a*L"b+c fit to the data, relates 'b' to defect size. % Type='gas' for noble gas or 'iodine' for iodines varargout={[]}; % Pre-load the output ln-case rot defined

% Get the required data NData=getappdata(C0LDD1,'NDataS');RData=getappdata(C0LDD1,'RData'); NukeData=getappdata(COLDDl,'NukeData');NDataR=getappdata (C0LDD1,'NDataR'); Const-get(handles.Constants,'Data');cases=getappdata(COLDD1,'cases'); names=getappdata(C0LDD1,'names');

% Extract required data and get constants Model Constants IX=RData(:,3);L=NukeData(:,1); Bu=cell2mat(Const(strcmp (Const(:,1), 'Default Element Burnup'),2)); yc=ycBu(Bu);t~NData(:,1); Mc=cell2mat(Const(strcmp(Const (:,1), 'Coolant Mass') ,2) ) ; epsilon=cell2mat(Const(strcmp(Const(:,1),'Leakage Rate'),2)); Ff=cell2mat(Const(strcmp(Const(:,1),... 'Fissior rate per element linear power'),2)); IodineIX=cell2mat(Const(strcmp(Const(:,1),'IX lodire Efficiency'),2))/100; GasIX=cell2mat(Const(strcmp(Const(:,1),'IX Gas Efficiency'),2))/100;

% Shnrk the data to only examine the time range ir the nuclides plot [xmin, xmaxj -getrange (t, get (handles .axesl, 'XLim') ) ;NData=NData (xmm: xmax, :) ; t=t(xmin:xmax);IX=IX(xmin:xmax);RData=RData(xmin:xmax, :) ; NDataR=NDataR(xmin:xmax,:);

% Get any iodines or kryptons being ignored and remove them from NData, % and NDataR Missmg=get (handles. Ignored, 'String') ' ;MissmgI= [ ] ;MissingNG=[] ; I=strmatch('I',Missing);X=strmatch('X',Missing);K=strmatch('K'.Missing); MissmgI=Missing(I) ;MissingNG= [Missing (X) Missmg(K) ) ; Avail=get(handles.DataAvail,'String');numl=length(strmatch("I', Avail)); numNG=length(strmatch('X',Avail))+length(strmatch('K',Avail)); for 1=1:length(names) for ]=1rlength(Missing) if strcmp(names(1) .Missing(])) NData(:,i+l)=nan; NDataR(:,i+l)=nan; end end end

% Report insufficient inputs. Terminate if less than 3. if (numl==3 S strcmp(type,'iodines')) I (numNG==3 & strcmp(type,'gas')) h=errordlg(['Only 3 nuclides are present, insufficient for a ',... 'fit error analysis: Use results with caution, they',... ' may be meaningless'],'CAUTION'); uiwait(h); end if (numl<3 4 strcmp(type,'iodines')) I (numNG<3 S strcmp(type,'gas')) h=errordlg(['Less than 3 nuclides are present, insufficient for a ', 'fit analysis: Analysis will terminate'],'CAUTION'); uiwait (h); return end

% Selected approriate data if strcmp(type,'gas') % Select gas nuclear data L=L(1:9);yc=yc(l:9);NData=NData(:,2:10);NDataR=NDataR(:, 2 :10) ; IX=IX.*GasIX; else % Select iodine data L=L(10:14) ;yc=yc(10:14) ;NData=NData(:,11:15);NDataR=NDataR(:,11:15) ; IX=IX.*IodmeIX; end

% Calculate R/B for each isotope for i=l:length(L) RoBAc(:,i) = (L(i)+epsilon/Mc+IX./Mc) ./L(i) . *NData(:,i) . *Mc./yc(i) ; RoBRe(:,i)=NDataR(:,i) ./yc(i) ; end

% Remove zeroes from RoB(:,i) RoBAc(RoBAc==0)=NaN; RoBRe(RoBRe==0)=NaN;

% Display a waitbar h = waitbar(0,'Calculating defect size by R/y b analysis...');

% First check analysis not already performed cd([pwd Vfitdata'] ) ; % Look in fitdata folder if strcmp('iodines',type) S exist([cases 'SizebBu' num2str(ceil(Bu))... 'IX' num2str(IodineIX*100) •' type 'no' cell2mat(MissingI)... '.txt'])~=0 data=dlmread([cases 'SizebBu' num2str(ceil(Bu))... •IX' num2str(IodmeIX*100) '• type 'no' cell2mat (MissingI) . . . '.txt' ]); elseif strcmp('gas',type) S exist([cases 'SizebBu' num2str(ceil(Bu)) 'IX num2str(GasIX*100) '' type 'no' cell2mat(MissingNG) '.txt');~=0 data=dlmread([cases 'SizebBu' num2str(ceil(Bu)) 'IX'... num2str(GasIX*100) '* type 'no' cell2mat(MissingNG) '.txt']); end cd .. % Return to home directory if exist('data')>0 prev=data; % Use existing data else prev(1,1:15)=nan; end % Create new blank matrix

for i=l:length(t) % Perform analysis at each time step waitbar(l/length (t),h); % Update the waitbar

% Check if the analysis is already done at current time if -lsempty(find(prev(:,1)==round (t(l)), 1)) newd, 1:15) =prev (find (prev (:, 1) ==round(t d) ) , 1), :) ; elseif RData(i,2)<1 % If the reactor power is zero, then skip: new(i,l:15)=nan; else % Aralysis required

% Perform fit [betaAc]=TRFitb(L,RoBAc(l,:));[betaRe]=TRFitb(L,RoBRe(l,:));

% Record new data new(i,1:15)=[round(t(l)) real(betaAc) real (betaRe)];

% Add new data prev=[prev;new(i,1:15)];

end end

% Sort prev and then write to file prev-sortrows(prev,1); cd([pwd '/fitdata']) ; if strcmp(type,'iodines') dlmwrite ( [cases 'SizebBu' nuTi2str (ceil (Bu) ) . . . 'IX' num2str(IodineIX*100) '' type 'no' cell2mat(MissingI)... '.txt'],prev,'precision','%15.15f'); else dlmwrite([cases 'SizebBu' num2str(ceil (Bu)) 'IX'... num2str(GasIX*100) '' type 'no' cell2mat(MissingNG) '.txt'],... prev,'precision','%15.15f'); end cd .. % Return to home directory delete(h); % Close the waitbar

% Define values % [t aa ba ca daa dba dca R2a ar br cr dar dbr dcr R2r] % [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15] aA=new(:,2);bA=new(:,3);cA=new(:, 4) ; daA=new(:,5);dbA=new(:,6);cA=rew(:,7) ; aR=new(:,9);bR=new(:,10);cR-new(:, 11) ; daR=new(:,12);dbR=new(:,13);dcR=new(:, 14);

% Get analysis title Analy=cellstr (get(handles.AnalysisType, 'String')); Analy=strtrim(Analyfget(handles.AnalysisType, 'Value') }) ;

% Define sizes if strcmp(type,'iodines') Tramp=0;Large=-0.5;Small=-l.5;Med=-l; % Iodine sizes else Tramp=0;Large=-0.5;Small=-l;Med=-l; % Gas sizes end

% Calculate averages across the period bAavg=round(nanmean(bA)*10)/10;bRavg=round(nanmean(bR)*10)/10;

% Determine approximate defect size if strcmp(type,'iodines') if mean([bAavg bRavg]) > (-0.2) dtype='Tramp'; elseif mean([bAavg bRavg]) <— (-0.2) S mean([bAavg bRavg]) > (-0.7) dtype='Large OR Tramp only'; elseif mean([bAavg bRavg]) <= (-0.7) mean([bAavg bRavg]) > (-1.2) dtype='Medium'; elseif mean([bAavg bRavg]) <= (-1.2) mean([bAavg bRavg]) > (-1.5) dtype='Medium/Small'; else dtype='Small'; end else % Defect sizing for gases if mean([bAavg bRavg]) > (-0.2) dtype='Tramp'; elseif mean([bAavg bRavg]) <= (-0 2) S meanUbAavg bRavg]) > (-0.7) dtype='Large OR Tramp only1; else dtype='Small/Medium'; end end

% Report results set(handles.MsgResult,'String',(char(get(handles.MsgResult, 'String')) , [Analy ' averages across the period suggests defect is ' dtype... ' by activity and release rate analysis.']));

% Create figure and plot results h=figure('Name',Analy);t=t./24/3600;plot(t,bA,'r');hold all h=get(h,'CurrentAxes');plot(t,bR,'k') ; if strcmp(type,'iodines ) % Iodine plot plot ([t(D t(end)], Tramp Tramp],'c'); plot([t(l) t(end)], Large Large],'g'); plot([t(l) t(end)], Med Med] , *y') ; plot([t(l) t(end)], Small Small],'b'); legend('Activity Data','Release Rate Data','Tramp',... 'Large Defect (300-1500 mm"(2})','Medium Defect (10-200 mmA{2() 'Small Defect (

ylabelf'Fit constant "b"');xlabel('Time [days]')

% Plot +/- 1 sigma if available if sum(~isnan(dbA))>1 | sum(~isnan(dbR))>1 title([Analy '. Dotted lines (if present) are +/- 1 (\sigma)']) if size(bA,2)>size(dbA,2) dbA=dbA';dbR=dbR'; end plot(t,bA+dbA,'r:');plot(t,bA-dbA,'r:');plot(t,bR+dbR,'k:') plot (t,bR-dbR,'k:');set(h,'YLim', [-2 1]);set(h,'YGrid','on'); end

F.26. trampall function trampall(handles) % Calculates and plot the tramp mass using all available techniques

% Find all the tramp mass techniques (names) a=get(handles.AnalysisType,'String');names=([]); for 1=1:length(a) if -lsempty (regexp(ad), 'Tramp mass', 'once')) names{end+1)=a(i); end end names (1) = [];names (end) -[] ;

% Evaluate each of the techniques Y=N;L=([1); % Prepare y data (Y) and legend (L) for 1=1:length(names) if regexp (namesd}, 'Tramp mass by R/yc analysis using noble gases')

% Perform tramp mass using R/yc and gases [t,mA,mR]=RyAnalysis(handles,'gas',... 'Tramp mass by R/yc analysis using noble gases'); Y(:,end+1)=mA; L={L{l:end) char('RyAnalysis using noble gases (activity)1)); Y(:,end+1)~mR; L={L(l:end) char('RyAnalysis using noble gases (release rate)'));

% Find the plotted figure and close it close(findob]('type','figure','name',... 'Tramp mass by R/yc analysis using noble gases')); end if regexp(namesf11,'Tramp mass by R/yc analysis using iodines')

% Perforti tramp mass using R/yc and iodines [t,mA,mR]=RyAnalysis(handles,'iodine',... 'Tramp mass by R/yc analysis using iodines'); Y(:,end+1)=mA; L={L{l:end} char('RyAnalysis using iodine (activity)')}; Y (:, end+1 )=mR; L=(L(l:end) char('RyAnalysis using iodine (release rate)'));

% Find plotted figure and close it close(findobj ('type','figure','name',... 'Tramp mass by R/yc analysis using iodines')); end if regexp(names(l},'Tramp mass using 1134')

% Find tramp mass based on 1-134 activity [a,b]=trampisotope('1-134',handles) ; t=a(1:length(Y(:,l))); Y(:, end+1)=b(1:length (Y(:, 1))); L={L(l:end) char('Tramp mass using 1134')};

% Find and close figure close(findob]('type','figure','name','Tramp Mass From 1-134')); end if regexp(names{i},'Tramp mass using Xel38') % Find tramp mass based on Xe-138 activity [a,b]=trampisotope('Xe-138',handles); t=a(1:length(Y(:,l)));Y(:,end+1)=b(1:length(Y(:,1))); L=(L(l:end} char('Tra*np mass using Xel38')};

* Find and close figure close(findob^('type','figure','name','Tramp Mass from Xe-138')); end end L(l)~[l; % Igrore first blank entry

% Create plot and plot all results hl=figure('name','Tramp mass Lsing All Available Techniques'); plot (t./24/3600,Y);h=get(hi, 'CurrentAxes ') ; set (h, 'YLim', [0 max(get (h, 'YLim'))]);ylabel('Tramp Mass [g]') xlabel('Time [days]');legend (L,'Location','Best')

F.27. trampburnup

function trampburnup (handles) % First finds periods of tramp uranium only (no defect) % Then calculates the tramp burnup by finding B that minimizes the fit % to R/yc(B)

% Get the data NData=getappdata(COLDDl,'NDataS');RData=getappdata(COLDDl,'RData'); NukeData=getappdata(COLDDl,'NukeData');NDataR=getappdata(COLDDl,'NDataR'); Const=get (handles.Constants,'Data');cases=getappdata(COLDDl, 'cases'); names=getappdata(COLDDl,'names');yc235=NukeData(:,2);yc239=NukeData(:,3); sigma_f_U235=5.8e-22;sigma_f_Pu239=7.42e-22;

% Use the custom RNuclide function in this script to determine isotopes RNuclide(handles);

% Collect nuclides selected Missmg=get (handles .Ignored, 'String') ' ; Avail=get(handles.DataAvail, 'String') ; for 1=1:length(names) for ]=1:length(Missing) if strcmp(names(l) ,Missing(])) NData(:,i-t-l)=nan; NDataR(:,i+l)=nan; end end % Exclude Xel35 or 1132 from this analysis if strcmp(names(I) , 'Xe-135') I strcmp(names(l),'1-132') NData(:,i+l)=nan; NDataR(:,i+l)=nan; end end

% Extract required data and get constants from the Model Constants IX=RData(:,3);L=NukeData(:,1);yc235=NukeData(:,2);yc239=NukeData(:,3); t=NData(:,l) ; Mc=cell2mat(Const(strcmp(Const(:,1), 'Coolant Mass'),2) ) ; epsilon=cell2mat(Const(strcmp(Const(:, 1),'Leakage Rate'),2) ) ; P=cell2mat(Const(strcmp(Const(:,1),'Default Power Estimate'),2)); Ff=cell2mat(Const(strcmp (Const (:,1), . . . 'Fission rate per element linear power'),2)); IodineIX=cell2mat(Const(strcmp(Const(:,1),'IX Iodine Efficiency'),2))/100; GasIX=cell2mat(Const(strcmp(Const(:,1),'IX Gas Efficiency'),2)J/100; X=cell2mat(Const(strcmp(Const(:,1),'Default Number of Defects'),2));

% Shrink the data to only examine the time range in nuclides plot [xmin,xmax]=getrange(t,get(handles.axes 1,'XLim')); NData=NData(xmin:xmax, 2 :end) ; IX=IX (xmin:xmax) ;RData=RData (xmin:xmax, :) ; NDataR=NDataR(xmin:xmax, 2:end) ;

% Select tramp only data t=trampf mder (handles) ; % Custom script to extract tramp only periods NData(isnan(t),:)=nan;IX(isnan(t))=nan;RData(isnan(t) , :)=nan; NDataR(isnan(t),:)=nan;

% Build IX vector

IXeff (1: 9) =GasIX;IXeff (10:14) =IodmeIX; IXef f (15: length (L) )-0;

B=0:500; % Define Burnup to scan 500 MWh/kgU h = waitbar(0,'Finding optimum burnup...'); % Display waitbar % Calculate at each burnup step for ]=1:length(B) waitbar(]/length(B),h); % Update waitbar

% Calculate yc(Bu) yc=ycBu(B(]),yc235,yc239) ;

% Calculate R/yc(B) for each isotope for 1=1:length(L) RoBAc(:,i)=(L(i)+epsilon/Mc+IX./Mc*IXeff(l))./... L(i) .*NData(:,i) .*Mc./yc(i) ; end

% Calculate the average RoBAc=nanmean(RoBAc);Ac(],:)=RoBAc; % Remove zeroes from RoB(:,i) RoBAc(RoBAc==0)=[];

% Remove NaN' s from RoB RoBAc(isnan (RoBAc)I = [];

% Find SSE(B): CAc(])=nanmean(RoBAc);SSEAc(])=sum((RoBAc-CAc(j)).A2);

% Clear RoBAc for next loop RoBAc=[]; end delete(h); I Close waitbar

% Remove unavailable values L(isnan(nanmean(NData))) =0;L(nanmean(NData)==0)=0; names(L==0) = [] ; Ac (:, L==0) = [ ] ;L(L==0) = [] ;

% Find optimum fit BAc=B(SSEAc==min(SSEAc));avg=nanmean(Ac (SSEAc==min(SSEAc),:));

% Find largest errors maxi=f ind(max (Ac (SSEAc=-min(SSEAc) , : ) ) —Ac (SSEAc—min (SSEAc) , : ) ) ; mim = find(min (Ac (SSEAc==min (SSEAc) , : ) ) ==Ac (SSEAc==nun (SSEAc) , : ) ) ;

% Plot results and issue results if length(L)<=1 set(handles.MsgResult,'String',(char(get(handles.MsgResult,'String')),... ['No Solution: Not enough tramp data in the selected time period'])); elseif BAc^-0 & BRe==0 set(handles.MsgResult,'String',(char(get(handles.MsgResult,'String')),... ('Partial Solution at 0 MWh/kgU. This could be from a fresh',... ' contamination or check the plot for isotopes that do not appear',... ' to be tramp, remove them and try again. ' ] )) ; set(handles.MsgResult, 'String',(char (get (handles.MsgResult, 'String ')),.. . ['1 think ' char(names(maxi)) ' and ' char(names(mini)),... ' "might" be the problem'])); plot it(L, Ac,avg,SSEAc, BAc,names, 'all') elseif BAc==500 & BRe=-500 set(handles.MsgResult,'Strirg',{char(get(handles.MsgResult,'String')),... ['Partial Solution at burnup of 500 MWh/kgU. This is the maximum',... ' burnup in the current fissile content correlations. Double',... ' check the plot for isotopes that do not appear',... ' to be tramp, remove them'])); set(handles.MsgResult,'String',(char(get(handles.MsgResult, 'String')),.. . [' and recompute. I think ' char(names(maxi)) ' and '... char(names(mini)) ' "might" be the problem, or the burnup is'... ' > 300 MWh/kgU. ' ] ) ) ; plotit(L,Ac,avg,SSEAc,BAc, names, 'all') elseif (max(Ac(SSEAc==min(SSEAc) , :))/avg>l.5. . . I min(Ac(SSEAc==min(SSEAc) , :))/avg<0.5) & ... (max(Ac(SSEAc==min(SSEAc) , :))/avg>l.5.. . I mm (Ac (SSEAc==min (SSEAc) , :) ) /avg<0 .5) set(handles.MsgResult,'String',[char(get(handles.MsgResult, 'String')),... ['No Solution: It appears that ' char(names(maxi)) ' and "... char (names (mini) ) ' "might" be too high or low:>'])); plotit(L,Ac,avg,SSEAc, BAc, names, 'NoOpt' ! else set(hanales.MsgResult,'String',(char(get(handles.MsgResult,'String')),... (' Analysis indicates a tramp burnup of approximately '... num2str(BAc) ' MWh/kgu. ' ] )) ; plotit(L,Ac,avg,SSEAc,BAc,names,'all'); end

% Define plot title title(['Tramp Burnup: Iramp only found in ',... num2str(sum(~isnan(t))/length(t)*100, '%.lf') , ... 1 % of the period in the top left axes']) % function plotit(L,Ac,avg,SSEAc,BAc,names,type) % Creates the approriate plot

% Define figure scrz=get(0,'ScreenSize'); h=figure('Name','Tramp Burnup','Position',... [scrz(3)/2 scrz(4)/2 scrz(3)/2 scrz(4)12* . 8]);cla;hold on; h=get(h, 'CurrentAxes');

% Plot results with legends if strcmp(type,'NoOpt') plot(L,Ac(l,:)./avg,'r"',L,Ac(end, :)./avg, 'rs',... [min(L) max(L) ], [1 1], 'k-') ; ylim=get(h,'YLim'); set (h, ' YLim', [mm ( [-1 ylim] ) max([3 ylim] ) ] ) legend('Bu_(tr)= 0 MWh.kg"(-1}','Bu_(tr}= 500 MWh.kg"{-1}',... 'Average','location','best') ; else plot(L,Ac(1,:)./avg, 'r"',L,Ac(end,:) ./avg, 'rs',.. . L,Ac(SSEAc==min(SSEAc),:)./avg,'b*',[min(L) max(L)],[1 1],'k-'); ylim=get(h,'YLim'); set (h, ' YLim', [mm ( [-1 ylimi) max([3 ylim])]) legend('Bu_{tr)= 0 MWh.kg"(-1}','Bu_{tr)= 500 MWh.kg"(-1)',... ['Bu_(tr)= ' num2str(BAc) ' MWh.kg"(-1}'],.. . 'Optimum Solution', 'location', 'best'); end

% Add labels and correct scale xlabeK ' (Uambda) [s" (-1}]') ;ylabel ('Normalized R/y_(c)'); set(h,'XScale','log') set(h, 'XLim', [10"f loor (loglO (mm (L) ) ) 10"ceil (loglO (max (L) ) ) ] )

% Write nuclide names on the plot for K = 1:length(L) text(L(K),Ac(1,K)/avg-.5,names(K) , 'BackgroundColor', [1 1 1]) end % function RNuclide(handles) % Allows the user to select which nuclides to use % handles structure with handles and user data (see GUIDATA)

% Get initial selection mitSelV=get (handles .DataAvail, 'Value') ; mitSelStr-get (handles .DataAvail, 'String') ; mitSelStr=mitSelStr (mitSelV) ;

% Ask for and get the new selection for available and ignored names=getappdata(COLDD1, 'names') ; [a,b]=NuclideRemoval(get(handles.DataAvail, 'String') , ... get(handles.Ignored,'String') , names);

% Set the new values set(handles.DataAvail,'String',a) ; set (handles.Ignored,'String' ,b) ;

% Make sure previous selection still highlighted (or default to 1) new=[]; for i=l:length (mitSelStr) for ]=1:length(a) if strcmp (mitSelStr d), a (3) ) new(end+l)=j; end end end % Reset available and ignored listboxes to appropriate selection if lsempty(new); new=l; end set(hardies.DataAvail,'Value', new) ; set(handles.Ignored,'Value', 1) ;

F.28. trampfinder

function t-trampfinder (handles) % Performs a R/yc=a*lambda"b fit, and if -0.1

% Get the data NData=getappdata(COLDDl,'NDataS');NDataR-getappdata(COLDDl,'NDataR'); RData=getappdata(COLDDl,'RData');NukeData=getappdata(COLDDl,'NukeData') ; Const=get(handles.Constants,'Data');names=getappdata (COLDDl,'names');

% Get values needed from Model Constants Mc-cell2mat(Const(strcmp(Const(:,1),'Coolant Mass'),2)); GasIX=cell2mat(Const(strcmp(Const(:,1),'IX Gas Efficiency'),2))/100; epsilor.=cell2mat (Const (strcmp (Const (:, 1) , ' Leakage Rate') ,2) ) ; t=NData(:,l);L=NukeData(:, 1);yc=NukeData(:, 4) ; IX=RData(:, 3) ; Bu=cell2mat(Const(strcmp(Const(:,1),' Iritial Tramp Burnup'),2) ) ; yc=ycBu(Bu);

% Get any iodines or kryptons being ignored and remove them Missmg=get (handles. Ignored, 'String') ' ;MissmgI= [ ] ;MissingNG= [ ] ; I=strmatch('I',Missing);X=strmatch('X',Missing);K=strmatch('K',Missing); MissmgI=Missir.g (I) ;MissmgNG= [Missing (X) Missing (K) ) ; Avail=get(handles.DataAvail,'String');numl=length(strmatch('I',Avail)); numNG=length(strmatch('X',Avail))+length(strmatch('K',Avail)); for 1=1:length(names) for ]=1:length(Missing) if strcmp(names(l),Missing(j)) NData(:,i+l)=nan; NDataR(:,l+l)=nan; end end end

% Shrink the data to the range in plotted in the nuclides plot [xmin,xmax]=getrange(t,get(handles.axesl,'XLim')); NData=NData (xmm:xmax, 2 :end) ; t~t (xmin :xmax) ; IX=IX (xmin :xmax) ; RData=RData(xmin:xmax, :) ;

% Plot for reporting purposes before truncating scrz=get(0,'ScreenSize'); h=figure('Name','Location of tramp only data','Positior',... [0 scrz(4)/2 scrz(3)/2 scrz(4)/2*.8]);cla;hold or; h=get (h, 'CurrentAxes');

% Plot first available nuclide for 1=1:length(names) if strcmp(names(l),Avail(1)) 3=1; end end semilogy(t./24/3600,NData(:,]) , 'r-') ; hold on; xlabeMTime [days]'); ylabel ('"(133)Xe Activity [Bq. kg'(-1) ] ' ) legend([cell2mat(Avail'1)) ' Actitivy'],'Location','Best')

% Calculate R/yc of gases for 1=1:9 RoBAc(:,i)=(L(i)+epsilon/Mc+IX./Mc.*GasIX)./... L(i) .*NData(:,i) .*Mc./yc(i); RoBRe(:,D=NDataR(:,i) ./yc(i) ; end h2=waitbar(0,'Finding tramp uranium periods...'); % Display waitbar % Perform R/yc=a*LAb fit at each timestep for 1=1:length(t) waitbar(l/length(t),h2); % Update waitbar

% Perform fir to find b beta=TRFitbnoC(L(l:9),RoBAc(i,:));b(l)=beta(2) ;

% Make non tramp times equal to nan if b(i)<-0.1 I b(i)>0.1 t (i)=nan; end end delete(h2) % Close waitbar

% Plot using new t to show truncated data semilogy(t./24/3600,NData(:,3) , 'kx'); legend) [cell2mat(Avail(1)) ' Activity'],'Areas of tramp only data',... 'Location', 'Best') % function beta=TRFitbnoC(x,y) % Performs the R/yc=a*lambaAb fit. % Uncertainty ignored - all values returned except fit errors

% Remove zeros and nans x(y==0) = (l;y(y==0) = []; x(isnan(y) ) = [] ;y (isnanfy) ) = [ ] ;

% Check for 3 data points at least if length(x)>=3

start=[mean(log(y)) 0]; % Initial guess

% Check y is a coloum vector if size(y,2)~=l y=y'; end

% Perform fit lastwarn(''); % Clear warnings options = statset('FunValCheck','off'); % Allow nan solutions [beta)=nlinfit(x,log(y),@fun,start,options) ;

if -lsempty(lastwarn) % Ignore fits with errors beta(1:3)=nan; end else beta(1:3)=nan; end % function y=fun(beta,x) % Fitting function. y=[a b] y=log(exp(beta(l) ) .*x."beta(2) ) ;

F.29. trampisotope

function [t,mAc]=trampisotope(isotope,handles) % Plots the tramp mass based on nuclide 'isotope' activity, where isotope % is Xe-138 or 1-134. Release not used as is this is for short lived % isotopes only.

% Get the data NData=getappdata(COLDDl, 'NDataS');RData=getappdata(COLDDl, 'RData'); NukeData=getappdata(COLDDl,'NukeData');NDataR=getappdata(COLDDl,'NDataR'); Const=get(handles.Constants,'Data');names=getappdata(COLDDl, 'names') ; % Extract required data and get constants from Model Constants IX=RData(:,3);iso=find(strcmp(isotope,names));L=NukeData(iso,1); Bu=cell2mat(Const(strcmp(Const(:,1),'Initial Tramp Burnup'),2) ) ; yc=ycBu(Bu);yc-yc(iso);t-NData(:,1); Mc=cell2mat(Const(strcmp(Const (:,1),'Coolant Mass'),2)) ; epsilon=cell2raat(Const(strcmp(Const(:,1) ,'Leakage Rate'),2) ) ; P=cell2mat(Const (strcmp(Const (:,1), 'Default Power Estimate'),2) ) ; Ff-cell2mat(Const(strcmp(Const(:,1),... 'Fission rate per element linear power'),2)); IodineIX=cell2mat(Const(strcmp(Const(:,1),'IX Iodine Efficiency'),2))/100; GasIX=cell2mat(Const(strcmp(Const (:,1),'IX Gas Efficiency'),2))/100;

% Shrink the data to only examine the time range in nuclides plot [xmm, xmax] -getrange (t, get (handles .axesl, ' XLim')) ; NData=NData(xmin:xmax, iso+1);t=t(xmin:xmax);IX=IX(xmin:xmax); RData=RData(xmin:xmax,:);

if strcmp('Xe-138',names (iso)) IX=IX.*GasIX; % Select gas nuclear data else IX=IX.*IodmeIX; % Select iodine data end

% Calculate R/yc(Bu) for isotope RoBAc= (L+epsilon/Mc + IX/Mc)./L.*NData.*Mc/yc;

% Calculate the tramp mass mAc=C2mass(RoBAc,handles);

% Issue results to results box set(handles.MsgResult,'String',{char(get(handles.MsgResult,'String')),... ['Tramp mass using ' isotope ' averaged over the period indicates'... ' approximately ' num2str(round(nanmean(mAc)*10)/10) '+/- '... num2str (roundfnanstd (rtiAc) *10)/10) ' grams of tramp by activity ',... 'analysis.']});

% Create figure and plot results h=figure('Name',['Tramp Mass From ' isotope]);cla;hold on; h=get(h,'CurrentAxes');plot(t./3600/24,mAc); set(h,'Ylim',[0 max(get(h,'YLim'))]);legend(isotope,'Location','Best'); ylabeK'Mass of Tramp U [g]');xlabel('Time [days]');

F.30. TRfit

function [beta]=TRFit(x,y,~) % Returns the fit coefficients beta=[A C nu dA dC dnu R2] where errors % are in % or nan if not available. If R-square <0.95 then the result is % rejected. If values are outside their normal range then it is rejected. % If a third variable is entered, then nothing is rejected and % the fit returned (allows the single plot to show issues).

% Remove 0 and nan values x(y==0) = [];y(y—0) = [ ] ;x (isnan (y) ) = [ ] ;y (isnan (y) )-[]; R2=nan; % If no fit, beta still needs an R2

% Check for 3 or more data points to enable fit if length(x)<3 beta(1:6)=nan; % No fit possible, return nan else % Generate initial guess nu=real(log((y(2)*x(2)*(3/2)-y(1)*x(1)"(3/2) ) / . . . <-y(2)*x(2r

% Check initial guess for [A C nu] within acceptable ranges. % If not, change to default values if exp(AX4e8 I exp(A)>4el3 A=log(lel0); end if exp(ru)le-l nu=le-5; end

start=[A C nu]; % Define the initial guess vector

% Check y is a coloum vector for fitting routine if size(y,2)~=l y=y'; end

% Calculate the fit lastwarn (' ') % Clear warnings options = statset('FunValCheck','off '); % Allow nan solutions [beta, r, J, ~, ~]=nlmf it (x, log (y) , @fun, start, options) ; % Perform fit R2=l-sum(r.*2)/sum((log(y)-mean(log(y))).A2); % Calculate R2

if nargin==2 % Only return values within acceptable ranges

% Check for fits outside range. If A or nu is outside of range, % then assume the other is no good. A=exp(beta(l) ) ;nu=exp(beta (3) ) ;C=beta(2) ; if A<4e8 I A>4el3 I nule-l beta(1)=nan;beta(3)=nan; end if C<0.1*log(y(end)) I O10*log (y (end) ) beta(2)=nan;end end

% Find the errors (if enough data to do so) if length(x)>=4 if -lsreal (beta) I -isreal(r) | -isreal(J) ci(1:3)=nan; % Error calculation not possible else ci=nlparci(beta,r,'jacobian',J); % Calculate errors end

% Get uncertainties at 1 sigma [sigmaA sigmaC sigmanu] for k=l:3 beta (k+3)= (exp (beta (k) ) -exp (ci (k)))/3; beta(k+3)-abs (beta(k+3)/exp (beta (k))*100);

% Reject greater than 200 % error if beta(k+3)>200 & nargin==2 beta (k)=nan;beta(k+3)=nan; end end

else % Canrot compute errors beta (4:6)=nan; end end if R2<0.95 & nargm==2 % If bad fit and only good fits requested beta(l:6)=nan;beta(7)=R2; else % Build beta beta(l:3)=exp(beta(l:3) ) ;beta(7)=R2; end % function y=fun(beta,x) % This is the fitting equation. beta=[A C nu] y=log(exp(beta<3))*exp(beta(1))./(exp(beta(3))+(x))./... sqrt( (x) )+exp(beta(2) ) ) ;

F.31. TRUtb function [beta]=TRFitb(x,y,~) % Returns the fit coefficients for R/yc=a*lambaAb+c, where % beta=[a b c da db dc R2] where errors are in % or nan if not available. % If R-square R2<0.95 then the result is rejected. If values are outside % their normal range then it is rejected. If a third variable is entered, 286

% then nothing is rejected and the fit returned (allows the single plot to % show issues) .

% Remove 0 and nan values x(y==0) = [] ;y(y==0) = [] ;x(isnan(y) ) = [ ] ;y (isnan (y) )-[]; R2~nan;% If not fit still need an R2

% Check for 3 data points to enable fit if length(x)<3 beta(1:6)=nan; % No fit possible, return nan else % Generate initial guess b=log(y(l)/y(2))/(log(x(l))-log(x(2))); a=log(y(l))-b*log(x(l)); C=log(y(end) ) ;

% Check initial guess for b within acceptable ranges if b<-1.5 I b>0.5 b=-l; end % If not switch to default values

start-[a b C]; % Define the initial guess vector

% Check y is a coloum vector for fitting routine if size(y,2)~=1 y=y'; end

% Calculate the fit lastwarn (' ' ) % Clear warnings options = statset('FunValCheck','off'); % Allow nan solutions (beta, r, J, --, ~]=nlirf it (x, log(y) , @fun, start, options) ; % Perform fit R2=l-sum(r."2)/sum((log(y)-mean(log(y))).A2); % Fird R2

if nargin==2 % Only returr values within acceptable ranges

% Check for fits outside range a-exp(betad) ) ;b=beta(2) ;C=beta(3) ; if a<0 I b<-2 I b>l beta(1)=nan;beta(2)=nan; end if C<0.1*log(y (end)) I O10*log (y (end) ) beta (3)=nan;end end

% Calculate the error if sufficient data to do so if length(x)>=4 if -isreal(beta) I -isreal(r) I -isreal(J) ci (1:3)=nan; % Error calculation not possible else ci=nlparci(beta,r,'jacobian',J); % Calculate errors end

% Get urcertairties at 1 sigma [da db dc] for k-[l 3] •% da ard dc error=(exp(ci(k))-exp(beta(k)))/3; beta(k+3)=abs(error/exp(beta(k)))*100; % Reject greater than 200 % error if beta(k+3)>200 S rargin==2 beta (k)=nan;beta(k+3)=nan; end end % Find error in b errorb=(ci(2)-beta(2))/3;beta(5)=errorb; if abs(errorb)>0.5 & nargin==2 beta(2)=nan;beta(5)-nan; % Reject b error>0.5 erd

else % Cannot compute errors beta(4:6)=nan; end end if R2<0.95 S nargin==2 % If bad fit reject beta(1:6)=nan;beta(7)=R2; else % Return results beta(l)=exp(beta(l));beta(3)=exp(beta(3));beta(7)=R2; end

function y=fun(beta,x) % Define the fitting function, where beta=[a b c] y=log(exp(beta(l) ) . *x.'beta (2)+exp (beta (3) ) ) ;

F.32. ycBu function yc=ycBu(varargin) % Returns the cumulative yield of all isotopes in NukeData according % to (Bu,yc235,yc239) were Bu is the burnup, and yc235, yc239 are optional % input arguments defining the U235 and Pu239 yields of the isotopes of % interest.

% Define constants and burnup sigma_f_U235=5.8e-22;sigma_f_Pu239=7.42e-22;g_f_U235=0.9364,• g_f_Pu239=1.3533;A_U235=235;A_Pu239=239;T=519;To=293.61;N=6.022e23; Bu=varargin(1); if nargm==l % If yc235 and yc239 are not provided, read from NukeData NukeData=getappdata(COLDDl,'NukeData') ; yc235=NukeData(:,2);yc239=NukeData(:,3); else % Use supplied values yc235=varargm(2 ) ;yc239=varargin( 3} ; end

% Calculate the new yc: w_U235=7.076.*exp(-0.006325.*Bu),• w_Pu239=2.794.*exp(-0.000007506.*Bu)-2.785.*exp(-0.0144.*Bu); yc=((yc235.*w_U235*sigma_f_U235)+(yc239.*w_Pu239*sigma_f_Pu239))./... ((w_U235*sigma_f_U235)+(w_Pu239*sigma_f_Pu239)); F.33. Explanations.xlsx First column is the analysis title, second column is the analysis description, and third column is the commands executed:

Defect burnup using noble gas R/yc Attempts to optimise a R/yc(Bu) fit by varying Bu to find the best fit DefectBurnupFromRycScan(handles) Defect burnup using noble gas R/yc Attempts to optimise a R/yc(Bu) fit by varying Bu to find the best fit Plots the best fit DefectBurnupFromRyc(handles) at a user specified time function as a function of burnup [B]=DefectBurnupCsRatio Defect burnup using the Asks the user to input the 134Cs/137Cs coolant concentration ratio, and then returns ,set(handles MsgResult,'Stnng',{char(get(handles Ms 134Cs/137Cs ratio the burnup gResult,'Stnng')),[Analy ' indicates ' B])), This is a simplistic technique that divides the 1311 activity and release rate by that Defect number by 1131 activity and expected from a 'typical' defect The technique is not to be considered to provide Dnumberll31(handles), release rate exact quantitative numbers, but rather orders of magnitude The user is to be wary of mistaking a single large defect with many very small ones, or vice versa Uses the A=3F_(f)XP\surdD'(P) term from an R/yc analysis of iodines to calculate the Defect number by R/y analysis using defect number The effective defect power is taken from the "Model Constants" varargout=RyAnalysis(handles,'iodines',Analy), iodines table Uses the A=3F_{f}XP\surdD'(P) term from an R/yc analysis of noble gases to calculate Defect number by R/y analysis using the defect number The effective defect power is taken from the "Model Constants" varargout=RyAnalysis(handles,'gas',Analy), noble gases table result=DefSizeRatios(get(handles DataAvail,'Stnng'),g Determines the defect size by using mixed species (primary) or same species et(handles lgnored,'Stnng'),handles),set(handles Ms Defect size by isotope ratio (secondary) ratios Other defect size methods should be used first if available gResult,'Stnng',{char(get(handles MsgResult,'Stnng')) -result)). This technique uses R/yc=a*{\lambda}A(b)+c to estimate defect size by the value "b" Defect size by R/y b analysis using Large negative b (< 1) suggests small defects (lots of hold up) and small b (~-0 5) varargout=Sizefromb(handles,'iodines'), iodines indicates large defects with minimal hold-up b=0 for tramp uranium This technique uses R/yc=a*{\lambda}A{b)+c to estimate defect size by the value "b" Defect si2e by R/y b analysis using Large negative b (<-l) suggests small defects (lots of hold up) and small b (~-0 5) varargout=Sizefromb(handles,'gas'), noble gases indicates large defects with minimal hold-up b=0 for tramp uranium Defect size by R/y nu analysis using Uses (\nu) from an iodine R/yc analysis to determine the defect size Caution, this varargout-RyAnalysis(handles,'iodines',Analy), iodines technique is highly sensitive to reactor constants and assumed defect burnup Plot days to secondary hydnding This plots the standard CANDU hydnding curves and interpolates the days to [~,~]=SecondaryHydnding(handles), from P hydnding based on the defect power in the "Model Constants" table Plot defect state using Xel33,1131, This technique uses Xel33 and 1131 and/or 1133 to roughly gauge defect size based Defectstate(handles), 1133 on the Xel33 release rate and the Xel33/lodine ratios Plot R/yc using all isotopes (used for This analysis plots R/yc (activity) of all available isotopes Look for outliers or unusual RycChecker(handles), data checking) results that may be due to incorrect data Activity and release rate plotted separately Plot Sb-123 mass estimate Plots the mass of Sb-123 as a function of time Sbl23mass(handles) Plot single R/y analysis at specified Plots a single R/y at the user specified time (specify the time in days when requested) [hl,time]=Roy(handles,'both'),[h2,time]=Roy(handle time using both iodines and gases using both iodines and gases s,'gas',time), Plot single R/y analysis at specified Plots a single R/y at the user specified time (specify the time in days when requested) [hl,time]=Roy(handles,'iodines'), time using iodines using iodines Plot single R/y analysis at specified Plots a single R/y at the user specified time (specify the time in days when requested) [hl,time]=Roy(handles,'gas'), time using noble gases using both noble gases [Pl,P2]=PRatio,set(handlesMsgResult,'Stnng',{char(g Power from activity or release rate Uses the ratio of activities or release rates at two different reactor power levels et(handles MsgResult,'Stnng')),[Analy ' indicates PI = ratio (P_(l)=(\alpha)*P_{2)) to determine the defect power ' PI' and P2 = ' P2])), This technique assumes the Xel33 is produced by 1 defect, and that Power of one element to produce {\nu)/({\nu}+{\lambda}) ~ 1 The power required to produce the measured Xel33 plotP(handles) Xel33 activity and release rate is then calculated Power of X defect(s) using iodines Uses the A=3F_{f}XP\surdD'(P) term from an R/yc analysis of iodines to calculate the varargout=RyAnalysis(handles,'iodines',Analy), R/vc defect power The number of defects is taken from the "Model Constants" table Power of X defect(s) using noble gas Uses the A=3F_{f}XP\surdD'(P) term from an R/yc analysis of noble gases to calculate varargout=RyAnalysis(handles,'gas',Analy), R/yc the defect power The number of defects is taken from the "Model Constants" table Based on the time scale shown in the top left figure, this analysis searches for periods Tramp burnup of tramp uranium only (i e, no defects present) and then searches for Bu_{tr) such trampburnup(handles), that R/yc(Bu_(tr)) = C Tramp mass by R/yc analysis using Uses the "C" term from an R/yc analysis to calculate the tramp mass The tramp is varargout=RyAnalysis(handles,'iodines',Analy), iodines assumed to have the burnup listed in the "Model Constants" table Tramp mass by R/yc analysis using Uses the "C" term from an R/yc analysis to calculate the tramp mass The tramp is varargout=RyAnalysis(handles,'gas',Analy), noble gases assumed to have the burnup listed in the "Model Constants" table Tramp mass using all available Calculates the tramp uranium mass using all techniques available It is necessary to trampall(handles) techniques select each technique separately for its individual description Assumes the ONLY source of 1134 is tramp uranium and determines the mass of Tramp mass using 1134 tramp uranium present Reactor constants are taken from the "Model Constants" l~,~]=trampisotope('i-134',handles), table Assumes the ONLY source of Xel38 is tramp uranium and determines the mass of Tramp mass using Xel38 tramp uranium present Reactor constants are taken from the "Model Constants" (~,~)=trampisotope('Xe-138',handles), table Plots the iodine spike from the end of the data Specifies time to maximum and value Plot iodine spike from end of data varargout=RyAnalysis(handles,'iodines',Analy), of maximum Plot STAR input values Plots the STAR input parameters as a function of time varargout=RyAnalysis(handles,'iodine',Analy), F.34. DefectState.xlsx

Increasing detect 1DXe/ml Release "Wl Release U3Xe Release power and size [arb.] Rate Ratio Rate Ratio Rate [atom.s *] 0 61 76532 344 292 101E+11

0 01 60 55795 337 8255 1 03E+11

0 02 59 02827 331 359 1 05E+11

0 03 56 79836 323 032 1 08E+11

0 04 54 67527 314 0487 112E+11

0 05 52 60131 305 5914 121E+11

0 06 50 57742 297 3666 131E+11

0 07 48 63178 289 2655 142E+11

0 08 46 74079 281 2316 153E+11

0 09 44 93306 273 1803 166E+11

01 43 23134 265 2706 179E+11

Oil 41 69514 258 1322 194E+11

012 40 16174 251 5307 2 1E+11

013 38 63723 245 1857 2 27E+11

014 37 14843 238 5965 2 46E+11

015 35 72304 232 0467 2 65E+11

016 34 34786 225 5385 2 86E+11

0 17 33 02786 219 1891 312E+11

0 18 31 85418 213 0554 3 44E+11

0 19 30 69907 207 0799 3 71E+11

02 29 55559 201 2505 3 97E+11

021 28 41482 195 7199 4 2E+11

0 22 27 34701 190 3744 4 55E+11

0 23 26 32477 184 8499 4 95E+11

0 24 25 34309 179 3731 5 37E+11

0 25 24 39606 173 9616 5 79E+11

0 26 23 47046 168 8291 6 21E+11

0 27 22 56969 163 8876 6 67E+11

0 28 21 70428 159 0529 7 44E+11

0 29 20 87345 154 2131 8E+11

03 20 0687 149 4285 8 56E+11

0 31 19 29201 144 7598 9 31E+11

0 32 18 5693 140 4158 101E+12

0 33 17 8172 136 1639 1 09E+12

0 34 17 08774 131 9648 117E+12

0 35 16 43227 127 8177 1 27E+12

0 36 16 0664 123 7328 1 38E+12 Increasing defect laXe/ull Release "Wl Release 13JXe Release power and size [arb.] Rate Ratio Rate Ratio Rate [atom.s1] 0.37 15.3045 119.727 1.5E+12

0.38 14.71076 115.8492 1.62E+12

0.39 14.18265 111.9883 1.74E+12

0.4 13.64735 108.2084 1.88E+12

0.41 13.11002 104.5364 2.02E+12

0.42 12.59642 101.0924 2.18E+12

0.43 12.12083 97.5912 2.35E+12

0.44 11.66427 94.04219 2.53E+12

0.45 11.22227 90.60586 2.72E+12

0.46 10.7959 87.44155 2.94E+12

0.47 10.38819 84.4363 3.18E+12

0.48 9.995955 81.53728 3.42E+12

0.49 9.6193 78.59079 3.69E+12

0.5 9.259361 75.67328 3.97E+12

0.51 8.910813 72.80095 4.28E+12

0.52 8.573445 69.96167 4.62E+12

0.53 8.252664 67.22753 4.99E+12

0.54 7.939531 64.51671 5.38E+12

0.55 7.634964 61.75692 5.81E+12

0.56 7.341828 59.09181 6.27E+12

0.57 7.071145 56.52919 6.74E+12

0.58 6.807315 54.0334 7.25E+12

0.59 6.549747 51.5689 7.8E+12

0.6 6.304286 49.1037 8.4E+12

0.61 6.067867 46.78959 9.01E+12

0.62 5.838968 44.58819 9.65E+12

0.63 5.618426 42.46646 1.03E+13

0.64 5.408398 40.38203 1.1E+13

0.65 5.210051 38.34372 1.18E+13

0.66 5.022206 36.34403 1.26E+13

0.67 4.838493 34.40384 1.34E+13

0.68 4.658381 32.54421 1.43E+13

0.69 4.482703 30.76956 1.53E+13

0.7 4.31326 28.97775 1.62E+13

0.71 4.152072 27.20272 1.73E+13

0.72 3.99597 25.4739 1.83E+13

0.73 3.844861 23.79568 1.94E+13

0.74 3.700554 22.16951 2.06E+13

0.75 3.557573 20.59671 2.18E+13 Increasing defect lnXe/ml Release IBXe/13,l Release 155Xe Release power and size [arb.] Rate Ratio Rate Ratio Rate [atom.s'] 0 76 3 419924 19 0928 2 3E+13

0 77 3 290441 17 65304 2 42E+13

0 78 3 172438 16 26632 2 54E+13

0 79 3 052658 14 96772 2 67E+13

08 2 932476 13 77258 2 79E+13

0 81 2 81757 12 60376 2 92E+13

0 82 2 712623 11 53378 3 04E+13

0 83 2 611425 10 57212 317E+13

0 84 2 512478 9 63864 3 29E+13

0 85 2 420976 8 79386 3 4E+13

0 86 2 333151 8 043239 3 52E+13

0 87 2 247534 7 329568 3 63E+13

0 88 2 160967 6 642401 3 75E+13

0 89 2 079579 6 02243 3 86E+13

09 2 000496 5 450841 3 97E+13

0 91 1 922822 4 918977 4 09E+13

0 92 1 848024 4 449015 4 2E+13

0 93 1 777501 4 011755 4 3E+13

0 94 1 710117 3 621266 4 41E+13

0 95 1644621 3 254582 4 52E+13

0 96 1 586305 2 924402 4 64E+13

0 97 1 530234 2 639101 4 76E+13

0 98 1 475482 2 374468 4 87E+13

0 99 1 430178 2 085161 4 91E+13

1 1 384955 2 052221 4 93E+13 F.36. HydrideData Details for the table below are described in section 3.9

Lock* Power Locke Time to Manzer Power Manzer Time to [kW.m7] degradation [days] [kW.m2] Degradation [days] 596.0139 1722.085 48.73654 1011.96 672.6667 1194.107 86.96291 606.2642 757.5846 803.7901 115.5847 437.5906 850.6595 551.8963 170.235 301.4641 949.9062 375.2162 227.1799 225.6102 1069.718 247.649 305.3851 169.7145 1166.85 173.4443 397.7455 131.0112 1288.539 123.9157 513.7205 102.7137 1403.949 93.94822 646.2304 80.9445 1500.756 76.33559 778.7062 66.48518 1558.655 60.79938 908.7851 56.91698 1599.73 46.1093 1050.669 49.23202 1650.369 31.74476 1149.197 42.11637 1692.526 20.79289 1210.408 33.01598 1715.658 14.43303 1238.998 23.98024 1747.852 8.074195 1239.089 21.48752 1758.976 5.557986 1775.236 3.857879 1800.43 2.28723 1827.361 1.344837 1854.165 0.838032 1893.369 0.461426 1919.763 0.332317 1944.694 0.23415 1977.112 0.169872 1997.401 0.125961 2014.317 0.109663

F.37. NukeData.xIsx See Appendix C Table C-l

295

Appendix G Gamma Spec Analysis Results (UNISAMPO-SHAMAN)

G.1. Analysis of first NGS spectrum:

* SHAMAN IDENTIFICATION REPORT *

SHAMAN version 1.16 for Linux-x86 (Mon Jun 18 19:07:45 2007) Copyright (C) 1997-2007 Baryon Oy, Espoo, Finland Licence #SHA-589343-3, Radiation Protection Bureau, Health Canada, Ottawa, Canada Single user / single CPU workstation

TueJun 2 11:44:28 2009

Spectrum file : NGS1 -new.ids.08.01 Spectrum title : St:CMC07 Det:CAL05 012 Type:FULLCStp:2006-Dec-l 3,12:00:00 Sampl:24.0h Cool: Background spectrum : /usr/local/gamma/shaman/mac/det/bg-CAL05-012-20061222.ids Nuclide library : /usr/local/gamma/shaman/lib/shalib.glb (version 3.1.1) Decay scheme file : /usr/local/gamma/shaman/lib/shalib.dsd Basic UniSampo macro : /usr/local/gamma/shaman/../unisampo/airfiltr.run Basic Shaman macro : /usr/local/gamma/shaman/mac/airfiltr.mac Basic Shaman det-macro : /usr/local/gamma/shaman/mac/det/det-default.mac

Start of sampling : Thu Jul 1 17:29:09 2004 End of sampling : Thu Jul 1 17:29:09 2004 Start of counting : Thu Jul 1 17:29:09 2004 End of counting : Thu Jul 121:55:49 2004 Reference date : Thu Jul 1 17:29:09 2004 Sampling time : 0 s Decay time : 0 s Real counting time : 4.444 h Live counting time : 4.394 h Dead time : 1.13% Sample size (mA3) :12000 Peak search threshold :2.4 MDA k alpha : 1.65 MDA kbeta 1.65 Energy ranges (keV) : [0.7606,411 .326] User energy ranges (keV): [38,10000]

* SPECTRUM PEAK IDENTIFICATION *

Peak; : Energy: Cps: Gps: Signif: Expl: Flags: Associated nuclides:

1 57.99+-0.51 7.8716(+- 4.72%) 83531.5938 (+- 5.16%) 56.34 0.00 U 2 59.33+-0.52 13.7592 (+- 1.11%) 140747.3594 (+- 2.36%) 98.52 0.00 U 3 67.19+-0.52 5.5737 (+- 0.84%) 47146.8750 (+- 2.25%) 38.94 1.79 K 4 69.09+-0.52 1.3609 (+- 3.25%) 11057.4990 (+- 3.86%) 9.40 0.00 U 5 81.04+-0.53 54.4234 (+- 0.85%) 357628.1875 (+- 2.25%) 321.24 100.00 54Xel33 6 82.99 +- 0.53 0.0000 (+- 0.00%) 0.0000 (+- 0.00%) 0.00 0.00 IN 7 135.31+-0.56 0.2066 (+- 0.18%) 871.6443 (+- 3.03%) 1.38 99.65 g 531134 8 137.86+-0.57 0.1351 (+- 0.10%) 565.3322 (+- 3.10%) 0.91 99.41 G 55Csl38 9 151.21+-0.57 3.7394 (+- 0.86%) 15150.7617 (+- 3.58%) 26.42 79.67 36Kr85M 10 153.84+-0.58 0.2094 (+- 10.89%) 844.9255 (+- 11.45%) 1.49 123.01 M 54Xel38 11 165.88+-0.58 0.4097 (+- 9.93%) 1631.9905 (+- 10.67%) 3.04 100.00 36Kr88 56Bal39 12 176.35+-0.59 1.4701 (+- 1.83%) 5840.9126 (+- 4.55%) 10.99 93.06 51SM25 13 191.96+-0.60 0.1051 (+- 23.68%) 421.2245 (+- 24.12%) 0.82 38.05 M G 14 196.29+-0.60 1.5336 (+- 1.97%) 6172.8286 (+- 5.10%) 12.15 100.38 36Kr88 15 220.21+-0.61 0.1004 (+- 23.02%) 420.2382 (+- 23.63%) 0.85 0.00 UG 16 227.72 +- 0.62 0.1042 (+- 32.48%) 443.4669 (+- 32.94%) 0.90 151.91 G 51SM25 55Csl3 17 233.32+-0.62 0.4097 (+- 2.94%) 1767.8586 (+- 6.40%) 3.59 100.00 54Xel33M 18 249.72 +- 0.63 14.5827 (+•- 0.26%) 65801.3750 (+- 6.12%) 135.20 100.00 54Xel35 19 258.34 +- 0.64 0.8242 (+- 3.06%) 3817.2869 (+- 7.05%) 8.03 99.38 54Xel38 20 271.76+-0.64 0.1552 (+- 13.86%) 750.8365 (+- 15.40%) 1.58 0.00 U 21 304.87+-0.66 0.2250 (+- 7.97%) 1228.4686 (+- 11.00%) 2.42 183.40 36Kr85M 22 346.66+-0.68 0.1732 (+- 15.10%) 1122.8429 (+- 17.43%) 2.03 0.00 D U 23 364.31+-0.69 0.2368 (+- 10.08%) 1658.0813 (+- 13.62%) 2.83 100.00 531131 24 380.66+-0.70 0.0979 (+- 15.90%) 737.2876 (+- 18.57%) 1.19 163.39 g 51SM25 25 391.27+-0.70 0.0545 (+- 38.91%) 430.8030 (+- 40.14%) 0.67 39.83 G 36Kr88 26 402.42+-0.71 0.5182 (+- 5.19%) 4314.0435 (+- 10.93%) 6.34 100.00 36Kr87 27 405.32+-0.71 0.1341 (+- 31.53%) 1131.4911 (+- 32.95%) 1.64 131.22 531134

Energy: keV, peak sigma as the uncertainty Cps: counts per second in the peak, with peak area uncertainty Gps: gammas per second from source, with propagated uncertainty Significance: peak area relative to twice the decision limit 2*L_C(95%) Explanation: % of peak area explained Flags: ENbackground, A=annihilation, S=single escape, D=double escape, X=x-ray, x=x-ray escape, Z=backscatter, C=coinc sum, R=random sum, K/L/M=user given, 0=out of energy range, U=unknown, I=insignificant, N=not present (below det. limit), G=dark gray (very close to det. limit),

g=pale gray (close to det. limit)

* NUCLIDE IDENTIFICATION *

Nuclide: #-ln: Ccorr: Activity: Uncert: Prim.Act: Refer.Act: Concentr: MDC: OwnT_l/2: Eff. T_l/2: 4.48 h 4.48 h 2136Kr85 36Kr87M 12 YY 8.628e+01.609e+03 4 10.93.630 8.628e+02.020e+034 2.294e+02.226e+044 1.911e+01.855e+066 3.025e+08.827e+054 1.272 h 1.272 h 3 36Kr88 4 Y 2.384e+04 5.07 2.375e+04 3.906e+04 3.255e+06 2.673e+05 2.84 h 2.84 h 4 51SM25 3 Y 7.889e+04 4.49 8.477e+04 7.889e+04 6.574e+06 6.439e+05 2.759 a 2.759 a 5 531131 1 Y 2.029e+03 13.63 2.029e+O3 2.046e+03 1.705e+05 6.046e+04 8.021 d 8.021 d 6 531134 2 N 2.020e+04 3.02 1.539e+04 7.329e+04 6.107e+06 2.846e+06 52.5 m 52.5 m 7 54Xel33 1 Y 9.411e+05 2.25 9.411e+05 9.527e+05 7.939e+07 2.475e+05 5.243 d 5.243 d 8 54Xel33M 1 Y 1.768e+04 6.40 1.768e+04 1.820e+04 1.517e+06 4.239e+05 2.19d 2.19 d 9 54Xel35 Y 7.311e+04 6.12 7.311e+04 8.613e+04 7.177e+06 5.319e+04 9.14 h 9.14 h 298

10 54Xel38 2 N 1.204e+04 7.01 1.212e+04 1.581e+05 1.318e+07 1.654e+06 14.08 m 14.08 m 1155Csl38 2 Y 3.772e+04 3.09 2.429e+04 2.095e+05 1.746e+07 1.517e+07 33.41m 33.41m 12 56Bal39 1 Y 3.723e+03 19.93 6.800e+03 9.288e+03 7.740e+05 4.662e+05 1.384 h 1.384 h

# of lines: number of found lines in the spectrum Ccorr: nuclide lines coincidence summing corrected (Y/N) Activity: Bq, raw uncorrected activity Uncert: %, relative activity uncertainty Prim.Act: Bq, raw uncorrected primary line activity Refer.Act: Bq, activity corrected to reference date Concentration: uBq/mA3, counting, decay and sampling corrected act.conc. *=background nuclide, concentration not applicable negative value = infinity MDC: uBq/mA3, counting, decay and sampling corrected act.conc. corresponding to L D(95%) negative value = infinity Own T 1/2: radionuclide's own half-life Eff. T_l/2: longest half-life in the parent chain assuming equilibrium, effective parent in parenthesis

* EXPLANATION TOTALS *

27 peaks found in spectrum. 20 peaks associated with nuclides. 1 peaks judged insignificant. 0 peaks out of energy range. 6 peaks not associated with nuclides. 77 percent of peaks were associated with nuclides. 12 nuclides identified. 0 natural nuclides identified. 12 anthropogenic nuclides identified. G.2. Analysis of second NGS spectrum: * SHAMAN IDENTIFICATION REPORT *

SHAMAN version 1.16 for Linux-x86 (Mon Jun 18 19:07:45 2007) Copyright (C) 1997-2007 Baryon Oy, Espoo, Finland Licence #SHA-589343-3, Radiation Protection Bureau, Health Canada, Ottawa, Canada Single user / single CPU workstation

TueJun 2 11:50:32 2009

Spectrum file : NGS2-new.ids. 10.01 Spectrum title : St:CMC07 Det:CAL05 012 Type:FULL CStp:2006-Dec-13,12:00:00 Sampl:24.0h Cool: Background spectrum : /usr/local/gamma/shaman/mac/det/bg-CAL05-012-20061222.ids Nuclide library : /usr/local/gamma/shaman/lib/shalib.glb (version 3.1.1) Decay scheme file : /usr/local/gamma/shaman/lib/shalib.dsd Basic UniSampo macro : /usr/local/gamma/shaman/../unisampo/airfiltr.run Basic Shaman macro : /usr/local/gamma/shaman/mac/airfiltr.mac Basic Shaman det-macro : /usr/local/gamma/shaman/mac/det/det-default.mac

Start of sampling :ThuAug 5 18:21:09 2004 End of sampling :ThuAug 5 18:21:09 2004 Start of counting :ThuAug 5 18:21:09 2004 End of counting : Thu Aug 5 22:47:49 2004 Reference date :ThuAug 5 18:21:09 2004 Sampling time :0s Decay time :0s Real counting time : 4.444 h Live counting time : 4.244 h Dead time : 4.50 % Sample size (mA3) :12000 Peak search threshold : 2.4 MDA k_alpha : 1.65 MDAk_beta : 1.65 Energy ranges (keV) : [0.920821,420.699] User energy ranges (keV): [38,10000]

* SPECTRUM PEAK IDENTIFICATION *

Peak: Energy: Cps: Gps: Signif: Expl: Flags: Associated nuclides:

1 57.97+-0.39 3.1752 (+- 0.77%) 33713.0664 (+- 2.22%) 30.87 0.00 U 2 59.32 +- 0.39 6.0991 (+- 0.46%) 62405.4180 (+- 2.13%) 59.55 0.00 U 3 67.17+-0.39 2.4327 (+- 0.96%) 20587.7910 (+- 2.29%) 24.25 4.11 K 4 69.01+-0.39 0.7286 (+- 3.01%) 5929.4619 (+- 3.66%) 7.26 0.00 U 5 72.72+-0.39 0.0991 (+- 19.50%) 749.3310 (+- 19.61%) 1.00 0.00 UG 6 75.03+-0.39 0.2682 (+- 6.99%) 1945.0115 (+- 7.30%) 2.70 0.00 U 7 80.99 +- 0.39 1.2905 (+- 1.62%) 8485.7295 (+- 2.64%) 12.94 100.00 54Xel33 8 84.78 +- 0.39 0.1274 (+- 17.02%) 792.9060 (+- 17.15%) 1.27 0.00 Ug 9 116.79+-0.40 0.0901 (+-26.20%) 414.2557 (+- 26.33%) 0.84 43.28 G 51SM25 10 135.29+-0.40 0.2126 (+- 9.41%) 897.3517 (+- 9.88%) 1.99 69.97 531134 11 151.06+-0.40 0.3710 (+- 5.54%) 1503.6917 (+- 6.54%) 3.63 100.00 36Kr85M 12 153.73+-0.40 0.1077 (+- 22.14%) 434.3676 (+- 22.42%) 1.06 96.93 g 54Xel38 13 162.33+-0.41 0.0396 (+-45.99%) 158.1730 (+- 46.14%) 0.40 75.74 MIN 14 165.78+-0.41 0.1198 (+- 15.28%) 477.0847 (+- 15.76%) 1.22 100.00 g 36Kr88 56Bal39 15 176.14+-0.41 1.1593 (+- 1.99%) 4605.8765 (+- 4.61%) 11.97 101.59 51Sbl25 16 191.70+-0.41 0.1030 (+- 18.67%) 412.6886 (+- 19.22%) 1.12 100.00 g 42Mol01 17 196.10+-0.41 0.2769 (+- 8.96%) 1114.3331 (+- 10.11%) 3.07 100.00 36Kr88 18 207.92+-0.41 0.0505 (+-32.10%) 206.5444 (+- 32.49%) 0.58 81.87 G 51SM25 19 227.78 +- 0.42 0.0472 (+-43.07%) 200.7956 (+- 43.42%) 0.57 100.00 G 51Sbl25 55Csl38 20 235.20 +- 0.42 0.0751 (+-20.44%) 325.7820 (+- 21.23%) 0.93 95.47 D G 531134 21 242.24 +- 0.42 0.0714 (+-21.34%) 315.3535 (+-22.15%) 0.90 78.54 G 54Xel38 22 249.50 +- 0.42 2.3652 (+- 0.88%) 10665.6611 (+- 6.18%) 30.05 100.00 54Xel35 23 258.12+-0.42 0.4737 (+- 3.24%) 2192.4031 (+- 7.12%) 6.33 101.67 54Xel38 24 271.36+-0.42 0.1052 (+- 16.47%) 508.2842 (+- 17.78%) 1.47 95.64 86Rn219 25 287.85 +- 0.42 0.0370 (+- 35.41%) 189.6260 (+- 36.12%) 0.54 0.00 UG 26 346.08+-0.43 0.0890 (+- 20.07%) 575.3768 (+- 21.86%) 1.46 0.00 U 27 364.11+-0.44 0.0420 (+- 42.73%) 293.7630 (+- 43.70%) 0.73 100.00 G 531131 28 379.84+-0.44 0.0700 (+- 17.25%) 525.1245 (+- 19.73%) 1.23 0.00 Ug 29 401.82+-0.44 0.0431 (+- 39.23%) 357.7976 (+- 40.40%) 0.77 125.94 G 54Xel38 86Rn219 30 402.32+-0.44 0.0521 (+- 30.01%) 433.4845 (+- 31.52%) 0.93 100.00 G 36Kr87 31 405.12+-0.44 0.0881 (+- 13.98%) 742.4261 (+- 16.93%) 1.58 144.55 531134 32 408.29+-0.44 0.0623 (+- 24.48%) 533.2647 (+- 26.25%) 1.13 23.69 g 51SM25

Energy: keV, peak sigma as the uncertainty Cps: counts per second in the peak, with peak area uncertainty Gps: gammas per second from source, with propagated uncertainty Significance: peak area relative to twice the decision limit 2*L_C(95%) Explanation: % of peak area explained Flags: B=background, A=annihilation, S=single escape, D=double escape, X=x-ray, x=x-ray escape, Z=backscatter, C=coinc sum, R=random sum, K/L/M=user given, 0=out of energy range, U=unknown, I=insignificant, N=not present (below det. limit), G=dark gray (very close to det. limit), g=pale gray (close to det. limit)

* NUCLIDE IDENTIFICATION *

Nuclide: #-ln: Ccorr: Activity: Uncert: Prim.Act: Refer.Act: Concentr: MDC: OwnT_l/2: Eff. T_ 1/2:

1 36Kr85M 1 Y 2.005e+03 6.54 2.005e+03 2.773e+03 2.311e+05 6.370e+04 4.48 h 4.48 h 2 36Kr87 1 Y 8.670e+02 31.52 8.670e+02 2.305e+03 1.921e+05 2.069e+05 1.272 h 1.272 h 3 36Kr88 2 Y 4.287e+03 10.11 4.287e+03 7.024e+03 5.853e+05 1.912e+05 2.84 h 2.84 h 4 42Mol01 1 N 2.266e+03 19.22 2.266e+03 2.867e+04 2.389e+06 2.130e+06 14.61 m 14.61 m 5 51Sbl25 5 Y 6.791e+04 4.50 6.685e+04 6.791e+04 5.659e+06 4.664e+05 2.759 a 2.759 a 6 531131 1 Y 3.596e+02 43.70 3.596e+02 3.624e+02 3.020e+04 4.173e+04 8.021 d 8.021 d 7 531134 3 N 1.460e+04 8.36 1.010e+04 5.298e+04 4.415e+06 1.937e+06 52.5 m 52.5 m 8 54Xel33 1 Y 2.233e+04 2.64 2.233e+04 2.261e+04 1.884e+06 1.459e+05 5.243 d 5.243 d 9 54Xel35 1 Y 1.185e+04 6.18 1.185e+04 1.396e+04 1.163e+06 3.887e+04 9.14 h 9.14 h 10 54Xel38 4 N 7.076e+03 6.51 6.960e+03 9.290e+04 7.741e+06 1.207e+06 14.08 m 14.08 m 302

1155Csl38 1 Y 7.361e+03 78.52 1.330e+04 4.089e+04 3.407e+06 1.090e+07 33.41m 33.41m 12 56Bal39 1 Y 1.435e+03 22.19 1.988e+03 3.579e+03 2.982e+05 3.392e+05 1.384 h 1.384 h 13 86Rn219 2 Y 4.501e+03 17.37 4.706e+03 4.501e+03 3.751e+05 2.682e+05 3.96 s 7.038e+08 a(92U235)

# of lines: number of found lines in the spectrum Ccorr: nuclide lines coincidence summing corrected (Y/N) Activity: Bq, raw uncorrected activity Uncert: %, relative activity uncertainty Prim.Act: Bq, raw uncorrected primary line activity Refer.Act: Bq, activity corrected to reference date Concentration: uBq/mA3, counting, decay and sampling corrected act.conc. *=background nuclide, concentration not applicable negative value = infinity MDC: uBq/mA3, counting, decay and sampling corrected act.conc. corresponding to L_D(95%) negative value = infinity Own T 1/2: radionuclide's own half-life Eff. Tl/2: longest half-life in the parent chain assuming equilibrium, effective parent in parenthesis

* EXPLANATION TOTALS *

32 peaks found in spectrum. 23 peaks associated with nuclides. 0 peaks judged insignificant. 0 peaks out of energy range. 9 peaks not associated with nuclides. 72 percent of peaks were associated with nuclides. 13 nuclides identified. 0 natural nuclides identified. 13 anthropogenic nuclides identified. 6.3. Analysis of NRU spectrum: * SHAMAN IDENTIFICATION REPORT *

SHAMAN version 1.17 for Linux-x86_64 (Fri Jul 4 12:49:35 2008) Copyright (C) 1997-2008 Baryon Oy, Espoo, Finland Licence #SHA-DEVEL, Shaman development for a generic NDC Single user / single CPU workstation

Tue May 26 15:03:33 2009

Spectrum file : Coolant2.ids.01.01 Spectrum title : St:CMC07 Det:CAL05 012 Type.FULL CStp:2009-Apr-02,09:20:09 Sampl:0.0h Cool:0. Background spectrum : NONE Nuclide library : /usr/local/gamma/shaman/lib/shalib.glb (version 3.1.1) Decay scheme file : /usr/local/gamma/shaman/lib/shalib.dsd Basic UniSampo macro : /usr/local/gamma/shaman/../unisampo/envsampl.run Basic Shaman macro : /usr/local/gamma/shaman/mac/envsampl.mac Basic Shaman det-macro : /usr/local/gamma/shaman/mac/det/det-default.mac

Start of irradiation : Tue Dec 12 12:00:00 2006 End of irradiation : Thu Apr 2 09:20:09 2009 Start of counting : Fri Apr 3 09:20:09 2009 End of counting : Fri Apr 3 10:20:09 2009 Reference date : Fri Apr 3 09:20:09 2009 Irradiation time : 2.305 a Decay time : 1 d Real counting time : 1 h Live counting time : 53.6 m Dead time : 10.67 % Sample size (g) : 120 Peak search threshold : 2.4 MDAkalpha : 1.65 MDAkJ>eta : 1.65 Energy ranges (keV) : [0.749366,3020.44] User energy ranges (keV): [38,10000]

* SPECTRUM PEAK IDENTIFICATION *

Peak: : Energy: Zps( : Gps: Signif: Expl: Flags: Associated nuclides:

1 72.56+-0.71 177.2097 (+- 57.71%) 2683379.2500 (+- 57.93%) 233.63 0.00 U 2 74.76+-0.71 297.3226 (+- 22.61%) 4463528.5000 (+- 23.16%) 393.29 0.00 U 3 84.62+-0.71 136.7937 (+- 0.78%) 2008967.8750 (+- 5.06%) 188.78 79.01 X 41Nbl05 90Th228 4 87.10+-0.71 39.1559(+- 1.86%) 573883.3125 (+- 5.34%) 54.69 0.00 U 5 99.48+-0.71 10.3818 (+- 2.00%) 152911.2188 (+- 5.39%) 15.07 123.09 X 90Th228 93Np239 6 103.65 +- 0.72 16.5682 (+- 1.56%) 245521.5781 (+- 5.24%) 24.09 118.79 X 93Np239 7 106.04+-0.72 20.4074 (+- 0.65%) 303711.4062 (+- 5.04%) 29.71 108.12 93Np239 8 116.93+-0.72 5.9155 (+- 4.81%) 90296.3359 (+- 6.94%) 8.67 114.74 X 55Csl43 93Np239 9 121.07+-0.72 2.7900 (+- 8.33%) 43090.0938 (+- 9.72%) 4.10 84.47 X 93Np239 10 133.60+-0.72 2.9276 (+- 6.60%) 47072.4258 (+- 8.28%) 4.34 17.52 56Bal31 11 136.17+-0.72 1.5816 (+- 11.62%) 25659.8086 (+- 12.65%) 2.36 139.84 36Kr79 531134 56Bal29 12 140.57+-0.72 15.1456 (+• 1.27%) 249638.9531 (+• 5.16%) 22.83 100.00 42Mo99 43Tc99M 13 145.52+-0.73 24.1843 (+- 0.80%) 406012.4688 (+- 5.07%) 36.86 100.00 41NM05 58Cel41 14 150.02+-0.73 2.3340 (+- 7.29%) 39859.8125 (+- 8.84%) 3.59 87.41 41NM05 52Tel31M 15 153.97+-0.73 0.6627 (+- 25.95%) 11491.6406 (+- 26.42%) 1.03 320.88 g 41NM05 54Xel38 16 162.74+-0.73 1.3156 (+- 13.44%) 23621.1367 (+- 14.34%) 2.09 153.21 531134 56Bal40 17 165.98+-0.73 6.4156 (+- 2.69%) 116700.9062 (+- 5.68%) 10.25 117.37 36Kr88 90Th228 18 168.74+-0.73 1.7956 (+- 9.23%) 33028.7461 (+- 10.50%) 2.88 0.00 U 19 175.45+-0.73 1.1396 (+- 14.27%) 21542.9023 (+- 15.12%) 1.85 77.21 41NM05 20 181.56+-0.73 1.8821 (+- 9.10%) 36481.5078 (+- 10.39%) 3.10 125.39 42Mo99 51Sbl30 52Tel31M 63Eul58 21 190.51+-0.74 7.6369 (+- 11.17%) 153580.7188 (+- 12.24%) 12.87 100.49 49Inll4M 52Tel31M 22 192.57+-0.74 2.0299 (+- 13.56%) 41170.1992 (+- 14.45%) 3.44 100.49 41NM05 55Csl38 23 197.30+-0.74 31.7813 (+- 4.69%) 657255.4375 (+- 6.85%) 54.61 1.60 41Nbl05 24 210.25+-0.74 3.2946 (+- 4.60%) 71845.9766 (+- 6.80%) 5.86 57.37 93Np239 25 218.60+-0.74 1.6622 (+- 8.40%) 37499.6641 (+- 9.77%) 3.02 100.00 87Fr221 26 220.96+-0.74 2.2620 (+- 4.37%) 51518.1484 (+- 6.64%) 4.10 97.41 531135 56Bal29 27 228.41+-0.75 13.1450 (+- 1.51%) 308492.8750 (+- 5.22%) 24.36 48.21 55Csl38 55Csl43 93Np239 28 231.68+-0.75 0.9557 (+- 17.44%) 22723.8770 (+- 18.14%) 1.79 178.33 55Csl43 56Bal42 58Cel43 29 242.31+-0.75 1.0230 (+- 10.96%) 25367.0371 (+- 12.05%) 1.99 161.01 38Sr92 54Xel38 57Lal40 30 249.98 +- 0.75 1.5648 (+-32.87%) 39979.8125 (+- 33.25%) 3.12 100.00 54Xel35 56Bal31 31 255.46+-0.75 1.9209 (+- 13.45%) 50129.2227 (+- 14.35%) 3.88 98.15 56Bal42 32 258.69+-0.75 4.0997 (+- 4.29%) 108315.5156 (+- 6.59%) 8.36 128.89 54Xel38 33 266.93+-0.76 0.6566 (+- 35.38%) 17900.0254 (+- 35.73%) 1.37 66.47 g 41NM05 57Lal40 34 273.00+-0.76 0.7377 (+- 18.99%) 20570.9590 (+- 19.64%) 1.56 54.72 37Rb89 55Csl43 35 277.64 +- 0.76 11.3546 (+- 1.48%) 322148.7500 (+- 5.21%) 24.26 57.06 41NM05 93Np239 36 284.68+-0.76 2.5759 (+- 6.96%) 74996.7578 (+- 8.57%) 5.59 105.68 531131 93Np239 37 288.96+-0.76 1.0564 (+- 21.27%) 31238.9199 (+- 21.85%) 2.32 204.97 531135 38 293.47 +- 0.76 4.2412 (+- 3.82%) 127471.2891 (+- 6.29%) 9.38 99.18 58Cel43 39 304.39+-0.76 3.4176 (+- 3.24%) 106777.8906 (+- 5.96%) 7.71 22.02 56Bal40 40 307.02 +- 0.77 8.3886 (+- 1.66%) 264512.3750 (+- 5.27%) 18.99 5.33 36Kr79 55Csl43 41 312.24+-0.77 0.8876 (+- 7.95%) 28502.5371 (+- 9.40%) 2.02 100.00 91Pa233 42 316.72+-0.77 1.4662 (+- 5.27%) 47812.9375 (+- 7.27%) 3.37 88.44 77Irl92 93Np239 43 328.95 +- 0.77 5.2513 (+- 2.56%) 178491.6719 (+- 5.62%) 12.40 140.84 57Lal40 44 334.40 +- 0.77 1.2512 (+- 11.56%) 43307.5977 (+- 12.60%) 3.00 92.66 52Tel31M 93Np239 45 350.85 +- 0.78 0.4658 (+- 19.56%) 17011.0488 (+- 20.19%) 1.19 56.10 g 58Cel43 46 357.99+-0.78 4.0348 (+- 2.59%) 150722.2344 (+- 5.63%) 10.51 0.00 U 47 360.66 +- 0.78 0.8892 (+- 7.09%) 33497.0625 (+- 8.68%) 2.34 0.00 U 48 364.53 +- 0.78 25.6456 (+- 0.50%) 977884.7500 (+- 5.03%) 68.35 96.57 52Tel31M 531131 55Csl38 56Bal42 49 397.24 +- 0.79 1.2790 (+- 6.39%) 53829.6523 (+- 8.12%) 3.69 116.06 36Kr79 54Xel38 50 402.64 +- 0.79 0.9668 (+- 7.13%) 41333.2500 (+- 8.71%) 2.82 110.97 36Kr87 531135 51 405.53 +- 0.79 0.8045 (+- 10.19%) 34680.5625 (+- 11.35%) 2.36 154.52 531134 52 408.35 +- 0.79 0.7959 (+- 10.66%) 34588.7617 (+- 11.77%) 2.35 100.50 55Csl38 53 417.61 +-0.79 0.8742 (+- 10.23%) 39002.2344 (+- 11.39%) 2.62 186.95 531135 54 423.74+-0.79 0.5470 (+- 15.23%) 24825.1953 (+- 16.03%) 1.65 100.18 531133 56Bal40 55 432.41 +-0.80 1.2696 (+- 7.84%) 59006.3672 (+- 9.30%) 3.88 :113.2 2 52Tel31M 531134 57Lal40 56 434.50 +- 0.80 2.2179 (+- 4.57%) 103666.6562 (+- 6.77%) 6.80 98.88 D 531135 54Xel38 57 455.31+-0.80 2.5356 (+- 3.50%) 125259.4141 (+- 6.11%) 7.97 0.00 U 58 462.67 +- 0.80 3.4242 (+- 2.60%) 172411.4688 (+- 5.64%) 10.86 134.39 52Tel31M 55Csl38 59 467.45 +- 0.80 0.3012 (+- 20.41%) 15350.6992 (+- 21.01%) 0.96 153.68 G 51SM30 55Csl43 77Irl92 60 487.02+-0.81 8.4009 (+- 1.20%) 449644.5938 (+- 5.14%) 27.34 127.12 56Bal31 57Lal40 61 497.15+-0.81 3.1295 (+- 2.88%) 171673.5156 (+- 5.77%) 10.27 106.03 56Bal31 62 510.96+-1.40 99.4404 (+- 0.22%) 5636992.0000 (+- 5.00%) 332.59 100.00 A 36Kr79 531133 56Bal29 63 522.96 +- 0.82 1.2213 (+- 12.82%) 71183.7656 (+- 13.76%) 4.16 106.56 531132 64 526.56 +- 0.82 2.5597 (+- 6.51%) 150431.3594 (+- 8.21%) 8.77 100.00 51SM28 54Xel35M 55Csl43 65 530.01 +-0.82 31.0019 (+- 0.72%) 1836278.2500 (+- 5.05%) 106.76 115.81 531133 66 537.34+-0.82 2.0661 (+- 6.95%) 124408.5391 (+- 8.56%) 7.19 107.47 56Bal40 67 541.07+-0.82 0.7971 (+- 16.95%) 48400.8594 (+- 17.67%) 2.79 113.92 531134 68 546.76 +- 0.82 2.4275 (+- 5.87%) 149254.1562 (+- 7.71%) 8.57 156.35 531132 531135 55Csl38 69 555.66+-0.83 4.2540 (+- 3.59%) 266672.5312 (+- 6.15%) 15.22 100.00 39Y91M 70 586.24 +- 0.83 0.7372 (+- 6.01%) 49286.1953 (+- 7.82%) 2.76 5.95 52Tel31M 71 590.49 +- 0.83 3.1117(+- 1.44%) 209834.7969 (+- 5.20%) 11.69 0.33 D 72 595.47 +- 0.84 1.0741 (+- 5.35%) 73159.7422 (+- 7.33%) 4.05 109.64 531134 73 602.53 +- 0.84 1.6016 (+- 3.65%) 110645.5234 (+- 6.19%) 6.07 99.49 51SM24 74 621.63+-0.84 1.1795 (+- 9.20%) 84587.2500 (+- 10.47%) 4.53 101.72 S 531132 531134 75 627.91 +-0.84 0.4546 (+- 16.75%) 32994.6016 (+- 17.48%) 1.76 94.47 51SM28 531134 76 630.43 +- 0.84 0.9699 (+- 11.87%) 70736.5000 (+- 12.88%) 3.76 89.14 531132 77 637.04+-0.85 1.2976 (+- 7.62%) 95820.1641 (+- 9.11%) 5.05 103.41 51SM28 531131 78 641.45+-0.85 3.6010 (+- 2.71%) 268105.9375 (+- 5.69%) 14.07 139.99 57Lal42 79 653.13+-0.85 0.5402 (+- 14.30%) 41092.7383 (+- 15.15%) 2.12 180.67 38Sr91 80 658.20+-0.85 3.0226 (+- 1.40%) 232063.2500 (+- 5.19%) 11.98 100.00 37Rb89 41Nb97 307

81 667.85 +- 0.85 5.6052 (+- 1.04%) 437856.6250 (+- 5.11%) 22.54 107.15 51SM28 531132 82 677.33 +- 0.86 0.6186 (+- 10.47%>) 49140.2227 (+- 11.60%) 2.52 116.17 531134 83 685.94 +- 0.86 0.2935 (+-23.13%) 23668.7090 (+- 23.67%) 1.22 0.00 3 84 697.00 +- 0.86 0.7351 (+- 8.56%) 60405.5117 (+- 9.92%) 3.09 1 00.00 59Prl44 85 707.33 +- 0.86 0.4767 (+- 12.97%) 39858.3281 (+- 13.90%) 2.02 141.85 531133 531134

86 710.28+-0.86 0.6753 (+- 9.43%) 56745.4180 (+- 10.67%) 2.85 0.00 87 721.92+-0.87 0.5084 (+- 13.97%) 43541.9375 (+- 14.84%) 2.17 110.54 51SM24 531131 58Cel43 88 724.22 +- 0.87 4.1251 (+- 1.47%) 354624.2812 (+- 5.21%) 17.67 99.01 40Zr95 491nll4M 89 739.21+-0.87 0.5492 (+- 13.40%) 48361.8789 (+- 14.30%) 2.39 68.49 42Mo99 531134 90 743.41+-0.87 2.2651 (+- 3.64%) 200783.7031 (+- 6.18%) 9.88 100.00 40Zr97 51SM28 52Tel31M 63Eul58 91 749.85 +- 0.87 1.8111 (+- 4.24%) 162166.4375 (+- 6.56%) 7.93 95.60 38Sr91 92 752.18+-0.87 0.6312 (+- 13.26%) 56723.6523 (+- 14.17%) 2.77 112.24 D 57Lal40 93 756.87+-0.88 7.5994 (+- 1.29%) 687899.0625 (+- 5.16%) 33.42 123.19 D 40Zr95 94 765.91+-0.88 7.1479 (+- 1.33%) 656035.8750 (+- 5.17%) 31.62 100.00 41Nb95 531134 95 772.64+-0.88 3.9426 (+- 2.18%) 365542.9062 (+- 5.46%) 17.52 113.60 52Tel31M 531132 96 793.23+-0.88 0.5640 (+- 10.27%) 53907.3945 (+- 11.43%) 2.56 113.28 51SM30 52Tel31M 97 812.23+-0.89 0.3800 (+- 9.27%) 37328.4805 (+- 10.53%) 1.75 69.85 531132 98 815.83+-0.89 3.5763 (+- 0.71%) 353059.0000 (+- 5.05%) 16.53 82.94 531134 57Lal40 99 822.94+-0.89 0.1911 (+-29.69%) 19054.6973 (+- 30.11%) 0.89 100.00 G 50Snl25 52Tel31M 100 831.63+-0.89 2.1877 (+- 2.85%) 220766.0312 (+- 5.75%) 10.22 2.12 36Kr79 101 836.75 +- 0.90 1.1743 (+- 4.93%) 119331.6875 (+- 7.02%) 5.50 115.80 531135 102 839.55 +- 0.90 0.7809 (+- 6.03%) 79653.7969 (+- 7.83%) 3.66 61.71 51Sbl30 56Bal42 103 843.57+-0.90 0.8273 (+- 5.49%) 84851.3047 (+- 7.43%) 3.89 10.71 39Y92 104 846.99 +- 0.90 10.1527 (+- 0.80%) 1046097.4375 (+- 5.06%) 47.79 113.06 25Mn56 531134 105 856.87 +- 0.90 0.6308 (+- 9.34%) 65850.0938 (+- 10.60%) 2.97 124.44 S 52Tel31M 531133 531134 106 867.95 +- 0.90 0.7479 (+- 4.21%) 79226.2344 (+- 6.54%) 3.54 85.98 57Lal40 107 871.59+-0.90 0.2732 (+- 19.46%) 29079.7988 (+-20.09%) 1.30 131.09 g 55Csl38 108 875.69 +- 0.90 1.9924 (+- 2.92%) 213165.0312 (+- 5.79%) 9.48 51.72 531133 109 884.21+-0.91 5.0420 (+- 1.44%) 545345.0625 (+- 5.20%) 24.13 86.00 531134 308

110 888.49+-0.91 0.4912 (+- 9.97%) 53415.9375 (+- 11.15%) 2.36 100.00 21Sc46 111 895.02+-0.91 0.7574 (+- 6.87%) 83045.1172 (+- 8.49%) 3.65 119.69 56Bal42 57Lal42 112 912.69+-0.91 0.4682 (+- 8.28%) 52466.0898 (+- 9.67%) 2.29 0.00 U 113 919.06+-0.92 1.6455 (+- 0.90%) 185815.2344 (+- 5.08%) 8.07 17.73 57Lal40 114 925.43+-0.92 1.2434 (+- 2.31%) 141487.4844 (+- 5.51%) 6.12 82.64 S 38Sr91 57Lal40 115 934.62+-0.92 0.8931 (+- 2.87%) 102736.8438 (+- 5.77%) 4.43 105.86 39Y92 51SM30 116 943.47+-0.92 0.3727 (+- 12.30%) 43324.5508 (+- 13.27%) 1.86 96.22 63Eul58 117 948.22+-0.92 1.0473 (+- 4.86%) 122406.6250 (+- 6.97%) 5.24 89.49 37Rb89 531134 56Ba A") 118 954.33+-0.92 1.2396 (+- 2.34%) 145898.4531 (+- 5.52%) 6.23 73.88 38Sr92 531132 119 972.68+-0.93 0.2925 (+- 25.10%) 35154.9727 (+- 25.59%) 1.48 123.38 531135 120 974.82+-0.93 0.7128 (+- 12.69%) 85857.4297 (+- 13.64%) 3.61 40.15 531134 121 1001.55+-0.94 0.3499 (+- 10.01%) 43401.7695 (+- 11.19%) 1.78 53.64 56Bal42 122 1009.96+-0.94 1.7651 (+- 3.21%) 220879.1562 (+- 5.94%) 8.99 100.64 55Csl38 123 1012.28+-0.94 0.3882 (+- 10.09%) 48693.2344 (+- 11.26%) 1.98 63.91 57Lal42 124 1024.68+-0.94 2.0322 (+- 1.94%) 258264.0781 (+- 5.36%) 10.37 85.41 D 38Sr91 125 1032.29+-0.94 2.5054 (+- 1.67%) 320913.1562 (+- 5.27%) 12.81 108.35 37Rb89 126 1039.26+-0.94 1.2701 (+- 3.10%) 163849.6094 (+- 5.88%) 6.50 108.50 531134 531135 127 1061.03+-0.95 0.2243 (+-22.17%) 29574.9023 (+- 22.73%) 1.17 0.00 Ug 128 1072.91+-0.95 1.0367 (+- 5.00%) 138291.5625 (+- 7.07%) 5.41 77.86 531134 129 1079.15+-0.95 0.3284 (+- 15.15%) 44065.5430 (+- 15.95%) 1.71 62.63 56Bal42 130 1086.61 +-0.96 0.1769 (+-28.77%) 23913.9121 (+- 29.20%) 0.92 256.73 S G 131 1124.44+-0.97 0.6789 (+- 6.50%) 95039.0234 (+- 8.20%) 3.55 96.49 52Tel31M 531135 132 1131.94+-0.97 3.6560 (+- 1.42%) 515302.8750 (+- 5.20%) 19.13 90.59 531135 133 1136.63+-0.97 0.6615 (+- 6.64%) 93628.2656 (+- 8.31%) 3.47 85.48 531132 531134 134 1173.68+-0.98 0.7375 (+- 6.75%) 107807.3281 (+- 8.40%) 3.98 102.29 27Co60 135 1197.50+-0.98 0.2677 (+- 17.84%) 39917.0312 (+- 18.52%) 1.46 34.41 D 136 1204.52+-0.99 0.5638 (+- 8.61%) 84557.9609 (+- 9.96%) 3.07 100.00 39Y91 56Bal42 137 1236.59+-0.99 0.2807 (+- 17.40%) 43190.5898 (+- 18.11%) 1.55 85.46 531133 138 1248.71 +- 1.00 1.4897 (+- 3.62%) 231362.8594 (+- 6.17%) 8.20 109.73 37Rb89 139 1260.93+-1.00 4.5427 (+- 1.35%) 712130.3125 (+- 5.18%) 25.11 85.71 S 531135 140 1268.48+- 1.00 2.4991 (+- 2.16%) 393993.3438 (+- 5.45%) 13.85 201.90 S 141 1283.63+- 1.00 0.2450 (+- 13.62%) 39064.9375 (+- 14.50%) 1.37 0.00 Ug 309

142 1298.67+-1.01 0.5888 (+- 7.57%) 94911.0078 (+- 9.08%) 3.29 67.42 S 531133 143 1313.43+-1.01 0.3676 (+- 9.79%) 59887.7148 (+- 10.99%) 2.05 0.00 U 144 1333.27+-1.02 0.6873 (+- 7.43%) 113527.5469 (+- 8.96%) 3.82 97.26 27Co60 145 1357.25+-1.02 3.5898 (+- 1.74%) 602700.3125 (+- 5.29%) 19.59 0.00 U 146 1369.01 +- 1.03 2.6042 (+- 1.73%) 440664.2812 (+- 5.29%) 14.24 106.93 D HNa24 531135 147 1376.49+-1.03 0.3024 (+- 8.73%) 51417.2812 (+- 10.06%) 1.67 33.51 D 148 1384.24+- 1.03 3.8518 (+- 1.27%) 658281.1250 (+- 5.16%) 21.44 94.61 38Sr92 149 1398.44+-1.03 0.2472 (+- 19.21%) 42636.1289 (+- 19.85%) 1.39 77.95 g 531132 150 1427.93 +- 1.04 0.8272 (+- 3.91%) 145309.8438 (+- 6.35%) 4.61 0.00 U 151 1435.86+- 1.04 3.9536 (+- 1.08%) 697884.4375 (+- 5.11%) 21.98 81.56 55Csl38 152 1444.33+-1.04 0.2985 (+- 10.64%) 52954.5703 (+- 11.75%) 1.66 13.66 55Csl38 153 1457.59+-1.05 1.4735 (+- 1.22%) 263512.7812 (+- 5.15%) 8.15 68.20 531135 154 1590.38+-1.08 0.2981 (+- 10.74%) 57298.4609 (+- 11.85%) 2.02 0.00 U 155 1596.18+- 1.08 14.7829 (+- 1.42%) 2849857.5000 (+- 5.20%) 102.01 41.46 57Lal40 156 1613.75+-1.08 0.3077 (+- 11.96%) 59837.0977 (+- 12.96%) 2.24 51.81 531134 157 1678.06+-1.10 1.4387 (+- 2.45%) 288290.9062 (+- 5.52%) 14.03 70.91 S 531135 158 1694.08+-1.10 0.1306 (+- 20.66%) 26355.1074 (+- 21.24%) 1.36 100.00 g 57Lal41 159 1706.58+-1.11 0.6983 (+- 4.28%) 141701.3281 (+- 6.53%) 7.61 72.96 S 531135 160 1731.98+-1.11 0.4429 (+- 4.07%) 90844.0000 (+- 6.38%) 4.91 115.23 D 161 1741.17+-1.12 0.1454 (+- 13.33%) 29943.7188 (+- 14.21%) 1.62 71.48 S 531134 162 1768.73+-1.12 0.8553 (+- 22.01%) 178120.5469 (+- 22.54%) 9.60 41.55 54Xel38 163 1773.31+-1.12 1.9822 (+- 11.54%) 413548.0312 (+- 12.53%) 22.56 0.00 U 164 1778.95+-1.12 88.0848 (+- 0.05%) 18418828.0000 (+- 4.89%) 1021.14 100.00 13A128 165 1791.30+-1.13 1.1695 (+- 5.63%) 245740.7031 (+- 7.45%) 14.15 64.89 531135 166 1806.68+-1.13 0.3387 (+- 3.99%) 71596.9688 (+- 6.30%) 4.40 55.81 531134 167 1810.70+-1.13 0.6481 (+- 2.17%) 137198.2812 (+- 5.34%) 8.50 98.27 25Mn56 168 1836.25+-1.14 0.2103 (+- 10.64%) 44942.7852 (+- 11.72%) 2.90 100.00 S 37Rb88 169 1851.29+-1.14 0.1274 (+- 16.05%) 27377.3359 (+- 16.78%) 1.80 22.99 54Xel38 170 1901.61+-1.15 0.3200 (+- 7.00%) 70008.5156 (+- 8.57%) 4.79 80.98 57Lal42 171 2005.09+-1.18 0.2423 (+- 5.54%) 54782.1094 (+- 7.46%) 4.10 56.37 54Xel38 57Lal42 172 2009.78+-1.18 0.1074 (+- 10.82%) 24319.9688 (+- 11.92%) 1.82 93.05 S 173 2015.81+-1.18 0.4201 (+- 3.38%) 95271.5781 (+- 6.04%) 7.16 57.22 54Xel38 174 2031.60+-1.19 0.0838 (+- 12.93%) 19088.3926 (+- 13.86%) 1.45 103.02 S 310

175 2046.42+- .19 0.1069 (+ 9.70%) 24503.3984 (+- 10.92%) 1.87 73.34 531135 176 2055.16+-1 .19 0.0978 (+ 10.40%) 22460.1289 (+- 11.54%) 1.72 96.96 S 57Lal42 177 2078.76+- .20 0.0644 (+ 23.66%) 14897.9883 (+- 24.18%) 1.17 42.84 g 54Xel38 178 2113.19+- .21 0.3253 (+ 5.44%) 76089.2188 (+- 7.39%) 6.02 93.16 25Mn56 179 2128.17+- .21 0.0950 (+ 16.12%) 22318.2891 (+- 16.88%) 1.79 85.05 S 180 2175.78+- .22 0.0901 (+ 16.24%) 21469.9668 (+- 16.99%) 1.75 0.00 U 181 2187.30+- .22 0.2201 (+ 7.18%) 52639.4297 (+- 8.75%) 4.32 56.14 D 57Lal42 182 2196.06+- .23 0.4798 (+ 3.91%) 115071.4453 (+- 6.35%) 9.49 91.92 S 36Kr88 37Rb89 183 2217.95+- .23 0.6307 (+ 3.15%) 152244.5156 (+- 5.91%) 12.55 74.48 55Csl38 184 2242.99+- .24 0.2933 (+ 0.80%) 71305.9922 (+- 5.06%) 5.85 174.00 s 185 2253.04+- .24 0.0913 (+ 2.60%) 22274.1523 (+- 5.64%) 1.83 45.56 54Xel38 186 2348.26+- 1.26 0.1121 (+ 12.17%) 28072.5957 (+- 13.16%) 2.40 37.50 57Lal40 187 2392.17+- 1.27 0.2256 (+ 6.55%) 57189.8867 (+- 8.24%) 5.13 101.02 36Kr88 188 2398.09+- .27 0.5308 (+ 3.35%) 134783.5156 (+- 6.02%) 12.17 78.13 57Lal42 189 2408.97+- 1.28 0.1238 (+ 10.44%) 31533.2461 (+- 11.57%) 2.88 62.89 531135 190 2415.42+- .28 0.0435 (+ 27.10%) 11107.5674 (+- 27.56%) 1.02 0.00 Ug 191 2521.34+- 1.30 0.4465 (+ 3.76%) 117120.2031 (+- 6.26%) 10.86 40.78 25Mn56 57Lal40 192 2542.77+- .31 0.3754 (+ 4.13%) 99013.1250 (+- 6.48%) 9.79 79.97 57Lal42 193 2554.71 +- .31 0.1085 (+ 10.48%) 28712.7715 (+- 11.62%) 2.89 26.32 36Kr87 194 2564.14+- .31 0.0751 (+ 14.53%) 19905.9102 (+- 15.37%) 2.03 0.00 U 195 2569.86+- .31 0.2412 (+ 5.55%) 64038.0391 (+- 7.47%) 6.60 92.22 37Rb89 196 2632.18+-1 .33 0.0719 (+ 8.86%) 19380.2871 (+- 10.17%) 2.25 0.00 U 197 2639.07+-1 .33 0.3145 (+ 1.67%) 84965.9375 (+- 5.27%) 9.97 66.99 55Csl38 198 2666.19+- .34 0.0810 (+ 11.96%) 22038.4863 (+- 12.96%) 2.69 64.67 57Lal42 199 2706.26+- .35 0.0559 (+ 15.94%) 15358.9727 (+- 16.71%) 1.91 79.06 37Rb89 200 2753.71 +- 1.36 1.7577 (+ 1.43%) 488128.0312 (+- 5.20%) 61.72 92.42 HNa24 201 2803.06+- .37 0.0241 (+ 31.98%) 6760.6216 (+- 32.37%) 0.87 46.88 s G 57Lal42 202 2970.11+- 1.41 0.0972 (+ 9.01%) 28351.6602 (+- 10.30%) 3.97 87.41 57Lal42 203 2997.56+- .42 0.0353 (+ 11.94%) 10344.2441 (+- 12.94%) 1.49 32.35 s 37Rb89 204 3012.14+- .42 0.0335 (+ 7.47%) 9873.4678 (+- 8.99%) 1.46 0.00 Ug

Energy: keV, peak sigma as the uncertainty Cps: counts per second in the peak, with peak area uncertainty 311

Gps: gammas per second from source, with propagated uncertainty Significance: peak area relative to twice the decision limit 2*L_C(95%) Explanation: % of peak area explained Flags: B=background, A=annihilation, S=single escape, D=double escape, X=x-ray, x=x-ray escape, Z=backscatter, C=coinc sum, R=random sum, K/L/M=user given, 0=out of energy range, U=unknown, I=insignificant, N=not present (below det. limit), G=dark gray (very close to det. limit), g=pale gray (close to det. limit)

* NUCLIDE IDENTIFICATION *

Nuclide: #-ln: Ccorr: Activity: Uncert: Prim.Act: Refer.Act: Concentr: MDC: Own T 1/2: Eff. T 1/2:

1 HNa24 2 Y 4.514e+05 3.78 •4.884e+0 5 4.619e+05 1.170e+04 2.112e+02 14.96 h 14.96 h 2 13A128 1 N 1.842e+07 4.89 11.842e+0 7 1.873e+07 3.457e+05 3.420e+02 2.241 m 20.92 h(12Mg28) 3 27Co57 2 Y 2.783e+04 14.55 4.452e+04 2.797e+04 2.328e+06 1.375e+06 271.7 d 271.7 d 4 25Mn56 4 Y 4.957e+05 4.17 1.055e+06 5.653e+05 2.982e+06 1.337e+05 2.579 h 2.579 h 5 27Co60 2 Y 1.104e+05 6.13 1.080e+05 1.104e+05 9.207e+02 2.269e+02 5.271 a 5.271 a 7 36Kr87 2 Y 8.215e+04 8.60 18.267e+0 4 1.066e+05 4.263e+08 1.525e+08 1.272 h 1.272 h 8 36Kr88 3 Y 1.670e+05 7.94 :1.653e+0 5 1.882e+05 5.486e+05 1.079e+05 2.84 h 2.84 h 9 38Sr85 1 Y 4.748e+05 5.22 A4.748e+0 5 4.851e+05 4.021e+07 2.006e+06 64.84 d 64.84 d 10 37Rb89 9 N 5.519e+05 3.05 5.094e+05 1.619e+06 5.531e+32 4.002e+31 15.15m 15.15 m 11 38Sr91 6 Y 6.541e+05 4.03 7.666e+05 6.779e+05 3.179e+04 3.625e+03 9.63 h 9.63 h 12 38Sr92 3 Y 6.920e+05 5.08 7.314e+05 7.842e+05 3.028e+06 1.500e+05 2.71 h 2.71 h 13 39Y91 1 N 1.941e+07 17.65 3.252e+07 1.942e+07 1.638e+05 8.972e+04 58.51 d 58.51 d 14 39Y91M 1 N 2.807e+05 6.15 2.807e-K)5 2.909e+05 1.364e+04 8.991e+02 49.71 rr i 9.63 h (38Sr91) 15 39Y92 2 Y 7.271e+05 5.89 7.391e+05 8.006e+05 7.330e+05 1.690e+05 3.54 h 3.54 h 16 39Y93 1 N 7.549e+04 61.40 1.499e+05 2.051e+06 6.771e+07 2.141e+08 10.18 h 10.18 h 17 40Zr95 2 Y 7.235e+05 5.83 •4.281e+0 5 7.237e+05 6.096e+03 3.223e+02 64.03 d 64.03 d 18 40Zr97 1 Y 1.552e+05 13.62 2.158e+05 1.584e+05 3.565e+03 5.036e+02 16.74 h 16.74 h 19 41Nb95 1 Y 6.261 e+05 5.42 6.560e+05 6.264e+05 5.324e+03 1.771e+02 34.99 d 34.99 d 20 41Nb97 1 Y 1.756e+05 7.06 2.362e+05 1.792e+05 4.034e+03 4.546e+02 1.202 h 16.74 h(40Zr97) 21 42Mo99 3 Y 2.320e+05 20.04 3.987e+05 2.332e+05 2.501e+03 1.806e+03 2.747 d 2.747 d 312

22 43Tc99M 1 Y 2.685e+05 5.46 2.803e+05 2.699e+05 2.895e+03 1.326e+02 6.015 h 2.747 d (42Mo99) 23 45RM01M ]1 N 3.099e+05i 5.24 3.099e+05 4.280e+05 3.289e+07 2.418e+06 4.34 d 4.34 d 24 44Rul03 1 Y 1.783e+05 5.78 1.783e+05 1.848e+05 1.527e+07 2.097e+06 39.26 d 39.26 d 25 49Lnll4M[ 2 N 9.859e+05 12.24 9.870e+05 9.862e+05 8.334e+03 6.488e+02 49.51 d 49.51 d 26 51Sbl25 4 Y 7.683e+04 45.69 6.685e+04 7.694e+04 6.409e+06 1.667e+07 2.759 a 2.759 a 27 51SM26 2 Y 8.533e+04 11.43 4.938e+04 9.549e+04 7.738e+06 4.514e+06 12.46 d 12.46 d 28 51Sbl27 1 Y 6.228e+04 27.21 6.228e+04 8.961e+04 6.816e+06 7.686e+06 3.85 d 3.85 d 29 51Sbl28 5 N 4.903e+04 31.05 2.008e+05 5.094e+04 2.690e+03 1.119e+03 9.01 h 9.01 h 30 51Sbl30 5 N 4.049e+04 10.22 5.613e+04 6.548e+04 5.142e+13 2.306e+13 39.5 m 39.5 m 31 52Tel31 2 N 1.537e+04 35.43 4.547e+04 4.714e+04 2.940e+06 4.124e+06 25 m 1.25d(52Tel31M) 32 52Tel31M 17 Y 1.459e+05 19.46 9.398e+05 1.476e+05 2.142e+03 7.912e+02! 1.25 dI 1.25 d 33 531131 4 Y 1.136e+06 4.31 1.197e+06 1.138e+06 1.034e+04 1.598e+02 8.021 d 8.021 d 34 531132 12 Y 4.74 le+05 3.25 4.437e+05 4.763e+05 4.927e+03 2.053e+02 2.295 h 3.204 d(52Tel 32) 35 531133 9 Y 2.444e+06 3.68 2.111e+06 2.485e+06 4.609e+04 3.738e+02 20.8 h 20.8 h 36 531134 24 N 7.226e+05 2.55 1.093e+06 1.046e+06 1.575e+12 5.021e+10 52.5 m 52.5 m 37 531135 21 Y 2.066e+06 2.08 2.420e+06 2.177e+06 2.282e+05 1.097e+04 6.57 h 6.57 h 38 54Xel35 1 Y 3.228e+04 45.80 4.442e+04 3.352e+04 1.724e+03 7.622e+02 9.14h 9.14h 39 54Xel35M ]I Y 1.567e+05! 11.25 1.869e+05 1.65 le+05 1.731 e+04 2.360e+03 15.29 m 6.57 h (531135) 40 54Xel38 11 N 4.432e+05 3.46 3.439e+05 1.381e+06 7.050e+34 6.554e+33 14.08 m 14.08 m 41 55Csl38 13 Y 7.460e+05 2.52 9.147e+05 1.304e+06 1.025e+17 5.746e+15 33.41 m 33.41 m 42 55Csl43 8 N 6.539e+04 64.06 2.738e+05 9.11 le+07 -1 -1 1.791;s 1.791 s 43 56Bal29 3 N 1.65 le+05 24.77 6.061e+05 1.921e+05 2.781e+06 2.489e+06 2.23 h 2.23 h 44 56Bal40 4 Y 5.482e+05 5.86 5.101e+05 5.488e+05 4.829e+03 6.267e+02 12.75 d 12.75 d 45 56Bal41 9 N 2.755e+05 4.17 2.527e+05 0.000e+00 1.695e+33 2.155e+32 18.27 m 18.27 m 46 56Bal42 9 N 2.400e+05 8.54 2.445e+05 9.606e+05 -1 -1 10.6 m 10.6 m 47 57Lal40 13 Y 1.239e+06 2.25 2.987e+06 1.240e+06 1.091 e+04 2.595e+02 1.678 d 12.75 d(56Bal40) 48 57Lal41 1 N 3.562e+07 21.24 3.562e+07 3.886e+07 2.256e+07 1.679e+07 3.92 h 3.92 h 49 57 La 142 14 N 7.918e+05 2.77 5.656e+05 9.862e+05 4.711e+08 2.399e+07 1.518 h 1.518 h 50 58Cel41 1 Y 8.263e+05 5.16 8.408e+05 8.266e+05 7.037e+03 1.945e+02 32.51 d 32.51 d 51 58Cel43 4 Y 2.954e+05 6.17 2.978e+05 2.985e+05 4.116e+03 4.430e+02 1.377 d 1.377 d 52 59Prl44 1 Y 4.501e+06 9.92 4.501e+06 4.501e+06 3.760e+04 1.222e+04 17.28 m 284.9 d(58Cel44) 53 63Eul58 3 N 1.390e+05 13.76 1.444e+05 2.113e+05 4.895e+12 2.747e+12 45.9 m 45.9 m 54 77Irl92 2 N 2.781e+04 13.57 5.781e+04 2.781e+04 2.340e+02 1.447e+02 73.83 d 73.83 d 313

55 87Fr221 1 N 3.233e+05 9.77 3.233e+05 3.233e+05 2.694e+03 8.931e+02 4.9 m 2.144e+06 a (93Np237) 56 90Th228 4 N 1.272e+08 3.98 1.637e+08 1.272e+08 1.060e+06 7.288e+03 1.912 a 1.405e+10 a (90Th232) 57 91Pa233 1 Y 7.384e+04 9.40 7.384e+04 7.384e+04 6.153e+02 3.045e+02 26.97 d 2.144e+06 a (93Np237) 58 93Np239 16 Y 1.205e+06 2.19 1.115e+06 1.213e+06 1.356e+04 4.236e+02 2.357 d 2.357 d

# of lines: number of found lines in the spectrum Ccorr: nuclide lines coincidence summing corrected (Y/N) Activity: Bq, raw uncorrected activity Uncert: %, relative activity uncertainty Prim.Act: Bq, raw uncorrected primary line activity Refer.Act: Bq, activity corrected to reference date Concentration: Bq/g, counting and decay corrected act.conc. *=background nuclide, concentration not applicable negative value = infinity MDC: Bq/g, counting and decay corrected act.conc. corresponding to L_D(95%) negative value = infinity Own Tl/2: radionuclide's own half-life Eff. Tl/2: longest half-life in the parent chain assuming equilibrium, effective parent in parenthesis

* EXPLANATION TOTALS *

204 peaks found in spectrum. 182 peaks associated with nuclides. 0 peaks judged insignificant. 0 peaks out of energy range. 22 peaks not associated with nuclides. 89 percent of peaks were associated with nuclides. 54 nuclides identified. 2 natural nuclides identified. 52 anthropogenic nuclides identified.

315

Appendix H User Guide

H.l Installation

COLDD is installed by extracting COLDDvl.zip into the directory of choice that has read/write privileges. COLDD will write and edit data files as required. Ensure that Microsoft Excel 2007 (or newer) is installed or COLDD will be unable to open the Excel xlsx files. If necessary, this requirement could be removed in future versions.

H.2 Preparing Files for a Custom Case

To analyse a "case" COLDD requires reactor power and IX data (Table H-1), nuclide data (Table H-2), and reactor constants data (Table H-3). Each of the data files are stored in Excel xlsx files. For the reactor power/IX data, and nuclide data, the time input must be sequential with no duplicates otherwise an error message will be displayed. The time data does not need to be evenly spaced.

Reactor power and DC data should be organised in an Excel file as shown in Table H-1, where "Time" is in seconds, "Power" is in percent of RFP, and "Purification" is given in the Slunitsofkg.s"1. Table H-1: Example reactor data excel data file

A B C 1 Data Title 2 Time [s] RFP [%] IX [kg/s] 3 0 89.9573 9.930828 4 3542.26 89.95038 9.668775 5 7260 89.95225 9.874605 6 316

Nuclide data should be organised in an Excel spreadsheet as shown in Table H-2, where "Time" is in seconds, nuclides are identified by their periodic table identity followed by their nuclide , and nuclide concentrations are given in the SI units of Bq.kg1. Table H-2: Example nuclide excel data file A B C D E F 1 Visual Detect Case 1, data in units of Bq.kg"' 2 Time [s] 1-131 1-132 1-133 1-134 ... 3 0 183520 139860 185370 223110 4 3600 183520 139860 185370 223110 5

Reactor constants need to be stored in an Excel sheet as shown in Table H-3, where only column B should be modified to match the user requirements. Table H-3: Example constants excel data file. Column "B" units are defined in column "C" in html script to display superscript () measurement units correctly

A B C 1 Coolant Mass 244000 kg 2 Leakage Rate 0 kg.s-1 131 I 3 6.00E+11 atom.s-1 Release/Defect 4 Default Power Estimate 40 kW.m-K/sup> 5 Default Element Burnup 62 M Wh.kg-1 6 Default Number of Defects 1 Defect(s) Average Thermal Neutron X1014 n.cm- 7 1 Flux 2.s-1 8 IX Iodine Efficiency 100 % 9 IX Gas Efficiency 0 % Transit Time (0 if already 10 0 mins included) 11 Initial Tramp Burnup 116 M Wh.kg-1 Fission rate per element fission.s-l.m.kW- 12 1.49E+13 linear power K/supx/HTML>

The three Excel spreadsheets shown in Table H-1, Table H-2, and Table H-3 are the three files needed to define a "case" in COLDD. 317

H.3 Operating COLDD

COLDD is started by executing COLDDvl.exe, which will create a blank version of the GUI shown in Figure H-7. The user then clicks "Select Case" which will prompt the user to select:

• Pre-loaded Cases -> This is a collection of example cases pre-loaded into COLDD. • New Case -> Allows the user to specify the reactor power/IX, nuclide, and reactor constants files (as defined in the preceding section). • Real-Time Spectra -> This is a place holder for connection to a real-time system.

After determining the case of choice, COLDD will load the data, calculate release rates, and then plot the reactor data and nuclide data in the top two plots (see Figure H-7). The "Nuclide Plotting Options" at the top (as shown in Figure H-l) allows the user to modify the nuclides plot accordingly. Hovering the mouse over the icons will display a tooltip describing the button function. The user can plot the "Activity" or the "Release Rate" and can choose between a linear and log scale for the vertical axis. The "Smoothed" button applies a low-pass filter to the activity data.

r- Nucfde Plotting Option* [ SwoothtdH 1 LoaSca* )

Figure H-l Nuclide plotting options (top of COLDD GUI)

As shown in Figure H-2, the nuclides list on the top left allows the user to select which nuclides to plot (hold Ctrl to select multiple nuclides). If "Click to Ignore Nuclides" is selected, then the user can select specific nuclides to exclude from subsequent analysis; the list box on the left middle will display ignored nuclides (see Figure H-2). 318

Data avafcle, cick to plot (ctr-cSck to select mutipie nucides)

Xe-133m Xe-135 Cick to Ignore Nucides j Nucides Ignored Kr-88 Kr-67 Xe-135m —' Sb-125 Xe-138

Figure H-2 Nuclides list (left) and ignored list (right)

In all figures, the magnifying glasses in the top left corner can be used to zoom in and out (including the plots on the main GUI in Figure H-7), the hand allows panning, and the yellow box with a cross allows the user to select specific points, see Figure H-3.

Figure H-3 Zoom in, zoom out, pan, and select data point (top left of all Figures)

Model Constants data in the table in the bottom left of the COLDD GUI (Figure H-4) can be modified at this time; if required COLDD will recalculate release rates or nuclide data.

Model Constants

Property Value Unit*

Coolant Mass 244000 kg *• Leakage Rate 0 kg.s"1 ~ 131 1 6.0000e+11 atom.** — I Release/Defect Defautt Power Estimate 40 kW.m'1 Default Element Burnup 62 MWh.kg*1 Dftfant Numhfir nf Dftfertit 1 rtefftrtfs^ •v « I m •

Figure H-4 Model Constants table (bottom left of COLDD GUI) 319

The user can now select from the functions as shown in Figure H-5. Analysis methods are chosen by selecting one of the six boxes under "Analysis Available" (Figure H-7), which will open a list box of analysis choices (Figure H-6). When an analysis is chosen, a description is provided with a request to continue or not; this feature can be disabled by choosing "Turn off analysis descriptions" (Figure H-6). Upon completion of the analysis, the results are plotted in a separate figure, and average results reported in the "Analysis Results" box in the bottom right of the COLDD GUI (Figure H-7). When "Select Different Analysis Type" is chosen (Figure H-6) the COLDD GUI returns to present the six analysis type selections (Figure H-5).

Tramp Defect Number Defect Power

Defect Size Plots Defect Burnup

Figure H-5 Six generic analysis types available

Select Different Analysis Type Turn Off Analysis Description*

Frame bLrruo Tramp mass by R/yc analysis using iodines Tramp mass by R/yc analysis using noble gases Tramp mass using 1134 Tramp mass using Xe138 Tramp mass using al available techniques

Figure H-6 Analysis types available after clicking "Tramp" in Figure H-5

Help information is available by hovering over buttons with the mouse icon, or by clicking the "Help" button at the top right of the COLDD GUI. If the user decides to examine a new case (or has modified the input Excel files) then clicking "Select Cases" will restart COLDD and request the new case. 320

H.4 Validation of the Installation

To confirm that COLDD is installed correctly, the "STAR Virtual" case should be selected and each analysis type performed. The COLDD results should be compared with those presented in section 5.1 Table 5-1; any discrepancies are an indication of a corrupted installation. 321

On plots: Zoom out, Zoom in, Pan, Select Data Point

Cfck "Satoct Caaa" to baflin Nuclide plot options HELP Select case —»|snwtc«UlBnK!*UBts to analyze Data aval)*, dctnokx tor-cask *> takes mute* nucMaa) NucMa Data (Satoctodfrom tot o n Laft) Raactor Data -m 100 • Eltrrnnt Power io"t Plot of selected nuclides Xt-133 J* Choose 1-131 I 80 -KFlow nuclides to u. § K Plot of reactor power and plot 2. Z. 60 E DC flow rate 1. 40 Choose —i s 10

nuclides to Mjdkkn Ignorad K 20 ignore •E•> E X 1 UJ ' GO 70 30 40 so 60 70 80 90 Ignored Tima[day»] Tim* [days] nuclides Analyaia AvatoMa: Clickto parfoim aalactad analyala Analyaia Raaiata [ owr If^wiRpw*

Power aaaumng 1 Ml»ct(>) for gta tvaragad ecrota to perrti i TtoMul l erof*5*-AI5KW«e< Select DumgPerrtt«2*1to100erJeyt OerMmMeeroyrlJt eOM Tramp Oated MMhM l«<-0«4«ltct»tyMMy«u4taNi4t1<-tf-Oeatltct>bri MMMtmi^M analysis type r> TraiaprraM ay PAceaaVamueiigBoWeeavreraoad ever neper 4> NeN grama of tram reauired TrampmeeebyPJyc anelyM uang noble geeee averagedovarii penoda 0«S grama oft DafMSoa Ottect Trareomeuue^MMaverer^ over to pared ndcelee appro mem*/ 0 %*t~ I grama a acavty aner/ae) Tramp mau uana Xe-1M averaged ovar Via period • acavty eneiyo

Model Analysis results Constants Proptrty Value Uni displayed here (editable) V|Cr»IMM< 244000 kg LaaUgaf 0k«,-' 111, soooo^i i •«»••' Oataul Powar tiwnali •Okw*' 0a(aut EKmnt Bvnwp eZuVMikg'' Hr«r*jia MlimJW r»f naffil'M i rw*x««i

Figure H-7 Main COLDD GUI (opened as PDF by "HELP" button)

323

CURRICULUM VITAE 324

CURRICULUM VITAE Personal Information: • Name: Stephen Jason Livingstone • Year of Birth: 1981 • Country of Birth: Canada

Education: Royal Military College of Canada January 2007 - present • PhD in Nuclear Engineering, Department of Chemistry and Nuclear Engineering. University of Saskatchewan (NSERC PGS A Funding, $32,000) 2003 - 2005 • Masters of Science in Physics, Department of Physics and Engineering Physics. • Performed a small-angle microwave scattering experiment on the STOR-M fusion in the Plasma Physics Lab.

Queen's University (Chancellor's Scholarship, $26,500) 1999 - 2003 • Bachelor of Applied Science, Engineering Physics • Graduated top of Engineering Physics Class.

Work Experience: Research Scientist at Atomic Energy of Canada Ltd Sept 2006 - present • 2010 - present: Section Head of the Chalk River Advanced Fuel Technologies Element and Bundle Assembly Section (CRAFT-EBAS). Perform research in joining technologies and fuel component fabrication. Provide support to other research groups as required. • 2006 - 2010: Worked on fuel irradiations and post-irradiation examination, with particular emphasis on thoria and defected fuel.

Sub-Lieutenant (SLt) in the Royal Canadian Navy Reserves April 2001 - present • Qualified Maritime Surface (MARS) Officer, with a Bridge Watch-Keeping Ticket (BWK) for Minor War Vessels (Maritime Coastal Defense Vessel, MCDV).

Major Awards and Achievements • NSERC PGS A ($32,000 over two years) Sept 2003 - Sept 2005 • Graduated top of my MARS (Maritime Surface Officer) III course August 2003 • Chancellor's Scholarship ($26,500 over four years) Sept 1999 - April 2003 • Governor General's Award - Bronze. (Top high school graduate) Sept 1999 Selected Publications: • Contributor to: IAEA, "Role of Thorium to Supplement Fuel Cycles of Future Nuclear Energy Systems", IAEA Nuclear Energy Series No. NF-T-2.4, expected 2011. • S. Livingstone, B.J. Lewis, M.Ip, F. Iglesias, and A. Fitchett, "Progress in Developing an On-Line Fuel-Failure Monitoring Tool for CANDU Reactors", 11th International Conference on CANDU Fuel, Niagara Falls, Ontario, Canada, October 2010. • S. Livingstone, "SOTAR on Defected Fuel", COG/CNSC Seminar, Ottawa, Ontario, 1-2 June 2010. • H. Hamilton, C. Simister, S. Livingstone, "Development of Burnable Neutron Absorber (BNA) Pellets", IAEA Technical Meeting on "Advanced Fuel Pellet Materials and Fuel Rod Designs for Water Cooled Reactors", PSI, Villigen, Switzerland, 23-26 November 2009. • I. Hastings, K. Bradley, J. Hopwood, P. Boczar, S. Kuran, S. Livingstone, "We can use Thorium", Nuclear Engineering International, September Issue, 2009. • H. Hamilton, S. Livingstone, "Performance of a CANFLEX Bundle Containing Thoria and Low Enriched Uranium Fuel in an Enhanced CANDU 6 Reactor", TU2009 International Thorium Workshop, Batou, China, September 2009. • S. Livingstone, B.J. Lewis, "On-Line Defected Fuel Monitoring Using GFP Data", 10th CNS International Conference on CANDU Fuel, Ottawa, Ontario, October 2008. • S. Livingstone, M. Karam, "Atomic Energy of Canada's (AECL's) Thoria Experience: Irradiation Testing and Examination", AECL Report (public), 153- 124950-440-003, Rev. 0, March 2008. • S. Livingstone, "Experimental Study of Density Fluctuations in the STOR-M Tokamak by Small-Angle Microwave Scattering", MSc Thesis, University of Saskatchewan, December 2005. • A. Hirose, S. Livingstone, A.K. Singh, "On q dependence of thermal transport in ", , Volume 45, December 2005. • C. Xiao, D Liu, S. Livingstone, A. K. Singh, E. Zhang, A. Hirose, "Tangential and Vertical Compact Torus Injection Experiments on the STOR-M Tokamak", Plasma Science and Technology, Volume 7, April 2005. • A. Hirose, S. Livingstone, H. Li, X. Lu, "On diffraction of electromagnetic waves by an aperture in a conducting screen" Canadian Journal of Physics, Volume 82, Number 7, Pages 495-500,2004.