Skip to content

Commit e472da3

Browse files
authored
Revise SimPathsModel page for clarity
1 parent 71c3374 commit e472da3

1 file changed

Lines changed: 11 additions & 10 deletions

File tree

documentation/wiki/developer-guide/internals/simpaths-model.md

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,27 @@
11
# The SimPathsModel Class
22

3-
``_Under Construction_``
4-
5-
This page complements [4.05 - The Model and the Schedule] by explaining how SimPaths instantiates the generic JAS-mine scheduling framework in practice. It documents current SimPaths practice, not theory or design justification. It is not a complete specification of the model's behaviour, and should be read together with the codebase and validation documentation.
3+
This page complements **[4.05 - The Model and the Schedule]** by explaining how SimPaths instantiates the generic JAS-mine scheduling framework in practice. It documents current SimPaths practice, not theory or design justification. It is not a complete specification of the model's behaviour, and should be read together with the codebase and validation documentation.
64

75
## 1. The SimPaths model manager
86

97
The core simulation logic in SimPaths is implemented in a model manager class that extends _AbstractSimulationManager_ and implements EventListener.
108

119
The SimPaths model class functions primarily as a coordinator of simulation structure. Its primary responsibilities are to initialise the population and global data structures, define the temporal structure of the simulation via schedules, and respond to aggregate-level events.
1210

13-
### **Model construction**:
11+
### Model construction
1412

1513
The **buildObjects()** method defines the initial simulation state before any time evolution takes place.
14+
1615
In SimPaths, this phase typically includes:
17-
* Initialising random number generators, including the creation of separate random streams for different modules (e.g. matching, alignment, initialisation), to reduce unintended coupling between processes.
18-
* Loading global parameters and projections for the simulation horizon.
19-
* Preparing auxiliary infrastructures, such as indices for tax-benefit donor data.
20-
* Creating the initial population by loading or constructing Person, BenefitUnit, and Household objects, including any required population expansion or preprocessing.
21-
* Initialising internal state variables (e.g. the simulation year counter).
2216

23-
### Simulation execution schedule
17+
- Initialising random number generators, including the creation of separate random streams for different modules (e.g. matching, alignment, initialisation), to reduce unintended coupling between processes.
18+
- Loading global parameters and projections for the simulation horizon.
19+
- Preparing auxiliary infrastructures, such as indices for tax-benefit donor data.
20+
- Creating the initial population by loading or constructing `Person`, `BenefitUnit`, and `Household` objects, including any required population expansion or preprocessing.
21+
- Initialising internal state variables, such as the simulation year counter.
22+
23+
24+
### Simulation execution schedule:
2425

2526
The temporal structure of the simulation is defined in the **buildSchedule()** method. This method specifies the sequence of events that govern the evolution of the simulated population and determines how processes are executed over time. All model dynamics are implemented as events managed by the JAS-mine discrete-event simulation engine.
2627

0 commit comments

Comments
 (0)