Novel Respiratory (SEIHDR)¶
An SEIHDR compartmental model for novel respiratory diseases with age-stratified transmission
CovidJaxModel(config)
¶
Bases: Model
SEIHDR compartmental model with age-stratified transmission and spatial mobility.
Initialize the model and adopt the config's compartment list.
The config's compartment_list may be a variant subset, so it
replaces the full schema-derived list.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
config
|
dict
|
Validated simulation configuration, including
|
required |
Source code in compartment/models/covid_jax_model/model.py
define_parameters(schema)
classmethod
¶
Declare the SEIHDR 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. Declares the six
S-E-I-H-D-R compartments, seven transmission edges, the mask-wearing /
social-isolation / lockdown / vaccination interventions, the
travel_sigma mobility field, and three age bands (0-17, 18-55, 56+)
whose age_range tags enable the country's Prem 2021 contact matrix.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
schema
|
ParameterSchemaBuilder
|
Schema builder to populate with model info, metadata, compartments, transmission edges, interventions, parameters, and demographic groups. |
required |
Source code in compartment/models/covid_jax_model/model.py
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 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 | |
build_travel_matrix(admin_zones)
¶
Build an inverse-square gravity travel matrix from travel_sigma.
Rows sum to 1 with the diagonal at 1 - sigma, so the force of
infection in equation() conserves each region's population.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
admin_zones
|
list[dict]
|
Admin-zone dicts with |
required |
Returns:
| Type | Description |
|---|---|
ndarray
|
The |
Source code in compartment/models/covid_jax_model/model.py
prepare_initial_state()
¶
Return the age-stratified initial populations for the solver.
Returns:
| Type | Description |
|---|---|
ndarray
|
Initial populations shaped
|
Source code in compartment/models/covid_jax_model/model.py
equation(y, t, p)
¶
Compute the compartment derivatives with an age-stratified force of infection.
Uses the conditional pattern: _compute_equations() handles the six
standard edges (E->I, I->H, I->D, H->D, I->R, H->R), while the S->E
force of infection mixes zones through the travel matrix and age groups
through the contact matrix and is applied manually via
_apply_flow(). Deceased and _total compartments are excluded
from the population that scales the frequency-dependent force of infection.
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). |