root/trunk/EBaporate/README.tex

Revision 452, 7.4 kB (checked in by hazelsct, 6 years ago)

Regime error; last commit for version 0.9

  • Property svn:keywords set to Author Date Id Revision
Line 
1\documentclass{article}
2\usepackage{fullpage,fonts,page,cxref}
3\begin{document}
4\title{\tt EBaporate}
5\author{Copyright 2002, 2003 by Adam Powell}
6\date{February 18, 2003}
7\maketitle
8
9\section{Introduction}
10
11{\tt EBaporate} is a new simulation code designed to intelligently estimate the
12rate of evaporation of metal and alloying elements from an electron beam
13melting furnace.  It is based on the graduate work of Adam Powell in
14cooperation with the Sandia National Laboratories Liquid Metal Processing
15Laboratory, as described in
16\begin{quote}
17  A. Powell, J. Van Den Avyle, B. Damkroger, J. Szekely and U. Pal ``Analysis
18  of Multicomponent Evaporation in Electron Beam Melting and Refining of
19  Titanium Alloys,'' {\em Metall. Trans.} {\bf 38B}, 1227-1239 (1997).
20\end{quote}
21
22{\tt EBaporate} takes an image of a liquid metal surface, converts that into a
23temperature map, and then gives two estimates of the evaporation rates.  The
24first estimate is based on a Clausius-Clapeyron/Langmuir analysis of
25evaporation at the surface temperatures.  Then, recognizing that evaporation
26rate is a strongly nonlinear function of temperature, and that the beam
27produces significant local temperature fluctuations as it scans across the
28surface, this program estimates the magnitude of those fluctuations using a 1-D
29finite element model of local heat conduction down through a thin surface layer
30at a point on the melt during a beam scan cycle (it runs over several cycles
31until a ``steady state'' is reached), and then calculates the average
32temperature and the average evaporation rate in that cycle.  This is repeated
33for several average surface temperatures, resulting in a new curve of
34evaporation rate vs. temperature, which is used for the second estimate of
35evaporation rate over the melt surface.
36
37For titanium melting under Sandia furnace conditions, the calculated average
38evaporation rate is significantly above the evaporation rate at the average
39temperature at frequencies up to about 200 Hz, making that frequency the
40approximate threshold between regimes I and II as described in the paper.  The
41program also estimates the transient velocities generated by the beam spot, and
42the resulting Peclet number, which indicates the relative importance of
43convection and conduction, and thus the transition to regime III.  In regimes
44III and IV, this heat conduction model overestimates the temperature
45fluctuations and the average evaporation rate.
46
47\section{The Code}
48
49This code has two front-ends, {\tt ebsurfweb} and {\tt ebaporate}, and the
50simulation code is mostly in {\tt ebsurf.c} and {\tt shorts.c}.  Source code
51documentation is extracted from the code automatically using the tool {\tt
52  cxref} ({\tt http://www.gedanken.demon.co.uk/cxref/}), and is in the
53appendix.
54
55\subsection{\tt ebsurfweb}
56
57Although is the original web CGI front end written in 1997, I cannot recommend
58using {\tt ebsurfweb} on a web server, as there are many potential buffer
59overflows which, while harmless in a personal application, can allow a cracker
60an easy target if accessible in a server exposed to the net.
61
62That said, the way to use it on the command line is to set its parameters in
63the environment variable {\tt QUERY\_STRING}.  The program does one simulation
64of surface layer heat conduction at a given surface (or layer bottom)
65temperature, and outputs the results in HTML to standard output, along with
66several graphs.  The temperature at the bottom of the layer is held constant
67during each layer cycle.  The input parameters are fully explained at {\tt
68  http://lyre.mit.edu/~powell/Software/ebparams.html}.
69
70This frontend outputs its results in HTML to the standard output, using the
71file {\tt ebtemp.html} as its template, including the input parameters used to
72generate those results.  Each input and output parameter name is linked to a
73target in {\tt ebparams.html} or {\tt outputs.html} explaining that parameter
74in detail.  It also uses templates {\tt onedim.c} for 2-D and {\tt onedim3.c}
75for 3-D to generate postscript graphs with the following filenames (\%p is the
76process id number, used so that multiple runs don't clobber the results):
77\begin{itemize}
78\item {\tt temp\%p.ps} shows a 3-D graph of calculated temperature vs. time and
79  depth, with one curve for each timestep, over multiple cycles of beam
80  scanning, illustrating the convergence to ``steady state''.  It is only
81  produced if the number of cycles is specified.
82
83\item {\tt last\%p.ps} shows a 3-D graph of calculated temperature vs. time and
84  depth, with one curve for each timestep, over the last converged beam scan
85  cycle.
86
87\item {\tt surf\%p.ps} shows the surface temperature as a function of time.
88
89\item {\tt hist\%p.ps} shows the beam power input to the surface point over the
90  cycle.
91
92\item {\tt gen\%p.ps} shows the beam heat input as a function of depth into the
93  melt.  The graph in Schiller's {\em Electron Beam Technology}, p. 38, is used
94  to estimate penetration depth from the voltage, and the volumetric heating
95  profile is integrated over each finite element shapefunction to give this
96  discretized heat distribution.
97
98\item {\tt flux\%p.ps} shows the flux at the bottom of the surface layer.  If
99  it fluctuates by more than 20-30\%, then the surface layer is not thick
100  enough, and the {\tt aleph} parameter should be increased to make it thicker.
101
102\item {\tt patt\%p.ps} shows the beam pattern on the surface, if one is
103  specified (default is one beam strike at the beginning of each cycle, but
104  more complex patterns can be used).
105\end{itemize}
106
107Input parameters are contained in the {\tt QUERY\_STRING} environment variable,
108following the CGI convention of the NCSA httpd web server, the ``first
109generation'' server which was in use when this program was written.  By that
110convention, the arguments are separated by the \& character, e.g.:
111\begin{quote}
112  \tt alpha=0.1\&cyc=5\&pattype=1
113\end{quote}
114Those arguments are parsed in the {\tt paraminp()} function in {\tt ebsurf.c},
115currently at lines 371-511.  Comments for each argument type, and their default
116values, are also given there.
117
118The one known bug is that when using the cyc parameter, the postscript graphs
119don't quite work.
120
121\subsection{\tt ebaporate}
122
123{\tt ebaporate} calculates the total evaporation rate or (currently) average
124aluminum activity coefficient based on a PPM image pixmap read from stdin.  To
125run it in Unix, one must redirect stdin to a file such as:
126\begin{quote}
127  {\tt ebaporate} $<$ map.ppm
128\end{quote}
129Right now, {\tt ebaporate} can only handle monochromatic images.  The final
130version will be able to pull one color from a multicolor image.
131
132The current version also has just one function (called ``func()'') to calculate
133evaporation rate or Al activity coefficient from color.  A function which uses
134{\tt ebsurf.c} functions to calculate the ``enhanced'' regime III evaporation
135rate due to the beam is nearing completion, but having problems which are
136taking more time than anticipated to resolve, so it is not being shipped at
137this time.
138
139\section{Status, Version, Copyright}
140
141This version, 0.9, is a beta release.  Following testing with real EB data, the
142code will be modified and finally released as 1.0.
143
144Copyright 2002, 2003 by Adam Powell, Licensed for unlimited use by members of
145the Specialty Metals Producers' Consortium (SMPC).
146
147\appendix
148
149% Begin-Of-Source-Files
150
151\input{ebsurfweb.c.tex}
152
153\input{ebsurf.c.tex}
154
155\input{ebsurf.h.tex}
156
157\input{shorts.c.tex}
158
159\input{ebaporate.c.tex}
160
161% End-Of-Source-Files
162
163\end{document}
Note: See TracBrowser for help on using the browser.