vmm.ode.secondorder2D
Class ODE2ndOrder2D

java.lang.Object
  extended by vmm.core.Exhibit
      extended by vmm.ode.ODE_2D
          extended by vmm.ode.secondorder2D.ODE2ndOrder2D
All Implemented Interfaces:
java.util.EventListener, javax.swing.event.ChangeListener, Decorateable, Parameterizable
Direct Known Subclasses:
CentralForce, CoupledOscillators, FoucaultPendulum, UserODEF2ndOrder2D

public abstract class ODE2ndOrder2D
extends ODE_2D


Nested Class Summary
 
Nested classes/interfaces inherited from class vmm.ode.ODE_2D
ODE_2D.ODEView
 
Field Summary
 
Fields inherited from class vmm.ode.ODE_2D
addAnimateCheckBoxToControlPanel, addLinesCheckBoxToControlPanel, addOrbitTypesToControlPanel, addProjectedOrbitsAction, canShowVectorField, dtDefault, initialDataDefault, inputLabelNames, isAutonomous, ORBIT_TYPE_BOTH, ORBIT_TYPE_EULER, ORBIT_TYPE_RUNGE_KUTTA, timeSpanDefault
 
Fields inherited from class vmm.core.Exhibit
decorations, exhibitNeedsRedraw, isMorphing, morphingView, parameters, previousTransform
 
Constructor Summary
ODE2ndOrder2D()
           
 
Method Summary
protected  MouseTask makeDefaultMouseTask(ODE_2D.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 xdot, double ydot)
           
protected abstract  double ydotdot(double x, double y, double xdot, double ydot)
           
 
Methods inherited from class vmm.ode.ODE_2D
doDraw, extractPointFromData, getCreateAnimation, getDefaultView, vectorField_x, vectorField_y
 
Methods inherited from class vmm.core.Exhibit
addChangeListener, addDecoration, addExtraXML, addParameter, addView, clearDecorations, computeDrawData, computeDrawDataHook, doDrawHook, fireExhibitChangeEvent, forceRedraw, getActionsForView, getAdditionalAnimationsForView, getAlternativeViews, getBuildAnimation, getDecorations, getDefaultBackground, getDefaultForeground, getDefaultTransform, 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

ODE2ndOrder2D

public ODE2ndOrder2D()
Method Detail

nextEulerPoint

protected void nextEulerPoint(double[] pointData,
                              double dt)
Description copied from class: ODE_2D
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_2D

nextRungeKuttaPoint

protected void nextRungeKuttaPoint(double[] pointData,
                                   double dt)
Description copied from class: ODE_2D
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_2D

xdotdot

protected abstract double xdotdot(double x,
                                  double y,
                                  double xdot,
                                  double ydot)

ydotdot

protected abstract double ydotdot(double x,
                                  double y,
                                  double xdot,
                                  double ydot)

makeDefaultMouseTask

protected MouseTask makeDefaultMouseTask(ODE_2D.ODEView view)
Description copied from class: ODE_2D
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 BasicMouseTask2D; subclasses can redefine this to add the ability to input the initial conditions with the mouse.

Overrides:
makeDefaultMouseTask in class ODE_2D