class Quartz::DSDE::Executive

Overview

FIXME

Defined in:

quartz/dsde/executive.cr

Constant Summary

STATE_CHECKS = {state_complete: true}

FIXME

Constructors

Instance Method Summary

Instance methods inherited from class Quartz::AtomicModel

confluent_transition(messages : Hash(InputPort, Array(Any))) confluent_transition, elapsed : Duration elapsed, elapsed=(elapsed : Duration) elapsed=, external_transition(messages : Hash(InputPort, Array(Any))) external_transition, inspect(io) inspect, internal_transition internal_transition, model_precision : Scale model_precision, output output, time_advance : Duration time_advance

Constructor methods inherited from class Quartz::AtomicModel

new(name, state)
new(name)
new

Class methods inherited from class Quartz::AtomicModel

check(*attributes : Symbol, **kwargs) check, check_with(klass : Verifiers::RuntimeValidator.class, **kwargs)
check_with(klass : Verifiers::EachChecker.class, *attributes : Symbol, **kwargs)
check_with
, clear_verifiers clear_verifiers, precision_level : Scale precision_level, precision_level=(precision_level : Scale) precision_level=, verifiers verifiers

Instance methods inherited from module Quartz::Verifiable

clear_errors clear_errors, errors errors, invalid?(context : Symbol | Nil = nil) : Bool invalid?, valid?(context : Symbol | Nil = nil) : Bool valid?

Instance methods inherited from module Quartz::Observable

add_observer(observer : Observer) add_observer, count_observers count_observers, delete_observer(observer : Observer) : Bool delete_observer, notify_observers(info = nil) notify_observers

Instance methods inherited from module Quartz::Coupleable

add_input_port(name) add_input_port, add_output_port(name) add_output_port, add_port(port : InputPort)
add_port(port : OutputPort)
add_port
, each_input_port(&) each_input_port, each_output_port(&) each_output_port, input_port(name : Name) : InputPort input_port, input_port?(name : Name) : InputPort | Nil input_port?, input_port_list : Array(InputPort) input_port_list, input_port_names input_port_names, output_port(name : Name) : OutputPort output_port, output_port?(name : Name) : OutputPort | Nil output_port?, output_port_list : Array(OutputPort) output_port_list, output_port_names output_port_names, remove_input_port(name) remove_input_port, remove_output_port(name) remove_output_port, remove_port(port : InputPort)
remove_port(port : OutputPort)
remove_port

Instance methods inherited from module Quartz::Stateful

initial_state initial_state, initial_state=(state : Quartz::State) initial_state=, state state, state=(state : Quartz::State) state=

Instance methods inherited from class Quartz::Model

accept(visitor : Visitor) accept, accept_children(visitor) accept_children, after_initialize after_initialize, inspect(io) inspect, name : Name name, name=(name : Name) name=, processor : Processor | Nil processor, processor=(processor : Processor | Nil) processor=, processor? : Processor | Nil | Nil processor?, to_s(io) to_s

Constructor methods inherited from class Quartz::Model

new(name : Name) new

Instance methods inherited from class Reference

==(other : Quartz::Any) ==

Instance methods inherited from class Object

===(other : Quartz::Any) ===

Constructor Detail

def self.new(name, network : CoupledModel | Nil = nil) #

[View source]

Instance Method Detail

def external_transition(bag) #

[View source]
def initial_state=(state : State) #

def initial_state=(state : Quartz::State) #

def internal_transition #
Description copied from class Quartz::AtomicModel

Internal transition function (δint), called when the model should be activated, e.g when #elapsed reaches #time_advance

Override this method to implement the appropriate behavior of your model.

Example:

def internal_transition
  self.phase = :steady
end

[View source]
def network : Quartz::DSDE::CoupledModel? #

[View source]
def network=(network : Nil | Quartz::DSDE::CoupledModel) #

[View source]
def output #
Description copied from class Quartz::AtomicModel

The output function (λ)

Override this method to implement the appropriate behavior of your model. See #post to send values to output ports.

Example:

def output
  post(42, :output)
end

[View source]
def phase #

def phase=(phase) #

def state #

def state=(state : State) #

def state=(state : Quartz::State) #

def time_advance : Duration #
Description copied from class Quartz::AtomicModel

Time advance function (ta), called after each transition to give a chance to self to be active.

Override this method to implement the appropriate behavior of your model.

Example:

def time_advance
  Quartz.infinity
end

[View source]