Deterministic particle internal state. This object is
not ordinarily constructed directly by users, but via the
$run_begin
method to particle_deterministic. It
provides an advanced interface to the deterministic particle
that allows partially running over part of the time trajectory.
This state object has a number of public fields that you can read but must not write (they are not read-only so you could write them, but don't).
model
The dust model being simulated
history
The particle history, if created with
save_history = TRUE
.
restart_state
Full model state at a series of points in
time, if the model was created with non-NULL
save_restart
.
This is a 3d array as described in particle_filter
log_likelihood
The log-likelihood so far. This starts at 0 when initialised and accumulates value for each step taken.
current_time_index
The index of the last completed step.
new()
Initialise the deterministic particle state. Ordinarily this should not be called by users, and so arguments are barely documented.
particle_deterministic_state$new(
pars,
generator,
model,
data,
data_split,
times,
has_multiple_parameters,
n_threads,
initial,
index,
compare,
constant_log_likelihood,
save_history,
save_restart,
stochastic_schedule,
ode_control
)
pars
Parameters for a single phase
generator
A dust generator object
model
If the generator has previously been initialised
data
A particle_filter_data data object
data_split
The same data as data
but split by step
times
A matrix of time step beginning and ends
has_multiple_parameters
Compute multiple likelihoods at once?
n_threads
The number of threads to use
initial
Initial condition function (or NULL
)
index
Index function (or NULL
)
compare
Compare function
constant_log_likelihood
Constant log likelihood function
save_history
Logical, indicating if we should save history
save_restart
Vector of time steps to save restart at
stochastic_schedule
Vector of times to perform stochastic updates
ode_control
Tuning control for stepper
run()
Run the deterministic particle to the end of the data.
This is a convenience function around $step()
which provides the
correct value of time_index
step()
Take a step with the deterministic particle. This moves the system forward one step within the data (which may correspond to more than one step with your model) and returns the likelihood so far.
fork_multistage()
Create a new deterministic_particle_state
object based
on this one (same model, position in time within the data) but with
new parameters, to support the "multistage particle filter".
model
A model object
pars
New model parameters
transform_state
A function to transform the model state
from the old to the new parameter set. See
multistage_epoch()
for details.