Simulation class abstract
The base class for all simulations.
A simulation models an object, in a one-dimensional space, on which particular forces are being applied, and exposes:
A simulation is generally "done" if the object has, to a given tolerance, come to a complete rest.
The x, dx, and isDone functions take a time argument which specifies the time for which they are to be evaluated. In principle, simulations can be stateless, and thus can be queried with arbitrary times. In practice, however, some simulations are not, and calling any of these functions will advance the simulation to the given time.
As a general rule, therefore, a simulation should only be queried using times that are equal to or greater than all times previously used for that simulation.
Simulations do not specify units for distance, velocity, and time. Client should establish a convention and use that convention consistently with all related objects.
Constructors
- Simulation({Tolerance tolerance = Tolerance.defaultTolerance})
-
Initializes the
tolerance
field for subclasses.
Properties
- hashCode → int
-
The hash code for this object.
no setterinherited
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- tolerance ↔ Tolerance
-
How close to the actual end of the simulation a value at a particular time
must be before isDone considers the simulation to be "done".
getter/setter pair
Methods
-
dx(
double time) → double - The velocity of the object in the simulation at the given time.
-
isDone(
double time) → bool - Whether the simulation is "done" at the given time.
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
toString(
) → String -
A string representation of this object.
override
-
x(
double time) → double - The position of the object in the simulation at the given time.
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited