Module Kappa_runtime.State_interpreter

Event loop module

type t

Abstract state

val empty : with_delta_activities:bool -> Counter.t -> Kappa_terms.Model.t -> t

empty ~with_delta_activities env

val initialize : bind:('a -> ((bool * Rule_interpreter.t * t) -> 'a) -> 'a) -> return:((bool * Rule_interpreter.t * t) -> 'a) -> debug_mode:bool -> outputs:(Data.t -> unit) -> Kappa_terms.Model.t -> Counter.t -> Rule_interpreter.t -> t -> (Kappa_terms.Primitives.alg_expr * Kappa_terms.Primitives.elementary_rule) list -> 'a

initial env counter graph state builds up the initial state

Returns (the current biological time, an array of the current values of observables)

val do_modifications : debug_mode:bool -> outputs:(Data.t -> unit) -> Kappa_terms.Model.t -> Counter.t -> Rule_interpreter.t -> t -> Kappa_terms.Primitives.modification list -> bool * Rule_interpreter.t * t * bool
val a_loop : debug_mode:bool -> outputs:(Data.t -> unit) -> dumpIfDeadlocked:bool -> maxConsecutiveClash:int -> Kappa_terms.Model.t -> Counter.t -> Rule_interpreter.t -> t -> bool * Rule_interpreter.t * t

One event loop

val end_of_simulation : outputs:(Data.t -> unit) -> Kappa_terms.Model.t -> Counter.t -> Rule_interpreter.t -> t -> unit

What to do after stopping simulation.