Welcome to ScalaTion, the Scala-based Simulation System.
This system coded in Scala supports multi-paradigm simulation modeling including 'dynamics', 'activity', 'event', 'process' and 'state' oriented models. Scala is a modern object-oriented, functional programming language (see feature matrix ) that is well-suited for developing simulation engines.
In addition to the packages focused on simulation, there are several support packages: 'util', 'math', 'random', 'stat', 'scala2d', 'plot', 'animation', 'maxima', 'minima', 'metamodel' and 'queueingnet'.
Future directions include adding 'scala3d' and 'physics' packages.
Requires: Scala 2.9 and Java 1.6
1. Download one of the following two file:
scalation.tar.gz
scalation.zip
2. Unzip or untar the file:
> tar xvfz scalation.tar.gz
> unzip scalation.zip
3. If necessary re-build the scalation system (it's pre-built):
> cd scalation
> scalac Build.scala
> scala Build
4. Run examples (e.g., for process oriented):
> cd examples/process
> scalac -cp ../../classes -d classes Bank.scala
> scala -cp ../../classes:classes Bank
Please read the LICENSE file (an MIT style license).
John A. Miller, Jun Han and Maria Hybinette, "Using Domain Specific Languages for Modeling and Simulation: ScalaTion as a Case Study," Proceedings of the 2010 ACM/IEEE Winter Simulation Conference (WSC'10), Baltimore, Maryland (December 2010) pp. 741-752.
scaladoc generated API for ScalaTion
Package Description scalation.util A small package of utilities. scalation.math A package of mathematical objects and operations needed for simulation, including generic implementations for vectors and matrices. scalation.random A package for random numbers and random variates (Normal distribution, etc.) scalation.stat A package of statistical objects and operations needed for simulation, including implementations for summary statitistics, regression and ANOVA. scalation.scala2d A scala version of Java 2D. scalation.plot A package for displaying basic plots and histograms. scalation.animation A general purpose 2D animation engine. scalation.minima A package supporting simulation optimization (minimization). scalation.maxima A package supporting simulation optimization (maximization). scalation.analytics A package supporting analytics. scalation.metamodel A package supporting simulation metamodeling, espcially for optimization. scalation.queueingnet A package supporting queueing network models. scalation.dynamics A simulation engine for systems dynamics (continuous simulation), which includes general-purpose ODE solvers. scalation.activity A simulation engine for activity oriented models such as Petri Nets. scalation.event A simulation engine for event oriented models such as Event Graphs. scalation.process A simulation engine for process oriented models such as Process-Interaction Models. scalation.state A simulation engine for state oriented models such as Markov Chains.
Package Description scalation.dynamics Example models for systems dynamics (continuous simulation). scalation.activity Example models for activity oriented models such as Petri Nets. scalation.event Example models for event oriented models such as Event Graphs. scalation.process Example models for process oriented models such as Process-Interaction Models. scalation.state Example models for state oriented models such as Markov Chains.
Package Description scalation.util A small package of utilities. scalation.math A package of mathematical objects and operations needed for simulation, including generic implementations for vectors and matrices. scalation.random A package for random numbers and random variates (Normal distribution, etc.) scalation.stat A package of statistical objects and operations needed for simulation, including implementations for summary statitistics, regression and ANOVA. scalation.scala2d A scala version of Java 2D. scalation.plot A package for displaying basic plots and histograms. scalation.animation A general purpose 2D animation engine. scalation.minima A package supporting simulation optimization (minimization). scalation.maxima A package supporting simulation optimization (maximization). scalation.analytics A package supporting analytics. scalation.metamodel A package supporting simulation metamodeling, especially for optimization. scalation.queueingnet A package supporting queueing network models. scalation.dynamics A simulation engine for systems dynamics (continuous simulation), which includes general-purpose ODE solvers. scalation.activity A simulation engine for activity oriented models such as Petri Nets. scalation.event A simulation engine for event oriented models such as Event Graphs. scalation.process A simulation engine for process oriented models such as Process-Interaction Models. scalation.state A simulation engine for state oriented models such as Markov Chains.