Skip to content

Latest commit

 

History

History
84 lines (66 loc) · 4.08 KB

README.md

File metadata and controls

84 lines (66 loc) · 4.08 KB

GPL LICENSE GitHub tag (with filter) GitHub contributors GitHub Workflow Status (with event) GitHub Workflow Status (with event)

General Computational Model

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.

License

Distributed under the GPLv3 License. See LICENSE for more information.

Please read the HHS vulnerability discloure.

Usage

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>

Overview

There are 3 core tenants to GCM.

Simulation

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.

Plugins

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.

Experiment

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.

Building from Source

Requirements

  • 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.

Building

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

Documentation

The documentation can be found at https://hhs.github.io/ASPR-8/

Lessons

The documentation contains lessons which the code can be found in lessons.