Example Disease with Parameter Uncertainty and Custom Equation¶
A SIR model for an example disease with parameter uncertainty, a custom written equation and a ramped intervention
ExampleParameterUncertaintyCustomModel(config)
¶
Bases: Model
A simple SIR compartmental model for Example Disease with Parameter Uncertainty and Custom Equation.
Initialize the model from a validated simulation config.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
config
|
dict
|
Validated simulation configuration produced by the framework's config loader. |
required |
Source code in compartment/models/example_parameter_uncertainty_custom_model/model.py
define_parameters(schema)
classmethod
¶
Declare the model's compartments, transmission edges, and parameters.
Called once by the framework to build the model schema, from which the config validator and parameter set are generated.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
schema
|
ParameterSchemaBuilder
|
Schema builder to populate with
model info, compartments, transmission edges, disease
parameters, and the intervention consumed by
|
required |
Source code in compartment/models/example_parameter_uncertainty_custom_model/model.py
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 | |
prepare_initial_state()
¶
Return the initial compartment populations for the solver.
Expands the population matrix from (compartments × zones) to (compartments × age groups × zones) using the declared demographic weights.
Returns:
| Type | Description |
|---|---|
ndarray
|
Population matrix (compartments x age groups x admin zones) used as the solver's initial state. |
Source code in compartment/models/example_parameter_uncertainty_custom_model/model.py
custom_intervention(t, beta)
¶
Scale beta by a hand-written intervention that ramps gradually.
Replaces the built-in _apply_interventions helper. Reads the
my_intervention adherence, transmission reduction, and active date
window from the config-loaded intervention object, then instead of
switching on and off instantly it climbs linearly from baseline to full
effect over ramp_up_days from the start date, holds through the
window, and falls back to baseline over ramp_down_days after the end
date (both read from the config's "Disease" block). The full effect
matches the framework's beta * (1 - adherence *
transmission_reduction), scaled by the ramp; jnp.clip keeps this
JAX-traceable since t is a traced value.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
t
|
float
|
Current time in days since the simulation start date (a traced JAX value). |
required |
beta
|
float
|
Baseline transmission rate to scale. |
required |
Returns:
| Type | Description |
|---|---|
ndarray
|
Transmission rate after applying the ramped
intervention, or |
Source code in compartment/models/example_parameter_uncertainty_custom_model/model.py
equation(y, t, p)
¶
Compute the compartment derivatives for a single integration step.
Builds the SIR derivatives by hand. Applies custom_intervention to
beta and mixes age groups through self.contact_matrix (zones through
self.travel_matrix, which is the identity when mobility is off).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
y
|
ndarray
|
Current compartment values, ordered by
|
required |
t
|
float
|
Current time in days since the simulation start date. |
required |
p
|
tuple
|
Packed parameter tuple, unpacked via |
required |
Returns:
| Type | Description |
|---|---|
ndarray
|
Stacked per-compartment derivatives (dy/dt). |