1  Introduction

1.1 Who is this for?

The General Computation 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.

1.2 High level overview

1.2.1 Simulation

GCM is an event based simulation composed of data managers, actors, reports 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 and manages the flow of time.

1.2.2 Plugins

Data managers, actors and reports 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 contains a set of existing plugins that define many concepts useful to a broad range of models such as the management of people, their properties, social group structures and the like. The modeler is free to compose a model from their choice of plugins.

1.2.3 Experiment

GCM also provides a multi-threaded 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.