Values which are shared between all particles in a group and are not mutated by them - the model parameter values for that group
Internal state values which can be mutated by generators, used to improve efficiency of the system by e.g. caching calculation results for use by other particles.
Generator (model) implementation for the System
Array of TShared, each representing the parameters for a group of particles
Initial time for the system
Time step to be used when updating the system
Number of particles per group
Optional
random: RandomRandom number generator which may be used by the generator
Returns the current state of all particles in the system
Returns the current time of the system
Sets the current time of the system
Runs the system from its current time to the given time, causing its state to be updated. Calls the update method on the generator for each particle.
The time to run to
Sets new values in the system state
The new state values for all or part of the state. If partial state, the shape must match the values provided in the indices parameters
The group indices, in order, which the first dimension of newState are setting values for. If empty, this means newState provides values for all groups.
The particle indices, in order, which the second dimension of newState are setting values for. If empty, this means newState provides values for all particles.
The state element indices, in order, which the second dimension of newState are setting values for. If empty, this means newState provides values for all state elements.
Initialises each particle by calling the initial method on the generator.
Runs the system from its current time to a series of times given by the parameter times and returns state values for all particles at each of these times.
The times to run to and return state for. Must be in increasing order, with no value less than the current time.
Indices of the state elements to return in the result. If an empty array is provided, all values are returned.
Updates shared (parameter) values for all groups in the system.
Updated parameter values. The length must match the existing number of groups in the system.
Implementation of System for discrete systems. Manages particle states generated by stateless generators.