Skip to content

A C# framework for object-oriented discrete event simulator

License

Notifications You must be signed in to change notification settings

stuarthillary/O2DES.Net

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

O2DES.Net

A framework for discrete event simulator, highly OOP and with native support of time dilation

Supported .NET Version

  • .NET Standard 2.0 (Recommended)
  • .NET Framework 4.7.2 (Minimum Version)

Setup Options for .NET Core 2.2/3.0 (Windows/Linux/MacOS)

  • Option 1: Install .NET Core SDK.
  • Option 2: From Visual Studio Installer, enable Cross-Platform Development.

Setup Options for .NET Framework 4.7.2 (Windows Only)

  • Option 1: Install .NET Framework 4.7.2.
  • Option 2: From Visual Studio Installer, go to components and checked option to install .NET Framework 4.7.2.

Change Log

Version 2.4.1

+ Include Uniform and Exponential for the random generators.

Version 2.4

+ Include a dynamic server based PathMover (Zhou et al. 2017, WSC) module for simulating traffic network.
+ Include customized Empirical and Gamma random generators, with parameters fitting simulation studies.

Version 2.3.2

+ [Important Fix] All events generated are uniquely indexed. Revise the sorting mechanism the FEL (future event list) such that same time events are ordered based on the sequence they are generated. This prevents untraceable distortion of simulation results, i.e., it guarantees that the single random seed always leads to the same sample path.
- Remove conosle display if only log to file in Event. 

Version 2.3.1

+ Include Histogram and Percentile methods in HourCounter, to facilitate the statistics on the distribution of the observed count.
+ Differentiate "Utilization" (when the load is being processed by the server) and "Occupation" (when the load is occupying server's capacity, i.e., both being served and stucked) for the server statistics.

Version 2.3.0

+ Revise Queue and Server for higher modularity, and comply with DEVS standards.
- Temporarily remove FIFOServer, Resource, RestoreServer, and PathMover, due to unstable performance.
+ Include Synchronizer, that checks multiple conditions and triggers events when all conditions are satisfied or unsatisfied.
+ Modify "Utilization" of Server / RestoreServer by excluding those processed but not departed; instead add "Occupation" for the the inclusive counting.
+ Rename "Status" as "State" to be consistent with most simulation literature.

Version 2.2.1

+ Change font-size for Path label for displaying dense path network.
+ Add X, Y, Rotate transform to Path SVG description.

Verssion 2.2.0

+ In Depart() event of Server, instead of checking the first load in the Served list (and continue only if the first is departed), all loads will be screened for ToDepart condition and depart if respective condition is satisfied.
+ Implement FIFO Server, as for modelling PathMover system.
+ Add NCoccupied as dynamic property of Server / RestoreServer / FIFOServer, for easy call.
+ Add StartTimes and FinishTimes in Server, for Loads occupying the Server.
+ WriteToConsole method of Status / Component may take in clockTime:DateTime parameter, as need for determining position of vehicles in PathMover.
+ Include PathMover.

Version 2.1.2

+ Allows Load to have Static properties as "Category", considering it's a special type of 2. Component that have life cycles in simulation.
+ Rename Static property of a normal Component as "Config".
+ Therefore, they coincide with Statics of a Simulation as "Scenario".

Version 2.1.1

+ Simplifies structure of Component definition, by encapsulate StaticProperty based on root class, i.e., Component<TStatics> : Component.

Version 2.1.0

- Remove TScenario and TStatus in Component paradigm.
+ Construct Simulator by Assembly (Component).
+ Demo for the two revision above.

About

A C# framework for object-oriented discrete event simulator

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C# 100.0%