vmm.ode.secondorder3D
Class ODE2ndOrder3DNonAutonomous

java.lang.Object
  extended by vmm.core.Exhibit
      extended by vmm.core3D.Exhibit3D
          extended by vmm.ode.ODE_3D
              extended by vmm.ode.secondorder3D.ODE2ndOrder3DNonAutonomous
All Implemented Interfaces:
java.util.EventListener, javax.swing.event.ChangeListener, Decorateable, Parameterizable
Direct Known Subclasses:
ForcedOscillators, UserODE2ndOrder3DNonAutonomous

public abstract class ODE2ndOrder3DNonAutonomous
extends ODE_3D


Nested Class Summary
 
Nested classes/interfaces inherited from class vmm.ode.ODE_3D
ODE_3D.ODEView
 
Field Summary
 
Fields inherited from class vmm.ode.ODE_3D
addAnimateCheckBoxontrolPanel, addLinesCheckBoxontrolPanel, addOrbitTypesToControlPanel, anaglyphIsDefault, canShowVectorField, dtDefault, initialDataDefault, inputLabelNames, isAutonomous, ORBIT_TYPE_BOTH, ORBIT_TYPE_EULER, ORBIT_TYPE_RUNGE_KUTTA, showAxes, timeSpanDefault
 
Fields inherited from class vmm.core3D.Exhibit3D
defaultViewpoint, defaultViewUp, previousTransform3D
 
Fields inherited from class vmm.core.Exhibit
decorations, exhibitNeedsRedraw, isMorphing, morphingView, parameters, previousTransform
 
Constructor Summary
ODE2ndOrder3DNonAutonomous()
           
 
Method Summary
protected  MouseTask makeDefaultMouseTask(ODE_3D.ODEView view)
          Should construct and return a mouse task appropriate for this exhibit, to be used in the specified view.
protected  void nextEulerPoint(double[] pointData, double dt)
          Computes the next point on an integral curve, using Euler's method.
protected  void nextRungeKuttaPoint(double[] pointData, double dt)
          Computes the next point on an integral curve, using the Runge-Kutta method.
protected abstract  double xdotdot(double x, double y, double z, double xdot, double ydot, double zdot, double t)
           
protected abstract  double ydotdot(double x, double y, double z, double xdot, double ydot, double zdot, double t)
           
protected abstract  double zdotdot(double x, double y, double z, double xdot, double ydot, double zdot, double t)
           
 
Methods inherited from class vmm.ode.ODE_3D
doDraw, extractPointFromData, getCreateAnimation, getDefaultView, screenPointTo3DPoint, vectorField_x, vectorField_y
 
Methods inherited from class vmm.core3D.Exhibit3D
computeDrawData3D, computeDrawDataHook, doDraw3D, doDrawHook, getDefaultTransform, getDefaultViewpoint, getDefaultViewUp, setDefaultViewpoint, setDefaultViewUp
 
Methods inherited from class vmm.core.Exhibit
addChangeListener, addDecoration, addExtraXML, addParameter, addView, clearDecorations, computeDrawData, fireExhibitChangeEvent, forceRedraw, getActionsForView, getAdditionalAnimationsForView, getAlternativeViews, getBuildAnimation, getDecorations, getDefaultBackground, getDefaultForeground, getDefaultWindow, getFramesForMorphing, getMorphingAnimation, getName, getParameterByName, getParameters, getSettingsCommandsForView, getTitle, getUseFilmstripForMorphing, getViews, parameterChanged, readExtraXML, removeChangeListener, removeDecoration, removeParameter, removeView, render, setDefaultBackground, setDefaultForeground, setDefaultWindow, setDefaultWindow, setFramesForMorphing, setName, setUseFilmstripForMorphing, stateChanged
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ODE2ndOrder3DNonAutonomous

public ODE2ndOrder3DNonAutonomous()
Method Detail

nextEulerPoint

protected void nextEulerPoint(double[] pointData,
                              double dt)
Description copied from class: ODE_3D
Computes the next point on an integral curve, using Euler's method. The pointData parameter array contains the data for the current point. This data should be replaced with the data for the next point. The size of the array and the meaning of the data that it contains will vary from one subclass to another. However, for non-autonomous ODEs, the time should always be the first parameter in the array. The second parameter, dt, gives the time step from the current point to the next point.

Specified by:
nextEulerPoint in class ODE_3D

nextRungeKuttaPoint

protected void nextRungeKuttaPoint(double[] pointData,
                                   double dt)
Description copied from class: ODE_3D
Computes the next point on an integral curve, using the Runge-Kutta method. The pointData parameter array contains the data for the current point. This data should be replaced with the data for the next point. The size of the array and the meaning of the data that it contains will vary from one subclass to another. But for the non-autonmous case, the time should always be the first value in the array. The second parameter, dt, gives the time step from the current point to the next point.

Specified by:
nextRungeKuttaPoint in class ODE_3D

xdotdot

protected abstract double xdotdot(double x,
                                  double y,
                                  double z,
                                  double xdot,
                                  double ydot,
                                  double zdot,
                                  double t)

ydotdot

protected abstract double ydotdot(double x,
                                  double y,
                                  double z,
                                  double xdot,
                                  double ydot,
                                  double zdot,
                                  double t)

zdotdot

protected abstract double zdotdot(double x,
                                  double y,
                                  double z,
                                  double xdot,
                                  double ydot,
                                  double zdot,
                                  double t)

makeDefaultMouseTask

protected MouseTask makeDefaultMouseTask(ODE_3D.ODEView view)
Description copied from class: ODE_3D
Should construct and return a mouse task appropriate for this exhibit, to be used in the specified view. The default return value is a standard BasicMouseTask3D; subclasses can redefine this to add the ability to input the initial conditions with the mouse.

Overrides:
makeDefaultMouseTask in class ODE_3D