Class DevDessSimulator<T extends Number & Comparable<T>>

java.lang.Object
org.djutils.event.LocalEventProducer
nl.tudelft.simulation.dsol.simulators.Simulator<T>
nl.tudelft.simulation.dsol.simulators.DevsSimulator<T>
nl.tudelft.simulation.dsol.simulators.DevDessSimulator<T>
Type Parameters:
T - the time type
All Implemented Interfaces:
Serializable, Runnable, Remote, DessSimulatorInterface<T>, DevsSimulatorInterface<T>, SimulatorInterface<T>, org.djutils.event.EventProducer
Direct Known Subclasses:
DevDessAnimator

public class DevDessSimulator<T extends Number & Comparable<T>> extends DevsSimulator<T> implements DevsSimulatorInterface<T>, DessSimulatorInterface<T>
The reference implementation of the DEVDESS simulator.

Copyright (c) 2002-2024 Delft University of Technology, Jaffalaan 5, 2628 BX Delft, the Netherlands. All rights reserved. See for project information https://simulation.tudelft.nl. The DSOL project is distributed under a three-clause BSD-style license, which can be found at https://https://simulation.tudelft.nl/dsol/docs/latest/license.html.

Since:
1.5
Author:
Peter Jacobs , Alexander Verbraeck
See Also:
  • Field Details

    • timeStep

      protected T extends Number & Comparable<T> timeStep
      timeStep represents the timestep of the DESS simulator.
  • Constructor Details

    • DevDessSimulator

      public DevDessSimulator(Serializable id, T initialTimeStep) throws SimRuntimeException
      Construct a DEVDessSimulator with an initial time step for the integration process.
      Parameters:
      initialTimeStep - T; the initial time step to use in the integration.
      id - the id of the simulator, used in logging and firing of events.
      Throws:
      SimRuntimeException - when initialTimeStep <= 0, NaN, or Infinity
  • Method Details

    • getTimeStep

      public T getTimeStep()
      returns the time step of the DESS simulator.
      Specified by:
      getTimeStep in interface DessSimulatorInterface<T extends Number & Comparable<T>>
      Returns:
      the timeStep
    • setTimeStep

      public void setTimeStep(T timeStep) throws SimRuntimeException
      Method setTimeStep sets the time step of the simulator.
      Specified by:
      setTimeStep in interface DessSimulatorInterface<T extends Number & Comparable<T>>
      Parameters:
      timeStep - T; the new timeStep. Its value should be > 0.0
      Throws:
      SimRuntimeException - when timestep <= 0, NaN, or Infinity
    • run

      public void run()
      The run method defines the actual time step mechanism of the simulator. The implementation of this method depends on the formalism. Where discrete event formalisms loop over an event list, continuous simulators take predefined time steps. Make sure that:
      - SimulatorInterface.TIME_CHANGED_EVENT is fired when the time of the simulator changes
      - the warmup() method is called when the warmup period has expired (through an event or based on simulation time)
      - the endReplication() method is called when the replication has ended
      - the simulator runs until the runUntil time, which is also set by the start() method.
      Specified by:
      run in interface Runnable
      Overrides:
      run in class DevsSimulator<T extends Number & Comparable<T>>