You are on page 1of 494

Intermediate Attack in Crevice Corrosion by Cathodic Focusing

A Dissertation Presented to the Faculty of the School of Engineering and Applied Science University of Virginia

In Partial Fulfillment of the Requirements for the Degree

Doctor of Philosophy(Materials Science and Engineering) by Kevin C. Stewart

August 1999

ii APPROVAL SHEET This Dissertation is submitted in partial fulfilment of the requirements for the degree of Doctor of Philosophy (Materials Science and Engineering)

______________________ Kevin C. Stewart

This dissertation has been read and approved by the examining committee:

______________________ Robert G. Kelly (Advisor)

______________________ William C. Johnson (Committee Chairman)

______________________ Andrew C. Hillier

______________________ Robert J. Ribando

______________________ Narasi Sridhar Accepted for the School of Engineering and Applied Science:

iii ______________________ Richard W. Miksad Dean, School of Engineering and Applied Science

Abstract
Intermediate attack (IA) is an interesting phenomenon in crevice corrosion. The typical morphology of crevice attack shows an unattacked region near the crevice mouth, a region of extensive damage at slightly greater depths and an additional unattacked region at still greater depths. This pattern suggests that crevice corrosion is governed by the interaction between two forces. One force accelerates corrosion with increasing depth into a crevice. The other force acts to retard dissolution as distance from the crevice mouth increases. This second, ameliorative force, is not accounted for in conventional theories of crevice corrosion. Traditionally, the exciting force in crevice corrosion is thought to be either acidification due to metal cation hydrolysis, the Critical Crevice Solution Model, (CCS ), or depolarization of a passivated material, the Critical Potential Drop Model (IR*). One potential mitigating force for corrosion is reduction in driving force due to resistive potential drop. This explanation lacking in that IR losses can only depolarize a material to its open circuit value. Corrosion rates can be significant even at open circuit in the highly aggressive, acidic chloride environments which are thought to exist in crevices. A superior theory to explain IA is the Cathodic Focusing (CF) model which is developed in this dissertation. It accounts for the chemical effects of cathodic reactions inside a crevice. These reactions are especially important in those regions of the crevice that are at or near the open circuit potential. Many of the likely cathodic reactions generate hydroxyl ions

iv which will raise the local pH. This pH rise can be very protective of the crevice material. In order to test and explore the suitability of the CCS and IR* models to predict IA a new code for modeling crevice corrosion was needed. This dissertation presents the background and verification of CREVICER, a new code for modeling crevice corrosion. The code is a 2-D(+), temporal FEM code for the generation and transport of electrochemical species. One of the code’s major strengths is that it is object-oriented and thus can be easily modified to model many different material-environment systems of crevice corrosion or environmental cracking. This dissertation concludes by using CREVICER to compare each of the three theories, CCS, IR*, and CF, and their ability to model IA. The superior performance of the CF model suggests that alkalinization is the ameliorative force in crevice corrosion and that there is the possibility of augmenting the alkalinization to reduce or prevent crevice corrosion.

v

Acknowledgements
I would like to thank some of the many people who have lent me a hand during my decade in the Department of Material Science and Engineering here at UVA. Rob, Dot and Connor Kelly for not only was Rob’s door open, so was the Kelly home. Ray Taylor and Louie Scribner for bringing me into the CESE and helping me grow through all (emphasis on all) the newbie mistakes. Lisa Young and Meredith Leggat for letting me crash on various items of their furniture when I was homeless. Lisa DeJong for bringing the CREVICER code into form that is usable by someone other than ourselves and experimentally verifying the code in ways that are beyond my ability. Ray Kilmer, Steve Smith, Jeff Poirier, Rusty Wright, Peter Schare and everyone else who taught me to weigh, mix, saw tighten or scan safely and accurately. Mom, Dad, Sean and Mara for whom “when” is finally “now”. Some peoples’ lives have character, mine is full of characters. A few of those who graced my life in Charlottesville: Brian Connolly was always ready to talk about corrosion, the world or history. Rob Leggat participated actively, if unknowingly, in the “sport of kings” when he first arrived. I’d like to think that negative reinforcement turned him into the careful, wary researcher he is today. Chad Hunter and Ted Sheridan introduced me to the other “sport of kings”. Daryl Little and Kevin Cooper tolerated many slurs on our great neighbor to the north. Guys, In case we really are warming, save a place for me. Amber Mierisch. In the battle of man verus nature I suppose someone has to root for the opposing team. You’d be a fair referee because you make people back up their numbers. George Young and Steve Yu. You helped me improve my reflexes, hand-eye coordination and predictive capabilities. If we are ever invaded by aliens, the world will thank you. Lysle Montes. Size does not count for as much as heart in either life or the weight room and yours makes you stand tall in both places. Dave Kolman, Markus Wittman and Rob Cook. Experimental verification is always a good thing. The mint could have been lying about the melting temperature of pennies. Jen Lillard and Doug Wall pioneered the concept of finding a school you liked and sticking with it. In your footsteps have I followed.

vi

Table of Contents
Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iii Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . v List of Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiv List of Figures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvii List of Symbols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxii 1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.1 Corrosion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 Crevice Corrosion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.2.1 Phenomenology of Crevice Corrosion . . . . . . . . . . . . . . . . . . . . . . . 2 1.2.2 Importance of Crevice Corrosion . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.2.3 Causes of Crevice Corrosion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.2.4 Unanswered Questions about Crevice Corrosion . . . . . . . . . . . . . . 10 1.3 Modeling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 1.3.1 Difficulties with Experimentation in Crevice Corrosion . . . . . . . . 12 1.3.2 Increasing the Utility of Experimental Data . . . . . . . . . . . . . . . . . . 13 1.3.3 Acting as a virtual experiment . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 1.4 Scope of Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

2 Background . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

vii 2.1 Basic Electrochemistry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 2.1.1 Electrochemical Reactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 2.1.2 Thermodynamics of Electrochemical Reactions . . . . . . . . . . . . . . . 22 2.1.2.1 Thermodynamic Effects of Concentration . . . . . . . . . . . . 23 2.1.2.2 Thermodynamic Effects of Potential . . . . . . . . . . . . . . . . 25 2.1.3 Half-cell Kinetics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 2.1.3.1 Activation Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 2.1.3.1.1 Butler-Volmer Equation . . . . . . . . . . . . . . . . . . 35 2.1.3.2 Mass Transfer Control . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 2.1.4 Polarization Curves . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 2.2 Theories of Crevice Corrosion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 2.2.1 CCS Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 2.2.2 IR* Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 2.2.3 Comparison of Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 2.3 Principles of Modeling Crevice Corrosion . . . . . . . . . . . . . . . . . . . . . . . . . . 60 2.3.1 Governing Equations Commonly Used in Crevice Corrosion . . . . 61 2.3.1.1 Chemical Transport Processes . . . . . . . . . . . . . . . . . . . . . 61 2.3.1.1.1 Convection . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 2.3.1.1.2 Diffusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 2.3.1.1.3 Migration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 2.3.1.2 Mass Transport Equation . . . . . . . . . . . . . . . . . . . . . . . . . 68

viii 2.3.1.3 Conservation of Mass . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 2.3.1.4 Electrical Transport Processes . . . . . . . . . . . . . . . . . . . . . 73 2.3.1.5 Alternate Approach to Calculating Electric Field . . . . . . 79 2.3.1.6 Charge Neutrality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 2.3.2 Examination of Terms Used in Crevice Corrosion Modeling . . . . 84 2.3.2.1 Use of Concentration rather than Activity in Diffusion . . 84 2.3.2.2 Transport Coefficients . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 2.3.2.2.1 Ion/Ion Interaction Effects . . . . . . . . . . . . . . . . 89 2.3.2.2.1.1 Empirical Correlation . . . . . . . . . . . . . 89 2.3.2.2.1.2 Use of Activity Coefficients for Diffusivities . . . . . . . . . . . . . . . . . . . . 95 2.3.2.2.2 Viscosity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 2.3.2.2.3 Porosity/Tortuousity . . . . . . . . . . . . . . . . . . . . . 97 2.3.2.3 Generation of Chemical Species . . . . . . . . . . . . . . . . . . . 98 2.3.2.3.1 Heterogeneous Reactions . . . . . . . . . . . . . . . . . 99 2.3.2.3.1.1 Stoichiometric Dissolution . . . . . . . 104 2.3.2.3.2 Homogeneous Reactions . . . . . . . . . . . . . . . . . 106 2.3.2.3.2.1 Hydrolysis . . . . . . . . . . . . . . . . . . . . 107 2.3.2.3.2.2 Chemical Precipitation/Hydrolysis . 120 2.3.2.3.2.3 Homogeneous Oxidation . . . . . . . . . 121 2.3.2.4 Potential . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121

ix 2.3.2.4.1 Electrochemical Potential . . . . . . . . . . . . . . . . 122 2.3.2.4.2 Solution Potential . . . . . . . . . . . . . . . . . . . . . . 123 2.3.2.4.3 Diffusion Potential . . . . . . . . . . . . . . . . . . . . . 126 2.3.3 Common Simplifications in Modeling Crevice Corrosion . . . . . . 138 2.3.3.1 Elimination of Thermodynamic Variables . . . . . . . . . . . 140 2.3.3.1.1 Temperature . . . . . . . . . . . . . . . . . . . . . . . . . . 140 2.3.3.1.2 Pressure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 2.3.3.2 Simplification of Chemical Effects . . . . . . . . . . . . . . . . 146 2.3.3.2.1 Transport Coefficients . . . . . . . . . . . . . . . . . . 146 2.3.3.2.2 Dilute Solution Approximation . . . . . . . . . . . 147 2.3.3.2.3 Generation Rates . . . . . . . . . . . . . . . . . . . . . . . 147 2.3.3.2.4 Hydrolysis Reactions . . . . . . . . . . . . . . . . . . . 148 2.3.3.3 Simplification of Potential Effects . . . . . . . . . . . . . . . . . 149 2.3.3.3.1 Assuming No Migration . . . . . . . . . . . . . . . . . 149 2.3.3.3.2 Assuming No Diffusion Potential . . . . . . . . . . 149 2.3.3.3.3 Assuming Charge Neutrality . . . . . . . . . . . . . . 149 2.3.3.3.4 Generation Rates . . . . . . . . . . . . . . . . . . . . . . . 150 2.3.3.4 Ignoring Temporal Effects . . . . . . . . . . . . . . . . . . . . . . . 150 2.3.3.5 Simplifying Geometry . . . . . . . . . . . . . . . . . . . . . . . . . . 151 2.3.4 Methods of Solution for Crevice Corrosion Models . . . . . . . . . . . 153 2.3.4.1 Analytic Solutions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153

. . . . . .1 Spatial FEM . . . . .3 Issues in Choosing Methods of Solution .2 Object Oriented Design . . . . . . . . . . . . . . 239 3. . 229 3. . . . .2. . . . . . . . 209 3.3. . . . . . . . . . . . .1 General Aspects of Crevice Corrosion . . . . .5. . . . . . . . . . . . . . . . .3. . . . .4 Applications of FEM to Crevice Corrosion .3. . . . . . . . . .1 Finite Difference Method . . . . .3. . . . . . . . . .1. . . . . . . . . . . . . . . . 158 2. . . . . . . . . 218 3. . . 206 3. . . . . . . . .2. . 232 3. . . .5. . . . 167 2.4 Literature Review . . . . . . 159 2. . . . . . . . . . . . 216 3. . . .1 Limitations of Temporal FD . . . . . . . . . . . .5 Program Structure and Simplifications Used in CREVICER . . . . . . . . . . 206 3. . . .3. . . . . . .4. . . . . . .3 Finite Element Method . . . . 155 2. . . . . . .3. . . . . . . . . . .2 Misuse of Analytic Solutions . .2. . . . . . . . . . . 163 2. . .3 Finite Element Method . . . . . . . . .4. . . . . . . . . . . . . .4.3.3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221 3. . . .2 Numerical Solutions . . . . . . . . . . 169 3 Definition of the CREVICER Model . . . . . . . . . . .2. . .3. . . .5. . 228 3. . . .2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .x 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . .2 Temporal FD . . . . . . . . . . . . . . . . . . . . . . . . .1. . . . . . . . .1 Governing Equations . . . . . . . . . . . . . . . . . 239 . . . . 163 2. .3. . . . . . . . . . . . . . .2 Boundary Element Method . . . . .4. . . . .4. .1 Limitations of Spatial FEM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4. . . . . . . . . . . . . . . . .1 Program Structure . . . . . . . . . . . . . 223 3. . . .2 Simplifications in CREVICER . . 233 3. . . . . . . . .

. . . . . . . . . . . . . 256 4. .1. . . . . . . . 249 4. . . . . . . . .2 One-D Crevice With Active Flanks and Passive Tip .3 Case 3 . . . 246 4. .1. . . . . . . . . . . . . . . . . . .1. .1 Comparisons of CREVICER to Analytic Solutions .1. . . . . . . . . . .xi 3. . . 270 4. . . . . . . .5 One-D Crevice With Active Walls. . . . . . . . . . . . . . . . . . . . . . . .One-D Wedge With Varying Height and Active . .Two-D Crevice With Passive Walls and Active Tip . . . . . . .4 Case 4 . . . Tip . . . .Two-D Crevice With Active Walls . . . . 263 4. .2. . . . . . . .1. . .1 Test Cases Evaluating Potential . Passive Tip and Varying Solution Conductivity . . .7 Case 7 . . 247 4.1. .1 One-D Crevice With Active Tip and Passive Flanks . . . . . .9 Case 9 . . . .1. . . . . . . . . . . . . . . . . . . . . . . . .4 Derived Parameters .5. . . 249 4. .1. . . . .1. .2. . . . . . . . . . . . . . . . . . . . . . . . .1. . . .3 Heterogeneous and Homogeneous Reactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6 Case 6 . . . . . . . . . .1. . . 284 4. . . . . . .One-D Crevice With Active Flanks and Active Tip . . . . 292 4. . . . . . .1. . . . .2. . . .5. . . . .5. .1.1. . . . . . .1. . . . . . . . . 242 3. . . . . . . 240 3. .8 Case 8 . . . .1. . . .1. . . . . . . 243 4 Model Verification and Use . .One-D Wedge with Varying Height and Active . . . . . .1. . . . . . . . . . . . . . .2 Terms . . . 277 4. . .One-D Crevice With Active Tip and Varying Solution Conductivity . . . .1. . 300 4. . . . . .

. . . . . . . . . . . . . . . . . . . . . . .3 IA as a Transient Phenomenon . . . . . . . . . . . . . . . .2. . . .2. . . . . . . . . . . 335 4. . . . 355 5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2 Limitations of Model . . . . . . . .2. . . 320 4. . . . . . . . 334 4. .4 dI/dE Stability Limitations . . . . . . . . . . . . . . . . . . . 336 4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2. . . . . . . . . . . .2. . . . . . .2. . .1.Transient Diffusion of Chemical Species . . 338 5 Intermediate Attack . . . . . . . . . . . . . . . . 307 4.xii Sides . . . . . . . . . . . . 328 4. . . . . . . .2. . . . . . . . . .3 Hydrolysis Reactions . . . . . . . . . 352 5. . . . . . . . . . . . . . . . . . . . . . . . . .3 Courant Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2 IR* Theory applied to IA . . . . .1 Discretization Limitations . . . . . . . . 334 4. . . .One-D Mass Transport of Chemical Species . . 355 . . . . . . . .1 Case 12 . . . . . . . . . . . . . . . . . . . 337 4. . . . . . .2 Case 11 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1. . .1. . . . . .1 Case 10 . . . . . . . 313 4. . . . . . . .2 “Standard” Theories Applied to IA . . . . . . . . 341 5. 328 4. . . . . . . . . . . . . . . . . . . .1. . . . . . . . .3. . . . .2. . . . . . . . . . . . . . . . . . . . . . . . . . .2. .2 Test Cases Evaluating Mass Transport . . . . . . . .1 CCS Theory Applied to IA . . . . .3 Test Case Evaluating Time . . . . 347 5. 347 5.One-D Mass Transport of Chemical Species With Generation . . . . . . . . . . .2. . . . . . . 342 5. . . .5 Variable Coefficient-Induced Stability Limitations . . . . . . . . . . . . . . .2 Peclet Limitations . . . . . . . . . . . . . . . . .1 Phenomenology of Intermediate Attack . 313 4. . . . . . . . . . . . . . . . . . . . . . .1. . . . . . . . . .

5. . . . .5. . . . . . . . . . . 439 Appendix G: tallspec. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425 Appendix B: constant. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367 5. . . . . . . . . . . . . . . . . . . . . . . . . . . .xiii 5. . . . . . . . . . . . . . . . . . . . . . . . .1 IA by the IR* Model . . . . . . .3 IA by the CCS model . . . . 431 Appendix E: taspecie. . . . . . . . . . . . . . . 374 5. . . . . . . . . . . . 426 Appendix C: tchem. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1 Code Improvements . . . . . . . . . . . . . 403 7 Future Work . . . . . . . . . . . . . . . . . . . . . . . . . . .c . . . . . . . . . .h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 407 8 References .5. . . . . 367 5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .h . . . . . . . . . . . . . . . . . . . .5. . . . . . . . . . . . . .2 CCS Model . . . . . . . . . . .5 Modelling of IA by IR*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390 6 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 410 Appendix A: CREVICER Code Printout . . . . . . . . . 364 5. . . . . . . . . . . . . .4 IA by the CF Model . . . . . . . . . . . . . . 405 7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435 Appendix F: taspecie. . . . . . . . . CCS and CF by CREVICER . . .2 Model Improvements . . . . . . . . . . . . . . . . . . . . . . . . . . . . .c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381 5. . . . . . . . . . . . .4 Cathodic Focusing Theory of IA . . . . . . 405 7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .h . . . .h . . . . . . . . . . . . 446 . . 429 Appendix D: tchem. . . . . . . . . . . . . . . . . . . . . . . . .

. . . . .h . . . . . . . . . . . . . . . . . . . . 533 Appendix S: elsq8 . . . . . . . . . . . 492 Appendix N: fem. . . . . . . . . . . . . . . . . . . . .c . . . 481 Appendix L: tmateria. . . . . . . . . . . . . .c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .h . . . . . . . . . . . . . . . . . . . . . . . .h . . . . . . . . . . . 495 Appendix O: solver. . 515 Appendix P: solver. . . . . . . . . 464 Appendix K: tmateria. . . . . . . . . . . . . 448 Appendix I: treactio. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 516 Appendix Q: chemtest. . . . . . . . . . . . . . . . . . . . . . 460 Appendix J: treactio. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xiv Appendix H: tallspec. . . . . 541 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .c . . . . . . . . . . . . . . . . . . .c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 484 Appendix M: fem. . . . . . . . . . . . . . . . .h . . . . . . . . . . . . . . . . 522 Appendix R: nosq8 . . . . . . . . . . . . . . . .

. . . . . . . 172 Chapter 3 7. . 170 6. . . . . . . . Correspondence Between FEM Coefficients and Physical Terms (Chemical Transport) . . . . Parameter Values of Kt and θ used to Select Time Solution Method . . . . . . . . . . . . . 226 9. . . . . 228 10. . . . . . . . . . 231 11. . . Literature Review Table . . . . . . . . . . . . . . . . . . . . . . . . . . . Formation Quotients for Aluminum Species . . . . . . . . . . . . . . . . . . . . 109 2. . . . . . . . . . . . . . . . . . . . Diffusivities of Various Ions . 111 3. . . . . . . . . 132 4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Formation Quotients for Chromium Species . . . . . . . . . . . . . . . . .xv List of Tables Chapter 2 1. . . . . . . . . Data and Symbols for Literature Review Table . . . . . . . . . . 232 Chapter 4 12. . . . . . . . . . Diffusion Potentials for Various Salts . . . . . . . . 250 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 5. . . . . . . . . . . . . . . . . 220 8. . . . . . . . . . . . . . . . . . . . . . . . . . Relation of Courant Number to Stability . . . . . . . . . . . . Types of Boundary Conditions . . . . . . . . . . . . . . . . Correspondence Between FEM Coefficients and Physical Terms (Electrical Transport) . Model Conditions for Case 1 . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . 257 15. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xvi 13. . . . . . . . . . . . . . . . . . Goodness of fit for Case 4 . . . . . . . . . . . . . 308 29. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Goodness of fit for Case 6 . . 271 19. . . . . . . Model Conditions for Case 7 . . . . . . 278 21. . . . FEM Parameters in Terms of Physical Constants for Case 10 . . . . . . . . . . . . . . . . . . . . . . . . . 321 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Model Conditions for Case 9 . . . . . . . . . . . . . . . Goodness of fit for Case 7 . . . . . . . . . . . Goodness of fit for Case 10 . . . . . . . . . . . . . . . . . . . . . . . . Model Conditions for Case 3 . . . . . . . . . . 263 17. . . . . . . Goodness of fit for Case 3 . . 310 30. . . . . . . . . Goodness of fit for Case 8 . . . . . . . . . . . . . . . . . . . . . . 260 16. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253 14. . . . . . . . . . . . . . . . . . . . 303 28. . . . . . . 295 26. . . . . . . . . . . . . 301 27. . 273 20. . . . . . . . . . . . . Goodness of fit for Case 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . Model Conditions for Case 4 . . . Model Conditions for Case 2 . . . . . . . . . . . Goodness of fit for Case 5 . . . . . . . . . . . 285 23. . . Goodness of fit for Case 9 . . . . . 287 24. . . . . . Model Conditions for Case 6 . . . . . . . . . . . . . . . . . . . . Model Conditions for Case 10 . . . . . . . . . . . . . . . . Model Conditions for Case 11 . . . . . . . . . . . . 316 32. . . . Model Conditions for Case 5 . . . . . . . . . . . . . . . . . . . . . . . . . 317 33. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266 18. 314 31. . . . . . . Model Conditions for Case 8 . . . . . . . . . . . . . . . . . . . 293 25. . . . . 281 22. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Goodness of fit for Case 2 . . . . .

. . . Composition of the Stainless Steel 304 . . . . . . . . . Polynomial Coefficients for fit of Valdes-Moldon Data . . . . . . . . . .xvii 34. . . . . . . . . Model Parameters for Modeling IA by the CCS/IA Model . . . . 323 35. . 368 40. . . 369 41. . . . . . . . Model Parameters for Modeling IA by the IR* Model . . . . . . . . . . . . . . . Model Parameters for Modeling the CCS Model . . . . . . . . . . . . . . . . . . . . . . . 324 36. . Model Parameters for Modeling IA by the CF Model . . . . . . . . . Equilibrium pH’s for Various Cations when Created Electrochemically . . Model Conditions for Case 12 . . . . . 329 Chapter 5 37. . . . . . . . . . . . . . . . . . . . . 375 42. . . . . 359 39. . . . . . . . . . . 382 43. . . . . 391 . . . . . . . . . . . Goodness of fit for Case 11 . . 358 38. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FEM Parameters in Terms of Physical Constants for Case 11 . . . . . . . . . .

. . . . . .1. . . . . . . . . . . . .1(b) Schematic of CCS Model . . . .2. .4(b) Translation of Areal into Volume Flux . . . . .1(a) Illustration of CCS Model . . . . . . . . . . . .1. . . . . . .1. . . . . . . . . . . . 34 2. . . . . . . . . . . . . .3. . . . .2. . . . . . 56 2. . . . . 94 2. . . . . . 118 . . . . . . . . . . . . .1(b) Dependence of Diffusivity on Concentration . . . . . . . . . . .4(c) Evans Diagram of an Active/Passive Metal . . .2. .xviii List of Figures Chapter 1 1. . . . . . . . . .1. . . . . . . 43 2. . . . . . . . . . .2.1. . . . 51 2.1. . . . . . 103 2. .1(a) Speciation of Chromium Hydrolysis Products . 44 2. . . . . . . . . .3. . . . . . . . . . . . . . .3. . . . .4(b) Evans Diagram of Two Reactions . . . 93 2. . . . . .2.2.2. .2. . . . . . . . . . . . 57 2. . . .3.3. . . . . . . . . . . . .3(a) Effect of Potential on Kinetics .2. . . . 92 2. . . . . . . . .2(b) Schematic of IR* Model . . . 78 2. . . . .2. . . . . . . . .2. . . . . . . . . . 5 1. . . . . . . . . 52 2. . . . . .4(a) Evans Diagram of a Single Reaction . . . . . . . . . . . . .1. 45 2. . . . . .2. . . . . . .1(a) Schematic of Crevice Corrosion . . . . .2(a) Illustration of IR* Model . . . . . .1(c) Dependence of Activity on Molality .1(a) Dependence of Equivalent Conductivity on Ionic Strength .3. . . . . . . . . . . . . . . . . . . . . . . . . .3. .1(b) Terms and Directions of Crevices . . . . . . . . . . . . . . . . .2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Chapter 2 2. . . . . . . . . .2. .2. . .3. . . . . . . . . . . .1. . . . . . . . . .1(a) Methods of Approximating Polarization Curves . . .

2. . . . . . . . . . . . .1(a) Illustration of Data Flow in CREVICER . . . . . . and E . . . .3. .1. . . . . . . . . . . .5. 262 .(b) Diffusion Potential for Reservoirs of Different Ratios of NaCl . . . .xix 2. . . . . . . . . 255 4. . . . . . . . . . .1.4. . . . . . . . . . . . . . . . . . . . .3. . . . 261 4. . . . . . . . . . . . .(a) Illustration of Diffusion Potential Causes . . 215 3. . . .4. . . . . . . . . . . . . .4. . .1. . . 166 Chapter 3 3. 162 2. . . . . . . . 137 2. . . . . . . . . .1(b) Potential Distribution for Case 1 . . Implicit and Crank-Nicolson Methods . . . . . . . . . . . .5. . . .1(a) Illustration of a 2-D FEM Element . . . . . . . . . . . . . . . . . . . . . . . . .1(b) Objects of CREVICER . . . . . . . . . 238 Chapter 4 4. . . .3. . . . . . . . . . .2(a) Illustration of an Object . . . .1. .4. . . . . . . . . .3. . . . .2(d) Illustration of Classes of Information in CREVICER . . .3. . . . .1(a) Illustration of Explicit. . . .1. . . . . . . . . . . .2.4. . . . φmetal. . .2(b) Potential Distribution for Case 2 . . . .3. . . . . . 136 2. . . . . .2. . . .3. 237 3. . . . . . . . .2(b) Illustration of Encapsulization . . .3(a) Shape and Pyramid Functions for FEM . .2.2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .(a) Relationships between φs. . . . . . .2.1. . . . . . . . . .1(b) Speciation of Chromium Hydrolysis Products . 254 4. . 213 3. . . 125 2. . . . . . . . . . . . . . 227 3.1. . .3. . . . . . . . . . . . . . . . . . . . . . . . 214 3. . . .1. . . . . . .2(a) Crevice Geometry for Case 2 . . . . . . . . . 212 3. . . . . . . . . . . .3. . . . . .1(a) Crevice Geometry for Case 1 . .2(c) Illustration of Inheritance . 119 2. . . . . . .3. . . . . .2. .2. . .

. . . . . . . . . . . . .1. 298 4.2. . . . . . .1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1. . . . .1. . 291 4. . 311 4. . . . . .6(a) Crevice Geometry for Case 6 . . . . . . . . . . . . . . . . .1. . . . . .1. . . . 327 . . . .1. . . . . . .1. . . . . . . . . .1. . . 312 4.1. . . . .1. . . . . .5(b) Potential Distribution for Case 5 . . . . . . . . . . . . . .1. . . . . . . . . . . . . . . . . . .6(b) Surface Plot of Potential Distribution for Case 6 . . . . .6(c) Potential Distribution for Case 6 . . . . . . . . . . . .1. . . . . . . . . . 319 4. .2. . . 326 4. . . . . . 305 4. . . . . . . . .1. . . 297 4. . . .1. .2(c) Migration.1. . . . . . . . . . . . . . . . .1. . . . .1. 269 4. . . . . . . . .1. 282 4. . . . . . . . .1. . .3(b) Potential Distribution for Case 3 . . .1. . .1. . . . . . . . . . . . . . . . . . . . . .1. . . .4(a) Crevice Geometry for Case 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1. . . . . 283 4. . . . . . 306 4. . . .4(b) Potential Distribution for Case 4 . . . . . .1. . . . . .2. . . . . . .1. . . . . . . . . . . . . . . Diffusion and Total Fluxes for Case 11 . . . . . . 276 4. . .9(b) Potential Distribution for Case 9 . . . 268 4. . . . . . . . .1. . . . . . 275 4. . . . . . . . . . . .8(b) Potential Distribution for Case 8 .1(a) Crevice Geometry for Case 10 . . . . . . . . . . 318 4.1. . . . . . 299 4. . . . . . . . . . . 325 4. . . . . . . . .2(a) Crevice Geometry for Case 11 . . . . . . . . . . . . . . .7(a) Crevice Geometry for Case 7 . . . . . . 289 4. . . . . . . .1. .9(a) Crevice Geometry for Case 9 . 290 4. .3(a) Crevice Geometry for Case 3 .1. . . . . . . . . . . .1. . . . . .7(c) Potential Distribution for Case 7 . . . .1(b) Concentration Distributions for Case 10 . . . . . . . . . . . .7(b) Surface Plot of Potential Distribution for Case 7 . . . . . . . . . . . . . . .1. . . . . . . . . . . . . . . . .1. . . .2(b) Concentration Distributions for Case 11 . .5(a) Crevice Geometry for Case 5 . . . .1. . . . . . . . . .1. . . . .1. . .xx 4. . . . . . . . . .2. . . .1. .8(a) Crevice Geometry for Case 8 . . . . . . . . . . .2. . .

.3(c) pH of 304 and its Components When Dissolved Electrochemically at Different Fractional Cathodic Currents . . . . . . . . . . . . . . . 351 5. . .4. . . . . . . . . . . . . . . 346 5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1. . . . . . . . . . . . . . . . . . . . . . . . . . .5. . . . . 371 5. . . . . . . . . . . . . . . . . . .(a) IA by the IR* Mechanism .3(a) OH. . . . . . . . . . . . . . . 372 5. . . . . .1(b) Photograph of Creviced 304 Sample . . . .2. . . . . . . . . . . . . . . . . . . . . . 378 . . .3(b) OH. . . . . . .2. . . . . . . . . . . .1. .1(a) Crevice Geometry for Case 12 . . . . . . .1. .1(b) Concentration Distributions for Case 12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332 4. . . 363 5. . . . . . .1.1(c) Resulting Current and Potential Distributions for Model of IA by the CCS Mechanism . . . . 354 5. . . . . . . . . . .1. . . . . . .2(a) Geometry for Model of CCS Mechanism . . .3. . . . 344 5. .2. . . . . . . . . .1. . . . . . . . . . . . . . . .1(c) Terms Used to Describe Crevice Corrosion . . .5. .2(b) Polarization Curves for Model of CCS Mechanism .Consumption and Speciation via hydrolysis of Cr+3 at Different pH’s . . . . . . . 366 5. . . . . . . . . . . . . . . . . . . . . . 373 5. . . . . . . . 333 Chapter 5 5. . . . . . . . . . . . . .1(a) Schematic of Crevice Corrosion . . . . . . . . . . . . .xxi 4. . 345 5. . . . .3. . . . . . . . . . . . . . . . . .Consumption via Hydrolysis of 304 and its Components at Different pH’s 362 5. . . . . .5. 361 5. . .5. . .1(a) IA by the CF Mechanism .5. . . . . . . . . . . . . . . . . . . . . . . . . . . .1(a) Geometry for Model of IA by the CCS Mechanism . . . . . . .1(a) IA by the CCS Mechanism .1. . . . . . 377 5. .1.1(b) Polarization Curve for Model of IA by the CCS Mechanism . . . .

. . . . . . . . . . . . . . .3(d) pH Distribution at Different Times for Model of CCS/IA Mechanism . .3(c) E Distribution at Different Times for Model of CCS/IA Mechanism .4(b) Polarization Curves for Model of CF Mechanism . 397 5. . . . . . . . . . . . 400 . . . . . . .4(c) E Distribution at Different Times for Model of CF Mechanism . . . . . . . . 386 5. .3(a) Geometry for Model of CCS/IA Mechanism . . . . . . . . . 379 5. . . . .3(f) Quasi-Polarization Curves at Different Times for Model of CCS/IA Mechanism . . . 387 5. . . . . . . . . . . . . . . . . . . . . . . . . . . .5. . . .5. . . . . . . . . . . . . . . . . . . . . . . .4(f) Quasi-Polarization Curves at Different Times for Model of CCS/IA Mechanism . . . . . . . . . . . . . . . . . . . . . . . . . . . .5. . . . . . . . . .2(d) Dissolution Current Density Distribution at Different Times for Model of CCS Mechanism .3(e) Dissolution Current Density Distribution at Different Times for Model of CCS/IA Mechanism . . . . . . 395 5. . . . . .5. . . . . .4(d) pH Distribution at Different Times for Model of CF Mechanism . . . . . .5. . . . . . . . . . . . .5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385 5. . . . . . . . . . . . .4(a) Geometry for Model of CF Mechanism .5. . . 396 5. . . .5. . .5. . . .2(c) pH Distribution at Different Times for Model of CCS Mechanism . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4(e) Dissolution Current Density Distribution at Different Times for Model of CF Mechanism . . . . . . . . . .5.xxii 5. . . . . . . . 398 5. . . . . . . . . . . . . . 389 5. . . . . . . . . . . . . . . . . .3(b) Polarization Curves for Model of CCS/IA Mechanism . . . . . . . . . . . . . . .5. . . . . .5.5. .5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388 5. . 399 5. . 380 5. . . . . 384 5. . . . . . . .

. . . . .5. . . . . . . .xxiii 5. . . . . . . . . . . . . . . 401 5. . . .4(h) pH Distribution at Different Times for Model of CF Mechanism for 5 cm crevice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402 .4(g) Distribution of Cathodic/Anodic Current Ratios at Different Times for Model of CF Mechanism . . . . . . . . . . . .5. . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Reacting species [unitless] 0 B . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . stoichiometeric coefficient for species B [unitless] B . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . concentration of species i [mol/m3] Cmax . . . . . . . . . . . . . . . . . specific heat of water 4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . gradient of concentration of species i [mol/m4] . . maximum concentration [mol/m3] Cmin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . tabulated constant for hydrolysis reactions [unitless] a . . stoichiometeric coefficient for species A [unitless] ai . . . . . . . . .184 [J/g-K] C . Reacting species [unitless] Ci . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . atomic fraction of species i [unitless] A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Frequency Factor for back reaction [m/s] Af . . . . . . . . . . . . . . . . . Coefficient of Debye-Huckel Limiting Law c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Reacting species [unitless] Ab . . . .xxiv List of Symbols a . . . . . . . . . . . . . . . . . . . stoichiometeric coefficient for species C [unitless] cp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . activity of species i [unitless] a/oi . . . . . . . . . . . . . . . . . . Frequency Factor for forward reaction [m/s] b . . . . . . . . . tabulated constant for hydrolysis reactions [l/mol] b . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . minimum conductivity [mol/m3] ˜ LC i . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . corroding surface area [m2] A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . molar Gibbs free energy of species i [J/mol] ∆G . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .mig . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . diffusivity of species i [m2/s] Di0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . change in Gibbs Free Energy [J/mol] ∆G0a* . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . electric field [V/m] F . . . . . . . diffusivity of species i at infinite dilution [m2/s] E . . . . . . . . . . . . . . . . . . . . . exchange current density [A/m2] I . . . . . . . . . . . . . Gibbs free energy of activation for an anodic reaction [J/mol] ∆Gc* . . . . . . . . . . . force for migration of species i [N] g . . . . . . . . . . . . . equilibrium potential [V] P E . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . total anodic current [A] . current density across an interface [A/m2] i0 . . . . . . . . . . . . . . Ionic strength [eq2/mol-l] Ian . . . . . . . . . . Gibbs free energy of activation for a cathodic reaction [J/mol] h . . . . electrochemical potential of the reaction across an interface [V] Eeq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xxv Di . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . gravitational acceleration [m/s2] Gi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .487 [C/eq] Fi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . standard Gibbs free energy of activation for an anodic process [J/mol] ∆G0c* . . . . . . . . height of the volume [m] i . . . . . . . . . . . . . . . . . . standard Gibbs free energy of activation for a cathodic process [J/mol] ∆Ga* . . . . . . . . . . . . . . . . . . . . . Faraday’s constant = 96. . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . energy flux [J/m2-s] . . . . . . . . tabulated constant for hydrolysis reactions [unitless] K1 . . .m ig . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . areal mass density of water [g/m3] mx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . current density at a crack tip [A/m2] kf . . . . . . . . . . total cathodic current [A] Javg . . . . . . . . . . . . . . . . . . . .conv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . rate constant for the heterogeneous forward reaction [m/s] kb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .i . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xxvi Ica . . . . . . flux of species i across an interface [mol/m2-s] ˜ Ji ˜ Ji. . . . . . . . . . . . . . . flux of atoms from the alloy on an averaged basis [mol/m2-s] ˜ Jel . . . net electric current density vector in solution [A/m2] ˜ Jel. flux of species i due to migration [mol/m2-s] Jtip . . . . . . . . coefficient of analytic solution [varies] m . . . . . . . . electrical current density vector due only to species i [A/m2] Ji . . . . . . . . . . . . . flux vector of species i due to a force [mol/m2-s] ˜ Ji. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . concentration of the anion in hydrolysis [M] p . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .diff . . . . . . . . . . . . . . . total flux of species i [mol/m2-s] . . . . rate constant for the heterogeneous back reaction [m/s] Kxy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . coefficient of analytic solution [varies] K2 . . . . . . . flux of species i due to diffusion [mol/m2-s] ˜ Ji. . . . . . . . . . . . . . . . . . . . . . . .force . . . . . molality of the solution [mol / 1000g water] mH O 2 . . . flux vector of species i due to convection [mol/m2-s] ˜ Ji.

. . . . .force . . . . . . . . . . . . . . . . . . universal gas constant. . . . . . . . . . . . change in pressure caused by sustaing the additional gas/liquid interface [Pa] q . velocity of the forward heterogeneous reaction [mol/m2-s] v . . . . . . . .314 [J/mol-K] Re . . . . . . . . . . . . . . . . . . . . . quantity of water formed or lysed by self-dissassociation [mol/l] qi . . . . . . . . . . formation quotient of the hydrolysis product with x cations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . change in pressure [Pa] ∆Phydro . . . . . . . . . . . . . .diff . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .m ig . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . y hydroxyls [unitless] R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . charge on species i [C] Qxy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . velocity vector of species i due to a force [m/s] ˜ v i. . . generation rate of electrical charge [C/m3-s] Ri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8. . . . . . . . . . . . . . . . . . . . . . is the mobility tensor [m -mol/J-s] ui . . . . . . velocity vector of species i due to migration [m/s] ˜ x . . . . . . . . . . . . velocity vector of the solution [m/s] ˜ v i. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . change in pressure due to hydrostatic effects [Pa ∆Pinter . temperature [K] t . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xxvii ∆P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . stoichiometric coefficient for the metal cations involved in a hydrolysis reaction . . . . . . . mobility constant for species i [m2-mol/J-s] vb . . . . . . . . . . . . . velocity vector for species i due to diffusion [m/s] ˜ v i. . time [s] ~ 2 ~ ui . . . . . . . . . . . . . . . . . . . . . . . velocity of the backward heterogeneous reaction [mol/m2-s] vf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . rate of generation of species i [mol/m3-s] T . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . dielectric of free space[F/m] η . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . average charge number for the alloy [eq/mol] zi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . solution conductivity at position x [Ω-m]-1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xxviii x . . number of electrons transferred [eq/mol] zavg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . charge number for species i [eq/mol] Greek Symbols α . . . . . . . . . . . . crevice length [m] [X] . . . . . . . . . . . . . . . . . . . . . . . . dielectric constant of solution [F/m] εr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . stoichiometric coefficient for the hydroxyl ions involved in the hydrolysis reaction z . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . symmetry factor [unitless] γi . . . . . . . . . overpotential. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . concentration of species X [ mol/l] y . . . . relative viscosity of the solution compared to pure water at 22 C θ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . valence of the metal cation [eq/mol] z . . . . . . . . . . . . . . . . . . relative dielectric of water ε0 . . . . . . Change in parameter ε . . . . . . . . . . . . . . . . . . . . . . . . . activity coefficient of species i [m3/mol] ∆ . . . . . . . . E . . . . . . . . . . . . . . . . . . . . . . . . . . crack opening angle [rad] κ . position [m] x0 . . . . . . . . . . . . solution conductivity [Ω-m]-1 κ(x) . . . . .E0 [V] ηr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . ionic conductivity [m2 / Ω-eq] µi . . . . . . . . . . . . . density of water = 1000 [kg/m3] 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . chemical potential of species i [J/mol] µi . . . ionic conductivity for the anion [m2 / Ω-eq] λi . . . . . . . . . . . . . . . . . . . . . . . . electric charge density in solution [C/m3] DH2O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . maximum conductivity [Ω-m]-1 κmin . . . . . . . . . . . . . . . . . . .xxix κmax . . . . . . . . . . . . . . . . stoichiometric coefficient for species i ρel . . . . . . . . . ionic conductivity for the species i [m2 / Ω-eq] Λ . . . . ionic conductivity for the cation [m2 / Ω-eq] λ− . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . chemical potential of species i in the standard state [J/mol] νi . minimum conductivity [Ω-m]-1 λ+ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

It starts with a brief overview of corrosion and its costs. causes. In 1997 this translated to over $320 Billion in costs from downtime. A discussion of the phenomenology. A major method of classifying corrosion is by the form of attack. and other corrective actions. General attack .1 Chapter 1: Introduction This chapter serves to frame the work of this dissertation and place it in context. importance. Its causes range from high temperature oxidation to improper galvanic coupling and it occurs in environments as diverse as seawater to sulfur. The chapter ends by summarizing the work done for this project. replacement costs. 1. alter its appearance.1 Corrosion Metallic corrosion is the process which changes metals from their technologically useful reduced form to their thermodynamically stable oxidized form. Corrosion has many forms. The focus then shifts to the particular form of corrosion studied in this project: crevice corrosion. Corrosion can be broadly characterized as either general or localized. This phase change can mechanically weaken a part.and chloride-contaminated atmospheres. and outstanding questions on crevice corrosion leads into the purposes and goals of this dissertation in modeling crevice corrosion. The costs of corrosion were estimated to be 4% of the GDP [1]. or contaminate a product stream.

it is relatively benign since it is easy to detect and to predict its course.2 Crevice Corrosion Crevice corrosion is a subset of the phenomenon of localized attack.2. but underneath the crevice former the material is heavily corroded. More insidious are the various forms of localized attack. even if the overall wall thickness is unaffected elwewhere. Pitting. A single crack can destroy a wing spar that is otherwise intact. The stainless steel specimen is immersed in an environment and covered with an electrolyte. 1. From a corrosion mitigation perspective. It is differentiated from pitting or other forms of localized attack in that an external crevice former is required to initiate corrosion on a surface in an environment in which it would otherwise be immune. On the uncovered surface there is no attack.1(a) from Jones[1] shows a typical example of crevice corrosion.2 results in relatively even surface wastage of a material. Pitting is related to crevice .1 Phenomenology of Crevice Corrosion Crevice corrosion is a type of localized attack. Likewise. intergranular attack and crevicing are particularly damaging since they are less easy to predict and are difficult to detect.2. This dissertation is focused on crevice corrosion. This section addresses the following questions: What is crevice corrosion? Why is it important? How does it happen? and What still needs to be known? 1. Figure 1. a single hole can destroy a pipeline.

It is this . little attack occurs. The depth of attack under the crevice former varies. Typically. surface. the interior of a crevice may contain great differences in pH. the amount of material lost increases until a peak is reached and then the depth of attack slowly decreases to zero with further travel into the crevice. but a pit generates the required geometry spontaneously instead of relying on an outside former as in crevice corrosion. the electrolyte in a crevice is thought to be a concentrated metal salt solution of low pH. With increasing distance into the crevice..3 corrosion in that an occluded region is also formed. Changes in geometry.2. The stainless steel specimen is only corroded underneath the crevice former. Some aspect of the occluded site which is produced under the crevice former makes the conditions there much more aggressive than those on the unblocked.1(b) for both crevices and the related geometry of cracks. or initiation time. Initiation is the generation of conditions that are sufficient to attack the metal. The differing amounts of metal loss along the crevice wall imply that the conditions inside the crevice are not uniform. Propagation depends on sustaining those conditions. Once initiated the crevice is said to propagate. between the formation of the crevice and the start of attack. Near the mouth. The geometrical terms and directions are illustrated in Figure 1. Just as a crevice may vary considerably from the bulk.1(a). can make the damaging electrical or chemical conditions unsustainable and stop the crevicing. electrolyte composition and potential. such as if rapid corrosion were to widen the mouth of a crevice. or boldly exposed. One typical aspect of crevice corrosion is that there is a time delay. Another aspect of crevice corrosion is the unevenness of attack seen in Figure 1.2.

.4 combination of the divergence of internal conditions from the bulk and the obscuring effect of the crevice former that makes crevice corrosion such a damaging form of attack. The presence of unattacked regions at both the mouth and base of the crevice is referred to as “intermediate attack” (IA) in this project. The major contribution of this thesis is in presenting modifications of existing theories of crevice corrosion to account for IA and in developing the “Cathodic Focusing” (CF) model as an alternate explanation.

combine elements of both.2. ascribes primacy to the chemical changes in a crevice. The CCS model explains the deletory effects of an occluded region in terms of it acting as a barrier to chemical transport.2.7 1. The theory was first proposed as the Acid Hydrolysis theory . One. timing. As a precursor to that discussion.2. whereas the overall process is thought to be understood.3 Causes of Crevice Corrosion Some combination of chemical and electrical changes inside an occluded site makes the conditions locally more aggressive than the bulk environment. a short mention of the basic outlines of the theories concerning the factors that govern crevice corrosion is in order. The other difficulty posed by crevice corrosion is that any inspection of a part is hampered by the presence of the crevice former. including that of this dissertation. 1. There are two main theories to explain the initiation of crevice corrosion. Subsection 1. Most modern models. exact answers about the likelihood. the Critical Crevice Solution (CCS) model. Since the conditions in a crevice can become significantly more aggressive than those in the bulk environment if unfavorable geometries are present it is difficult to perform accurate material selection to choose the cheapest material that will have adequate performance. and rate of attack are not available.2 Importance of Crevice Corrosion Crevice corrosion is an important area of corrosion research because. The other.4 describes the questions that are active areas of research in crevice corrosion. the Critical IR Drop Model (IR*) assigns dominance to the electrical changes inside the occluded site.

the conditions inside the crevice are the result of an interplay between the generation of chemical species inside the crevice and their transport out of it. and Ingress of Chloride ions to balance the charge of the more slowly moving metal cations. The time delay before initiation is needed to develop a concentrated electrolyte. The process is autocatalytic. The unattacked region at the crevice mouth is caused by mass transport out of the crevice preventing the development of a sufficiently aggressive solution. As result of the change in chemistry the dissolution rate increases. These cations hydrolyze and form metal hydroxides. CCS explains several aspects of crevice corrosion. This process lowers the solution pH. Hydrolysis of the resulting metal cations lowering the pH. allows the metal cations to accumulate. The net result is an acidic chloride solution which more aggressive than the previous solution. Simultaneously negatively charged anions. migrate into the crevice to balance the excess positive charge from the metal cations. By the logic of the CCS model. such as chloride. The resulting solution is the expected acidic chloride solution. Any lag in the removal of dissolution products. The basic process of the CCS model for the initiation of crevice corrosion on stainless steels is: Deoxygenation of the crevice. One .8 by Hoar[2] and later codified for stainless steels by Fontana and Green[3]. Anodic dissolution of metal inside the crevice supported by cathodic reactions on the boldly exposed surface. They proposed a definite criteria for the start of attack and a methodology for applying the model. Oldfield and Sutton finally placed the model in its currently recognized form by quantifying the earlier qualitative model[4]. such as imposed by a crevice former.

localizing the anodic and cathodic reactions to the crevice interior and boldly exposed surface respectively.2. potential drop due to IR occurs. rapid attack will ensue. If sufficient potential drop occurs to lower the potential of the metal from the bulk potential (safely in the passive region) to the active nose of the material. Though the basic outline of crevice behavior is known. several . The major competing theory with the CCS model is the IR* model. This theory is treated in greater detail in subsection 2.9 area which is not explained is the lack of attack at the greatest crevice depths.2. the conditions in the crevice are determined by the interplay between current generation and crevice resistance.1. This theory and its strengths and weaknesses are described more fully in subsection 2. According to this theory. This results in a net current flow from the crevice interior out to the boldly exposed surface. The thrust of the theory is that crevice corrosion can start on passivated metals if the crevice former acts as a barrier to electrical transport. Pickering proposed it as an initiating mechanism for crevice corrosion on active-passive metals whose bulk conditions are held anodically in the passive region. Whereas the IR* model can explain the uncorroded areas at the mouth (inadequate potential drop to depassivate surface) and at the base (lack of driving force to corrode at a rate greater than the corrosion current) it fails to account for the time delay before initiation. which is a product of geometry and conductivity.2. In the IR* theory. As this current crosses the electrically resistive crevice electrolyte. The CCS and IR* models are complementary halves that can be used to qualitatively explain crevice corrosion. a crevice deoxygenates.

1. If metal cations or sulfur species control the corrosion process rather . several questions remain: What are the factors controlling initiation?. Similar problems such as the variations within a crevice caused by heterogeneities such as pits and second-phase particles have led to a push to monitor the local conditions inside crevices[11]. even within the framework of CCS. 6] Outside of these systems there does not seem to be a hard and fast rule about which theory dominates under different conditions.1 to 10 µm and easily observable ones with gaps of several hundred µm’s. Corrosion initiates first at a crevice since it is the most occluded site on a surface. Modern modeling efforts include both effects[7-10] An important issue that both models do not address is the effects of geometry with a crevice.10 questions remain.[5. Even for crevices of perfect geometry. a number of species have been put forth as bad actors[13-15]. there is still uncertainty as to the proper scaling factor to use to translate between “real” crevices with gaps on the order of 0.2. A prime example would be subcrevices[9]. It is likely that subcrevices initiate first within a crevice since they are more restricted than neighboring areas within the site. Which of the observed changes in crevice conditions are results rather than causes of crevice corrosion? and What determines the rates of attack in the crevice and the resulting crevice shape changes? Example systems have been presented for each of the two models.4 Unanswered Questions about Crevice Corrosion While much progress has been made in understanding crevice corrosion.[12] Furthermore.

11 than pH or chloride content. Finally. then there is no easy way to tell if those conditions arose before or after initiation.3 Modeling Modeling of the corrosion process has yielded much information about crevice corrosion. Modeling can provide answers for systems that are difficult to monitor experimentally. A barrier to understanding the various factors that control crevice corrosion under different conditions is the problem of separating causes of initiation from the results of propagation. 1.[16-19] Modeling is required to address these unanswered questions about the controlling factors of crevice corrosion and also to use the models to produce useful predictions for engineering purposes. Life-prediction seeks to answer the questions of if and/or when a particular geometry will initiate. there is a decided gap between understanding the corrosion process conceptually and translating that knowledge into useful engineering practice. then different approaches must be used to try to prevent corrosive attack. it can expand the usefulness of data collected at discrete points and can perform “what-if” scenarios that would be impossible to do . and if initiated will the conditions be self-sustaining. If solution from a fully corroded sample is analyzed and found to be highly acidic and chloride rich. and has the promise to give much more insight.

there are only 10-3 ml of solution per cm2 of crevice area. a number of .1 Difficulties with Experimentation in Crevice Corrosion There are many difficulties in obtaining information about the chemical and electrical distributions inside a crevice. Nominally identical crevices on the same piece of metal simultaneously in the same environment will not necessarily have the same resistance to crevicing. For a crevice with a relatively loose 10 µm gap. The geometries are exceedingly tight and the insertion of electrically and chemically sensitive probes can influence the corrosion process. 1. A related difficulty in obtaining experimental data is the problem of scaling factors.3. Not only is there some confusion about the length to width factors that should be used to scale a real crevice to one that is easily measured. Whereas it is difficult to ascertain what is occurring within a crevice. it is not clear which characteristics of the crevice need to be scaled. Because of the small crevice gaps there is little solution available for analysis.12 experimentally. If subcrevices dominate to corrosion process. The point of such tests as multiple crevice assemblies is to get statistically significant results about crevice corrosion. there is a lot of apparent variability in crevicing behavior. then scaling the average gap may produce results that do not correlate with the physical system. The caveat is of course that a model can only be verified by comparison to experimental data. it can be safely extrapolated to other conditions. This is especially true if the scaling process allows new transport mechanisms such as natural convection to appear. Finally. The hope is that if a model is verified under conditions that can be measured experimentally.

3. Ionic mobilities. despite its high mobility. potentials are measured at discrete points rather than continuously. For instance. 1.13 measurements can be made about the crevice as a whole. A supporting electrolyte that is added to minimize the potential gradient may also inadvertently affect the corrosion behavior. 1.3. Modeling provides a tool to leverage these results into a better picture of the whole process inside the crevice.2 Increasing the Utility of Experimental Data The experimental data that is collected on a particular crevice is necessarily limited in scope. would be a singularly poor choice for a supporting electrolyte! Any parameter of a model can be changed independently. For instance. chloride. A model need only be calibrated at a few points and can then be used to provide data with as much spatial or temporal information as is needed. Modeling can fill in the blanks around such data. modeling can perform experiments that can never be done. the overall pH. the initiation time and possibly some internal measurements can be taken. corrosion rates and hydrolysis coefficients can all be scaled at will in . The net anodic current from the crevice. In addition to providing more detail about experiments that have been done.3 Acting as a Virtual Experiment One difficulty in deducing the interactions of the numerous variables affecting crevice corrosion is that it is difficult to experimentally vary only a single parameter. valences.

. The first was the creation of CREVICER a modular true two spatial dimension and temporal code for solving crevice corrosion problems. temperature. CREVICER’s main strength is that it can be customized to model nearly any material/environment system.4 Scope of Work for this Dissertation There are two major results from this thesis. 1. The effects of chemistry. This code is a significant advance over current models for the solution of crevice corrosion in that it models two free spatial dimensions with allowance for changes along a third axis. It allows modeling of any time or space scale (subject to calculation time limits). though no work presented in this dissertation uses the effects of temperature or pressure. and pressure can be accounted for. can act to flesh out a few experimentally obtained points and allows any type of what-if scenario to be played out with its variables. All crevicing processes involve an interplay between chemical and electrical transport and generation. It also allows unlimited versatility in including polarization curves. The differences only appear in the specific behaviors of individual metals and ions. This investigation created a platform for modeling crevice corrosion that was designed to exploit these strengths of modeling. This versatility is achieved is through the modular structure of the object-oriented code.14 a model to perform “what if” analyses. Such investigations can act as a guide to direct future experimentation.

Cathodic reactions such as the Hydrogen Evolution Reaction (HER) and Oxygen Reduction Reaction (ORR) generate a single hydroxyl per electron consumed and this chemical production has an alkalinizing effect. Before any serious discussion of the CREVICER code or the CF model is presented some coverage of the background for crevice corrosion modeling is presented.2 object-oriented design (OOD) is a methodology breaks a program into discrete independent units called objects. This alkalinizing effect can lead to the localization of attack near the crevice mouth. This model has been named the Cathodic Focusing (CF) model. As will be discussed in section 5. These objects can be reprogrammed at will without introducing errors into other parts of the code.3 this process can turn portions of the crevice alkaline if significant amounts of the required cathodic current to support the dissolution reactions are supported locally. Metal cations hydrolyze and this has the effect of lowering pH. . Significant corrosion near a crevice mouth will introduce large amounts of current that polarize parts of the crevice nearer the base to near the open circuit potential. Metal dissolution near the open circuit potential has radically different effects on solution chemistry than dissolution at high anodic overpotentials. The second achievement of this dissertation was the use of CREVICER to suggest a new mechanism to explain the phenomenon of intermediate attack in crevices. the metal is no longer coupled to the crevice exterior and all of the required current is met locally.15 As is discussed in section 3. At open circuit.

Currently. engineers must sail between the Scylla of underestimating the potency of occluded sites in causing corrosion and the Charybdis of overselecting an alloy composition and incurring excess costs. A model seeks to capture the relevant properties of a system and make predictions about its future behavior. It is this uncertainty about the durability of metals in the presence of crevices which makes the study of localized corrosion of such great interest. It has been a long-held goal of crevice corrosion modeling to produce codes which are accurate enough to screen proposed material/environment/geometry combinations for incompatibilities and life-span. Beyond the concrete goals of material selection. Constructing a model is a process in abstraction. In that sense. If models based on the CCS or IR* theories for the initiation of crevice corrosion fail to predict some . A model that cannot anticipate future occurrences has failed to capture some of the pertinent details of the subject under study. crevice corrosion is an important form of attack. Occluded site geometries allow conditions that are significantly more aggressive than the bulk to form and this can destroy materials which would otherwise be virtually immune to a particular environment.16 Chapter 2: Background OVERVIEW As was seen in Chapter 1. modeling crevice corrosion is a good vehicle for evaluating the theories that have been developed to account for the phenomenon. model development serves several largely scientific aims.

In a computer. then there are either problems in the implementation of the model or the theory is lacking in some regard. Corrosion rate. such as ui and Di for chemical species. Instrumenting a crevice or crack currently has strong restrictions on the number and types of sensors that can be inserted into such a small geometry.as the anion component of the supporting electrolyte to reduce the diffusion potential can have significant effects on the behavior of the rest of the system since Clis known to be an aggressive anion. . each of these variables can be adjusted at will and independently. A problem in physically testing the relative importance of different factors on crevice corrosion is that the characteristics of the components. Another area where models can excel is in collecting data with more resolution than can be done physically. The problem of intermediate attack in crevice corrosion which is discussed in Chapter 5 highlights one area where the current theories fall short. destroying the process they were intended to monitor![11] The final area where models can exceed physical systems is in long-duration testing. A working model of crevice corrosion can also serve lesser purposes than acting as an arbiter of a particular theory’s aptness. Sensors have finite size and cost.17 aspect of the attack. validated experimentally. cannot be changed independently.[12] There is the additional complication that the sensors may interact with the corrosion event. A good model. This allows the individual effects of model parameters to be separated out. hydronium activity and pitting potential are all aspects of crevicing behavior which are strongly affected by the concentration of chloride. VLSI fabrication techniques hold promise is easng those limits somewhat. Substituting SO4-2 for Cl. can perform “experiments” that cannot be done in practice.

potential is the determining factor.CREVICER. For electrons. The rate at which dissolution occurs is a kinetic phenomenon. It is only of the slowest of projects that can afford to wait for 20-40 years to check the corrosion resistance of the design.[1719] This chapter addresses the background necessary to preface the later discussion of the particular code developed for this dissertation . It differs in that electron transfer is of primary importance. temperature and any barrier layers that may be present on the surface. Metal dissolution is a good example of an electrochemical reaction. The occurrence or nonoccurrence of such processes is determined by the thermodynamic states of the reactants defined by the species involved and their activity. Neutral metal atoms must be stripped of electrons to become soluble in water. For the chemical species the activity is related to concentration. The problem of nuclear waste disposal requires designers to take a millenial view of the life of the storage containers.18 For most large engineering structures it is impractical for the evaluation stage to last as long as the design life of the building or vehicle. In corrosion terms thermodynamics determines immunity and . the theory and practice of modeling those theories and conclude by reviewing the relevant literature on crevice corrosion modeling and mechanisms. The four subsequent sections address basic electrochemisty. Electrochemistry shares with its parent field of chemistry an interest in the equilibrium states of reactions and the kinetics that control the approach to those values. Some factors which affect the net rate of a reaction are the driving force. the main theories of crevice corrosion.

Section 2. both in the work of this thesis and in the review of previous researchers’ efforts. Crevice corrosion occurs when an occluded site produces conditions in an environment which is otherwise benign that attack the underlying metal. . The CCS model assigns primary importance to chemistry changes in the occluded site. Such simplifications are determined in part by the method of solution used. Section 2. Once the rough framework for electrochemistry is developed a summary of the basic theories of crevice corrosion can be presented. in its currently accepted form. section 2. In order to solve the governing equations a number of approximations must be made.3 provides the basis for all of the later discussion of crevice corrosion modeling. A competing theory. Crevice corrosion modeling is the nuts and bolts of implementing the theories presented in section 2.19 kinetics determines corrosion rate. the Critical Crevice Solution (CCS) model.1 provides a grounding in the essentials of electrochemistry from a corrosion standpoint. It is organized according to the types of models and the simplifications used in their solution. In order to effectively model crevice corrosion not only must the correct governing equations be used but the assumptions and limitations must be understood as well.2 goes into greater detail on these theories and their implications. the IR* model applies to active/passive metals and assigns primary importance to potential in controlling the rate and location of attack. Two major theories of crevice corrosion have gained credence over the years.3. The first is the Acid Hydrolysis / Fontana and Greene model or. Finally. Section 2.4 is a review of the literature on modeling crevice corrosion.

It covers the basic terminology of electrochemical reactions.1 Electrochemical Reactions Electrochemical reactions involve electron transfer. the thermodynamics and kinetics of reactions. 2. This section illustrates the basics of electrochemistry that are needed for use in corrosion modeling. Corrosion in turn is a subset of electrochemistry because it is concerned with elemental metals that must be ionized before they can become soluble or precipitate into metal oxides. The electrons freed in the dissolution process reduce H+ to form hydrogen gas. hydroxides or other compounds. Me % zHCl X MeClz % z H 2 2 (1) Where: z is the number of electrons transferred Each metal atom loses z electrons.1 Basic Electrochemistry Electrochemistry is essentially chemistry with a focus on electron transfer.1. The corrosion process is the destruction of the elemental metal. polarization curves. such as shown in Equation 1 neither generates nor .20 2. how groups of reactions operate in concert on an interface and finally provides some orientation on the usual representations of kinetic data. The resulting cation joins with chloride ions to form a metal salt. A full electrochemical reaction. An example would be the oxidation of a metal in hydrochloric acid shown below.

H3O+) are always available in solution because of the self-disassociation of water. These atoms then combine chemically to form hydrogen gas. there is always a ready supply of materials for this reaction. Protons (in the form of hydronium. 2 H % % 2 e & X H2 (3) In the HER protons are paired with electrons to form atomic hydrogen. On a freely corroding surface the supply of electrons consumed and generated must exactly balance. The HER can occur in any aqueous system. 2 H2 O % O2 % 4 e & X 4 OH & (4) A single molecule of oxygen is combined with two water molecules and four electrons . Anodic half-cell reactions free electrons. Therefore. cathodic ones consume them.21 consumes electrons. The ORR can only occur in aqueous solution in the presence of oxygen. Consuming protons via the HER has the effect of raising the pH of the solution. A simple example of anodic halfcell reaction is shown below. Me X Me z% % ze & (2) It is convenient to express the rate of this reaction as a current density since there is a linear correspondence between the flux of ions and the flux of electrons. Two common cathodic reactions are the hydrogen evolution reaction (HER) and the oxygen reduction reaction (ORR). It can be viewed as consisting of two half-cell reactions. Water molecules lyze into hydronium and hydroxyl.

22 to produce four negatively charged hydroxyls.2 Thermodynamics of Electrochemical Reactions The direction in which an electrochemical reaction proceeds spontaneously is determined by thermodynamics. Because of this. A representative chemical reaction can be written as below: aA X bB % cC (5) Where: A. The following discussion is based on Newman[21] and illustrates the reasons why potential and chemical concentration are needed in modeling crevice corrosion. This reaction also raises the pH of the solution by generating hydroxyls. the supply of oxygen at an interface is easily depleted and the reaction can become limited by the mass transport of oxygen to the surface. 2.1.b.[20]. A reaction goes in the direction that minimizes its Gibbs Free Energy.C are the reacting species a.B. It solubility is only 8 ppm. ) G' j <iG i i ' bG B % cG C & aG A (6) .c are the respective stoichiometric coefficients The change in Gibbs Free Energy for the above reaction can be found by using the stoichiometric coefficients and the molar Gibbs free energies of the individual species. Oxygen is only sparing soluble in water at room temperature and pressure.

The chemical potential depends on the species and its activity as shown in the following equation. of a pure species is identical to its molar Gibbs free energy[22]. the molar Gibbs Free Energy of a species depends strongly on the species’ concentration.23 Where: ∆G νi Gi is the total change in Gibbs free energy [j/mol] is the stoichiometric coefficient for species i [unitless] is the molar Gibbs free energy of species i [J/mol] The value of ∆G determines the direction that the reaction proceeds in.1. The reason that a given reaction will go in different directions in different situations is that Gi is not a constant. In addition to being a function of temperature and pressure. If the change in Gibbs Free Energy is positive the reaction proceeds to the left. 2. µi ' µi % RT ln(ai) ' µi %RT ln((i C i) 0 0 (7) Where: µi is the chemical potential of species i [J/mol] .. µi . It has a functional dependency on the thermodynamic state. i.1 Thermodynamic Effects of Concentration The chemical potential.2. If it is negative.e. A will be destroyed to create B and C. B and C will be consumed to generate A. the opposite will happen.

The previous discussion dealt only with reactions between chemical species. determined by the species involved. the concentrations of the species CA . CB . Because the stoichiometric coefficients and the chemical potentials in the standard state are fixed. Their availability is determined by the potential and this is discussed in the next subsection. we can write the change in Gibbs free energy in Equation 6 as: ) G ' b µB % b RT ln(C B ) % c µC % c RT ln(C C) & a µA % a RT ln(C A ) ' 0 b µB 0 0 0 % 0 c µC & 0 a µA % RTln C B @C C CA a b c (8) The change in Gibbs free energy has the form of a constant. .24 µi0 is the chemical potential of species i in the standard state [J/mol] R T γi Ci is the universal gas constant [J/mol-K] is the absolute temperature [K] is the activity coefficient of species i [m3/mol] is the concentration of species i [mol/m3] Assuming for simplicity in this illustration that γi = 1 and using Equation 7. plus a variable portion that depends on the concentrations. In electrochemical reactions electrons are transferred. and CC determine the direction in which the reaction will proceed.

25 2. They can be treated as a chemical species if their chemical potential is written as -zFE[23] µe & ' &z F E (9) Where: µez is the molar Gibbs free energy of the electrons [J/mol] is the number of electrons transferred in the reaction [eq/mol] F E is Faraday’s constant 96.487 [C/eq] is the potential [V] For the simple electrochemical dissolution reaction in Equation 2 the change in G would be : ) G ' µMe %z & zFE & µMe (10) Where: ∆G is the change in Gibb’s Free Energy [J/mol] µMe+z is the chemical potential of the metal cation [J/mol] E µMe is the potential across the solid/liquid interface [V] is the chemical potential of the solid metal [J/mol] .2 Thermodynamic Effects of Potential Electrons are active participants in electrochemical reactions.2.1.

depends in part on the concentration of ions in solution as shown in the previous subsection. µMe . 0 ' µMe %z % RT ln(CMe %z) & zFE 0 & µMe & RT ln(Cm e) 0 0 (11) This equation can be solved to express the reversible potential for a reaction in terms of the thermodynamic constant for the species involved and. The chemical potential of the reduced metal solid phase. their concentrations. This is called the Nernst Equation. This potential is called the reversible potential and is denoted as E0. assuming that the activity coefficients are uniformly one. µMe %z & µMe zF 0 0 E ' 0 % C %z RT ln Me zF CMe (12) Where: E0 is the reversible potential [V] . It occurs where the change in Gibbs free energy is zero. µMe %z . is a constant since the activity for solid products is always unity.26 The chemical potential of the metal cation. One potential which is of particular interest is the one at which the reaction is at equilibrium. This factor is easily controlled and determines the direction in which the reaction proceeds. The availability of electrons for the reaction is controlled by the potential at which the reaction occurs.

3 Half-cell Kinetics Kinetics determine the rate at which a reaction occurs. 2.1. the equations have been modified for clarity in this context and notation.3. 2. From an examination of Equations 11 and 12 it is apparent that at potentials below E0 the cathodic. such as Equation 2. Thermodynamics can only make statements about the direction in which a reaction will occur. mass transfer control. has two rate constants. One affects the reactions in the forward direction. That discussion is the domain of kinetics. Only half-cell reactions have reversible potentials. It says nothing about the rate at which a reaction occurs.1. This rate can either be controlled by the energy available to drive electron transfer. or electron-consuming direction is favored and that at potentials above E0 the anodic or electron-freeing direction is preferred.1 Activation Control An electrochemical reaction. The following section is based on Bard and Faulkner[24]. When electrons are transferred in a full-cell reaction irreversible work is performed.27 The reversible potential for any half-cell electrochemical reaction can be can be calculated from a suitably modified version of Equation 12. the other. activation control. the reverse direction. or the rate at which reactants can either arrive at or leave from the interface. This is shown in the .

kf Me W Me z% % ze & kb Where: kf (13) is the rate constant for the heterogeneous forward reaction [m/s] kb is the rate constant for the heterogeneous back reaction [m/s] The net rate at which a reaction occurs is the difference in the rates of metal oxidation and reduction. These rates are simply the concentrations of the species times the probability per unit time of the reaction occurring. Ian zFA Ica zFA v f ' k fCMe ' (14) v b ' k b CMe z% ' (15) Where: vf is the velocity of the forward heterogeneous reaction [mol/m2-s] vb is the velocity of the backward heterogeneous reaction .28 equation below.

The Gibbs free energies of the reduced metal atom and the oxidized metal ion can be shown as a function of the reaction coordinate. Likewise the barrier to go from the oxidized to the reduced states has a barrier height of ∆G0c.29 [mol/m2-s] Ian Ica is the anodic current [A] is the cathodic current [A] The rate constants kf. The energy barrier to go from the Me to the Me+z + ze. High barriers can only be crossed by the most energetic of atoms and thus act to slow the rate of the reaction. The laws of thermodynamics discussed in the last section determine the Gibbs free energies of the endpoints of the reaction coordinates and thus the direction in which the reaction will occur. To go from one state to the other an atom must acquire sufficient energy to jump surmount the energy barrier.1.state has a height of ∆G0a. This increases the energy barrier going from the oxidized to the reduced states and lowers the barrier going from the reduced to the oxidized states.3(a). The shape of the curves between those points affects only the rate at which equilibrium will be approached. . this affects the kinetics by changing the heights of the kinetic barriers. This is shown in Figure 2.and kb can be deduced from an examination of free energy curves. In addition to changing the thermodynamic equilibrium between the two states. Applying a positive potential decreases the availability of electrons and lowers the energy of the oxidized states. Applying a potential to the reaction changes the availability of electrons and shifts the Gibbs free energy curve of the oxidized states.

3(a). the increase in the energy barrier for the reaction going in the cathodic direction.30 The magnitude of the decrease in the energy barrier for the reaction in the anodic direction can be calculated by the following equation as shown in Figure 2.1. )G a ' )G0a & (1&")zFE ( ( (16) Where: ∆Ga* is the Gibbs free energy of activation for the anodic reaction [J/mol] ∆G0a* is the standard Gibbs free energy of activation for the anodic process [J/mol] α z F E is the symmetry factor [unitless] is the number of electrons transferred [eq/mol] is Faraday’s constant [C/eq] is the applied interfacial potential [V] Likewise. )Gc ' )G0c % "zFE ( ( (17) Where: ∆Gc* is the Gibbs free energy of activation for the cathodic .

)G a RT ( & & )G0a RT ( k f ' A fe ' A fe e (1&")zFE RT (18) & )G c RT ( & )G0c RT ( k b ' Abe ' Abe e &"zFE RT (19) Where: kf kb is the forward rate constant [m/s] is the backward rate constant [m/s] . For most reactions it lies between 0. If the intersection of the curves was symmetrical.7[24]. then the value for α would be 0.5.3 to 0. In order to convert the barrier heights into reaction rates an Arrhenius form must be assumed for the rate constants as shown in the equations below.31 reaction [J/mol] ∆G0c* is the standard Gibbs free energy of activation for the cathodic reaction [J/mol] The symmetry factor α apportions zFE between reducing the barrier for the reaction in the anodic direction and increasing it going in the cathodic direction. Alternately. for a negative E it would apportion the zFE between increasing the height of the energy barrier for the anodic reaction and decreasing for the cathodic reaction.

We can define a reference potential E0 at which the forward and backward reactions occur at equal rates when the concentrations of the reactants are equal. there is a hidden problem in that E as it appears in this equation is not referenced to any standard state. Ab are the frequency factors for the forward and back reactions [m/s] E R T is the interfacial potential for the reaction [V] is the Universal gas constant 8. (1&")zFE RT kf ' 0 kf e (20) kb ' Where: kf0 kb0 0 kb e &"zFE RT (21) is the heterogeneous rate constant for oxidation [m/s] is the heterogeneous rate constant for reduction [m/s] While this form appears to be acceptable. These reaction rates are defined as the standard rate constant k0. To get around this problem a standard rate constant must be defined. The form for the rate constants can be simplified to a constant and a single exponential. .314 [J/mol-K] is the absolute temperature [K] It is only the second exponential term in each equation that is potential dependent.32 Af.

33 (1&")zFE 0 RT &"zFE 0 RT k 0 ' 0 kf e ' 0 kb e (22) Where: E0 k0 is the reversible potential [V] is the standard rate constant These terms can be substituted into equations 18 and 19 to yield the following final forms for the forward and backward rate constants. (1&")zF(E&E 0) RT kf ' k e 0 (23) kb ' k e 0 &"zF(E&E 0) RT (24) .

i0.1 Butler-Volmer Equation The Butler-Volmer Equation relates the net current to the overpotential and groups the various physical constants into two: the symmetry factor. so that when the potential is . and the exchange current density.1. α. The first step is to define an equilibrium potential. (1&")zF(E&E 0) RT &"zF(E&E 0) RT I ' zFAk 0 CMee & CMe z%e (26) The utility of this equation is limited by the need to use the concentrations of the oxidized and the reduced species at the surface. To put it into truly useful form. This derivation starts with Equations 14 and 15 and a statement that the net current is the difference of the anodic and cathodic currents. Eeq. a series of substitutions must be made.1.3.34 2. I ' Ia & Ic ' zFA k fCMe & k b CMe %z (25) Where: I Ia Ic is the net current [A] is the anodic current [A] is the cathodic current [A] Substituting Equations 23 and 24 into Equation 25 and grouping like terms yields the following.

Faraday’s constant. the exchange current density. the temperature. the net current is equal to zero. the reversible potential and the previously defined equilibrium potential. When the net current is zero. Their magnitude is defined as i0. both Ia and Ic have finite values. Their ratio can be expressed in terms of the number of electrons transferred. zF(E eq&E 0) CMe z% CMe ' e RT (28) Even though the net current at E = Eeq is zero. &"zF(E eq&E 0) i0 ' Ia A ' Ic A ' zFk 0 CMe z%e RT (29) Where: .35 equal to Eeq. &"zF(E eq&E 0) (1&")zF(E eq&E 0) CMe z% e RT ' CMe e RT (27) Where: Eeq is the equilibrium potential [V] The only unknowns in this equation are the concentrations of the reacting species.. CMez+ and CMe. Equation 26 allows us to make the following relationship between the concentrations of the various species. the gas constant.

36 i0 is the exchange current density [A/m2] From Equation 29 we can express the exponential in terms of the ratio of the reactant concentrations raised to the -α power. The purpose of this derivation was to show that the current is a strong function of potential. At higher overpotentials the appropriate current begins to dominate and the net current asymptotically approaches an exponential dependence on overpotential. Substituting Equations 28 into 29 yields the following expression for the exchange current density. the values of the anodic and cathodic currents are nearly equal and an expansion of the exponential terms shows that the current potential relationship is nearly linear. This is generally called the Butler-Volmer equation. E . Ic A &" i0 ' ' zFk 0 CMe z%C Me 1&" (30) Equation 25 can now be written in terms of current density. (1&")zF0 RT &"zF0 RT i ' i0 e & e (31) Where: η is the overpotential. This is seen in the exponential terms in Equation .E0 [V] At low overpotentials. values of E within tens of millivolts of E0. especially at higher overpotentials.

Either a lack of reactants or a surfeit of products can impede a reaction and slow its rate. This assumption is discussed in the next sub-section. Oxides and other layers may be deposited or removed.37 31. i0. the character of the surface is potential dependent. Typically.4. Equation 32 below is taken from Bard and Faulkner[24]. The trace of the relationship is called a polarization curve and is discussed in subsection 2. 2. They assume that the concentrations of the reactants are constant and are neither depleted nor enriched no matter the reaction rate. These dependencies must be accounted for in any model of crevice corrosion. The net current also depends on the concentrations of the reactants. The exponential dependence of current on potential poses some special mathematical difficulties as discussed in subection 4. . the theory assumes that the surface remains the same at all potentials.2. That functionality is incorporated into the exchange current density.2 Mass Transfer Control As a reaction proceeds it consumes reactants and generates products. The magnitude of this slowing can be found by using the limiting current densities for both the anodic and cathodic reactions. Butler-Volmer kinetics are the simplest theory used to represent reactions on surfaces.4.3. In reality. In addition to ignoring the mass transport of the reacting species. such effects are measured rather than modeled. A complete derivation is given there.1. The current-potential relationship of a metal in an environment can be measured directly.1.

the transport coefficients.38 i ' i0 i il.4 Polarization Curves A polarization curves shows the relationship between net current and potential.c &"zF0 RT 1 & e & 1 & i il. This presentation may seem slightly odd as potential is usually thought of as the independent variable.1.4(a) shows a polarization curve of the Butler-Volmer Kinetics developed in . 2. this behavior is plotted on a semi-logarithmic plot with potential on the y-axis and the magnitude of the net current on the logarithmic scale. This rate at which ions can be transferred depends on the surface and bulk concentrations. Typically.1.a e &"zF0 RT (32) Where: il. and for charged species any assisting or delaying potential field.a is the the limiting current density for the anodic reaction [A/m2] When a reaction is mass transport limited the reaction rate is restricted by the speed with which ions can be moved either from or to the interface.c is the the limiting current density for the cathodic reaction [A/m2] il. Figure 2. but it is a convention of electrochemistry to plot the data in this fashion.

At larger overpotentials the magnitude of the current asymptotically approaches either the anodic or cathodic halfcell current. If such a source or sink is not available. then the potential of the surface is determined by the conservation of charge. the lack of a counter electrode means no net reaction can occur. a freely corroding surface will take on the reversible potential. z.4(b). Unfortunately. In systems such as reference electrodes where only single reaction is present. The dashed line shows the magnitude of the current caused by the cathodic metalplating reaction. The construction of a polarization curve for this case is shown in Figure 2.4(a). One reaction is the metal dissolution/plating reaction developed earlier. At low overpotentials the net current is small.1. The . The magnitude of the net current is the difference between the anodic and cathodic currents. When a polarization curve is measured the potentiostat (via the counter electrode) acts to either supply or remove electrons from the surface under study. most surfaces however have two or more electrochemical reactions occurring on them simultaneously and they can corrode without the presence of a separate counter electrode.1. Notes that this implies that on an isolated surface where only a single electrochemical reaction is possible.39 Equation 31. α. A corroding metal has two or more electrochemical reactions occurring on it simultaneously. For the purposes of discussion the metal surface has two purely Tafel reactions occurring on it. Such a system was illustrated as in Figure 2. and the number of electrons exchanged. The magnitude is plotted since negative currents cannot be shown on a logarithmic axis. The dotted line represents the current due to the anodic reaction of metal dissolution. The slope of the half-cell currents is determined by the symmetry factor.

Me/Me+z. such as reference electrodes. The potential at which this occurs is the corrosion potential. When the two reactions occur on the same surface the potential must reach a value where the total number of electrons consumed is equal to the number generated. An important distinction is that whereas both surfaces with single electrochemical reactions. At certain potentials films can form on a corroding surface. if the HER were the only reaction the potential of the surface would be E0. will reach a free potential where the net current is zero. The Tafel reactions that have been described previously cannot be used to describe all electrochemical reactions. the theory ignores the effects of changes in the surface state. Likewise. at zero current both half-cell reactions can be proceeding at very high. the net reaction rates are very different in the two cases. . they can greatly impede the dissolution reaction or the cathodic reactions required to support it. although metal sulfides or salts can also form and have similar effects. the potential of the free surface would be the reversible potential of that reaction E0. If only the metal dissolution reaction were considered. Typically these films are metal oxides. It is so named because it usually occurs in the cathodic direction and converts protons from the self-hydrolysis of water into atomic hydrogen. and the more typical surfaces with multiple reactions. For surfaces with more than one reaction.40 other reaction is the Hydrogen Evolution Reaction (HER) which was first presented in Equation 3. yet equal. If such films produce a continuous layer over the surface. In addition to ignoring the effects of mass transport as shown in Equation 32. no net current means no net reaction. icorr. The rate of each half-cell reaction at this potential is the corrosion current. rates. For a surface with a single reaction. Ecorr.H/H+.

1. .4(c) shows a polarization curve for an active/passive metal. This destabilization can happen either locally and cause pitting or uniformly and cause transpassive behavior. This lack of potential dependence continues until the overpotential becomes so great that it destabilizes the film. and actually decrease the current coming from the surface. Further increases in potential increase the area of this film. In the former case the critical potential is called Epit. Ecorr. This effect is counter-intuitive. A model of crevice corrosion must have some method of representing the possible polarization curves. This effect is due solely to the kinetic barrier imposed by the growing oxide film. When the Flade potential.41 Figure 2. is reached. and surface state. At potentials between Epp and Eflade an increase in driving force causes a decrease in reaction rate. The various techniques that can be used are discussed in section 2. Eflade. chemistry. This grounding in the influences of potential and chemistry on reaction rates is a necessary prelude to a discussion of the theories on the controlling factors of crevice corrosion.3. the dissolution rate increases. Summary This section has covered the basics of thermodynamics and kinetics as applied to corrosion. At the primary passivation potential. the film covers the entire surface and further increases in potential have no effect on the current. As the metal is polarized above its corrosion potential. Analytic representations of the relationship are only possible for the simplest cases. Epp. a protective metal oxide begins to form. in the latter Etp. The current generated at a metal/solution interface is a complicated function of potential.

.42 Crevice corrosion can be viewed as an autocatalytic phenomenon. wrong) geometry for a particular material/environment combination will spontaneously generate and sustain the conditions for a dramatic increase in corrosion rate. The right (or depending on your point of view. The next section discusses the various theories as to why and how crevice corrosion occurs.

The aggressive geometry is often called an occluded site because it acts to restrict a volume of solution’s access to the bulk environment. This acid is more aggressive than the bulk electrolyte and causes an increase in .the Critical Crevice Solution model. The effects of potential on corrosion rate are ignored. It was later refined and quantified by Oldfield and Sutton who gave the theory the name by which is usually referred . The theory was first proposed by Fontana & Greene[3] to explain the crevice corrosion of stainless steels. 2.1 CCS Model The CCS model for the initiation of crevice corrosion assumes that the paramount function of the crevice former is to act as a barrier to chemical flux.46 2. and hydrolyze to form a hydrochloric acid solution.2 Theories of Crevice Corrosion The simplest definition of crevice corrosion is that the presence of an occluded geometry causes rapid corrosion of a material in an environment to which it would otherwise be relatively immune.2. There are two main theories to explain how the conditions change to cause crevice corrosion: the Critical Crevice Solution (CCS) and Critical Potential Drop (IR*) models. They differ in assigning paramount importance to changes within the crevice in chemistry and interfacial potential respectively. Some characteristic of the occluded site allows the conditions there to become progressively more damaging to the underlying metal. attract rapidly moving chloride ions. The basic gist of the model is that slowly diffusing metal cations accumulate in the occluded site.

47 corrosion rate and in turn more hydrolysis.1 and section 5. This effect is only visible because the cathodic reactions are occurring elsewhere. Fontana and Greene represented the process as occurring four steps.2.3.2. This separation is vital because the common cathodic reactions or HER and ORR generate alkalinity as was shown in section 2.3. This positive charge .1. The occluded site places a large diffusion path between the crevice depths and the bulk environment. Oxygen is only sparingly soluble in room temperature water (8 ppm) and the original charge in the crevice is rapidly used up. If cathodic reactions occurred in the crevice they would offset the acid generation that is step 2 in the process. It is not replenished because any O2 molecules which start to diffuse down the long diffusion path of the occluded site are consumed near the mouth. This chemical reaction has the effect of lowering the pH. 2) Hydrolysis: Metal cations have a tendency to form metal hydroxides as will be discussed in subsection 2. 1) Deoxygenation: The free oxygen within the occluded site is consumed.3. The process feeds on itself and destroys the underlying substrate. The net effect is that the cathodic reactions to support dissolution in the crevice occur outside the crevice because it is easier to move electrons through the metal substrate than ions through solution. Because of this barrier the metal cations accumulate and the drop in pH is concomitantly greater. 3) Chloride Ingress: Because only anodic reactions are occurring in the crevice only positive charge is being injected into solution there.

the conditions for each of the reference . the circle. square. Part (a) is a schematic of the crevice.5.2. The pH distribution inside the crevice is shown in part (b). It is a one-dimensional crevice and is open at one end. Three points. Since the CCS theory ignores the effect of potential. Part (c) shows the polarization curves for the metal at pH’s 3. the only chemical parameter considered in this case is pH. This leads in turn to more hydrolysis and more chloride and the process takes off in an autocatalytic manner. This process is illustrated in Figure 2.48 generation must be matched by charge transport. Figure 2. Another way of viewing the CCS process is to visualize how the conditions change inside a crevice and how that interacts with the relevant polarization curves. Either positive charge must flow out of the crevice or negative current must flow into it.1(a). The pH drops continuously from the mouth to the base. The points marked there correspond with the positions in (a).1(b) helps in this process. acting along with the increased acidity to increase the corrosion rate. Chloride acts to destabilize the passive film.2. The effects of changes in solution chemistry appear in the polarization curve of a material in that environment. 4) Autocatalytic: The acid generation by metal hydrolysis and rise in chloride levels to balance the charge act to raise the corrosion rate. and triangle are marked at increasing distances from the mouth. For the sake of simplicity. Chloride ions will flow into the crevice to balance the positive charge. and 7.

From the information in (a). (b) and (c) the current as a function of position can be calculated and is displayed in part (d). The initiation time arises from the amount of dissolution that must occur before a sufficiently aggressive solution is achieved.1. A stainless steel’s susceptibility can be found by comparing the aggressiveness of the solution a metal salt of the alloy makes and the metals resistance to acidic chloride environments. Current flow through solution will cause a potential drop. it should be noted that these conditions are actually producing an exponentially increasing current since the current axis in (d) is logarithmic. shows that the chemical effect appears only in the pre-exponential whereas the potential appears in the exponent itself. The principal problem with the CCS model is that ignores the effects of potential on generation. The current increases continuously from the mouth to the base. 2.3. .2. although of limited applicability. Potential has a large effect on reaction rate.49 points occur at the crevice potential Ecrev on the appropriate polarization curve. The derivation of the Butler-Volmer kinetics given in subsection 2. Indeed.1. but as the crevice initiates the current (and thus the potential drop) will increase by several orders of magnitude. Aqueous solutions are resistive.2. on the competing IR* theory of crevice corrosion.1. The implications of this are discussed in depth in the next subsection. If a metal is resistant to a saturated solution of its own salt. then it will not corrode according to the CCS model. At small current densities it may be appropriate to ignore this ohmic potential. CCS’s strengths are that it explains the relative susceptibilities of various stainless steel alloys to crevice corrosion and it accounts for the initiation time.

The potential field of a crevice held anodically will speed the egress of positive cations as well as the ingress of negative cations. .50 In addition to affecting the rate of the anodic dissolution reaction. A final limitation on the CCS model is that ignoring potential not only affects generation within crevice. cathodic reactions are also influenced by overpotential. lowering the metal potential inside the crevice can also speed the rate of the cathodic reactions. Decreases in positive overpotentials cause exponential increases in cathodic current. While it requires a special set of circumstances above and beyond potential drop to actually cause any portion of a crevice to be polarized cathodically. it affects the mass transport of the charged species. Evidence of cathodic reactions occurring inside crevices was found by Pickering and Frankenthal[25] where they observed bubbles of hydrogen gas being generated at the base of crevices.

The effect of this resulting potential difference depends on the nature of the polarization curve for the material/environment system. It was put into its generally recognized form by Pickering[10] The steps of the IR* process for the initiation of crevice corrosion on active/passive metals are shown in Figure 2. For a metal that exhibits Tafel behavior. 1) Separation of Anodic and Cathodic Sites: This can be caused by oxygen depletion inside the crevice or if the entire surface is being polarized anodically by another electrode. Until this occurs no there is no net current flowing from any surface since the anodic and cathodic reactions are everywhere equal.2(a). The theory ignores the effects of the accumulation of chemical products within the crevice. such as the one shown in Figure 2.2.2 IR* Model The IR* model for the initiation of crevice corrosion assumes that the paramount function of the crevice former is to act as a barrier to electrical flux. 2) Flow of Anodic Current from Crevice: Positive current flowing into solution from the metal surfaces inside the crevice must cross the electrically resistive solution. 3) Resulting Potential Difference: The net current flow over the electrical resistance causes a potential difference to arise between the crevice and the cathodic sites on the boldly exposed surface.2. potential drop is always protective because it lowers the driving force for dissolution. that is held in its passive region .1. For an active/passive metal.53 2.4(c).

Three points. No importance should be attached to the depicted slopes of the potential distribution. These are shown in part (d). and triangle mark increasing distances from the mouth. The points marked there correspond with the positions in (a).54 the effects of potential drop can be disastrous. Changes in crevice geometry will have a tendency to drive the active site deeper by widening the crevice as well as a small offsetting tendency to draw the site to the mouth by increasing the area available for corrosion. It is a onedimensional crevice and is open at one end. From the potentials of part (b) the current densities at each point an be found. The only statement that can be made is that the potential will decrease monotonically. This is illustrated in Figure 2.2. square. The electrolyte is assumed to remain of constant composition. The resulting potential distribution within the crevice is shown in part (b). Increasing the solute concentration of the electrolyte will raise the conductivity and push the active site deeper into the crevice. Current flow from the sources within the crevice causes potential drop. Obviously they depend on the currents generated as well as the intra-crevice solution resistances. the circle. The critical amount of potential drop which must occur to initiate crevice corrosion is the difference between the potential at the mouth and the Flade potential. The position within the crevice at which the critical IR* is achieved depends on the crevice geometry and solution conductivity.2(b) Part (a) is a schematic of the crevice. This difference is called IR* and it lends its name to the entire theory. Both of these parameters change during the course of a crevicing event. An active/passive polarization curve for this material shown in part (c). .

The strength of the IR* model is that it can predict the location and morphology of attack and has been shown to operate in systems where there is no possibility of significant changes in composition[5]. . The weaknesses of the model are that it can only be operative for active-passive metals and that it cannot rationalize the observed incubation times. The IR* model is able to predict IA as will be discussed in subsection 5.2.55 IR depends on the total amount of current.2. so a larger geometric area will produce more current and thus pull the active site forward. Potential distributions should be established nearly instantaneously because the propagation of an electric field in any reasonable dielectric is very rapid.

It is a natural development to attempt to represent these theories in terms of . If CCS. Finally. Various changes in experimental parameters will have differential effects if one or the other of the theories is dominant.3 Comparison of Models The CCS and IR* models stress the importance of different aspects of crevice corrosion. The principal differences between the models are that IR* is limited to only activepassive systems and that CCS can explain the presence of incubation times. chemical or electrical. Another change which would affect the crevice resistance would be features that changed the crevice profile such as precipitation or subcrevices. Reducing the crevice gap in such a manner would tend to increase the aggressiveness according to both the IR* and the CCS theories.2. This technique was used by Pickering[5] to prove that the CCS was not operative in the exemplar crevices he used to prove the applicability of the IR* mechanism. in the crevice environment. is dominant then independently changing the solution conductivity should have no effect.58 2. A supporting electrolyte will have a tendency to shift the location of attack deeper into the crevice or prevent it entirely if IR* is dominant. crevices corroding according to the CCS model can be differentially affected in a buffering agent is used. which assumes no potential variations within a crevice. Increasing the isolation of the crevice will either increase the metal ion content in the crevice or reduce the potential. Both of the dominant models to explain crevice corrosion make qualitative predictions about changes. The equations governing the transport of chemical species and electrical charge through aqueous solutions have been studied since Faraday.

Additionally. The goal is always a mathematical model which accurately represents the physical situation and is useful in predicting the likelihood. and time of attack for use as a design tool. these models can be useful in an abstract sense for evaluating the theories about crevice corrosion themselves. location.59 models. since a functioning model tends to suggest the accuracy of the underlying assessment of the corrosion process .

Section 2.3 summarizes the different types of simplifications which are commonly used in crevice corrosion modeling and explains their individual strengths and weaknesses.4. and the meaning of “potential” in various contexts. These equations are derived from the basic flux equations for chemical and electrical species in aqueous solutions. 2.3 Principles of Modeling Crevice Corrosion The corrosion rate of any material is determined by its chemical environment and electrochemical potential. concludes by discussing the various types of mathematical techniques which are used to solve the equations derived in 2. both in space and time.3.3.60 2. It explains the common use of concentration rather than activity in diffusion equations. examines in depth the factors that affect each term in those equations. Subsection 2. The last subsection. Subsection 2.3. the hydrolysis reactions which are commonly encountered.3 discusses the basic principles that are used to make such predictions.3. provides a compact summary of how those terms are simplified to make the equations tractable and ends with a quick primer on the numerical methods used to solve the problems posed by crevice corrosion.3. . Modeling of crevice corrosion is aimed at understanding and predicting the changes in those factors in the crevice environment.1.2 provides a more in-depth look at the individual terms that go into the equations. Subsection 2. It provides an overview of the equations used in modeling.1 examines the origins and derivations of the commonly encountered governing equations used in modeling crevice corrosion.

The motion of electrons through a light bulb when it is powered is an example of migration. Subsections 2. The motion perfume of molecules through still air is an example of diffusion. each of the three processes can be represented in a similar fashion. Migration: The motion of a charged chemical species under the influence of an electrical field.3 will discuss the assumptions that are implicit in these equations.1. It is useful to go through this process for both the transport of chemical species and the motion of electrical flux.3.1 Chemical Transport Processes Chemical species can be transported by three separate mechanisms: Convection: The motion of a species that is being carried by the bulk flow of the electrolyte.3.1 Governing Equations Commonly Used in Crevice Corrosion Modeling of crevice corrosion is a search to understand and simulate the chemical and electrical changes which occur inside occluded sites. 2. Diffusion: The motion of a chemical species down a gradient in Gibbs Free Energy.3. At their heart. The motion of sand particles along a beach is caused by convection.2 and 2.3.61 2. Initially the focus will be on the commonly encountered forms of the equations. The equations which determine the rate of change of chemical concentration or electrical charge density are both derived from their underlying flux relationships. This .

The flux equation for convection follows directly from Equation 34. Barring other forces. The derivations are based on the class notes for MS 792 .that of the solution as a whole.force ' C i v i.62 similarity is used in deriving the flux relationships for each of the forces.force ˜ (33) Where: 2 ˜ Ji. A flux has magnitude and direction (it is a vector) and is commonly expressed in terms of quantity per area per time. i.[26] The motion of a chemical species is a flux.1. 2.Diffusional Processes in Materials. .force is the flux vector of species i due to force [mol/m -s] Ci is the concentration of species I [mol/m3] v i.force is the velocity vector of species i due to force [m/s] ˜ Simply stated.1.1 Convection Convective transport occurs when a chemical species is “carried along” by a flowing electrolyte. each molecule in a solution will tend to have the same velocity . due to a force is the product of the concentration of species i and the velocity of the species imparted by that force.3. the flux of a species. A general equation for a flux is given below: ˜ Ji.

The cyclical force applied to such cracks alternately opens and closes the site. it is rarely used in modeling.63 ˜ Ji. This ejects any excess solution that was drawn in on the previous application of stress. the only force present to cause bulk fluid flow would be the occurrence of density changes as the crevice solution becomes concentrated in metal ions and neutralizing negative anions. An exception to the above rule is encountered in studies of the crack environment in corrosion fatigue.conv ' C i v ˜ (34) Where: ˜ Ji. When the maximum applied stress is applied the crack flexes and opens to its largest volume. This provides a “crack pumping” mechanism that forces convection[27]. This force is small. Typically. Generally. it is thought that the solution inside of occluded sites will remain stagnant because the extremely small height of a typical crevice and the lack of a significant driving force. . Depending on the magnitude of the stress and the frequency with which it is applied this may be a significant effect. When the stress is removed or reversed the material springs back to its original shape and the crack volume decreases.conv is the flux vector of species i due to convection [mol/m2-s] v ˜ is the velocity vector of the solution [m/s] While convective flow is easy to visualize.

the mobility of a species i is a scalar. For diffusion. the scaling factor is mobility and the driving force is the gradient of chemical potential ~ ~ ˜ v i.diff ' &C i ui Lµi (36) (35) .1. To calculate the velocity due to a force it is convenient to represent the velocity of the species as the product of a driving force and a mobility constant that scales the resulting velocity to the force applied.diff ˜ ~ ~ ui ˜ Lµi is velocity vector for species i due to diffusion [m/s] is the mobility tensor [m2-mol/J-s] is the gradient of chemical potential of species i [J/molm] In general. This movement happens spontaneously.64 2. This allows the flux caused by diffusion to be represented as: ˜ ˜ Ji. ui.diff ' &ui @ Lµi ˜ Where: v i. the mobility is a second rank tensor.3.1. the mobility has no directional dependence. however. In liquids. In other words.2 Diffusion Diffusional transport occurs when a chemical species travels from an area where it has high chemical activity to one where it has low activity.

The velocity of an ion due to migration can be found by dotting the mobility tensor and the force due to migration. .diff ' &Di LC i (37) Where: Di ˜ LC i is the diffusivity of species i [m2/s] is the gradient of concentration of species i [mol/m4] Given the proper set of assumptions. This is shown in subsection 2. That more recognized form is given below and will be used to develop the mass transport equation.1. Equations 35 and 36 are equivalent. such as water or O2 . Neutral species. do not migrate.1. 2.3.1.2.3.diff ui is the flux of species i due to diffusion [mol/m2-s] is the mobility constant for species i [m2-mol/J-s] Equation 36 is not the commonly encountered expression for the diffusive flux of a species.3 Migration Migration occurs when a charged species is propelled by an electric field. ˜ Ji.65 Where: ˜ Ji.

m ig ˜ Where: v i.m ig is the force for migration of species i [J/mol -m] A charge in an electric field experiences a force equal to the magnitude of the charge times the electric field as shown in the equation below. q i ' zi F (40) Where: .66 ~ ~ ˜ v i.m ig ' &ui @ Fi.m ig ˜ ~ ~ ui is velocity vector for species i due to diffusion [m/s] is the mobility tensor [m2-mol/J-s] (38) ˜ Fi.m ig ' qi E (39) Where: qi P E is the charge on species i on a molar basis [C/mol] is the electric field vector [V/m] The charge can be found on a molar basis from the charge number of each species and Faraday’s constant. ˜ P Fi.

As was mentioned previously. (42) .2. When the resulting velocity is used in Equation 33 the flux equation for migration is found. ~ ~ ˜ v i. ui can be used in place of the mobility tensor. E.m ig ' &ui @ ziF LNs ˜ Where: v i. 40 and 41 into 38 and scaling the force caused by migration by the mobility. Thus.ziF LNs . in section 2. The solution potential is defined and differentiated from the electrochemical potential.3.m ig is the velocity of species i due to migration [m/s] ˜ ~ ~ ˜ The mobility factor is again ui and the force is equal to . P ˜ E ' LNs (41) Where: ˜ LNs is the gradient in solution potential [V/m] The velocity imparted to a chemical species can be found by substituting in Equations 39.67 zi F is the charge number for species i [eq/mol] is Faraday’s constant 96. in aqueous solution the mobility of a given species is a constant in all directions. LNs .487 [C/eq] ˜ The electric field is found from the gradient of the solution potential.

and migration represented in Equations 33. 36. are really just separate aspects of one transport process.1.68 ˜ ˜ Ji. the rate of change of concentration for a species with time can be written as below. Since the net flux out of a volume is the negative of the divergence of the flux.3 Conservation of Mass The concentration any species in an infinitesimal volume of solution depends on the net flux of the species into or out of the volume and the generation or consumption of the species in the volume. and 43 are combined to create the mass transport equation.m ig ' &C i zi F u i LNs (43) Where: ˜ Ji. ˜ ˜ ˜ Ji ' C i v & Di LC i & zi F u i C i LNs ˜ (44) It should be noted at this point that the second two terms.3. 2. diffusion. diffusion and migration.m ig is the flux of species i due to migration [mol/m2-s] 2. motion under a gradient of Gibbs Free Energy.1. Separating the effect of the gradient in solution potential from the gradient in concentration is a matter of convenience and custom[21].2 Mass Transport Equation The three transport processes of convection.3. .

69 MC i Mt Where: ˜ ˜ ' &L @ Ji % Ri

(45)

MC i Mt

is the rate of change for the concentration of i with time [mol/m3-s]

3 ˜ ˜ & L @ J is the divergence of the flux of species i [mol/m -s]

Ri

is the rate of generation of species i [mol/m3-s]

Equation 45 can be applied to each of the flux equations for the three transport processes to yield their individual contributions to the rate of change of the concentration of species i. It should be noted that the concentration, Ci, and the transport coefficients, ui, and Di, are all differentiable scalar functions of position. Each has a unique value at any point, but the values may change from point to point. This property is self-evident for the concentration, but is not immediately obvious for the transport coefficients. It is only a common assumption that the transport coefficients are simple constants, unaffected by solution composition. Subsection 2.3.2.2 discusses this assumption and the conditions under which it is appropriate in greater depth. Accounting for the differentiable scalars, mass transport equations can be written for each of the transport processes. For convection:

70 MCi,conv Mt ˜ ' &L @ Ji,conv % Ri ˜ ˜ ' &L @ C iv i % Ri ˜ ˜ ˜ ˜ ' & C i L @ v & v @ LC i % Ri (46)

For diffusion: MCi,diff Mt

˜ ' &L @ Ji,diff % Ri ˜ ˜ ' &L @ &Di LC i % Ri ˜ ˜ ˜ ˜ ' Di L @ LC i % LC i @ LDi % Ri (47)

For migration: MCi,m ig Mt

˜ ' &L @ Ji,m ig % Ri ˜ ˜ ' &L @ &C iziFLNs % Ri ˜ ˜ ˜ ˜ ˜ ˜ ' zi F u i C i L @ LNs % zi F u i LC i @ LNs % zi F C i Lu i @ LNs % Ri (48)

Before the above three equations are combined, one simplification is possible. The continuity equation[21] is a mass conservation equation which expresses the fact that a flowing fluid will not separate and generate voids. Mathematically, it expresses this as that the divergence of the solution velocity of a fluid is equal to zero. Another way of stating the theorem is that there is can be no net outflow of fluid from any point. This expression holds for incompressible fluids.

71 ˜ ˜ L@v ' 0 (49)

This simplification is strictly true, and can be used to produce the unabridged mass transport equation. MC i Mt

˜2 ˜ ˜ ˜2 ' &v @ LC i % Di L C i % LC i @ LDi % zF ui C i L N ˜ ˜ ˜ ˜ ˜ ˜ % zF ui LN @ LC i % z F C i LN @ Lui % Ri

(50)

Several approximations are often used to simplify this equation still further. One relates the LaPlacian of the solution potential to the charge density in solution and the dielectric constant of the fluid. Equation 51 is also called Poisson’s Equation. If the charge density is assumed to be zero, it becomes the LaPlace equation. Del ,

˜2 L Ns ' &

. 0

(51)

Where:
2 ˜2 L Ns is the LaPlacian of the solution potential [V/m ]

ρel ε

is the electric charge density in solution [C/m3] is the dielectric constant of the solution [F/m]

This approximation is discussed more in section 2.3.3.3.3. It is only true in bulk solution. In the double layer, the first several monolayers of solution at an interface, there are large charge separations. Outside of those few hundred angstroms, the approximation holds.

72 The final two simplifications which are possible are to assume that the transport coefficients are constants and therefore their gradients are equal to zero. ˜ LDi ' 0 (52)

˜ Lui ' 0

(53)

A final assumption that is usually invoked in modeling of crevice corrosion is that there is no convection inside the crevice. v ' 0 ˜ (54)

Using the four assumptions of Equations 51, 52, 53, and 54 reduces Equation 50 to the following familiar form. Equation 55 is the governing equation for the accumulation of chemical species within a volume. MC i Mt

˜ ˜ ˜ ' Di L C i % z F u i LNs @ LC i % Ri

2

(55)

The governing equation for the chemical concentration is a second-order partial differential equation. The second order term is due to diffusion, the first order term is due to migration and the zeroeth order term is due to generation. If convection were considered that flux would add an additional first order term. For a system of n species this equation can be applied independently to n-1 of them.

73 The reason it cannot be applied to the nth species as well is discussed at the end of this subsection under the topic of “Charge Neutrality.” Essentially, there is an additional constraint imposed by charge neutrality that reduces the number of degrees of freedom by one. One of the terms that go into this transport equation is the gradient of solution potential. The governing equation used to determine the solution potential field, and thus the gradient, is developed in the next topic.

2.3.1.4 Electrical Transport Processes Electrical charge moves through aqueous solutions by the transport of charged ions. Free electrons, the charge carriers in metals and n-type semiconductors, are not available to carry charge in water. The following derivation is based on the assumption, discussed in section 2.3.2.4.3, that there is no diffusion potential. Without a diffusion potential the solution potential is determined solely by net current flow. Accounting for the effects of diffusion potential would result in a minor reformulation of these equations and add an obscuring layer of complexity. Just as in Equation 45 for the mass transport of chemical species the rate of accumulation of electrical charge equal to the sum of the flux of electrical current out of a volume of solution and the rate of generation of charge in solution. MDel Mt Where:

˜ ˜ ' & L @ Jel % Re

(56)

74 MDel Mt Re is the density of electric charge in solution [C/m3] is the generation rate of electrical charge [C/m3-s]

The electric flux through solution is determined by the electrical conductivity and the electric field. The electric field is the gradient of the solution potential. This is a restatement of Ohm’s Law. ˜ ˜ Jel ' &6 LNs (57)

Where: ˜ Jel is the net electric current density vector in solution [A/m2] κ is the solution conductivity [Ω-m]-1

Electrical charge is not created in solution. It only arises from an electrochemical interface. To find Re which is the rate of introduction of electrical charges into a volume, we must divide the total current flowing into an infinitesimal by its volume. This is illustrated in Figure 2.3.1.4(a) for the general case. The governing equations for the mass transport of electrical charge as well as chemical species assume that generation is occurring evenly throughout the volume. In a crevice all of the charge and many of the chemical species are generated at interfaces. It is a simple procedure of geometry to scale the total flux by the total volume for each infinitesimal. For the simple crevice with one active side shown in Figure 2.3.1.4(a) total flux is the

75 product of the area of the infinitesimal volume and the flux density. j J i ' A @ Ji (58)

Where:

j Ji is the total flux of i into a volume [mol] A is the area of the reacting surface [m2]

For a cylinder, volume is the product of the area of one face and the height. V' A @ h (59)

Where: V is the volume [m3]

Equations 58 and 59 can be used to find the generation rate expressed in term of volume rather than area. A @ Ji A@h Ji h

Ri '

'

(60)

Where: Ri is the generation rate per volume [mol/m3]

This equation shows the effect of height on generation. The generation rate of chemical

76 species on a volume basis is inversely proportional to the height of the crevice. For a crevice of constant reaction rate, halving the average height will result in a doubling of the generation rate. This doubling affects not only the maximum values achieved but the rate at which they are approached. A similar analysis can be performed for electrical current to find the rate of charge generation. Re ' iA i ' hA h

(61)

Where: i A h is the current density across an interface [A/m2] is the corroding surface area [m2] is the height of the volume [m]

Equations 57 and 61 can be substituted into Equation 56 to get MDe Mt i h

˜ ' &6 L Ns %

2

(62)

At steady-state, the rate of change of the charge density is zero and this equation can be used to solve for the solution potential distribution. Since this governing equation is used even for systems where the interfacial current density is zero, it is useful to transfer the h dependence to the terms which are always present. Multiplying both sides by h allows the effects of changes in height on the potential distribution to be accounted for in all cases. This

77 yields the final form for the governing equation for potential distributions. MDe Mt

h

˜2 ' &6 h L Ns & i

(63)

Interestingly, this equation shows one of the pitfalls associated with assuming charge neutrality. Equation 51 shows that the LaPlacian of φ s is proportional to ρe. If the charge density is assumed to be zero, Equation 63 can lead to a contradiction. At steady-state the rate of change of the charge-density is zero. If the charge density is assumed to be zero then Equation 51 states that the LaPlacian of the solution potential is also zero. If two of the terms in Equation 63 are zero, the the third, the current density on the crevice walls, i, must also be zero. Since a steady-state can be reached when i is non-zero, L2 N cannot be always equal to ˜ s zero. As will be discussed later in this subsection, an assertion of charge neutrality is actually applied only to the concentrations of chemical species, not to electrical charge. Insignificant deviations from charge neutrality in terms of species concentrations still allow enough charge density to balance the i term in Equation 63 above.

˜ s ˜ Jel 2 zi u i C i v j zi C i ˜ % Fj i i 2 zi u i C i ˜ j zi Di LC i & F j zi u i C i 2 i i ˜ LNs ' & F 2j i (66) ˜ It is not immediately obvious why Jel is easily available in the general case. This approach is shown here only as a different method of calculating the potential inside a crevice. It was not used in the modeling for this dissertation.1. ˜ ˜ Jel ' F j zi Ji i (64) If the individual flux equations are substituted into Equation 64 the following representation is achieved.1.5 Alternate Approach to Calculating the Electric Field Watson and Postlethwaite[28] used an alternate method to calculate the gradient in φ s.3.3. Different rates of transport . 2 ˜ ˜ ˜ Jel ' F v j zi C i & Fj zi Di LC i & F 2 LNsj zi u i C i ˜ i i i (65) If J ˜ el is known then Equation 65 can be solved for L2 N .6 Charge Neutrality Applying only the governing equations for chemical and electrical flux developed earlier in this subsection can produce a physically non-realizable situation. the total electrical current can be calculated from the sum of the individual ionic fluxes.79 2. Since electrical current is carried in solution only by ions. 2.

1. These conditions are illustrated in Figure 4.1. one species has its governing equation that was produced by the chemical flux equation replaced with a statement of charge neutrality. Ions would quickly migrate under the resulting electric fields to reduce the excess charge. As will be discussed later in this subsection it does not imply that LaPlace’s equation replaces Poisson’s.2(a) and discussed at length along with a derivation of the potential equation in Case 2 of section 4. along the walls of length x0 and having a mouth potentiostatically controlled at a potential of φ0.1. Poisson’s equation (Equation 51. Jwalls.2 gives a formula for φ s inside a one-dimensional crevice of constant height. Such charge separations do not occur in real electrochemical systems because. ˜2 L Ns ' & (51) The second derivative of φ s can be used to calculate the magnitude of ρe. To counter the artifact of large-scale charge separation. appreciable accumulations of charge produce very large potential differences. as will be seen in this subsection.1. This statement fixes the concentration of one species to neutralize any charge produced by the “free” species in order to eliminate any large deviations from charge neutrality. h. De . κ. constant conductivity.80 for different species can mathematically produce a macroscopic charge separation.2. A commonly-made assumption in modeling crevice corrosion is that electrolyte maintains charge neutrality.1. . Equation 181 in Case 2 of section 4. repeated below) relates the density of free charge in solution to the second derivative of the solution potential.1. constant corrosion flux.

0 (69) Where: εr ε0 is the relative dielectric of water is the dielectric of free space [F/m] Combining Equations 68 and 69 and using the relative dielectric of water.05 @10&5 [C/m 3 ] (70) .r .1.854 10-12 [F/m]. (68) The value for the dielectric constant of water is related to the dielectric of free space by the relative dielectric for water.2 given in Table 14. the charge density can be found. ' . 78. and the physical characteristics of the crevice from Case 2 of section 4.1. De ' & 10 7. ˜2 L Ns(x) ' & Jwalls 6h (67) Combining Equations 51 and 67 and solving for ρe yields the following expression: De ' & Jwalls 6h . . the dielectric of free space 8.81 Ns(x) ' & Jwalls 26h x2 % Jwallsx 0 6h x % N0 (181) The LaPlacian of φ s is given below.8514 @ 10&12 ' 9.629991 @10 &5 @ 78 @ 8.

For such solutions the charge . the solution is essentially charge neutral when considered from the standpoint of the concentrations of the species.82 Since the only charge carriers in aqueous solution are ions.r.0 @ (72) Where: )C i is the change in concentration of species i required to alleviate any charge imbalance [mol/m3] For a monovalent anion like chloride. The net result is that for the kinds of electric fields encountered in crevice corrosion. Jwalls 6h 1 z iF )C i ' & . this charge density can be related to the charges carried by the concentrations of the individual species in solution. De ' F j zi C i i (71) Setting Equations 70 and 71 equal to each other and assuming that all of the deviation is caused an excess or deficiency in the concentration of one species reveals the magnitude of the deviation of in terms of the change in concentration of the species. the excess concentration required to create the charge calculated in Equation 70 is one µM. The deviation in charge is not large enough to cause a noticeable change in the concentration of the chemical species for electrolytes with solutes in the millimolar range or greater.

holds and is commonly used. Equation 44. In highly pure environments. Its concentration is either augmented or depleted to maintain charge neutrality. can be used to determine the concentration of one species in order to eliminate any charge differences caused numerically by the application of the chemical transport governing equations to the other species. Summary There are three types of governing equations that are used in modeling crevice corrosion. can be applied to each chemical species save one. A governing equation based on the movement of chemical flux. The next subsection goes into more detail about the assumptions that are involved. A number of approximations and assumptions went into the governing equations of this section. . Equation 73 below. based on the flux of electrical current. Equation 73. j zi C i ' 0 i (73) It must be noted that if Equation 73 is enforced on a solution of n species. the deviation may need to be considered and the approximation may not be suitable. Equation 63.83 neutrality equation. then only n-1 of the species are independent variables. The nth variable’s concentration is determined by the other n-1. a statement of charge neutrality. The potential field can be found for use in the transport equations by applying a governing equation. Finally. such as those encountered in the PWR reactors.

This sub-subsection follows the series of steps and approximations that are done to make this transformation. with an emphasis on the underlying assumptions of the parameters in the ˜ ˜ governing equations. chemical generation. Generation and the choices made in how to represent polarization data can have large effects on the chemical concentration fields which are developed. and potential are elaborated on. The term is used to represent a number of different “potentials” and this subsection defines the standard used throughout this dissertation. as can the homogeneous reactions such as hydrolysis. This section starts at Equation 36 ˜ ˜ Ji. The process gives insight into the limitations of the method and it will serve to place the next section’s literature review in context.1 Use of Concentration Rather than Activity in Diffusion It is gradients in chemical potential that actually drive diffusion.84 2.3. as do the transport coefficients. 2. Finally. Issues in mass transport.2 Examination of Terms Used in Crevice Corrosion Modeling This subsection examines some of the terms and assumptions that are often used in modeling crevice corrosion. However. the issue of “potential” is addressed.3. which is the commonly encountered form .diff ' &C i ui Lµi (36) and ends with Equation 37.2. In mass transport the topic of using LC i rather than Lµi bears some discussion. the commonly encountered form of the diffusion equation involves gradients in concentration.

Equation 74 can be used to find an alternate representation for the gradient of µi. . the absolute temperature. and the natural logarithm of the activity of the species.85 ˜ Ji.314 [J/mol-K] is the temperature [K] is the activity of species i [unitless] The chemical potential of a species is equal to the chemical potential of that species in its standard state plus the product of the universal gas constant. 8. The expression for the chemical potential for species i is[22] µi ' µi % RT ln(a i) 0 (74) Where: µi µi 0 is the chemical potential of species i [J/mol] is the chemical potential of species i in the standard state [J/mol] R T ai is the universal gas constant.diff ' &Di LC i (37) The first steps in this transformation involve finding an expression for the gradient in chemical potential which is amenable to conversion to the gradient in concentration.

86 ˜ ˜ 0 Lµi ' L(µi % RT ln(ai)) ˜ ' RT L ln(a i) ' RT ˜ Lai ai (75) ˜ A drawback to this formulation is that it has substituted a dependence on Lai for the ˜ dependence on Lµi . The value of the single ion activity is no more easily accessible to experiment or theory than is the chemical potential. It is fruitful to use an alternate formulation that expresses ai in terms of concentration. since it contains LC i . but it still contains a . Ci. and the activity coefficient γi. ai ' (i C i (76) Where: γi is the activity coefficient [m3/mol] Using this expression in Equation 75 yields the following relationship ˜ ˜ 0 Lµi ' L(µi % RT ln((i C i)) ˜ ' RT L ln((i C i) ' RT ˜ ˜ (( LC % C i L(i) (iC i i i (77) ˜ This form is potentially more useful.

. Mµi MC i ˜ Lµi ' ˜ LC i ' M( RT ˜ (i % C i i LC i MC i (iC i Mln(i RT ˜ 1 % LC i MlnC i Ci (78) ' When this expression is substituted into Equation 36 for the diffusive flux we get an expression very close to that used in Equation 37.87 ˜ dependence on γ i and L(i . A better formulation which is much closer to the desired form is obtained below. The scaling factor to convert Ci to ai is easier to use than ai was previously. Di ' uiRT (80) The required assumption is that the activity coefficient. γi. the substitution is to change the transport coefficient. is independent of Ci. First. The Nernst-Einstein equation[21] relates the diffusivity to the mobility. ˜ Ji ˜ ' &C i u i Lµi ' &C i u i Mln(i RT ˜ LC i 1 % MlnC i Ci Mln(i MlnC i ˜ LC i (79) diffusion ' &ui RT 1 % This expression can be converted to Equation 37 by a substitution and a simplification. the gas constant and the temperature.

which is repeated below. the . temperature.3. and electrolyte composition and that the diffusivity is related to it by the Nernst-Einstein Equation which was first presented in the previous subsection as Equation 80.2. independent of pressure. ˜ Ji ˜ ' &Di LC i (37) diff Fick’s first law is a valid approximation only if the activity coefficient is independent of concentration. 2.2 Transport Coefficients As was seen in subsection 2. This approximation is discussed in the following subsection. This assumption is true at low concentrations by the dilute solution approximation[21].3. Di ' uiRT (80) This expression is only strictly true in “dilute” solutions. also known as Fick’s first law.1. Dilute solutions are those in which the solute interacts only with the solvent. The typical assumption made is that mobility is a constant.88 M ln(i M lnC i ' 0 (81) Putting the substitution of Equation 80 and the assumption of Equation 81 into Equation 79 yields Equation 37. As the solute concentration increases. the transport coefficients are very important in modeling the behavior of electrochemical species in aqueous solution.

2. 2.3. One is an empirical relation developed from the changes in conductivity observed in concentrated electrolytes[29].2. for a variety of metal chlorides as a function of ionic strength and uses the equivalent conductivity at I = 1 as a reference point. γi [30].1.3.89 individual solute atoms begin to interact and the relationship breaks down. It presents the relative equivalent conductivities.1 Ion/Ion Interaction Effects Once inter-solute interactions become appreciable the Nernst-Einstein relationship no longer applies. Further complicating effects arise if the viscosity of the crevice solution changes with composition and also if precipitation within the crevice produces a tortuous path.1 Empirical Correlation Figure 2.2.2. 2.1(a) is reproduced from Gartland[29]. The ionic strength is defined by the following equation: 1 2 I ' j zi C i 2 i (83) Where: .1. Two approaches have been used to finding the diffusion coefficients in concentrated solutions. Λ.2. The other method uses a formula that accounts for the effects of changes in the activity coefficient.2.3. Each area is discussed in the following three subsections.

7 ' 8% % 8& (84) Where: Λ λ+ λ− is the ionic conductivity [m2 / Ω-eq] is the ionic conductivity for the cation [m2 / Ω-eq] is the ionic conductivity for the anion [m2 / Ω-eq] The ionic conductivities are related to the charge number and the mobility of the species. 8i ' F 2 |zi| u i (85) Where: λi is the ionic conductivity for the species i Ω-eq] [m2 / . A 1 M solution of AlCl3 will have an ionic strength of six. The equivalent conductivity of the metal salt is the sum of the ionic conductivities for its constituent cations and anions. λ+ and λ-. while a 3 M solution of NaCl will have an ionic strength of only three.90 zi is the charge number for species i [eq/mol] The zi2 term means that higher-valence ions have a greater effect on the ionic strength.

The diffusivities do vary with electrolyte composition.2.8375 % 0.1(b) illustrates the diffusivities for two metal salts over a range of molarities.2.16 I % 0.2.3.10% of the magnitude. Gartland fit a third order polynomial to the data in Figure 2. Figure 2. A more mechanistic approach was used by Tester[30]. Because the diffusivities are relatively constant. It is developed in the next section.1. but the size of the changes.1(a) and obtained a decay function g(I) which was used to account for changes of mobility with increasing solution ionic strength.0015 I 3 &1 (86) Gartland does not use the decay function to model the changes in diffusivity. the diffusion coefficients are found from the Nernst-Einstein relationship using the mobility at infinite dilution[29]. .91 If zi is assumed to be constant then any changes in Λ must be due to changes in ui.2. ~ +. is small.1.3. g(I) ' 0.

An advantage of this method is that it provides a link to the thermodynamic literature which focuses on calculating activity coefficients.2.95 2. One commonly used approximation is the Debye-Huckel equation[10].2 Use of Activity Coefficients for Diffusivities Tester presented a model for the diffusivity which incorporates the effects of the activity coefficient[30].1.3.2. I 1 % 0 ai B log((i ) ' & A zi 2 0 % BI I (88) Where: A ai0 is a coefficient of the Debye-Huckel limiting law is the ion size parameter for species i . The relationship used is given below: Di 0 Di ' 0r 1 % m d ln(i dm (87) Where: Di0 ηr is the diffusivity of species i at infinite dilution [m2/s] is the relative viscosity of the solution compared to pure water at 22 EC m is the molality of the solution [mol / 1000g water] The relationship of γi to molality can be found by a number of techniques.

3.2.96 0 B is a coefficient of the Debye-Huckel limiting law The Davies equation has the same form as Equation 88 with ai0B = 1 and B = 0.3.1. Figure 2. 2. an examination of Walton’s curve in Figure 2. No mention was made of a method to extract the mobility from the diffusivity.1. This is similar to the method used by Sharland[6].3. Tester’s model considered only diffusion. Interestingly.1(b). though no direct comparison was made between the work of Gartland and Tester. Equation 87 from the work of Tester[30]. changes in the relative viscosity will scale the effective diffusivity of species i.2 Viscosity Viscosity changes in the crevice solution will affect the mass transport coefficients.1. Di 0 Di ' 0r 1 % m d ln(i dm (87) .2.1(c) is a reproduction of Figure 2 from Walton[10] .2.1(c) suggests that the diffusion coefficient should have the same shape as the data presented by Gartland in Figure 2.2.3. Di. It plots the log of the activity coefficient for CaCl2 calculated by both the Davies and B-dot Debye-Huckel equations and compares them to experimental data collected by Staples and Nuttal.2. shows that for all other factors being held equal. repeated below for clarity.2.2. A more accurate and complicated method was presented by Song[31].3.2. inversely.

2.97 2. Either the liquid will be the continuous phase or the precipitation will be so great that the solid becomes the continuous phase. In the solid. then the effective diffusivity can be found by the following equation. Equation 89 is a simplification of the full equation which must be used if the precipitate forms the continuous phase.eff Di.eff ' Di.l Vs is the effective diffusivity of the crevice [m2-s] is the diffusivity of species i in the liquid phase [m2-s] is the volume fraction of precipitates [unitless] The great difference in diffusivities makes the effective diffusivity independent of the precipitate morphology.l(1&V s) (89) Where: Di. If the liquid forms the continuous phase and has a diffusivity more than 100 times greater than the diffusivity in the solid. .3 Porosity/Tortuosity Precipitation within a crevice will have an adverse effect on the transport coefficients. transport is relatively easy. In the liquid phase.2. Based on the geometry of the precipitates in the crevice one of two cases will apply. The complete equation is given below. Di. the diffusivities will be several orders of magnitude smaller. The following equations are adapted from the work of Hamilton on thermal conductivity[32].3.

There are heterogeneous electrochemical reactions that occur at an interface and there a number of homogeneous chemical reactions that occur throughout the crevice solution.s % (n&1)Di.l % V s(Di.s n is the diffusivity of species i in the solid phase [m2-s] is a constant for the system under study [unitless] The value of n depends on Di.and homogeneous generation rates are presented in the following two topics.98 Di.3 Generation of Chemical Species There are two components to the rate of generation of chemical species. Di.s % (n&1)Di.l&Di.eff ' Di. Ri.l & (n&1)V s(Di. This subsection addresses each type of reaction and the methods which must be used to account for them in modeling crevice corrosion. 2.l (90) Where: Di. Equally important to the transport terms in determining the chemical concentration fields inside a crevice are the rates of generation of chemical species.s. .l & Di. The underlying information that goes into representing hetero.2.l and the shape of the particle. It can usually be assumed that n is equal to 3.s) Di.s) Di.3.

1.3.4.1(a). versus calculation speed and storage space.3.3. There are four common ways of simplifying the representation of a polarization curve such as the one shown in Figure 2. This issue is discussed in greater detail in subsection 2. The tradeoff in representing polarization data is fidelity.99 2. A second tradeoff is that not all of the approximating schemes are amenable to analytic solution techniques. The dependence of the reaction rate on potential and the secondary factors such as chemical environment. The calculations used in section 2.3. Some representation of the I vs E data must be made to do this. Anodic dissolution behavior is often complicated by additional factors such as film formation that prevent such simple representations of the current-potential relationships.3. accuracy to the measured curve.2. Passive only: The polarization curve can be approximated as simply a single current. Analytic solution techniques generally require more simple representations of the boundary conditions than are allowable with numerical methods.3. that is equal to the passive current density. The prime advantages of such a simplification are speed and .2.2. Figure 2.3. temperature and pressure can be entered from first principles.1(a) illustrates a typical polarization curve for an active-passive metal and four different methods for representing it.1 for Tafel behavior would be examples of this type. independent of potential.3. A different approach is to incorporate experimentally obtained polarization data into a model.1 Heterogeneous Reactions Heterogeneous electrochemical reactions can be entered into a model in one of two fashions.

an initiation model is only concerned with the steps leading up to initiation. If the model is only meant to describe the case in which the entire crevice remains in that safe zone. The discontinuity at the transition potential is not amenable to non-computational solution techniques. Although this method seems very simple. By definition. a passive and an active one. However. Obviously. The later steps are the domain of propagation models. Such a representation captures the grossest features of an active/passive polarization curve. once the metal initiates the model then does a very poor job of representing the current over some portion of the crevice. . then this approximation is good. Passive/Active Transition: A slightly more realistic approach to modeling a polarization curve is to use two current densities. it is still unsuitable for use in analytic solutions. a passive current density is relatively constant over some potential range for a material in an environment.100 suitability for use in analytic solutions. and a transition potential. This simple method of representing a metal’s polarization behavior may be acceptable for analyzing the initiation of crevice corrosion. and not what happens afterwards. No other detail is translated into the model.

Each time the polarization curve is accessed a small search procedure must be performed to find the correct line segment. Unless the raw polarization data are used. Accordingly. This search procedure becomes more burdensome as the number of line segments increases. there are no methods of automatically creating line segments and the procedure has to be done by hand. Polynomial: A good tradeoff between accuracy and compactness is sometimes a polynomial representation. This method has the advantage that the accuracy can be refined as much as needed by increasing the number of line segments used in the approximation. Fitting a polynomial can be done automatically. Essentially. The storage space and calculation time required for such a representation is small compared to the time . This method is suitable for use in either analytic or numerical solutions. the passive/active transition method is a special case of this method. when the model is first created.101 Piecewise: A piecewise model approximates a polarization curve as a series of straight lines. smooths out noise on the experimental curve and produces a continuous representation. The greater fidelity to the polarization curve is paid for twice. The other price is exacted only once. A high order polynomial can be fit to a polarization curve. this method too is incompatible with analytic solutions.

102 required to search out the proper interval and solve the appropriate line for a piecewise approximation. the simpler. Generally. . faster techniques are less accurate. polarization curves can be constructed from the physical characteristics of the system. When possible. A number of methods can be used to allow a crevice corrosion model to incorporate polarization data. In all cases it is possible to represent an experimentally obtained polarization curve in some fashion.

If the dissolving metal is an alloy a decision must be made: is the alloy dissolution stoichiometric? An alloy is typically composed of a matrix and various precipitates. Javg ' i zavg F (91) Where: Javg is the flux of atoms across an interface from the alloy on . can be non-stoichiometric without having to redistribute atoms. To do this the particles must dissolve at the same rate as the matrix and the elements in the matrix must not preferentially dissolve. If each atom dissolves according to its atomic fraction in the alloy as a whole. The following equations give a methodology for converting a current density to a flux density for an individual species.3. inclusions. The average dissolution rate of atoms for an alloy can be found from Faraday’s law below.1 Stoichiometric Dissolution An experimentally-obtained polarization curve measures current density versus potential. such as intergranular attack.3. These caveats might seem overly strict.2. The governing equations for the accumulation of chemical species require that this electrical current be converted to fluxes of the individual chemical species. then it is dissolving stoichiometrically. and constituents. then the material dissolves stoichiometrically. but in practice if a material is undergoing general attack at an appreciable rate. If a material is dissolving evenly.1. Obviously uneven corrosion.104 2. the non-dissolving components would have to diffuse away from the surface to allow non-stoichiometric dissolution.

. fi a/o i ' aw i j i fi aw i (93) fi awi is the weight fraction is the atomic weight of species i The flux of atoms on an alloy-averaged basis calculated in equation 91 can be apportioned amongst the various chemical components by using the atomic fraction. a/oi. Alloy compositions are usually given in weight fractions.105 an averaged basis [mol/m2-s] i zavg is the current density from the alloy [A/m2] is the average charge number for the alloy [eq/mol] The average charge number for the alloy can be found with the following formula. of each component. fi. zavg ' j zi a/oi i (92) Where: zi a/oi is the charge number for species i [C/eq] is the atomic fraction of species i [unitless] The atomic fraction of each species is found by using the weight fraction.

rather than only at a metal/solution interface.are converted into solid FeCl2 but the total amounts of Fe and Cl (in all forms) remain the same. A number of homogeneous reactions are possible and the various types of such reactions are discussed in the next subsection.3. They merely convert one species into another. Soluble Fe+2 and Cl. Hydrolysis is the tendency of metal cations to form metal hydroxides in aqueous environment. Electrochemical species can also be oxidized or reduced in bulk solution. The generation of chemical species inside a crevice does not have to occur only at an interface. and homogeneous oxidation. . An example would be the precipitation of a metal salt from a supersaturated solution. Precipitation reactions generate solid products when a solution becomes saturated.2.hydrolysis.3. Such reactions do not violate mass conservation. There are three main types of homogeneous reactions that need to be considered in modeling crevice corrosion .2 Homogeneous Reactions Homogeneous reactions create chemical species throughout a volume of solution.106 Ji ' a/o i Javg (94) Where: Ji is the flux of species i across an interface [mol/m2-s] The fluxes from non-stoichiometric dissolution must be calculated by different means. precipitation. 2.

This complex acts as its own molecule and has its own characteristic charge and transport coefficients. Hydrolysis reactions occur when metal cations form metal hydroxides in aqueous solution.3. It should be noted that hydrolysis reactions do not change the valence of the underlying cations.2.1 Hydrolysis The major group of homogeneous reactions that must be considered when crevice corrosion is modeled is the hydrolysis of metal cations. The numerical data presented in this subsection are all drawn from that work. The valence of a cation can only be changed by reduction or oxidation as discussed later in this subsection. Another useful reference is Buchheit et al [34] which covers many of the manipulations.3.2. The primary reference text on the subject is Baes and Mesmer[33]. Two equivalent representations for this process are shown below. A bare metal cation has a tendency to acquire a shell of water and hydroxyl ions.107 2. xMe z% % yOH & º Mex(OH)y (xz&y)% (95) Where: x is the stoichiometric coefficient for the metal cations involved in the hydrolysis reaction y is the stoichiometric coefficient for the hydroxyl ions involved in the hydrolysis reaction z is the valence of the metal cation .

Such reactions may take several days to achieve equilibrium[33].is consumed water will self-dissociate to replace the hydroxyl and free additional hydronium. The equilibrium concentrations of the various species are determined by the formation quotient. . especially for polynuclear products.108 and %(zx&y) xMe %z % yH2 O º Mex(OH)y % yH % (96) They differ only in that Equation 95 omits the fact that if OH. There is a finite formation time for the creation of the metal hydroxide. x is greater than one for polynuclear hydrolysis products. The formation of mononuclear hydrolysis products is much more rapid and a common simplification is to only consider the formation of mononuclear products. Polynuclear hydrolysis products involve two or more metal cations. Qxy. In the notation of Equations 95 and 96. [Mex(OH)y %xz&y Qxy ' ][H % ]y [Me %z]x (97) Where: Qxy is the formation quotient of the hydrolysis product involving x cations and y hydroxyl ions [unitless] [X] is the concentration of species X [ mol/l] The equilibrium concentrations determined thermodynamically by Equation 97 are not reached instantaneously.

1(a). At low pH’s. At the highest .3) -9.3. Different data are available for the hydrolysis of different species.109 Baes and Mesmer[33] provide thermodynamic data for the hydrolysis of many elements.3.0(±0. pH < 2.2.2. For a species like Cr+3 the data are simply tabulated as in Table 1 below. the relative scarcity of OH-’s prevents almost all individual cations from hydrolyzing. The ratio of the concentration of these states is determined by the formation quotients for the various reactions. As the pH rises. The first is to determine the speciation of a cation over a range of pH’s. At any pH a cation can exist in multiple hydrolysis states.Values for the formation quotients of the various Cr species Equation 95 or 96 can be applied once per species and the resulting set of equations can be solved simultaneously using the formation quotients of Table 1 to calculate the relative abundance of the various Cr+3 species.4 Cr 3% % 3H2 O º Cr(OH)3 Cr 3% % 4H2 O º Cr(OH)4 & Table 1. Reaction Cr 3% % H2 O º CrOH 2% Cr 3% % 2H2 O º Cr(OH)2 % Quotient Q11 Q12 Q13 Q14 Log Value -4. This is illustrated in Figure 2.7 -18 -27. These data can be used in two ways. greater amounts of hydroxyl are available for incorporation into hydrolysis complexes and higher-order species such as Cr(OH)2+ and Cr(OH)3 appear.

The data for the formation quotients of species such as Al+3 include a dependence on I. and b is the ionic strength [eq2/mol-l] is the concentration of the anion [M] are tabulated constants The ionic strength was defined in Equation 83 which is repeated here for convernience: 1 2 I ' j zi C i 2 i (83) For a salt composed of two monovalent ions. Values for the various constant Kxy. Slightly different.begins to dominate. The formation quotients have a dependence on the overall solution composition.1(b). Just as was shown in the corresponding figure for Cr+3 hydrolysis products.2. Log Qxy ' Log Kxy % a I 1/2 /(1%I 1/2 ) % bm x (98) Where: I mx Kxy. Cr(OH)4. The values from Table 2 are used to generate the plot in Figure 2. more accurate data are available for species such as Al+3. the ionic strength as shown in Equation 98. a and b are give in Table 2 below.110 pH’s. the ionic strength is equal to the concentration of the salt.3. pH > 11. a. pH < 3.3.2. at low pH’s. the relative scarcity of .

of more concern is the pH change caused by the introduction of metal cations into solution. There are three relationships that need to be used: one relates the total metal ion concentration.0 a -2. As the pH rises. greater amounts of hydroxyl are available for incorporation into hydrolysis complexes and higher-order species such as Al(OH)2+ and Al(OH)3 appear. At the highest pH’s. Reaction Al 3% % H2 O º AlOH 2% Al 3% % 2H2 O º Al(OH)2 % Log Kxy -4.1. The procedure for calculating the acidification caused by adding a mix of metal cations in various hydrolysis states to an aqueous solution of arbitrary initial pH is relatively straightforward.36 Al 3% % 3H2 O º Al(OH)3 Al 3% % 4H2 O º Al(OH)4 & Table 2. Al(OH)4dominates.45 0. The acidification the metal cations cause is a primary factor in the initiation of crevice corrosion according the CCS mode for crevice initiation as discussed in subsection 2. a second calculates the . pH > 9.0 -23.044 -3.3 -15. [Me]total to the concentrations of [H+] and [Me+z].2. Values for the formation quotients of the various Al species While the information on speciation is useful.52 0.044 b 0.066 -2.55 0.066 -3.111 OH-’s prevents most individual cations from hydrolyzing at all.97 -9.

mononuclear hydrolysis. The goal is to convert a complex set of concentrations of hydrolysis products back to a situation which is akin to adding a metal salt to an aqueous solution with an arbitrary starting pH. [Me]total ' [Me %z] % j x @[Mex(OH)y (x. and the final one calculates the amount of water that must by lyzed or created to form equilibrium with the self-disassociation of water. The procedure discussed here considers only solutions of a single metal cation and its products. stable pH is the one which when used to determine the speciation of the metal cations is in turn produced by the freeing of [H+] which results from that speciation. The total metal cation concentration can be found by summing over all of the hydrolysis products denoted by the x. Finding an Equivalent Chemistry for Hydrolysis Mass transport and electrochemical production of chemical species in a crevice can produce concentrations of metal ions and hydrolysis products that are not in equilibrium. The first step to finding the resulting pH after equilibrium is reached is to convert the solution to an equivalent solution of unhydrolyzed [Me+z] and acidified or alkalinized water.e. i. The total amount of hydroxyl after the freeing process is found by the .112 amount of [H+] freed by hydrolyzing [Me+z]. The equilibrium.y) %xz&y ] (99) If all of the hydrolysis products were converted into [Me+z] large quantities of [OH-] would be released.y pairs below. The general procedure is to iteratively solve for the concentration of [H+] to find a stable pH.

rather than [mol/m3] used elsewhere in the thesis for Ci. The formula for the self-disassociation of water is:1 [H % ]@ [OH & ] ' 10&14 (101) If this product is greater or less than 10-14 then water will either break apart or form from its components until the product is rebalanced. Simple algebra can correct this deficiency. 1 . This is to provide agreement with published work on hydrolysis. Not only can mass transport destroy the equilibrium. but the process of “unhydrolyzing” the hydrolysis products generates large amounts of [OH-] without a corresponding decrease in [H+]. some of what is added will combine with [H+] to satisfy Equation 101.113 following equation.y) & & %xz&y ] (100) The final step involved in finding the equivalent starting solution is to use the selfdisassociation of water to rebalance the concentrations of [H+] and [OH-]. Since we are adding [OH-]. [OH ] ' [OH ]0 % j y @ [Mex(OH)y (x. [H& q]@[OH& q] ' 10&14 (102) Where: q is the quantity of water formed [mol/l] Note: The ion concentrations denoted by [X] are given with units of molarity.

The discriminant will be greater than ([H]+[OH])2 and q will be less than zero. In this case the discriminant is equal to ([H]+[OH])2 and therefore q will equal zero. No adjustment need be made to the concentration of either species. A negative q will split water and increase the concentrations of [H+] and [OH-] . only the negative root has any physical significance. Depending on the value of [H+] [OH-] one of the following three cases will apply [H+] [OH-] = 10-14: The concentrations of [H+] and [OH-] are in equilibrium.114 Equation 102 can be rewritten as a quadratic equation. [H+] [OH-] < 10-14: There is a lack of [H+] and [OH-]. q 2 % (&[H % ]&[OH & ])q % [H % ][OH & ] & 10&14 ' 0 (103) If this equation is solved for q. The discriminant will be less than ([H]+[OH])2 and q will be greater than zero. Since negative concentrations of hydroxyl or hydronium are impossible. A positive q will form water and reduce the concentrations of [H+] and [OH-]. Thus. [H+] [OH-] > 10-14: There is an excess of [H+] and [OH-]. [H % ]%[OH & ] K ([H % ]%[OH & ])2 %4(10&14 & [H % ][OH & ]) 2 q ' (104) There are two roots to this equation. q must always be smaller than the lesser of [H+] and [OH-].

Since the [Me]total is defined. 1. Using that [H+] find the resulting concentrations of hydrolysis products. Equation 97 relates the concentration of metal hydrolysis products to [H+] and [Me+z] through the formation quotient.y) %xz&y ] (105) Reorganizing Equation 97 for a system of only mononuclear products (x = 1) produces the following representation. The final concentrations of all the species involved are predetermined by thermodynamics. the concentration of [H+] is determined by the starting pH and the concentrations of the hydrolysis products. then the solution can be rehydrolyzed to find the resulting pH. Select a trial [H+]trial as a starting point. the total amount of [Me+z] added and the starting pH. Hydrolyzing a solution of known [Me]total and starting pH There are only two free variables when mixing a quantity of [Me+z] into water to find the final pH. It is an iterative search process to find the correct pH for the resulting solution. [Me %z] ' [Me]total & j x @ [Mex(OH)y (x. [Me+z] is not free according to the following equation. . The concentration of each hydrolysis product is determined by the concentrations of [Me+z] and [H+]. Finally. The concentration of [Me+z] is determined by [Me]total and the concentration of the other hydrolysis products. This process is listed below. 2.115 Once the starting solution has been changed into an equivalent solution of [Me+z] at the proper pH.

calculate what the concentration of [H+] should be with the following formula. . 3. [H+]result = [H+]trial: The trial [H+] was the correct [H+]. Based on their relative values. [H % ] ' [H % ]0 % j y @ [Mex(OH)y (x.y) %xz&y ] (108) Where: [H+]0 is equal to the starting.116 %z&y [Me(OH)y ] ' [Me %z]Q1y [H % ]y (106) Restricting the system to only mononuclear products allows use of this simple method to find [Me+z] [Me]total 1 % j y [Me %z] ' Q1y [H % ]trial y (107) No matter how [Me+z] is found. 5. Equation 106 allows all of the hydrolysis products to be calculated using that value and the trial [H+]trial. The problem is solved. not trial. act according to the following options. Adjust [H+] based on the self-disassociation of water using Equation 104 to obtain [H+]result . Compare the resulting [H+]result to the trial [H+]trial. pH 4. Using the concentrations for the hydrolysis products found in (2).

.117 [H+]result < [H+]trial: The trial [H+] was too high. [H+]result > [H+]trial: The trial [H+] was too low. Restart from step 1 with a lower pH (higher [H+]) as the trial value. Restart from step 1 with a higher pH (lower [H+]) as the trial value. Hydrolysis reactions are important in the modeling crevice corrosion. They determine the pH’s that are achieved inside the crevice and act to respeciate metal cations that are generated at electrochemical interfaces.

AgCl(s) X Ag % % Cl & (109) K ' [Ag % ][Cl & ] [AgCl] (110) Where: K is the solubility product [various units] The concentrations of any solid phases are always assumed to be unity. for the molecule in question[20].2 Chemical Precipitation/Dissolution A solution can only hold a finite amount of solute. An example is shown for the solubility of AgCl. The amount of an ionic solute that can be dissolved is found through the use of the solubility product. Ksp depends on the molecule in question and the temperature of the solution. If the K is greater than the Ksp then some of the molecule will precipitate out of solution to lower the concentrations of the constituent ions and reduce K. Ksp. . An advantage of using K’s to determine solubility is that the approach still works when multiple molecules that share common ions are simultaneously in solution.120 2. for more of the chemical to dissolve.2.2. It must be less than the solubility product constant. Chemical dissolution or precipitation does not change the valence of the ions involved.3. K is equal to the product of the concentrations of the individual ions that make up the molecule. Ksp‘s are tabulated for many species and can also be calculated from tables of solubility data. K.3.

Electrochemical reactions.3 Homogeneous Oxidation The homogeneous chemical reactions of the previous subsection did not change the valence of any of the ions. 2. this particular reaction is not usually considered to take place there. and the . which do transfer electrons.121 The solubility of non-ionic solids or gasses. Obviously. homogeneous electrochemical reactions can only occur between two soluble species. This reaction will occur in oxygenated water.2. An example of an electrochemical reaction that can happen homogeneously is given below. There are at least three major types of “potential” that are commonly used in describing crevice corrosion: the electrochemical potential. such as O2. must be found from tabular data.3.4 Potential The is a large possibility for confusion in the use of the term “potential” when modeling crevice corrosion. If one of the species were insoluble a metal-solution interface would form and the reaction would be a heterogeneous one. Fe %2 X Fe %3 % e & (111) E0 for this reaction is 0. E.3. Since crevices are often considered to be deoxygenated.3. or other homogeneous reactions. can also happen homogeneously. 2. The reaction. the solution potential φ s.2.770 V NHE[20] so a strong oxidizer is needed in solution to drive the reaction. may occur in the bulk environment.2.

The solution potential is the potential at some point in solution. which was first presented as Equation 31. adjacent to it. It is easily accessible and commonly reported. or double layer. Solution potential is important in the mass transport of chemical species because the gradient of φ s affects the migration rate. 2.4. The Butler-Volmer Equation.122 diffusion potential. These individual potentials are explained in greater detail in the following sections. (1&")zF(E&E 0) RT &"zF(E&E 0) RT i ' i0 e & e (112) E is measured by comparing the potential of the metal versus a reference electrode in solution. Finally.3. shows this relationship. For instance.2. It controls the rate at which reactions occur on a surface. It is only in the context of mass transport that additional potentials need to be defined. the diffusion potential is caused by the charge separations that can occur when a salt composed of ions with different diffusivities is transported. It the potential across this interface that controls the rate of reaction on that surface. φdiff. E. That equation is repeated here in slightly different form as the expression for the overpotential has been expanded. the migration of charged . The electrochemical potential is an interface’s potential relative to some reference.1 Electrochemical Potential The electrochemical potential. is the potential between a metal/solution interface surface and the end of the structured water.

κ. It is rearranged and repeated here. Accordingly.3.3. The nature of the relationship between E and φ s is explored in the next section.3.2.4. it cannot be used interchangeably.2 Solution Potential Migration depends on the gradient of potential in solution.2(a).2. h. Part (a) of the figure represents a simple crevice of constant height. Though it is related the potential in solution. A metal is a conductor. E is measured across an interface. 2. E and φ s are related as shown in Figure 2.2.4. is the potential that would be measured by a reference electrode at that point compared to a reference electrode at some standard point for the experiment. is shown as an isopotential surface. It does not support an internal gradient in potential. . Positive cations move in the -x direction.2(a) the potential of the metal. It is the gradient of this quantity which is used in mass transport. The solution potential decreases linearly from the base to the mouth according to the Ohm’s Law which first appeared as Equation 57. φ metal. φ s .4. in part (b) of Figure 2. corroding at the base and filled with an electrolyte of constant composition and conductivity. This movement constitutes a positive current flowing out of the crevice. The solution potential at any point.123 species in solution depends on the gradient of potential in solution.

“Potential drop” in solution.124 ˜ Jel 6 ˜ LNs ' & (113) Where: ˜ LNs ˜ Jel κ is the gradient in solution potential [V/m] is the electrical current density [A/m2] is the solution conductivity [Ω-m]-1 The electrochemical potential. and the solution potential. as will be discussed in section 5.2.2. φmetal. These processes are illustrated in Figure 2. . φ s .3.2(a) the crevice is anodic since current is flowing out of the crevice. reduces the driving force for dissolution. is the difference between the metal potential. E. In the case of Figure 2. E.3.2. of the crevice from the mouth to the base. The gradient of solution potential must be positive to force positive cations in the -x direction. part (b).4.2(a).4.

2. φ s. One is an ohmic process in which the potential difference is caused by current across a solution resistance.3(a) illustrates the basic concepts of the diffusion potential. A potential caused in this manner is a diffusion potential.4. Equation 44 from section 2.3 Diffusion Potential Two separate processes can contribute to the solution potential.2. which was not considered. arises from the potential difference caused by the formation of net dipoles as the anions and cations move at different rates in solution and separate.3.3.4. The other contribution.126 2. The starting point is the mass transport equation.2 ˜ ˜ Ji ' C iv & DiLC i & ziFuiLNs ˜ (44) Where: Ci v ˜ Di zi F ui ˜ LNs is the concentration of species i [mol/m3] is the velocity of solution [m/s] is the diffusivity of species i [m2/s] is the number of equivalents for species i[eq/mol] is Faraday’s constant [C/mol] is the mobility of species i [mol-m2/J-s] is the gradient of solution potential [V/m] .1. Figure 2.3. This process was given in Equation 113. The diffusion potential can best be understood by going through the following derivation.

i ' ziFJi ' & ziFDiLC i & zi F 2 uiC iLN (116) Where: ˜ Jel. 2 ˜ ˜ ˜ Jel. . 6.127 The electrical flux for any species due to its chemical flux is found by multiplying the flux by the charge number and Faraday’s constant. Converting this chemical flux into an electrical one (and assuming that there is no convection) produces the following equation.i is the electrical current density vector due only to species i [A/m2] ˜ The total electrical flux. of a solution is defined as[21] : 6 ' F 2 j z i u iC i n 2 i'1 (118) If Equation 118 is substituted into Equation 117 the following expression for the total electrical current is produced. 2 ˜ ˜ ˜ ˜ Jel ' j ziFJi ' &F j ziDiLC i & F 2 LNsj zi u iC i n n n i'1 i'1 i'1 (117) The conductivity. Jel . can be found by summing over all of the chemical species present in solution.

4.128 ˜ ˜ ˜ Jel ' &F j ziDiLC i & 6LNs n i'1 (119) ˜ This equation can be rearranged to solve for LNs ˜ Jel 6 ˜ Fj ziDiLC i 6 ˜ LNs ' & & (120) This formula clearly illustrates that there are two components that make up the solution potential. This decomposition is shown below. The first part is caused by IR losses. only the first of which was used in the derivation of subsection 2. ˜ ˜ ˜ LNs ' LNohmic % LNdiffusion (121) Where: ˜ LNohmic ˜ is the ohmic contribution to LNs caused by IR drop [V/m] ˜ LNdiffusion ˜ is the contribution of diffusion potential to LNs caused by differing Di’s of the ions in solution [V/m] . The second arises because of differences in the diffusivities of the individual components of the solution.1.3.

it does scale inversely with the total diffusion potential. NaCl) cause the diffusion potential to occur. The other conclusion is that whereas κ does not affect the relative contributions of the ions to the diffusion potential. A linear concentration gradient is established between the two points and the differing diffusivities of the cation/anion pair (in this case. Estimating the Magnitude of the Diffusion Potential Figure 2. The previous expression relates the gradient of the diffusion potential to the physical properties of the ions.3(a) illustrates steady-state diffusion between two reservoirs.129 The ohmic contribution is equal to: ˜ Jel 6 ˜ LNohmic ' & (122) The above equation is the same as Ohm’s Law. which was given in Equations 57 and 113 in slightly different formats. The contribution of diffusion potential is given as: ˜ Fj ziDiLC i ˜ LNdiffusion ' & 6 (123) It is apparent from Equation 123 that if the diffusivities of all species in solution are ˜ equal. then the gradient of LNdiffusion is zero. In order to estimate the size of the diffusion potential for the diffusion of various salts. the following derivation is useful.4.2. .3.

. and the conductivity. a linear concentration gradient. ˜ Di. and finally integrating and solving for the constant of integration yields the solution for the diffusion potential as a function of position. The conductivity of the solution varies linearly with position from κmax. By assuming that zi. then substituting Equation 124 into Equation 123.130 the concentration gradients. This is shown in the equation below. x0 Ndiffusion(x) ' m 6 max & 6min & 0 ˜ Fj ziDiLC i x0 x % 6min ln dx (125) x0 x % 6min & ln(6min ) ' & ˜ Fj ziDiLC ix 0 6 max & 6min 6 max &6min It is interesting to note that under these conditions. and LC i are constant. to κmin where the concentrations are Cmin. where the concentration of each component of the salt is Cmax. 6 ' 6 max & 6min x0 x % 6min (124) Where: κmax κmin x0 is the maximum conductivity [Ω-m]-1 is the minimum conductivity [Ω-m]-1 is the crevice length [m] Both κ’s can be related to the solution chemistry by Equation 118.

131 constant coefficients. Cmax & Cmin x0 ˜ LC i ' (126) Where: Cmax Cmin is the maximum concentration [mol/m3] is the minimum concentration [mol/m3] Equation 125 can be used to predict the diffusion potentials that arise between solutions of differing compositions if the connecting gradients in composition are linear. This length invariance happens because the constant gradient of Ci depends on x0 and the integral is taken over x0. the difference in diffusion potential between the two reservoirs is independent of x0. . Data for the ions present in several common salts are given in Table 3 which is taken from the CRC Handbook[20].

Taken from the CRC handbook[20. This was done for five common salts and the results are shown in Table 4. .22E-06 Table 3.18E-06 Anions ClSO4-2 CO3-2 -1 -2 -2 2.33E-05 7.96E-05 1.03E-05 1.132 Species Cations K+ Na+ Fe+2 zi [eq/mol] Di [cm2/s] 1 1 2 1. The data in Table 3 can be used to calculate the diffusion potentials that arise between the ends of linear concentration gradients connecting salt solutions of 1M and 1 mM. Data on chemical species used to calculate diffusion potentials.06E-05 9.

has a large negative diffusion potential for a negative concentration gradient. Finally. a solution of Na2SO4 whose SO4-2 anion is sluggish compared to the Na+.35 mV 38. the linear concentration gradients that they depend on are unlikely to be met in practice.8 mV -3. The ratio of the most to the least concentrated solutions has an important effect on the diffusion potential. where the diffusivities of the ions are more closely matched. where the Cl.0 mV -67. has a diffusion potential of almost zero. In particular.7 mV -11. KCl.133 Species NaCl KCl Na2SO4 FeCO3 FeCl2 Ndiffusion ' -36. For example NaCl. This can be seen by rewriting Equation 125 for the case where x = x0.0 mV Table 4.diffuses more easily than the Na+. Fj ziDi)C i i Ndiffusion(x'x 0 ) ' & 6max & 6 min ln 6 max 6 min (127) . Diffusion potentials for linear gradients between 1M and 1mM solutions of various salts The magnitudes of the diffusion potentials shown in Table 4 should be taken as rough guides. has a positive diffusion potential for a negative concentration gradient. One aspect the table does point out is the relationship between the diffusivities of the ions and the size and magnitude of the diffusion potential.

Part (b) illustrates that this relationship means that on a linear scale.3(b) shows in part (a) that the diffusion potential is linear with the logarithm of the ratio. the diffusion potential at a ratio of 1:1 (no gradient) is zero. Real aqueous diffusion couples may differ from the conditions of these theoretical results in several ways: Non-linear concentration gradients: The formulas in this section are based on the assumption of linear concentration gradients. such as NaCl.4. the diffusion potential is relatively stable over a range of values. Figure 2.1 will show that many simple crevice geometries and boundary conditions can produce a higher order dependence of Ci on x. to evaluate the diffusion potential at a variety of concentration ratios.2. Multiple anions and cations: The effects of multiple salts will not superimpose linearly.3. On both scales. The examples in section 4.134 Where: ∆Ci is the change in Ci from one reservoir to the other [mol/m3] The equation can be used for a salt. since it depends on only the logarithm of the ratio. If all of the other terms in Equation 123 were held equal an x2 dependence for C would result in an x2 dependence for the diffusion potential. because the conductivity is based on all of the .

The next subsection focuses on the types of simplifications that are commonly applied to the governing equations in order to solve them. Supporting electrolytes: Any factors that raises the solution conductivity.135 ions in solution. The predicted results from Table 4 are likely to overestimate the diffusion potentials that will be observed. such a supporting electrolyte. any remaining diffusion potentials may either offset or sum their effects. The closely matched diffusivities of the constituent ions produce a small diffusion potential even when connecting solutions of very different concentrations. . Increased conductivity will decrease the magnitude of any diffusion potentials. will decrease the magnitude of any observed diffusion potentials. Still. they illustrate why salts such as KCl are often used in salt bridges. Additionally. Summary This subsection has focused on examining in depth the terms that go into the governing equations which control crevice behavior.

The generation equations also often reduce the complexity of chemistry effects. For . For heterogeneous reactions few codes account for either the effects of chemistry on generation or the chemical effects of cathodic reactions occurring inside the crevice.3 Common Simplifications Used in Modeling Crevice Corrosion Most models for crevice corrosion make some simplifications to the governing equations developed in subsection 2.138 2. Simplifying Chemistry Effects: The dependency of the transport coefficients ui and Di on chemistry is often ignored. The first three relate to simplifications involving thermodynamic variables such as temperature and pressure. Such simplifications and assumptions are made for one of two reasons. The transport equation itself is usually configured based on the dilute solution approximation that solute ions are not interacting. In practice.3. both temporal and spatial.3. The last two relate to reductions of the dimensionality of the problem. Either some piece of information is not available to permit use of the complete solution or the assumption makes the problem easier to solve. The types of simplifications that are made can be classed into five broad groups summarized below. changes in these variables are often ignored and the entire crevice is assumed to remain at standard temperature and pressure (STP). solution composition and potential. Elimination of Thermodynamic Variables: Temperature and pressure are two of the thermodynamic variables required to define the state of a material.1.

Rarely is the diffusion potential taken into account.139 homogeneous reactions. the hydrolysis equations are often considered to only deal with mononuclear products. The dimensionality of the model is usually reduced to one or . Other reactions such as precipitation or homogeneous oxidation are also often ignored. Additionally. but even this has the underlying assumption that all of the reaction rates are functions only of the electrochemical environment. the effect of electrochemical potential on generation is often simplified to make the governing equations easier to solve. Finally. Simplifying Potential Effects: Occasionally models are constructed that ignore the effects of a gradient in solution potential on transport. Both hetero. Temporal dependence based on the accumulation of chemical species from transport consideration is often included. Simplifying Geometry: Every crevice corrosion model makes broad generalizations of physical geometries in order to make the problem tractable. the effects of an electrostatic potential that would be caused by charge separation are often thrown out and charge neutrality is assumed. Ignoring Temporal Effects: The effect of time on reaction rates is a difficult one to capture in a model of crevice corrosion.and homogeneous reactions can have marked temporal dependence independent of changes in solution composition or interfacial potential.

clearly shows the effects of temperature on the reversible potential and thus driving force. Those that do generally translate all of the parameters to some higher temperature and perform an isothermal simulation at the new state.3.140 two dimensions and the scale modeled does not represent the fine detail present at the µm level.1.3.1. then most crevice models may be missing a critical aspect of crevice geometry. If crevice behavior is heavily influenced by the tightest rather than the average geometry. 2.1 temperature plays a large role not only in determining the driving force for corrosion but in setting the rate constants. . The reversible potential for metal oxidation given by the Nernst equation.3. Some of the types of simplifications that are made were discussed during the development of the governing equations and the separate discussion of the terms that go into them. first shown as Equation 12 from subsection 2.1 Temperature As was seen in section 2.2.2. The following sections present the approximations in context with each other.3.1 Elimination of Thermodynamic Variables Few models account for changes in temperature or pressure. 2.

the model is still run as an isotemperature system.[1] Fe % 2HCl 6 FeCl2 % H2 (128) .1. This reaction is shown below from Jones. Corrosion reactions are spontaneous and the energy they release appears as heat in the environment. Essentially. Some corrosion systems. even commonly encountered systems can generate surprising amounts of heat. Aside from such extreme cases. merely with parameters that are appropriate to the higher temperature environment. Equation 31. like thermite. are actually designed to be used as heaters for military and camping rations. i ' i0 e (1&")zF0 RT & e &"zF0 RT (31) When temperature effects are taken into account.141 µMe & µMe %z zF 0 0 E ' 0 & C %z RT ln Me zF CMe (12) The effect of temperature on corrosion kinetics can be seen in the Butler-Volmer equation. from subsection 2. such as critical water. it usually is by the device of translating all of the parameters to a higher temperature[8].3. The following calculations show the heating which is possible for the corrosion of iron.1.

.44 ' 85 kJ/mol (130) It takes one calorie (4.5 to convert to a flux density of iron and multiplying by Equation 130.184 J) to raise one gram of water one degree centigrade at 0 C.3.142 The Gibbs Free Energy released by a reaction is given by the following equation. The total energy released per mole of Fe corroded is equal to: )G ' &2 @ 96487 @ &0. The mass density of water per cm2 in a crevice of height 10 µm is: mH O ' DH O @ h 2 2 ' 1 g/cm 3 @ 10&3 cm ' 10&3 g/cm 2 (131) Where: mH O is the areal mass density of water [g/m3] 2 The energy released by a corrosion rate of 1 mA/cm2 can be found by using Equation 64 from subsection 2.44 V. )G ' &zF E (129) Where: ∆G z E is the change in Gibbs Free Energy [J/mol] is the number of electrons transferred [eq/mol] is the electrochemical potential of the reaction [V] For this reaction at pH = 0.1. E = -0.

large and has a considerable heat capacity as well.184J (133) Where: T t cp is the temperature of the solution [K] is the time [s] is the specific heat of water 4. . The iron substrate is thermally conductive. the rate of change of the temperature with time would be approximately as shown below. Obviously not all of the heat generated at an interface goes into the solution.44 mJ/cm 2 &s 10&3 g/cm 2 ' 0.143 p ' ' i @ )G z iF (132) 1 mA/cm 2 @ 85 kJ/mol 2 eq/mol @ 96487 C/eq '0.44 mJ/cm 2 &s Where: p is the energy flux [J/m2-s] If all of the heat were transferred to the 10 µm of solution present in the crevice.184 [J/g-K] This increase in temperature is a surprisingly high rate of change.11K/s @ K&g 4. MT p 1 @ ' Mt m H O cp 2 ' 0.

2 Pressure Pressure is another thermodynamic variable whose effects are often ignored.144 In addition to ignoring the full effects of temperature by assuming an isothermal experiment. 2. 500 Pa (134) Where: ∆Phydro is the change in pressure due to hydrostatic effects [Pa] h DH2O g is the depth of solution [m] is the density of water = 1000 [kg/m3] is the gravitational acceleration [m/s2] This is an excess pressure of only 0.3.05m(1025kg/m 3 (9. one atmosphere (105 Pascals).3. the dependency of the governing equations and terms on pressure is often not taken into account. this is almost zero. A sample immersed to a depth of 2 in (5 cm) in 15 C seawater would experience an additional pressure equal to )P hydro ' h DH O g 2 ' 0. Almost all of the data which go into crevice corrosion models are collected at the same pressure at which the model will be run. In a laboratory environment. there is essentially .5%. The additional pressure which might be applied on a crevice in a normal laboratory environment is easily calculated.1. In thermodynamic terms.8m 2 /s .

oil rigs and wrecks could require an accounting of the effects of pressure. The pressure inside a bubble has to be higher than ambient to support the bubble and keep it from collapsing. can be gas bubbles. There are cases where extremely high pressures may be encountered along with crevice corrosion.8 m of water equals an additional atmosphere of pressure (105 Pa) . The other source of high pressure.145 no additional pressure on a creviced sample. so modeling of crevice corrosion on deep sea pipelines. . surprisingly. One is in the ocean depths. )Pinter ' 2( r (135) Where: ∆Pinter is the change in pressure caused by sustaing the additional gas/liquid interface [Pa] γ r is the surface energy of the gas/liquid interface [J/m2] is the radius of curvature of the bubble [m] Using the value of the surface energy for an air/water interface of 71. This excess pressure increases greatly as the radius of the bubble decreases. This is seen in the following formula from Bikerman[35].97 dynes/cm[20] the pressure change caused by a 1 µm bubble can be found. Every 9.

1. In order to produce models which are easier to solve. 2. the concentrations of the other species in solution.2 Simplification of Chemical Effects Chemistry plays an important role in transport and generation. many researchers simplify the role of chemistry and focus only on the effects of one or two chemical concentrations on the single parameter of .44@105 Pa This pressure is in excess of one atmosphere. The total pressure exerted on a bubble is the sum of the hydrostatic and interfacial pressure contributions. A commonly observed effect is that aerators in salt water cause salts deposits great distances above the waterline. )P ' )P hydro % )Pinter (137) The thermodynamic variables are often ignored because much of crevice corrosion modeling deals with systems that are essentially isothermal and isobaric.3. This cannot be said about the next group of thermodynamic variables.3.197@10&2 &6 (136) 10 .146 )Pinter ' ' 2( r 2 @ 7. The composition of solution can vary greatly and the myriad ways in which chemistry effects are simplified merit their own section. The small bubbles explode with great force when they reach the surface.

3.3.2. A typical assumption is that the mobility of a species is a constant and that the diffusivity of the species is related to it by the Nernst-Einstein relations given in Equation 80 from section 2. 2.147 heterogeneous generation.1 .2 the dependency of the transport coefficients ui and Di on chemistry is often ignored.2 Dilute Solution Approximation As was discussed at length in subsection 2.1 the transport equation itself is usually configured based on the assumption that solute ions are not interacting. instead of in terms of single ion activity or chemical potential.1 Transport Coefficients As was discussed in section 2.2.3.3.2.3.2. Di ' uiRT (80) As was discussed in subsections 2.3. This assumption allows the diffusional flux to be calculated in terms of concentration gradients.3. a term which is experimentally accessible.3.3 solute/solute interactions. terms which are not easily measurable.2.3.3 Generation Rates .1 repeated below. viscosity changes and geometry changes caused by precipitation can have an effect on the effective transport coefficients.2. 2.2.3. 2. Typically such effects are not included in models of crevice corrosion.2.

Three types of simplifications are made. Cathodic reactions such as HER and ORR.4 this local production of alkalinity can have a dramatic effect on the crevicing behavior. The first is that variations in chemistry are considered to be the result of only one or two species such as H+ or Cl-. produce hydroxyl ions which tend to raise the pH.3.148 The generation equations also often fail to fully reflect the dependence of corrosion rates on chemistry. Instead. Some theories even implicate metal cations. CrO4-2 or CO3-2 may play roles that are either detrimental or beneficial in arresting crevice corrosion.3. This film will slow corrosion as long as it is present. A third role chemistry can play to affect corrosion rates is to deposit a salt film on a rapidly corroding surface.4 Hydrolysis Reactions . as “bad actors” in crevice corrosion.1. which were presented as Equations 3 and 4 in section 2. The fourth and final assumption is to ignore the chemical effects of cathodic reactions occurring inside the crevice. it is measured at a number of finite points and the intervening behavior is inferred. As will be seen in Section 5.2. 2. Real systems exhibit corrosion rates which have very complex dependencies on solution composition. In many systems these two species may dominate.[14] The second type of simplification is that the behavior of a metal cannot be measured continuously over a range of solution compositions. a protective salt film can be deposited. If the solubility limits for a metal salt are exceeded. such as Al+3. but other anions such as SO4-2.

as was discussed in section 2.3 Simplification of Potential Effects Different potentials affect crevice corrosion. are usually reduced in complexity to some degree. Hydrolysis reactions are the homogeneous reaction most often included into crevice models. 36]. These effects are often simplified to some extent in order to produce tractable models. While .3.2 the mass transport equations are much easier to solve if diffusion is the only flux considered.2. 2. Some early crevice corrosion models were developed which only assumed diffusion as the transport mechanism[30. For instance.3. In addition to solution chemistry.3.3.3. Electrochemical potential controls the generation rates whereas solution and diffusion potentials affect transport.3.1..1 Assuming No Migration For technical reasons that will be discussed in Section 4. Another common simplification is to assume that the pH achieved by hydrolysis is determined solely by the most hydrolyzable species.3. The previously mentioned assumption is that the hydrolysis products are all mononuclear species. This is based on the idea that the equilibrium polynuclear products are slow to form.149 The effects of homogeneous reactions occurring in solution are often simplified to some extent.2. in crevice corrosion modeling of stainless steels it is often assumed that the hydrolysis of Cr+3 dominates the resulting pH. potential can have a large effect on the crevicing process. Even these reactions. 2.

However.[38] 2.2 under realistic values for the potential field. The best way would be to modify the terms in the governing equations so that charge imbalances never occurred.by the HER and/or ORR reactions given in Equations 3 and 4. The assumption of charge neutrality does not in itself cause large problems. The next most accurate way is to allow the charge imbalances which arise to remove themselves by migration under the influence of the resulting potential fields[28]. the solution inside a crevice is nearly charge neutral. 2. As will be seen in section 5.3. The drawback to the approach is that it is computationally slow. The rationale according to some authors is that pure diffusion cannot carry charge.4 this assumption prevents formation of an acidic environment because of the generation of OH.3.3 Assuming Charge Neutrality As was seen in subsection 2. The simplest and least physically justifiable approach is to adjust the concentration of a non- . It is not clear in a multicomponent system how to do this.3. the process is always present while there is a net current out of the crevice[37].3.3.150 the presence of a strong supporting electrolyte may decrease the available potential gradient to drive migration.3.2 Assuming No Diffusion Potential The diffusion potential is rarely included in models of crevice corrosion. the mechanism used to enforce charge neutrality can introduce errors.3. The only condition under which there is no net current is when 100% of the cathodic current is met locally. Three separate ways can be used to maintain charge neutrality.

3.4 Ignoring Temporal Effects Some models are only designed to calculate steady-state conditions[39-42].3.and homogeneous reactions can have a time dependence.3. . Unfortunately. T. An unstated assumption though is that the thermodynamic variables. This main advantage of this method is speed.151 reacting ion maintain charge neutrality. 2. Applying the governing equations developed in subsection 2. Temperature. Models which include the effects of time to watch the evolution in crevice behavior have a surprising number of time-invariant assumptions built into them. pressure. A model of a crevice also includes dimensionality. Ci and E uniquely determine the reaction rates.3. Metal corrosion behavior is heavily influenced by the formation and removal of protective films. There is a temporal dimension and several spatial dimensions to account for and these too are often approximated and simplified.4 Generation Rates As was seen in section 2.2 some of the common methods for representing polarization curves eliminate or reduce the effects of electrochemical potential on the reaction rate.3.3. chemical composition and potential are the thermodynamic variables affecting corrosion. P.1 accounts for chemistries and potentials which are created from an imbalance in transport out of and generation in a crevice. both hetero. Such models are useful for examining repassivation or long-term behavior.3. 2.

3. representing a crevice of 1 cm2 area and a nominal 10 µm gap as a twodimensional area with constant height may seem appropriate since the dimensions in the plane are much larger than the height out of it. 2. If the crevice former is appreciably softer than the corroding substrate.3. On its face. however. The discussion in subsection 2. Consider. The first broad simplification is usually to reduce the dimensionality of the problem.5 Simplifying Geometry Every crevice corrosion model makes broad generalizations of physical geometries in order to make the problem tractable.2. a metal’s corrosion rate and open circuit potential will take some period of time to reach steady-state. The final aspects of a crevice left to simplify are the spatial ones.2. the factors that go into establishing that mean height.and even one-dimensional approximations are common. In any case. A model which uses only mononuclear hydrolysis is ignoring a temporal dependence of hydrolysis.152 Such barrier layers take finite amounts of time to grow or dissolve. Even if temperature. two rough surfaces with features several microns high are pushed together with some force. A crevice does not consist of two atomically flat planes suspended a few microns apart. Instead. those involving more than one metal cation.3.1 on hydrolysis pointed out that polynuclear hydrolysis products. at some points where peaks meet the two materials .3. can take days to form. No published model accounts for such effects. then it may deform around the largest of the metal’s features. pressure and chemical environment are kept the same. Two.

pressure. It is likely that corrosion occurs first within a crevice at the most occluded point in the site.z.3. Corrosion occurs in a crevice because it is the tightest space on an object. what on a cm scale seems to be a flat surface is really a convoluted.y.z. warped sheet of fluid. These are the variables which (combined with temperature and pressure) govern not only the corrosion rate but also the mass transfer (and thus accumulation) of species within the crevice. Another effect that is not often accounted for is a changing geometry. No matter which method is used. Other types of change would be the formation of bubbles of evolved hydrogen gas or occlusions caused by precipitated films. a method of turning those equations into numerical results must be chosen. In reality. Laycock is one author who does examine changes in geometry[43].4 Methods of Solution for Crevice Corrosion Models Once the proper equations to represent the physical situation have been developed.y. solution composition and potential as well as the dimensional questions of time and space. 2. Several issues must be considered when choosing a method of solution for use in a . Increases in the crevice gap as metal corrodes away are one example of such changes. The next subsection concludes this section on modeling by discussing the techniques used to mathematically solve the governing equations after these simplifications are applied. the goal is to solve for E(x.153 are intimate contact and at still others valleys may coincide to create a very wide gap.t) and Ci(x.t). This subsection has addressed the various methods that are used to simplify the thermodynamic variable of temperature.

despite their drawbacks. once found.1. All other things being equal.4.1. Jwallsr 2 46h Jwallsrouter 46h 2 N(x) ' & % % N0 (203) This equation gives the potential distribution at steady-state as a function of radius in a disc shaped crevice of height h. Numerical solutions. The derivation is presented in Case 7 in section 4. An analytic solution gives the exact answer continuously over the variable space. The major choice is between an analytic solution and a numerical one.7 . An examples would be Equation 203 from Section 4. Analytic solutions.1. an analytic solution is preferable. are very robust in the types of boundary conditions and behaviors they can incorporate. radius router. are easily calculated and give the functional dependencies of the individual variables. filled with a solution of conductivity κ . Such solutions are slow to evaluate and it is a even more time-consuming process to find the sensitivities of a numerical model to the input parameters. A numerical solution on the other hand gives approximate answers at discrete points within the range of variables used.7. and having a flux along one face of magnitude Jwalls. 2. The major drawback to analytic solutions is that large numbers of approximations must be made to reduce the governing equations to forms simple enough to be solved.154 crevice model.3.1 Analytic Solutions An analytic solution produces a polynomial or other expression representing the potential or concentration field within a crevice.1.

this formulation still is very easy to work with. Similar approaches were used by several other authors[45-47] . such as the crevice length x0. 4C i 1 (2n%1)2 B2 t (2n%1)Bx sin exp &D j 2 B n'0 2n%1 x0 x 0 4 C i(x. The derivation for equation 233 is presented in Case 12 in section 4.3. The next equation represents the concentration of a species within a one-dimensional crevice with parallel sides of length xo. on the overall solution.155 and it is discussed and illustrated in greater detail there. initially filled with a solution of concentration Ci0 whose ends are immersed in solutions of zero concentration at t=0.t) ' (233) 0 While more difficult to calculate than equation 203.1. The explanation of the significance of the terms and the conditions under which .1.2 Misuse of Analytic Solutions One analytic solution in particular has been frequently misused in the modeling of crevice corrosion. The original derivation and the Psaila-Dombrowski rebuttal are reproduced here for completeness.3.1 and it is discussed and illustrated in greater detail there. 2.4. Edwards[44] presented a “proof “ that the concentrations of non-reacting species in solution depend exponentially on the potential in solution. This proposition was refuted by Psaila-Dombrowski[48]. Not all analytic solutions have the polynomial representation given above. The effect of each variable is very clear in each solution and a great deal of insight can be gained by considering the effect of individual parameters.

MC i Mx zi F RT M Ns Mx ' & Ci (139) If the partial derivatives are changed to total derivatives and the like terms are grouped the following equation is created.156 the solution is appropriate are new to this dissertation. Equation 44 is the flux equation for a chemical species. chemical concentration is a constant. For species that are being neither generated nor consumed the flux must be equal to zero at steady-state. d Ci Ci zi F RT ' & d Ns (140) If the above equation is integrated and the conditions at the mouth are defined as φs(x=0) = φs0 and Ci(x=0) = Ci0 then the concentration can be found . using the Nernst-Einstein equation and rearranging. ˜ ˜ ˜ Ji ' C i v & Di LC i & zi F u i C i LNs ˜ (44) At steady-state. With the additional assumption that there is no convection this statement of zero flux for the non-reacting species can be written below. ˜ ˜ 0 ' & Di LC i & zi F ui C i LNs (138) The equation can be rewritten by converting the grad operator for one-dimensional cartesian coordinates.

˜ Jel 6 ˜ Fj ziDiLC i 6 ˜ LNs ' & & (120) For a one-dimensional cartesian system this equation can be substituted into Equation 139 MC i Mx ˜ Jel 6 ˜ Fj ziDiLC i 6 ' zi F RT Ci % (142) The partial derivative of Ci can be converted to a total derivative if and only if there are .2.4. the integration performed on Equation 140 depends on the unstated assumption that φs was a variable only of x.3. In actuality the term is a function of chemistry and current and only through those terms is it a function of x.3. 2 ˜ ˜ ˜ Jel ' Fj zi Ji ' &F j zi Di L C i % j zi F u i C i L Ns i i i (117) The above can be solved for the gradient of φs as was done in Equation 120 of subsection 2.157 & ziF RT (Ns(x)&Ns ) 0 C i(x) ' 0 Ci e (141) Unfortunately. Psaila-Dombrowski presented the following argument[48]. The potential in the solution is equal to an ohmic component and one caused by the diffusion potential.4.3.3. The electrical flux can be found by summing the fluxes due to the individual ions.2. This was first done in Equation 117 in subsection 2.

These three conditions are fulfilled in the case presented in subsection 4.2. Three conditions must be met: 1) There must be no diffusion potential. This can be met for modeled cases where the flux is a constant at the tip or along the walls. An additional limitation is that each analytic solution is only appropriate to cases with exactly the same geometry and assumptions. . If Di is a constant for all anions and cations. the geometries have to be simple and the coefficients should either be constants or have easily expressed functional dependencies.158 no dependencies on variables other than x. Summary The problem with analytic solutions arises with the assumptions that have to be made to permit their use. In general. These limitations will be more apparent after a discussion of the various numerical methods which are available. This condition can be met if there is a large supporting electrolyte.1 and the CREVICER model does fit to the exponential expression of Equation 141. then this condition is met 2) The electrical flux must not depend on chemistry or position.1. 3) κ must be a constant and cannot vary with position or chemistry.

159 2.3.4.2 Numerical Solutions A numerical solution uses a computer to approximate the governing equations which control crevice corrosion. Spatially, the crevice is defined as a series of discrete intervals or elements. Results are obtained at a finite number of points where the elements meet. Temporally, the crevice is evaluated as a series of snapshots in time. One advantage is that once a computer program for solving crevices numerically is created, it can be applied easily and automatically to a number of geometries by merely changing the input data. Another strength is that any sort of functional dependence that is definable can be used in the computer program. A final advantage is that the accuracy achieved can be increased to any desired level at the expense of increased computation time. One of the major disadvantages to numerical solutions is that the increase in accuracy is paid for by non-linear increases in computational time. Increasing the spatial resolution for twoor three-dimensional models increases the solution time by the square or cube of the increase in accuracy. The other disadvantage is that the effects of individual variables on the overall solution is not easily found. Several different types of numerical methods have been used in modeling crevice corrosion with respect to spatial dimensions. They can be broadly grouped as finite difference (FD) , boundary element (BEM) and finite element (FEM) methods of solution. Temporal problems can be solved either implicitly, using only spatial information at time = t to find the state at t+1, explicitly, where information at t+1 is used, or mixed which is some weighted average of the two. Each is given a short capsule summary in the subsequent sections.

160 2.3.4.2.1 Finite Difference Method Finite difference methods of solution solve partial differential equations by dividing the problem domain into a grid of points[49]. The differential equations are written for each mode as difference equations. An example equation which could be solved by finite difference methods is Fourier’s law of heat conduction. MT M2 T ' k Mt Mx 2

(143)

Thus, the temporal differential becomes: T x &T x MT • Mt )t
t%1 t

(144)

Where: Txt ∆t is the temperature at point x at time t [K] is the change in time between t and t+1[s]

A similar process can be performed for the spatial differential. M2 T Mx 2 Tx%1 & 2Tx % Tx&1 ()x)2
t t t

k

(145)

Even when other methods are used to solve the problem spatially FD is usually used to

161 solve the problem temporally. The time dimension is a single axis and FD has good fidelity to such low order problems. The ease of calculation produced by an FD approach makes it the preferred method for such problems. The temporal solution can be either explicit, implicit or a mixture of the two. Explicit methods use only spatial information from time = t to find the field variable at a point at time = t+1. The method is simple to code and can be rapidly evaluated. Its drawback is that there are some limitation on the size of the steps in time and space that can be used and still maintain a stable numerical solution. This problem is discussed at length in section 3.2 on FEM. Implicit methods find the value of the field variable at time = t+1 in terms of the spatial information at time = t+1. This produces are group of n equation for n unknowns which must be solved simultaneously. The additional computational complexity is compensated for by increased stability. Mixed methods employ some average of the explicit and implicit techniques. The special mixed case where the two solutions are weighted equally is called Crank-Nicolson. Figure 2.3.4.2.1(a) illustrates the information in space and time that is used by each of the three techniques. It is adapted from Chapra and Canale[49]. Equation 138 can be placed into finite difference form by using equations 139 and 140. This is done first for an explicit and then an implicit formulation.
t%1

Tx

' Tx %

t

k)t )x
2

Tx%1 & 2Tx % Tx&1

t

t

t

(146)

The implicit formulation is: k)t )x
2

Tx ' &

t

Tx%1 %

t%1

1 % 2

k)t )x
2

Tx

t%1

&

k)t )x
2

Tx&1

t%1

(147)

162 The above is an expression with three unknowns. If it is applied to each node, it results in set of equations that can be solved simultaneously. Crank-Nicolson results when the spatial finite difference equation is the average of the two approaches. It is discussed more in section 3.2. The advantage of FD is that it is simple to implement. It’s disadvantages are that since it is based on a grid it is poorly suited for irregular geometries and heterogeneous media. Also, unless the algorithms are modified to allow non-uniform gridding the method does not focus the computational effort to where it is most needed. An alternate method of solution for partial differential equations is the Boundary Element Method.

163 2.3.4.2.2 Boundary Element Method BEM transforms the differential equations that apply across the interior of a volume into integral equations that are applied over the boundary of the volume. It is an appropriate technique for isotropic, homogeneous volumes with a low surface-to-volume ratio[50]. The technique grids the surface of the volume and solves the integral equations there. For a homogeneous media, knowledge of the surface concentrations and potentials allows the value of the fields inside the volume to be evaluated. The major limitation of the technique is that it is not suited for volumes which have a very high surface to volume ratio. For such domains the finite element method is superior. BEM solves over the surface and yields information about the interior. FEM solves over the interior and produces information about the surface.

2.3.4.2.3 Finite Element Method FEM treats a volume as a collection of simple shapes in contrast to FD’s approximation of a volume as a collection of points. The method makes an assumption about the shape of the distribution of the field variable between the nodes where it is evaluated. It then minimizes the error between this shape function and the “true” solution to find the best approximation to the exact solution. Figure 2.3.4.2.3(a) shows simple shape function for a one-dimensional problem. In this case the shape function is a straight line. It connects the node at Xi where the value of the field variable is Ti to the node at Xj where the value of the field variable is Tj. The value of the field

164 variable between nodes can be found by using the pyramid functions Ni and Nj. This is shown in equation form below. T e ' Ni Ti % N j Tj
e e

(148)

The values of the pyramid functions in this case are determined by the positions of the nodes and the x value of the point within the element being evaluated. Xj & X e Xj & Xi X e & Xi Xj & Xi

Ni '

e

, Nj '

e

(149)

This representation is used to find an approximate solution to the differential equation. As illustration, the application of FEM to a simple first-order differential equation will shown in the following example. The canonical equation is given below. d dT dT % M(x) % P(x)T % Q(x) ' 0 K(x) dt dx dx

(150)

If this differential equation is applied to T(e), the approximation of T presented in Figure 2.3.4.2.3(a), then the residual will be non-zero, re. d dT e dT e Ke % Me % P eT e % Q e ' r e dt dx dx

(151)

Ke, Me, Pe, and Qe are the values for the coefficients within the element. While they may vary from element to element, within each element they must be constant. It is not possible to make re equal to zero at every point. Only the exact solution has a zero residual everywhere. In the method of weighted residuals the integral of the residuals

165 multiplied by a weighting function over the element is set equal to zero. xl

Ri '

m x0

Wi r e dx ' 0

(152)

In Galerkin's method the weighting functions are the pyramidal functions xl

Ri '

m x0

N i r e dx

(153)

This can also be done for Rj. Once integrated Ri, and Rj, depend on Ti and Tj, and a constant. This can be expressed in matrix form as shown below. Bii Bij T C Ri 0 i & i ' ' Tj Cj 0 Rj Bji Bjj

(154)

The values of Bii, Bij, Bji, Bjj, Ci, and Cj, are given in Allaire[51] for one- and twodimensional problems. Each element produces an independent equation with one unknown for each node. The unknown is the value of the field element at the node. These equations can be solved simultaneously for the field variables. One advantage of FEM over BEM is that it is more suited for domains with high surface to volume ratios. Another factor which gives an edge to FEM is that crevices are highly heterogeneous. The generation rate varies strongly from point to point because of changes in

166 chemistry and potential. An advantage over FD is that the positions of the nodes are built directly into the equations. Practically, coding FD is only simpler when the node spacing is equal.

167 2.3.4.3 Summary: Issues in Choosing Methods of Solution Two main factors guide the choice of solution method for the differential equations governing crevice corrosion that were developed in subsection 2.3.1. The first is the functional dependency of the coefficients in the equations and the second is the shape of the domain that must be solved. The coefficients of the differential equation depend on the chemical and electrical generation rates, Ri and Rel, and the transport coefficients ui and Di. Essentially, analytic solutions are only practical for simple geometries and constant coefficients. Any irregularities in the geometry or dependence of the current on potential or chemistry make it difficult to find an analytic solution. When it is impossible to produce an analytic result, numerical methods can be used. FD is the simplest of the numerical techniques. Although it is easy to code, it is restricted in the geometries to which it applies and is somewhat wasteful of computational effort. BEM is a viable method for homogeneous domains with low surface-to-volume ratios. Crevices have high surface to volume ratios and are quite heterogeneous. The generation rate of chemical species and electrical current varies significantly within the crevice. FEM excels when working with heterogeneous media and high surface-to-volume ratios. A separate issue that does not differentiate between methods of solution is the trade-off between fidelity to the physical situation and ease of solution. A physical crevice has three spatial dimensions and changes in time. Any reduction in the dimensionality of the problem makes it much easier to solve by any of the analytical or numerical techniques described above. This section has focused on the differential equations that determine the chemical

168 concentration and potential fields inside crevices. described the kinds of simplifications that are made based on those factors and given a brief summary of the numerical methods that can be used to solve the equations. . discussed the factors that affect the coefficients in those equations. The next section will use this information to discuss the previous work that has been done in modeling crevice corrosion. It has derived the equations from the flux relationships.

An additional resource to this dissertation and its organization are the many literature review papers that have been produced. and pit propagation. Some papers also come from the related areas of cracking and cathodic protection. producing review papers on modeling of cracking[54.4 Literature Review A number of authors have treated the problem of modeling crevice corrosion. rather than by the material/environment system that was modeled. The papers are organized by model and/or group. Several years later Munn produced a similar review[53] Turnbull has been quite prolific. Notes on each paper follow Table 6 and are labelled alphabetically.169 2.[57-59] The major feature of this chapter is Table 6 which summarizes the modeling performed in over 55 papers. a group generally has a common approach to modeling that carries over through different models and researchers. One model may be the focus of several papers as it is refined. 55]. In 1987 Sharland reviewed the current modeling of crevices and pits[52]. The papers chosen cover the bulk of modeling work done on crevices and pits. . Similarly. Within each group the papers are organized in reverse chronological order with the most recent papers appearing first. This section will organize their work by their treatment of the different issues involved. occluded site chemistry[56]. The columns for the table and the abbreviations used in it are defined on the next page in Table 5.

Secondary authors are included in the bibliography Material studied in model.170 Column Reference Description Primary author’s name and reference number.Ac: Cl: CO2: H2O: NA: NO3: SO4: Type of method used to solve ? governing equations Anal: BEM: FD: FEM: Num: Dimensionality of crevice Type Dim (cyl): Cyclindrical coordinates 1D: One dimensional 1D+: One free dimension + changes in second 2D: Two-dimensional 2D+: Two free dimensions + changes in third . Ag: Al: Cu: Fe: NA: Ni: SS: Ti: Zn: Silver Aluminum and alloys Copper and alloys Iron and steels Not applicable Nickel and alloys Stainless Steel Titanium and alloys Zinc and alloys Acetate containing Chloride containing Carbon dioxide-rich High purity water Not applicable Nitrate containing Sulfate containing Not clear from paper Analytic Boundary Element Finite Difference Finite Element Iterative technique Abbreviations Mat Env Environment studied in model.

Description of columns and abbreviations for Table 6.171 Column Time Description Abbreviations Crank-Nicolson Explicit Implicit Steady-state No Yes No Yes No Yes Linear on some variable Constant Polynomial on some variable Exponential on potential No Not Applicable Poisson’s Equation Yes No Yes No Yes Technique used to model time C-N: variations Exp: Imp: SS: Is diffusion considered as a flux mechanism? Is migration considered as a flux mechanism? N: Y: N: Y: Diff Mig Conv BC Is convection considered as a N: flux mechanism? Y: Representation of electrochemical flux Lin: Pass: Poly: Tafel: N: NA: Pois: Y: CN How is charge neutrality considered? Ppt Are chemical reactions other N: than hydrolysis Y: considered?(No pH effect) Is hydrolysis considered? N: Y: Hyd Notes Letter reference for notes following the table Table 5. .

Siitari[67] Alkire[35] Cu Ni Cu SS Al NA Fe Al Al NA Cl Cl SO4 Cl Cl NA SO4 Cl Cl NA FD FEM BEM. FEM FD An FEM Num FD FD FEM 2-D 2-D 2-D 1-D (cyl) 1-D(cyl) 2-D 2-D 1-D (cyl) 1-D (cyl) 2-D SS SS SS Imp SS SS SS C-N C-N Y N Y NA Y Y NA Y Y Y NA N Y NA Y N NA N Y N NA Y N NA N N Y N N N NA Tafel Tafel NA Poly Lin. 26.Ni Cl Cl Env Cl CO2 Type FD FD FD FD FD Dim 2-D 1-D 1-D 1-D 1-D Time Exp Exp Imp Exp Exp Flux Diff Y Y Y Y Y Mig Y Y Y Y Y Conv N N N N N BC Pass Tafel Pass Pass Pass CN Pois Pois Pois Pois Pois Chemical Ppt N N N N N Hyd Y Y Y Y Y Notes A B C D E Georgiadou[24. 62 3] Harb[63] Alkire[34] Alkire[64]. Lott[15] Alkire[39] Alkire[33] Alkire[20] Herbert[14. NA Tafel Tafel Tafel Pass NA Y NA Y Y NA Y Y Y NA Y Y NA N N NA N N N NA Y N NA N N NA N Y N NA F G H I J K L M N O .Ni SS.Ti SS.Solution Method Reference Evitts et al [60] Watson[61] Evitts[62] Watson[9] Watson[28] Mat Ti Fe Ag. 65] Alkire[66].

F e Fe Cl Cl Cl FD FEM Num 1-D 1-D 1-D Exp? Exp? SS Y Y Y Y Y Y N N N Pass Tafel Pass Y Y Y Y Y Y Y Y Y W X Y Oldfield[74] Oldfield[75] Oldfield[4] Al SS SS Cl Cl Cl Num Num Num 1-D 1-D 1-D Exp Exp Exp N N Y Y N Y N N N Pass Pass Pass NA Y Y Y Y Y Y Y Y Z AA AB . 41] SS SS.FD Dim 1-D Time C-N Flux Diff Y Mig N Conv N BC Tafel ? CN Chemical Ppt N Hyd N Notes P Turnbull[8] Turnbull[69] Turnbull[70] Gangloff[71] Turnbull[72] Turnbull[46] SS Fe Fe Fe NA Fe H2O Cl Cl Cl NA Cl Num ? ? ? ? ? 1-D+ 1-D+ 1-D+ 1-D 1-D+ 1-D N N N N N N Y Y Y Y Y Y Y Y Y Y N Y N Y Y N Y N pass Tafel Tafel Tafel NA Tafel N? Stated Stated Stated Stated Stated Y Y Y N NA Y Y Y Y Y NA Y Q R S T U V Sharland[6] Sharland[73] Sharland[40.Solution Method Reference Alkire[68] Mat Cu Env SO4 Type An.

F e Fe Cl.Al Al Cl Cl Anal Anal 1-D 1-D SS SS NA NA NA NA NA NA NA NA Anal Anal NA NA NA NA AL AM . SO4 Ac FD FD 1-D 1-D Num N? Y Y Y Y N N Poly Poly ? ? Y Y Y Y AH AI Fu[38] Fu[37] Ag Cu NO3 Cl FEM FEM 1-D 2D+ Exp? NA Y NA Y NA N NA Pass Poly ? NA Y NA Y NA AJ AK Edwards[44] Edwards[23] SS.Solution Method Reference Gartland[7] Gartland[7] Gartland[76] Gartland[29] Bardal[77] Mat SS SS SS SS SS.F e Env Cl Cl Cl Cl Cl Type FD Anal FD FD BEM Dim 1-D 1-D 1-D 1-D 2-D Time Y Anal Exp Exp NA Flux Diff Y NA Y Y NA Mig Y NA Y Y NA Conv N NA N N NA BC Poly Poly Poly Poly Poly ? NA ? Y NA CN Chemical Ppt Y NA Y Y NA Hyd Y NA Y Y NA Notes AC AD AE AF AG Walton[10] Walton[78] SS.

NA NA NA AT Munn[81. 82] Fe.Ni Cl FD 1-D Imp Y Y N Pass Make N Y AS Lillard[80] Ni Cl FEM 1-D NA NA NA NA Der. etc Fe.Zn Cl FEM 2-D+ SS NA NA NA NA NA NA NA AU .Solution Method Reference Gaudet[79] Tester[30] Mat SS. Anal Dim 1-D 1-D Time Anal Anal Flux Diff Y Y Mig N N Conv N N BC Tafel ? CN NA NA Chemical Ppt NA NA Hyd NA NA Notes AN AO Gravano[45] Galvele[42] Galvele[36] Fe. Zn Fe. etc Cl Cl Cl FD ?Anal ?Anal 1-D 1-D 1-D SS SS SS Y Y Y Y N N N N N Pass Pass Pass ? ? ? Y Y Y Y Y Y AP AQ AR Sridhar[19] SS.Ni Env Cl Cl Type Anal.Ni SS.

Ni H2O FD 1D Imp Y Y Y Tafel Y Y Y BA Engelhardt[86] Fe Cl Num 1D SS Y Y N Pass Y Y Y BB Ateya[87] Xu[88] Fe Fe Cl NH4 Ac Num FEM 1D 2D Exp SS N NA N NA N NA Poly Poly Y Y N N Y N BC BD .Bertocci[83] Cu/A u Cl Anal 1-D N Y Y N Tafel Y Y Y AV Solution Method Reference Laycock[43] Mat SS Env Cl Type FEM Dim 2D(cyl) Time Exp Flux Diff Y Mig N Conv N BC Lin CN N Chemical Ppt N Hyd N Notes AW Shaw[84] Ni Cl Anal 1D NA NA NA NA Pass NA NA NA AX Shuck[85] Shuck[86] - Cl Cl Num Anal 2D+ 1D Exp Anal Y Y Y N Y N Tafel ? Y ? N N Y N AY AZ Psaila-Dombrowski[48] SS.

. Summary of Models Reviewed in this dissertation.Ateya[47] - - Anal 1D SS NA NA NA Tafel Y N N BE Table 6.

One possible explanation for these transient spikes may be the “micro-celled” idea that the authors use. SO4-2 and pH at selected points is graphed.178 A)[60] A one-dimensional titanium crevice is coupled to a two-dimensional boldly exposed surface in room temperature 0. No potential information is presented and it is unclear whether the chemical effects of cathodic reactions are included. Sulfate and chloride are present at lower levels. The chemistry is predicted to become monotonically worse with longer time and greater depth into the crevice. CO3-2. The boundary conditions are purely Tafel-like for both anodic and cathodic reactions.5 M NaCl in this model. Apparently there is not a smooth transition from nearly purely cathodic to nearly purely anodic reactions. A strength of the work is the detail used in calculating the formation of various carbonate species. The graphed data shows what appear to be numerical instabilities. B)[61] The model represents a one-dimensional crevice of pipeline steel in carbonaterich neutral waters. Data for the transient concentrations of Fe+3. The authors present data on the transient pH and chloride fields at selected points in the crevice as well as the spatial distributions at a few snapshots in time. The crevice first appears to alkalinize and then acidify. but never to reach levels that would be damaging. . There appear to be some transient instabilities in the pH near the mouth that affect the model. Deoxygenation is allowed to proceed naturally.

Essentially. D)[9] The sensitivity of a crevice to locally more constricted sites is evaluated by using the Watson-Postlethwaite model.5 cm deep with a gap of 3. A subcrevice of 0.1 µm was placed over approximately 10% of the crevice. The presence of a subcrevice was found to be extremely damaging.179 C)[62] This paper presents the model used in (A)-(E).1 M NaCl. There do not appear to be any significant instabilities.8 µm and was considered to initiate when the pH dropped below some critical value. Because of the large computational burden it is solved in series with the equations. Ag dissolution in KNO3 and Ti crevicing in 0. Transient data on the pH. No data are presented to show the different results that might be obtained if Poisson’s equation is strictly enforced or if it is occasionally enforced by either the serial Poisson or a brute force approach. it is used to correct any charge imbalances produced by the model. independent of chemistry and potential. Two cases are modeled. Each was modeled in 1 M NaCl as a crevice 2. The use of Poisson’s equation in this body of work to maintain charge neutrality is explained in detail. . The two materials considered were 316L and 625. In both cases the anodic dissolution was taken as a constant. O2 content and various chemical concentrations are shown. Essentially the authors would prefer to solve the differential equations in parallel with Poisson’s equation.

While this system is analogous in many respects to a crevice.5 M HCl + 0. Indeed. F)[32] This series of papers is a study of the anisotropic etching of copper foils[24. Homogeneous chemical reactions were also considered in this two-dimensional model. The dissolution of copper in 0. and convection. The authors used a FD method to find the steady state dissolution rate for two initial geometries. G)[63] A two-dimensional FEM model was used to study the pitting corrosion of .180 E)[28] The original published work for this “family” of crevice corrosion models presents the results of modeling the crevice corrosion of 316L and 625. one of the goals of the chemical process being modeled is to use convection to maximize mass transfer from the pit base. diffusion. was modeled. The crevices have the same geometry and solution as (D) without subcrevices.5M or 0. the convective term was prominent only because the “pit” was very open and solution was flowed past the open mouth.5 M) CuCl2. 26]. Here too the corrosion rate is assumed to be a constant.5 M KCl + (3. The model is a finite-difference one-dimensional model that incorporates hydrolysis and the consumption of O2. When examining the initiation of crevice corrosion it applies the CCS model. The complete mass transfer equation was used as the authors included the effects of migration.

32].e. The authors mention that they use a separate analytical solution for the potential field. despite their claims.27 cm radius and a uniform gap of 4 µm. The polarization curve used takes potential but not local chemistry into account. The dissolution of partially unmasked copper substrates in 1M H2SO4 was modeled using both BEM and FEM. The authors point out the concentration gradients extend far into solution. An important aspect of this work is that the transport is modeled in areas outside the occluded site as well as within it.5M NaCl.and S2O3-2 ions to define the critical solution chemistry is used to model the initiation of crevice corrosion on 304. The experimental work supporting this modeling is presented in a companion paper[15].. the authors have seven equations for only six unknowns. it is a one-dimensional crevice in cylindrical . This is important because a common assumption is that the concentrations at the mouth are identical to the bulk composition.181 nickel in 0. 26. Charge neutrality is used as a governing equation. H)[34] This work is a precursor to the later papers of Georgiadou[24. i. It appears that. The crevice modeled had a 1. I)[64] A variation of the CCS model that uses a combination of Cl. It replaces an Ohm’s law approach for the potential. The focus of this work is on convective mass transport rather than the resulting behavior of the pit.

The metal was assumed to dissolve at a constant rate of 0.7 mm and crevice radii from 6. Finally.1 to 0.9% aluminum in modeled and compared to experiment for crevice heights of 0. although the trends with increasing MnS are similar.7 mm. 65] The dissolution rate of aluminum in the passive region is assumed to be linear with overpotential. J)[39] A circular crevice of 99.15 µΑ/cm2. The criteria used for initiation was a variation of the CCS model in which the critical environment was 0.35 to 12.182 coordinates. The model consistently overestimates the observed initiation times[15].003 M Al+3. An implicit method is used to find the changes in concentration with time. The dissolution of the MnS particles is assumed to be potential dependent and follows a second-order polynomial. This paper reports on studies calculating the degree of mixing for various flow regimes over several geometries. The surface of the pits were held constant at a saturated value and the steady-state concentration field within . This increase is caused by the potential dependence of the MnS dissolution. K)[33] Convective flow can greatly accelerate the removal of corrosion products from a localized site. there is a slight increase in the aggressiveness of the solution at intermediate distances into the crevice. Ohmic drop into the crevice eventually slows MnS dissolution. The work is a successor to Hebert’s[14.

then the entire site remained almost entirely saturated. The model produces initiation times for various crevice gaps. These effects do not appear to be consistent with the published boundary condition. As in those two papers. The flux of aluminum dissolution is stated to be either zero or to depend linearly on potential. The authors model potential distributions between two plates and calculate the maximum Reynolds number which allows precipitation to occur for both laminar and turbulent flow and ohmic and activation control. M)[65] This paper presents an intermediate stage of investigation into the crevice corrosion of aluminum in 0. If the Peclet number was less than or equal to 1.05 M NaCl. If it was greater than orequal to 100 the electrolyte was free of dissolution products. It falls between the later work of Alkire[39] and the earlier work of Alkire[67]. There is no listed corrosion rate for initiated . The model is solved using a FD method and uses Crank-Nicolson to evaluate the time variations. Data are presented which shows current spikes and pH drops at the initiation time. This combination of fluid flow and salt film precipitation is not likely to be encountered for crevice corrosion. the modeled crevice is a one-dimensional cylindrical crevice.183 the rest of the occluded site was found. L)[20] Iron dissolution in flowing H2SO4 can be limited by the formation of salt films.

The dissolution rate accounts for chemistry changes and the effects of . Temporal effects are accounted for by growing the surface. A FD approach is used to model accumulation of Al+3 ions in aqueous solution.184 material. This aspect allows initiation to occur as part of a continuous process rather than a discontinuous one. P)[68] This paper models the forced dissolution of copper wire in Cu2SO4 in a lead in pencil arrangement. The only transport mechanism considered is diffusion. The distributions in the solution appear to be steady-state. A FEM approach is used to model the growth of a metallic deposit. O)[35] Plating is the inverse problem of corrosion. The model accounts for chemical transport by diffusion only. N)[66] This paper presents the initial work by Alkire’s group on modeling the crevice corrosion of aluminum. Butler-Volmer kinetics are used to describe the surface reactions. No chemical variation appears to be built into the reaction. Another contrast to the later work is that the dissolution condition for the aluminum includes the effects of pH. The deposition of metal on a surface does share in common with dissolution the need to account for changing chemical concentration and electrical fields. The growth rate can be found from the current density.

but chemistry does affect the cathodic . The temperature problem is accounted for principally by translating the solubilities to 288 C. Although the wedge-shaped opening is nominally two-dimensional. Instead the authors use a polynomial fit of experimental data on conductivity. An additional factor considered in the model is the fact that the conductivity of concentrated solutions does not follow dilute solution theory. This issue was discussed in Section 2. that second dimension only appears in the purely one-dimensional formulation of the governing equations as a modifier to the generation terms. Q)[8] In many ways a crack is similar to a crevice. Other complicating features accounted for in this model include the effects of stress on dissolution rate and temperature.4 of this dissertation. Neither the stress intensity nor the temperature are affected by the model. For this reason. The geometries are similar and calculations of chemical concentration and potential fields are integral to the problem. The stress intensity is an input factor into the model and does not vary. The author presents a model that addresses the cracking of sensitized stainless steel in a BWR.l. the approach is classified as “one-dimensional +”.185 ohmic drop inside and outside the pit and activation overpotentials. The model is also a steady-state code and does not calculate any transient information. There are no chemical effects allowed on the dissolution rate. The modeled regions were cracks with both parallelsided and wedge-shaped geometries.3.

diffusion. Convection is considered because these cracks are subjected to a cyclic stress that alternately opens and closes the crack. One difficulty in . R)[69] Turnbull and Ferris model corroding fatigue cracks in structural steel in seawater. The chemical effects of the cathodic reactions are also included. pH effects are discussed only in the context that the sparing solubility of the corrosion products allows a conversion of metal anion flux into a flux of hydronium. This motion creates a “crack pumping” effect that efficiently exchanges solution in the crack with that in the bulk.186 reactions. S)[70] The cracking of cathodically protected carbon steels in seawater is the problem modeled by Turnbull and Ferriss. The major difference is that without the alkalinizing effect of the cathodic reactions the crack tip pH remains nearly neutral to slightly alkaline. and convection. The model is in most respects similar to work done earlier on cracks that were undergoing cathodic protection[70] and the comments on that paper in (S) apply here as well. no data are presented on the chemistry or pH of the crack. Chemical equilibria are enforced for the carbonate and carbonate ions as well as the deposition of calcium and magnesium compounds. Hydrolysis is considered as well. The model includes the effects of mass transport by migration. Despite the title of the work.

but the method is not defined in this paper. If hydrogen is the bad actor in EAC. Only migration and diffusion are used for the transport processes and the dissolution rate is Tafel-like. A major conclusion is that cracks will become quite alkaline in pure water (pH~12) and that seawater will exert a buffering effect reducing this to approximately pH = 11. then this would explain the “short crack” effect that is often observed.5 wt% NaCl with crack length. All solutions are presented as steady-state ones. T)[71] Gangloff and Turnbull present a joint study comparing experimental data on cracking of the high strength steel 4130 in 3. The equations are solved numerically.1.187 interpreting the paper is that the list translating the notation into chemical species is missing an entry. Hydrogen reduction is a prime area of focus in the paper and is affected by both potential and [H+] as was discussed in section 2. The major conclusion of the paper is that shorter cracks can have an order of magnitude greater generation rate of elemental hydrogen at the crack tip. The model is only operated where the ohmic drop is small and . U)[72] The author presents a focused examination of the effects of mass transport on corrosion fatigue cracks. The transport processes considered are convection and diffusion.

Without cathodic protection the crack tip is nearly neutral. The major conclusions of the work are that 1) Crack length is an important parameter in addition to K. The dissolution rate is a Tafel equation and is independent of chemistry.188 migration can be safely ignored. The steady-state crack tip pH depends on the mouth potential. W)[6] The author presents a brief overview of the “CHEQMATE” model and shows its applications to several systems. Since the focus is on the relative contributions of diffusion and convection to mass transport rather than any specific chemistry the work is done without electrochemical boundary conditions or equilibria. with it the tip is alkaline. and 4) Crack shape has a large effect on transport but not on the relative contributions of convection and diffusion. The code allows mass transport by migration and diffusion. This version of a model representing the crack electrochemistry of corroding steels uses only the mass transport processes of migration and diffusion and ignores convection. . V)[46] This is an earlier version of the work in (R)[69] and (S) [70]. 3) Convection becomes more important in long fatigue cracks because the displacements are larger. The type of electrochemical generation is not explicitly mentioned. 2) short cracks are dominated by diffusional transport. Also the later additions of stress intensity on the dissolution rate were not added at this point.

Section 2. No statement is made as to how charge neutrality is maintained. it appears that the model is strictly one-dimensional. The model is compared to the work of Beavers and Thompson[89] and Alavi and Cottis. For both sets of data the model is quite accurate in predicting the ohmic potential drop at steady-state but less successful in predicting the observed pH’s and current distributions . is used.3.2. and precipitation are included through the use of “PHREEQUE”. The electrochemical generation terms are Tafel expressions and hydrolysis is performed. Despite the fact that the flux equation is written in two-dimensional form. presented in this dissertation in subsection 2. The chemical effects of cathodic reactions are not included.1. A modified form of the Davies equation. a geochemical code.1.189 but all three cases shown used only a passive current density. chemical equilibria.6 of this dissertation discusses the apparent contradiction between these two equations.2.3. The major limitations of this model appear to be the restricted form for the anodic dissolution current and the exclusion of the chemical effects of cathodic reactions. X)[73] The authors present a one dimensional FEM model of crevice corrosion. The hydrolysis. One strength of the code is that it uses a correction for the thermodynamic information in concentrated solutions. Poisson’s equation is used to find the potential distribution and charge neutrality is also invoked. The model accounts for migration and diffusion.2.

The model is a onedimensional FEM model that incorporates migration and diffusion for transport processes. Tafel-like behavior for electrochemical reactions and allows hydrolysis and chemical equilibria to occur. Z)[74] This model for the crevice corrosion of various aluminum alloys in seawater uses predictions of the temporal changes in chemistry and potential to predict when an alloy will pit.190 over time. the increasing acidity acts as a chemical potentiostat and by increasing the kinetics of the HER (discussed in section 2. The corrosion current is strictly passive whereas the HER kinetics are sensitive to both chemistry and potential. The criteria for initiation used in this paper is when the corrosion potential exceeds the pitting potential. Rather than directly attacking the metal. According to this theory the effect of a crevice is to acidify the local environment. Increasing the cathodic kinetics will raise the corrosion potential. The transport mechanism allowed is migration. The authors point out that cathodic reactions inside the site might account for the discrepancy. Y)[40. It is not clear what method is used to account for time variations in chemistry and potential within the occluded region. Although charge neutrality is listed as a governing equation. Only two of the . no mention is made of how it is applied.1). 41] These papers present the model used later in (W) and (X).

A further simplification is that all the alloys were assumed to have a passive current density of 0. AA)[75] This paper compares predictions of the Oldfield-Sutton model[4] to the experimental data for several stainless steels in seawater. In this paper the model is used only to rank the relative resistance of the different alloys. AB)[4] This is the seminal paper for the CCS model of crevice corrosion. The inputs to the model are the composition of the alloy. The model’s inclusion of the chemical effects of cathodic reactions is problematic. Instead the alkalinizing effect of the cathodic reactions will raise the pH. so no transport is allowed or used. AlCl3 is mentioned in the text as a possible precipitate.will poison the reaction and prevent acidification. but is not listed in the governing equations. The authors .3. it is stated that this is the primary cathodic reaction inside the crevice. Acidification does not occur at the open circuit potential for reasons that will be discussed in section 5. Indeed. OH.1 µA/cm2.production from the HER is listed a reaction that is considered. acidification has a limited ability to raise the corrosion potential in a freely corroding crevice because the buildup of OH. its passive current density.191 mononuclear hydrolysis products for aluminum are considered. The paper shows that a mechanistic model can also be used to generate qualitative data on alloy performance for use as a screening tool. and the required critical crevice solution in terms of pH and Cl-. In short.

The analytic model is covered separately in (AD). The electrochemical boundary conditions which are included are very sophisticated. AC)[7] Two models are used in this paper. the extremely low pH’s shown (pH < -1) strongly . Several curves are entered to account for the effects of pH changes on polarization behavior. A further modification of the polarization with chemistry is that when the solution becomes supersaturated a salt film is allowed to precipitate and slow the corrosion rate exponentially. The model allows the migration and transport of chemical species of the crevice. A strength of the model is the variety of hydrolysis reactions that are considered. Alloy dissolution is assumed to be only a passive current density and no cathodic reactions are assumed to occur within the crevice after the initial charge of O2 is depleted. The crevice is not subdivided into different regions and the process is solved numerically. Polarization curves are approximated piecewise with linear segments. No mention is made of the concentrated solution thermodynamics shown in other presentations of the same model[29]. Migration is the only transport mechanism considered. One is a numerical model and the other is an analytic simplification. However. Estimates are shown for the ranges over which the assumption of no diffusion is appropriate.192 take the qualitative description of Fontana & Greene[3] for the initiation of crevice corrosion and turn it into a predictive model.

a passive region near the mouth. It more complete than that later description. Essentially this formulation is an IR* approach that uses an assumed chemistry change to stop corrosion rather than further potential drop. The corrosion rate is assumed to be constant and high in the corroding region and effectively zero in the other two. AD)[7] A simple analytic model for use in predicting the corrosion inside a crevice is also presented in this paper.193 suggest that the activity coefficient of H+ is being modified. This model also predicts intermediate attack. The conductivity and geometry also vary between regions but are constant within each. The second is the salt film mechanism. A . AE)[76] This is an earlier presentation of the model later used in (AC)[7]. No accounting for the chemical effects of cathodic reactions is made. which are already included in their model. It is unclear why the effects of potential. It elucidates the pH corrections for strong salts and describes changes in ionic mobilities in concentrated solutions. and a salt film limited region near the base. The authors state that it is the salt film which stops dissolution at the crevice depths. The crevice is assumed to consist of three regions. Two effects in this model can slow the dissolution rate. a corroding region. This model allows predictions to be made about the location and depth of attack. The first is a potential drop. Charge neutrality is not mentioned. are ignored.

It presents in detail the approximations made and the experimental data to which the simplifications were compared.194 unique feature of the model is that temperature effects are also included. The electrochemical boundary conditions are assumed to be Tafel-like for the dissolution. Corrosion rates and transport coefficients change with temperature. The model is a one-dimensional FD code that allows mass transport by migration and diffusion. The model . Chemical hydrolysis and other reactions are accounted for. AG)[77] A BEM approach is used to find the galvanic corrosion between a carbon and stainless steel couple in flowing salt water. The flow conditions are used to modify the cathodic reaction rate. It accounts for the effects of temperature. A minor limitation is that chemical precipitates are not allowed to block the crevice. The model is solved by a FD method. The cathodic reactions are assumed to be mass transport limited. A more important limitation is that the chemical effects of cathodic reactions do not seem to appear in the governing equations. The model only calculates the potential distribution between the two plates. concentrated solutions and viscosity on transport coefficients and the piecewise linear approximations made of the polarization curves provide good fidelity to experimental data. AF)[29] This report is the most complete representation of the Gartland model used in (AD)[7] and (AE)[76].

The author may be using a time-marching approach to find a steady-state solution. AI)[78] This paper presents an earlier version of the model shown in (AH)[10]. This treatment is apparently only intended for use in chemical equilibria.3.195 predicts that the greatest attack will occur on the carbon steel immediately adjacent to the stainless steel and that increasing the solution resistivity will exacerbate the attack there.2. The model is a onedimensional finite difference representation of a crevice that includes mass transport by migration and diffusion.2.3.2 of this dissertation and scaled for the assumed viscosity of the solution as was shown in subsection 2. Strengths of the model include the handling of concentrated solutions. AH)[10] The authors present an updated version of an earlier model. temperature and chemistry. It differs from the later work in that while the governing equations are presented in a temporal form but no data are shown in a time-varying format. Comparisons are shown between predictions of potential and experimental data.2. Various hydrolysis and chemical reactions are allowed and the heterogeneous electrochemical reactions can apparently be based on any combination of potential. The model also generates information about the chemical concentration fields inside the occluded region. The transport coefficients seem to be determined by the Nernst-Einstein relationship given in subsection 2.2. The general conclusion is that the . The model predictions compare favorably with the experimental results. The paper includes a section on dimensional analysis.

Since the geometry is axisymmetric the problem is actually only onedimensional in cylindrical coordinates.196 condition in the crevice are the result of a competition between generation and transport. The author presents an alternate formulation for the E-I relationship that uses a variable polarization resistance instead of a polarization curve. The generation rate is a constant value and chemical reaction is allowed. AJ)[38] This work presents a one-dimensional FEM model of chemical reaction and transport. a commercially available FEM program to calculate potential distributions for a two-dimensional axisymmetric geometry. The authors present a sharp delineation between the Ag+ and K+ species in solution. A very interesting result are the graphs of concentration as a function of position. The authors present a justification for the use of Ohm’s law. The author uses WECAN. AK)[37] A prelude to the later work of (AJ)[38] was this effort at calculating potential distributions. The apparent advantage of this formulation is that it is well suited for use in commercial FEM programs. Deeper crevices will thus form “stronger” cells. The transport coefficients are a complicated function of the ionic strength. The model uses a explicit approach to solving the temporal variation. . The model is compared to experimental results for the silver in potassium nitrate moving boundary experiment.

The data was modeled by an analytic solution that only considered diffusion.2. AM)[23] This work is an earlier presentation of the model in (AL)[44]. This was coupled with a potential drop model to find the effective potential at the bottom of the pit. The “proof” is that at steadystate the concentrations of the non-reacting species must be the result of migration and diffusive fluxes that exactly cancel. A final assumption was that the concentration gradient was linear throughout the . AN)[79] The authors studied the dissolution of SS 304 and the Ni-based Alloy 600 wires to investigate pit repassivation.1 of this dissertation.4. The author uses the theory to explain the observed crack tip chemistries in 7075 in various halide solutions.197 AL)[44] The author presents a simple analytic expression to relate the concentrations of non-reacting species to the potential in solution.3. The issue is also discussed in subsection 2. The model assumed that the dissolved species could be represented by a single “average” species and that the conditions at the mouth were exactly those of the bulk. This method has been refuted by Psaila-Dombrowski in (BA)[48]. Wires of the two materials were held at anodic potentials to form salt films and then the potential was stepped down and the current decay was recorded. This assumption gives rise to a relation that expresses the concentrations of the species in terms of the potential in solution.

The model used accounts for viscosity changes as a function of concentration. AO)[30] The authors present a model for the mass transport of chemical species out of a pit. These two tools and the assumption are used to calculate the corrosion rate at the surface as a function of saturation for several potentiostatic holds. AP)[45] The author models the steady state distributions of chemical species inside 1-D pits of Fe and Zn in borate buffer solution. This work differs from (AQ)[42] and (AR)[36] in that it includes buffering reactions and considers the effects of migration on mass transport. The model shows that pits which are very strongly polarized (~1V) will become saturated and diffusion limited.198 pit initially. They plot the resulting concentrations of chemical species as a function of the product of current density and depth. Predicted stable states where the generation rate for a particular saturation was equal to the transport rate were confirmed experimentally. a more rapidly corroding pit can be shallower than a more slowly corroding one and still have equivalent conditions at the base. The model yields insights into the stabilization of pitting under different conditions. Migration is assumed to be negligible because of the salt film that forms with large anodic polarization. . Diffusion is the only transport mechanism considered. The correction appears to work well for pits of different depths. In other terms.

no cathodic reactions are allowed to occur. There are two very interesting aspects to the model. The first is the inclusion of the effects of temperature into the transport coefficients.199 These extra complicating factors also caused the model to be solved numerically rather than analytically. Precipitated species are assumed to be protective. The model is applicable to a number of divalent metals such as zinc and iron. AS)[19] This paper presents a transient. performing the full hydrolysis calculation allows the regions where the soluble species dominate to be identified as the ones where pitting is stable. The model is an analytic one and only considers diffusion. AR)[36] The author presents his model for the stability of different phases based on the product of current and depth. Only the first hydrolysis product is considered and only anodic dissolution is assumed to occur inside the pit . The goal of the paper is to help clarify the combinations of pit size and corrosion rate that are self-stabilizing. AQ)[42] The author extends his previous model[36] of crevice corrosion to include the full hydrolysis of metal cations instead of only the first product. O2 . one-dimensional finite difference model that uses an implicit method to find the varying chemical concentration and potential fields.

. A thousand node simulation would require one hundred times the calculation. This paper was performed with an eleven node system.200 solubility. The model was simplified by reducing the number of species considered by eliminating all but chromium hydrolysis and switching to the brute force approach for charge neutrality. The disadvantage is that for this model the time multiplier in the best case was only 1200. The computation time for solving a tridiagonal matrix. and even dielectric constant. This model points out the difficulties and advantages of modeling performed on long-term structures like nuclear waste containers.25 units higher and a chloride content which is ~ 2/3 that of the Poisson corrected model. The second is that the authors justify their use of a brute force approach to correct the charge imbalances by direct comparison with the use of the Poison term approach of Watson and Postlethwaite[9. The authors prefer to simply adjust the chloride concentration to correct any charge imbalance after a chemical transport step. 28. This procedure results in a pH which is ~0. A larger factor in keeping the multiplier high which was not mentioned by the authors was the small number of nodes used. The advantage is that modeling can make predictions over a longer time span than is practical to experiment. For an unbanded matrix the penalty goes as the number of nodes squared. goes as the number of nodes . like that the authors used. 60-62].

201 AT)[80] In an investigation of the crevice corrosion of 625 in chlorinated seawater the authors compare the results of two independent models to predict crevice corrosion. It is a two-dimensional axisymmetric model. 82] The authors present a FEM model for the calculation of galvanic corrosion. These potential results were compared to data from Oldfield and Sutton[4] about the minimum crevice gaps and depths needed to sustain electrolytes of different pH’s. AU)[81. The governing equations are solved by FEM. The approach is similar to Fu[37] who also used a variable polarization resistance instead of a direct E-I relationship to represent material behavior. It is not clear from the paper what passive current density was used to generate the plots of minimum crevice geometries. No chemical changes are allowed or predicted. The author presents a detailed . The model was implemented using PSpice. The model formulation was really direct-element FEM as implemented by PSpice. A purely ohmic model is to predict possible potential distributions. In cylindrical coordinates the radius and height are variable. The major conclusion of the paper was that chlorination was required to raise the open circuit potential on the boldly exposed surface to produce enough potential drop to polarize the material into its active nose at a deep enough point in the crevice to sustain the required chemistry. The boundary conditions for the different materials are polynomial expressions.

The crack studied varies between 100 and 200 µm long and varies in height. AV)[83] The author examines the mass and electrical transport in cracks in Au-Cu alloys in FeCl3 solutions as an analog for the cracking of brasses. In this paper it is stated as the sum of the product of zi and the chemical concentration gradient. One problematic aspect of the work is the statement of the electroneutrality equation.202 explanation of the governing equations. For example. Generation is by chemically sensitive Tafel-like expressions and hydrolysis and chemical reactions are allowed. a gradient of 2M Na+ to 1M in parallel with a gradient of 1M Cl. Several example cases as shown and the results are compared to an analytic solution. does not allow the boundary conditions to vary as a function of multiple field values. The author determines that hydrogen discharge is impossible because there is a lack of potential drop under these conditions.to 0M would meet the author’s condition but not be charge neutral. This does statement does not on its face assure charge neutrality. Mass transport is by diffusion and migration. AW)[43] The authors present a very interesting model that predicts the current transients and shape change of metastable pits. One reason the model is limited to galvanostatic type problems is that the canned FEM package used. MARC. The model is a 2-D FEM representation .

203 of a pit in cylindrical coordinates. Diffusion is the only transport mechanism considered. Electrochemical generation is considered to scale linearly with the excess concentration above some threshold. No chemical equilibria or hydrolysis reactions are considered. The starting geometry is 0.1 µm radius pits filled with saturated solution. The model predicts concentric rings of undercutting and repeated transient increases in the pit current. One strength of the model is that the boundaries are allowed to move as corrosion occurs. It is not clear from the authors descriptions how the concentration field is adjusted after each step increase in pit size.

AX)[84] The authors present a simple analytic expression for IR-drop in a crevice to support their experimental work on 625 in seawater. The approach is IR*-based. This theory was described in subsection 2.2.2. The model assumes parallel sides, constant conductivity and constant dissolution flux. Results from the model of Gartland[29] are also mentioned, but that model is not presented in detail.

AY)[85]

This paper is the numerical companion to an analytic analysis[86]. The authors use a numerical model to evaluate mass transport and reaction in three crackshaped regions. Convection, diffusion and migration are all considered. Dissolution reactions are assumed to be of a Tafel form and only the first hydrolysis reaction is considered. The model is written for any divalent metal.

204 The authors examine the correlation between one- and two-dimensional models and the relative importance of the various transport processes. For a 0.2 cm long crack of width 0.02 cm filled with 0.6 M NaCl a diffusion-only, onedimensional crack was found to be an acceptable simplification. These assumptions were used in the companion paper in an effort to develop analytic expressions that would more clearly show the interrelationships of the geometrical and electrochemical variables.

AZ)[86]

The authors present an analytic, one-dimensional model of the changing conditions inside a crevice that occur when diffusion is the only transport mechanism. The choice of this dimensionality and transport mechanism was justified in (AY)[85]. The authors investigate the interplay between the various factors and revisit the effects of migration on crack tip composition.

BA)[48]

This dissertation presents in detail a one-dimensional finite difference model with implicit time-stepping that is used to analyze nuclear reactor safe-ends. These structures are analogs of crevice in that they have large length-todiameter ratios. All three transport mechanisms are considered as are hydrolysis, chemical reaction and radiolysis. The boundary conditions are Tafellike. In addition to reviewing much of the relevant literature on crevice modeling, the author presents the governing equations in detail. One notable

205 aspect of the dissertation is the refutation in Appendix B of the commonly used exponential form for the concentration of non-reacting species[51]. This issue is redeveloped in subsection 2.3.4.1. The author carefully compares the results of the numerical model to analytic solutions.

BB)[84]

The authors present an iterative method to find the chemical concentration and potential fields inside occluded regions. The model considers only migration and diffusion. The electrochemical generation rate is a constant and hydrolysis is effectively considered. The dissolution mechanism is changed where appropriate to consume hydroxyls as well as generate metal ions.

BC)[87]

The authors discuss the possible role of chemical transport in the IR*model for crevice corrosion. Chemical changes are considered in the context of how they will affect the Flade potential and the size of the active nose. Hydrolysis equations are shown as governing equations but their use in the model is not explained.

BD)[90]

The authors present their model for calculating crevice initiation by the IR* mechanism. The FEM model used is two dimensional and accounts for both the interior of the occluded site and the boldly exposed surface. The electrochemical boundary condition is obtained experimentally. No mention is

206 made of the exact format used to represent the polarization curve in the model. Several analytic simplifications are included in an appendix to the document to show the interrelationships between the various physical parameters. The model results are compared to some experimental work on pure iron in 0.5 M aceticacid 0.5 M sodium acetate and 1 M NH4OH - 1 M NH4NO3. This work is the most complete representation of the IR* model used by Pickering.

BE)[47]

The authors present some analytic solutions for the concentration and potential inside cracks and crevices. The authors show plots of concentration and potential as a function of position for various current densities. The major assumptions used are the crack has parallel sides, transport occurs only by migration and diffusion and the electrochemical reaction is HER. The authors show that dissolution can occur inside a crack that is being cathodically polarized on the boldly exposed surface.

Summary This chapter has provided the basic information needed to model and understand the modeling of crevice corrosion. A basic grounding in electrochemistry led immediately into a discussion of the two major competing theories on the initiation of crevice corrosion - the CCS and IR* models. Computer simulations of these theories depend on calculating the chemical concentration and electrical fields within an occluded region. This can be done by building from

207 the flux equations through the mass conservation equation for chemical species and by an application of Ohm’s law for the electrical field. Each term in these governing equations carries along its own set of assumptions and simplifications. After expanding on the issues associated with the terms of the governing equations the chapter concluded by reviewing the previous work which has been done in modeling crevice corrosion. The next chapter will address the model which was developed for this dissertation.

208

Chapter 3: Definition of the CREVICER Model

One of the goals of this thesis was to develop a general, adaptable model that could represent the two processes which are common to all forms of crevice corrosion - generation and transport. By performing the modeling in this fashion, which stresses the commonalities among different systems of crevice corrosion, it is possible to greatly shorten the development time of models that are specific to a particular system. This chapter will discuss the rationale for attempting to model the corrosion process for a “general” crevice, the precepts of objectoriented design (OOD) which force the code to be written in a modular fashion and enable it to operate on the general case, and give an overview of the finite element method (FEM) which is used to solve the required mathematical equations. The last section of the chapter will discuss the specifics of the code developed in this thesis.

3.1 General Aspects of Crevice Corrosion

In order to make a code which is suitable to model crevice corrosion for a wide variety of material/environment systems it is necessary to examine the factors which all instances of crevice corrosion have in common. At the broadest level, each instance of crevice corrosion is governed by generation and transport. The reaction rate at any interface is determined by the local conditions. The local chemistry, the sum of all the quantities of all the species present

209 (Ci,...,Cj), the local electrochemical potential, E, and the temperature and absolute pressure (T and P) are sufficient to determine the reaction rate on any given interface. Understanding crevice corrosion is a matter of predicting how the local conditions, principally chemistry and potential, evolve in space and time and thus change the corrosion rate. At steady-state, the generation of chemical species and electrical charge at an interface is exactly balanced by their transport away from the interface. There are two methods of transporting chemical species, flux due to a gradient in electrochemical potential and flux due to physical flow of solution. The former is often broken into diffusion, flux due to an activity gradient, and migration, flux due to the interaction of charged ions with an electrical field. Flux due to the physical flow of solution is called convection. Electrical flux is always carried by ions in aqueous solution. It can be visualized by treating the charge flow as current through a medium of varying electrical resistivity. In an occluded region, the crevice former retards transport and allows the reaction products from the interface to accumulate. The former acts by creating a long, thin path over which species and charge must move. For the transport of a fixed quantity of ions, a reduction in the cross-sectional area available for transport increases the required flux proportionately. Additionally, since the fluxes of both chemical species and electrical charge are determined by the gradients of the appropriate field variables, activity and electrostatic potential, an increase in path length causes a proportionately larger total change between one end of the path and the other. Another retarding effect of a crevice on transport is that drag from the crevice walls dramatically reduces convective flow as the crevice narrows.

210 These change in local conditions caused by the retarding effect of the crevice former on transport affect the reaction rate, and if the entire process spirals out of control, crevice corrosion occurs. The general description of the preceding two paragraphs holds for all types of crevice corrosion. It is only the specific parameters such as the transport coefficients diffusivity and mobility (Di and ui), reaction rate as a function of chemistry and potential and any homogeneous chemical reactions such as hydrolysis or precipitation that make any material/environment combination unique. A general model for crevice corrosion needs to solve the following two equations at every point inside the crevice: MC i Mt MDel Mt

˜ ˜ ' & L @ Ji(C i...C j,T,P) % Ri(E,C i...C j,T,P)

(155)

˜ ˜ ' & L @ Jel(C i...C j,T,P) % Rel(E,C i...C j,T,P)

(156)

Solution of these equations gives the concentration and electrostatic potential fields from which the electrochemical reaction rates can be generated. The generality for such a model ˜ ˜ comes from its ability to use different functional dependencies for the fluxes, ( Ji , Jel ), and generation rates, (Ri, Rel), for different materials. For example, the passive films on stainless steels are relatively unaffected by high levels of caustic whereas aluminum alloys begin to dissolve rapidly in extremely alkaline environments. All types of crevice corrosion share the need to solve equations 155 and 156 and only differ in the exact effects of chemistry, potential, temperature and pressure on corrosion rate,

211 homogeneous chemical reactions, and transport. The problem is one of how to represent the underlying equations and data in a fashion which allows the specifics to be readily changed without affecting the rest of the code. One approach for programming such a model is Object Oriented Design (OOD).

3.2 Object Oriented Design

One goal of this thesis was to create a model which was flexible enough to handle the variety conditions which must be expressed in simulating crevice corrosion and was extendable to include future modeling efforts. To accomplish this, it was decided to use Object Oriented Design (OOD). OOD is a programming methodology which is characterized by two main attributes: encapsulation and inheritance.[91] An object is piece of code meant to represent a physical entity or idea. It includes all of the data and all of the methods that operate on that data. An example, shown in Figure 3.2(a) would be an object representing a child’s ball. ‘Mass’ and ‘velocity’ might be data properties of the object. ‘Accelerate’ would be a method property, included in the ‘ball’ object, which uses the ‘mass’ property and the ‘force’ and ‘time’ inputs to change the ‘velocity’ property. Encapsulation is accomplished by hiding the internal functionality of the object away from other objects or code. Objects interact with each other only in defined ways, and the necessary information is passed overtly through formal calls rather than accessed directly from one object to another. This approach allows individual objects to be modified without causing

to be easily and accurately applied to all child classes derived from TASpecies. Figure 3. z.2(c). T. Inheritance allows an object to inherit the properties of a parent class. but more importantly inheritance makes it easier to debug the overall code. must give new values for identifying physical traits such as z and u. such as D. The encapsulated code can be changed and verified quickly and with little chance of introducing errors. since the method of calculating D must only be verified at one point rather than many. and transport properties such as mobility. D must be defined for all chemical species. This property saves code. Continuing the ‘ball’ example. such as TClm. and diffusivity. we are interested in the same types of properties. the initial form of the ‘ball’ object might use Newton’s First Law to calculate velocity changes in the ‘accelerate’ method. Inheritance allows a derived property. while the non-encapsulated code is more difficult to modify and runs significant risks of introducing new errors elsewhere in the code when it is changed. u. Additional properties can be added or inherited ones overridden. Figure 3. It should be pointed out that . rewriting the ‘accelerate’ method to account for relativistic effects will correctly and uniformly affect the entire program. Physical properties such as charge number. If the object is properly encapsulated.212 unforeseen errors in other parts of the program.2(b) shows this more clearly. such as TClm as shown in Figure 3. For any chemical species. This characteristic is useful because it allows the reuse of code. An example drawn from this dissertation is the TASpecies class and its children classes. A child class.2(c) shows the default behavior of TASpecies as using the Nernst-Einstein equation to calculate D from u and temperature. but automatically inherits the method of calculating D from u.

1 to be created. specific to each crevice system. In the program CREVICER which was developed for this dissertation the finite element method (FEM) was used for these calculations and a short discussion of the method is included in the next section. Figure 3. Conceptually.213 this inheritance in no way limits the ability of a child class to redefine any inherited property. If it were desirable to redefine D for a particular child class it could be done. Encapsulation and inheritance allow the type of model suggested in section 3. Two separate types of information. each can be modified or improved without affecting the others. Corrosion rates at different potentials and the effects of ionic strength on diffusion coefficients are examples. the last important conceptual area is the mathematical method which solves the specific equations for the chemical and electrical fields inside the crevice. there are four areas that have to be addressed. Finally. By encapsulating them.1. The first is the physical geometry and construction of the crevice. are required to produce the coefficients for those equations. The second type of information concerns how materials and chemical species act under different conditions. This information defines how deep and narrow the modeled crevice is as well as the metal it is constructed of and the electrolyte which fills it. The central elements are the forms of the equations governing the accumulation of electrical charge and chemical species given in section 3.2(d) is a high level representation of the code developed in this project for the modeling of crevice systems. .

Typically the cases for which they are available are very simple and not representative of “real-world” crevices. Three principal ones are Finite Difference (FD). but is computationally inefficient. though experimental cases have been constructed to fit the available analytic solutions. BEM and FEM are both more complicated to code initially. and stress analysis. Numerical solutions use computer algorithms to produce results that are approximately correct at a finite number of points.3 Finite Element Method Many possible methods can be used to solve differential equations. for many types of problems. FEM was the mathematical technique used to solve the .216 3. the Boundary Element Method (BEM) and the Finite Element Method (FEM)[50]. 79] Numerical approaches are more general and can be applied to any well-defined geometry. while FEM better applied to volumes with large surface to volume ratios[50]. BEM is more suited to solving differential equations over areas that have a low surface to volume ratio. For this thesis. heat transfer.4. The most accurate techniques are analytical ones. FD is easy to code. Each has advantages and disadvantages. Unfortunately. They produce a solution in the form of an equation which can be solved at every point inside the parameter space to give the exact solution. 30.[7.3. numerical solutions are the only possible ones and they dominate in the fields of fluid flow. but use computational resources more efficiently once implemented. analytic solutions are only available for a very limited number of geometries and boundary conditions. However. There are numerous methodologies for arriving at numerical solutions to differential equations as was discussed in subsection 2.

The basic reference text used was Allaire[51]. since all numerical methods depend on solving matrices of equations. and r6 for three dimensions. Another important issue in solving the relevant differential equations is the dimensionality of the mathematical solution.217 differential equations governing the transfer of chemical and electrical flux. The number of computations. The size of these matrices is varies linearly with number of points or nodes where the equation is solved. If the equation is to be solved with a resolution of ten points along an axis. however. the solution is performed for two independent spatial dimensions and the temporal dimension and allowances are made to account for the effect of charges in a dependent third spatial dimension.and three. Limitations on the amount of computational power available constrain the number of dimensions that can be practically modeled.dimensional problems. then only ten nodes are required. In one-dimensional problems the resolution directly determines the number of nodes. and thus the time. The amount of time required to solve a matrix for a fixed resolution varies as r2 for one-dimension. the resolution desired along an axis.in O notation solving matrices is O(n2). and the dimensionality. For two. the number of nodes required scales as the square and cube respectively of the resolution. This compromise choice of dimensionality provides a good match to the physical shapes of crevices. which are by definition much larger in two dimensions than they are in the third and also allows a higher r . For this thesis. r4 for two dimensions. required to solves the matrix varies as the square of the number of nodes . The number of nodes depends on r. The physical situation being modeled has three spatial dimensions and also varies in time. The method allows the grid to be adapted to maximize the resolution in areas of high gradients.

y) % P(x.y) K x(x. 3. such as an opening crack. The following subsections address the implementation of FEM for the spatial and temporal dimensions and the limitations of the method for both.y) % My 2 Mx My My MM MM % My(x. The method used for reflecting dependent changes in the third dimension allows CREVICER to reflect gross changes in that dimension.y) Mx Mx Mx 2 My % M 1 MM M MM K y(x. Kxy.y) Kyx(x.y)M % Q(x. but does not permit the effects of surface roughness to be included. Ky. and Kyx are the spatially-varying coefficients for the second-order terms .218 to be solved in the available time than if three independent spatial dimensions were used.1 Spatial FEM The general steady-state second order partial differential equation which FEM has to solve is represented in Equation 157 below. M MM M 1 MM % Kxy(x.3.y) Mx My (157) % Mx(x.y) ' 0 Where: φ is the general field variable x and y are the independent spatial dimensions Kx.

y)M % $(x.y) ' 0 Mx My K x(x.y) (158) Where: Kx and Ky are the spatially-varying coefficients for the first-order terms α is the scaling factor for the field variable β is the constant term Two aspects of the boundary can be defined: the value of the field variable and its derivative. a boundary condition can be classified into one of three categories shown in Table 7. The general form for a boundary condition is given below. The values of the coefficients vary throughout the crevice and depend on which field variable is being solved.1.1. Finally.y) % "(x. this steady-state representation is usually replaced by the time-dependent formulation shown later in this section.4. MM MM % K y(x.219 Mx and My are the spatially-varying first-order terms P is the spatially-varying scaling factor for the field variable Q is a spatially-varying generation term In CREVICER the field variable is either potential or the chemical concentration of some species. In the first (or Dirichlet) type of boundary .1 and 2.3. Depending on the values of the coefficients. Defining the differential equation is not sufficient to solve it as the appropriate boundary conditions must also be supplied. The derivation of the coefficients from physical parameters was shown in subsections 2.3.

220 condition. In the second (or Neumann) type.y)N % $(x. Equation "(x. the derivative of the field variable is defined at the boundary. neither the value nor the derivative is set.y) % $(x. A node is a point in the volume. In the third (or Robin) type. Boundary conditions for second order differential equations can be classed in three ways In FEM the volume over which the differential equation is to be solved is broken into nodes and elements.y) MN MN % K y(x.y) % "(x. the value and the derivative of the field variable cannot be set simultaneously on any boundary. The value of the differential equation is found at each node by solving a set simultaneous equations. Any boundary can have only one type of boundary condition applied to it. rather their relationship is defined.y) ' 0 Mx My Third(Robin) Table 7.y) ' 0 Mx My Second(Neumann) K x(x. but the actual value is free.y) ' 0 Type First (Dirichlet) K x(x. the value is fixed and the derivative is free.y) MM MM % K y(x. an element is the shape which connects sets of nodes.y)M % $(x. That matrix of equations is created by applying the differential equation .

the fineness of the intervals affects the accuracy of the result. There is some dispute about the validity of this discretization and concern that it fails to fully account for the effects of the changes in the coefficients. Although reiterating Allaire’s derivation of FEM would be repetitive.y). A FEM solution applies the shape function define the field variables . This method forces the sum of the differences between the FEM approximate solution and the true solution to be equal to zero. As with any discretization process.3.3. One point to note is that while Allaire’s derivation of FEM allows for the coeffecients. the more nodes that are used. This code uses Galerkin’s method on these simplex elements arrive at values for the nodes.1. four times as many nodes will be required and the time to perform the calculation will go up by a factor of sixteen! Another deviation between FEM and the true solution is the shape of the solution between the nodes. Unfortunately. some discussion of the limitations of spatial FEM is appropriate. Kx(x.221 over all of the elements. For a given shape. A sample element is illustrated in Figure 3. the more accurate the final result. the time required to solve a mesh is proportional to the square of the number of nodes. etc. they are held constant within each element.1(a) where a single linear simplex element is shown connecting three nodes. This method is discussed extensively in Allaire’s text on FEM[51]. In order to halve the separation between nodes in a twodimensional shape.1 Limitations of Spatial FEM The FEM produces results which approximate the true solution to the differential equation at a finite number of points. Ky(x. 3. to vary spatially.y).

the first and all higher order derivatives are discontinuous. The same calculation has to be made in the y direction. Only the value is continuous across the surface. For a solver such as CREVICER which uses linear simplex elements. MM Mx M MM Kx Mx Mx Mx )M M ()x) )x ' x ' Pe )M Kx – Mx Kx (159) ()x)2 Where: ∆x is the discretization difference between adjacent points in the x direction [m] . This problem occurs when the first order terms are large compared to the second order terms. A final error that can occur in spatial FEM is numerical oscillations caused by Peclet instability[51]. if the results were plotted in three dimensions using the field variable as the third. no numerical oscillations will occur spatially[51]. Peclet instability occurs when the convective terms are large compared to the diffusive terms. This increased accuracy would require a more complicated formulation and slightly longer running time. In fluid mechanics.222 between the nodes. the Peclet number. As long as both Peclet numbers are less than two. This relationship is shown in the equation below where the numerical approximations to the first and second order terms are made and divided to yield Pe. Obviously such a surface differs from the true solution. the surface would be composed of triangular facets. Other shape functions could give more accurate representations of the spaces between nodes.

thus decreasing ∆x and ∆y and reducing the Peclet number. The canonical equation for a general two-dimensional second order partial differential equation that varies in time is shown . This is the only method currently available in CREVICER.3. the time required for the pH to drop low enough to initiate corrosion for a particular geometry may be an important parameter in the design of a structure. the resulting FEM solution will differ markedly and unpredictably from the true solution. to model how variations occur with time inside an occluded site. The second method is a numerical technique called upwinding[29]. For instance. While spatial FEM provides a good basis for the discussion of the technique and some of the problems that can be encountered with it. CREVICER rarely uses steady-state FEM. 3.223 Pe is the Peclet number If numerical oscillations do occur.2 Temporal FEM While steady-state modeling of a crevice can provide some information about the endpoints of crevice corrosion. many central questions require a time-based approach. Instead. One is to refine the mesh. Two recourses are available in such situations. the temporal forms of the equations are employed.

then the method is fully explicit.y)M % Q(x. If the spatial terms are calculated for the next time period based on the present time interval. parabolic differential equation instead . Equation 160 is solved in a fashion similar to purely spatial FEM. the existing distribution is used to calculate the rate of change with time.y) My 2 Mx My My (160) MM MM % My(x. except that instead of solving for the distribution of the field variable that makes the spatial terms sum to zero.y) Mx Mx Mx 2 My % M 1 MM M MM Kyx(x.3.y) % Mx(x. This case solves a time-dependent. the steady-state form represented by Equation 157 is reached when the rate of change of the field variable is zero.y) % K y(x.y) ' K t MM Mt Where: Kt is the scaling factor for the rate of change of the field variable Equation 160 is little changed from Equation 157. That rate of change is then applied for a small period of time (∆t) and the calculations are repeated from the resulting distribution.1. If instead the distribution for each point during the next time period is expressed in terms of its neighbors values at the next time period the method is said to be fully implicit.2. This was discussed in subsection 2. CREVICER uses a weighted implicit-explicit technique from Allaire[51]. This approach is illustrated in the following series of equations.4.y) Mx My % P(x.y) K x(x.224 M MM M 1 MM % Kxy(x. Essentially.

but the principles are the same. . M MMm %1 Kx Mx Mx M MMm Kx Mx Mx MM Mt 2 % (1&2) ' Kt (162) Where: φm φm+1 is the general field variable at time t = m (explicit terms) is the general field variable at time t = m +1 (implicit terms) The following table shows how different combinations of θ and Kt can be combined to run CREVICER in different modes.225 of the full canonical equation for simplicity. The equation to be solved for this illustration is time-dependent diffusion: M MM Kx Mx Mx MM ' 0 Mt & Kt (161) In the weighted explicit-implicit approach a weighting factor. θ which varies from 0 to 1. is used to vary the contributions of the explicit and implicit terms as shown below.

5 θ=1 Kt Kt <> 0 Kt <> 0 Kt <> 0 Kt = 0 FEM mode Fully implicit Fully explicit Crank-Nicholson Steady state Table 8. Typically. CREVICER is run in Crank-Nicolson mode which is a combination of the explicit and implicit techniques. τ and Kt can be combined to run CREVICER in a time dependent way that varies from fully explicit to fully implicit. or to force it to make steady state calculations. .226 τ θ=1 θ=0 θ = 0.. This reduces some of the problems with stability that are discussed in the next section.

which . This solution has negative consequences on the solution time. K x)t ()x)2 K t r (e) ' (163) Where: r(e) is the Courant number Depending on the value of r(e) the solution may oscillate and/or fail to converge to the correct final answer. stable Unstable Table 9. Value of r(e) 0 < r(e) < 1/4 1/4 < r(e) < 1/ 2 1 /2 < r(e) Result Non-oscillatory.2.15 taken from Allaire[51]).3. Halving the spacing between the nodes. because as was discussed in subsection 3.1 Problems with Temporal FEM Numerical instability can occur in explicit temporal FEM and is related to the Courant number. on the limitations of spatial FEM.1. fine grids already require more computational time.1. stable Oscillatory. The Courant number is defined by the following equation (16.228 3. r(e).3. r(e) can have various effects on an explicit solution The result of this limitation is that fine spatial grids require small time steps in the temporal solution to maintain stability.

Each case can be represented in the canonical form of Equation 160 by using the relation that the time rate of change is the negative of the divergence of the appropriate flux plus the rate of generation. Fully implicit solutions are always stable. but may oscillate. since large Courant numbers can still cause oscillations even though the final answer may converge.229 already caused a factor sixteen increase in time per matrix solution. Crank-Nicolson. Mx. ) must be represented in terms of physical constants. This is done first for electrical charge. now requires four time steps to be performed where one would have sufficed before. Neither technique allows large time steps to be used with impunity. 3.4 Applications of FEM to Crevice Corrosion CREVICER uses FEM to model both electrical potential and chemical concentration fields. which weights the explicit and implicit contributions equally is a good compromise that converges well and avoids some of the stability problems encountered in a fully explicit technique. ˜ ˜ Jel ' 6LN (164) . The electrical flux is equal to the conductivity times the gradient of electrostatic potential. This connection is made in the next section. For use in crevice modeling the various coefficients (Kx. The total penalty for halving the separation is now a factor of sixty-four. This brief summary of FEM has only addressed the relevant equations in canonical form. as shown in Equation 164. etc.

.y) [m] A is area [m2] By canceling terms and multiplying through by h.230 Where: ˜ Jel κ ˜ LNs is the electrical flux [C/m2-s] is the conductivity [(Ω-m)-1] is the gradient of electrostatic potential in solution [V/m] The rate of accumulation of charge at each point is found by taking the divergence of this flux and adding the rate of generation of electrical charge.y) h(x.y) ˜ ' &6(x. Equation 165 is placed in the proper form for solution by FEM.y) is height at point (x. Table 10 shows the correspondence between the terms for FEM and the physical parameters of the crevice. the rate of generation is the product of the reacting area and the rate divided by the volume of interest.y)A(x. MDel Mt Jel A(x.y) L N % 2 (165) Where: Del is the charge density [C/m3] h(x. Since charge is only generated at electrochemical interfaces.

Because charge is only generated at electrochemical interfaces. ˜ ˜ ˜ Ji ' & Di LC i & zi F u i C i LN (167) The rate of accumulation of chemical species at each point is found by taking the divergence of this flux and adding the rate of generation of chemical species.y) h(x. .y) L N % Jel(x.κ(x.y) MQ ˜2 ˜ ' &6 h(x.y) 0 0 Jel(x.3. A similar analysis can be performed for the case of chemical concentration fields.y) Mt (166) FEM Coefficient Kt Kx = Ky Mx = My P Q Physical Parameters h(x.231 h(x. the rate of generation is the product of the reacting area and the rate divided by the volume of interest.y) Table 10. The coefficients for use in FEM can be related to physical parameters for use in calculating electrostatic potential fields.1. The starting point is the flux equation using the gradient of concentration for diffusivity and ignoring convection for the reasons discussed in section 2.y) .

y) ˜2 ˜ ˜ ' Di(x.y)ziFui(x. MC i Mt h(x.y) h(x. The coefficients for use in FEM can be related to physical parameters for use in calculating chemical concentration fields.y) ˜2 ˜ ˜ ' h(x.y) L C i % zi F u i(x. Equation 168 is placed in the proper form for solution by FEM.y) L C i % h(x.y) (169) Table 11 shows the correspondence between the terms for FEM and the physical parameters of the crevice.y) A(x.y)Di(x.y) Table 11.5 Program Structure and Simplifications used in CREVICER CREVICER is a two-dimensional FEM code for the solution of time-varying partial .232 MC i Mt ˜ Ji(x. FEM Coefficient Kt Kx = Ky Mx = My P Q Physical Parameters h h(x.y) LN LC i % (168) By canceling terms and multiplying through by h.y) LN LC i % Ji(x.y)h(x.y)zi F ui(x. 3.y)Di(x.y) grad tilde phi 0 Ji(x.y)A(x.

Each element (TSolutionVolume) lists the i. ikmat. .y. The elements array stores all of the elements that form the crevice.233 differential equations used in modeling the chemical concentration and potential fields of occluded regions. Each node (NodeInfo) consists of an x. and the materials along each of the edges if needed (ijmat.1 Program structure Figure 3. and another for the series of time periods being modeled. jkmat). This section will address the basic structure of the program and the simplifications used within it. The inner loop includes an additional iterative step of variable length that is used to find the potential field.5. The z coordinate is not used by CREVICER. 3. The Setup procedure uses the input node and element files to create the two data structures needed to define a crevice: the nodes and elements arrays. Any text marked (Bold) refers to a data structure or procedure in CREVICER and is included to more directly tie this subsection to the actual code.1(a) shows the major information flows within CREVICER. the height (h) of the element.5. Any item with a “T” prefix is an object.5. The nodes array contains all of the nodes in the crevice.z position for the node. but is included for future functionality. The program then consists of two loops: one for activities that happen within a time period. and the material of which it is constructed (mat).j and k nodes that define the element. The diagram is complemented by Figure 3. the conditions at the current time step (chem) and the conditions at the previous time step (oldchem).1(b) which illustrates the objects and their inter-relationships.

Ci. The mode of the solver. one for each node.4.. it also allows chemical fluxes even when the electrical flux is small or zero. This separation of the reactions on a surface into different groups not only provides better fidelity to the physical situation.y positions of the nodes. The conditions of charge neutrality and chemical equilibrium are enforced after the transport of all the species for each time period..2... Di. The end of this subsection lists . This ability is vital if the crevice will be depolarized to Ecorr. In order to find m field variables at n nodes the loops solves an n by n matrix m times. The entries into the matrix depend on the x. and h. The matrix is constructed elementby-element. θ (theta) and ∆t (time) as was described in section 3. the values of the field variable (in oldchem). Equations for chemical species also depend on zi.3. implicit or mixed is controlled by Kt.3. The heterogeneous reaction rates are queried from the element’s mat (which is a TMaterial).2. This object in turn accesses the values for a particular species through the particular TASpecies which defines it.3. The matrix of equations is developed using the FEM equations presented in subsection 2. T and P is passed to each of the objects when a request is made for any parameter. This approach is faster than solving an mn by mn matrix once by a factor of 1/m. These parameters are encapsulated in TAllSpecies. Three equations are generated by each element. and ui. steady-state vs explicit.234 The inner loop finds the chemical concentration or electrical field at the next time period for each field variable (concentration or potential) in turn. Information on E. A material sums the reaction rates from the various TReaction’s that are included in it. At a minimum a TMaterial should have one anodic and one cathodic TReaction.Cj. a container class for all possible species.

These routines are hard-coded as procedures into TAllspecies. Mx.235 which of the parameters are used. Nodes is an array of NodeInfos. Each Nodeinfo contain two TChemistrys one for the current and one for the next time period. The procedure for electrical transport is similar. Solve() operates on each species in turn. . It builds an array of simultaneous equations and solves it to find the value of the field variables at the next time step. One difference is that because electrical processes equilibrate much more rapidly than chemical ones an additional loop is performed only on the electrical parameter to find the proper potential distribution for each time step. Ky. Solve() requests from each TSolutionVolume in Elements the values of the coefficients in the canonical equation (Kx.5. These parameters are generated from the appropriate transport coefficients and generation rates. The Main() routine initializes the Elements and the Nodes with the geometry (Elements and Nodes) as well as the boundary and initial conditions. the unused parameters are passed for future use. Figure 3. The transport parameters are replaced by κ (kappa) which is calculated based on the local chem. P and Q). The Main() procedure also controls the use of Solve(). Chemical and charge equilibria are enforced once all the transport steps have occurred. My. Generation rates are found from the appropriate TMaterial which in turn uses the TReaction.1(b) is a view of the code that emphasizes objects. Elements is an array of TSolutionVolume. Once equilibrium is restored output occurs and the new chem for each node becomes its new oldchem and the process restarts.

It passes through information on conditions such as E.236 TAllSpecies is a container class for TASpecies. .S. More information about the structure of the code can be obtained by reading the comments in the program itself. Cj. u or z. As a further aid the next subsection will address all the simplifications used in the code. Each TMaterial performs a similar function for the TReactions it contains. The local conditions are passed to each TReaction and the resulting fluxes of chemical species and electrical current (Ji and Jel) are summed and returned. T and P to the correct TASpecies and receives and returns the appropriate parameter... Ci . such as D. The individual files are listed in Appendices A .

D is determined separately for each element according to the method described in .1 Approach Used: CREVICER calculates diffusion based on the gradient of concentration rather than the gradient of activity.1. This is a valid assumption if the gradient of the activity coefficient with respect to chemistry is zero.2.1.2. Small crevice gaps are unlikely to experience much flow unless a driving mechanism like crack pumping in corrosion fatigue is present.1 Approach Used: CREVICER ignores convection. 3.3.3.239 3.1 Governing Equations Convection: Relevant Sections: 2. the relevant sections of this dissertation where the problem is discussed and the approach taken towards to problem in CREVICER.5.2. the governing equations are simplified and several of the terms ignore the full functional dependency on the local conditions. The format used in this subsection is name of the concept or term being simplified. Diffusion: Relevant Sections: 2.1. 2. The physical geometry of a crevice is approximated.1.3.2 Simplifications in CREVICER Several types of simplifications have been made in CREVICER.5.

3.2.2.240 3. This is not an approximation.6.5.5.1. It ignores the diffusion potential. the potential in solution.3.2 Terms z: Relevant Sections: None Approach Used: z is a constant for each chemical species and is stored in the appropriate TASpecies.2.2.2.3.5.4 Approach Used: The potential field is found from Ohm’s law.1. u is determined separately for each element according to the method described in 3.2.3.1.4. .2.3 Approach Used: Migration is calculated based on φs.1.1.3.2. 2.5. Migration: Relevant Sections: 2. 2.5. It ignores the diffusion potential.3. 2. κ is determined separately for each element according to the method described in 3. Potential: Relevant Sections: 2.

. T and P are passed when u is called but no accounting is made for the effects of those variables or the derived effects of viscosity and tortuousity.1.3.1.. D: Relevant Sections: 2.3.2. 2.3.2. It is here that concentrated solution effects should eventually be accounted for.1 Approach Used: The mobility for each species used in CREVICER is a constant stored in the appropriate TASpecies. The function call passes E.1. a: Relevant Sections: 2. Ie.3.Cj.1 Approach Used: The diffusivity for each species used in CREVICER is calculated from the Nernst-Einstein equation. Ci.. Ci.3.1.2..3.2. T and P.Cj..2.2. In the future it could be used for diffusive flux or to modify the transport coefficients. 2. E. D is proportionate to the absolute temperature..2.3.1 Approach Used: The single ion activity is not used in CREVICER. . 2.2.2...3. No accounting is made for the effects of P the chemistry or the derived effects of viscosity and tortuousity. 2.241 u: Relevant Sections: 2.

2.2...1.1.4 Approach Used: Electrical flux is determined in CREVICER by summing the electrical fluxes from each of the component reactions on a TMaterial.3. Some reactions in CREVICER use Ci to adjust the polarization curve.1 Approach Used: Temperature is only used in CREVICER in calculating D from u according to the Nernst-Einstein relationship.3. 2. CREVICER has employed constant.3..3.242 T: Relevant Sections: 2.3. It is consistently exchanged between objects to allow for future functionality. 2.3. This summation is done with the convention that anodic currents are positive and cathodic ones negative.3 Heterogeneous and Homogeneous Reactions Jel: Relevant Sections: 2.4. 2.1.Cj.3. It is consistently exchanged between objects to allow for future functionality. . The function call passes E.3. Ci. T and P.2 Approach Used: Pressure is not used in CREVICER.3.5. The polarization curve itself can be programed in any functional format. 3.2. Tafel and polynomial representations for the polarization curve..1.3.1. P: Relevant Sections: 2.3. 2.

3.3. Some reactions in CREVICER use Ci to adjust the polarization curve. 2.3. 2..2. 2. Tafel and polynomial representations for the polarization curve. T and P.Cj.2.3.3.5. Homogeneous Chemical Reactions: Relevant Sections: 2.. Ci. This summation is done with the convention that dissolution reactions are positive and plating ones negative..2.4 Approach Used: Homogeneous chemical reactions including hydrolysis can be programmed into CREVICER..4 Approach Used: Chemical flux is determined in CREVICER by summing the fluxes from each of the component reactions on a TMaterial.2.3.2.3.3.4 Derived Parameters pH: Relevant Sections: None .1. The function call passes E. Chromium hydrolysis is already implemented.3.243 Ji: Relevant Sections: 2.4. CREVICER has employed constant.3. The polarization curve itself can be programmed in any functional format. 2.3.1.1. 2.2. It uses only the mononuclear species and assumes that hydrolysis is fast compared to transport.1.

The code uses Equation 83 given in 2.2. I: Relevant Sections: 2. η: Relevant Sections: 2.2 Approach Used: Viscosity is not used in CREVICER. If a general method of calculating the viscosity were developed it would have to be implemented as a new object.3.2.1 Approach Used: CREVICER reports the ionic strength of a chemistry for use in chemically sensitive polarization curves or for output purposes.2. The code assumes the dilute solution approximation and returns the negative of the log of the H+ concentration.2. nor is it even a defined parameter.3.3. Tortuousity: Relevant Sections: 2.3.3 Approach Used: Tortuousity caused by precipitation is not used in CREVICER. nor is .1.2.3.3.2.244 Approach Used: CREVICER reports the pH of a chemistry for use in chemically sensitive polarization curves or for output purposes.2.2.

It concludes by presenting the structure and approximations of the CREVICER code. the suitability of OOD for use in such a code. The next chapter will apply the CREVICER code to several test cases in order to verify the code and present some of its capabilities. If a general method of calculating the porosity were developed it would have to be implemented as a new object. .245 it even a defined parameter. This section has covered the general structure needed by code that models crevice corrosion. the basis and limitations of FEM for solving such a model and presented how the physical parameters are translated into the form needed for solution by FEM.

and time-transient chemical transport.y) % Kxy(x. M MN M 1 MN K x(x.1 of this chapter verifies the ability of CREVICER to solve the different forms of this differential equation that are relevant to crevice corrosion. The three subsections test and verify the code’s ability to find the correct solutions for steady-state potential distributions.y) My 2 Mx My My (160) MN MN % Mx(x.y) % My(x.y) Mx My % P(x. In this chapter the CREVICER code is tested against known analytic and numerical solutions.y) Mx Mx Mx 2 My % M 1 MN M MN Kyx(x. steady-state chemical transport. The FEM code that acts as the numerical engine for CREVICER is a solution solver for second-order partial differential equations.y) & K t MN ' 0 Mt Section 4.y) % K y(x. Such equations can be represented in the form of Equation 160 from subsection 3.y)N % Q(x.3.2 below. .246 Chapter 4: Model Verification and Use OVERVIEW An integral step in the development of any model is the testing and verification procedure. Each subsection progresses from one-dimensional cases with simple boundary conditions to greater dimensionality and more complicated boundary conditions.

2.1.3. It is interesting to model chemical transport for both steady-state and transient solutions. Comparison of the code to one time transient solution is shown in subsection 4. Test cases of this type are solved in section 4.1 Comparisons of CREVICER to Analytic Solutions Equation 160 in the introduction to this chapter is the general form for a second-order partial differential equation. The potential distributions used in this subsection all ignore the effects of diffusion potential.4.3.2 discusses the known limitations of the code. The mathematical methods it uses are only stable over a limited range of conditions. Because of this. 4. To calculate the potential distributions in a crevice only the second and zeroeth order terms are present.1. restrictions have to be made to the incremental steps in time and space used in each model to prevent oscillations. Convective terms are not used in this thesis for the reasons discussed in section 2. Potential distributions reach equilibrium on a timescale much shorter than that required to transport chemical species.1.3. Test cases of this type are solved in subsection 4. this type of equation is used in two basic ways. As was shown in section 2.1. chemical transport requires not only the second order terms caused by diffusion. no first-order terms are needed. i.1. the potential distributions remain at quasi-steady-state.. CREVICER models two independent spatial dimensions in a cartesian coordinate . but also demands first order terms for migration and convection.1.247 Section 4.3. In modeling crevice corrosion. This was shown in section 2.1.e.1.1.

In all cases the code is actually solving the differential equation in two dimensions. For the comparison to one-dimensional solutions. The code is compared to analytic solutions representing one. the boundary conditions are arranged such that the only variations occur along one axis. This partial accounting of the third dimension is discussed in greater depth later in this section.248 system with provisions to account for dependent changes in a third dimension. The field variable is assumed to vary only in the xy plane. The “two-plus” cases show the code’s ability to model the effects of dependent changes in a third dimension. . two and “two-plus” -dimensional cases. but that distribution reflects the effect of changes in the height of the third dimension across the xy plane.

2.249 4.1 Case 1 .6 M NaCl and corroding along the crevice base at a rate of 10 mA/cm2.1.One-D Crevice With Active Tip and Passive Flanks The simplest geometry against which to test the CREVICER code is a one-dimensional crevice filled with an electrolyte of uniform conductivity.4.1. Consideration of the diffusion potential would make the analytic solutions intractable.1. . These conditions roughly simulate a simple environmentally-assisted crack.2 this potential is related to the electrochemical potential. the solution potential.3. These conditions are illustrated in Figure 4. 4. filled with 0. These conditions have been converted to standard units and are summarized in Table 12. An equally simple set of boundary conditions would represent a potentiostatically controlled crevice corroding only at the tip.1. The mouth potential is held at 0 V. As was discussed in section 2. and the crack flanks are perfectly passive (zero flux). For clarity.1. all of the cases in this section concern themselves with φs. The contribution of φdiffusion is not considered. the active base has constant electrical flux.1(a). They represent a 1-cm long crevice with a uniform 10-µm gap.1 Test Cases Evaluating Potential Potential distributions are critical to the rates of generation and mass transport within crevices. To define such boundary conditions the mouth is held potentiostatically at constant potential.

M2 N Mx 2 ' 0 (171) . Table 12. hence the negative sign. At equilibrium the divergence of the potential in solution is equal to zero.58335 [S-m]-1 0 [V] 10-2 [m] h 10-5 [m] * An anodic current at the base is oriented in the -x direction. ˜2 L Ns ' 0 (170) Where: φs is the solution potential [V] This equation can be represented in one-dimensional cartesian coordinates as shown below. Summary of conditions for Case 1.250 Parameter Jtip 6 N0 l Value -102 [A/m2]* 7. Analytic Solution for Case 1 The governing equation for this problem is the LaPlace Equation.

φs. is fixed at a constant value φ0. Ns(x'0)'N0 (172) The other boundary condition occurs at the crevice tip (x = x0). It is a Dirichlet condition since the value of the field variable. K2 are the coefficients of the solutions By substituting in for the boundary conditions given in equations 172 and 173 the final .251 The first boundary condition for this problem occurs at the mouth (x=0). MNs J /0 ' & tip Mx 000 6 x'x 0 (173) Where: Jtip 6 is current density at the crack tip[A/m2] is conductivity [S-m]-1 The solution for this differential equation has the form: Ns(x) ' K1 x % K0 (174) Where: K1. It is a Neumann condition since the fixed flux and constant solution conductivity determine the derivative of the potential.

2 x (176) Numerical Solution with CREVICER for Case 1 CREVICER was configured to run a crevice with the conditions shown in Table 12. It is the ratio of the electrical current density to the solution conductivity which determines the gradient of potential. φ0. In a crevice with constant height and non-reacting flanks the current density in solution is uniformly equal to the flux at the tip. Ns(x) ' 13. Jtip 6 Ns(x) ' & x % N0 (175) For this geometry and these boundary conditions the solution has the form of a straight line. The values for these were given in Table 12. Substituting these values into Equation 175 gives the numerical form for the potential distribution inside the crevice shown below. The physical parameters in this situation that are needed to determine the potential distribution are the current density at the crack tip. κ . there is no dependence on h. Jtip. which has constant height throughout the crevice. The grid used had divisions every 100 µm in the x direction (101 nodes along the x-axis). It is interesting to note that for this geometry. Jtip.252 solution can be found and is shown below. and the mouth potential. A comparison of the numerical results obtained with CREVICER and the exact . the solution conductivity.

As can be seen in Table 13 the quality of the fit is extremely good. The next test case considers a more complicated set of boundary conditions applied to the same geometry.253 numerical solutions obtained by Equation 176 is shown in Figure 4. .1(b). Goodness of fit for Case 1. For this simple geometry the correspondence between the numerical data calculated by CREVICER and the exact solution is extremely good.1. P D.1. Summation of the relative errors between the numerical and analytic solutions at each node yields the Chi-square (P2 ) of the fit. 100 P2 1. Each of the 100 variable nodes is a separate degree of freedom (D.O.F.96 x 10-11 Table 13.F). The calculated P2 is essentially measuring truncation error.O.

without any contribution to the current from the crevice tip.1. filled with 0. These conditions have been converted to standard units and are summarized in Table 14. To define the situation for this test cases the mouth is held potentiostatically at constant potential and the crack flanks are equally active at all potentials with constant flux regardless of potential. This test case was referred to in subsection 2.3. They represent a 1-cm long crevice with a uniform 10-µm gap.6 and was used in the calculation of the charge density in solution which is related to the value of the second derivative of potential. A simple first approximation of the boundary conditions for a crevice would be to hold the mouth potentiostatically and allow the crevice flanks to corrode at a uniform rate.256 4.1 mA/cm2.1.2 Case 2 .1.1. These conditions are illustrated in Figure 4.1. The mouth potential is held at 0 V. .2(a).6 M NaCl and corroding along the crevice walls at a rate of 0.One-D Crevice With Active Flanks and Passive Tip A slightly more complicated case than the previous one can be generated by starting with the same geometry but applying different boundary conditions.

This situation occurs because at equilibrium the amount of free charge in solution does not change. At equilibrium the divergence of the flux is equal and opposite to the rate of generation of charge.257 Parameter Jwalls 6 N0 l h Value 1 [A/m2] 7. Analytic Solution for Case 2 The governing equation for this problem is the LaPlace Equation.58335 [S-m]-1 0 [V] 10-2 [m] 10-5 [m] Table 14. Summary of conditions for Case 2. ˜2 L Ns % Q ' 0 (177) Where: φs Q is the solution potential [V] is related to the generation rate of charge [V/m2] . Another way of stating this is to say that the current flow out through solution is equal to the charge injected from the crack flanks into the electrolyte.

= φ0. since no current crosses the boundary at the crevice base where x = x0. In this case however the value of the derivative is fixed at zero.258 When this equation is represented in cartesian coordinates and Q is expressed in physical terms Equation 178 is generated. MNs /0 ' 0 Mx 000 x 'x0 (179) . Ns(x'0)'N0 (172) The other boundary condition is a Neumann condition since the derivative of the solution potential. φ. M2 Ns Mx 2 Jwalls 6h % ' 0 (178) Where: Ns Jwalls 6 h is the potential [V] is the current perpendicular on crevice walls [A/m2] is the solution conductivity [S-m]-1 is the crevice height [m] The boundary condition at the mouth (x=0) is once again the Dirichlet condition presented in Equation 172 since the potential is fixed at φs. is fixed.

x0. the crevice height. The physical parameters in this situation that are needed to determine the potential distribution are the current density on the crevice walls. Likewise. The values for these were given in Table 14. it is worth pointing out that the current density (and thus the derivative of potential with distance) changes throughout the crevice. and the mouth potential. Unlike the situation in Case 1. the solution conductivity. the current density decreases linearly from a maximum at the mouth to zero at the base. the height of the crevice is an integral part of the final solution. where only the tip was active. h. Because charge is injected along the crevice wall. Jwalls. For a onedimensional crevice. the resulting current density does scale inversely with crevice height. Substituting these values into Equation 181 gives the numerical form for the potential . with sides corroding at a constant rate. κ.259 The solution to this differential equation has the following form. Ns(x) ' K2 x 2 % K1 x % K0 (180) The final solution is found by substituting in for the boundary conditions and solving for the coefficients. Jwalls 26h Jwallsx 0 6h Ns(x) ' & x2 % x % N0 (181) For this geometry and these boundary conditions the solution has the form of a parabolic curve. φ0. whose area is independent of the crevice height. the length of the crack enters into the equation since changing the crack length increases the amount of total current leaving the crevice as well as the length over which it must be transported. and depth. Finally.

The grid used had divisions every 100 µm in the x direction (101 nodes along the x-axis). Ns(x) ' &6. For this simple geometry the correspondence between the numerical data calculated by CREVICER and the exact solution is extremely good and the measured P2 is essentially representing truncation error.2(b). As can be seen in Table 15 the quality of the fit is extremely good. D. A comparison of the numerical results obtained with CREVICER and the exact numerical solutions obtained by Equation 182 is shown in Figure 4.32@102 x (182) Numerical Solution with CREVICER for Case 2 CREVICER was configured to run a crevice with the conditions shown in Table 14.1. Goodness of fit for Case 2. . The next test case combines the boundary conditions for these two cases and applies them simultaneously to the same geometry.2 x 10-10 Table 15.59@103 x 2 % 1.1.O.F. 100 P2 5.260 distribution inside the crevice shown below.

Table 16.One-D Crevice With Active Flanks and Active Tip Continuing with the same geometry used in Cases 1 and 2 the boundary conditions used in the preceding cases can be combined. the crack flanks are equally active at all potentials with constant flux regardless of potential.3(a). The mouth potential is held at 0 V. and the crack tip corrodes at a constant rate. A more complete representation of the environmentally assisted cracking in Case 1 would include corrosion reactions on the crack flanks as well as at the crack tip.263 4.6 M NaCl solution. These conditions have been converted to standard units and are summarized in Table 16.58335 [S-m]-1 0 [V] 10-2 [m] h 10-5 [m] * An anodic current at the base is oriented in the -x direction. They represent a 1-cm long crevice with a uniform 10-µm gap.1. These conditions are illustrated in Figure 4.1 mA/cm2 and at the crack tip at a rate of 10 mA/cm2. . Parameter Jwalls Jtip 6 N0 l Value 1 [A/m2] -102 [A/m2]* 7. To define this situation the mouth is held potentiostatically at constant potential. corroding along the crevice walls at a rate of 0.1. filled with a 0. hence the negative sign.1.3 Case 3 .1. Summary of conditions for Case 3.

264 Analytic Solution for Case 3 The governing equation for this problem is the same LaPlace Equation that ruled Case 2. at equilibrium the divergence of the flux is equal and opposite to the rate of generation of charge yields Equation 177. Once again. ˜2 L Ns % Q ' 0 (177) Converting the equation to cartesian coordinates and again substituting in for the boundary conditions yields Equation 178 once more. Ns(x'0)'N0 (172) . applied at the potentiostatically controlled mouth. is the same Dirichlet condition as in all of these first three test cases. M2 Ns Mx 2 Jwalls 6h % ' 0 (178) Where: Ns Jwalls 6 h is the potential [V] is the current perpendicular on crevice walls [A/m2] is the solution conductivity [S-m]-1 is the crevice height [m] The first boundary condition.

the resulting solution is the superposition of the linear and parabolic solutions found in Cases 1 and 2. is also the same Neumann condition as was used in subsection 4.1. Ns(x) ' K2 x 2 % K1 x % K0 (180) Finally. The physical interpretation of the results can also be viewed as the linear combination of two processes. one considering only the crack tip. MNs J /0 ' & tip Mx 000 6 x 'x0 (173) Where: Jtip 6 is the current at the crevice tip (A/m2) is the solution conductivity (S-m)-1 This problem has the same form for the solution as Case 2.265 The boundary condition at the crack tip. by substituting in for the boundary conditions and deriving the coefficients the final form for the solution is found. Jwalls 26h Jwallsx 0 6h Jtip 6 Ns(x) ' & x2 % & x % N0 (183) For this one dimensional case and these boundary conditions of an active tip combined with active crack flanks. the other only .1. where x = x0.1.

A comparison of the numerical results obtained with CREVICER and the exact numerical solutions obtained by Equation 184 is shown in Figure 4.1. The resulting equation requires both the current density at the crack tip.3 x 10-10 Table 17. the solution conductivity.3(b). . The grid used had divisions every 100 µm in the x direction (101 nodes along the x-axis). as well as along the crack walls. both aspects of the crevice geometry.266 the crack flanks. N0.F.1. h and x0. Goodness of fit for Case 3. to determine the potential distribution. D. and the crack mouth potential.59@103 x 2 % 1. 100 P2 4. As can be seen in Table 17 the quality of the fit is extremely good. Jwalls. Ns(x) ' &6. Using the values from Table 16 gives the numerical form for the equation shown below. κ . Jtip.45@102 x (184) A comparison of Equation 184 to Equations 176 and 182 shows that the result is indeed the sum of the solutions to Cases 1 and 2.O. Numerical Solution with CREVICER for Case 3 CREVICER was configured to run a crevice with the conditions shown in Table 16.

. The next case investigates the CREVICER’s fidelity to a situation where the electrolyte varies throughout the crevice. These three initial test cases investigated CREVICER’s ability to solve the potential distributions inside one-dimensional crevices filled with uniform electrolytes.267 For this simple geometry the correspondence between the numerical data calculated by CREVICER and the exact solution is extremely good and the calculated P2 is essentially a measure of truncation error.

These conditions are illustrated in Figure 4.One-D Crevice With Active Tip and Varying Solution Conductivity Although a crevice or crack may initially be filled with a uniform electrolyte.270 4.1. where the most concentrated electrolytes are found in the most occluded portions of the sites.1. Case 4 investigates a one-dimensional crack in which the solution conductivity varies linearly from the crack mouth to the crack tip. and filled with an electrolyte concentration that varies linearly from 10 mM NaCl at the base (where the conductivity is κ0) to 1. the crack flanks are perfectly passive and the crack tip corrodes at a constant rate. electrochemical reactions within the occluded site cause variations in the aqueous solution that fills the defect. These conditions may be considered roughly approximate to the situations found in cracks and crevices. corroding at the crack tip at a rate of 10 mA/cm2 . . The mouth potential is held at 0 V.4(a).01 M NaCl at the mouth (where the conductivity is κ1 x0 + κ0) . These conditions have been converted to standard units and are summarized in Table 18.1. They represent a 1-cm long crevice with a uniform 10-µm gap.4 Case 4 .1. To define this situation the mouth is held potentiostatically at constant potential.

9 [S-m]-1 0. Summary of conditions for Case 4. conductivity. Analytic Solution for Case 4 The potential distribution for this case is found by using the relationship between the gradient of solution potential. the electric flux in solution. and the varying ˜ LNs ' (185) Where: ˜ Jel κ(x) is the electric flux density in solution [A/m2] is the conductivity at position x [Ω-m]-1 .12639 [S-m]-1 0 [V] 10-2 [m] h 10-5 [m] * An anodic current at the base is oriented in the -x direction. ˜ Jel 6(x) ˜ Jel .271 Parameter Jtip 61 60 N0 l Value -102 [A/m2]* 1263. Table 18. hence the negative sign.

The conductivity at the crack tip depends on the length of the crack. MNs Mx ˜ Jel 6 1 x % 60 ' (186) Where: 6 1x + 6 0 is the solution conductivity [S-m]-1 The boundary condition at the crack mouth is the Dirichlet condition because of the potentiostatic hold.272 Expressed in one-dimensional cartesian coordinates this equation takes the form below. and the conductivity coefficients. x0. Ns(x'0)'N0 (172) At the active crack tip the boundary is a Neumann condition because it is the derivative which is defined. κ1 and κ0 . MNs Jtip /0 ' & Mx 000 61x 0 % 60 x 'x0 (187) Where: Jtip 6 1x + 6 0 is the current at the crevice tip (A/m2) is the solution conductivity (S-m)-1 .

Ns(x) ' 7.26 @ 10&1 ) & 1. As can be seen in Table 19 the quality of the fit is extremely good.273 Equation 186 can be directly integrated and the boundary conditions applied to yield the general form for the solution.4(b). The grid used had divisions every 100 µm in the x direction (101 nodes along the x-axis). .1.64 @ 10&1 (189) Numerical Solution with CREVICER for Case 4 CREVICER was configured to run a crevice with the conditions shown in Table 18. A comparison of the numerical results obtained with CREVICER and the exact numerical solution obtained by Equation 189 is shown in Figure 4.91 @ 10&2 ln(1. Substituting the values from Table 18 yields the following numerical values for the potential in this case.26 @ 103 x%1. Jtip ln(61 x%6 0 ) 61 Jtip ln(6 0 ) 61 Ns(x) ' & % % N0 (188) The natural logarithm of the conductivity shapes the potential at any point within the crack.1.

. For this simple geometry the correspondence between the numerical data calculated by CREVICER and the exact solution is extremely good.274 P2 2.F. Goodness of fit for Case 4.6 x 10-3 D. This test case examined CREVICER’s ability to solve the potential distribution inside a one-dimensional crevice with an electrolyte of varying composition when the current density in solution was a constant. 200 Table 19. The next case examines CREVICER when it models a crevice with both varying electrolyte composition and varying current density in solution which is caused by actively corroding walls.O.

Passive Tip and Varying Solution Conductivity The previous case considered a simple system with varying solution composition. Thus. corroding along the crevice walls at a rate of 10 µA/cm2 . To define this situation the mouth is held potentiostatically. These conditions are rough analogs to the situations found in cracks and crevices. These conditions are illustrated in Figure 4. the current density in solution decreases linearly from the mouth to zero at the tip.01 M NaCl at the base (where the conductivity is κ1 x0 + κ0) .277 4.5 Case 5 .5(a).1.1. . These conditions have been converted to standard units and are summarized in Table 20. but uses active crevice walls rather than an active crack tip to supply the electrical current. generating the same current at all potentials and environments. This case uses the same geometry and variations in solution composition as Case 4. The mouth potential is held at 0 V.One-D Crevice With Active Walls.1.1. (constant potential) and the crack flanks are uniformly active. They represent a 1-cm long crevice with a uniform 10-µm gap. and filled with an electrolyte that varies linearly from 10 mM NaCl at the tip (where the conductivity is κ0) to 1. where the most concentrated electrolytes are found in the most occluded portions of the sites.

Jel(x) .9 [S-m]-1 0 [V] 10-2 [m] 10-5 [m] Table 20.278 Parameter Jwalls 61 60 N0 l h Value 0. the changing electric flux in solution. Summary of conditions for Case 5. ˜ LNs ' ˜ Jel(x) 6(x) (190) Where: ˜ Jel (x) is the electric flux density in solution at position x [A/m2] .1 [A/m2] 0.12639 [S-m]-1 1263. and the varying conductivity. Analytic Solution for Case 5 The potential distribution for this case is found by using the relationship between the ˜ gradient of solution potential.

N0. x0 MNs Mx Where: Jwalls m ' x Jwalls dx (191) 6 1 x % 60 is the current perpendicular on crevice walls [A/m2] 6 1x + 6 0 is the solution conductivity (S-m)-1 In this case. the initial boundary condition is a Dirichlet one where the mouth is held at a constant potential. Since no current crosses the crevice tip in this case. as in every one investigated thus far. Ns(x'0)'N0 (172) At the crevice tip. . the boundary condition still defines the derivative of potential.279 κ(x) is the conductivity at position x [Ω-m The flux density in solution changes with position based on the amount of current generated between x and the base at x0. Equation 190 be expanded and placed into cartesian coordinates. the derivative is equal to zero.

a smaller h.280 MNs /0 ' 0 Mx 000 x 'x0 (179) Equation 191 be solved by a double integration and the use of the boundary conditions to find the general form of the solution potential as a function of x. The crevice height is required here where it was not in Case 4 because it directly affects the current density in solution. Jwalls h x 6 0 ln(61 x%6 0 ) x 0 ln(6 1 x%60 ) x 0 ln(60 ) 60 ln(6 0 ) % % N0 & & % 2 2 61 61 61 6 6 1 1 Ns(x) ' & (192) The potential distribution is determined by the magnitude of the electrical fluxes. The grid used had divisions every 100 µm in the x direction (101 nodes along the x-axis).65 @ 10&5 (193) Numerical Solution with CREVICER for Case 5 CREVICER was configured to run a crevice with the conditions shown in Table 20. will have to support higher fluxes of electrical current through solution. N(x) ' 104 7. and the crevice geometry x0 and h. Given equal current densities on the crack flanks. Jwalls. . the coefficients for the solution conductivity.99 @ 10&6 ln(6 1 x%60 ) & 1.e. i. κ1 and κ0 . The values from Table 20 can be substituted into Equation 192 to produce the numerical form for the exact conditions used in this case.91 @ 10&4 x & 7. a narrower crevicer.

281 A comparison of the numerical results obtained with CREVICER and the exact numerical solution obtained by Equation 193 is shown in Figure 4.1.1.5(b). As can be seen in Table 21 the quality of the fit is extremely good.

D.O.F. 100

P2 3.0 x 10-3

Table 21. Goodness of fit for Case 5.

For this simple geometry the correspondence between the numerical data calculated by CREVICER and the exact solution is extremely good. This initial group of five test cases has established CREVICER’s ability to model one-dimensional cracks and crevices with a spread of boundary conditions and internal distributions of conductivity. The next two cases will examine CREVICER’s operation on two-dimensional occluded regions.

284 4.1.1.6 Case 6 - Two-D Crevice With Passive Walls and Active Tip

The CREVICER code is at its heart a two-dimensional, cartesian, finite element code. The previous five cases were modeled using a two-dimensional grid that had the majority of the gridding in the x-direction. Cases 6 and 7 apply CREVICER to two-dimensional test cases. The geometry used in Case 6 is a washer-shaped crevice with active corrosion occurring along the tip, or interior edge, while the mouth (exterior edge) is held potentiostatically. The crevice is of uniform height and is filled with a uniform electrolyte. This system is radially symmetric and is solved analytically in one-dimension cylindrical coordinates. CREVICER treats the geometry as an approximately circular shape laid out on a rectangular grid, so the test truly does show CREVICER’s ability to model in two dimensions. To define this situation the mouth (outside edge) is held potentiostatically, (constant potential) and the crevice base (along the interior edge) is active, generating the same current at all potentials. These conditions are illustrated in Figure 4.1.1.6(a). They correspond to a washer-shaped crevice with 2-cm inner diameter, a 4cm outer diameter and a 10-µm gap filled with 0.6M NaCl solution. The inner edge is corroding at a rate of 10 mA/cm2 and the outer edge is held potentiostatically at 0 V. These conditions have been converted to standard units and are summarized in Table 22.

285

Parameter Jtip rinner router 6 N0 h

Value 102 [A/m2] 10-2 [m] 2x10-2 7.58335 [S-m]-1 0 [V] 10-5 [m]

Table 22. Summary of conditions for Case 6.

Analytic Solution for Case 6 The governing equation for this problem is the LaPlace Equation without generation that determined Cases 1 and 4. It simply states that the divergence of the flux is zero. ˜2 L Ns ' 0 (170)

By taking advantage of the radial symmetry of the washer, this can be expressed in one-dimensional cylindrical coordinates. M2 Ns Mr 2 1 MNs ' 0 r Mr

%

(194)

The outer edge of the washer-shaped crevice being held potentiostatically. This causes

286 a Dirichlet boundary condition. Ns(r'router)'N0

(195)

At the inner edge of the washer the current flow (along with the solution conductivity) defines the derivative of the potential. MNs J /0 ' & tip Mr 000 6 r'rinner

(196)

Where: Jtip 6 is current density at tip axis [A/m2] is conductivity [S-m]-1

The solution to this differential equation has the following form. Ns(r) ' K1 lnr % K0 (197)

The boundary conditions can be used to produce an expression defining the potential in terms the physical parameters of the crevice. Jtip rinnerln(r) 6 Jtip rinnerln(router) 6

Ns(r) ' &

%

% N0

(198)

The potential field established by this geometry and these boundary conditions is also radially symmetric. The current, established by Jtip, interacts with the solution resistance, which

287 depends on the conductivity, κ, and the geometry rinner and router to create the potential distribution. Just as in Cases 1 and 4 the height of the crevice does not appear in the equation. Another way of viewing this is that the total current scales linearly with height, while the solution resistance scales inversely and the two factors cancel. The values of the physical parameters given in Table 22 can be substituted into Equation 198 to produce the exact equation for this situation. Ns(r) ' &0.132 ln(r) & 0.516 (199)

Numerical Solution with CREVICER for Case 6 CREVICER was configured to run a crevice with the conditions shown in Table 22. The grid used had 1270 nodes arranged to form 2348 elements. The average element was approximately 600 µm across. A plot of the numerical results is shown in Figure 4.1.1.6(b). Figure 4.1.1.6(c) shows a comparison of the numerical data created with CREVICER and the exact values predicted by Equation 199. The plot was obtained by plotting the potential value at the radius for each of the 1270 nodes that CREVICER solved for. As can be seen in Table 23 the quality of the fit is extremely good.

D.O.F. 1269

P2 1.9 x 10-5

Table 23. Goodness of fit for Case 6.

288

The next test case is an extension of this one to slightly more complicated boundary conditions. In this case the total current crossing any isoradial line was a constant, although the current density decreased due to the increase in circumference. For Case 7, where the crevice walls are corroding, the total current drops off as the center of the crevice is approached.

292 4.1.1.7 Case 7 - Two-D Crevice With Active Walls

The case extends the exploration of CREVICER’s two-dimensional capabilities started in Case 6. Case 7 is a disc-shaped crevice with active corrosion occurring along the crevice walls, while the mouth (exterior edge) is held potentiostatically. The crevice is of uniform height and is filled with a uniform electrolyte. This system is radially symmetric and is solved analytically in one-dimension. Just as in Case 6 CREVICER treats the geometry as an approximately circular shape laid out on a rectangular grid, so the test truly does show CREVICER’s ability to model in two dimensions. To define this situation the mouth (outside edge) is held potentiostatically at constant potential and the crevice base (interior edge) is active, generating the same current at all potentials. These conditions are illustrated in Figure 4.1.1.7(a). They correspond to a disc-shaped crevice with 2-cm diameter, a 10-µm gap filled with 0.6M NaCl solution. The inner surface is corroding at a rate of 100 µA/cm2 and the outer edge is held potentiostatically at 0 V. These conditions have been converted to standard units and are summarized in Table 24.

293

Parameter Jwalls router 6 N0 h

Value 1 [A/m2] 10-1 [m] 7.58335 [S-m]-1 0 [V] 10-5 [m]

Table 24. Summary of conditions for Case 7.

Analytic Solution for Case 7 The governing equation for this problem is the LaPlace Equation with generation that determined Cases 2 and 3. It simply states that the divergence of the flux is equal and opposite to the generation rate of current from the crevice walls into the solution. ˜2 L Ns % Q ' 0 (177)

Using the radial symmetry of the disc and substituting in for the generation term the governing equation can be expressed in one-dimensional cylindrical coordinates. M2 Ns Mr 2 J 1 MNs % walls ' 0 r Mr 6h

%

(200)

Where:

294 Jwalls 6 h is the current density at the tip axis [A/m2] is the conductivity [S-m]-1 is the height [m]

The potentiostatically-held outer edge causes the same Dirichlet condition as was in Case 6. Ns(r'router)'N0

(195)

Despite the fact that there is no physical inner edge to a disc, as there is in a washer, there is still an internal boundary condition for the derivative of potential. At the center of the disc, where r=0, there is no current flow since there is no area at r < 0 to generate any current. MNs /0 ' 0 Mr 000 r'0

(201)

The solution to this differential equation has the form below: Ns(r) ' K2 r 2 % K1 r % K0 (202)

The boundary conditions can be applied and the differential equation solved to generate the expression for the potential distribution inside the disc.

7(b).1. The grid used had 574 nodes arranged to form 1082 elements. A plot of the numerical results is shown in Figure 4. As can be seen in Table 25 the quality of the fit is extremely good.1. and the solution conductivity. κ. router and h. the disc geometry. The average element was approximately 500 µm across. The plot was obtained by plotting the potential value at the radius for each of the 574 nodes that CREVICER solved for.30 @ 101 (204) Numerical Solution with CREVICER for Case 7 CREVICER was configured to run a crevice with the conditions shown in Table 24.1.1.7(c) shows a comparison of the numerical data created with crevicer and the exact values predicted by Equation 204. . The values for the physical constants from Table 24 can be placed into the above equation to generate the exact polynomial representing the potential distribution inside the disc.295 Jwallsr 2 46h Jwallsrouter 46h 2 Ns(x) ' & % % N0 (203) The potential distribution inside the disc depends on the current density. Jwalls.30 @ 103 r 2 % 3. Figure 4. Ns(x) ' &3.

CREVICER can incorporate the effects of changes in third dimension. 573 Table 25. In addition to solving two free spatial dimensions. Cases 8 and 9 evaluate CREVICER’s abilities in this area.296 P2 P2 = 1. These two test cases 6 and 7 have tested the functionality of CREVICER on twodimensional situations.F.9 x 10-4 D. . Goodness of fit for Case 7.O.

1.4. There. The test geometry is a trapezoidal wedge shape as might be found in a growing crack under stress.1.1.8 Case 8 . Here. though in this case only one of the two free dimensions is used to correspond with this analytic solution. The crack plane is the xy-plane which CREVICER models with its two spatial dimensions. These conditions are illustrated in Figure 4.8(a).1.300 4. generating the same current at all potentials.1. To define this situation the mouth (x = 0) is held potentiostatically at constant potential and the crevice base (along the interior edge) is active. These conditions have been converted to standard units and are summarized in Table 26.1. . This problem is analogous to Case 4 presented in subsection 4. filled with 0. They correspond to a wedge-shaped crack 1 cm long with a mouth height of 300 µm that decreases linearly to a tip height of 5 µm. The dependent third dimension is the crack height which decreases linearly from the crack mouth (where h = h0) to the crack tip (where h = h1). For Case 8 all of the current is generated at the crack tip and the crack is filled with a uniform electrolyte. the potential gradients were steepest near the mouth because of conductivity increases.6M NaCl solution and corroding at the tip at a rate of 10 mA/cm2.One-D Wedge with Varying Height and Active Tip Cases 8 and 9 test CREVICER’s ability to simulate dependent changes in a third dimension. the steepest gradients occur at the crack tip where the cross-sectional area is smallest.

Summary of conditions for Case 8. ˜ Jel(x) 6 ˜ LNs ' (205) ˜ Jel(x) changes because the total current from the crack tip remains constant while the crack itself increases linearly in height to the crack mouth. The above equation can be expressed in one-dimensional cartesian coordinates and the flux density can be expressed in .301 Parameter Jtip x0 h0 h1 2 6 N0 Value -102 [A/m2] 10-2 [m] 3 x 10-4 [m] 5 x 10-6 [m] 2. and the solution conductivity. Jel(x) . Analytic Solution for Case 8 The potential distribution for this case is found by using the relationship between the ˜ gradient of solution potential.95 x 10-2 [radians] 7. the varying electric flux in solution.58335 [S-m]-1 0 [V] Table 26.

Ns(x'0)'N0 (172) At the tip boundary. . θ is a derived parameter. MNs Mx /0(x'x0) Jtip 6 ' & (173) The solution to this differential equation has the form: Ns(x) ' K1 ln(ax%b) % K0 (208) The boundary conditions can be substituted in and the coefficients solved for to produce an expression for the potential. MNs Mx Jtip h1 6 h0 &2sin 2 2 (206) ' & Where: θ is the crack opening angle [rad] The boundary condition at the crack mouth is the familiar Dirichlet condition caused by the potentiostatic hold. the crack opening angle.302 terms of the crevice parameters. where x=x0. the imposed constraint determines the derivative of the potential with position.

Goodness of fit for Case 8. the solution conductivity.O. D.24 @ 10&3 ln 3 @ 10&4 &2.1.8(b). The values for the physical constants from Table 26 can be placed into the above equation to generate the exact expression representing the potential distribution inside the wedge Ns(x) ' 2. 100 P2 P2 = 2. As can be seen in Table 27 the quality of the fit is extremely good.95 @ 10&2 x & 1. and the wedge geometry which is determined by h0 and θ. .F. A comparison of the numerical results obtained with CREVICER and the exact numerical solutions obtained by Equation 210 is shown in Figure 4.303 Jtip h1 ln h0 &2sin 26sin 2 2 2 2 Ns(x) ' x & Jtip h1 lnh0 26sin 2 2 % N0 (209) The potential distribution inside the wedge depends on the current density at the crack tip.5 x 10-6 Table 27.81 @ 10&2 (210) Numerical Solution with CREVICER for Case 8 CREVICER was configured to run a crevice with the conditions shown in Table 26. The grid used had divisions every 100 µm in the x direction (101 nodes along the x-axis).1. κ. Jtip .

304 The next test case continues to address the wedge geometry but deals with the added complication of changing total electrical current along the length of the crevice. . Instead of generating electrical current at the crack tip it arises along the crack flanks.

9(a). To define this situation the mouth (x = 0) is held potentiostatically at constant potential and the crack flanks are active. The dependent third dimension is the crack height which decreases linearly from the crack mouth (where h = h0) to the crack tip (where h = h1). the test geometry is a trapezoidal wedge shape as might be found in a growing crack under stress.1.6M NaCl solution and corroding along the flanks at a rate of 100 µA/cm2. In Case 9 all of the current is generated on the crack flanks and the crack is filled with a uniform electrolyte. They correspond to a wedge-shaped crack 1 cm long with a mouth height of 300 µm that decreases linearly to a tip height of 5 µm. This can be interchangeably viewed as each of the two flanks corroding at 50 µA/cm2 since the important parameter is the total corrosion rate per unit length.1.One-D Wedge With Varying Height and Active Sides Case 9 concludes the test of CREVICER’s ability to simulate dependent changes in a third dimension. These conditions are illustrated in Figure 4. The crack plane is the xy-plane which CREVICER models with its two spatial dimensions. though in this case only one of the two free dimensions is used to correspond with this analytic solution. generating the same current at all potentials. These conditions have been converted to standard units and are summarized in Table 28. As in Case 8.9 Case 9 . .1.307 4.1. filled with 0.

and the solution conductivity. Summary of conditions for Case 9. 205. This is the same governing equation.1. the crack opening angle.8. θ is a derived parameter.308 Parameter Jwalls h0 h1 2 6 N0 Value 0. If the terms in the above equation are expanded and placed into cartesian coordinates the following governing equation is found. the varying electric flux in solution. . that was used in Case 8 of subsection 4. Analytic Solution for Case 9 The potential distribution for this case is found by using the relationship between the ˜ gradient of solution potential.1 [A/m2] 3 x 10-4 [m] 5 x 10-6 [m] 2.58335 [S-m]-1 0 [V] Table 28.95 x 10-2 [radians] 7. Jel(x) . ˜ Jel(x) 6 ˜ LNs ' (205) ˜ Jel(x) changes in this case because of the changes in the crack height with position and the varying total current that must cross each point.1.

Ns(x'0)'N0 (172) The other boundary condition applies at the crack tip and defines the derivative of the flux. MNs ' 0 Mx /0(x'x0) (179) Equation 211 can be solved by a double integration and the use of the boundary conditions.309 m ' & x x0 MNs Mx Jwallsdx (211) 2 2 6 h0 &2sin At the mouth the boundary condition is the regular Dirichlet condition that reflects the potentiostatic hold. 2 x 2 2 x 2 Ns(x) ' J walls 6 x 2sin 2 2 h 0 ln h 0 &2sin % 4sin 2 2 2 x 0 ln h 0 &2sin & 2sin 2 2 % x0 ln(h 0 ) 2sin 2 2 & h 0 ln(h 0 ) 4sin 2 2 2 % N0 (212) The values for the physical constants from Table 28 can be placed into the above .

The next set of test cases examines CREVICER’s usefulness in solving differential equations with first as well as second order terms. A comparison of the numerical results obtained with CREVICER and the exact numerical solutions obtained by Equation 213 is shown in Figure 4.67@10&2 (213) Numerical Solution with CREVICER for Case 9 CREVICER was configured to run a crevice with the conditions shown in Table 28. 100 P2 P2 = 4.0 x 10-9 Table 29.76@10&3 ln h0 &2sin 2 x 2 % 4.F. This test case concludes the exploration of CREVICER’s abilities to model potential distributions. The grid used had divisions every 100 µm in the x direction (101 nodes along the x-axis). These types of differential equations are involved in the mass transport by diffusion and migration of chemical species in solution.9x % 5.310 equation to generate the exact expression representing the potential distribution inside the wedge.1.1. D. Ns(x) ' 1. Goodness of fit for Case 9.32@10&2 33.O. . As can be seen in Table 29 the quality of the fit is extremely good.9(b).

The physical situation is a onedimensional slot-shaped crevice. 4. To define this situation the mouth (x = 0) is held constant in both potential and in the concentration of the minor species. Modeling the mass transport of chemical species is slightly more complicated as the first order terms are also required as was shown in Section 2. These conditions are illustrated in Figure 4. and the mass transport is done on minor.3.1(a). The previous nine cases only tested the program’s ability to analyze the types of differential equations required to solve potential distributions. This problem was discussed in subsection 2. They .1. There were only three different types of governing equations used.1. but it was chosen to be in the same form as Psaila-Dombrowski[48].3. They involved the second order terms with or without the addition of a generation term. non-reacting species.1.1. 172.2 Test Cases Evaluating Mass Transport The calculation engine which powers CREVICER solves two-dimensional partial differential equations.One-D Mass Transport of Chemical Species The first case used to test CREVICER’s abilities in this area is somewhat artificial.2. 177 and 190.2. which is defined to be constant in this case. there is no generation. Although these species are affected by the potential gradient in the crevice. filled with a conducting electrolyte to keep the conductivity constant.2 and the limitations of this solution to real problems were explored.1.1 Case 10 .3.4.313 4.

This equation was generated from the mass transport equation and was developed in section 2. Summary of conditions for Case 10.3. The sodium sulfate is the supporting electrolyte. whose transport is being modeled in this case.1. These conditions have been converted to standard units and are summarized in Table 30. filled with 0.0681x10-7 [m/s] 2 [mol/m3] 10-2 [m] Table 30.314 correspond to a slot-shaped crack 1cm long with a mouth height of 10 µm.197x10-13 [m2-mol/J-s] 2. Mx. α. Kx. Parameter Jtip DNi++ zNi++ µNi++ Kx(Ni++) Mx(Ni++) C0(Ni++) h Value -100 [A/m2] 6.5 M Na2SO4 + 1 mM NiCl2.9753x10-7 [m/s] 1 [mol/m3] 10-5 [m] Parameter 6 DClzClµClKx(Cl-) Mx(Cl-) C0(Cl-) x0 Value 13. For simplicity the coefficients of the equation.6523x10-10 [m2/s] 2 [eq/mol] 2. The tip is corroding at a rate of 10 mA/cm2.0338 [S-m]-1 2.6850x10-13 [m2-mol/J-s] 6. It dominates the conductivity over the minor species of nickel chloride. Analytic Solution for Case 10 The governing equation for this problem is the LaPlace Equation without generation but including the first order terms. .0309x10-9 [m2/s] -6.6523x10-10 [m2/s] 3.0309x10-9 [m2/s] -1 [eq/mol] 8.

Ci. is held at a constant value. the fluxes from the diffusion and migration are equal and opposite for each species. C i(x) ' K1 e (ax) % K0 (218) Substituting in for the boundary conditions and solving yields: .315 and β have been left in the equations. the crevice tip (x=x0 ). M2 C i Mx 2 MC i Mx Kx % Mx ' 0 (215) At the crevice mouth the concentration of each species. C i(x'0) 'C i 0 (216) At the other boundary. 0 K xC i(x'x 0 ) % MxC i(x'x 0 ) ' 0 (217) This differential equation has the following exponential form. their representations in terms of physical constants are in Table 31. Ci0. ˜ ˜ K x L C i %MxLC i ' 0 2 (214) The above equation can be represented in one-dimensional cartesian coordinates as shown below.

99@10 2 x (222) Numerical Solution with CREVICER for Case 10 . i. A higher LNs causes larger exponential terms. depends exponentially on the ratio of ˜ the first to second order terms.316 & Mx Kx x C i(x) ' C i e 0 (219) The values for the coefficients in terms of physical parameters of the crevice are given in Table 31. Substituting in all of the values yields the following numerical expression for the concentration of each species C Ni(x) ' e &5.98@10 2 x (221) C Cl(x) ' 2e 2. Coefficient Values for Case 10. The concentration of each non-reacting species. Parameter Kx Mx Value Di [m2/s] zFµi LN [m/s] Table 31.

The grid used had divisions every 100 µm in the x direction (101 nodes along the x-axis).64x10-5 (Cl-) Table 32.2 the solution of this test cases is only applicable for a limited set of conditions.3.1. The next test case examines chemical transport with generation. A comparison of the numerical results obtained with CREVICER and the exact numerical solutions obtained by Equations 221 and 222 is shown in Figure 4.2.1. 100 P2 P2 = 1.4.O.317 CREVICER was configured to run a crevice with the conditions shown in Table 30. CREVICER can simulate all of these limitations. As was discussed in subsection 2. Goodness of fit for Case 10. for a physical system the equations only apply to the concentrations of minor species in a supporting electrolyte.F. D. . There must be no diffusion potential. the electrical flux cannot be a function of chemistry or potential and the conductivity must be a constant. As can be seen in Table 32 the quality of the fit is extremely good.37x10-6 (Na+) P2 = 6.1(b).

the modeled situation is a one-dimensional slot-shaped crevice filled with a conducting electrolyte to keep the conductivity constant. which is defined to be constant in this case. They correspond to a slot-shaped crack 1 cm long with a mouth height of 10 µm. It differs in that the governing equation now includes generation.2 Case 11 . but not contributing to chemical generation. The sodium sulfate is the supporting electrolyte.320 4.1. These conditions are illustrated in Figure 4. To test this. it dominates the conductivity over the minor species of nickel chloride. non-reacting species. These conditions have been converted to standard units and are summarized in Table 33. they contribute little to it by their generation along the crevice flanks.5 M Na2SO4 + 1 mM NiCl2. To define this situation the mouth (x = 0) is held constant in both potential and in concentration of the minor species. The sides are corroding at a rate of 10-9 mol/m2-s. whose transport is being modeled in this case. The tip is corroding at a rate of 10 mA/cm2 .One-D Mass Transport of Chemical Species With Generation Case 11 continues with Case 10's exploration of CREVICER’s abilities. and the mass transport is done on minor. . This chemical flux of nickel is equivalent to an electrical current of 20 nA/cm2.2.2(a).2. Although these species are affected by the potential gradient in the crevice. filled with 0.1. This case was chosen to represent the assumptions of a commonly-solved analytic case and is not physically realizable.

This equation was generated from the mass transport equation and was developed in Section 2.6523x10-10 [m2/s] 2 [eq/mol] 2. Their representations in terms of physical constants are in Table 34. Summary of conditions for Case 11.321 Parameter Jtip Jwalls 6 h x0 C0(Ni++) Value -100 [A/m2] 10-9 [mol/m2] 13. ˜ ˜ K x L C i %MxLC i % Q ' 0 2 (223) This can be expressed in one-dimensional cartesian coordinates. M2 C i Mx 2 MC i Mx Kx % Mx % Q ' 0 (224) .3.9753x10-7 [m/s] Table 33. Analytic Solution for Case 11 The governing equation for this problem is the LaPlace Equation with generation and including the first order terms.3. For simplicity the coefficients of the equation.6523x10-10 [m2/s] 3. Kx and Mx have been left in the equations.0338 [S-m]-1 10-5 [m] 10-2 [m] 1 [mol/m3] Parameter DNi++ zNi++ µNi++ Kx Mx Value 6.6850x10-13 [m2-mol/J-s] 6.1.

322 The Dirichlet boundary condition at the crevice mouth fixes the concentrations of the species. . Mx C i(x) ' & Jwalls hMx % K xJwalls x 0 Jwalls & Kx x K xJwalls x J C0 & & e % 0 walls % 2 2 hMx hMx hMx hMx (226) The values for the coefficients in terms of physical parameters of the crevice are given in Table 34. C i(x'0) 'C i 0 (216) At the other boundary the fluxes caused by migration and diffusion must be equal and opposite 0 K xC i(x'x 0 ) % MxC i(x'x 0 )' 0 (217) This differential equation has the same form of solution as Case 10 C i(x) ' K1 e (ax) % K0 (225) The final solution for this equation can be found by substituting in for the boundary conditions and solving.

52@102 x & 1.94e &598x % 2. Substituting in all of the values yields the following numerical expression for the concentration of each species. .94 (227) Numerical Solution with CREVICER for Case 11 CREVICER was configured to run a crevice with the conditions shown in Table 33. The grid used had divisions every 100 µm in the x direction (101 nodes along the x-axis).2(b). C i(x) ' & 2.2.323 Parameter Kx Mx Q $ Value Di [m2/s] -zFµi LN [m/s] Jwalls / h [A/m] Ji [mol/m2-s] Table 34. Coefficient Values for Case 11. A comparison of the numerical results obtained with CREVICER and the exact numerical solution obtained by Equation 227 is shown in Figure 4. As can be seen in Table 35 the quality of the fit is extremely good.1.

This is shown in Figure 4.1. It exhibits a maximum at x = 0.2(c). The next case examines CREVICER’s ability to model time-transient problems.324 P2 P2 = 4.2. The form of the resulting concentration distribution is interesting.002 m.O. 100 Table 35. Nearer the mouth the diffusive flux acts in concert with the migration flux to remove Ni+2 from the crevice. At deeper portions of the crevice the diffusive flux acts to counteract the migration flux. At each point the net flux of current from the crevice at point x is equal to the integral current from x to x0. .F.59 x 10-7 D. Goodness of fit for Case 11.

3.1 Case 12 . This final test case is loosely based on Allaire’s[51] example problem 16. These conditions have been converted to standard units and are summarized in Table 36.1. timetransient partial differential equations.3.Transient Diffusion of Chemical Species The calculation engine which powers CREVICER solves two-dimensional.1(a). . This case solves the directly analogous problem of a two-ended crevice filled with a concentrated electrolyte whose ends are suddenly held at lower concentrations. They correspond to a two-ended crevice 1cm long with a height of 10 µm.3 Test Case Evaluating Time The final area of verification for CREVICER is a time-transient solution.1. 4. To define this situation a 1cm long crevice is initially filled with a homogeneous solution and then the mouths are dropped to a lower concentration.1. nor is there an electric field to cause migration. At time t=0 the concentration of NaCl at both ends is lowered to 0 M and held there.1. There is no generation inside the crevice.328 4. That problem modeled the transient diffusion of heat from a heated bar whose ends were held at a fixed temperature. These conditions are illustrated in Figure 4. filled with 1 M NaCl.

1.31037 x 10-9 [m2/s] 10-2 [m] 10-5 [m] Table 36. MC i Mt Kt ˜ ' K xL C i 2 (228) This can be expressed in one-dimensional cartesian coordinates.329 Parameter Ci0 DNa+ x0 h Value 1000 [mol/m3] 1. MC i Mt M2 C i Mx 2 h ' Dih (229) Where: Ci Di is the concentration of species i [mol/m3] is the diffusivity of species i [m2/s] . This equation was generated from the mass transport equation and was developed in Section 2.3. Analytic Solution for Case 12 The governing equation for this problem is the LaPlace Equation without generation but including the first order terms. Summary of conditions for Case 12.3.

. C i(x'0. 4C i 1 (2n%1)2 B2 t (2n%1)Bx exp &D sin j 2 B n'0 2n%1 x0 x 0 4 C i(x.t'0) ' C i 0 (230) The two boundary conditions for the problem are the Dirichlet constraints imposed at the two ends. C i(x.t>0) ' 0 (232) Equation 229 can be solved by directly integrating.t) ' (233) 0 This solution is the summation of a series of exponential terms. Substituting in for the boundary conditions from Table 36 yields the following numerical representation. For this test case the summation was carried over the first ten terms.330 h is the crevice height [m] The initial condition is that the entire crevice is initially at the same concentration.t>0) ' 0 (231) and C i(x'x 0 .

t) ' 1.29@10&4 (2n%1)2 t sin 3.331 C i(x.1(b).27@103 j n'0 4 1 exp &1.14@102 (2n%1)x 2n%1 (234) Numerical Solution with CREVICER for Case 12 CREVICER was configured to run a crevice with the conditions shown in Table 36.3. The grid used had divisions every 625 µm in the x direction (17 nodes along the x-axis). A comparison of the numerical results obtained with CREVICER and the exact numerical solutions obtained by Equation 234 is shown in Figure 4. .1. The numerical data agrees well with the analytic solution despite the relatively coarse gridding of only sixteen elements along the x-axis.

4. . This is especially true in regions where steep gradients are present. An additional difficulty.2. The field variables are only solved at the nodes and a flat inclined plane is used to represent the value of the field variable over each element.it is commonly used in modeling crevice corrosion. While this may not be a good assumption .Evitts et al [60] and Walton[78] both present data which suggests that in fact crevices influence a region of the bulk solution outside the mouth . Peclet stability. can arise for spatial solutions if the first-order terms are large compared to the second-order. Courant stability restricts the size of time steps that can be used in temporal solutions. especially if the conditions at that point are assumed to be those of the bulk environment. there are four separate problems that affect usage of the code. potential solutions can be difficult to find for certain geometries and polarization curves. The most minor and easily corrected problem is caused by the discretization of the crevice.1 Discretization Limitations CREVICER approximates a crevice as a collection of elements and nodes.334 4. Finally. CREVICER finds an approximation of the true distribution.2 Limitations of Model In addition to the various limitations imposed by the simplifications used in producing the CREVICER model. Such areas occur near the mouth of a crevice. Coarse grids can be solved rapidly but may miss important details of the solution.

4.335 Increasing the spatial resolution imparts a cost that can only be paid in terms of additional computing time. Migration fluxes are also first-order and can cause a Peclet problem.1. Despite the fact that convection is usually ignored in crevice corrosion an analogous situation arises in modeling that phenomenon. A coarse grid is only imprecise.2. Walton[10] describes a dimensionless grouping of the migration flux to the diffusional flux that is the electrochemical analog to the Peclet number.1.2. The following two types of problems can produce solutions which oscillate and are inaccurate. Mathematically.3 decreasing average size of an element also decreases the length of time that can be solved for an time step. ˜ ziFDiLNs RT Di )x ˜ ziF)x LNs RT Pe ' / ' (235) .3.2 Peclet Limitations A commonly encountered problem in computational fluid dynamics is Peclet stability. discussed in subsection 3. The time required to solve one iteration of a crevice goes as the number of nodes squared. As will be seen in subsection 4. In that situation the problem arises when the convective flux is large compared to the diffusive flux. the problem is caused when the first-order terms of a partial differential equation are large compared to the second-order ones.

and unstable solutions and was discussed in subsection 3.3. 48].2. r. The parameter is found by the formula below. can be used to differentiate stable. Peclet instabilities are a spatial problem.1. oscillatory. Problems with the Courant number. Upwinding is an approach that has been used by other researchers[10. 4.2. Another approach to solving problems with large Peclet numbers is to change the mathematical method. discussed in the next subsection. They affect the code both in both steady-state and time-transient modes. K x)t )x 2 K t (236) r (e) ' Different values of r identify different regions of stability[51]. affect only the temporal portion of the code. 0 < r(e) < 1/4 1/4 < r(e) < 1/2 1/2 < r(e) Non-oscillatory and stable Spatially oscillartory and stable Unstable . The Courant number.336 When this term is greater than 2 the numerical method is unstable.3 Courant Limitations Explicit temporal solutions can have a problem with stability. An unstable problem can only be made stable by refining the mesh (decreasing ∆x) or reducing the gradient of solution potential that drives migration.

This approach can cause problems in modeling the potential distribution for materials whose polarization curves have very high rates of change for current with respect to potential. Finding the potential distribution inside a crevice is a search procedure to locate the potential distribution(s) that produce . Potential-type problems are more sensitive to this issue than chemical ones because of the feedback from the current and solution resistance into determining the potential distribution.2.4 dI/dE Stability Limitations Although each element in the crevice model can corrode at a different rate. The time for solving each iteration goes as n2. The mode most commonly used by CREVICER.337 Halving the size of each element forces the length of the timestep to be quartered. This limitation does not affect implicit time approaches. CREVICER uses the average chemistry and potential of each of the nodes to determine the corrosion rate for each element. but is caused by specific types of polarization curves. within each element the behavior must be constant. but may still be affected. Crank-Nicolson. Because of the Courant component the computational penalty for increasing the resolution of the mesh is quite high. has fewer problems than a fully explicit approach. An additional factor of n2 arises if the number of time steps must be increased to reduce the length of each to retain Courant stability. The last type of numerical problem that CREVICER can experience is related to the discretization problem. 4.

but are constant within each individual element.2.y) ' K t MM Mt Section 8.5 Variable Coefficient-Induced Stability Limitations The fact that the coefficients of the canonical equation (Equation 160.3 of Allaire’s[51] development of Galerkin’s method for FEM. An examination of a one-dimensional second-order differential equation without any apparent first order terms highlights one potential problem with this approach. 4.338 currents which interact with the crevice geometry and conductivity that in turn generate the original potential distribution. assumes that the coefficients are variable. M MM MM K x(x) ' Kt Mx Mx Mt (237) When the derivative is applied over the bracketed term a first-order term proportional . M MM M 1 MM % Kxy(x.y)M % Q(x.y) K x(x.y) Mx My % P(x. narrow active noses. below) are themselves functions of position may introduce instabilities into the numerical solution.y) Mx Mx Mx 2 My % M 1 MM M MM K y(x.y) % My 2 Mx My My (160) MM MM % Mx(x.y) % My(x. The only remedies found in this dissertation was to decrease the average size of the elements and to avoid modeling polarization curves with steep.y) Kyx(x. used in CREVICER.

The ratio of the terms is: K x )(x))x K x(x) Pe ' (239) If this ratio exceeds 2 then the solution may oscillate. with various boundary conditions and with time. These cases have verified CREVICER’s ability to fulfill the first goal of this . M2 M Mx 2 MK x(x) MM MM @ ' Kt Mx Mx Mt K x(x) % (238) Analogously to the Peclet problem discussed in Section 4.2 instabilities can occur if the first-order term is large compared to the second-order. The example cases showed CREVICER’s ability to operate under diverse conditions of: varying conductivity. This type of instability may be important for potential type problems since the variation in either κ or h (depending on the exact formulation) may introduce an unexpected first-order term.339 to the derivative of Kx appears.2. Example problems for potential distribution. A similar problem exists for chemical transport since variations in D will produce an additional first-order term. In all cases CREVICER was able to replicate the analytic result. changes in a third dependent dimension. Summary This chapter has presented three series of test cases that verify CREVICER’s abilities in modeling crevice corrosion. chemical transport and time-transient solutions were solved and compared to analytic solutions. two free spatial dimensions.

340 dissertation. to produce a versatile model that would be suitable to model the crevice behavior of a variety of crevice and crack systems. intermediate attack and meet the second goal of the dissertation. . The next chapter uses CREVICER to examine one of the commonly observed features of crevice corrosion.

the Cathodic Focusing (CF) model to explain “Intermediate Attack” (IA) in crevice corrosion. Section 5. there are several possible explanations for IA. but where does the corrosion end. Although much more extensive experimental work would be required to gather a data set which could be used to definitively prove if the model operates. Although the standard CCS and IR* models do not explicitly address the problem of IA. but not exactly at. IA is the commonly observed phenomenon that corrosion damage in crevices is usually concentrated near. this thesis establishes the basis for the theory. Section 5. minor modifications keeping in the spirit of the models allow them to attempt to explain the problem.2 addresses the strengths and weaknesses of each model as applied to the problem of not only where does a crevice start to corrode.341 Chapter 5: Intermediate Attack OVERVIEW This chapter uses the model that was developed and verified in the previous two chapters to present a new theory. The CF model differs from the standard crevice models in the literature in that in that it accounts for the effects of cathodic reactions occurring deep within crevices. This question is important because a more complete understanding of the entire crevice corrosion process might lead to .1 discusses the phenomenology of IA and defines the terms and questions to be answered. Conceptually. the mouth of the site.

3. This material is needed to explain the counter intuitive effects predicted by the CF model in Section 5.1 Phenomenology of Intermediate Attack Intermediate attack describes the commonly observed condition in crevice corrosion where the area nearest the crevice mouth is uncorroded. Finally. the next deepest area is heavily attacked. Some background material on metal cation hydrolysis and the differences between hydrolyzing metal ions that are generated electrochemically rather than chemically is presented in Section 5. held potentiostatically at 0.1.05 V vs SCE in a solution of 17 mM NaCl and tightened to a mean crevice gap of 4 µm. and CF models for some hypothetical test cases. The corroded region (lighter colored area) occurs neither at the “mouth” (outside edge of sample) nor at the “base” . 5.4.1(a) from Jones[49] This figure can be compared to the SEM micrograph in Figure 5.1. Although the test cases do not represent any specific situation.1. the chapter ends by presenting the results of modeling IA with CREVICER according to the IR*.1.342 better strategies for combating it. they are all physically plausible and illustrate the capabilities of CREVICER. This is illustrated schematically in Figure 5. modified CCS. and the deepest regions are paradoxically unaffected by the corrosion. CF is shown to be a plausible explanation for IA.1(b) which was taken of a 304 SS sample which had been pressed face down onto a Teflon crevice former.

environment. The next section addresses how the standard theories of CCS and IR* can be modified to predict IA. Most previous models for the initiation crevice corrosion have concerned themselves with determining. the fact that it often fails to occur at the deepest points in the crevice. Rather. these approaches uniformly failed to address a peculiar quirk of crevice corrosion. . xattack and depth.1.1(c) there is an unattacked region of width xinit from the mouth of the crevice to the first point of attack. Understanding not only what processes promote corrosion in a crevice but also which ones might retard it may yield insights into better design to prevent localized attack. it occurs only at intermediate depths.1. dattack. Using the terminology of Figure 5. However. and geometry the depth within a crevice where attack will occur and the incubation time for that attack to start.343 (center of sample). for a given material. The size of the corroded region can be expressed by its width. Those are two important parameters for making engineering predictions about the suitability of a particular design for use in an environment.

347 5. It proposes that the chemical effects of small amounts of cathodic current on pH retard corrosion. Later in the chapter. acidification and chloride enrichment is the promoting process. but some minor modifications to the theories can give some insight into the IA process. Another possibility is that the observed IA is only a temporal effect.2 Standard Theories Applied to IA The standard theories for crevice corrosion may not explicitly address IA. In IR* it is destabilization of the protective oxide by decreased anodic overpotential. there must be some corrosion-retarding force to counteract the corrosion-promoting one that is the focus of each theory.2. CF will be presented as a possible explanation of IA. In the case of CCS. This protective mechanism is also present for crevices corroding according to the IR* model once the potential is on the open circuit side of the active nose. 5. Each of these theories has limitations when applied to modeling IA. In both cases a reasonable offsetting force is decreasing anodic overpotential which decreases the driving force for dissolution.1 CCS Theory Applied to IA Essentially the CCS theory for the initiation of crevice corrosion proposes that a crevice . The differing depths of corrosion might be the product of a moving corrosion front and that the structure at long times will be entirely different. If the IA is the result of a steady-state process.

Potential drop within the crevice is a reasonable candidate. negatively charged anions. The resulting accumulation of positively charged metal cations causes the ingress of rapidly moving. This potential drop inside a crevice will decrease the driving force for dissolution. Such a theory must predict monotonically decreasing pH with greater depth from the mouth to the base of a crevice and accordingly. In its original formulation. even small currents can produce appreciable potential drops on the order of hundreds of millivolts[25]. The magnitude of the drop depends on the electrical resistance of the crevice and the size of the current. As will be stressed later in this chapter. an important but implicit assumption in this theory is that the cathodic reactions needed to balance the dissolution reactions occur outside of the crevice. producing hydronium and lowering the local pH. The resistance of the crevice depends on geometry and solution conductivity. CCS holds that it is the increasing acidity of the crevice environment that causes the increased corrosion rate with the crevice. such as chloride. monotonically increasing corrosion rate. A theory which uses acidification as the only force affecting corrosion rate cannot predict IA. the theory assumes that potential has an insignificant role in promoting crevice corrosion. some offsetting force must be added. The metal cations also hydrolyze in solution. .348 acts as a barrier to the mass transport of metal cations out of the occluded site. The flow of a net anodic current from the interior of the crevice to the exterior where the supporting cathodic reactions are occurring must produce a potential drop. To account for IA. Crevices by definition are tight and combined with the limited conductivity of even highly concentrated solutions.

The potential drops continuously throughout the crevice. even after the solution saturates and no longer drops in pH. IR is thus a restoring force that allows the metal potential to approach its steadystate value in the absence of polarization.2. Once the rate of increase of solution aggressiveness drops off however the reduced driving force begins to decrease the corrosion rate. These competing processes. Part (a) is a diagram showing the orientation of the crevice and the location of three points within it. One factor to note is that IR drop cannot lower the potential below the open circuit potential in the relevant environment. Using IR to “turn off” corrosion keeps with the . a measure of solution aggressiveness. and potential within the crevice. Part (b) shows the pH.349 Indeed for all metals except active/passive ones. initially the increasing solution aggressiveness more than offsets the decreased driving force. Starting at the mouth (x=0) and going into the crevice.1(a). potential drop inside a crevice is a protective factor. Using the pH and potential information from part (b) the conditions at the three marked points within the crevice are marked on the appropriate polarization curve at the correct potential. This figure is illustrative only and is meant to depict the processes rather than any particular situation. The strength of this theory is that it is only a minor modification of a widely accepted model for the initiation of crevice corrosion. With increasing depth in the crevice the pH first drops. and the other for the acidic. increased solution aggressiveness and decreased driving force are shown in Figure 5. Part (d) represents the resulting current density along the crevice walls. Part (c) shows two polarization curves. one for the high pH. non-aggressive conditions near the mouth. highly aggressive conditions at the middle and base of the crevice. then remains at a constant low level.

The tendency of the metal potential to approach open circuit with increased depth is also problematic in that it begins to violate one of the premises of the CCS model . the dissolution reactions can be significant.3 and 5. Rather IR drop is a counterbalancing force which is overwhelmed in the shallow parts of the crevice by the increase in solution aggressiveness. The corrosion rate at open circuit in highly aggressive environments can be significant. The most important is that IR drop cannot lower the potential below the open circuit potential. .350 spirit of CCS that potential is unimportant in assisting crevice corrosion.4. As the potential approaches open circuit a greater and greater proportion of the required cathodic current is met locally. The effect of these local cathodic reactions will be discussed extensively in sections 5. At open circuit it is only the net current which is zero. There are several weaknesses to the theory however. but whose effects can appear once the solution composition stabilizes.the assumption that the cathodic reactions occur outside the crevice.

352 5. Figure 5.2 IR* Theory applied to IA Essentially the IR* theory claims that a crevice acts as a barrier to electrical transport. The two forces involved in creating IA according to the IR* model are the promoting force of oxide destabilization and the retarding force of decreased overpotential. The . for the same reasons as explained in the previous section. The circuit is completed on the boldly exposed surface where cathodic reactions consume the electrons generated inside the crevice. Part (a) is a diagram showing the orientation of the crevice and the location of three points within it.2(a) shows how the IR* model can predict IA. Anodic current is shown arising on the crevice walls and flowing across the solution resistance within the crevice. further drops in potential decrease the corrosion rate. Part (b) shows the potential within the crevice. The fact that for active-passive metals over some potential ranges decreases in potential increase the corrosion rate is a quirk of kinetics caused by the loss of the metal oxide. A net anodic current flowing from the crevice across the resistive crevice solution causes the potential in the crevice to drop towards its open circuit value.2. The IR* theory claims that potential is the dominant factor in determining crevice corrosion.2. For active-passive metals held in their passive region this decrease in potential can destabilize the protective oxide film and cause in increase in corrosion rate. IR* can predict it. The figure is illustrative only and is meant to depict the processes rather than any particular situation. Although it has not typically been used to predict IA. Once the potential drops beyond the peak of the active nose.

353 potential drops continuously throughout the crevice. There are two main limitations however. Once sufficient potential drop has occurred to lower the potential into the active nose. and cannot be universally applied to all corrosion systems. Xu and Pickering[88] illustrate the process in depictions of IR but do not present information about the trailing off process. the corrosion rate increases. Further drop lowers the potential across the active nose and begins to decrease the corrosion rate. the corrosion rate remains at the passive current density as long as the potential remains above the primary passivation potential. The potentials at different points within the crevice are marked on it. The second is identical to the main limitation of the CCS theory. At the mouth the potential is held in the passive region. The strength of this theory is that it falls naturally from the published IR* theory. the corrosion rate at open circuit can be considerable. . The first is that this theory only applies to active-passive metals. Starting at the mouth (x=0) and going into the crevice. Further drop causes the potential at the base to approach the open circuit value. IR drop causes the potential at the middle of the crevice to drop to the active nose. Part (c) shows the operative polarization curve. Part (d) represents the resulting current density along the crevice walls. Once the potential reaches the open circuit value the net current is zero and no further drop occurs.

it may only propagate across the crevice at some finite rate.2.3.3 Hydrolysis Reactions Subsection 2. Instead it could just be the trace of the early stages of attack. This was shown in Equation 95 from subsection 2. If crevice corrosion is nucleated at some heterogeneous site. 5. The cations in the salt are already ionized.3. The electrons that are stripped from the atoms must be consumed in a reduction reaction at . whereas the reduced atoms of a metal must be oxidized to become soluble.2.3 IA as a Transient Phenomenon It is possible that observed IA is not the result of a steady-state process. As was discussed in Chapter 2. Processes like the dissolution of a metal salt or the anodic dissolution of a metal can create these metal cations.2.1 repeated below. it is a relatively straightforward procedure to find the resulting pH for a given addition of metal cations.2 discussed the hydrolysis of metal cations and the methods used to determine the change in pH for a given addition of metal cations.355 5.3. When metal cations are introduced into aqueous solution they have a tendency to form metal hydroxides. xM z% % yOH & º Mx(OH)y (xz&y)% (95) By consuming hydroxyl ions the metal cations lower the pH of the solution. There is one critical difference between adding metal cations through the chemical dissolution of a metal salt and the electrochemical dissolution of a metal.

Each generated metal cation consumes some pH-dependent number of hydroxyl ions. 2 H % % 2 e & X H2 (3) 2 H2 O % O2 % 4 e & X 4 OH & (4) Each of these reactions generates hydroxyl ions that have a tendency to raise the pH. In aqueous solutions the common cathodic reactions are the Hydrogen Evolution and Oxygen Reduction Reactions.356 some location. However. yields insight into the situation. When metal salts are dissolved the only force on the pH of the solution acts to lower it. Counterintuitively.more than 90% of the chromium ions have no attached hydroxyl ions. An examination of the distribution of hydrolysis products for chromium. as shown in Figure 5. The net result is that electrochemical dissolution of chromium at low pH’s alkalinizes the solution. there are few hydoxyl ions available to form metal hydroxides. When a metal is electrochemically dissolved there are counterbalancing forces for acidification and alkalinization. . less than 3. These were first presented as Equations 3 and 4. The dominant Cr species is Cr+3 . it is the alkalinization process that dominates in almost all cases. At low pH’s. If the cathodic reactions required to support the dissolution of that cation are HER or ORR. then one hydroxyl is generated per electron released. the cathodic reactions required to produce that ion from a chromium atom generate three hydroxyl ions. The hydrolysis of a single trivalent chromium consumes less than one hydroxyl on average.3(a). independent of pH.

Fig 5.3(a) shows the number of hydroxyl ions consumed per chromium cation.3(a) was generated by summing the products of the fraction of each species times the number of hydroxyl ions consumed per cation. An alternate method of finding the equilibrium pH for the dissolution of an element which only forms mononuclear hydrolysis products and whose cation has valence n is to find the intersection of the curves for the n-1 and n+1 th order hydrolysis products. No such graphical technique is possible when polynuclear species must also be considered. this occurs at a pH of 9. At pH’s above this value more are consumed than produced and the solution acidifies. Three hydroxyl ions are generated by cathodic reactions to support the dissolution of each cation. For chromium. The trace of the number of hydroxyl ions consumed per cation in Figure 5. The only point at which the electrochemical dissolution of chromium will not have a tendency to affect the pH is when the number of hydroxyl ions consumed is equal to the number generated. Table 37 shows the equilibrium pH’s for several common cations. At pH’s below this fewer hydroxyl ions are consumed that generated and the solution will become more alkaline.357 As the pH rises each bare chromium ion hydrolyzes to a greater and greater extent. .6.

The same kind of analysis can be applied to alloys as well as pure elements.2 hydroxyl ion per metal cation at a pH of 10. which is considered a stronger hydrolyzer than Al. such as Cr+3 or Al+3. To achieve the equilibrium pH an ion must be hydrolyzed. to the same degree as the valence of the ion. It is interesting to note that Cr. 3rd. The mix of ions produced by that dissolution consumes on average 2.7 9. on average. essentially none of the ions remain at only the first hydrolysis product. This is because the equilibrium pH depends on the 2nd.6 10.7 10. An average ion resulting from the dissolution of 304 has a valence of 2.2. and 4th order products. . At the equilibrium pH for a trivalent ion. The minimum pH that can be reached by the addition of a metal salt depends on the first hydrolysis coefficient. has a higher equilibrium pH. The pH’s are obtained by assuming that only ions of the given valence are produced by dissolution and that only mononuclear products form. The equilibrium pH’s obtained when various metals are electrochemically dissolved in neutral water. Figure 5.6.3(b) shows the number of hydroxyl ions consumed per “average cation” of the stainless steel 304 with the composition shown in Table 38.0 Table 37.358 Cation Al+3 Cr+3 Fe+2 Cu+2 Valence 3 3 2 2 Equilibrium pH 6.

For 304.7 if all of the cathodic current is filled through local reactions. For pure Fe.25% 2.01% Table 38.21% 8. all of the required current is being met locally. if only 10% of the cathodic current is met locally the equilibrium pH is 5. Composition of stainless steel 304.75% 19. The composition was taken from Davis[#181].72% 2.00% 9. if 10% of the required electrons are consumed locally the pH is 9. Both alloys have an equilibrium pH of near 10.00% Atomic % 69.359 Element Fe Cr Ni Mn Weight % 69. At a material’s open circuit potential.3(c). that no cathodic reactions occurred inside the crevice then there would be no alkalinizing force and crevices pH’s would drop unfettered. Were this absolutely true. Crevices are usually thought of as being held anodically and as a result having the majority of the anodic reactions occur inside the crevice and the bulk of necessary cathodic on the boldly exposed surface. Silicon.06% 20. . It is possible to use the analysis of the previous section to calculate the equilibrium pH when various fractions of the required cathodic current are met locally.2. This calculation is shown in Figure 5. Phosphorus and Sulfur are not included. This alkalinization when the material corrodes locally has been observed by Buchheit et al[34] in experiments on isolated microcrevices and shaving experiments with high surface-tovolume ratios.

Figure 5.09% of the required cathodic current is being met locally. then those depolarized regions can be expected to become very alkaline. Meeting all of the current locally. can cause a pH rise to quite alkaline values.360 Crevice corrosion generates large amounts of current. If the resulting potential drop depolarizes parts of the crevice to the open circuit potential. Providing even small amounts (10%) of the required cathodic current locally can dramatically limit the pH drop caused by metal cation hydrolysis. as occurs at open circuit. . then only 0.3(c) shows that if the solution resulting from the dissolution of 304 is in equilibrium at pH=2. The vast majority of the cathodic current is being supplied from reactions occurring far away in solution where the alkalinizing effect does not affect the chemistry at the dissolution site. In comparison.

Part (a) is a diagram showing the orientation of the crevice and the location of three points within it. Using the pH and potential information from part (b) the conditions at the three marked points within the crevice .4 Cathodic Focusing Theory of IA Undoubtedly both potential and chemistry effects are involved in crevice corrosion. This extreme is not shown in the diagram.4. The potential drops throughout the crevice. Part (c) shows two polarization curves. a measure of solution aggressiveness. Part (b) shows the pH. This figure is illustrative only and is meant to depict the processes rather than any particular situation. It is this rise in pH that protects the metal deep in the crevice and causes IA.364 5. Figure 5.1(a) shows this process. The CF theory proposes that potential drop in the crevice lowers the potential to near the open circuit value.3 illustrated that even small amounts of cathodic current can have large effects on the equilibrium pH. and the other for the acidic. Section 5. and potential within the crevice. as it is unnecessary to illustrate the overall process. Some systems may be dominated by one effect or the other. unless changes in chemistry cause the deepest parts of the crevice to be polarized cathodically. one for the high pH. non-aggressive conditions near the mouth and base. but both CCS and IR* ignore the chemical effects of cathodic reactions occurring within the crevice. then rises in the regions of the crevice which rest near their open circuit values. With increasing depth in the crevice the pH first drops. Near the open circuit value the dissolution current is almost balanced by locally occurring cathodic reactions and this causes the pH to rise. highly aggressive conditions at the middle of the crevice.

changes in chemistry can polarize the sample either anodically or cathodically. initially the increasing solution aggressiveness more than offsets the decreased driving force. the pH rises again and the corrosion rate rapidly drops off because both chemistry and potential are acting as retarding forces. This theory also fits with the observations of Alavi and Cottis[93] and Guo[94] who saw pH rises in deep crevices and the recommendations of Turnbull[95] who suggests using the alkalinization as a preventative measure by stimulating the cathodic reaction in the crevice.365 are marked on the appropriate polarization curve at the correct potential. in neutral to alkaline environments they are negligible. . Part (d) represents the resulting current density along the crevice walls. One factor to note is that while IR drop alone cannot lower the potential below the open circuit potential in the relevant environment. Once the potential is low enough to cause appreciable amounts of the required cathodic current to be met locally. while the corrosion rates in highly acidic solutions can be appreciable even at open circuit. This theory allows for corrosion to be totally stopped within the crevice. Starting at the mouth (x=0) and going into the crevice. For many metals.

5. the corrosion rate at the open circuit value of the relevant environment. This case was drawn from the work of Walton[78] modeled in CREVICER using the physical parameters of Table 39.5.367 5. Depolarization of the crevice by resistive potential drop can lower the potential of portions of a crevice thus destabilizing the protective oxide film and initiating rapid attack. The final physical parameter used was E-I relationship for the material . CREVICER can be used to model such a situation.1 IA by the IR* Model As was discussed in section 5.2 the IR* theory for the initiation of crevice corrosion in active/passive metals can explain intermediate attack. 5.5 M sodium sulfate + 0. The crevice is filled with a uniformly conducting electrolyte of composition 0. Figure 5. It will end by modeling IA by the Cathodic Focusing model of crevice corrosion. Further decreases in potential reduce the driving force for initiation and lower the dissolution rate to icorr.5 Modelling of IA by IR*.5 M sulfuric acid. CCS and CF by CREVICER CREVICER was used as a platform to model crevice corrosion under different sets of assumptions. It is capable of accounting for or disregarding any variables as needed.1(a) represents a onedimensional crevice held potentiostatically at the mouth with one active/passive flank. This section presents results of crevice corrosion modeling by each the two prevalent theories with an eye towards explaining intermediate attack. The length of the crevice is x0 and the separation of the two parallel sides is h.

The parameters used for modelling the IA by the IR* model.5 [mm] 1 [cm] 2. i ' 10 a 0 % a 1E % a 2E 2 % a 3E 3 % a 4E 4 % a 5E 5 % a 6E 6 % a 7E 7 % a 8E 8 % a 9E 9 % a 10E 10 (240) . The raw data and the fit are shown in Figure 5. The only remaining piece needed is the polarization curve shown in Figure 5. These are shown in Figure 5. Parameter x h w κ φ0 Value 1 [cm] 0. These values are the exact ones used to define the size and character of the crevice illustrated in Figure 5. CREVICER uses the geometrical. The parameters of the polynomial are given in Table 40.1(a).71 [V SHE] Table 39.1(c) The exact relationship used was the tenth-order polynomial given in Equation 240 that was fit to the experimental data of Valdes-Moldon used by by Walton[78].1(b) and defined in Table 40.5.5.368 in this environment.5.1(b).67085 [Ω-m]-1 0.5. chemical and electrochemical properties of the crevice to find the potential and current distributions within the crevice.

4211 a10 -137. .36 -59.1(c).5.6 mm from the mouth.0202 -428.838 a9 -69.904 284. continuous format.20439 a8 37.304 Table 40. The resulting distributions of potential and current density along the crevice flank are shown in Figure 5. The values for the coefficients of the tenth-order polynomial used to fit the polarization curve of Valdes-Moldon. The point of greatest attack is predicted to occur 0. It captures the polarization curve in a compact. Neither the model nor the physical system it is based upon experience chemistry changes. the solution conductivity.34608 0. and the material behavior can be used to find the steady-state potential distribution.231 96. The physical data on the crevice geometry. The use of a tenth-order polynomial to fit the logarithm of the experimental data allows a good representation of the data.369 Parameter a0 a1 a2 a3 a4 a5 Value 2. or by extension polarization curve shifts. The only driving force for corrosion is the varying potential within the crevice.753641 Parameter a6 a7 Value 275.7865 -1.

370 The other major competing theory for the initiation of crevice corrosion is the CCS. the model cannot account for IA.2. Modifying the process to account for the effects of potential variations can allow it to model IA and will be shown in subsection 5. . As will be seen in the next subsection.5.3. 5.2.

2(a) shows the simple. the rate of attack can only increase with increasing depth into the crevice.6 M NaCl solution with conductivity 7.374 5.5. Without a counterbalancing force of some kind to slow corrosion. It is filled with a 0. one-dimensional. This phenomenon was illustrated by using CREVICER.2 CCS Model The CCS model in its purest form is not capable of modeling intermediate attack. The set of polarization curves is continuous. Note that since for this case no potential drop is allowed to occur within the crevice the potential is uniformly that of the mouth. 0. only a single point on each polarization curve is used.2(b). Traces of the interpolated polarization curves at various pH’s are shown.5. . The behaviors at pH = 1 and pH = 7 are defined and the log of the current at other pH’s is interpolated linearly between those two values.1. These values are summarized in Table 41.5. slot-shaped geometry used in subsection 5. Essentially.05 V.5.58335 [Ω-m]-1. It has length x0 and gap h. Figure 5. If no potential variations are allowed to occur then the only force which can affect the corrosion rate in the crevice is the increasing aggressiveness of the electrolyte. The polarization curves used to represent the material behavior are shown in Figure 5.

This is shown in 5. These are shown in Figure 5. the pH drops uniformly and evenly except near the mouth where transport of chemical species out of the crevice keeps the pH more neutral than what can be achieved at greater depths.5. The CCS model was originally only designed to predict the initiation of crevice corrosion.375 Parameter xo h w κ φ0 Value 1 [cm] 4 [µm] 1 [cm] 7. This pH distribution and the fixed potential can be used to find the corrosion rate along the crevice flanks at various times.5.2(c) Figures 5. These values are the exact ones used to define the size and character of the crevice illustrated in Figure 5.2(d).5. chemical and electrochemical properties of the crevice to find the potential and current distributions within the crevice. The only remaining piece needed is the polarization curve shown in Figure 5.58335 [Ω-m]-1 0. The corrosion rate inside the crevice is constantly increasing with greater depth.2(b).2(a). It is only mitigated near the mouth because the close proximity of the bulk solution allows transport which limits the pH drop.05 [V] Table 41.5.5. Since there are no potential variations.2(c) shows the pH distribution within the crevice at various times. CREVICER uses the geometrical. It is not meant as a criticism to point out that is unable to model IA which it was . The parameters used for modelling according to the CCS model.

. Extending the theory by accounting for the effects of potential drop decreasing the overpotential for anodic dissolution can modify the theory to account for IA. This is done in the next subsection.376 never intended to do.

These physical parameters are shown in Table 42.3(a) shows the same geometry that was used in the preceding subsections. promoted in the interior due to adequate driving force and chemistry.3 M NaCl. Once again the length of the crevice is x0 and the gap is h.5. and retarded near the base by a lack of driving force. Accounting for potential drop brings the entire curves to bear rather than just the 0.05 V points. . but this time the conductivity of 3. These curves are repeated in Figure 5.2. Figure 5.5.381 5.791675 [Ω-m]-1 plays an important role by affecting the corrosion rate. It is initially filled again with 0. IA can be generated if attack is retarded at the mouth due to insufficiently aggressive chemistry.5.5. The same set of polarization curves are used as in 5.3 IA by the CCS model Accounting for the effects of potential drop provides the CCS model with the counterbalancing force that reduces the corrosion rate and can be played against the corrosion promoting force of acidification to produce IA.3(b). For a Tafel-like metal reducing the driving force slows the corrosion rate. This case is modeled by CREVICER with the following conditions.

5. Consequently.3(d).791675 [Ω-m]-1 0.3(c) shows the potential distribution within the crevice at various times. Initially the crevice is filled with 0. These are shown in Figures 5.5. chemical and electrochemical properties of the crevice to find the potential and current distributions within the crevice.3(a). The combination of high conductivity and extremely low current generation because of the neutral pH causes a nearly flat potential profile within the crevice.05 V Table 42. The only remaining piece needed are the polarization curves shown in Figure 5. This is seen in the t = 1 s line on Figure 5. The minor effect of these additional ions on increasing conductivity is more than overcome by the . CREVICER produces information about the changing potential and pH distributions within the crevice.3(c) and (d).5. This change in chemistry affects the potential distributions at later times. These values are the exact ones used to define the size and character of the crevice illustrated in Figure 5. These are shown in Figure 5.5.3(c). The subsequent corrosion rate and release of the metal cations is nearly equal within the crevice.3(b).5. Figure 5.382 Parameter xo h w κ φ0 Value 1 cm 4 µm 1 cm 3. CREVICER uses the geometrical.5. the entire crevice drops in pH nearly uniformly.3 M NaCl at a pH of 7. The parameters used for modeling according to the CCS model.

383 exponential increase in current with decreasing pH and a significant potential distribution appears with in the crevice by time t = 8 s. The next model differs from the previous two only in that it produces hydroxyl along with any cathodic current.5. Neither of the models for IA by CCS nor CCSIA have included the chemical effects of the cathodic reactions. This variable rate of corrosion results in an uneven distribution of pH as seen in Figure 5. An alternate method of presenting the information about the potential.5. pH and corrosion rate within the crevice is Figure 5. More corrosion occurs (and more metal cations are released) at the most anodic potentials near the mouth. but not at.5. The information in Figures 5. It records the current information from a potential sweep of a single material in an electrolyte of varying composition. It shows the transition from nearly uniform corrosion initially within the crevice to intermediate attack where the corrosion rate peaks near.3(d) at times t >= 8 s. .3(c)-(e). the mouth of the crevice.5.5.3(c) and (d) can be combined to find the corrosion rate of the crevice at each point within the crevice. The lowest potential points are deepest in the crevice. It combines all of the information from Figures 5. These data is presented in Figure 5. but the position information is now implicit by the location of each data point along the curve. Once a significant potential distribution appears the generation rate within the crevice is no longer equal.3(e). The information forms a quasipolarization curve. a process that is only limited by the rapid transport of ions out of the crevice at the same location.3(f).

These curves are repeated in Figure 5. This case is modeled by CREVICER with the following conditions. Accounting for potential drop brings the entire curves to bear rather than just the 0.4(a) shows the same geometry that was used in the preceding subsections. the driving force for increased dissolution is greater solution aggressiveness. These physical parameters are shown in Table 43.390 5.2.4. This alkalinization occurs by the mechanism discussed in section 5. It is initially filled again with 0. When modeling a Tafel-like material.05 V points.3 and the overall theory was discussed in section 5.5. The same set of polarization curves are used as in 5.5. The two counterbalancing forces that turn off corrosion are decreasing driving force and alkalinization of the crevice depths. but this time the conductivity of 3.4(b) .5. Once again the length of the crevice is x0 and the gap is h. Figure 5.791675 [Ω-m]-1 plays an important role by affecting the corrosion rate.3 M NaCl.4 IA by the CF Model The CF model fully accounts for the electrical and chemical behavior of a crevice.5.

These are shown in Figures 5. This change in chemistry affects the potential distributions at later times.791675 [Ω-m]-1 0.5.4(d). These values are the exact ones used to define the size and character of the crevice illustrated in Figure 5. The combination of high conductivity and extremely low current generation because of the neutral pH causes a nearly flat potential profile within the crevice.3(a).5. The subsequent corrosion rate and release of the metal cations is nearly equal within the crevice. the entire crevice drops in pH nearly uniformly. The minor effect of these additional ions on increasing conductivity is more than overcome by the .5.3 M NaCl at a pH of 7. Consequently.05 V Table 43. These are shown in Figure 5. CREVICER uses the geometrical.5. This is seen in the t = 1 s line on Figure 5.4(c) shows the potential distribution within the crevice at various times.3(b).391 Parameter xo h w κ φ0 Value 1 cm 4 µm 1 cm 3. Initially the crevice is filled with 0. CREVICER produces information about the changing potential and pH distributions within the crevice. The parameters used for modeling according to the CCS model. The only remaining piece needed are the polarization curves shown in Figure 5. Figure 5.4(c) and (d).5.5. chemical and electrochemical properties of the crevice to find the potential and current distributions within the crevice.3(c).

As can be seen in Figure 5.5. but not at.5. This can be seen in Figure 5.4(e). When compared to Figures 5. Near the open circuit potential in the relevant environment OH-’s are produced locally. This first mitigates. An alternate method of presenting the information about the potential.4(d) at times t >= 40 s. then reverses.2(e) and 5.5.4(c)-(e).5. It combines all of the information from Figures 5.4(f). the acidification of the crevice. This variable rate of corrosion results in an uneven distribution of pH as seen in Figure 5.5. More corrosion occurs (and more metal cations are released) at the most anodic potentials near the mouth.5. pH and corrosion rate within the crevice is Figure 5. It shows the transition from nearly uniform corrosion initially within the crevice to intermediate attack where the corrosion rate peaks near. Once a significant potential distribution appears the generation rate within the crevice is no longer equal. but the position information is now implicit by the location of each data point along .4(c) and (d) can be combined to find the corrosion rate of the crevice at each point within the crevice.5.4(d) at times t >= 8 s. This data is presented in Figure 5. A third phase in the crevicing process occurs once the solution becomes aggressive enough to cause adequate current to depolarize the base of the crevice to values near the open circuit potential. the mouth of the crevice. The information in Figures 5.5.3(e) the degree of protection afforded the base of the crevice becomes apparent.5.392 exponential increase in current with decreasing pH and a significant potential distribution appears with in the crevice by time t = 8 s. a process that is only limited by the rapid transport of ions out of the crevice at the same location.4(c) this starts to occur at time t = 40 s.

The dramatic slowing of corrosion rates caused by the alkalinization of the crevice base is immediately obvious on this plot.4(d) the movement of the acidity/alkalinity interface to deeper depths with increasing time showed this process. This tendency can only be overcome by transport of acidity from the intermediate regions to the depths of the crevice. Another useful plot is a representation of the ration of anodic to cathodic current at each point in the crevice.4(g).5. Any crevice that depolarizes to the open circuit potential will have a tendency to rise in pH in those regions. Figure 5. Areas with ratios equal to 1 are at the open circuit potential. The increased length of the crevice provides more crevice area that corrodes at the open circuit . It records the current information from a potential sweep of a single material in an electrolyte of varying composition. The model fully accounts for the generation of chemical species. This suggests that changing the area ratio of the acidity producing areas to the alkalinity producing ones will shift the motion of the acidity/alkalinity interface.5. Because current densities at the open circuit are lower than those with higher driving force the areal production of acidity near the mouth must be higher than the areal production of alkalinity near the base. Those with ratios > 1 are cathodically polarized. The information forms a quasipolarization curve. In Figure 5.5. The CF model can produce dramatically different rates of corrosion by alkalinizing the base of a crevice.393 the curve. The lowest potential points are deepest in the crevice. This is shown in Figure 5. This can occur because the local open circuit potential rises with pH.4(h) shows the pH versus position data at several times for a crevice that differs from the one defined in Table 43 only in that it is 5-cm long instead of 1 cm.

The concepts of the CF model can also be applied to environmental cracks and suggest a relationship between crack length and crack-tip pH. Both the IR* and CCS/IA models were able to produce some degree of differential corrosion rates that peaked at intermediate depths by using potential drop to turn off the corrosion rate. . Neither model was able to produce as great a differential as the CF model. This increase in area more than compensates for the low specific generation of hydroxyl ions and allows the alkaline region to expand at the expense of the acidic region. The CCS model was unable to predict IA.4(d). Summary This chapter has presented several models of crevice corrosion that were run under CREVICER to test their suitability for modeling IA. which shows the alkaline region shrinking.5. Intermediate attack in crevice corrosion can only result from the interplay of at least one corrosion-promoting and one corrosion-retarding force.394 potential and thus generates alkalinity. The CF model alone fully accounts for the electrical and chemical processes occurring inside crevices. which was generated for a 1-cm long crevice. This understanding opens the possibility of adjusting the balance between the forces to favor the corrosion retarding one and prevent crevice corrosion entirely. An explanation of intermediate attack must properly account for both forces. Compare these results to Figure 5.

chemical composition. This cannot be done as the code runs so a model cannot automatically adjust its . The boundary conditions can be programmed as free-form curves and can be sensitive to potential. Despite CREVICER’s overall versatility. temperature and pressure. Subsection 4. CREVICER depends on an outside mesher to create the elements and nodes that define the crevice. Many of these possible improvements are discussed in Chapter 7. narrow active noses.4 presented the difficulties CREVICER encounters in finding potential distributions for materials with sharp. This versatility was achieved through the use of OOD. cannot account for shape changes. the code has some limitations. Constructing the code as a collection of objects allows easy revision of modification of individual portions. It models mass transport by migration and diffusion and maintains charge neutrality and chemical equilibrium. CREVICER is a two-dimensional(+) FEM code for modeling the electrochemical conditions that arise inside occluded sites. CREVICER can act as a basis for future models that refine individual areas of the code.2. and may not be properly accounting for the diffusion potential.403 Chapter 6: Conclusions The two goals of this dissertation were to develop a broad-based code for the modeling of crevice corrosion that would be adaptable enough to serve as a platform for a variety of future modeling efforts and to use that code to investigate the phenomenon of IA. This range of applicability allows the code to be used to model the chemical behavior of any two-dimensional crack or crevice. It is restricted in the kinds of polarization curves it can utilize.

This alkalinization can be a second force for retarding corrosion. The CCS model only supplies a single corrosion enhancing force.404 shape as corrosion or plating occurs. Finally. CCS/IA and CF models in order to test their suitability for modeling IA in crevice corrosion. or driving the cathodic reactions with a separate embedded and powered cathode.5. The CF model accounts for these cathodic reactions and predicts alkalinization at the most occluded portions of an occluded region. the diffusion potential is not be perfectly integrated into the code. The CCS/IA model adds the effects of potential drop and uses the resulting reduction in driving force to arrest corrosion in the crevice depths. The potential drop which depolarizes an active/passive metal into its active region can also bring parts of the crevice to the open circuit potential. CCS. hydroxylgenerating ion like ozone or diatomic oxygen. acidification.4 showed that crevice length can have a marked effect on the size and stability of any potential alkaline region. Its effects are included in transport but not in generation or the stability checks. CREVICER was used to model crevice corrosion by the IR*. by its explanation of the retarding force against crevice corrosion. Section 5. Other mechanisms to increase the rate of hydroxyl ion production include adding cathodic catalysts. . The CF model. IA can only occur if there are at least two opposing forces operating on the crevice. Common cathodic reactions produce one hydroxyl per electron consumed. increasing the supply of a reducible. presents the possibility of strengthening that retarding force and stopping crevice corrosion entirely. and cannot model IA. The IR* model includes the ability to model IA in its original form. Both of these two approaches ignore the chemical effects of cathodic reactions in the crevice.

405 .

An easy-to-use Graphical User Interface (GUI) that provided a shell between novice users and the code would be a welcome addition. A successful GUI would make CREVICER more accessible for a wider distribution of corrosion scientists and engineers.1 Code Improvements The areas in which CREVICER can be improved are increased speed. Another limitation of the code is that the functionality can only be accessed by programming. The problems that are examined may or may not be stable. Three types of future work can be performed to extend this dissertation: improvements to the CREVICER code. 7. it is extremely inefficient. The first area that should be examined to locate a speed increase is the solver routine. The current solver uses Gaussian elimination to solve the n by n matrix that is created for each variable in each time period. but the code takes no corrective action.406 Chapter 7: Future Work The CREVICER code is meant to act as a platform on which later models can be built. CREVICER is strongly limited by computational time. Increasing the rate at which the code runs would allow proportionately more intensive problems to be examined. improvements to the model implemented in CREVICER and experimental work to verify the predictions of the code. CREVICER alerts the user if the problem may be numerically unstable. Possible improvements would be to use a vectorized approach that takes advantage of the . Although this algorithm is easy to code. increased stability and increased ease of use.

The basic functions for such a GUI would be mesh generation and definition. .407 bandedness of the equations or to use a sparse matrix implementation that only manipulates the non-zero elements of the matrix. CREVICER attempts to find the steady-state solution by time marching through “pseudo-time”. control of the model execution and model output. The second area the CREVICER could be upgraded in is enhancing the stability of the code.2. This ease of programmability is of little use to non-programmers. An alternate route would be to use upwinding or the method of lines to ensure stability over a wider range of conditions[48]. such as the timestep or mesh size. CREVICER’s object-oriented nature makes it easy to reprogram. Multiple steps in pseudo-time can be required to find the quasi-steady-state potential distribution at each timestep. to ensure stability. Each calculation of a pseudo-timestep takes as much time as a chemical timestep. A GUI would make it easier for nonprogrammers to use CREVICER. The code does not however adjust its own parameters. A second area for speed increases which should be examined is the routine for finding the potential distribution in the crevice at each time period.3. CREVICER detects Peclet problems as it runs and informs the operator that the code may not be stable. Currently. setup of initial conditions. A method to speed the calculation of the potential distribution could result in significant time savings.2. This method can have the same types of stability problems that were mentioned in subsections 4.2 and 4. The third area for improvement in the CREVICER code is in the area of interfacing with the user.

The initial conditions for the model have an effect on the course of the crevicing event. viscosity and tortuosity would be easily implemented. The parameters of the model execution such as length of timesteps used.2 Model Improvements CREVICER currently makes several simplifications about the behavior of individual components of the crevicing process. precipitation. CREVICER can output not only the field variables but derived parameters such as pH. This subsection has discussed changes that change the way CREVICER operates. Integrating that separate step into CREVICER would simplify model operation. Graphical selection of the solution composition and the materials for individual elements and edges would ease input and increase accuracy by ensuring the boundary conditions actually used by the model correspond to the physical system.408 Mesh generation is currently done in ANSYSTM. conductivity. Better representations of concentrated solution effects. degree of implicitness/explicitness and convergence criteria would ideally be located at a single point. CREVICER can generate extremely large amounts of data. The next section addresses such changes. The parameters that need to be output vary from model to model and the ability to selectively output only the relevant data without programming would simplify the data analysis process. Most of these can easily be addressed in the code by modifying one or two objects. One . 7. Accounting for shape changes would be more complicated but would still involve only a minority of the code. but not the fidelity of the model implemented in CREVICER to any particular physical situation. or flux across an edge. Finally.

For example. however. Another example might be the dissolution of metastable pits. .2 on the transport coefficients a number of factors can come to bear on the kinetics of mass transfer when the solute ions begin to interact with one another. Time was omitted as a variable when the interfacing between the various objects was defined. It would be useful to allow pits inside a crevice to corrode for fixed periods of time and the turn off.3. Passing time as a parameter would not only allow materials to show time transient behavior that is independent of chemistry or potential changes but also allow for the model to make specific changes in the model at absolute time intervals. Absolute time is not passed between any of the parameters and its inclusion into the code would cause changes in almost every object of CREVICER. Not only may the diffusivity and mobility be changed directly.3. CREVICER assumes that behaviors instantly change to reflect new electrochemical conditions.2. Concentrated solutions may also affect the thermodynamics of the crevice solution by changing the activity coefficients of individual species.1. A final improvement would be reformulating the mathematical method used to allow for moving boundaries. This can even destroy the underlying basis for using gradients of concentration rather than activity in diffusion as was discussed in subsection 2. None of these factors are currently implemented in any object in CREVICER. would require small modifications over most of the code.2. a previously passivated metal surface takes a finite period of time to remove the protective oxide when it is placed in an activating solution. but indirect effects like viscosity changes or tortuousity caused by precipitation of a solid phase may play a role.409 omission. As was seen in subsection 2. This approach does not fully reflect the physical behavior of real systems.

410 A final improvement in the model would be to recast the mathematical solution technique to allow for the boundaries of the crevice to move based on the corrosion rate. . Model verification by experiment would strengthen the CF theory of intermediate attack in crevice corrosion. This would allow for a single model to investigate the shape evolution of a crevice. Summary CREVICER could benefit from modifications to the code to improve speed and usability and from refinements of the models that are implemented in it. In situ or ex situ measurements of pH within a creviced region similar to the work of Alavi and Cottis[93] would be useful if compared directly to CREVICER predictions.

Gartland. 5. Cho. Hoar. Electrochem. S. H. M. Oldfield. Corrosion Engineering. in Corrosion 97. K.W. Fontana. 7.P. 1978....H.. Br. 4. Principles and Prevention of Corrosion...M. 1992. 2. "Crevice Corrosion of Stainless Steels I. 6. 1986. "A Mathematical Model of the Initiation of Crevice Corrosion in Metals".411 Chapter 8: References 1. 3313-3314.. 3. 1: p. A Mathematical Model". 556. Corros. "A Simple Model of Crevice Corrosion Propagation for Stainless Steels in Sea Water". Faraday Soc. Soc. and Sutton. New York: McGraw-Hill Book Company.W. P. 33(2): p. D.G. 586. 1992: MacMillian Publishing Company. W. 13-22. Disc. J.. J. Jones. 13(1): p. 299. T. "Demonstration of Crevice Corrosion in Alkaline Solution Without Acidification". 1990. and Pickering.. J. Corrosion Science.G.O. 183-201. . 137(10): p. 1997: National Association of Corrosion Engineers. 1947. Sharland.

G. Cragnolino. Watson. 10. 857-872. Corrosion Science. 678-688. and Dunn. Corrosion Science.. "On the Role of Alloy Sulfur in the Initiation of Crevice Corrosion in Stainless Steel".C. C.K. Corrosion Science. in Critical Factors in Localized Corrosion III. The Electrochemical Society: Pennington. and Kelly. Turnbull. DeJong. Sridhar.G. L.412 8.. Kelly. 789-805. 38(1): p.K. D. Walton. in Critical Factors in Localized Corrosion II. 50(11): p. and Postlethwaite.G.G. A. "Modelling of Crack Chemistry In Sensitized Stainless Steel in Boiling Water Reactor Environments". NJ. Brossia. 12. "Effect of Applied Potential on Changes in Solution Chemistry Inside Crevices on Type 304L Stainless Steel and Alloy 825". 1991. "The Demonstration of the Microfabrication of Rigorously Defined Crevices for the Investigation of Crevice Corrosion Scaling Laws". Corrosion. R. 32(11): p. J. and Kelly. N. 13.... 1253-1262. M. 39(4): p. Editors.. 1996.S.A. et al. 11. 1-18. "A Numerical Model of Crevice Corrosion for Passive and Active Metals". 9.. p. R. S. and Kalandros. "Numerical Simulation of Crevice Corrosion: The Effect of the Crevice Gap Profile". 1996: Electrochemical Society Proceedings. R.. J. 1997. 1994.S. 1999. .

136(4): p. F.. R. 1001-1007. R. M. "The Effects of Dissolved Oxygen Concentration and Mass-Transport Conditions on the Dissolution Behaviour of Copper Nuclear Waste Containers". King. 1989. 1983. 1996. in Corrosion 96. 17. Electrochem.. F.413 14. Y. in Corrosion 95.Y. D. Tang. Cragnolino.. 15. King. Experimental Investigations in Chloride Solutions". "The Role of Inclusions on Initiation of Crevice Corrosion of Stainless Steel". C.. and Kolar. Pennick. in Corrosion 95. J. and LeNevu. "Application of a Transient Crevice Corrosion Model to the Prediction of Performance of High-Level Nuclear . 130(5): p.. Shoesmith..C. and Alkire. "Dissolved Metal Species Concentration for Initiation of Crevice Corrosion of Aluminum I.. Sridhar. D.D. and Litke. Hebert. and Torng. Lott.. K. and Alkire.M. 19. T. "Modelling the Failure of Nuclear Waste Containers".. B. Ikeda. J. Soc. 16.. "Prediction of Lifetimes of Copper Nuclear Waste Containers Under Restrictive Mass-Transport and Evolving Redox Conditions". 973-978.. 1995. H. 18. G. Electrochem. N. M.M.J. 1995: National Association of Corrosion Engineers.E.. S.W. Soc. Quinn.

. H. Electrochemical Systems.J. Bockris. 1983. and Faulkner. 1980. 432. Chemical Thermodynamics of Materials. 2. New York: Plenum Press. Pickering.O. R. L.M. Williamsburg.C. ed. 59 ed.N. .414 Waste Container Materials". Evans Conference on Localized Corrosion.. Weast. 1973. VA: National Association of Corrosion Engineers.. Bard. 581. Vol. 20. in U.. NJ: Prentice-Hall. 23. and Frankenthal. R. 1970. 1991: NACE International. 21. Englewood Cliffs.. Newman. J. 1432. 22. J.P.P.K. C. Inc.J. 718.R. A. A. CRC Handbook of Chemistry and Physics. 25. and Reddy. 24.. 1978.W. Modern Electrochemistry. Lupis.H. New York: NorthHolland. in Life Prediction of Corrodible Structures. CRC Press. Inc. New York: John Wiley & Sons. Electrochemical Methods: Fundamanetals and Applications. "Mechanism of Pit and Crevice Propagation on Iron and Stainless Steels". 1971.

1(3): p. Philadelphia. Gartland.. "Thermal Conductivity of Heterogeneous TwoPhase Systems". 29. Industrial Engineering Chemistry. A Mathematical Model of Crevice Corrosion for Fe-Ni-Cr-Mo Alloys in Chloride Solutions. Norway. M.415 26.L. and Postlethwaite. R.A. Soc. 27. Johnson.K. AIChE Journal. and Crosser. 46(7): p. J.. 122(11): p. "Numerical Simulation of Crevice Corrosion of Stainless Steels and Nickel Alloys in Chloride Solutions". 1988.. 1983.S.. Corrosion. 1990. W. 36(12): p. 1963.. W. "Diffusional Effects in Simulated Localized Corrosion". H. ... 1990. Class Notes: MSE 792 Diffusional Processes in Materials. P. 1975. 30. O. 1896-1900. 1438-1445. PA: The Metallurgical Society/AIME. and Isaacs.O. 522-530. . in Embrittlement by the Localized Crack Environment. J. 28. "Activity Coefficient Model of Concentrated Electrolyte Solutions". SINTEF: Trondheim. "Progress in the Understanding of the Electrochemistry in Cracks". J. Turnbull. 31.W. Tester. 187-191. Electrochem. Hamilton. 32. Watson. A. Song.

"A Finite Element Analysis of Corrosion Cells". 38. New York: Academic Press. Galvele. and Mesmer. J. Malabar. Tomasson. 1985. Corrosion. R. The Hydrolysis of Cations.. 132(5): p. 34.J. 1982. J. Corrosion.G. Electrochem. Electrochem.. Moran. R. G. 1027-1031.416 33. Soc. Florida: Krieger Publishing Company. in NACE90. Soc. 295-296. J. J.. "The Role of Hydrolysis in the Crevice Corrosion of Aluminum-Lithium-Copper Alloys".. J. . 35.E. and Hebert. 1990. Buchheit.. C. 1958.. Fu. J. and Chan. 123(4): p.. 36..W. 551. R. 499. "A Finite Element Method for Modeling Localized Corrosion Cells". 37. 464-474.. 540-544.. Alkire. T. 40(10): p.R.F. Fu. 1976.P.-K. 1986.E. and Stoner..W. "The Critical Geometry for Initiation of Crevice Corrosion". S. K. 1984.. J. 38(5): p. Las Vegas: National Association of Corrosion Engineers. 39. Baes. "Transport Processes and the Mechanism of Pitting of Metals". Bikerman. Surface Chemistry.

1990. White. 43.I. Wilson. Corrosion Science. 1101-1108.T. "A Mathematical Model of Crevice and Pitting Corrosion . "A Mathematical Model of Crevice and Pitting Corrosion . 21(8): p. Edwards.. Sharland. et al.. Noh.J.C.II. 145(4): p. Galvele. N. Corrosion Science. p. P. P.. J. NACE: Houston. 603-620. The Physical Model". Corrosion Science. Full Hydrolysis Plus Ion Migration Plus Buffers".. The Mathematical Solution". Journal of the Electrochemical Society. 1981. R. 621-630. 24(6): p.. 381-392. 551-579. "Transport Processes in Passivity Breakdown . J. Editors. Laycock. S. Isaacs. Sharland. H. 45. J. S.M.M.. 44.R. 28(6): p.. R.W.A. "Transport Processes in Passivity Breakdown . and Tasker. 1984. and Galvele. Gravano.III. 1998. "Perforated Covers for Propagating Pits". 1988.P. S. . Corrosion Science.H..II. "A Simple Mass Transport Analysis of Localized Corrosion". Full Hydrolysis of the Metal Ions". 1988.417 40. in Advances in Localized Corrosion. 517-34..R. S...S. 42.M. 28(6): p. 41. and Newman.

Electrochem. H. 129(7): p.M. 401. A. Turnbull. and Pickering. "A Model of Crack Electrochemistry for Steels in the Active State Based on Mass Transport by Diffusion and Ion Migration". 1412-1422. 122(8): p. 1982. "Modeling of Crack and Crevice Chemistry in Light Water Reactor Environments".W. J. and Thomas. New York: McGraw-Hill Book Company. 812. New York: Springer-Verlag. and Canale. Sharland. Vol... Allaire. Brown Publishers. 50. 289-323.E. Numerical Methods for Engineers.A.G. P. 27(3): p. 1985. M.. Boston MA.. Iowa: Wm. 48. "On the Nature of Electrochemical Reactions at a Crack Tip during Hydrogen Charging of a Metal".J. 1018-1026.P. C. 1991. Ateya. . Corrosion Science.. 52.C. 1.. 47.G. J. Basics of the Finite Element Method. "A Review of the Theoretical Modeling of Crevice and Pitting Corrosion". 1987.418 46. Psaila-Dombrowski. S. Chapra.. Computational Techniques for Fluid Dynamics. C. 1990 49. S. Massachusetts Institute of Technology. J. R.. Fletcher. 1988. 1975. 51. Dubuque.J..N. 691. B. Electrochem. Soc. Soc.

Munn.. in Advances in Localized Corrosion. American Society for Testing and Materials: Philadelphia. H. 33(12): p. Isaacs. A. Turnbull.. 56. M. 57.S. A.S. Munn. Texas. Turnbull. Editors. Turnbull. 1992. ASTM STP 1154...419 53. 1993. Turnbull. Corrosion Science. Review of Modelling of Environment-Assisted Cracking. 1992.. 215-228. p. "A Review of Electrochemistry of Relevance to Environment-Assisted Cracking in Light Water Reactors". National Association of Corrosion Engineers: Houston. Turnbull.. . "Chemistry Within Localized Corrosion Cavities". 54. 921-960. Crevices and Cracks". 1992. 359-373. "A Review of the Development of Computational Corrosion Analysis for Spatial Corrosion Modeling Through its Maturity in the Mid-1980's". A.. Turnbull. 1990. Corrosion Science. A. "Review of Modelling of Pit Propagation Kinetics". 59. R. 1992. 23(8): p. . 55. A. 58.S. "The Solution Composition and Electrode Potential in Pits. 34(6): p. and Psaila-Dombrowski. 1925-1966. "Modelling of Environment Assisted Cracking". A. 1983. Corrosion Science. 833-870. in Computer Modeling in Corrosion.. R. et al. Editor. p.

Watson.E. J. S. Alkire. R. Corrosion96..K. . J. "Dissolved Metal Species Mechanism for Initiation of Crevice Corrosion of Aluminum II. Evitts. 1991.. 1983.C. Evitts. Electrochem... 64. Postlewaithe.. Soc. and Lott. 1989. R. and Alkire. 3256-3262. and Alkire. M. 65.K. 136(11): p. and Wilmott. M. J.C.. and Postlethwaite.. J. 2594-2600. Electrochem. Electrochem.W.. Mathematical Model". "The Role of Inclusions on Initiation of Crevice Corrosion of Stainless Steel II. J..W. 1992.. Theoretical Studies". 61. "Transport and Reaction during Pitting Corrosion of Ni in 0. 1996: p. Evitts. "Modelling Crevice Corrosion". 62.. "Simulation of Changes in Stress Corrosion Cracking Environments in Anaerobic CO2 Rich near Neutral Bulk Solutions"..K.N.J. R. J.. 1007-1014..5 M NaCl". R. Harb. Soc. 251/1-251/13. 138(9): p. M. K. M. Watson. 130(5): p. 63. R. Hebert.W. "Numerical Simulation of Crevice Corrosion of Titanium:Effect of the Bold Surface". R. Soc. and Watson. 121/1121/10.. Corrosion96.420 60. 1996: p.

J.W. J. Experimental Investigations on Aluminum and Iron".. Electrochem.C. J.421 66. Gangloff. D. D. Siitari. "Mathematical Modeling of the Electrochemistry in Corrosion Fatigue Cracks in Steel Corroding in Marine Environments". and Damon. "Mathematical Modelling of the Electrochemistry in Corrosion Fatigue Cracks in Structural Steel Cathodically Protected in Sea Water". 458-464.. "Initiation of Crevice Corrosion I... Soc. Electrochem.. D. R. R. Mathematical Model for Aluminum in Sodium Chloride Solutions". A. 1982. 26(8): p.. 67. D. 1976. "Crack Electrochemistry Modeling and Fracture .. 1982.. A.. 1323-1350. and Siitari. 27(12): p. R. 71. Corrosion Science. and Ferriss.H. 70. and Turnbull. and Alkire. 488-496. Alkire.P.C. "The Role of Conductivity Variations Within Artificial Pits During Anodic Dissolution". Turnbull. 68. Corrosion Science. 69. 129(3): p. Electrochem.. D. 123(4): p. Soc. Alkire. 601-628. 1987. D. 481487. 129(3): p. "Initiation of Crevice Corrosion II. A. R. Ernsberger. Turnbull. 1986. and Ferriss. Soc.

"Theoretical Analysis of Influence of Crack Dimensions and Geometry on Mass Transport in Corrosion-Fatigue Cracks".B.. S.W. 15(1): p. W. Oldfield. 74. C. J.. "New Technique for Predicting the Performance of Stainless Steels in Sea Water and Other Chloride Containing Environments". Corros.O.. Canada: The Metallurgical Society. Corrosion Science. P. K..M. and Stokes. Materials Science and Technology.. G. and Sutton. A. J. 1149-1166. Jackson.422 Mechanics Measurement of the Hydrogen Embrittlement Threshold in Steel". 1985. 1985. Sharland. A. in Corrosion 96. J.J. "A Finite Element Model of the Propagation of Corrosion Crevices and Pits". Toronto. 29(9): p. 72. 1(9): p. Gartland. 73. and Diver. Masters. 1996: National Association of Corrosion Engineers. Inc.P. "Modeling Crevice Corrosion of Fe-Cr-Ni-Mo Alloys in Chloride . 700-710. 75.H. Oldfield.. 1989.. "Prediction of Initiation and Propagation of Crevice Corrosion on Aluminum Alloys in Sea Water by Mathematical Modelling".L. 76. 1980. Turnbull. Br..W. 31-34. in Modeling Environmental Effects on Crack Growth Processes.

32(6): p. 1994.. Bardal. et al. 1984. 80.A. W. E. R.. and Gartland.. Corrosion. Gaudet.S. Soc... J. O. 77. 40(12): p.. Munn.. 1986. 79. Lillard. .T. 915-928. Hatton.R. and Devereaux. "Mass Transfer and Electrochemical Kinetic Interactions in Localized Pitting Corrosion". in 12th International Corrosion Congress.. 30(8/9): p. 1991. Mo. Johnsen. G..423 Solution". "Prediction of Galvanic Corrosion Rates and Distribution by Means of Calculation and Experimental Models". "Mathematical Modeling of Mass Transport and Chemical Reaction in Crevice and Pitting Corrosion".O. T. 141(11): p. 612-618. 628-633. 47(8): p. 949-958. Governing Differential Equation and Electrode Boundary Conditions". "Modeling of the Factors Contributing to the Initiation and Propagation of the Crevice Corrosion of Alloy 625". AIChE Journal. 3006-3015. 1990. 78. 81. and Scully. P.S. J.. R. J. Electrochem.. Walton. Corrosion.C. Corrosion Science. R. 1993: NACE International. "Numerical Modeling and Solution of Galvanic Corrosion Systems: Part I.T.F.

J. R. Editors. 85.G.S.R.L. Shuck. B. H. 208-220. in Localized Corrosion. 87. B. 1991. 1989. and R. "A Quantitative Method of Describing Ionic Transfer Processes in Electrolytes Under Metal Corrosion". 1994. Finite-Element Formulation and Descriptive Examples". U.. Brown. Engelhardt.W.W.F. Bertocci. Staehle.. "Numerical Modeling and Solution of Galvanic Corrosion Systems: Part II. 365: p. O.Part I".-H. Electrochem. 136(7): p. p.. B. "Analysis of Crack-Like Regions .L. Editors. 84. Ateya. Kruger.R. "Analysis of Crack-Like Regions . G. Shuck. 190-207. NACE: Houston. 1887-1892. and Swedlow. NACE: Houston. 7-18. Journal of Electroanalytical Chemistry. p. 1974. J. TX. Munn. 86. Staehle. Kruger. 83.. and Swedlow.W. and Devereaux. and Pickering.. and R.F.F. Brown. R. J. Soc. 618-634. Corrosion. and Stehblow. 1974. 47(8): p. "The Dynamics of Interaction Bewteen the IR Potential Drop and Composition Changes During the Activation and Propagation of . "Modeling of Crack Chemistry in Cu-Au Alloys".Part I". in Localized Corrosion. R. J.424 82.. H. J. TX.

1996. S. "The Determination of pH. Y..S. 89.. Corrosion Science.. 91. C.B. 43(3): p. 92.. "Personal Communication". 27(5): p. C++ Primer. and Pickering. Alavi.A. . Potential and Chloride Concentration in Corroding Crevices on 304 Stainless Steel and 7475 Aluminum Alloy". H. 1991. Lippman. 658-668... and Cottis. 1996. 140(3): p.A. 1987.425 Crevice Corrosion". R. 614. Massachusetts: Addison-Wesley Publishing Company. in Crevice Corrosion: The Science and its Control in Engineering Practice. Electrochem. 93. 443-451. 185-188. Corrosion. J. 22-27. N. Beavers. De Force. 1987. "Effect of Pit Wall Reactivity on Pit Propagation in Carbon Steel". Xu.. H. 1995(September): p. 88. 90. "A Clearer View of How Crevice Corrosion Occurs". 1993. A.W. B. "The Initial Potential and Current Distributions of the Crevice Corrosion Process". Brossia. Reading.G. and Thompson. J. and Pickering. Soc. Journal of Materials.

Postlethwaite. and Watson. A..K. R. S. in Corrosion 92.426 94. "Modelling Crevice Corrosion". M... Second International Conference on Aluminum Alloys -Their Physical and Mechanical Properties. Beijing: International Academic Publishers. 40(4-5): p. J. "Prevention of Crevice Corrosion by Coupling to More Noble Materials?". 96. . 95. 843-845. "The Distribution of pH Within Corrosion Crevice Without External Surface". Corrosion Science. 1998. Turnbull. Evitts. 1990. 1992: National Association of Corrosion Engineers. in Aluminum Alloys '90.W. Guo.

The font used on the following pages produces 80 characters per line.c taspecie. Example files have been included.427 Appendix A: CREVICER Code Printout CREVICER consists of the following header and c files.c chemtest. in context it is clear where this has occurred.h tmateria.h fem. Each file is reproduced in the following appendices for archival purposes.c tallspec.c solver.h taspecie. constant.h treactio. Electronic versions of the code may be obtained from the author. . nosq8 elsq8 By convention in CREVICER “no” prefixed files denote node files while “el” prefixes are used to label element files.h solver. Several comment lines in CREVICER exceed this length.h tchem.c fem.c treactio.c tmateria.c The CREVICER code also requires two different input files.h tchem. one to define the elements and one to define the nodes.h tallspec.

causes problems in kappa of tallspec #define F 96487.h /********************************************************* This header file contains universal constants for CREVICER It also defines conventions.3143 // [J]/[mol-K] //** Note: defining F as 96847 is an integer => F*F exceeds the upper limit //for integers.units used length time temperature moles potential current mass charge # _m_ _s_ _K_ _moles_ _V_ _A_ _g_ _eq_ used _mol/m^3_ _A/m^2_ _mol/m^2_ _V/m_ _g/m^3_ Not intuitive units concentration Current density Chemical flux Electric field density NOT MOLAR All electrochemical potentials are give as volts vs NHE *********************************************************/ #ifndef __CONSTANT_H #define __CONSTANT_H #ifndef __STRING_H #include <string.0 // error codes #define FALSE 0 #define ERROR 0 #define TRUE 1 #define OK 1 #define ITEMNOTINLIST 2 #define BOOL int #define MAXNUMSPECIES 15 .0 // [C]/[eq] #define F2 9309741169.h> #endif #define R 8.428 Appendix B: constant. Conventions .

66 1 Mg++ 53 2 Mn++ 53.685E-09 6. } } /* Values from CRC D-167 (Brossia's) Equivalent Ionic Conductivities UNITS FOR THE VALUES IN THIS TABLE u = [cm^2-mol]/[J-s] D = cm^2/s *Per m^2 values are 10^-4 that species lambda z u Al+++ 61 3 H+ 349.653E-06 2 2.333E-05 2.229E-09 1.411E-06 3.249E-09 2.384E-05 ClO364.722E-09 9.435E-09 6.956E-05 6. str2) == 0) {return(1).756E-08 9.65 1 K+ 73.900E-09 7.305E-05 2 3.119E-06 1 7.5 -1 4.879E-09 7.079E-05 CH3CO2.429 int StringsEqual(char * str1.8 -1 8.9 -1 4.570E-05 5.222E-06 Cl.791E-05 CrO4-.044E-05 .939E-09 1.331E-05 HSO450 -1 5.379E-09 1.780E-09 1.47 Cr+++ 67 3 Cu++ 53.76.565E-09 1.65 -1 6.331E-05 I.31 -1 8.3 -1 7.184E-09 5. } else {return(0).85 -2 4.153E-09 1.76.399E-09 5.6 Fe++ 54 2 Fe+++ 68 3 H+ 349.08 1 Ni++ 50 2 Zn++ 52.836E-09 7.371E-09 1.914E-06 2.65 1 Ca++ 59.944E-06 2 2.184E-05 HS.5 N2H5+ 59 1 Na+ 50.982E-09 1.873E-09 7.893E-09 1.131E-05 HCO254.393E-09 1.78.586E-09 1.194E-09 7.40.053E-06 2 2.6 -1 5.48 1 Li+ 38.719E-05 ClO467.8 D@ 298K 2.3 -2 3.1 -1 8.453E-05 HCO344.865E-09 1. char * str2) {if (strcmp(str1.5 NH4+ 73.337E-09 1.846E-09 7.132E-06 2.032E-06 3.197E-09 2.730E-05 HSO350 -1 5.6 -1 6.756E-08 9.186E-06 2.305E-05 7.029E-05 2.389E-09 2.956E-05 4.895E-09 1.026E-06 Anions Br.371E-09 1.031E-05 ClO252 -1 5.088E-05 CO3-69.

672E-09 1.063E-05 80 -2 4.849E-06 93 -2 4.144E-05 .293E-05 -1 2.270E-05 79.238E-05 86 -2 4.619E-09 1.127E-08 5.901E-05 48.585E-09 1.5 -1 8.198 SO3-SO4-S2O3-S2O4-S2O6-S2O8-*/ #endif 61.9 -2 4.5 -2 3.631E-05 74.983E-05 71.220E-09 1.712E-09 1.565E-09 1.297E-09 1.6 -1 5.911E-05 71.995E-09 1.3 -1 6.8 -1 7.572E-09 8.430 MnO4MoO4NO2NO3NH2SO3OH.42 -1 7.065E-05 85 -2 4.002E-09 1.291E-09 1.131E-05 66.

Ferrous .h /********************************************************************* TCHEM.h> #endif #ifndef __CONSTANT_H #include "constant. See pages 691-700 of BorlandC++ on how many subclasses can be used simultaneously in place of TASpecies TAllSpecies TASpecies Super Class to hold all species A generic class for aqueous species TChemistry holds the species name/concentration information for a solution volume **********************************************************************/ #ifndef __TCHEM_H #define __TCHEM_H #ifndef __STDIO_H #include <stdio.H" #endif // only needed for debugging #ifndef __STRING_H #include <string. Stewart 2/25/94 This module includes all classes that deal with aqueous species.H Kevin C. TAllSpecies | TASpecies .[subclasses] AqAluminum .431 Appendix C: tchem. class TChemistry /* class TChemistry .etc.h> #endif #define MAXSPECIESLENGTH 20 typedef char * TSpeciesName.

TSpeciesName names[MAXNUMSPECIES]. CopyChemistry(TChemistry * source). int fixed[MAXNUMSPECIES]. double GetConcentration(TSpeciesName name). int isfixed). double concentration). int GetFixed(TSpeciesName name). private: int count. TChemistry(). SetFixed(TSpeciesName name. int isfixed = 0). SetConcentration(TSpeciesName name. }. #endif . double concentrations[MAXNUMSPECIES]. double concentration. int size. TChemistry(TChemistry * old).432 last modified 2/25/94 */ { public: AddSpecies(TSpeciesName name.

This entry was last edited on 3/6/97.c /********************************************************************** TCHEM. Another one is associated with each solution volume.count++) {concentrations[count] = old->concentrations[count]. concentrations.H" TChemistry::TChemistry() /*********************************************************************** TChemistry(): Constructor for class ***********************************************************************/ {size = 0. 1 m^3 = 1000 liter The type "electrical" is in V vs NHE. It also contains function to set and read both the value of a parameter and its status.One data structure of this type is associated with each node. double concentration. // initially no species present } TChemistry::TChemistry(TChemistry * old) /*********************************************************************** TChemistry(): Constructor for class copies another TChemistry ^^^^^^ ***********************************************************************/ {int count.): . for(count=0.433 Appendix D: tchem.. fixed[count] = old->fixed[count]. ***********************************************************************/ #include "tchem. All chemical concentrations are in moles/m^3. } } TChemistry::AddSpecies(TSpeciesName name. size = old->size. int isfixed = 0) /*********************************************************************** AddSpecies(.count<size.CPP 4/8/94 TChemistry is a list of species names. names[count] = old->names[count].. and booleans that record if the parameter is changeable.

return(OK). if (count < size) { return(concentrations[count]).count++). } } double TChemistry::GetConcentration(TSpeciesName name) /*********************************************************************** 4/16/94 GetConcentration: Returns: Concentration of a species in solution in mol/m^3 ***********************************************************************/ {// find right name for(count=0. Places a new entry in each of the names. and fixed arrays. } else // name not in this TChemistry => species not present {return(0). } } . size++. concentrations.!(StringsEqual(names[count].name)&&(count<size)). fixed[size] = isfixed.count++). } else // name not in this TChemistry {return(ITEMNOTINLIST). } TChemistry::SetConcentration(TSpeciesName name.name)&&(count<size)). double concentration) /*********************************************************************** Returns OK if item present Returns ITEMNOTINLIST if failed (This function does not add parameters that aren't present because no info about the parameters adjustable status is included.) ***********************************************************************/ {// find right name for(count=0. concentrations[size] = concentration. if (count < size) {concentrations[count] = concentration. ***********************************************************************/ { names[size]=name. Also increments the size parameter.434 Adds a new parameter to the set.!(StringsEqual(names[count].

if (count < size) {fixed[count] = isfixed. ***********************************************************************/ {// find right name for(count=0.!(StringsEqual(names[count].count++).!(StringsEqual(names[count]. } } int TChemistry::GetFixed(TSpeciesName name) /*********************************************************************** 4/16/94 GetFixed: Returns: If the parameter is adjustable.name)&&(count<size)). int isfixed) /*********************************************************************** Returns OK if item present Returns ITEMNOTINLIST if failed ***********************************************************************/ {// find right name for(count=0.435 TChemistry::SetFixed(TSpeciesName name. for(count=0.count++). return(OK). } } TChemistry::CopyChemistry(TChemistry * source) /*********************************************************************** TChemistry(): Copies another TChemistry NOTE: Don't really have to copy the names and fixed info since this is to be used for copying chem into oldchem ***********************************************************************/ {int count. size = source->size. } else // name not in this TChemistry => species not present {return(0).name)&&(count<size)).count++) .count<size. if (count < size) { return(fixed[count]). } else // name not in this TChemistry {return(ITEMNOTINLIST).

names[count] = source->names[count]. fixed[count] = source->fixed[count]. } } .436 {concentrations[count] = source->concentrations[count].

double P. // mobility virtual double D(double T.C **********************************************************************/ { public: int z. private: }. TChemistry * chem). // the charge number of species double dbu.double speciesu0. TChemistry * chem). // returns the diffusivity of species. double speciesu.h // TASPECIE. TChemistry * chem).437 Appendix E: taspecie.H" #endif #ifndef __STRING_H #include <string. double P. // Constructor TSpeciesName name.H" #endif class TASpecies /*********************************************************************** class TASpecies Last Modified 3/12/97 See Comments in taspecie. Einstein Eq? virtual double a(double T.H #ifndef __TASPECIE_H #define __TASPECIE_H #ifndef __TCHEM_H #include "tchem. // the standard chemical potential of the species virtual double u(double T. // returns the single ion activity coefficient TASpecies(). class TAlppp: public TASpecies .h> #endif #ifndef __CONSTANT_H #include "constant. TSpeciesName speciesname). double P. // the mobility of species double u0. TASpecies(int speciesz.

// constructor for Cr+3 private: . class TCrppp: public TASpecies {public: TCrppp(). private: }. class TFepp: public TASpecies {public: TFepp(). // constructor for K+ private: }. // constructor for Ni+2 private: }. class TOHm: public TASpecies {public: TOHm().438 {public: TAlppp(). class TClm: public TASpecies {public: TClm(). class TKp: public TASpecies {public: TKp(). // constructor for Na+ private: }. // constructor for Clprivate: }. // constructor for Al+3 class THp: public TASpecies {public: THp(). // constructor for Ni+2 private: }. class TNap: public TASpecies {public: TNap(). // constructor for OHprivate: }. class TNipp: public TASpecies {public: TNipp(). // constructor for H+ private: }.

class TAgp: public TASpecies {public: TAgp(). class TCrOHOHOHOHm: public TASpecies {public: TCrOHOHOHOHm().439 }. class TCrOHOHOH: public TASpecies {public: TCrOHOHOH(). class TNO3m: public TASpecies {public: TNO3m(). // constructor for Cr(OH)2+ private: }. class TSO4mm: public TASpecies {public: . // constructor for Cr(OH)2+ private: }. // constructor for CrOH+2 private: }. class TCrOHOHp: public TASpecies {public: TCrOHOHp(). class TCrO4mm: public TASpecies {public: TCrO4mm(). // constructor for Li+ private: }. // constructor for Ag+ private: }. // constructor for NO3private: }. // constructor for Cr(OH)2+ private: }. class TLip: public TASpecies {public: TLip(). class TCrOHpp: public TASpecies {public: TCrOHpp(). // constructor for CrO4-2 private: }.

440 TSO4mm(). class TPressure: public TASpecies {public: TPressure(). // constructor for SO4-- class TElectrical: public TASpecies {public: TElectrical(). // constructor for electrical private: }. private: }. class TTemperature: public TASpecies {public: TTemperature(). // constructor for electrical private: }. // constructor for electrical private: }. #endif .

All Species have the following attributes z u = charge number of species (invariant) = ionic mobility (does this vary w/ T?) (redo as function?) u0 = standard chemical potential (invariant) D = diffusivity (varies with T) a = single species ionic activity UNITS equivalents [mol-m^2]/[J-s] J/mol m^2/s ---- Sources for data on species: "Hydrolysis of Cations" Baes and Mesmer QD501.441 Appendix F: taspecie. } TASpecies::TASpecies(int speciesz. double speciesu0.c /******************************************************* TASPECIE. double speciesu.B162 (not available as of 3/5/94) CRC Handbook Vol 66 esp sections D50 D151 D167 F44 -D100 -D158 -D170 -F45 Code was last edited on on 3/7/97. *********************************************************/ #ifndef __TASPECIE_H #include "taspecie.H" #endif TASpecies::TASpecies() /*********************************************************************** TASpecies(): Constructor for class This function is more for form's sake than anything else. TSpeciesName speciesname) . The full constructor needs to be called to do anything useful (and avoid crashes) ***********************************************************************/ {z = 0. dbu = 0.cpp This the parent class for (all?) aqueous species.C Tested by test.

It is a virtual function and can be redefined. It is a virtual function and can be redefined. Electrochemical Systems p 229) ***********************************************************************/ {double diffusivity. //Nernst-Einstein Eq return(diffusivity). INPUTS: The thermodynamic state Temperature (T) Pressure (P) Composition (chem) RETURNS: diffusivity in m^2 / s NOTE: The Nernst-Einstein Relation is "strictly applicable at infinite dilution. Newman. double P. // [J/mol] name = speciesname." (J. TChemistry * chem) /*********************************************************************** D: This function returns the Diffusivity of the species. ***********************************************************************/ {z = speciesz. TChemistry * chem) /*********************************************************************** u: This function calculates mobility based on the thermodynamic state. } double TASpecies::D(double T. . // [equivalents] dbu = speciesu. INPUTS: The thermodynamic state Temperature (T) Pressure (P) Composition (chem) RETURNS: mobility in mol m^2 / J-s ***********************************************************************/ {return(dbu). } double TASpecies::u(double T. The default method of calculating the diffusivity is to use the NernstEinstein Equation. diffusivity= R*T*dbu.442 /*********************************************************************** TASpecies(): Constructor for class This function is the proper constructor to call to create a species. NOTE: Most species have their own type that derives from this one. // [mol-m^2]/[J-s] u0 = speciesu0. double P.

***********************************************************************/ {z = -1. u0 = 0. ***********************************************************************/ {z = 3.443 } double TASpecies::a(double T.184e-13. return(conc). name="H+". conc = chem->GetConcentration(name).127e-12. The default method is to use the dilute solution approximation and return the concentration of the species as the activity. } . It is a virtual function and can be redefined. ***********************************************************************/ {z = 1. // CRC name="Al+++". double P. dbu = 2. } TAlppp::TAlppp() /*********************************************************************** TAlppp(): This is the constructor for the Aluminum +3 ion. } TOHm::TOHm() /*********************************************************************** TOHm(): This is the constructor for the Hydroxyl -1 ion. // CRC compare w/%%11%% Siitari u0 = -485343.756e-12. name="OH-". dbu = 3. TChemistry * chem) /*********************************************************************** a: This function returns the activity of the species. INPUTS: The thermodynamic state Temperature (T) Pressure (P) Composition (chem) RETURNS: activity in unitless ***********************************************************************/ {double conc. u0 = 0. } THp::THp() /*********************************************************************** THp(): This is the constructor for the Hydrogen +1 ion. dbu = 2.

dbu = 2. name="Fe++".685e-13.197e-13.444 TKp::TKp() /*********************************************************************** TKp(): This is the constructor for the Potassium +1 ion. } TFepp::TFepp() /*********************************************************************** TFepp(): This is the constructor for the Nickel +2 ion.893e-13. dbu = 7. ***********************************************************************/ {z = 1. u0 = 0. } TNap::TNap() /*********************************************************************** TNap(): This is the constructor for the Sodium +1 ion. ***********************************************************************/ {z = 2. name="K+". name="Ni++". u0 = 0. ***********************************************************************/ {z = 1. name="Na+". name="Cl-". } TCrO4mm::TCrO4mm() . dbu = 8.379e-13. u0 = 0. ***********************************************************************/ {z = 2. u0 = 0. } TClm::TClm() /*********************************************************************** TClm(): This is the constructor for the Chloride -1 ion. ***********************************************************************/ {z = -1. } TNipp::TNipp() /*********************************************************************** TNipp(): This is the constructor for the Nickel +2 ion.900e-13. u0 = 0. dbu = 5. dbu = 2.

dbu = 4. name="Cr+++". dbu = 2. ***********************************************************************/ {z = 3. u0 = 0. } TCrppp::TCrppp() /*********************************************************************** TCrppp(): This is the constructor for the Chromium +3 ion. } TCrOHOHp::TCrOHOHp() /*********************************************************************** . u0 = 0. u0 = 0.672e-13.78e-13. } TAgp::TAgp() /*********************************************************************** TAgp(): This is the constructor for the Silver +1 ion. } TNO3m::TNO3m() /*********************************************************************** TNO3m(): This is the constructor for the Nitrate -1 ion.78e-13. dbu = 4. name="NO3-". ***********************************************************************/ {z = 1. } TCrOHpp::TCrOHpp() /*********************************************************************** TCrOHpp(): This is the constructor for the Cr(OH) +2 ion. dbu = 7. name="CrOH++".445 /*********************************************************************** TCrO4mm(): This is the constructor for the Chromate -2 ion. ***********************************************************************/ { z = 2. ***********************************************************************/ {z = -2. ***********************************************************************/ {z = -1.399e-13. name="CrO4--".565e-13. u0 = 0. u0 = 0. name="Ag+". dbu = 4.

***********************************************************************/ {z = -1.446 TCrOHOHp(): This is the constructor for the Cr(OH)2 +1 ion. name="SO4--". } TCrOHOHOHOHm::TCrOHOHOHOHm() /*********************************************************************** TCrOHOHOHOHm(): This is the constructor for the Cr(OH)4 -1 ion. dbu = 4. dbu = 4. ***********************************************************************/ {z = -2. dbu = 4.153e-13. name="Li+".78e-13. } TSO4mm::TSO4mm() /*********************************************************************** TSO4mm(): This is the constructor for the SO4 -2 ion. name="CrOHOHOHOH-". Changue u to zero to make immobile. u0 = 0. name="CrOHOH+".297e-13. ***********************************************************************/ {z = 1. ***********************************************************************/ {z = 0. } TLip::TLip() /*********************************************************************** TLip(): This is the constructor for the Li +1 ion. . u0 = 0. name="CrOHOHOH". } TElectrical::TElectrical() /*********************************************************************** TElectrical(): This is the constructor for the Electrical value addin.78e-13. } TCrOHOHOH::TCrOHOHOH() /*********************************************************************** TCrOHOHOH(): This is the constructor for the Cr(OH)3 solid in saturated solution. dbu = 4. u0 = 0.78e-13. u0 = 0. dbu = 4. u0 = 0. ***********************************************************************/ {z = 1.

dbu = 0. } TPressure::TPressure() /*********************************************************************** TElectrical(): This is the constructor for the Pressure value addin. u0 = 0. } TTemperature::TTemperature() /*********************************************************************** TElectrical(): This is the constructor for the Temperature value addin. name = "pressure". u0 = 0. name = "temperature". dbu = 0. ***********************************************************************/ {z = 0. u0 = 0. ***********************************************************************/ {z = 0. name = "electrical". } .447 ***********************************************************************/ {z = 0. dbu = 0.

double T.H" #endif #ifndef __MATH_H #include <math.448 Appendix G: tallspec. //returns std. double P. double T. . double pH(TChemistry * chem). EnforceEquilibria(TChemistry * chem). double P. double IonicStrength(TChemistry * chem). //returns * chem). double ChargeDensity(TChemistry * chem).h> #endif #ifndef __STRING_H #include <string. double P. // NOT VALIDATED CrEquilibria(TChemistry * chem). double u0(TSpeciesName name).h // TALLSPEC. // * chem). TChemistry double a(TSpeciesName name. //returns charge equivalence double u(TSpeciesName name. TChemistry * chem). double T.H #ifndef __TALLSPEC_H #define __TALLSPEC_H #ifndef __TASPECIE_H #include "taspecie.h> #endif #define MAXNUMBEROFSPECIES 100 class TAllSpecies /************************************************************************ class TAllSpecies last modified 3/13/97 To Do: Work on EnforceEquilibria ************************************************************************/ { public: TASpecies * allspecies[MAXNUMBEROFSPECIES]. // Properties to look up for individual species int z(TSpeciesName name). TChemistry # * chem). chemical potnential // Properties of collections of species double kappa(double T. TChemistry ionic mobility double D(TSpeciesName name. double P.

void AddSpecies(int speciesz. int size. TSpeciesName speciesname). #endif .449 // Properties to create and maintain data structure void AddSpecies(TASpecies * newspecies). double speciesu0. double speciesu. TAllSpecies(). void DeleteSpecies(TSpeciesName name). }. private: TASpecies * FindTASpecies(TSpeciesName name).

***********************************************************************/ {if(!((StringsEqual(name. double T.c /*********************************************************************** TALLSPEC."electrical")) ||(StringsEqual(name.H" #endif TAllSpecies::TAllSpecies() /*********************************************************************** TASpecies(): Constructor for class ***********************************************************************/ {size = 0. ***********************************************************************/ #ifndef __TALLSPEC_H #include "tallspec."electrical")) . double P.z. } int TAllSpecies::z(TSpeciesName name) /*********************************************************************** z(): This function finds the z for species name.u0 just like TASpecies. RETURNS: the ionic mobility of species name[mol-m^2/J-s] DANGER: Do not call a species that does not exist in this data structure. } else {return(0). => Will blow if misused. } } double TAllSpecies::u(TSpeciesName name.CPP 3/6/94 This object is just a container to hold all of the TASpecies that are in use."temperature")) ||(StringsEqual(name.D."pressure"))) ) {return(FindTASpecies(name)->z).450 Appendix H: tallspec. It can be queried for a. ************************************************************************/ {if(!((StringsEqual(name. TChemistry * chem) /************************************************************************ u(): This function returns the mobility for species name.u. Currently it does not check for the presence of a specie in the set. RETURNS: the charge equivalents of species name DANGER: Do not call a species that does not exist in this data structure.

chem)).chem)). } else {return(0). ************************************************************************/ {if(!((StringsEqual(name. .P. } } double TAllSpecies::a(TSpeciesName name. TChemistry * chem) /************************************************************************ a(): This function returns the single ion activity of species name RETURNS: the single ion activity [no units] DANGER: Do not call a species that does not exist in this data structure.451 ||(StringsEqual(name. } } double TAllSpecies::u0(TSpeciesName name) /************************************************************************ u0(): This function returns the standard Gibb's Free energy of formation of species name."pressure"))) ) {return(FindTASpecies(name)->D(T."temperature")) ||(StringsEqual(name."pressure"))) ) {return(FindTASpecies(name)->u(T."electrical")) ||(StringsEqual(name. double P. TChemistry * chem) /************************************************************************ D(): This function returns the diffusivity for species name RETURNS: the ionic Diffusivity of species name [m^2/s] DANGER: Do not call a species that does not exist in this data structure. double P. } else {return(0). double T."temperature")) ||(StringsEqual(name.P."pressure"))) ) {return(FindTASpecies(name)->a(T. } else {return(0)."temperature")) ||(StringsEqual(name.chem))."electrical")) ||(StringsEqual(name.P. double T. } } double TAllSpecies::D(TSpeciesName name. ************************************************************************/ {if(!((StringsEqual(name.

} } return(kappa). kappa = kappa + z1*z1*F2*u(chem->names[count]."pressure"))) ) {return(FindTASpecies(name)->u0)."electrical")) ||(StringsEqual(chem->names[count]. (It is better because by adding one of .P. } } double TAllSpecies::kappa(double T.count<chem->size.chem)*chem->concentrations[count]. double kappa = 0. RETURNS: the conductivity of the solution in (Ohm-m)^-1 From Scully A. ************************************************************************/ {if(!((StringsEqual(name. } else {return(0).T."pressure"))) ) {z1 = z(chem->names[count]). int z1. } void TAllSpecies::AddSpecies(TASpecies * newspecies) /************************************************************************ AddSpecies(): This function is the better of the two for adding species to this container class."temperature")) ||(StringsEqual(chem->names[count]."electrical")) ||(StringsEqual(name. for(count=0. TChemistry * chem) /************************************************************************ kappa(): This function returns the ionic conductivity of a solution with composition chem.452 RETURNS: the standard Gibbs Free Energy of formation [mol-m^2/J-s] DANGER: Do not call a species that does not exist in this data structure."temperature")) ||(StringsEqual(name.count++) {if (!((StringsEqual(chem->names[count]. double P. Echem Notes Vol 1 pg 2 lambda = zi F^2 ui kappa = Sum ( zi^2 F^2 ui Ci) ************************************************************************/ {int count.

speciesname).allspecies[count]->name)&&(count<size)). size++. Immediately.!(StringsEqual(speciesname. double speciesu. // get rid of pointer delete allspecies[count]. count++. (It is worse because by not adding one of the child classes of TASpecies you have to remember the properties each time you create of these types.) // move the rest of the TASp[count]->name[ecies' up {allspecies[count]=allspecies[count+1]. } void TAllSpecies::DeleteSpecies(TSpeciesName speciesname) /************************************************************************ DeleteSpecies(): This function deletes a species from the type. double speciesu0. TSpeciesName speciesname) /************************************************************************ AddSpecies(): This function is the worse of the two for adding species to this container class. size--.453 the child classes of TASpecies you don't have to remember the properties each time you create of these types. . but why you add a species you didn't want to begin with? ************************************************************************/ {int count. //there is one fewer TASpecies for(.speciesu. } } TASpecies *TAllSpecies::FindTASpecies(TSpeciesName name) /************************************************************************ FindTASpecies: This function sorts through the collection of TASpecies objects and returns the one whose name matches "name".speciesu0.) ************************************************************************/ {allspecies[size] = new TASpecies(speciesz.co unt++). I can't see any reason why you would want to do that.count!=size.) ************************************************************************/ {allspecies[size] = newspecies. size++. // Find the right name for(count=0. } void TAllSpecies::AddSpecies(int speciesz. It would speed things up a little.

"electrical")) ||(StringsEqual(chem->names[count]. } double TAllSpecies::IonicStrength(TChemistry * chem) /************************************************************************ IonicStrength(): This function returns the ionic strength of the solution. ie. testing equality of target and destination names for(count=0. ************************************************************************/ {int count."temperature")) ||(StringsEqual(chem->names[count].z1. TSpeciesName name. for(count=0. RETURNS: Charge Density in C/m^3 DANGER: All the species in the chem have to be present in this data structure. This will give incorrect results to all the steps following. conc = chem->GetConcentration(name). double conc. cd = cd + z1*conc*F. // Loop thru list. } double TAllSpecies::ChargeDensity(TChemistry * chem) /************************************************************************ ChargeDensity(): This function retuns the charge density of a given solution composition.!(StringsEqual(name."pressure"))) ) {z1 = z(name).count++). .count++) {name = chem->names[count].454 DANGER: Will return a pointer to an undefined TASpecies if the name is not present in the list. ************************************************************************/ {int count.//chem->names[count]).count<chem->size. int size. } } return(cd). double cd = 0. chem. return(allspecies[count]). if(!((StringsEqual(chem->names[count].allspecies[count]->name)&&(count<size)). it will point to whatever garbage is present in memory at the address just after the end of the array. chem.

and was verified for 1M NaCl."temperature")) ||(StringsEqual(chem->names[count]. } } I = I/2000. } TAllSpecies::EnforceEquilibria(TChemistry * chem) /************************************************************************ EnforceEquilibria: This function equilibrates the various species of Chromium. TSpeciesName name. dbpH = -log10(chem->GetConcentration("H+")/1000). and Cr(OH)2+.count++) {name = chem->names[count]. I = I + z1*z1*conc.455 From Baes&Mesmer p. double I = 0. RETURNS: The negative of the logithm of [H+]. size = chem->size. // have to correct concentrations to molar return(I). CrOH+2.count<size.z1. double conc. Checked 3/13/97 ************************************************************************/ {double dbpH."electrical")) ||(StringsEqual(chem->names[count]. int size. // have to convert to molar return(dbpH). Could be modified to account for [Cl-] etc. Cr+3. conc = chem->GetConcentration(name). . xx I = Sum(zi^2 [Ci]) / 2 3/13/97 This isn't crashing."pressure"))) ) {z1 = z(name). chem. } double TAllSpecies::pH(TChemistry * chem) /************************************************************************ pH(): This function calculates the pH of the solution. if(!((StringsEqual(chem->names[count]. // loop thru species for(count=0. pH=1 ************************************************************************/ {int count.

double Q11. exp = -4. CrOHp2 = chem->GetConcentration("CrOH++"). dCrp3.l1. sign2 = 0. dCrOHp2 = 0. dCrOHOHp. dHp = dHp + l1.0. } else {dCrp3 = dCrp3 . double dHp. I.l1.l1. dCrp3 = 0.LEFT AS EXAMPLE OF EARLY EFFORTS ************************************************************************/ {double Hp. l1 = Crp3 /1000. sign1 = 0.exp).5). dCrOHp2 = dCrOHp2 + l1.01.l2.exp). } else {l1 = l1 * . CrOHOHp = chem->GetConcentration("CrOHOH+").conc. I = IonicStrength(chem). exp = -9. Crp3 = chem->GetConcentration("Cr+++"). if(sign1 > 0) {//l1 = l1 * 1. double l1. Q11 = pow(10.0 . sign2. CrOHOHp.r12. Q12 = pow(10. dHp = dHp . done = 0.044 * sqrtI) / (1+sqrtI). sqrtI = pow(I. r11. done. dCrOHp2. Crp3. while(!done) {r11 = (CrOHp2 + dCrOHp2)*(Hp + dHp)/(Crp3 + dCrp3). Hp = chem->GetConcentration("H+"). if(sign1 < 0) {//l1 = l1 * 1. CrOHp2.49.(2. exp. sqrtI.456 ASSUMES that I does NOT change during calculatations Not verified as of 3/13/97 THIS FUNCTION HAS BEEN SUPERSEDED BY CrEqulibria . } .7. dCrOHp2 = dCrOHp2 . if(r11 > Q11) {dCrp3 = dCrp3 + l1. dHp=0. Q12. l2 = l1.95. int sign1. dCrOHOHp = 0. I = 1. } sign1 = 1.

conc).95. dCrOHOHp = dCrOHOHp .conc).2 * l2. conc = CrOHp2 + dCrOHp2.49. } else {//l2 = l2 * .1.l2. } } conc = Hp + dHp. dHp = dHp . chem->SetConcentration("Cr+++". dHp = dHp + 2 * l2. if(sign2 > 0) {//l2 = l2 * 1. } sign2 = . } if(((1e6*l1) < (Crp3 + dCrp3)) &&((1e6*l2) < (Crp3 + dCrp3))) {done = 1.95. } r12 = (CrOHOHp + dCrOHOHp)*(Hp + dHp)*(Hp + dHp)/(Crp3 + dCrp3).conc). } TAllSpecies::CrEquilibria(TChemistry * chem) /************************************************************************ .1.457 else {l1 = l1 * . conc = CrOHOHp + dCrOHOHp. dCrOHOHp = dCrOHOHp + l2. chem->SetConcentration("CrOH++". chem->SetConcentration("H+". } sign1 = . if(r12 > Q12) {dCrp3 = dCrp3 + l2. } else {l2 = l2 * . chem->SetConcentration("CrOHOH+".49. } else {dCrp3 = dCrp3 .l2. conc = Crp3 + dCrp3. } sign2 = 1.conc).49. if(sign2 < 0) {l2 = l2 * 1.

logCr1. chem->GetConcentration("CrOHOHOHOH-"). lambdaH. logCr0.90393 2. CrOHOHOHOHm must be in chem! Validated 8/21/97 Conc Cr+3 [mol/m^3] Conc H [mol/m^3] pH =================== ================ == 1000 12. Cr0 Cr1 Cr2 Cr3 Cr4 = = = = = chem->GetConcentration("Cr+++").Cr4.c.90268711e-2 100 3. Cr0. // values for determinign the concentation of H and OH double TotCr. exp. double logH. lambda. int done = 0.Cr2. double lambdaCr. b = -H .CrOHpp. Crppp = "Cr+++". Q13.b. logCr4.9268391 crc->CrEquilibria(nodes[count]->chem).CrOHOHOH. double fit. // Grab the concentrations of the relevant species if ((!chem->GetFixed(Crppp)) && (chem->GetConcentration("Cr+++") > 0)) {H = chem->GetConcentration("H+"). OH = chem->GetConcentration("OH-"). } ************************************************************************/ {double Q11. // Equilibrate H and OH // want to find x such that (H-x) * (OH-x) = 1e-8 (mol/m^3) a = 1. Crppp. DerCr. DerH. logCr3. logCr2.1e-8. Q12.OH. logOH. c = H * OH . // Calculate how much OH would be generated if all Cr-species dehydrolyzed OH = OH + Cr1 + 2*Cr2 + 3*Cr3 + 4*Cr4.458 Requirements: Hp. double a.OH.408398 10 1.CrOHOHp.5116 1.18348 2. chem->GetConcentration("CrOHOHOH").x.OHm. chem->GetConcentration("CrOHOH+"). double H.Cr3.Cr1. chem->GetConcentration("CrOH++"). TSpeciesName Crppp. . Q14. TestH.

Q14 = pow(10. // Settle the [H] and [OH] conc's for with the formation of H2O . //initialize the first guess for H lambdaCr = 2.3.459 x = (-b .7 -18.-3. // Find out how much TOTAL Cr is produced by these conditions DerCr = Cr0 + Cr1 + Cr2 + Cr3 + Cr4.4 (+3 for /m^3) (+6 for /m^3 (+9 for /m^3 (+12 for /m^3 Cr0 = TotCr. Cr2 = Q12 * Cr0 / (TestH*TestH).4*a*c))/2*a. quotients //Baes + Mesmer //Baes + Mesmer //Baes + Mesmer //Baes + Mesmer -3. // Set the Formation Q11 = pow(10.-15.exp). H = H . lambdaH = 2. Q12 = pow(10. while (!done) {TestH = pow(10. Q13 = pow(10.8 -9. exp = -4.4). // Recalculate the Conc's of all hydrolysis products // Could just multiply by TotCr/DerCr .-9. lambda = 4.0).x.sqrt(b*b .7). // Correct Cr0 to get the exact amount of Cr+3 required to match TotCr Cr0 = Cr0 * TotCr/DerCr. (TestH*TestH*TestH*TestH). //initialize the first guess for Cr=-log( TestH = H. (TestH*TestH). (TestH*TestH*TestH).0 -27. Cr1 Cr2 Cr3 Cr4 = = = = Q11 Q12 Q13 Q14 * * * * Cr0 Cr0 Cr0 Cr0 / / / / (TestH). //Set the total Cr that has to be apportioned among the products TotCr = Cr0 + Cr1 + Cr2 + Cr3 + Cr4.this is clearer to read Cr1 = Q11 * Cr0 / (TestH).3.-0.x. OH = OH . Cr3 = Q13 * Cr0 / (TestH*TestH*TestH). // This finds the total [H] b4 it redistributes with OH DerH = H + Cr1 + 2*Cr2 + 3*Cr3 + 4*Cr4. Cr4 = Q14 * Cr0 / (TestH*TestH*TestH*TestH).8).

fit. DerH = DerH . TestH.1e-8. DerH.sqrt(b*b . } else {exp = exp + lambda.OH. next TestH should be lower // If the relaticve postion cross over need to reverse the sign and shrink lambda if(DerH > TestH) // started too basic need lambda > 0 {if(lambda < 0) // just crossed over {lambda = -0. // OH = pow(10. TotCr. } } else // started too acidic. //x = (-b . . x = (-b . // THis step screws with the pH!!!! //Fix the OH relative to the new H conc //a = 1.DerH .460 a = 1. } } fit = fabs((DerCr-TotCr)/TotCr) + fabs((TestH-DerH)/TestH). DerCr. //OH = OH . c = DerH * OH . b = .x. // b = -H .4*a*c))/2*a.OH.x.x. //H = H . need lambda < 0 {if(lambda > 0) {lambda = -0. printf("%lg %lg %lg %lg %lg %lg %lg \n". } } H = DerH.sqrt(b*b .-8) / H.Cr0. //c = H * OH .4*a*c))/2*a.49 * lambda. lambda).49 * lambda. OH = OH -x. if(fabs(lambda) < 1e-6) {done = 1.1e-8. // If the resulting [H](DerH) > initial [H](TestH) the next TestH should be higher // If less.

chem->SetConcentration("CrOHOHOHOH-".Cr1). } } . chem->SetConcentration("CrOHOHOH". chem->SetConcentration("CrOH++".461 // put the Values back into chem chem->SetConcentration("H+". chem->SetConcentration("CrOHOH+".H).Cr3).Cr4). chem->SetConcentration("Cr+++".Cr2). chem->SetConcentration("OH-".Cr0).OH).

double GetCurrentDensity(TChemistry * chemistry. TChemistry * chemistry. double T.h #ifndef __TREACTIO_H #define __TREACTIO_H #ifndef __MATH_H #include <math. double P). //anodic transfer coefficient ac.h> #endif #ifndef __CONSTANT_H #include "constant. char description[MAXREACTIONLENGTH].462 Appendix I: treactio.H" #endif #define MAXREACTIONLENGTH 40 class TReaction {public: TAllSpecies * environment. double P). .H" #endif #ifndef __TCHEM_H #include "tchem. double E. double aa. double T. int numelectrons). //exchange current density // # electrons transferred per reaction k0. double T. double double double int n. double c. double T. double E.H" #endif #ifndef __TALLSPEC_H #include "tallspec.//needed for subclasses TReaction(TAllSpecies * allspecies. virtual double GetFluxOfSpecies(TSpeciesName name. //standard rate constant private: virtual double AnodicCurrentDensity(TChemistry * chemistry. double E. double P).double a. double P). TReaction(). virtual double Erev(TChemistry * chemistry. virtual double CathodicCurrentDensity(TChemistry * chemistry. double P). double k. double T. //cathodic transfer coefficient i0. double E.

double T. double T. double P). private: double AnodicCurrentDensity(TChemistry * chemistry. double CathodicCurrentDensity(TChemistry * chemistry. double P). int vFepp. double E. double T. TChemistry * chemistry. double P). TChemistry * chemistry. int vHp. }. double T. double Erev(TChemistry * chemistry. int vAlppp. double P).double a. double P). class TAlDiss: public TReaction {public: TAlDiss(TAllSpecies * allspecies). double P). double T.463 }. . private: TSpeciesName Alppp. // constructor THER(TAllSpecies * allspecies. double P). double P). double E. double E. double E. double CathodicCurrentDensity(TChemistry * chemistry. double AnodicCurrentDensity(TChemistry * chemistry. // constructor private: TSpeciesName Fepp. double E. double AnodicCurrentDensity(TChemistry * chemistry. double E. double T. double Erev(TChemistry * chemistry. class T304A: public TReaction {public: T304A(TAllSpecies * allspecies). double CathodicCurrentDensity(TChemistry * chemistry. double T. double c. TSpeciesName Hp. double E. double P). vCrppp. }. double T. double T. TSpeciesName Crppp. double GetFluxOfSpecies(TSpeciesName name. double i). class THER: public TReaction {public: THER(TAllSpecies * allspecies). double T. }. double P). // constructor double GetFluxOfSpecies(TSpeciesName name. double E.

double dbAvgz. double T. Mnpppp.464 class TSAF2205Diss: public TReaction {public: TSAF2205Diss(TAllSpecies * allspecies). class T304_1An: public TReaction {public: T304_1An(TAllSpecies * allspecies). double T. }. double P). double P). double CathodicCurrentDensity(TChemistry * chemistry. double P). class T304_1Ca: public TReaction {public: T304_1Ca(TAllSpecies * allspecies). private: double dbEtaA. double dbEtaC. double P). double T. private: double dbEtaA. double dbfFe. double dbIcorr. TChemistry * chemistry. double dbAvgz. TSpeciesName double dbfNi. TSpeciesName Fepp. double GetFluxOfSpecies(TSpeciesName name. double T. double dbEcorr. double T. double E. double P). double E. TSpeciesName Hp. double E. double T. double AnodicCurrentDensity(TChemistry * chemistry. double CathodicCurrentDensity(TChemistry * chemistry. TSpeciesName double dbfMn. double GetFluxOfSpecies(TSpeciesName name. double dbEtaC. TChemistry * chemistry. . Crppp. double dbIcorr. double dbEcorr. TSpeciesName OHm. Nipp. double E. }. private: double AnodicCurrentDensity(TChemistry * chemistry. double P). double E. double E. TSpeciesName double dbfCr.

double P). double T. }. double T. double CathodicCurrentDensity(TChemistry * chemistry. double P). double E. double E. #endif .465 double AnodicCurrentDensity(TChemistry * chemistry.

i0 = exchange current density aa ac N(X) v(X) = = = = anodic transfer coefficient cathodic transfer coefficient chemical flux of species X stoichiometric coefficient of species X Relations: Thermodynamics: . Newman.h" T = temperature a(X) = activity of X u0(X) = standard chemical potential of X n = number of electrons transferred in reaction deltaG = change in Gibbs Free Energy when all reactants and products have unit activity. definied in "constants.R. Electrochemical Systems J.466 Appendix J: treactio. Scully . Stoner. MSE 662? E-Chem Class Notes Conventions: All current densities given in [A/m^2-s] (+) current is anodic (hole current flowing from electrode to solution) (-) current is cathodic(hole current flowing from solution to electrode) (+) chemical flux is species generation (-) chemical flux is species consumption Definitions: eta = overpotential E = electrode potential Erev = reversible potential E0 = Equilibrium potential R = Universal Gas Constant.E. MSE 771 Advanced E-Chem Class Notes G. Multiple reactions can be combined to create a polarization curve. A reaction is just the production (or consumption) of species. The theory in this section is based on J.c /*********************************************************************** 4/13/94 This module defines the base class TReaction. This is necessary because the net current cannot be related to the flux of species across an interface at low overpotentials.

exp [.eta] | | RT RT | Anodic (+) current is given by: | aa F | i0|exp [---.eta] | | RT | (Newman's Surface overpotential section 8 ian = Cathodic (-) current is given by: | ac F | ica = -i0|exp [.467 For the reaction defined below: aA + bB <=> cC + dD + nea(C)a(D) Erev = E0 + RT ln -------a(A)a(B) where E is defined by the relation: nFE0 = deltaG (Scully defines deltaG reversed ) (Nernst Equation) => E0 = u0(C)+u0(D)-u0(A)-u0(B) ----------------------nF Kinetics: Overpotential is defined by: eta = E .---.eta] .v(X) nF [A/m^2] --------------[eq/mol]-[C/eq] N(X) = For anodic species: (current > 0) => N > 0 (current < 0) => N < 0 .---.Erev The net current is governed by the Butler-Volmer Relation: | aa F ac F | inet = i0|exp [---.eta] | | RT | Chemical Fluxes: inet ---.

468 For cathodic species: (current > 0) => N < 0 (current < 0) => N > 0 Comments: Right now u0's of species are used to calculate E0 => if speed issue. e-'s go p-stat to surface this is (-) current This program will use KCS sign convention: Hole flow Anodic current (+) but taken as flow from p-stat to surface Cathodic current (-) but taken as hole flow from pstat to surface Other Conventions . can multiply by hand. In corrosion this is (+) current Cathodic current (+) metal ions go solution to surface. save calculations Issue of cathodic/anodic produce/consume can set v(X) (-) for reduced species => hides what is really happening (bad) => only have to get it straight in one place rest of code identical for both cathodic and anodic species (good) can flip in code => oppposites of above (good). (bad) Stupid Sign convention used by corrosion people: Corrosion people use wrong sign convention for current electron flow . e-'s from from surface to pstat.not hole flow Also take current as surface to p-stat Anodic current (+) metal ions flow from surface to solution.enter into code.

} double TReaction::GetCurrentDensity(TChemistry * chemistry. This function is useless as is. double E.H" #endif TReaction::TReaction() /*********************************************************************** TReaction() : Minimal constructor. double P) /*********************************************************************** GetCurrentDensity(): This function calls the private member functions AnodicCurrentDensity and CathodicCurrentDensity . 96 i = nFAk0 [Co(0. This function will create a reaction that generates current but no chemical species. n = numelectrons. double k. int numelectrons) /*********************************************************************** TReaction(): Constructor for current only. double T. ***********************************************************************/ { } TReaction::TReaction(TAllSpecies * allspecies. etc.t) exp(-alpha*nf*exp(E-E0)) .t) exp((1-alpha)nf(E-E0)) where f = F/RT ac should be negative. double a. aa = a.469 Fluxes in m^-2 Concentrations in m^-3 8/23/96 Bard and Faulkner p. double c. but a default constructor must be supplied to allow the creation of child types like TAlppp. aa positive NOTE: REALLY SHOULD HAVE TO DEFINE ANODIC AND CATHODIC CURRENT DENSITY FUNCTIONS ***********************************************************************/ #ifndef __TREACTIO_H #include "treactio. ac = c. k0 = k.Cr(0. It has been reduced to a stub to possibly speed things up. ***********************************************************************/ {environment = allspecies.

return(inet).ln -------nF a(A)a(B) where: (Nernst Equation) E0 = u0(C)+u0(D)-u0(A)-u0(B) ----------------------nF ***********************************************************************/ . It is a virtual function and can be redefined. TChemistry * chemistry. inet = inet + CathodicCurrentDensity(chemistry. For the reaction defined below: aA + bB <=> cC + dD + neRT a(C)a(D) Erev = E0 + -.v(X) --------------nF [eq/mol]-[C/eq] ***********************************************************************/ {return(0). double P) /********************************************************************* GetFluxOfSpecies() : This function returns the flux of species name.P). double P) /*********************************************************************** Erev(): This function calculates the reversible potential for the reaction. It is a virtual function so that it can be redefined by child functions. } double TReaction::GetFluxOfSpecies(TSpeciesName name. It depends on the reactions and the concentrations of the reactants and products. Returns the current density in A/m^2 | aa F ac F | inet = i0|exp [---. RETURNS: The chemical flux in mol/(m^2-s) inet [A/m^2] ---.---.eta] .exp [. double T. double T.470 those functions can be redefined for inheritance.T.P). // net current inet = AnodicCurrentDensity(chemistry. } N(X) = double TReaction::Erev(TChemistry * chemistry.E.E. double E.eta] | | RT RT | ***********************************************************************/ {double inet.T.

C // i0 = 1e-5. and does not represent any particular physical case. ***********************************************************************/ {return(0). It uses the Bard and Faulkner type approach described in the header to this file. } double TAlDiss::GetFluxOfSpecies(TSpeciesName name. double E. //cathodic transfer coefficient // This used to be used to calculate current. } TAlDiss::TAlDiss(TAllSpecies * allspecies) /*********************************************************************** TAlDiss(): This is the constructor for Aluminum dissolution. double P) /*********************************************************************** CathodicCurrentDensity: This function calculates the cathodic current density of the reaction. aa = .5. } double TReaction::AnodicCurrentDensity(TChemistry * chemistry."Al <=> Al+++ + 3e-"). It is a virtual function and can be redefined. TChemistry * chemistry. double P) /*********************************************************************** GetFluxOfSpecies() : This function returns the flux of species name. double T. } double TReaction::CathodicCurrentDensity(TChemistry * chemistry. vAlppp = 1. n = 3. double P) /*********************************************************************** AnodicCurrentDensity: This function calculates the anodic current density of the reaction. Alppp ="Al+++". It is an example of the redefining process. double T. double T. double E. It uses the Bard and Faulkner type approach described in the header to this file.5. it still could be // instead of k0. //exchange current density A/m^2 strcpy(description. ***********************************************************************/ { environment = allspecies. ***********************************************************************/ {return(0). double E. //anodic transfer coefficient ac = .471 {return(0). .

double T.P.ln -------nF a(A)a(B) where: (Nernst Equation) E0 = u0(C)+u0(D)-u0(A)-u0(B) ----------------------nF The reaction here is: Al <=> Al+++ + 3e***********************************************************************/ {double E0. It is a virtual function so that it can be redefined by child functions. double P) /*********************************************************************** Erev(): This function calculates the reversible potential for the reaction.T. It depends on the reactions and the concentrations of the reactants and products. log10==log in C++ return(Erev). // log==ln. } . } else {flux = 0.v(X) --------------nF [eq/mol]-[C/eq] ***********************************************************************/ {double flux.T. } double TAlDiss::Erev(TChemistry * chemistry. N(X) = if(StringsEqual(name. E0 = (environment->u0(Alppp))/(n*F). Erev = E0 + R*T*log(environment->a(Alppp.E. } return(flux).Alppp)) {flux = GetCurrentDensity(chemistry. double Erev.P)*vAlppp /(n*F). For the reaction defined below: aA + bB <=> cC + dD + neRT a(C)a(D) Erev = E0 + -.472 RETURNS: The chemical flux in mol/(m^2-s) inet [A/m^2] ---.chemistry))/(n*F).

473 double TAlDiss::AnodicCurrentDensity(TChemistry * chemistry. inet = 0. ***********************************************************************/ {double inet. It uses the Bard and Faulkner type approach described in the header to this file. ***********************************************************************/ {environment = allspecies. return(inet). double P) /*********************************************************************** CathodicCurrentDensity: This function calculates the cathodic current density of the reaction. It is a virtual function and can be redefined. double E. double T. n = 2. // net current inet = 0. strcpy(description. //cathodic transfer coefficient // i0 = 1e-5. double E. RETURNS: The chemical flux in mol/(m^2-s) inet [A/m^2] . double P) /*********************************************************************** AnodicCurrentDensity: This function calculates the anodic current density of the reaction. It uses the Bard and Faulkner type approach described in the header to this file. //anodic transfer coefficient ac = . double P) /*********************************************************************** GetFluxOfSpecies() : This function returns the flux of species name. vHp = 2. TChemistry * chemistry.5. } double TAlDiss::CathodicCurrentDensity(TChemistry * chemistry. } THER::THER(TAllSpecies * allspecies) /*********************************************************************** THER: This function is the constructor for the THER class. double T. aa = .5. Hp ="H+". } double THER::GetFluxOfSpecies(TSpeciesName name. return(inet). ***********************************************************************/ {double inet. double E."H2 <=> 2 H+ + 2e-"). double T. //exchange current density A/m^2 k0 = 1e-10.

double T. E0 = (environment->u0(Hp))/(n*F). double Erev.ln -------nF a(A)a(B) where: N(X) = (Nernst Equation) E0 = u0(C)+u0(D)-u0(A)-u0(B) ----------------------nF The reaction here is: Al <=> Al+++ + 3e***********************************************************************/ {double E0. double P) /*********************************************************************** AnodicCurrentDensity: This function calculates the anodic current . Erev = E0 + R*T*log(environment->a(Hp.Hp)) {flux = GetCurrentDensity(chemistry. It depends on the reactions and the concentrations of the reactants and products. double T.P.T. It is a virtual function so that it can be redefined by child functions. } double THER::Erev(TChemistry * chemistry. For the reaction defined below: aA + bB <=> cC + dD + neRT a(C)a(D) Erev = E0 + -. // log==ln. } double THER::AnodicCurrentDensity(TChemistry * chemistry.P)*vHp /(n*F). if(StringsEqual(name. } return(flux).T.chemistry))/(n*F).474 ---. double E. } else {flux = 0. log10==log in C++ return(Erev).E.v(X) --------------nF [eq/mol]-[C/eq] ***********************************************************************/ {double flux. double P) /*********************************************************************** Erev(): This function calculates the reversible potential for the reaction.

***********************************************************************/ {double eta. //grabs the characteristics of chemical species for use by this reaction strcpy(description. return(inet). // This is concentration of the reacting species eta = E . C0 = 1. inet = -n*F*k0*C0 * exp(-(ac*F*eta)/(R*T)). vCrppp = 3."304 <=> Fe++ + Cr+++ + 5e-"). } T304A::T304A(TAllSpecies * allspecies) /*********************************************************************** ***********************************************************************/ {environment = allspecies.P). double P) .T. // net current double C0. // surface overpotential double inet. double T. It uses the Bard and Faulkner type approach described in the header to this file. Crppp = "Cr+++". } double T304A::AnodicCurrentDensity(TChemistry * chemistry. } double THER::CathodicCurrentDensity(TChemistry * chemistry. // This is concentration of the reacting species eta = E .475 density of the reaction. double E. ***********************************************************************/ {double eta. vFepp = 2. It uses the Bard and Faulkner type approach described in the header to this file. double T. double P) /*********************************************************************** CathodicCurrentDensity: This function calculates the cathodic current density of the reaction. double E. C0 = 1. // surface overpotential double inet.Erev(chemistry.P).Erev(chemistry. // net current double C0. Fepp = "Fe++". return(inet).T. inet = -n*F*k0*C0 * exp(-(ac*F*eta)/(R*T)).

a5. a6 = 4270.a1.674602.1.4) {exp = a0 + a1*E + a2*pow(E.6553. } else {if (E < 0.768. } else {exp = 3.a2.5) + a6*pow(E. a3 = 8.exp). double a0. **********************************************************************/ {double iAn.a6. double dbCl.7) + a8*pow(E.exp.4 V . a2 = 24.4) + a5*pow(E.Tafel Behavior -. } } iAn = pow(10.a8.50292. It uses the Bard and Faulkner type approach described in the header to this file. a9 = 11104. a8 = -20599.3) + a4*pow(E.a3. a10 = 49894.476 /*********************************************************************** Below -. dbCl = chemistry->GetConcentration("Cl-").a9. a4 = -469.2) + a3*pow(E.10).371175. if(dbCl > 500) {a0 = -0. a7 = -773.4 V polynomial Above .06.4 V SCE .9) + a10*pow(E.606. . m = 2. a1 = 4.87385. double m.a4.a7.8) + a9*pow(E.606..4) {exp = m * E + b.600712. b.38825.1.a10. b = -1. if (E < -0. a5 = -188. } else {m = 0.6) + a7*pow(E.2.4 V constant AnodicCurrentDensity: This function calculates the anodic current density of the reaction.6462. b = -0.

a6. ***********************************************************************/ {double iCa. . double P) /*********************************************************************** CathodicCurrentDensity: This function calculates the cathodic current density of the reaction. **********************************************************************/ {double net.3) {exp = a0 + a1*E + a2*pow(E.//-8.//9.a10.a3. } double TSAF2205Diss::AnodicCurrentDensity(TChemistry * chemistry.8527.40961. double a0.J1.40961. } else {iCa = 0. } TSAF2205Diss::TSAF2205Diss(TAllSpecies * allspecies) /********************************************************************** TSAF2205Diss: This function is the constructor for this class **********************************************************************/ {environment = allspecies. } return(iCa).a4. } double T304A::CathodicCurrentDensity(TChemistry * chemistry.exp).34608.a1.809. It uses the Bard and Faulkner type approach described in the header to this file.a1.3) + a4*pow(E. // Walton Numbers /* a0 = . It uses the Bard and Faulkner type approach described in the header to this file.219.//22.477 exp = m * E + b.a2. iAn = pow(10. -16.872. -73.//-5.2) + a3*pow(E.exp.a8.4973.a4. double T.a7.exp.h. if(E < -0.//10.//-4. double E.4).97816. -119.8619. double P) /********************************************************************** AnodicCurrentDensity: This function calculates the anodic current density of the reaction.a5.exp).a9. -84.a3. double T. } return(iAn). a0 a1 a2 a3 a4 = = = = = -23.a2. iCa = -pow(10.89802.1206. double E.a0.

6) + a7*pow(E.4. a7 = 13958.10).904. a2 = -1.9) + a10*pow(E. a8 = -428.304.2) + a3*pow(E. */ a0 = -2. a7 = 12573. exp = -6 + (-. exp = exp -3. a9 = 284.7. a4 = 277. a1 = -0. a5 = 51. a2 = 3.5) + a6*pow(E.978. a8 = -23346.2338.875 . return(net).478 a1 = 0.7637. a6 = -4039.548883.exp).071. a3 = 37. a9 = 10690.161199. a3 = -73.0202.231.838. a3 = -37.3 .61. J1 = -pow(10. a4 = -69.6) //-.4211.566. /* a0 = -2. J1 = J1 + pow(10.36. a8 = -16900.E)/. } else { J1 = 0.55 for walton {exp = a0 + a1*E + a2*pow(E. a6 = -2520. if(E > -.4. a9 = 17202. a10 = -59. a7 = 96. a5 = -856.09854.753641.5.44601.exp). a4 = 368.20439.55.35.10089.06.2756. a6 = 275.7865.4825.9. } net = J1.8) + a9*pow(E. .4) + a5*pow(E. //Converting to A/m^2 a1 = -.31. a10 = -4766. a10 = -2586. a5 = -137.7) + a8*pow(E.3) + a4*pow(E. a2 = 11.

479 } double TSAF2205Diss::CathodicCurrentDensity(TChemistry * chemistry. dbEtaC = 0. if(StringsEqual(name. from CSB thesis FIg 4. double E. double P) /*********************************************************************** CathodicCurrentDensity: This function calculates the cathodic current density of the reaction.704. "Cr+++". double E.782. It uses the Bard and Faulkner type approach described in the header to this file. 0.40(a). double T. 0.216. double P) /*********************************************************************** ***********************************************************************/ {double dbElFlux.196.52e-3.087. it is the corrosion potential from the polarization curve **********************************************************************/ {environment = allspecies. dbEtaA = 0. 0.362304. // // // // Anodic Tafel slope Cathodic Tafel slope Corrosion current Corrosion potential double T304_1An::GetFluxOfSpecies(TSpeciesName name. 0. 0. dbChemFlux. net = 0.Fepp)) .218. } T304_1An::T304_1An(TAllSpecies * allspecies) /********************************************************************** T304_1An: This function is the constructor for this class This class represents reaction 1. 0. return(net). TChemistry * chemistry. "Nipp". dbIcorr = 9.013. Fepp Crppp Nipp Mnpppp = = = = "Fe++". double T. mM S The "reversible potential" here is wrong.21. dbfFe dbfCr dbfNi dbfMn dbfFe dbfCr } = = = = = = 0. dbEcorr = -0. dbAvgz = 2. ***********************************************************************/ {double net. Hp = "H+". "Mn++++". It is for 304 in 1M Cl.148233.

eta/dbEtaA).P). double P) /*********************************************************************** AnodicCurrentDensity: This function calculates the anodic current density of the reaction.P). dbChemFlux = dbfFe * dbElFlux / (dbAvgz * F).E. } else {if(StringsEqual(name.T.E.P). double E. } else {if(StringsEqual(name.T. } else {if(StringsEqual(name.Nipp)) {dbElFlux = AnodicCurrentDensity(chemistry. } } } } return(dbChemFlux).E.480 {dbElFlux = AnodicCurrentDensity(chemistry. double E.P).Crppp)) {dbElFlux = AnodicCurrentDensity(chemistry. } double T304_1An::CathodicCurrentDensity(TChemistry * chemistry. ***********************************************************************/ . double T. dbChemFlux = dbfNi * dbElFlux / (dbAvgz * F). } double T304_1An::AnodicCurrentDensity(TChemistry * chemistry. dbChemFlux = dbfCr * dbElFlux / (dbAvgz * F). return(ia). dbChemFlux = dbfMn * dbElFlux / (dbAvgz * F). ia = dbIcorr * pow(10.T. // surface overpotential double ia.Mnpppp)) {dbElFlux = AnodicCurrentDensity(chemistry. double P) /*********************************************************************** CathodicCurrentDensity: This function calculates the anodic current density of the reaction. double T.T.dbEcorr. ***********************************************************************/ {double eta. } else {dbChemFlux = 0. // current eta = E .E.

E). ic = 0.T. OHm = "OH-". double T. dbIcorr = 9. } return(dbChemFlux).216.OHm)) {dbElFlux = CathodicCurrentDensity(chemistry. dbEtaA = 0. 0. double T. dbChemFlux. } double T304_1Ca::GetFluxOfSpecies(TSpeciesName name. printf("flux of OH = %lg at E = %lg \n".E. // // // // Anodic Tafel slope Cathodic Tafel slope Corrosion current Corrosion potential . dbChemFlux = -dbElFlux / F. eta/dbEtaC). return(ic).40(a). // current eta = dbEcorr-E. dbEtaC = 0. double E.362304. dbAvgz = 2.148233. it is the corrosion potential from the polarization curve **********************************************************************/ {environment = allspecies. double P) /*********************************************************************** AnodicCurrentDensity: This function calculates the anodic current density of the reaction. double P) /*********************************************************************** ***********************************************************************/ {double dbElFlux.52e-3. } double T304_1Ca::AnodicCurrentDensity(TChemistry * chemistry.21. if(StringsEqual(name. // surface overpotential double ic. TChemistry * chemistry. from CSB thesis FIg 4. double E.481 {double eta.dbChemFlux. dbEcorr = -0. } T304_1Ca::T304_1Ca(TAllSpecies * allspecies) /********************************************************************** T304_1Ca: This function is the constructor for this class This class represents reaction 1. mM S The "reversible potential" here is wrong. It is for 304 in 1M Cl. ic = -dbIcorr * pow(10.P).

ia = 0. return(ia). // current eta = dbEcorr-E. double P) /*********************************************************************** CathodicCurrentDensity: This function calculates the anodic current density of the reaction. } double T304_1Ca::CathodicCurrentDensity(TChemistry * chemistry. ic = -dbIcorr * pow(10. return(ic). eta/dbEtaC). eta/dbEtaA).482 ***********************************************************************/ {double eta. double E. } .dbEcorr. // current eta = E . ***********************************************************************/ {double eta. // surface overpotential double ic. ia = dbIcorr * pow(10. double T. // surface overpotential double ia.

H" #endif #ifndef __MATH_H #include <math. [concentrations].H" #endif #ifndef __TREACTIO_H #include "treactio.h /********************************************************************** TMATERIA. potential (NHE). temperture) they will have to be some sort of compressed representation Line segements. temp) Rate/area This function will contain the logic about how to interpolate into unmeasured conditions --> data can be refined here **********************************************************************/ #ifndef __TMATERIA_H #define __TMATERIA_H #ifndef __TCHEM_H #include "tchem.H 2/26/94 { This should contain and isolate all Material dependent info } Properties {Polarization Curves: fn (ph. Fitted polynomial Functions GetProductionRate(species.483 Appendix K: tmateria.h> #endif class TMaterial /* class TMaterial last modified 2/26/94 .H" #endif #ifndef __TALLSPEC_H #include "tallspec. [Me++].

double E. virtual double GetChemicalFlux(TSpeciesName name. TChemistry *chemistry. double P). double E. private: }. double T. double T. TMaterial(). double T. TChemistry *chemistry. char name[20]. class TSAF2205:public TMaterial . double P). double E. double GetNetCurrentDensity(TChemistry *chemistry. double E. }. double P). }. TReaction * AlDiss. class TAg:public TMaterial {public: TAg(TAllSpecies* allspecies). double E. // Returns flux in (moles of name) / m^2 virtual double GetNetCurrentDensity(TChemistry *chemistry. private: TSpeciesName Agp. double T. double GetChemicalFlux(TSpeciesName name. TReaction * HER. double T. double GetNetCurrentDensity(TChemistry *chemistry. double P). double E. class TFooMaterial:public TMaterial {public: TFooMaterial(TAllSpecies* allspecies). double GetChemicalFlux(TSpeciesName name. private: TSpeciesName fooname. double P). //needed for subclasses TMaterial(TAllSpecies* allspecies). double T. double P). double GetOpenCircuit(TChemistry *chemistry.484 */ { public: TAllSpecies * crc. TChemistry *chemistry. double P).double T.

TReaction * anodic. double P). double E. TChemistry *chemistry. TChemistry *chemistry. TSpeciesName Crppp. double GetChemicalFlux(TSpeciesName name. double T. double P). double P). double T. double P). }. TReaction * cathodic. TReaction * SAF2205. #endif .485 {public: TSAF2205(TAllSpecies* allspecies). double E. class T304Mat:public TMaterial {public: T304Mat(TAllSpecies* allspecies). double E. }. double GetNetCurrentDensity(TChemistry *chemistry. private: TSpeciesName Fepp. double T. private: TSpeciesName Nipp. TReaction * HER. double GetNetCurrentDensity(TChemistry *chemistry. double T. double E. TSpeciesName Crppp. double GetChemicalFlux(TSpeciesName name.

0 NET current does not translate to 0 generation of species => break experimental data into 2 curves ===> IDEA <=== Do polarization curves scale vs NHE based on metal ion concentration i.CPP 3/1/94 CONVENTIONS Return rates as (moles of name) /(s. write are sort of nonsensical => hardwire information into each Object Measured polarization curves are the sum of an anodic one and a cathodic one. one per material. abstract classes This and TASpecies are the most object-oriented classes in crevice. (See TASpecies for more comments A material will generate species fluxes based on: => solution chemistry (esp. ph and [Cl-]) => potential => temperature THESE INDIVIDUAL REPRESENTATIONS ARE STORED IN TREACTIONS There is probably a nearly infinite number of ways to represent material data => (variable) number of line segments => polynomial => series of splines ^^^ all of the above mixed and matched for different chemistries ^^^ many ways to interpolate amongst chemistries ^^^ temperatures => read. Tomasson. => KCS needs to learn about virtual functions.c /********************************************************************** TMATERIA.486 Appendix L: tmateria.m^2) All potentials should be vs NHE GENERAL This should be the parent class for many classes. same shape just displaced because of changing reversible potentials? {%% 45. Hebert .46%% Hebert and Alkire %%25%% Alkire.e.

u. } TMaterial::TMaterial(TAllSpecies * allspecies) /********************************************************************** TMaterial(): This is the useful constructor for objects of this type. product1. double E. **********************************************************************/ {crc = NULL.H" #endif TMaterial::TMaterial() /********************************************************************** TMaterial(): Default constructor for class. double T. (product2) (or anodicspecies and cathodic species) double i0 double Erev 4/25/94 Eventually include density of material => weight loss => penetration rate 4/27/94 Want to find opencircuit potential Want to find (overpotential) potential given current (polarization) Include Diffusional effects? **********************************************************************/ #ifndef __TMATERIA_H #include "tmateria. **********************************************************************/ {crc = allspecies. double P) /********************************************************************** .487 ==> [Al+++] responsible for CCS} if so GetReversiblePotential would make sense ==> There may be a need for a TReaction object class TReaction char symbolicform[40] TSpeciesName reactant1. Needed to allow subclasses. (reactant2).D. etc) is needed to make all other calculations. The information in TAllspecies(z. // somehow have to know z for species } double TMaterial::GetNetCurrentDensity(TChemistry *chemistry.

return(net).488 3/1/94 GetNetCurrentDensity : Returns the total electrical flux [A/m^2] for the material in solution "chemistry" at "potential". } return(flux). Cathodic Current TReaction Object needed? **********************************************************************/ {double flux.157) . } double TMaterial::GetOpenCircuit(TChemistry *chemistry.157-E)). double T. double E."Ni++")) {flux = 1e-9..pow(10. } double TMaterial::GetChemicalFlux(TSpeciesName name.TChemistry *chemistry. // 1e-6 * (pow(10.E-. double P) /********************************************************************** 3/20/97 . CONVENTIONS: Currents > 0 are ANODIC Currents < 0 are CATHODIC This is a virtual function. CONVENTIONS: Fluxes > 0 produce species Fluxes < 0 consume species QUESTIONS/THOUGHTS Is there a better way to do this? Anodic. therefore it can be redefined by **********************************************************************/ {double net = 0. } else {flux = 0. double P) /********************************************************************** 3/1/94 GetChemicalFlux : Returns the chemical flux [mol/(m^2-s)] of species "name"for the material in solution "chemistry" at "potential". net = 0. double T. if (StringsEqual(name.

} return(oc). It does this by iteratively searching for a potential with no net current. } newinet = GetNetCurrentDensity(chemistry. // trial open circuit potential double inet.oc.T.oc. delta = . // iff oc is the actual open circuit. // effective size of zero oc = 0. // starting point. // step size for creating new guesses double threshold. TFooMaterial::TFooMaterial(TAllSpecies * allspecies) .489 GetOpenCircuit : This function returns the Open Circuit potential in V(SHE) for the material in a solution with composition "chemistry". } // could increase step size inet = newinet.P). } else // if net cathodic current => try higher potential {oc = oc + delta.5. // net current at oc (try to make 0) double newinet.P). Multiple opencircuit potentials will not be found. could optimize inet = GetNetCurrentDensity(chemistry. while(fabs(inet) > threshold) //this is the exit condition {if(inet > 0) // if net anodic current => try lower potential {oc = oc . could optimize or pass // initial stepsize. net current = 0 // threshold defines how close to "0" is close enough threshold = 1e-12.T. // new net current double delta. ??? Do I want to be able to pass a starting potential for the search ???? POTENTIAL PROBLEMS: This routine assumes that the curves for anodic and cathodic currents are continuous (that they intersect) **********************************************************************/ { double oc.delta. }. // if oc is between the old and new potentials => decrease the step size if ((inet*newinet) <0) // was there a sign change (cross true oc) {delta = delta/2.

double T. }. } . as used by Fu and Chan[38] and Evitts [96] **********************************************************************/ {crc = allspecies. } return(flux). fooname = "Foo". HER = new THER(crc). **********************************************************************/ {double net. double T.490 /********************************************************************** TFooMaterial(): Constructor for class FooMaterial is my test material Currently it is MJ Psaila-Dombrowski's material in Section 3.073e-3. TChemistry *chemistry. double P) /********************************************************************** See TMaterial function of same name. double E. return(net). **********************************************************************/ {double flux.1 **********************************************************************/ {crc = allspecies. double P) /********************************************************************** See TMaterial function of same name. net = 0. if (StringsEqual(name. } else {flux = 0. double E. AlDiss = new TAlDiss(crc). Agp = "Ag+". double TFooMaterial::GetNetCurrentDensity(TChemistry *chemistry."Al+++")) {flux = 2. } double TFooMaterial::GetChemicalFlux(TSpeciesName name. } TAg::TAg(TAllSpecies * allspecies) /********************************************************************** TAg(): Constructor for class Silver.4.

double P) /********************************************************************** 3/1/94 GetChemicalFlux : Returns the chemical flux [mol/(m^2-s)] of species "name"for the SAF2205 in solution "chemistry" at "potential". double P) /********************************************************************** See TMaterial function of same name. SAF2205 = new TSAF2205Diss(crc). } double TSAF2205::GetChemicalFlux(TSpeciesName name.491 double TAg::GetChemicalFlux(TSpeciesName name. **********************************************************************/ {double flux. double E. Nipp = "Ni++".299e-3.TChemistry *chemistry. double TAg::GetNetCurrentDensity(TChemistry *chemistry. TChemistry *chemistry. net = 318.5 p90 of Par Olav Gartland's report %%63%% **********************************************************************/ {crc = allspecies.Agp)) {flux = 3. return(net).31. double T. //318 A/m^2 / zF } else {flux = 0. double T. double T. **********************************************************************/ {double net. Crppp = "Cr+++". double E. } return(flux). } TSAF2205::TSAF2205(TAllSpecies * allspecies) /********************************************************************** TSAF2205(): Constructor for class SAF2205 is my test material Loosely based on SAF2205 in ph = -. double E. if (StringsEqual(name. CONVENTIONS: . }. double P) /********************************************************************** See TMaterial function of same name.

5 p90 of Par Olav Gartland's report %%63%% **********************************************************************/ {crc = allspecies. CONVENTIONS: Currents > 0 are ANODIC Currents < 0 are CATHODIC **********************************************************************/ {double net. double P) /********************************************************************** 3/1/94 GetChemicalFlux : Returns the chemical flux [mol/(m^2-s)] . } double T304Mat::GetChemicalFlux(TSpeciesName name. } double TSAF2205::GetNetCurrentDensity(TChemistry *chemistry. double E.T. Crppp = "Cr+++". } T304Mat::T304Mat(TAllSpecies * allspecies) /********************************************************************** T304Mat(): Constructor for class SAF2205 is my test material Loosely based on SAF2205 in ph = -. flux = SAF2205->GetFluxOfSpecies(name. anodic = new T304_1An(crc).TChemistry *chemistry. cathodic = new T304_1Ca(crc).P).P).E. double T.chemistry. double T.492 Fluxes >0 produce species Fluxes <0 consume species **********************************************************************/ {double flux. return(net). return(flux). double E. double P) /********************************************************************** 3/1/94 GetNetCurrentDensity : Returns the total electrical flux [A/m^2] for the material in solution "chemistry" at "potential". Fepp = "Fe++". net = SAF2205->GetCurrentDensity(chemistry.T.E.

E. } .T. net = anodic->GetCurrentDensity(chemistry.E. double T.chemistry. double P) /********************************************************************** 3/1/94 GetNetCurrentDensity : Returns the total electrical flux [A/m^2] for the material in solution "chemistry" at "potential". CONVENTIONS: Currents > 0 are ANODIC Currents < 0 are CATHODIC **********************************************************************/ {double net.P) + cathodic->GetFluxOfSpecies(name.T.E.chemistry. double E.P). return(flux).493 of species "name"for the SAF2205 in solution "chemistry" at "potential".T. return(net).E.T.P) + cathodic->GetCurrentDensity(chemistry. CONVENTIONS: Fluxes >0 produce species Fluxes <0 consume species **********************************************************************/ {double flux. flux = anodic->GetFluxOfSpecies(name.P). } double T304Mat::GetNetCurrentDensity(TChemistry *chemistry.

y and z coords of point int iUsed.h> #endif #ifndef __MATH_H #include <math. dbZ.h> #endif #ifndef __STRING_H #include <string.C.h /*************************************************************************** FEM. int iFixed. long double dbX. ***************************************************************************/ #ifndef __FEM_H #define __FEM_H #ifndef __STDIO_H #include <stdio. Please see that program for more documentation.H Programmed by: Kevin Stewart Date Last Modified: 9/20/95 Summary: This is the header file for FEM.H" #endif #ifndef __TALLSPEC_H #include "tallspec.H" #endif #ifndef __TMATERIA_H #include "tmateria.H" #endif #ifndef __TASPECIE_H #include "taspecie. TChemistry * chem. . // x.494 Appendix M: fem.H" #endif //For Future consider moving temp and pressure to nodes from elements struct NodeInfo {int iNodeId. dbY.h> #endif #ifndef __TCHEM_H #include "tchem.

void SetChemistry().betaik.Kx.Lij. //constructor TSolutionVolume(NodeInfo *nodei. class TSolutionVolume /* */ {public: // variables NodeInfo *i.*k.bj. A. jkmat.Lik.betajk.Ky. TMaterial * jk. dX. double kt. dCdX(). double th).bk. // variables for the differential eq double theta. double double double double double Q(). dEdX(). double height. dEdY().alphajk.Kxy. NodeInfo *nodek.495 TChemistry * oldchem.ci. TMaterial * ik. double Kt.My. ikmat. dCdY().h. // intermediate calculations // Area. T. NodeInfo *nodej. TMaterial * material. double double double double bi. }. //functions TSolutionVolume(). TSpeciesName currentspecies. TMaterial TMaterial TMaterial TMaterial * * * * mat. Pr.ck. height // temp and pressure TAllSpecies * crc. TChemistry * avgchem.alphaik. dY.cj. TMaterial * ij. double alphaij.Ljk. ijmat. TAllSpecies * allspecies). double dDdX(). int SetConstants(TSpeciesName name.P.betaij. .*j.Mx.

delt). bkj(). double Cj(double delt). delt). double double double double double double double double double Bii(double Bij(double Bik(double Bji(double Bjj(double Bjk(double Bki(double Bkj(double Bkk(double delt). delt). #endif . Jijy(). double double double double double double double double double bii(). Jiky(). delt). bik(). double I(). bki(). bjk(). Jjkx(). double K(). bij(). Jikx(). double Ci(double delt). delt). Jjky(). }. bji(). bjj(). delt). delt). double Jx(). double double double double double double Jijx().496 double dDdY(). delt). double J(). double Jy(). double Ck(double delt). bkk().

+ Kxy ---. theta Kt != 0.+ Ky ---. Inputs: Each element is initialized by a call to TSolutionVolume(. Heat Transfer. and k must be valid pointers to NodeInfos.j.. The coefficients for each element can be manipulated externally. Those pointers must remian valid.+ Mx -. solver.= Kx ---. and k must be arranged counterclockwise in space when viewed from _above_ the xy plane. i.c /*************************************************************************** FEM.) i. The code handles creating elements and generating matrix values for the general differential equation: dE d^2E d^2E d^2E dE dE Kt -. theta Kt != 0.5 => => => => steady state solution fully implicit fully explicit Crank-Nicholson All references to "Allaire" refer to the book "Basics of the Finite Element Method: Solid Mechanics..C. theta Kt != 0. theat = = = = 1 1 0 .C Programmed by: Kevin Stewart Date Last Modified: 9/20/95 Summary: This program is an object-oriented implementation of two-dimensional finite elements with weighted explicit/implicit time-stepping.+ My-. theta and Kt should not vary from element to element Outputs: Calls to the proper functions will return the values for the matrices B and C | Bii Bij Bik | |Tim| |Ci| | Bji Bjj Bjk | * |Tjm| = |Cj| | Bki Bkj Bkk | |Tkm| |Ck| Notes on Use: Kt = 0. since the code keeps the pointer instead of internally storing the information.497 Appendix N: fem. since they are public variables.j. and .+ PE + Q dt dx^2 dxdy dy^2 dx dy The completed matrix is assembled and solved in a different piece of code.

Allaire [B] = theta * [Bx] + [Bt] [C] matrix.20. not elements -but Q evaluated at center of element grad phi can be calculated for simplex elements from position and value of vertexes Can entire equation be multiplied by 1000 etc. p 547 Allaire [Cx] found in Figure 9. p 591. Allaire [C] = Cx . Iowa 1985 Time stepping: [B] matrix found according to eq 16.498 Fluid Mechanics" by Paul E. Brown Publishers Dubuque.concentrations are properties of nodes. don't need to keep old Concentrations need some if statement at beginning of procedures for E vs C and species .38. Allaire Wm. eq.to cancel) Need oldE probably for stability. Kx=kappa?) E. C. 16.(1-theta)[Bx]*[Tm] + [Bt]*[Tm] [Bx] found in equation 15.. w/o messing things up? Does time scale Rule for delta t ( A *Kt / 10 * kx) Need routine(in different piece of code) to determine if stuff has stopped changing purely relative changes might not work unless really small delta( maybe print out metric for a series of steps) possible metrics sum of delta/old (purposefully allow +.11 p 331 Allaire [Bt] _derived_ according to equation top of page 584 Allaire using Mathematica Ideas: time stepping in pseudotime can be used to find potential distributions express terms of equation in physical terms now? (Q= J/h.37.

C calls on fem. one for each species .ci.cj. the active site moves right near the mouth .kappa. bi.Grad PHI term stable after step one is done ( within each element. ui.multiple tiny timesteps when only Ji changes .499 Random thought about IR* model In tight crevices. wouldn'y have to do? .maybe include some grad phi stuff In each element. h stay same 2) Find delta Ci's .bk. A all fixed as long as locations of i. have to be recalculated once species changes all species change Gead PHI recaluclated To Do: work out how to call electrical vs chemcial (and species) Solve in solver.single tiemsteps.C to build arrays .Maybe if steps small enough.ck.almost all of the crevice will just be at the open circuit 12/15 Implementing MigDiff Use 1) Find Grad Phi . for all species) 3) Reconciliation step for charge neutrality .k vertices are stable Mass XPort Terms Kx = Ky = -Di Kxy = 0 Mx = My = -zi F ui GradPHI P = 0 Q = Ri Kt = 1 Potential Kx = Ky = kappa h Kxy = 0 Mx = My = 0 P = 0 Q = Ji Kt = 1 In Mass Xport Di.j.bj.

NodeInfo *nodek.cj. TMaterial * jk. Kx.H" TSolutionVolume::TSolutionVolume() { } /**************************************************************************** TSolutionVolume: This is the constructor for this class. NodeInfo *nodej. = ij. = jk.bj. 0. TMaterial * ij. => memory leak via avgchem Also => Big problems if nodes have different numbers of species ****************************************************************************/ TSolutionVolume::TSolutionVolume(NodeInfo *nodei. = ik. double height. material. TAllSpecies * allspecies) { i = nodei. // Set the degree of explicitness(0) or implicitness(1) // This really should always be 1 if the diff eq is in std form // Diffusion terms // Hard to envision aqueous system where Kx!=Ky (liquid crystal) // Migration terms theta = 1. // Grab pointers to vertices for later use j = nodej.ck and A based on coordinates of vertices // ?? Move to separate procedure if element splitting is required . This procedure should only be called once. 0. // load avgchem with the right species // Set the value of avgchem to the proper average of the nodal values SetChemistry().500 Find. 0. 1.bk ci. // initialize the pointer to avgchem to ensure proper number of species avgchem = new TChemistry(i->chem). Kt Kx Ky Kxy Mx My P = = = = = = = 0. k = nodek. crc = mat = ijmat ikmat jkmat allspecies. TMaterial * material. TMaterial * ik. look at really old stuff to incorporate the D u etc ****************************************************************************/ //line 70 #include "fem. // Find bi. 0.

} dY = fabs(bi). // these 6 terms used in Bx. p. also to find A Lij = sqrt(bk*bk + ck*ck). bj = k->dbY . if (dY < fabs(bj)) {dY = fabs(bj).501 // Formulas pulled from Allaire. } if (dX < fabs(ck)) {dX = fabs(ck).i->dbX.41 ?? bi = j->dbY .j->dbY. } if (dY < fabs(bk)) {dY = fabs(bk). A = (bi*cj . ci = k->dbX . Mass XPort Terms Kx = Ky = Di Kxy = 0 Mx = My = zi F ui GradPHI P = 0 Q = Ri .i->dbY. h = height. bk = i->dbY .y dX = fabs(ci). Lik = sqrt(bj*bj + cj*cj). Ljk = sqrt(bi*bi + ci*ci). if (dX < fabs(cj)) {dX = fabs(cj). } } /************************************************************************ SetConstants: 1/15/96 This function adjusts the values of the constants based on if the fem is to be done on current (name=="electrical") or chemical species.k->dbY. cj = i->dbX . //height of crevice in meters // find the width and height of element // there are probably better ways of finding the derivates wrt x.bj*ci)/2.k->dbX. ck = j->dbX .j->dbX.

0) {Kx = h * crc->kappa(T.502 Kt = 1 Scaling Scale on Kx From Nernst-Einstein Kx = -D=-uRT => Kx = -2500u But Mx = (1) (1e5) (GradPhi) u min Grad Phi 1mV/1cm = . Kt = Kt*h. //these two variables determine the method time-stepping kt=0. double kt. double th) {double Pex. Pr = avgchem->GetConcentration("pressure"). k->iFixed = k->chem->GetFixed(currentspecies). currentspecies = name. double a. th=1 is steady state Kt = kt. if (StringsEqual(name. j->iFixed = j->chem->GetFixed(currentspecies).1 V/m Potential Kx = Ky = kappa h Kxy = 0 Mx = My = 0 P = 0 Q = Ji Kt = 1 Scaling Scale on Kx (nonzero) ************************************************************************/ int TSolutionVolume::SetConstants(TSpeciesName name.Pr.//have to account for multiplying through by h i->iFixed = i->chem->GetFixed(currentspecies). theta = th. double E.b.c. // Set the value of avgchem to the proper average of the nodal values SetChemistry().avgchem)."electrical")) {a = dEdX(). if (fabs(a) > 0. Pey. T = avgchem->GetConcentration("temperature"). } .// * (1 + dDdX()/a ).

// * (1 + dDdY()/b ).T. // Hard to envision aqueous system where Kx!=Ky (liquid = 0. alphajk = 0. = 0.Pr.T.T. betaik = 0.Pr. //Mx. //This sets the alpha and beta boundary condition for the model at each point if(ijmat != NULL) {E = (i->chem->GetConcentration("electrical") + j->chem->GetConcentration("electrical"))/2. // Diffusion terms = Kx.Pr.avgchem). betajk = 0.T.avgchem).avgchem)*(dEdX()-dDdX()).otherwise alphaij = (fabs(bk) * Mx + fabs(ck) * My)/Lij. } else {Ky = h * crc->kappa(T. //Ky = Kx.Pr. } Kxy Mx My P } else {Kx Ky crystal) Kxy = 0. if (fabs(b) > 0.0) {Ky = h * crc->kappa(T.avgchem). } . betaij = 0. // Hard to envision aqueous system where Kx!=Ky (liquid crystal) b = dEdY().503 else {Kx } = h * crc->kappa(T.Pr. = 0. alphaik = 0. = 0. = 0. P } alphaij = 0.E. betaij = h * ijmat->GetNetCurrentDensity(avgchem.avgchem)*(dEdY()-dDdY()). if (StringsEqual(currentspecies. Migration terms My = h*crc->z(name)*F*crc->u(name.avgchem).Pr). //There are no first-order terms for electrical = h * crc->D(name. // Mx = h*crc->z(name)*F*crc->u(name."electrical")) {alphaij = 0. My = 0 for electrical .P.

E. } } // check for stability Peclet number in x and y directions Pex = Mx*dX/Kx.E. //Mx. Ky = %lg. if (StringsEqual(currentspecies. if (StringsEqual(currentspecies. Pey = %lg.Pey).T.E.Pr).Pr).Ky.Ky."electrical")) {alphajk = 0. dY = %lg.ck.avgchem. betaik = h * ikmat->GetNetCurrentDensity(avgchem.cj. Pex. k->dbY). betajk = -h*jkmat->GetChemicalFlux(currentspecies. betajk = h * jkmat->GetNetCurrentDensity(avgchem. // This section prints out information about the conditions that caused the peclet instability if((fabs(Pex) > 2) || (fabs(Pey) > 2)) {printf("Pex = %lg.dY.otherwise alphaij = (fabs(bj) * Mx + fabs(cj) * My)/Lik. //Mx.Pr).otherwise alphajk = (fabs(bi) * Mx + fabs(ci) * My)/Ljk. } } if(jkmat != NULL) {E = (j->chem->GetConcentration("electrical") + k->chem->GetConcentration("electrical"))/2.T. dy = %lg Ky = %lg. My = 0 for electrical .E.i->dbX. My = %lg (ci. j->dbY.ci.j->iNodeId. Pey = %lg \n".avgchem. k->dbX. printf("\nMy = %lg. printf("ix %lg iy %lg jx %lg jy %lg kx %lg ky %lg\n". dX.cj. Pey = My*dY/Ky.T. } } if(ikmat != NULL) {E = (i->chem->GetConcentration("electrical") + k->chem->GetConcentration("electrical"))/2.k->iNodeId.T.Pr).504 else {alphaij = -((bk) * Mx + (ck) * My)/Lij.My.j->dbX.avgchem. %d % d %d dX = %lg."electrical")) {alphaik = 0.E.My. } . dY.i->iNodeId.T. My = 0 for electrical . betaik = -h * ikmat->GetChemicalFlux(currentspecies. // The M terms already incorporate h betaij = -h*ijmat->GetChemicalFlux(currentspecies.ck) %lg %lg %lg dEdY()%lg\n".i->dbY.Pr). Pey. dEdY()). } else {alphajk = -((bi) * Mx + (ci) * My)/Ljk. } else {alphaik = -((bj) * Mx + (cj) * My)/Lik.

.icount<avgchem->size. } } /************************************************************************ dEdX eq 3.conc). //unstable } else {return(1). TSpeciesName name. avgchem->SetConcentration(name. //stable } } /************************************************************************ SetChemistry This procedure set the average chemistry of the entire element. double conc. return(dedx). } double TSolutionVolume::dEdY() {double dedy. for(icount=0. conc = (i->chem->GetConcentration(name) + j->chem->GetConcentration(name) + k->chem->GetConcentration(name))/3.24-25 p45 Allaire dT/dx dT/dy 1 = -2A [bi [ [ci bj cj bk] ] ck] [ Ti ] [ Tj ] [ Tk ] * Need to multiply by (-1) to translate E to phi ************************************************************************/ double TSolutionVolume::dEdX() {double dedx.505 if ((fabs(Pex)>2) || (fabs(Pey)>2)) {return(0). dedx = -(bi * i->chem->GetConcentration("electrical") + bj * j->chem->GetConcentration("electrical") + bk * k->chem->GetConcentration("electrical"))/(2*A). dedy = -(ci * i->chem->GetConcentration("electrical") + cj * j->chem->GetConcentration("electrical") + ck * k->chem->GetConcentration("electrical"))/(2*A).icount++) {name = avgchem->names[icount]. It averages the concentrations from each node of each species ************************************************************************/ void TSolutionVolume::SetChemistry() {int icount.

} /************************************************************************ dDdX: Calculates the gradient of the diffusion potential in the X direction in V/m ************************************************************************/ double TSolutionVolume::dDdX() {double dddx = 0. return(dcdx).icount < avgchem->size. } double TSolutionVolume::dCdY() {double dcdy. } . dcdy = (ci * i->chem->GetConcentration(currentspecies) + cj * j->chem->GetConcentration(currentspecies) + ck * k->chem->GetConcentration(currentspecies))/(2*A).avgchem)*dCdX(). dcdx = (bi * i->chem->GetConcentration(currentspecies) + bj * j->chem->GetConcentration(currentspecies) + bk * k->chem->GetConcentration(currentspecies))/(2*A). oldcurrentspecies = currentspecies. } /************************************************************************ dCdX eq 3.P.icount++) {currentspecies = avgchem->names[icount]. int icount. TSpeciesName oldcurrentspecies.506 return(dedy). return(dcdy). //save the condition before this procedure runs for(icount=0.24-25 p45 Allaire dT/dx dT/dy 1 = -2A [bi [ [ci bj cj bk] ] ck] [ Ti ] [ Tj ] [ Tk ] * NOTE: depends on currentspecies to figure out which species to return ************************************************************************/ double TSolutionVolume::dCdX() {double dcdx.T. dddx = dddx + crc->z(avgchem->names[icount])*crc->D(avgchem->names[icount].

z F u C dE/dY Electrical V = IR I = dV / R R = rho L / A I = dV A / rho L I = A kappa dV / dX A = h w I/w = h kappa dV / dX Returns value in units of flux/length for use in Jijx etc ************************************************************************/ double TSolutionVolume::Jx() {double jx. currentspecies = oldcurrentspecies. currentspecies = oldcurrentspecies.D dC/dX .avgchem).P. } /************************************************************************ dDdY: Calculates the gradient of the diffusion potential in the Y direction in V/m ************************************************************************/ double TSolutionVolume::dDdY() {double dddy = 0.avgchem). oldcurrentspecies = currentspecies. return(dddx).507 dddx = dddx * F / crc->kappa(T.D Grad C .T. .icount++) {currentspecies = avgchem->names[icount].D dC/dY .icount < avgchem->size.z F u C dE/dX Jy = .avgchem)*dCdY(). TSpeciesName oldcurrentspecies.z F u C Grad E Jx = . } /************************************************************************ Jx: Uses: currentspecies name to choose species temperature (set in Set Constants) pressure (set in SetConstants) Chemical J = . int icount. return(dddy). //save the condition before this procedure runs for(icount=0.Pr.Pr. dddy = dddy + crc->z(avgchem->names[icount])*crc->D(avgchem->names[icount]. } dddy = dddy * F / crc->kappa(T.

See above ************************************************************************/ double TSolutionVolume::Jy() {double jy.avgchem) * dCdY() . } /************************************************************************ Jijx .iy) j^ ************************************************************************/ double TSolutionVolume::Jijx() .avgchem) * dCdX() ."electrical")) {jy = dEdY() * crc->kappa(T.Pr. if(StringsEqual(currentspecies.avgchem) * avgchem->GetConcentration(currentspecies) * dEdX().ix) i^ + (jy . } else {jx = . Jij is in the same direction as J (= Jx i^ + Jy j^) See document "Flux" expression for magnitude of flux J (c i^ + d j^) across line segment l (a i^ + b j^) is |(bc . } return(jx).crc->z(currentspecies) * F * crc->u(currentspecies.T.avgchem) * h. } else {jy = . jx = jx * h."electrical")) {jx = dEdX() * crc->kappa(T.Pr.iy) TO j (at jx.return the x component of the total flux crossing the ij side of the element Jij = Jijx + jijy Units in flux.jy) l = (jx .508 if(StringsEqual(currentspecies.avgchem) * h.T.Pr.avgchem) * avgchem->GetConcentration(currentspecies) * dEdY().crc->D(currentspecies.crc->z(currentspecies) * F * crc->u(currentspecies. jy = jy * h. } return(jy).crc->D(currentspecies.Pr.ad)| and its direction is in the unit vector of J (c i^ + d j^) / ( sqrt(c^2 + d^2) ) the vector representing the line segment is from i (at ix.Pr.T. } /************************************************************************ Jy .Pr.T.

// find the vector for the line segment a = j->dbX .b. // find the vector for the line segment a = k->dbX . b = j->dbY . jikx = fabs(b * c .i->dbY. // find the vector for the line segment a = j->dbX .d. jikx.i->dbY. d = Jy(). return(jijx).509 {double a.c.i->dbX. d = Jy(). // find the vecotr for the flux c = Jx(). d = Jy(). // find the vector for the line segment a = k->dbX . // find the vector for the flux c = Jx(). jijy = fabs(b * c . } double TSolutionVolume::Jijy() {double a. return(jijy).c. jijx = fabs(b * c .d.i->dbX.d.i->dbX. jiky. b = k->dbY . b = j->dbY .i->dbX. // find the vector for the flux .c.d.c.a * d) * c / (sqrt(c*c + d*d)).b. jijx.i->dbY. } double TSolutionVolume::Jiky() {double a.a * d) * c / (sqrt(c*c + d*d)). b = k->dbY . // find the vector for the flux c = Jx().i->dbY.b. jijy.b. return(jikx).a * d) * d / (sqrt(c*c + d*d)). } double TSolutionVolume::Jikx() {double a.

510 c = Jx(). d = Jy(). jjkx. jjky = fabs(b * c . // find the vecotr for the flux c = Jx(). // find the vector for the line segment a = k->dbX .j->dbX. return(jjkx). } double TSolutionVolume::K() . d = Jy(). // find the vector for the flux c = Jx(). return(val).d. return(jjky). val = i->oldchem->GetConcentration(currentspecies).d. } double TSolutionVolume::Jjky() {double a. d = Jy().j->dbY. jjky.c.j->dbX. return(val).b.a * d) * d / (sqrt(c*c + d*d)). return(jiky).a * d) * d / (sqrt(c*c + d*d)).a * d) * c / (sqrt(c*c + d*d)). } double TSolutionVolume::I() {double val. } double TSolutionVolume::J() {double val.b. jiky = fabs(b * c . b = k->dbY . } double TSolutionVolume::Jjkx() {double a. jjkx = fabs(b * c .j->dbY. // find the vector for the line segment a = k->dbX . val = j->oldchem->GetConcentration(currentspecies). b = k->dbY .c.

a0.a7.a9.J.(Mx*bk + My*ck)/6 .(Mx*bi + My*ci)/6 .a8.a2.a3. return(val).exp.a10. val = k->oldchem->GetConcentration(currentspecies).(Mx*bj + My*cj)/6 . } double TSolutionVolume::bik() {double bik. } double TSolutionVolume::Q() {double E.a5.E. bij = (Kx*bi*bj + Kxy*(bi*cj + bj* ci)/2 + Ky*ci*cj)/ (4*A) .511 {double val."electrical")) {J = -mat->GetNetCurrentDensity(avgchem.(P*A)/12 + (alphaij * Lij)/6.T. } else {J = mat->GetChemicalFlux(currentspecies.T.Pr). bii = (Kx*bi*bi + Kxy*bi*ci + Ky*ci*ci)/ (4*A) . return(bij).(P*A)/6 + (alphaij * Lij)/3 + (alphaik * Lik)/3.a1. return(bii).E. } double TSolutionVolume::bii() {double bii. } double TSolutionVolume::bij() {double bij. E = (i->chem->GetConcentration("electrical") + j->chem->GetConcentration("electrical") + k->chem->GetConcentration("electrical"))/3.a6.a4.avgchem. } return(J).Pr). if (StringsEqual(currentspecies. bik = (Kx*bi*bk + Kxy*(bi*ck + bk* ci)/2 + Ky*ci*ck)/ (4*A) .

bjk = (Kx*bj*bk + Kxy*(bj*ck + bk* cj)/2 + Ky*cj*ck)/ (4*A) .(P*A)/12 + (alphaij * Lij)/6. bki = (Kx*bk*bi + Kxy*(bk*ci + bi* ck)/2 + Ky*ck*ci)/ (4*A) . } double TSolutionVolume::bjj() {double bjj. bji = (Kx*bj*bi + Kxy*(bj*ci + bi* cj)/2 + Ky*cj*ci)/ (4*A) . return(bki).(P*A)/12 + (alphaik * Lik)/6.(P*A)/12 + (alphaik * Lik)/6. return(bjk). return(bji). bjj = (Kx*bj*bj + Kxy*bj*cj + Ky*cj*cj)/ (4*A) .512 .(Mx*bk + My*ck)/6 . } double TSolutionVolume::bjk() {double bjk. return(bik).(Mx*bj + My*cj)/6 .(Mx*bi + My*ci)/6 . } double TSolutionVolume::bji() {double bji. return(bjj).(P*A)/6 + (alphaij * Lij)/3 + (alphajk * Ljk)/3.(P*A)/12 + (alphajk * Ljk)/6.(Mx*bi + My*ci)/6 . } double TSolutionVolume::bki() {double bki. } .

. } double TSolutionVolume::bkk() {double bkk. Bij = Bij + Kt * A / (delt * 12). } double TSolutionVolume::Bik(double delt) {double Bik. return(bkj). Bik = theta * bik().(P*A)/6 + (alphaik * Lik)/3 + (alphajk * Ljk)/3.513 double TSolutionVolume::bkj() {double bkj.(Mx*bj + My*cj)/6 . Bik = Bik + Kt * A / (delt * 12).(Mx*bk + My*ck)/6 . Bij = theta * bij(). bkk = (Kx*bk*bk + Kxy*bk*ck + Ky*ck*ck)/ (4*A) .(P*A)/12 + (alphajk * Ljk)/6. return(bkk). bkj = (Kx*bk*bj + Kxy*(bk*cj + bj* ck)/2 + Ky*cj*ck)/ (4*A) . return(Bik). } double TSolutionVolume::Bii(double delt) {double Bii. Bii = Bii + Kt * A / (delt * 6). Bii = theta * bii(). } double TSolutionVolume::Bij(double delt) {double Bij. return(Bii). return(Bij).

Bji = theta * bji(). Bjk = Bjk + Kt * A / (delt * 12). Bki = Bki + Kt * A / (delt * 12). } double TSolutionVolume::Bjk(double delt) {double Bjk. } double TSolutionVolume::Bkj(double delt) {double Bkj. . return(Bji). return(Bki). Bji = Bji + Kt * A / (delt * 12).514 } double TSolutionVolume::Bji(double delt) {double Bji. return(Bjk). Bkj = theta * bkj(). } double TSolutionVolume::Bki(double delt) {double Bki. Bkj = Bkj + Kt * A / (delt * 12). Bki = theta * bki(). Bjj = Bjj + Kt * A / (delt * 6). Bjj = theta * bjj(). } double TSolutionVolume::Bjj(double delt) {double Bjj. return(Bjj). Bjk = theta * bjk(). return(Bkj).

515 } double TSolutionVolume::Bkk(double delt) {double Bkk. nK=K(). } double TSolutionVolume::Ci(double delt) {double Ci. double nI.betaij* Lij/2 .nK. // {Bt} * {Tm} return(Cj). nI= I().betaij* Lij/2 . } double TSolutionVolume::Cj(double delt) {double Cj.nK. nJ=J().betajk*Ljk/2. Cj = Q()*A/3 .(1-theta) * (bji()*I()+bjj()*J()+bjk()*K()). // {Cx} // [Bx] * [Tm] Cj = Cj . } double TSolutionVolume::Ck(double delt) . // {Cx} // [Bx] * [Tm] Ci = Ci . // {Bt} * {Tm} return(Ci). nI= I().nJ. double nI. nJ=J(). return(Bkk).nJ. Bkk = Bkk + Kt * A / (delt * 6).(1-theta) * (bii()*I()+bij()*J()+bik()*K()). nK=K().betaik*Lik/2. Bkk = theta * bkk(). Ci = Ci + (Kt * A * nI)/ (delt * 6) + (Kt * A * nJ)/ (delt * 12) + (Kt * A * nK)/ (delt * 12). Ci = Q()*A/3 . Cj = Cj + (Kt * A * nI)/ (delt * 12) + (Kt * A * nJ)/ (delt * 6) + (Kt * A * nK)/ (delt * 12).

nJ=J().betaik*Lik/2.nK. // {Bt} * {Tm} return(Ck). } .betajk* Ljk/2 . nI= I().nJ. Ck = Q()*A/3 . double nI. Ck = Ck + (Kt * A * nI)/ (delt * 12) + (Kt * A * nJ)/ (delt * 12) + (Kt * A * nK)/ (delt * 6). // {Cx} // [Bx] * [Tm] Ck = Ck .(1-theta) * (bki()*I()+bkj()*J()+bkk()*K()). nK=K().516 {double Ck.

H" #endif #ifndef __TASPECIE_H #include "taspecie. int iNumOfElements.h #ifndef __SOLVER_H #define __SOLVER_H #ifndef __STRING_H #include <string. int iNumOfNodes.H" #endif #ifndef __TCHEM_H #include "tchem.H" #endif #ifndef __TALLSPEC_H #include "tallspec. TSpeciesName name). TSpeciesName name). #endif . int iNumOfElements).H" #endif void Print(int iNumOfNodes. int iNumOfNodes. void SetOldChem(NodeInfo * nodes[6000]. int iNumOfNodes). char name[80]. void NeutralizeChargeCl(NodeInfo * nodes[6000]. double AvgDifference(NodeInfo * nodes[6000]. int iNumOfNodes).h> #endif #ifndef __FEM_H #include "fem. NodeInfo *nodes[6000]. TAllSpecies * crc). TAllSpecies * crc). NodeInfo * nodes[6000]. void NeutralizeCharge(NodeInfo * nodes[6000]. void PrintEdge(char name[80].TSolutionVolume * els[3000]). int iNumOfElements. int iNumOfNodes. void Solve(TSolutionVolume * els[3000].h> #endif #ifndef __MATH_H #include <math.517 Appendix O: solver. NodeInfo * nodes[6000]. double time. //void Display(TScreen * tscr. void ChemicalEquilibriaCr(NodeInfo * nodes[6000]. int iNumOfNodes). TSolutionVolume * els[3000].

c /*************************************************************************** SOLVER. int iNumOfElements) {int count. dbold = nodes[count]->oldchem->GetConcentration("electrical").dbold)/dbold. It assembles (by making the appropriate calls to Bxx and Cx) and solves the matrix of nodal values.temp.count<iNumOfElements. sum = 0.C. "TSolutionVolume * els[3000]" is the matrix of all the elements used in the FE formulation. if (fabs(dbnew) < 1e-9) {dbnew = 1e-9. It too should be continuous. oldE probably isn't needed ***************************************************************************/ #include "solver.C Programmed by: Kevin Stewart Date Last Modified: 9/20/95 Summary: This program performs some basic math and i/o functions for test. Outputs: After "Solve" nodes[]->E will contain the values of the field variable. if(temp < 0) {sum = sum .H" // This doesn't work for anything other than potential double AvgDifference(NodeInfo * nodes[6000].518 Appendix P: solver. Inputs: "NodeInfo * nodes[6000]" should be a sequentially numbered contiguous block of all the nodes used in the FE formulation. dbnew. double temp. } else {temp = (dbnew . for(count=0. double dbold. . At the start of the Solve procedure the variables nodes[x]->E should contain the value of the field variable at the end of the last timestep. sum.count++) {dbnew = nodes[count]->chem->GetConcentration("electrical").

TSpeciesName species) {FILE * out.els[7]->Jijy()). nodes[count]->dbY.els[6]->Jijx()."6 %lg %lg\n".els[34]->Jijy()). fprintf(out.els[8]->Jijx(). fprintf(out. fprintf(out.519 } else {sum = sum + temp. fprintf(out.dbold).nodes[count]->dbX.TSolutionVolume * els[3000]) {FILE * out. } } } sum = sum / iNumOfElements.els[7]->Jijx(). fprintf(out."8 %lg %lg\n"."33 %lg %lg\n".els[3]->Jijy()).els[33]->Jjky()).els[1]->Jijx(). fprintf(out. for(count=0."5 %lg %lg\n". } fclose(out). fprintf(out. NodeInfo *nodes[6000]. fprintf(out."3 %lg %lg\n".els[1]->Jijy()).els[3]->Jijx()."w").els[33]->Jjkx(). fprintf(out."1 %lg %lg\n"." %d %lg %lg %lg %lg \n". int count. int icount. } void Print(int iNumOfNodes. double dbold.els[5]->Jijx(). .els[8]->Jijy())."42 %lg %lg\n".els[16]->Jijx(). fprintf(out.els[0]->Jijx()."16 %lg %lg\n".els[16]->Jijy()).count++) {dbnew = nodes[count]->chem->GetConcentration(species). fprintf(out."0 %lg %lg\n". out = fopen(name.els[42]->Jjky()). dbnew. out = fopen(name.els[34]->Jijx()."7 %lg %lg\n". char name[80].els[5]->Jijy()).els[6]->Jijy()).els[42]->Jjkx()."34 %lg %lg\n". fprintf(out. dbold = nodes[count]->oldchem->GetConcentration(species).els[0]->Jijy()).count<iNumOfNodes. return(sum). dbnew."w").count. } /* This code prints out an edge for elsq8 */ void PrintEdge(char name[80].

count<iNumOfNodes.amt).count++) {amt = nodes[count]->chem->GetConcentration("K+") + nodes[count]->chem->GetConcentration("Ag+").els[13]->Jijx(). fprintf(out.els[15]->Jijx(). } } void ChemicalEquilibriaCr(NodeInfo * nodes[6000].count++) {nodes[count]->oldchem->CopyChemistry(nodes[count]->chem). } } void NeutralizeChargeCl(NodeInfo * nodes[6000]. double amt. for(count=0. TSpeciesName Clm. Clm = "Cl-". fprintf(out. nodes[count]->chem->SetConcentration("Cl-". fprintf(out.amt).els[13]->Jijy()). nodes[count]->oldchem->SetConcentration("NO3-".els[40]->Jjkx(). ."40 %lg %lg\n".els[15]->Jijy()).amt).els[40]->Jjky())."14 %lg %lg\n".count++) {if(!nodes[count]->chem->GetFixed(Clm)) {amt = crc->ChargeDensity(nodes[count]->chem)."2 %lg %lg\n". for(count=0. int iNumOfNodes. fprintf(out. nodes[count]->chem->SetConcentration("NO3-".els[2]->Jjky()). amt = (amt+F*dbPrevCl)/F.els[2]->Jjkx(). double amt. } } } void SetOldChem(NodeInfo * nodes[6000].count<iNumOfNodes. for(count=0.count<iNumOfNodes."13 %lg %lg\n". fclose(out). int iNumOfNodes.els[14]->Jijy()).els[14]->Jijx(). int iNumOfNodes) {int count. TAllSpecies * crc) {int count.520 fprintf(out."15 %lg %lg\n". TAllSpecies * crc) {int count. int iNumOfNodes) {int count. dbPrevCl. dbPrevCl = nodes[count]->chem->GetConcentration(Clm). } void NeutralizeCharge(NodeInfo * nodes[6000].

B[els[count1]->k->iNodeId][els[count1]->i->iNodeId] = B[els[count1]->k->iNodeId][els[count1]->i->iNodeId] + els[count1]->Bki(time). B[els[count1]->k->iNodeId][els[count1]->j->iNodeId] = B[els[count1]->k->iNodeId][els[count1]->j->iNodeId] + els[count1]->Bkj(time). B[els[count1]->i->iNodeId][els[count1]->k->iNodeId] = B[els[count1]->i->iNodeId][els[count1]->k->iNodeId] + els[count1]->Bik(time). B[els[count1]->j->iNodeId][els[count1]->k->iNodeId] = B[els[count1]->j->iNodeId][els[count1]->k->iNodeId] + els[count1]->Bjk(time). // Zero out matrices for(count1=0.count++) {crc->CrEquilibria(nodes[count]->chem). B[els[count1]->j->iNodeId][els[count1]->i->iNodeId] = B[els[count1]->j->iNodeId][els[count1]->i->iNodeId] + els[count1]->Bji(time).count1++) { B[els[count1]->i->iNodeId][els[count1]->i->iNodeId] = B[els[count1]->i->iNodeId][els[count1]->i->iNodeId] + els[count1]->Bii(time). double time.TSpeciesName name) { double B[2000][2000]. B[els[count1]->j->iNodeId][els[count1]->j->iNodeId] = B[els[count1]->j->iNodeId][els[count1]->j->iNodeId] + els[count1]->Bjj(time). // num of nodes double C[2000]. temp3. } C[count1] = 0. } //notation on matrices is [down][over] for(count1=0. // num of nodes double temp2. } } void Solve(TSolutionVolume * els[3000]. int iNumOfElements.count<iNumOfNodes. C[els[count1]->j->iNodeId] = C[els[count1]->j->iNodeId] + els[count1]->Cj(time). // Debugging Variable // TSolutionVolume * temps.count1 <iNumOfElements. C[els[count1]->i->iNodeId] = C[els[count1]->i->iNodeId] + els[count1]->Ci(time). .count1<= iNumOfNodes.count1++) {for(count2=0. B[els[count1]->k->iNodeId][els[count1]->k->iNodeId] = B[els[count1]->k->iNodeId][els[count1]->k->iNodeId] + els[count1]->Bkk(time). NodeInfo * nodes[6000]. int iNumOfNodes.count2.521 for(count=0. int count1. B[els[count1]->i->iNodeId][els[count1]->j->iNodeId] = B[els[count1]->i->iNodeId][els[count1]->j->iNodeId] + els[count1]->Bij(time).count2<= iNumOfNodes. count2++) {B[count1][count2]=0.

count2++) //Move across this column {B[count1][count2] = B[count1+1][count2].count2++) {B[count1][count2] = B[count1][count2]*1e7. } //Remove Rows for(count1=iThis . temp2=C[count1]. count1<iLast .count2<=iLast. iLast = iNumOfNodes-1.count2<iNumOfNodes.iThis--) {if (nodes[iThis]->iFixed == 1) // Is this a constant element that needs to be removed {for(count1=0 . } C[count1] = C[count1]*1e7. temp2=C[count1].count1<iNumOfNodes. count1<iLast . } // Solve the matrix // First: Pass thru back to front. .count2<=iLast. count1<=iLast .count2++) {B[count2][count1] = B[count2][count1+1]. } } //Remove Columns for(count1=iThis .B[count1][iThis] * nodes[iThis]->chem->GetConcentration(name). count1++) {for(count2=0. removing rows and columns.count1++) {for(count2=0.522 C[els[count1]->k->iNodeId] = C[els[count1]->k->iNodeId] + els[count1]->Ck(time).iThis >= 0. temp3 = B[count1][iThis]. } //Remove the C entry for(count1=iThis . count1++) {C[count1] = C[count1] . } //Scale up matrix for(count1=0. } } // Decrement iLast iLast--. count1<iLast . count1++) {C[count1] = C[count1+1]. and fixing C int iThis. count1++) {for(count2=0. //row number of last spot // Note: pass from back to front to avoid destroying numbering for(iThis= iNumOfNodes-1. iLast.

count1--) { temp =C[count1]. iThis < iNumOfNodes . count1++. count1++) {if((B[iThis][iThis]*B[iThis][iThis] *B[count1][iThis]*B[count1][iThis]) > 1e-600) // Check to see if == 0 {temp = -B[count1][iThis]/B[iThis][iThis]. count2 <= iLast . for(count2=count1+1 . temp = temp . count1<=iLast . temp3 = B[count1][count2]. count2++) {temp2 = C[count2]. } C[count1] = temp/B[count1][count1].C[count1]).count2<=iLast. } for(count2=iThis.count2++) {B[count1][count2] = B[count1][count2] + temp * B[iThis][count2]. //keeps track of unfixed nodes for(iThis = 0 . iThis++) {if(nodes[iThis]->iFixed != 1) // fixed node {nodes[iThis]->chem->SetConcentration(name. for(iThis = 0 . } } } . } } // Back Substitute for(count1=iLast . count1>=0 .523 } } // Solve by Gaussian Elimination // kill down double temp.(temp2 * temp3). } // Grab the nodal values count1 = 0. } C[count1] = C[count1] + temp * C[iThis]. iThis<iLast . iThis++) {for(count1=iThis+1 . } else {temp = 0.

TMaterial * matedge.524 Appendix Q: chemtest.H" "tallspec. long double x.c #include #include #include #include #include #include #include <string.y.h> <math. crc->AddSpecies(foo). double r.H" "tmateria. // kluged way of check EOF. int elnumber. int iNumUsedNodes. foo = new TClm(). Node position.H" "solver. count2. TAllSpecies * crc) { FILE * in.j. int nodenumber. int * iNumOfNodes. NodeInfo * nodes[6500]. TASpecies * foo. char * ch. int * iNumOfElements. char buf[256]. . foo = new TOHm(). will be Null if fgets is unsuccessful int count1. foo = new THp().H" "taspecie.h> "tchem. TChemistry * initchem.z. // Basic variables for I/O FILE * out. TMaterial * mat.k. int temp. // counting variable // Fill crc with the species that will be in this crevice foo = new TKp(). Node connectivity) void setup(TSolutionVolume * els[3250]. crc->AddSpecies(foo).H" // els labell CCW // This function reads the ANSYS-generated test fields to get the mesh information // (Node number. crc->AddSpecies(foo). int i.

foo = new TNipp().0).0.0).0). crc->AddSpecies(foo). foo = new TNap().0. foo = new TPressure(). crc->AddSpecies(foo). initchem->AddSpecies("OH-". //set the initial chemistry initchem = new TChemistry(). initchem->AddSpecies("Cl-". foo = new TCrOHOHOHOHm().0). crc->AddSpecies(foo). foo = new TTemperature(). crc->AddSpecies(foo).0. crc->AddSpecies(foo). foo = new TFepp(). crc->AddSpecies(foo). foo = new TNO3m(). crc->AddSpecies(foo). initchem->AddSpecies("Cr+++".0.525 crc->AddSpecies(foo). mat = new T304Mat(crc). crc->AddSpecies(foo).1e-4. crc->AddSpecies(foo). initchem->AddSpecies("CrOHOHOH".0). initchem->AddSpecies("CrOHOH+". initchem->AddSpecies("CrOHOHOHOH-". crc->AddSpecies(foo).0). foo = new TElectrical(). foo = new TAlppp(). initchem->AddSpecies("CrOH++". foo = new TCrOHOHOH(). crc->AddSpecies(foo).0). matedge = NULL. initchem->AddSpecies("Na+". //new TFooMaterial(crc).1.17. crc->AddSpecies(foo). . foo = new TCrO4mm(). crc->AddSpecies(foo).0). foo = new TCrOHpp().0.17. crc->AddSpecies(foo).0). crc->AddSpecies(foo). initchem->AddSpecies("H+". foo = new TCrOHOHp(). foo = new TCrppp(). foo = new TAgp().

elfile[80]. once to see which nodes are used. sprintf(nofile.0. count1++.0). initchem->AddSpecies("electrical". nodes[count1]->dbY = y. crc->CrEquilibria(initchem). // "nodes" is the ANSYS file // initialize count nodenumber = 0. initchem->AddSpecies("pressure"." %d %lg %lg %lg ". &y. // save the total number of nodes read fclose(in). count1 = 0. // use ch to grab the result of the fgets operation } nodenumber = count1.in). // close "nodes" // now open and pass through "elements" twice."r"). nodes[count1]->oldchem = new TChemistry(initchem).0. nodes[count1]->iUsed = 0.298). double a. printf ("started reading files\n").05).526 initchem->AddSpecies("Fe++"."nopirod2"). initchem->AddSpecies("temperature". } ch = fgets(buf.&temp. nodes[count1]->dbZ = z. in = fopen(nofile. // use ch to grab the result of the fgets operation while(ch != NULL) {// buf[7] is the ones place of the number if((buf[7] >= '0') && (buf[7] <= '9') && (strlen(buf)> 7))// if this line is not one of the "waste" lines {sscanf(buf.in). nodes[count1] = new NodeInfo. ch = fgets(buf.256. &z)."elpirod2"). // The source filenames char nofile[80]. //Initialize to "not used" nodes[count1]->iNodeId = temp. nodes[count1]->chem = new TChemistry(initchem). nodes[count1]->dbX = x.1e5). // a second time to create the elements .256. sprintf(elfile. &x.

out = fopen("elements.nodes[k-1]->iNodeId).&i.matedge.1 els[elnumber-1] = new TSolutionVolume(nodes[i-1]. } ch = fgets(buf. for(count1=0.&k).256.&j.nodes[k-1]. &elnumber. elnumber-1.&i.crc). mat. temp = 0.in). iNumUsedNodes++. nodes[j-1]. } } // Go thru "elements again" creating TSolutionVolumes in = fopen(elfile. nodes[i-1]->iUsed = 1. ch = fgets(buf. while(ch != NULL) {// buf[7] is the ones place of the number if((buf[7] >= '0') && (buf[7] <= '9') && (strlen(buf) > 7)) {sscanf(buf.1e-6."w")."%d %d %d %d %d %d %d %d". ch = fgets(buf.&j.&i."r").256.&i.&i.in).&i.256.txt". // remember that the location of the node is name in file .256."r").count1 < nodenumber.count1++) {if(nodes[count1]->iUsed != 0) {nodes[count1]->iNodeId = iNumUsedNodes. nodes[k-1]->iUsed = 1.&i. fprintf(out.&i. } fclose(in). } . temp++. while(ch != NULL) {// buf[7] is the ones place of the number if((buf[7] >= '0') && (buf[7] <= '9') && (strlen(buf) > 7)) {sscanf(buf.in).matedge.&i."%d %d %d %d %d %d %d %d".&i.nodes[j-1]->iNodeId. } ch = fgets(buf. &elnumber. nodes[j-1]->iUsed = 1.matedge.527 in = fopen(elfile.in).&k). // Renumber the nodes sequentially iNumUsedNodes = 0.nodes[i-1]->iNodeId."%i %i %i %i\n".

} } /////////////////////////////////////////////////////////////////////////// // This section defines the boundary conditions for the relevant shape.rj. for(count1=0. fclose(in). // the potential for this node is fixed nodes[count1]->chem->SetFixed("Na+".1).jy.) {if(nodes[count1]->iUsed == 0) // The reason this works is because ANSYS generated sequentially numbered nodes (although an excess) {delete(nodes[count1]). // the potential for this node is fixed . // the potential for this node is fixed nodes[count1]->oldchem->SetFixed("Na+".1).outer.ri.count1 < iNumUsedNodes.alpha. // the potential for this node is fixed nodes[count1]->oldchem->SetFixed("Cl-". // the potential for this node is fixed nodes[count1]->chem->SetFixed("electrical". for(count2=count1.count2++) {nodes[count2] = nodes[count2+1]. /////////////////////////////////////////////////////////////////////////// double db.kx.inner.ix.1).rk.count1<nodenumber.bottom.count1++) {if (nodes[count1]->dbY < .beta.count2<(nodenumber-1).1). /////////////////////////////////////////////////////////////////////////// // This section condenses the array of nodes and keeps only those used // Can't do earlier have to keep old numbering system until elements are created /////////////////////////////////////////////////////////////////////////// for(count1=0. // the potential for this node is fixed nodes[count1]->oldchem->SetFixed("Cr+++". // the potential for this node is fixed nodes[count1]->chem->SetFixed("Cl-".1).jx. // It sets the potential and/or gradients at some of the nodes.528 fclose(out). } } else {count1++.0000001) // right side {nodes[count1]->oldchem->SetFixed("electrical". /////////////////////////////////////////////////////////////////////////// // ELCOOP1 /////////////////////////////////////////////////////////////////////////// printf("Using boundary conditions for elcoop1 %i\n".1).ky.right.iy.1).left.nodenumber).top.

j. this node is fixed nodes[count1]->oldchem->SetFixed("Fe++".1). int stable.1).1). this node is fixed nodes[count1]->oldchem->SetFixed("CrOH++". double temp3. int iNumOfNodes. int i. . double residual.1).1).1). /////////////////////////////////////////////////////////////////////////// *iNumOfElements = temp. } void main(void) { // setup variables for use in this program int count. this node is fixed nodes[count1]->chem->SetFixed("Fe++". char name[12]. this node is fixed nodes[count1]->oldchem->SetFixed("H+".1). int iNumOfElements. this node is fixed nodes[count1]->chem->SetFixed("CrOH++".count2. char nm[80].1). this node is fixed nodes[count1]->chem->SetFixed("H+". this node is fixed nodes[count1]->chem->SetFixed("OH-".1). node is fixed nodes[count1]->oldchem->SetFixed("OH-". this node is fixed } } // the potential for // the potential for // the potential for // the potential for // the potential for this // the potential for // the potential for // the potential for // the potential for /////////////////////////////////////////////////////////////////////////// // Tidy up variables. NodeInfo * nodes[6500].k. count1. int done = 0.529 nodes[count1]->chem->SetFixed("Cr+++". TSolutionVolume * els[3250]. double temp2. *iNumOfNodes = iNumUsedNodes.

long double time = 1e-2. th = . sprintf(name. sprintf(name.5. //check for Peclet stability for(count=0. // Screen hand holder sprintf(nm. // if have converged to stable E-I .iNumOfNodes.name). &crc). &iNumOfNodes. } els[0]->Kt. } if(!stable) {printf("OOOOOPS NOT STABLE\n").iNumOfNodes). th.time."nO%d.count2.kt. // first find potential gradient time = 1e-6.iNumOfElements."electrical"). TAllSpecies crc.01) // typically .count++) //iniitalize elements for electrical {stable = stable && els[count]->SetConstants(name.els[0]->Mx.els[0]->Kx. Solve(els. // set flag for electrical finieshed to FALSE printf("STARTING ELECTRICAL \n"). printf("Time period %d %s found. while (done != 1) //loop till stable EI {SetOldChem(nodes. //Filename done = 0. &iNumOfElements. printf("to main\n"). if (residual < .count2 < 100.nodes. count2=0.iNumOfNodes).els[0]->Ky. stable = 1.&crc). printf("just solve\n"). \n". name). // set delta t for electrical kt = 1.530 double kt.th).iNumOfNodes). nodes. for(count2=0. NeutralizeChargeCl(nodes."NO3-").els[0]->currentspecies). residual = AvgDifference(nodes. setup(els.count2++) { // Copy the new values to the old to prepare for the next timestep SetOldChem(nodes.count<iNumOfElements.iNumOfNodes.els[0]->My.1 {done = 1.count2).txt". count1=0.

nodes. . printf("starting on %s \n".count<iNumOfElements.". for(count=0. intf("Time period %d %s found. stable = 1.name).name).name).nm).txt"."Na+").name).count2.kt.count1).txt". printf("starting on %s \n". //Filename Print(iNumOfNodes.nodes. sprintf(nm.count++) //initialize elements for Ni++ {stable = stable && els[count]->SetConstants(name. //Filename Print(iNumOfNodes."Cr+++"). // Screen hand holder sprintf(nm. } Solve(els.time. } } } time = 100.iNumOfNodes. strcat(nm.5.name) stable = 1.count++) {els[count]->SetConstants(name. if(count1>60) {done = 1.nm.name).nodes.th).iNumOfElements."el%d. count1++. } // reinitialize the variables for(count=0. name). kt = 1.count2).count1).nm). \n".nm. // set delta t for electrical sprintf(name. printf("%s \n".count2). //write the file sprintf(name.531 printf("Time period %d electrical found.kt.txt"). } else {printf("residual = %lg \n".residual). Print(iNumOfNodes.nm."b%d". // Screen hand holder sprintf(nm. th = . //write the file printf("%s \n".th). } if(!stable) {printf("OOOOOPS NOT STABLE in %s\n". \n".nodes.count<iNumOfElements."na%d.name).

for(count=0.name).count<iNumOfElements.name).iNumOfNodes. } if(!stable) {printf("OOOOOPS NOT STABLE in %s\n"."Fe++").kt. } Solve(els.nodes.nodes.time. sprintf(name. } if(!stable) {printf("OOOOOPS NOT STABLE in %s\n".count<iNumOfElements. // Screen hand holder sprintf(name. stable = 1.els[0]->Ky.nm.532 for(count=0. } printf("Kx value = %lg Ky = %lg %s".name). //Filename Print(iNumOfNodes. . //Filename Print(iNumOfNodes.th)."fe%d. // Screen hand holder sprintf(nm.iNumOfElements.count++) //initialize elements for Ni++ {stable = stable && els[count]->SetConstants(name.nm.name).time."OH-").iNumOfNodes.count2).count++) //initialize elements for Ni++ {stable = stable && els[count]->SetConstants(name.kt.count2.els[0]->Kx.count2. //write the file sprintf(name. \n".nodes. printf("Time period %d %s found."H+").count++) //initialize elements for Ni++ {stable = stable && els[count]->SetConstants(name. name). \n". printf("Time period %d %s found. \n".name). } Solve(els. // Model Al interactions printf("starting on %s \n". name).name). Solve(els. // Model Al interactions printf("starting on %s \n".th).&crc).count2.time. sprintf(name. // Model Al interactions printf("starting on %s \n".name).name). for(count=0.iNumOfElements. stable = 1. } if(!stable) {printf("OOOOOPS NOT STABLE in %s\n". //write the file NeutralizeChargeCl(nodes. name).count2).nodes.kt.els[0]->currentspecies).name)."cl%d."Cl-").txt".nodes.name).iNumOfNodes.count<iNumOfElements.iNumOfElements. printf("Time period %d %s found.name).name).txt". // Screen hand holder sprintf(nm.th). printf("starting on %s \n".iNumOfNodes.

printf("Time period %d %s found. //write the file sprintf(name.txt".name)."CrOHOHOHOH-")."h%d.txt". // Model Al interactions printf("Printing time period %d %s.txt". // Model Al interactions printf("Printing time period %d %s. // Screen hand holder sprintf(nm. name).nm.533 stable = 1.txt". \n".count<iNumOfElements.iNumOfElements.name).iNumOfNodes.count2. name).nodes.iNumOfNodes. //Filename ChemicalEquilibriaCr(nodes. //Filename printf("Time period %d %s found.name)."cr%d.count2). //write the file sprintf(name. Solve(els. // Screen hand holder ."h%d.nm.nm. // Screen hand holder sprintf(nm. //Filename sprintf(nm.name).name). // Screen hand holder sprintf(nm.nodes."CrOHOH+"). \n". \n".nm. //write the file sprintf(name.count2).count2).count2."h%d.count2). //write the file sprintf(name. // Screen hand holder sprintf(nm. //Filename Print(iNumOfNodes.count2.txt". //Filename Print(iNumOfNodes. name)."CrOHOHOH"). for(count=0.th)."Cr+++").txt". //Filename sprintf(nm.nm. \n". //write the file sprintf(name.nodes.els[0]->Kx. //Filename Print(iNumOfNodes.nodes. // Model Al interactions printf("Printing time period %d %s.txt". \n".els[0]->Ky.count2). //Filename Print(iNumOfNodes. } if(!stable) {printf("OOOOOPS NOT STABLE in %s\n".count2).txt".nodes.&crc).count2. // Model Al interactions printf("Printing time period %d %s.kt."cr3h%d. // Screen hand holder sprintf(nm. \n". // Model Al interactions printf("Printing time period %d %s. } printf("Kx value = %lg Ky = %lg %s"."H+").count2).time.name).count2)."cr2h%d. //write the file sprintf(name."h%d.count2).count2)."oh%d. name). // Model Al interactions sprintf(nm. name)."h%d.txt". //Filename sprintf(nm.count2."cr1h%d.nm.count++) //initialize elements for Ni++ {stable = stable && els[count]->SetConstants(name.els[0]->currentspecies).count2). //Filename sprintf(nm.count2. Print(iNumOfNodes. //Filename Print(iNumOfNodes. // Screen hand holder sprintf(nm.nodes."h%d. name). name). \n".name).count2.name)."CrOH++").txt".txt".nodes.

txt".count2). //Filename sprintf(nm.txt". //Filename Print(iNumOfNodes.534 sprintf(nm.nodes."cr4h%d.count2)."h%d.nm.name). //write the file } } .

00 .00000E+00 .00 .00 .87500E-02 .00 .50000E-02 .00 .00 .00000E+00 .00000E+00 .00 .00000E+00 .00 .00000E+00 .00 .00 .00 .00000E+00 .81250E-02 .81250E-02 .00000E+00 .25000E-02 .00000E+00 .00 .00000E+00 .00 .00 .00 .00 .00 .00000E+00 .00 .00000E+00 .00 .00000E+00 .00 .56250E-02 .00 .00 .00 .00000E+00 .00 .00 .62500E-03 .00 .00000E+00 .43750E-02 .00 .00 THXY THYZ .62500E-02 X DSYS= 0 Z .00 .00 .00 .00 .10000E-01 .00000E+00 .00 .00 .37500E-02 .00000E+00 .00000E+00 .00 THYZ THZX .00 .00 .10000E-01 .31250E-02 .00 .00 .00000E+00 .00 .00000E+00 .10000E-01 .00 THZX .68750E-02 .00000E+00 .00000E+00 .00000E+00 .10000E-01 .10000E-01 .535 Appendix R: nosq8 LIST ALL SELECTED NODES.87500E-02 .00 .00000E+00 .00 .00 . NODE 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 NODE 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 NODE X .00 .00 .00 THYZ .00000E+00 .00 .81250E-02 .00 .00 .00 .00 .10000E-01 .00 .00 .00 .00 .50000E-02 .00 .62500E-02 .00 .00000E+00 .00000E+00 .10000E-01 .93750E-02 .00 .10000E-01 .00 .93750E-02 .00 .00 .00 .00000E+00 .00 .00 THXY .00000E+00 .62500E-02 .10000E-01 .00 .00 .00 .00 .00000E+00 .00 THZX Y .10000E-01 .00 .00 .00 .00 .10000E-01 .00000E+00 .00 .00 .00 .00 .00000E+00 .56250E-02 .00000E+00 .00 .00 .18750E-02 .00 .00000E+00 .00 .00000E+00 .12500E-02 Y .12500E-02 .00 .00 .00000E+00 .31250E-02 .00 .00 .10000E-01 .00 .10000E-01 X .00 .00 .10000E-01 .10000E-01 .00000E+00 .10000E-01 Y .00000E+00 .00000E+00 .00000E+00 .00 .93750E-02 .00000E+00 Z .00000E+00 .18750E-02 .10000E-01 .10000E-01 .00 .43750E-02 .10000E-01 .87500E-02 .00 .00 .00000E+00 .75000E-02 .00 .75000E-02 .00000E+00 .10000E-01 .68750E-02 .00 .00 .00 .00 .10000E-01 .00 .10000E-01 .00000E+00 .00000E+00 .00 .00 .00 .00 .00000E+00 .00 .68750E-02 .00 .00 .00 .62500E-03 .00 .00 .00 .00 .00 .25000E-02 .10000E-01 .00 .00 .00000E+00 .00000E+00 Z THXY .00 .10000E-01 .00000E+00 .37500E-02 .00 .00000E+00 .00 .00000E+00 .10000E-01 .00 .00000E+00 .00 .00000E+00 .00000E+00 .00000E+00 .00 .00000E+00 .75000E-02 .00000E+00 .00000E+00 .00000E+00 .

00 .00 .00 .00 .00 .20580E-02 .00000E+00 .00 THYZ .00 .11177E-02 .10211E-02 .00 .00000E+00 .00 .00 .00000E+00 .00000E+00 .89789E-02 .89021E-02 .00000E+00 .68592E-02 .00 .30597E-02 .00 .89175E-02 .31408E-02 .11469E-02 .10000E-01 .00 .10000E-01 .87500E-02 .10892E-02 .00 .00 .00000E+00 .00 .89021E-02 .10000E-01 .00 .79420E-02 .00 .00 .00000E+00 .00 THZX .00 .56250E-02 .11177E-02 .12500E-02 .00 .00 .00 .00000E+00 .00 .00000E+00 .83234E-02 .00 .00 .25000E-02 .00 .56306E-02 .00 .69403E-02 .00000E+00 .00 .00000E+00 .00 .00 .00 .62500E-03 .00 .43750E-02 .00 .10000E-01 .00000E+00 .00 .00000E+00 .00000E+00 .00 .00000E+00 .00 .00 .00 .00 .00000E+00 .50000E-02 .00000E+00 .00000E+00 .00 .00 .00000E+00 .00 .88531E-02 .00 .00 .00 .00000E+00 .00000E+00 .00 .18750E-02 .00 .00000E+00 .89108E-02 .00000E+00 .00000E+00 .00000E+00 .536 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 NODE 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 NODE 81 82 83 84 85 86 87 .00 .43694E-02 .69403E-02 .00 .00000E+00 .00 .00000E+00 .00 .00000E+00 .00 .56424E-02 .00 .00 .00 .00 THXY .00000E+00 .00 .00 .00000E+00 .88823E-02 .00 .00 .00000E+00 .00 .00 .00000E+00 .00 .00 .00 .00 .10825E-02 .00 .43576E-02 .00 .00 THXY .11469E-02 .00000E+00 .00 .00 .88823E-02 .30597E-02 .00000E+00 .00 .00 .00 .00 .00 .00 .00 .00000E+00 .00000E+00 .00 .62500E-02 .00000E+00 .00 .00000E+00 .00 .10979E-02 .00000E+00 .00 .00 .00 .18750E-02 .00000E+00 .89789E-02 .10825E-02 .56250E-02 .00 .00 .89108E-02 .56306E-02 .10000E-01 .00000E+00 .00000E+00 X .00 .00000E+00 .00 .00 .10000E-01 .00 .00 .00000E+00 .00 .62500E-03 .25000E-02 .00000E+00 .10979E-02 .00000E+00 .00 THYZ .00 .00 .00 .00 .31408E-02 Y .00 .10892E-02 X .31250E-02 .00 .00 .00 .00 .00 .00 .00 .37500E-02 .00 .43750E-02 .00000E+00 .00 .00 .00 .00 .31250E-02 Y .00000E+00 .00 .00 .81250E-02 .00 .10000E-01 .00 .00 .00 .00 .00000E+00 .00 .00 THZX .00000E+00 .75000E-02 .00 .00 .50000E-02 .00000E+00 .00 .00000E+00 .00 .93750E-02 .00 .00 .00000E+00 .00000E+00 .56424E-02 .89175E-02 .00000E+00 .00 .68592E-02 .00000E+00 .00000E+00 .00 .68750E-02 .00 .00 .00000E+00 Z .83234E-02 .00000E+00 Z .16766E-02 .00 .00 .00000E+00 .10000E-01 .10000E-01 .16766E-02 .00 .37500E-02 .00 .88531E-02 .00 .43576E-02 .43694E-02 .00 .00000E+00 .79420E-02 .00 .00000E+00 .00 .00 .12500E-02 .00 .

00 .10211E-02 .00 .00 .54893E-03 .00 .31358E-02 .00000E+00 .33233E-02 .00 .00 .00000E+00 .62527E-02 .00 .00 .31399E-02 .00 .00 .00 .44652E-02 .33297E-02 .58680E-02 .00 .00000E+00 .00000E+00 Z .00 .00000E+00 .00 .00000E+00 .21855E-02 X .21322E-02 .00000E+00 .00 .00 .00000E+00 .55403E-02 .00000E+00 .00 .57347E-03 .78145E-02 .00 .00000E+00 Z .60926E-02 .77130E-02 .49998E-02 .49961E-02 .00 .00 .68696E-02 .78674E-02 .00 .00 .53153E-02 .00 .00 .00000E+00 .44600E-02 .00 .00 .66791E-02 .00 .00000E+00 .78021E-02 .00 .00 .00000E+00 .00 .00 .00 .00 .00 .00 .44600E-02 .00 .00000E+00 .00 .14633E-02 .00 .00 .00 .00 .21852E-02 .50098E-02 .00000E+00 .00 .00 .00 .00000E+00 .00 .00000E+00 .23905E-02 .22870E-02 .00 .00000E+00 .50000E-02 .00 .00 .50085E-02 .44654E-02 .00 THZX .00 .78674E-02 .58679E-02 .00000E+00 .60928E-02 .00000E+00 .23905E-02 .00 .00 .76095E-02 .50000E-02 .00 .00000E+00 .37584E-02 Y .00 THYZ .00 THZX .50095E-02 .00 .00000E+00 .00 .00000E+00 .00 .00000E+00 .31360E-02 .41381E-02 X .00 .62500E-03 .00 .00 .39124E-02 .50000E-02 .00 .78145E-02 .46788E-02 .76095E-02 .40538E-02 .00 .00 .00 .00 .00000E+00 .00 .00000E+00 .66724E-02 .62415E-02 .00 .22870E-02 .00 .537 88 89 90 91 92 93 94 95 96 97 98 99 100 NODE 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 NODE 121 122 123 124 125 126 127 128 129 130 131 132 133 134 .55455E-02 .00 .54893E-03 .00 THXY .00 .00 .39133E-02 .20580E-02 .00 .00 .00 .00 .00 .33300E-02 .00000E+00 .41381E-02 .00 .00 .00000E+00 .21326E-02 .00000E+00 .00 .00000E+00 .00 .00 .58755E-02 .58753E-02 .00000E+00 .00 .68698E-02 .00 .34048E-02 .00000E+00 .00000E+00 .00 .00 .00000E+00 .00 .00 .00 .00 .00 .55886E-03 .00000E+00 .57347E-03 .00000E+00 .00 .00 .41307E-02 .55886E-03 .00 .54126E-03 .00 .00 .21977E-02 .00 .00 .00 .00 .00 .00 .00000E+00 .00000E+00 .54126E-03 .55405E-02 .49959E-02 .00 .62500E-03 .00 .00 .68658E-02 .00 .37472E-02 .00 .00 .77130E-02 .78021E-02 .00 .00 .00 .00 .00 .00 .00 .50089E-02 .00 .37473E-02 .00 .00 .00 .00 .00000E+00 .68655E-02 .00000E+00 .59403E-02 .00000E+00 .66792E-02 .00 .00000E+00 .00 THYZ .00 .62527E-02 .00 .00 .27798E-02 .00 .00000E+00 .00 .00 .00 .00 .00000E+00 .00 .37584E-02 .00 .20883E-02 .00 .00000E+00 .00 .41306E-02 Y .33231E-02 .66727E-02 .31401E-02 .00 .55459E-02 .21979E-02 .00 THXY .00000E+00 .00 .00000E+00 .00 .00 .00 .62416E-02 .

00000E+00 .53212E-02 X .00 .00 .00000E+00 .00000E+00 .71796E-02 .00000E+00 .00 .00 .00 .55886E-03 .00 .59462E-02 .00 .51057E-03 .00 THZX .00 .93750E-02 .00 .00 .00 .00000E+00 .00 .00 .00 .00 .00 .00000E+00 .00000E+00 .71796E-02 .00 .00 .00 .00 .00 .00 .54126E-03 .00 .00 .00 .00000E+00 .85367E-02 .00 .00 .94265E-02 .54458E-03 .00000E+00 .00 .94265E-02 .94587E-02 .00000E+00 .00 .00 .83460E-02 .00 .00 .00 .00000E+00 .00000E+00 .00 .00 .00000E+00 .00000E+00 .00 .94511E-02 .00000E+00 .83830E-03 .00 .93750E-02 .00000E+00 .94554E-02 .00 .65952E-02 .59462E-02 .00 .72202E-02 .00000E+00 .34048E-02 .00000E+00 .00000E+00 .00000E+00 .00 .00 .00 .00000E+00 .00 .94894E-02 .00 .00000E+00 .00 .00000E+00 .94411E-02 .00 .00 .94894E-02 .00 .83460E-02 .00 .88015E-02 X .00 .00 .00 .00 THYZ .00 .00000E+00 .40597E-02 .00000E+00 .94554E-02 .00 .00 THXY .00 .00 .00 .00000E+00 .00000E+00 .00 .00 .94411E-02 .00 .00 .54893E-03 .00000E+00 .94411E-02 .00 .93750E-02 .00000E+00 .00 .00 .00 .00 .00 .00 .00 .00000E+00 Z .20883E-02 .00 .00 .00000E+00 .00 .34454E-02 .94511E-02 .00 .00 .00 .00 .65546E-02 .94554E-02 .00000E+00 .00 .65546E-02 .28204E-02 .77210E-02 .00000E+00 .00000E+00 .00 THYZ .00 .00 .00 .00 .94265E-02 .62500E-03 .57347E-03 .54458E-03 .94894E-02 .00000E+00 .00 .94587E-02 .00 .51057E-03 .85367E-02 .00 .00 .77210E-02 .00 .00 .00000E+00 Z .00 .83830E-03 Y .94587E-02 .00 .94265E-02 .11985E-02 .91617E-02 .55886E-03 .00 .40597E-02 .00 .46847E-02 .94587E-02 .94894E-02 .94511E-02 Y .00 .54458E-03 .46847E-02 .00 .00000E+00 .00 .00 .94411E-02 .22790E-02 .00 .00 .00000E+00 .62500E-03 .00 .91617E-02 .00 .00 THXY .79117E-02 .65952E-02 .88015E-02 .00 .53153E-02 .00 .22790E-02 .00 .00 .93750E-02 .54126E-03 .00000E+00 .54458E-03 .79117E-02 .34454E-02 .00000E+00 .00 .00 .54893E-03 .00 .00 .00000E+00 .11985E-02 .00 .00 .00 .00000E+00 .00 .00 .00 .14633E-02 .00 .94511E-02 .00 THZX .28204E-02 .00 .40538E-02 .27798E-02 .59403E-02 .00 .00 .57347E-03 .51057E-03 .00 .00 .00 .53212E-02 .00 .00 .00 .00 .00000E+00 .00 .46788E-02 .00 .72202E-02 .16540E-02 .00000E+00 .00 .00 .00 .00000E+00 .00 .00 .00000E+00 .00 .94554E-02 .538 135 136 137 138 139 140 NODE 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 NODE 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 .

00 .00 .16577E-02 .00 .00 THYZ .82459E-02 .83848E-02 X .00 .00000E+00 Z .00 THZX .83627E-02 Y .00 .00 .00 .00 .00000E+00 .00 .00 .82459E-02 .00000E+00 .00 .00 .00 .00 THXY .00 .00 .00000E+00 .00 .00 .00 .00 .00 .00 .46787E-02 .40524E-02 .73267E-02 .00000E+00 .00 .00 .53212E-02 .74006E-02 .40525E-02 .00 .34035E-02 .00000E+00 Z .65504E-02 .72343E-02 .00000E+00 .00 .00 THZX .00 .89449E-02 .00000E+00 .00 .17541E-02 .62449E-02 .00 .46847E-02 .00 .00000E+00 .00 .00 .37551E-02 .00 .89098E-02 .00 .34496E-02 X .83422E-02 .00000E+00 .00 .83521E-02 .62449E-02 .00000E+00 .00 .00 .00 .00 .00 .10902E-02 .00000E+00 .88922E-02 .53212E-02 Z .16540E-02 .53152E-02 .83660E-02 .83848E-02 .83521E-02 .00 .00 .00 .00 .11078E-02 .00000E+00 .00 .00 .51057E-03 .00 .00000E+00 .00 .00 .00000E+00 .00000E+00 .00 .00 .00 .00 .00 .76319E-02 .00 .40639E-02 .00000E+00 .00 .00 .83924E-02 .16150E-02 .00 .16073E-02 .23681E-02 .00 .00000E+00 .89142E-02 .62914E-02 .00000E+00 .00 .16152E-02 Y .10858E-02 .00 .76319E-02 .00 .00000E+00 .00 .00 .11323E-02 .00 .00000E+00 .00000E+00 .83627E-02 .37086E-02 .00 .00000E+00 .00 .23681E-02 .00000E+00 .65965E-02 .50059E-02 .00 .00 .00 .00 .539 NODE 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 NODE 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 NODE 221 222 223 224 225 226 X .83119E-02 .00000E+00 .00 .88677E-02 .00 .00000E+00 .00 .00000E+00 .88922E-02 .00 .89098E-02 .00 .00000E+00 .00 .00 .00000E+00 .00 .00 .62914E-02 .25994E-02 .26733E-02 .00 .00 .00 .00 .00000E+00 .00 THXY .00 .73267E-02 .00 .37086E-02 .59475E-02 .00 .16478E-02 .00 .00 .00 .00 .65965E-02 .00 .00 THZX .27657E-02 .65503E-02 .00000E+00 .00 .00000E+00 .00 .00 .11078E-02 .00 .00 .00 .72343E-02 .00000E+00 .00 .00000E+00 .00 .46788E-02 Y .00 .83422E-02 .49941E-02 .11323E-02 .16881E-02 .00 .00 .00 .00 .00000E+00 .49941E-02 .00000E+00 .89449E-02 .83660E-02 .00 .00 .00000E+00 .00 .16372E-02 .00 .00 .00 .53153E-02 .00000E+00 .00 .10551E-02 .00 THYZ .59361E-02 .88677E-02 .00 .00 .00 .00 .00000E+00 .00000E+00 .00 .00 .89142E-02 .00 THYZ .00 .16578E-02 .00 .74006E-02 .00 .16339E-02 .83119E-02 .10902E-02 .00 .00 .59360E-02 .50059E-02 .00000E+00 .00 .00 .17541E-02 .00000E+00 .00 .00 .00000E+00 .83924E-02 .00000E+00 .00 .34035E-02 .00 .00000E+00 THXY .00 .00 .26733E-02 .00000E+00 .

00 .00 .78347E-02 .00000E+00 .83975E-02 .30745E-02 .73666E-02 .00 .00000E+00 .00 .00 .19818E-02 .00000E+00 .00 .00 .00000E+00 .00 .16025E-02 .00 .22243E-02 .69255E-02 .16881E-02 .00 .00000E+00 .00 .56206E-02 .00 .00 .00 THXY .00 .00 .00000E+00 .00 .00 .00000E+00 .00 .00 .00 .26360E-02 Y .43735E-02 .71411E-02 .73664E-02 .00 .00 .78347E-02 .00 .80182E-02 .13489E-02 .47300E-02 .69828E-02 .00 .86511E-02 .16373E-02 .00 .00 .00 .00000E+00 .00 .00 .00 .00 THZX .00 .00000E+00 .00 .22941E-02 .00 .00 .00000E+00 .00000E+00 .00 .00000E+00 Z .00 .00000E+00 .00 .00 THYZ .00 .00 .82313E-02 .00 .00 .00 .00 .00 .00000E+00 .00 .22361E-02 .30745E-02 .00000E+00 .73685E-02 .00000E+00 .00 .00000E+00 .00000E+00 .52726E-02 .00 .83460E-02 .21653E-02 .47325E-02 X .00000E+00 .00 .00000E+00 .77058E-02 .00000E+00 .26343E-02 .00 .540 227 228 229 230 231 232 233 234 235 236 237 238 239 240 NODE 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 NODE 261 262 263 264 265 266 267 268 269 270 271 272 273 .00000E+00 .00 .16025E-02 .00 THZX .00 .00 .43792E-02 .00 .00 .00 .00000E+00 .00 .00 .80182E-02 .00 .00 .00 .00 .77638E-02 .00000E+00 .00000E+00 .00 .28051E-02 .00 .13489E-02 .00 .00000E+00 .00 .71961E-02 .59475E-02 .21587E-02 .00 .00 .00000E+00 .00 THXY .00 .00 .00 .00 .00 .00 .00000E+00 .00 .00000E+00 .26364E-02 .00 .00 .28050E-02 .00 .52703E-02 .00 .00000E+00 .00 .00 .00 .27657E-02 .00000E+00 .00000E+00 .00 .00 .43736E-02 .00000E+00 .00 .10551E-02 .00 .16479E-02 .78410E-02 .71409E-02 .00 .00 .69828E-02 .00 .00000E+00 .21590E-02 .00 .73686E-02 .56264E-02 .00 .00 .00 .00000E+00 .00 .00000E+00 .00 .00000E+00 .25994E-02 .00 .00 .83975E-02 .16540E-02 .37551E-02 .00000E+00 .77757E-02 Y .00 .43792E-02 .00 .69255E-02 .21649E-02 .00 .00000E+00 .77058E-02 .30172E-02 .00000E+00 .00 .00 .10858E-02 .00 .00 .26340E-02 .22243E-02 .82313E-02 .00 .52729E-02 .17687E-02 .30171E-02 .47300E-02 .22362E-02 .00 .00 .00 .00 .19818E-02 .86511E-02 .16540E-02 .00000E+00 Z .00 .00 .00 .77757E-02 .00000E+00 .00 .40639E-02 .28603E-02 .00 .00 .00 .00 .78410E-02 .00 .00 .00 THYZ .16340E-02 .28601E-02 .17687E-02 .00000E+00 .00 .00 .47327E-02 .00000E+00 .22942E-02 .00 .00000E+00 .34496E-02 .00 .00 .00 .00000E+00 .00 .00 .00 .00 .00 .00 .83460E-02 X .00 .00 .56264E-02 .71961E-02 .00000E+00 .46847E-02 .56208E-02 .00 .52702E-02 .77638E-02 .16076E-02 .00 .00 .

00 .35352E-02 .00 .00000E+00 .36354E-02 .47281E-02 .00 .00 .00 .00 .00 .47374E-02 .41062E-02 .38942E-02 .41092E-02 .00 .00 .00 .00000E+00 .00000E+00 .50003E-02 .00 .00 .00 .00 .00 .00 .00000E+00 .00000E+00 .00 .61093E-02 .67745E-02 .00000E+00 .00000E+00 .00 .00000E+00 .00000E+00 .27544E-02 X .00000E+00 .00 .00 THYZ .37301E-02 .00 .00 .00 .00 .00 .41092E-02 .64790E-02 .72374E-02 .00 .00 .50054E-02 .26690E-02 .00 .00 .00 .63706E-02 .00000E+00 Z .00 .00 .47376E-02 .00 .00000E+00 .35442E-02 .00000E+00 .27637E-02 .00 .52775E-02 .72469E-02 .00000E+00 .00 .00 .00 .00 .00 THYZ .62738E-02 .00 .00 .73422E-02 .50056E-02 .00 .57043E-02 .00 .35267E-02 .32351E-02 .73338E-02 .00000E+00 .00 .36371E-02 .26605E-02 .35261E-02 .00 .64811E-02 .57104E-02 .57041E-02 .64571E-02 .00 .52682E-02 .27640E-02 .00 .00 .00 .35440E-02 Y .00 .41063E-02 .00 .26688E-02 .00 .00 .64659E-02 .00 .00 .00000E+00 .67692E-02 .00 .00 .32295E-02 .63704E-02 .00 .00000E+00 .68678E-02 .00 .63688E-02 .00 .73421E-02 .00 .00 .61099E-02 .00 .00 .57107E-02 .00000E+00 .26607E-02 .63689E-02 .72372E-02 .00 .00000E+00 .00000E+00 .35353E-02 .52682E-02 .61089E-02 .31379E-02 .00 .00 .36370E-02 .00 .38942E-02 .00 .68676E-02 .64659E-02 .00 .62741E-02 .00000E+00 .00 .00 .00000E+00 .43017E-02 .00000E+00 .00000E+00 .00 .00000E+00 .00000E+00 .00 .00 .00 .58965E-02 .64813E-02 .00000E+00 .00000E+00 .00 .00000E+00 .00 THZX .00 .00 .58966E-02 .00 .73339E-02 .00 .00000E+00 .00000E+00 .00 .00 .00 .42954E-02 .52779E-02 .35241E-02 .61097E-02 .00000E+00 .00 .00 .00 .00 .00000E+00 .67744E-02 .67689E-02 .00 .00 .00 .32296E-02 X .00 .00 .00 .00 .31381E-02 .00 .42953E-02 .00000E+00 .00 .00 .00 .00 .00 THZX .64793E-02 .00000E+00 .72468E-02 .00000E+00 .00 .00000E+00 .00 .00 .00 .00 THXY .00 .00 .36352E-02 .00 .00 .00 .00 .00 .38950E-02 .00 .00 .00 .00 .00 .00 .00000E+00 .00000E+00 .37304E-02 .00 .00000E+00 .62736E-02 .38948E-02 Y .00 THXY .00 .62735E-02 .00 .50002E-02 .00 .00 .00 .00000E+00 .00000E+00 Z .541 274 275 276 277 278 279 280 NODE 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 NODE 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 .32348E-02 .00 .37306E-02 .00 .00000E+00 .00 .00 .27542E-02 .00 .00 .00 .00000E+00 .00000E+00 .43017E-02 .00 .64569E-02 .00 .00 .00 .00000E+00 .00 .00 .58937E-02 .37307E-02 .00 .00000E+00 .58935E-02 .

00 .00 .45697E-02 .00 .00 .00 THZX .00000E+00 .54424E-02 .00 .45633E-02 .00000E+00 .00 .00 .50023E-02 .00 .00000E+00 .00 .40220E-02 .00 .00000E+00 .00 .00 .59839E-02 .50024E-02 .44609E-02 .00 .54320E-02 .00 .00 .00 .00 .54426E-02 .00 .54382E-02 .00000E+00 .45735E-02 .00 .40257E-02 .00 .40215E-02 .00 .542 NODE 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 X .47280E-02 .40252E-02 .59804E-02 .00 .55508E-02 .00000E+00 .00 .54422E-02 .00 .45696E-02 .44606E-02 Z .00 .45634E-02 .00 .00 .00 .00000E+00 .00000E+00 .00 .00 .54419E-02 .00000E+00 .00 .00 THYZ .00 .50093E-02 .00 .35246E-02 .00000E+00 .59802E-02 .00 .00000E+00 .00000E+00 .00 .00000E+00 .00 .00 .00 .00 .00 .00 .54320E-02 .00 .00 .00000E+00 .54384E-02 .00 .00000E+00 .45738E-02 .50090E-02 Y .00 .00000E+00 .59841E-02 .55505E-02 .00 .45740E-02 .00 .00000E+00 THXY .00 .00 .45733E-02 .

543 Appendix S: elsq8 LIST ALL SELECTED ELEMENTS. ELEM MAT TYP REL ESY 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16 1 32 48 65 6 8 10 12 22 24 26 28 38 40 42 44 53 55 57 (LIST NODES) NODES 2 4 18 34 8 8 10 12 14 24 26 28 30 40 42 44 46 55 57 59 NODES 59 66 67 69 70 71 73 74 75 77 78 79 4 82 4 68 83 16 84 72 61 10 12 24 26 28 40 42 44 55 57 59 81 14 6 14 20 20 30 30 80 67 68 70 71 72 74 75 76 78 79 80 63 16 81 82 22 83 32 84 60 132 134 144 146 148 158 160 162 172 174 176 127 137 5 136 141 138 151 150 178 133 135 145 147 149 159 161 163 173 175 177 180 15 129 137 21 141 31 151 177 186 189 195 199 202 208 212 215 221 225 228 126 139 127 192 143 140 153 205 20 63 36 51 66 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 17 3 33 49 130 7 9 11 13 23 25 27 29 39 41 43 45 54 56 58 19 126 35 50 131 130 132 134 136 144 146 148 150 158 160 162 164 172 174 176 138 64 152 166 182 128 131 133 135 142 145 147 149 156 159 161 163 170 173 175 ELEM MAT TYP REL ESY 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .

544 ELEM MAT TYP REL ESY 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 32 86 76 87 48 88 80 82 6 83 84 85 86 87 88 89 68 90 72 NODES 36 36 46 46 51 51 61 61 16 65 22 32 38 48 53 63 82 82 84 84 NODES 91 76 92 80 89 66 70 74 78 90 91 101 65 67 71 75 79 65 102 69 86 86 88 88 83 67 71 75 79 85 87 66 92 68 72 76 80 66 70 70 NODES 103 73 104 74 74 78 95 103 96 214 208 227 213 214 226 267 211 271 87 91 81 92 69 93 94 95 96 73 77 93 81 97 98 99 100 101 94 102 243 218 245 231 238 186 199 212 225 241 244 188 184 189 202 215 228 182 201 195 242 243 234 245 196 190 203 216 229 209 222 187 235 194 207 220 233 188 200 201 244 219 235 232 197 187 200 213 226 210 223 259 183 191 204 217 230 185 263 198 38 85 48 86 53 87 63 88 83 81 69 85 73 87 77 81 83 89 85 90 155 152 165 164 169 166 179 178 139 128 143 153 157 167 171 181 237 192 240 205 37 155 47 165 52 169 62 179 140 183 142 154 156 168 170 180 236 237 239 240 157 154 167 218 171 168 181 231 236 129 196 239 209 242 222 234 238 193 241 206 ELEM MAT TYP REL ESY 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ELEM MAT TYP REL ESY 81 82 83 1 1 1 1 1 1 1 1 1 0 0 0 .

545 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 77 93 65 97 89 94 98 90 95 99 91 96 100 105 97 106 98 78 67 101 68 69 71 72 73 75 76 77 79 80 89 89 90 90 NODES 107 99 101 100 101 110 101 93 111 105 112 94 113 106 114 95 115 107 116 96 91 91 109 92 108 97 93 97 102 102 98 98 103 103 99 99 104 104 100 100 NODES 111 93 113 115 117 110 118 112 94 110 95 96 105 105 106 106 112 109 114 116 111 117 113 118 264 261 268 272 292 290 295 293 265 302 269 273 291 292 294 295 307 260 312 317 308 305 313 310 104 107 108 108 92 105 109 110 94 111 106 112 95 113 107 114 96 115 108 116 254 252 283 255 282 275 259 258 285 284 277 262 287 286 279 266 289 288 281 270 253 254 299 257 257 274 260 275 263 285 276 277 267 287 278 279 271 289 280 281 288 278 282 280 256 290 283 261 264 291 293 265 268 294 296 269 272 297 300 273 104 97 92 89 102 98 90 103 99 91 104 100 92 102 105 103 106 221 190 185 194 197 203 207 210 216 220 223 229 233 248 246 251 249 227 191 256 193 198 204 206 211 217 219 224 230 232 247 248 250 251 224 258 184 246 247 262 249 250 266 252 253 270 255 284 274 286 276 ELEM MAT TYP REL ESY 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ELEM MAT TYP REL ESY 121 122 123 124 125 126 127 128 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 .

546 129 130 131 132 133 134 135 136 137 138 139 140 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 119 114 120 116 117 111 113 115 121 118 122 119 107 107 108 108 111 112 114 116 112 113 114 115 NODES 123 124 121 124 117 124 124 110 120 110 124 117 116 118 118 122 121 119 123 125 109 117 120 124 120 122 124 119 124 123 120 109 125 125 125 125 321 327 325 335 322 330 336 306 303 305 332 323 320 326 327 328 334 329 331 304 304 324 333 337 331 335 334 330 323 336 332 302 333 306 337 324 115 119 109 120 121 121 122 123 118 122 119 123 298 296 301 300 308 307 312 317 311 313 316 318 297 298 299 301 309 311 316 321 310 314 315 319 318 315 303 320 322 309 314 319 325 326 328 329 ELEM MAT TYP REL ESY 141 142 143 144 145 146 147 148 149 150 151 152 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 /OUTPUT FILE= nosq8a .