ODEAdaptiveSolver
, ODEEventSolver
, ODESolver
public class ODEBisectionEventSolver extends java.lang.Object implements ODEEventSolver, ODEAdaptiveSolver
Modifier and Type | Field | Description |
---|---|---|
protected int |
errorCode |
|
protected boolean |
eventHappened |
|
protected java.util.Vector<StateEvent> |
eventList |
|
protected java.util.Vector<StateEvent> |
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 | 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 | 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<StateEvent> eventList
protected java.util.Vector<StateEvent> 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