The other files in this directory provide the HTML-based interface for the SteadyStateFusionDemo applet (mostly, its help files). All of the code and its documentation is in the classes directory. Each subdirectory there will be described below. This applet consists of several packages. Although most were developed with this application in mind (some, written by others, were obviously not!), some should be useful elsewhere. The packages are:
Contains classes which are almost entirely specific to the SteadyStateFusionDemo. The FusionReactor and ExpTauE classes would probably be useful in different applets based on this same physical model (e.g., a time-dependent fusion reactor). The OverlayPanel and ICMFilter classes which together are responsible for recoloring the plasma in the applet might be of more general use.
This package is built around the RootSolver interface. A single implementation built on the Bisection method is included for use with the SSFD applet. If more algorithms were added and the RootSolverException class strengthened, this package would be a very useful numerical tool (at this point, it mostly serves as a simple example).
This package contains several classes which deal with the java.util.Observer and java.util.Observable classes. Their use is best demonstrated by the ObservableTest application in the TestApplications directory.
These two classes deal with the palette used to color the plasma in the SteadyStateFusionDemo. The PaletteServer class initializes instances of the IndexColorModel with one of these palettes (only one is implemented presently). The PaletteScale class graphically shows the relationship between the color and its integer index.
Contained herein are some simpler classes of mine, as well as some classes written by others (the RelativeLayout class and the "Mighty" classes in the button and slider sub-packages). The RoundedDouble class formats a floating point number (double) with a specified number of decimal digits. The panel sub-package contains two potentially very useful classes: the ImagePanel turns an image into a layout-able component, and MultiLabelPanel makes a multi-line Label.
Leigh Brookshaw's graph classes. Their documentation is included here for the user's convenience.
The other directories here are:
The javadoc-generated HTML documentation for all classes.
Simple java-command-line applications to test some of the classes. These are, of course, also good usage examples. See the README file there for help in running them.


javadoc does a good job of making it easy to navigate amongst the documents. The package list is a good place to start. If you're really interested in the physics model underlying the SteadyStateFusionDemo, you might want to have a look at a paper documenting the more general FORTRAN code on which it's based. If you would like the paper in some other format, let me know.


Still not happy? You can get the source code and everything else in a jar file, or a zip file. For UNIX fans, you can grab it in a tar file if you'd rather.


This is for my own benefit, mainly. But, here are the commands used to compile all of the java code (run from the classes directory):
javac ssfd/*.java rootsolvers/*.java palette/*.java observable/*.java graph/*.java dpscomponents/*.java dpscomponents/button/*.java dpscomponents/panel/*.java dpscomponents/slider/*.java
To generate the documentation:
javadoc -version -author ssfd rootsolvers palette observable graph dpscomponents dpscomponents.button dpscomponents.slider dpscomponents.panel
To jar-up the class files to use with Netscape's "archive" tag:
jar cfv ssfd.jar ssfd rootsolvers palette observable graph dpscomponents 
The complete jar, tar, and zip files were created with:
tar cfv ssfd_all.tar ssf
jar cfv ssfd_all.jar ssf and
zip -r ssfd_all ssf


This code was produced on my own time for the IPPEX Project. General comments about it should be directed to the folks there. Specific comments about the SteadyStateFusionDemo may be sent to me.

Daren Stotler
Princeton Plasma Physics Laboratory
P.O. Box 451, MS 27
Princeton, NJ 08543