template<class X> class adevs::DESS
This is the base class for building ODE and DAE solvers that can
be used inside of a discrete event simulation.
Inheritance:
Public Methods
-
DESS()
- Constructor.
-
virtual void evolve_func(double h) = 0
-
This virtual function is the continuous evolution function
Its purpose is to advance the continuous state variables for h units of time
A derived class should implement its integration scheme in this function
-
virtual double next_event_func(bool& is_event) = 0
-
This function should return the time until the next state or time
event in the continuous system.
-
virtual void discrete_action_func(const Bag<X>& xb) = 0
-
This is the discrete action function.
-
virtual void discrete_output_func(Bag<X>& yb) = 0
-
This is the output function.
-
virtual void state_changed() = 0
-
This method is executed initially (ie, at simulation start or
just following creation if added dynamically), after every
evaluation of the evolution function, and after every evaluation
of the discrete_action_func method.
-
void delta_int()
- The internal transition function should not be overridden
-
void delta_ext(double e, const Bag<X>& xb)
- The external transition function should not be overridden
-
void delta_conf(const Bag<X>& xb)
- The confluent transition function should not be overridden
-
void output_func(Bag<X>& yb)
- The output function should not be overridden
-
double ta()
- The time advance function should not be overridden
-
virtual ~DESS()
- Destructor
Inherited from Atomic:
Public Methods
-
virtual void gc_output(Bag<X>& g)
-
Atomic<X> * typeIsAtomic()
Protected Methods
-
double getLastEventTime() const
Inherited from Devs:
Public Methods
-
virtual Network<X> * typeIsNetwork()
-
const Network<X> * getParent() const
-
Network<X> * getParent()
-
void setParent(Network<X>* parent)
-
virtual bool model_transition()
Documentation
This is the base class for building ODE and DAE solvers that can
be used inside of a discrete event simulation. A description of the
integration technique can be found in ????. The template argument
specifies the model input and output type. The DEVS state transition functions
and output function should not be overridden by derived classes.
The DEVS dynamic structure and output garbage collection functions can
be used by derived classes.
DESS()
- Constructor. Time is assumed to start at 0.0.
virtual void evolve_func(double h) = 0
-
This virtual function is the continuous evolution function
Its purpose is to advance the continuous state variables for h units of time
A derived class should implement its integration scheme in this function
virtual double next_event_func(bool& is_event) = 0
-
This function should return the time until the next state or time
event in the continuous system. This method can also return the time until the next
integration step, in which case the variable is_event should
be set to false. If the is_event flag is true, then next state change
will be treated as an internal event of the DEVS model.
virtual void discrete_action_func(const Bag<X>& xb) = 0
-
This is the discrete action function. The input bag contains the
discrete events that are available at this time (if any).
virtual void discrete_output_func(Bag<X>& yb) = 0
-
This is the output function. The output function is evaluated
when the next_event_func() elapses. The bag should be filled
with output events.
virtual void state_changed() = 0
-
This method is executed initially (ie, at simulation start or
just following creation if added dynamically), after every
evaluation of the evolution function, and after every evaluation
of the discrete_action_func method. This method is intended to
facilitate writing the continuous system trajectory to an output
file. The overridden method should call some integrator specific
method that the user can implement for that purpose.
void delta_int()
- The internal transition function should not be overridden
void delta_ext(double e, const Bag<X>& xb)
- The external transition function should not be overridden
void delta_conf(const Bag<X>& xb)
- The confluent transition function should not be overridden
void output_func(Bag<X>& yb)
- The output function should not be overridden
double ta()
- The time advance function should not be overridden
virtual ~DESS()
- Destructor
DESS_STEP
DESS_EVENT
DESS_OUTPUT
- Direct child classes:
- rk45
rk4
Alphabetic index HTML hierarchy of classes or Java
This page was generated with the help of DOC++.