|
||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||
| SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||
java.lang.Object
|
+--java.awt.Component
|
+--java.awt.Container
|
+--java.awt.Panel
|
+--java.applet.Applet
|
+--BaseApplet
|
+--BaseApplet2
|
+--Diffusion
Applet to model diffusion. Displays electrons moving in a rectangular area, plus a temperature slider and momentum histograms.
| Inner Class Summary | |
class |
Diffusion.Electron
Class to simulate a single electron |
protected class |
Diffusion.TemperatureListener
Listener to detect changes in the position of the temperature slider. |
| Inner classes inherited from class BaseApplet2 |
BaseApplet2.FixedButton,
BaseApplet2.FixedCheckbox,
BaseApplet2.GraphClickListener |
| Inner classes inherited from class BaseApplet |
BaseApplet.MozillaWorkaround,
BaseApplet.ResizeListener |
| Inner classes inherited from class java.awt.Component |
java.awt.Component.AWTTreeLock |
| Field Summary | |
protected java.awt.Button |
animButton
|
protected java.awt.TextField |
countField
|
protected double |
dt
The time step to use (default 0.001) |
protected int |
electronCount
The number of electrons |
protected java.util.Vector |
electrons
A Vector containing all electrons present in the simulation. |
protected int |
electronSize
The size (in pixels) of circle to draw for an electron |
protected int |
h
Local copy of the height of the display area |
protected int |
hSpace
|
protected boolean |
killed
true if the animation should terminate at the next
available opportunity, otherwise false. |
protected double |
maxT
The maximum temperature permitted |
protected double |
minT
The minimum temperature permitted |
protected java.awt.Button |
resetButton
|
protected double |
simH
Width of the box, in simulation units |
protected double |
simW
Width of the box, in simulation units |
protected int |
sliderW
|
protected int |
sliderX
|
protected double |
temp
The temperature |
protected java.awt.TextField |
tempField
|
protected Diffusion.TemperatureListener |
tempListener
|
protected java.lang.Thread |
thr
The animation thread, or null if no animation is in
progress. |
protected Plotter |
tPlotter
|
protected double |
vMultiplier
The velocity multiplier. |
protected int |
vSpace
|
protected int |
w
Local copy of the width of this applet |
protected Histogram |
xHist
|
protected Plotter |
xvPlotter
|
protected Histogram |
yHist
|
protected Plotter |
yvPlotter
|
| Fields inherited from class BaseApplet2 |
boxes,
buttons,
enablePrompt,
fields,
focus,
panel,
statusLabel,
useSwing,
V_MARGIN |
| Fields inherited from class BaseApplet |
buffer,
GRAPH_MARGIN,
refresh,
resizeListener,
safetyLimit,
useBuffer |
| Fields inherited from class java.applet.Applet |
serialVersionUID,
stub |
| Fields inherited from class java.awt.Panel |
base,
nameCounter,
serialVersionUID |
| Fields inherited from class java.awt.Container |
component,
containerListener,
containerSerializedDataVersion,
dispatcher,
layoutMgr,
maxSize,
ncomponents,
serialVersionUID |
| Fields inherited from class java.awt.Component |
actionListenerK,
adjustmentListenerK,
appContext,
assert,
background,
BOTTOM_ALIGNMENT,
CENTER_ALIGNMENT,
changeSupport,
componentListener,
componentListenerK,
componentOrientation,
componentSerializedDataVersion,
containerListenerK,
cursor,
dropTarget,
enabled,
eventMask,
focusListener,
focusListenerK,
font,
foreground,
hasFocus,
height,
incRate,
inputMethodListener,
inputMethodListenerK,
isInc,
isPacked,
itemListenerK,
keyListener,
keyListenerK,
LEFT_ALIGNMENT,
locale,
LOCK,
minSize,
mouseListener,
mouseListenerK,
mouseMotionListener,
mouseMotionListenerK,
name,
nameExplicitlySet,
newEventsOnly,
ownedWindowK,
parent,
peer,
peerFont,
popups,
prefSize,
RIGHT_ALIGNMENT,
serialVersionUID,
textListenerK,
TOP_ALIGNMENT,
valid,
visible,
width,
windowListenerK,
x,
y |
| Constructor Summary | |
Diffusion()
|
|
| Method Summary | |
void |
actionPerformed(java.awt.event.ActionEvent ae)
Subclasses should at least provide an empty implementation of this method. |
void |
animate()
Toggles the animation. |
void |
doPaint(java.awt.Graphics g)
Called by forcePaint() to actually
perform the painting. |
protected double |
gaussian()
Returns a gaussian-distributed random number, using the Box-Muller transform. |
int |
getCount()
Returns the number of electrons |
double |
getT()
Returns the selected temperature |
void |
init()
Performs extra initialisation, including adding a panel to the bottom of the applet. |
void |
reset()
Stops any running animation, and generates a new set of electrons with random momentum. |
void |
run()
This method loops through an update/repaint cycle. |
void |
setCount(int i)
Sets the number of electrons, resetting the simulation if necessary. |
void |
setT(double t)
Sets the selected temperature |
void |
spawnElectrons(int count)
Destroys any electrons present in the simulation, and replaces them with a new set of electrons, arranged in a square, and with (approximately) gaussian momentum distribution. |
void |
spawnElectrons(int w,
int n,
double space)
Adds electrons to the simulation, arranged in a rectangle. |
void |
start()
Applets should use this method to perform any final initialisation necessary to "activate" the applet |
void |
startAnim()
Starts the animation. |
void |
stop()
When this method is called, the applet should cease any user interaction. |
void |
stopAnim()
Stops the animation. |
void |
updateInput()
Reads in (and validates) input from the text fields. |
void |
updateSimulation(double dt)
Steps through the simulation logic by a specified time step. |
| Methods inherited from class BaseApplet2 |
add,
add,
addButton,
addCheckbox,
addField,
addField,
addField,
addListeners,
focusGained,
focusLost,
getDouble,
getGraphHeight,
getInt,
lockControls,
makeButton,
makePanel,
paintDashedLineH,
paintDashedLineV,
register,
removeListeners,
setComponentsEnabled,
setLayout,
setPromptEnabled,
textValueChanged,
toString,
unlockControls |
| Methods inherited from class BaseApplet |
changeFont,
forcePaint,
getAppletInfo,
getParameterInfo,
itemStateChanged,
paint,
refresh,
update |
| Methods inherited from class java.applet.Applet |
destroy,
getAppletContext,
getAudioClip,
getAudioClip,
getCodeBase,
getDocumentBase,
getImage,
getImage,
getLocale,
getParameter,
isActive,
newAudioClip,
play,
play,
resize,
resize,
setStub,
showStatus |
| Methods inherited from class java.awt.Panel |
|
| Methods inherited from class java.awt.Container |
add,
add,
add,
add,
addContainerListener,
addImpl,
applyOrientation,
countComponents,
deliverEvent,
dispatchEventImpl,
dispatchEventToSelf,
doLayout,
eventEnabled,
findComponentAt,
findComponentAt,
getAlignmentX,
getAlignmentY,
getComponent,
getComponentAt,
getComponentAt,
getComponentCount,
getComponents_NoClientCode,
getComponents,
getCursorTarget,
getInsets,
getLayout,
getMaximumSize,
getMinimumSize,
getMouseEventTarget,
getPreferredSize,
getWindow,
initIDs,
insets,
invalidate,
invalidateTree,
isAncestorOf,
layout,
lightweightPrint,
list,
list,
locate,
minimumSize,
nextFocus,
paintComponents,
paramString,
postProcessKeyEvent,
postsOldMouseEvents,
preferredSize,
preProcessKeyEvent,
print,
printComponents,
printOneComponent,
processContainerEvent,
processEvent,
proxyEnableEvents,
proxyRequestFocus,
readObject,
remove,
remove,
removeAll,
removeContainerListener,
removeNotify,
setCursor,
setFocusOwner,
setFont,
transferFocus,
updateCursor,
validate,
validateTree,
writeObject |
| Methods inherited from class java.awt.Component |
action,
add,
addComponentListener,
addFocusListener,
addInputMethodListener,
addKeyListener,
addMouseListener,
addMouseMotionListener,
addPropertyChangeListener,
addPropertyChangeListener,
areInputMethodsEnabled,
bounds,
checkImage,
checkImage,
coalesceEvents,
contains,
contains,
createImage,
createImage,
disable,
disableEvents,
dispatchEvent,
enable,
enable,
enableEvents,
enableInputMethods,
firePropertyChange,
getBackground,
getBounds,
getBounds,
getColorModel,
getComponentOrientation,
getCursor,
getDropTarget,
getFont_NoClientCode,
getFont,
getFontMetrics,
getForeground,
getGraphics,
getHeight,
getInputContext,
getInputMethodRequests,
getIntrinsicCursor,
getLocation,
getLocation,
getLocationOnScreen,
getName,
getNativeContainer,
getParent_NoClientCode,
getParent,
getPeer,
getSize,
getSize,
getToolkit,
getToolkitImpl,
getTreeLock,
getWidth,
getWindowForObject,
getX,
getY,
gotFocus,
handleEvent,
hasFocus,
hide,
imageUpdate,
inside,
isDisplayable,
isDoubleBuffered,
isEnabled,
isEnabledImpl,
isFocusTraversable,
isLightweight,
isOpaque,
isShowing,
isValid,
isVisible,
keyDown,
keyUp,
list,
list,
list,
location,
lostFocus,
mouseDown,
mouseDrag,
mouseEnter,
mouseExit,
mouseMove,
mouseUp,
move,
nextFocus,
paintAll,
postEvent,
prepareImage,
prepareImage,
printAll,
processComponentEvent,
processFocusEvent,
processInputMethodEvent,
processKeyEvent,
processMouseEvent,
processMouseMotionEvent,
remove,
removeComponentListener,
removeFocusListener,
removeInputMethodListener,
removeKeyListener,
removeMouseListener,
removeMouseMotionListener,
removePropertyChangeListener,
removePropertyChangeListener,
repaint,
repaint,
repaint,
repaint,
requestFocus,
reshape,
setBackground,
setBounds,
setBounds,
setComponentOrientation,
setDropTarget,
setEnabled,
setForeground,
setLocale,
setLocation,
setLocation,
setName,
setSize,
setSize,
setVisible,
show,
show,
size,
toString,
transferFocus |
| Methods inherited from class java.lang.Object |
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
registerNatives,
wait,
wait,
wait |
| Field Detail |
protected int sliderW
protected int sliderX
protected int hSpace
protected int vSpace
protected int electronCount
protected java.lang.Thread thr
null if no animation is in
progress.protected boolean killed
true if the animation should terminate at the next
available opportunity, otherwise false.protected java.util.Vector electrons
protected int electronSize
protected int w
protected int h
protected double simW
protected double simH
protected double dt
protected double temp
protected double vMultiplier
protected double minT
protected double maxT
protected java.awt.Button animButton
protected java.awt.Button resetButton
protected java.awt.TextField tempField
protected java.awt.TextField countField
protected Diffusion.TemperatureListener tempListener
protected Plotter tPlotter
protected Plotter xvPlotter
protected Plotter yvPlotter
protected Histogram xHist
protected Histogram yHist
| Constructor Detail |
public Diffusion()
| Method Detail |
public void init()
public void start()
public void stop()
start().public void startAnim()
public void stopAnim()
public void run()
startAnim() method should be used,
which will start this method in a new thread.public void actionPerformed(java.awt.event.ActionEvent ae)
public void updateInput()
public void animate()
public void reset()
public void doPaint(java.awt.Graphics g)
forcePaint() to actually
perform the painting. Subclasses should implement this method as if
it were the standard paint() method; buffering will
then take place transparently.g - The Graphics object on which to paintpublic void updateSimulation(double dt)
dt - the size of the time interval to considerpublic void spawnElectrons(int count)
count - the number of electrons to create
public void spawnElectrons(int w,
int n,
double space)
n - The number of electrons to addw - The number of electrons per rowspace - The spacing (simulation units) between electronsprotected double gaussian()
public double getT()
public void setT(double t)
public int getCount()
public void setCount(int i)
|
||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||
| SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||