The General Computational Model (GCM) is a Java based simulation framework for building disease progression models.
Users of GCM should have a general familiarity with Java and object oriented programming and would benefit from some exposure to event based modeling.
This repository contains the source code, along with a set of lessons that have been created to aide new users with using this simulation framework.
As of v4.2.0, this project is in Maven Central.
Distributed under the GPLv3 License. See LICENSE for more information.
Please read the HHS vulnerability discloure.
To use this project in your project, simply add the following dependency to your dependencies
section of your pom.xml file.
<dependency>
<groupId>gov.hhs.aspr.ms.gcm</groupId>
<artifactId>simulation</artifactId>
<version>4.2.0</version>
</dependency>
There are 3 core tenants to GCM.
GCM is an event based simulation framework composed of data managers, actors and an event engine.
The data managers contain the state of the simulation and generate events when that state changes. The actors contain the business logic of your model and act on the data managers.
The engine transports events generated by the data managers to any data managers and actors that subscribe to those events.
Data managers and actors are organized into plugins. A GCM model is thus composed of the core simulation and a suite of plugins.
The plugin architecture provides for the scalable reuse of concepts and capabilities between models.
GCM is provided with a set of existing plugins that define many of the concepts useful to a broad range of models such as the management of people, their properties, and social group structures.
The modeler is free to compose a model from their choice of plugins.
GCM also provides an experiment management system.
Each plugin contains zero to many data objects that define the initial state of its actors and data managers. Each such data object may be altered freely.
The complete set of all combinations (scenarios) of the variant plugin data objects form an experiment and a separate simulation instance is executed for each combination.
- Maven 3.8.x
- Java 17
- Your favroite IDE for developing Java projects
- Modeling Utilities located here
*Note that Modeling Utilities is in Maven Central, so there is no need to clone and build it.
To build this project:
- Clone the repo
- open a command line terminal
- navigate to the root folder of this project
- run the command:
mvn clean install
The documentation can be found at https://hhs.github.io/ASPR-8/
The documentation contains lessons which the code can be found in lessons.