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 ODEEventSolverevent - The event to be addedpublic void removeEvent(StateEvent event)
removeEvent in interface ODEEventSolverevent - The event to be removedpublic void initialize(double stepSize)
ODESolverinitialize in interface ODESolverpublic void setStepSize(double stepSize)
ODESolversetStepSize in interface ODESolverpublic double getStepSize()
ODESolvergetStepSize in interface ODESolverpublic void setTolerance(double tol)
ODEAdaptiveSolversetTolerance in interface ODEAdaptiveSolvertol - the tolerancepublic double getTolerance()
ODEAdaptiveSolvergetTolerance in interface ODEAdaptiveSolverpublic boolean getEventHappened()
public double step()
public int getErrorCode()
getErrorCode in interface ODEAdaptiveSolver