public class ODEBisectionEventSolver extends java.lang.Object implements ODEEventSolver, ODEAdaptiveSolver
Modifier and Type | Field and Description |
---|---|
protected int |
errorCode |
protected boolean |
eventHappened |
protected java.util.Vector |
eventList |
protected java.util.Vector |
happened |
static int |
MAX
Maximum number of bisections allowed
|
protected int |
size |
protected ODESolver |
solver |
protected double[] |
statea |
protected org.opensourcephysics.numerics.TriggerODE |
triggerOde |
BISECTION_EVENT_NOT_FOUND, DID_NOT_CONVERGE, NO_ERROR
Constructor and Description |
---|
ODEBisectionEventSolver(ODE ode,
java.lang.Class solverClass)
Creates a new solver that uses the bisection method for finding the events.
|
Modifier and Type | Method and Description |
---|---|
void |
addEvent(StateEvent event)
Adds a StateEvent to the list of events
|
int |
getErrorCode()
Gets the error code.
|
boolean |
getEventHappened()
Gets the eventHappend flag.
|
double |
getStepSize()
Gets the step size.
|
double |
getTolerance()
Gets the tolerance of the adaptive ODE sovler.
|
void |
initialize(double stepSize)
Initializes the ODE solver.
|
void |
removeEvent(StateEvent event)
Removes a StateEvent from the list of events
|
void |
setStepSize(double stepSize)
Sets the initial step size.
|
void |
setTolerance(double tol)
Sets the tolerance of the adaptive ODE sovler.
|
double |
step()
Advances the ODE as usual, except if an event takes place.
|
public static final int MAX
protected int size
protected double[] statea
protected ODESolver solver
protected org.opensourcephysics.numerics.TriggerODE triggerOde
protected java.util.Vector eventList
protected java.util.Vector happened
protected int errorCode
protected boolean eventHappened
public ODEBisectionEventSolver(ODE ode, java.lang.Class solverClass)
ode
- The ode to solvesolverClass
- The ODESolver class to use.public void addEvent(StateEvent event)
addEvent
in interface ODEEventSolver
event
- The event to be addedpublic void removeEvent(StateEvent event)
removeEvent
in interface ODEEventSolver
event
- The event to be removedpublic void initialize(double stepSize)
ODESolver
initialize
in interface ODESolver
public void setStepSize(double stepSize)
ODESolver
setStepSize
in interface ODESolver
public double getStepSize()
ODESolver
getStepSize
in interface ODESolver
public void setTolerance(double tol)
ODEAdaptiveSolver
setTolerance
in interface ODEAdaptiveSolver
tol
- the tolerancepublic double getTolerance()
ODEAdaptiveSolver
getTolerance
in interface ODEAdaptiveSolver
public boolean getEventHappened()
public double step()
public int getErrorCode()
getErrorCode
in interface ODEAdaptiveSolver