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:

  • The object's position, x
  • The object's velocity, dx
  • Whether the simulation is "done", isDone

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.

Implemented by

Constructors

Simulation()

Properties

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".

read / write
hashCode int

Get a hash code for this object.

read-only, inherited
runtimeType Type

A representation of the runtime type of the object.

read-only, inherited

Operators

operator ==(other) bool

The equality operator.

inherited

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.

x(double time) double

The position of the object in the simulation at the given time.

noSuchMethod(Invocation invocation) → dynamic

Invoked when a non-existent method or property is accessed.

inherited
toString() String

Returns a string representation of this object.

inherited