1 #ifndef COVIDSIM_MODEL_H_INCLUDED_ 2 #define COVIDSIM_MODEL_H_INCLUDED_ 5 #include "MachineDefines.h" 23 int PlaceLinks[NUM_PLACE_TYPES];
24 float infectiousness, susc,ProbAbsent,ProbCare;
26 unsigned int esocdist_comply : 1;
27 unsigned int keyworker : 1;
28 unsigned int to_die : 1;
29 unsigned int detected : 1;
31 unsigned char Travelling;
33 unsigned char quar_comply;
34 unsigned char num_treats;
35 Severity Severity_Current, Severity_Final;
37 unsigned short int PlaceGroupLinks[NUM_PLACE_TYPES];
38 short int infect_type;
41 unsigned short int detected_time;
42 unsigned short int absent_start_time, absent_stop_time;
43 unsigned short int quar_start_time, isolation_start_time;
44 unsigned short int infection_time, latent_time;
45 unsigned short int recovery_or_death_time;
46 unsigned short int SARI_time, Critical_time, RecoveringFromCritical_time;
47 unsigned short int treat_start_time, treat_stop_time, vacc_start_time;
48 unsigned int digitalContactTraced : 1;
49 unsigned int index_case_dct : 2;
50 unsigned int digitalContactTracingUser : 1;
51 unsigned short int dct_start_time, dct_end_time, dct_trigger_time, dct_test_time;
59 unsigned short int nh;
61 unsigned short int nhr;
75 short int infect_type;
88 unsigned short int contact_time;
98 int S, L, I, R, D, cumI, cumR, cumD, cumC, cumTC, cumFC, cumDC, trigDC;
100 int cumCT, cumCC, DCT, cumDCT;
101 int cumC_country[MAX_COUNTRIES];
102 int cumHQ, cumAC, cumAA, cumAH, cumACS, cumAPC, cumAPA, cumAPCS;
104 int cumIa[NUM_AGE_GROUPS], cumCa[NUM_AGE_GROUPS], cumDa[NUM_AGE_GROUPS];
105 int cumI_adunit[MAX_ADUNITS], cumC_adunit[MAX_ADUNITS], cumD_adunit[MAX_ADUNITS], cumT_adunit[MAX_ADUNITS], cumH_adunit[MAX_ADUNITS], cumDC_adunit[MAX_ADUNITS];
106 int cumCT_adunit[MAX_ADUNITS], cumCC_adunit[MAX_ADUNITS], trigDC_adunit[MAX_ADUNITS];
107 int cumDCT_adunit[MAX_ADUNITS], DCT_adunit[MAX_ADUNITS];
108 int cumItype[INFECT_TYPE_MASK], cumI_keyworker[2], cumC_keyworker[2], cumT_keyworker[2];
110 int n_queue[MAX_NUM_THREADS];
111 int* p_queue[NUM_PLACE_TYPES], *pg_queue[NUM_PLACE_TYPES], np_queue[NUM_PLACE_TYPES];
112 int NumPlacesClosed[NUM_PLACE_TYPES], n_mvacc, mvacc_cum;
114 double sumRad2, maxRad2, cumT, cumV, cumVG, cumUT, cumTP, cumV_daily, cumVG_daily;
115 int* CellMemberArray, *CellSuscMemberArray;
118 int nct_queue[MAX_ADUNITS];
120 int ndct_queue[MAX_ADUNITS];
121 int contact_dist[MAX_CONTACTS+1];
122 double* origin_dest[MAX_ADUNITS];
125 int Mild, ILI, SARI, Critical, CritRecov, cumMild, cumILI, cumSARI, cumCritical, cumCritRecov;
126 int Mild_adunit[MAX_ADUNITS], ILI_adunit[MAX_ADUNITS], SARI_adunit[MAX_ADUNITS], Critical_adunit[MAX_ADUNITS], CritRecov_adunit[MAX_ADUNITS];
128 int cumMild_adunit[MAX_ADUNITS], cumILI_adunit[MAX_ADUNITS], cumSARI_adunit[MAX_ADUNITS], cumCritical_adunit[MAX_ADUNITS], cumCritRecov_adunit[MAX_ADUNITS];
129 int Mild_age[NUM_AGE_GROUPS], ILI_age[NUM_AGE_GROUPS], SARI_age[NUM_AGE_GROUPS], Critical_age[NUM_AGE_GROUPS], CritRecov_age[NUM_AGE_GROUPS];
131 int cumMild_age[NUM_AGE_GROUPS], cumILI_age[NUM_AGE_GROUPS], cumSARI_age[NUM_AGE_GROUPS], cumCritical_age[NUM_AGE_GROUPS], cumCritRecov_age[NUM_AGE_GROUPS];
133 int cumDeath_ILI, cumDeath_SARI, cumDeath_Critical;
134 int cumDeath_ILI_adunit[MAX_ADUNITS], cumDeath_SARI_adunit[MAX_ADUNITS], cumDeath_Critical_adunit[MAX_ADUNITS];
135 int cumDeath_ILI_age[NUM_AGE_GROUPS], cumDeath_SARI_age[NUM_AGE_GROUPS], cumDeath_Critical_age[NUM_AGE_GROUPS];
158 double t, S, L, I, R, D, incC, incTC, incFC, incI, incR, incD, incDC ;
160 double CT, incCT, incCC, DCT, incDCT;
161 double incC_country[MAX_COUNTRIES];
162 double cumT, cumUT, cumTP, cumV, cumTmax, cumVmax, cumDC, extinct, cumVG;
163 double incHQ, incAC, incAH, incAA, incACS, incAPC, incAPA, incAPCS;
164 double incIa[NUM_AGE_GROUPS], incCa[NUM_AGE_GROUPS], incDa[NUM_AGE_GROUPS];
165 double incItype[INFECT_TYPE_MASK], Rtype[INFECT_TYPE_MASK], Rage[NUM_AGE_GROUPS], Rdenom;
166 double rmsRad, maxRad, PropPlacesClosed[NUM_PLACE_TYPES], PropSocDist;
167 double incI_adunit[MAX_ADUNITS], incC_adunit[MAX_ADUNITS], cumT_adunit[MAX_ADUNITS], incD_adunit[MAX_ADUNITS], cumD_adunit[MAX_ADUNITS], incH_adunit[MAX_ADUNITS], incDC_adunit[MAX_ADUNITS];
168 double incCT_adunit[MAX_ADUNITS], incCC_adunit[MAX_ADUNITS], incDCT_adunit[MAX_ADUNITS], DCT_adunit[MAX_ADUNITS];
169 double incI_keyworker[2], incC_keyworker[2], cumT_keyworker[2];
173 double Mild, ILI, SARI, Critical, CritRecov;
174 double incMild, incILI, incSARI, incCritical, incCritRecov;
175 double cumMild, cumILI, cumSARI, cumCritical, cumCritRecov;
176 double incDeath_ILI, incDeath_SARI, incDeath_Critical;
177 double cumDeath_ILI, cumDeath_SARI, cumDeath_Critical;
181 double Mild_adunit[MAX_ADUNITS], ILI_adunit[MAX_ADUNITS], SARI_adunit[MAX_ADUNITS], Critical_adunit[MAX_ADUNITS], CritRecov_adunit[MAX_ADUNITS];
182 double incMild_adunit[MAX_ADUNITS], incILI_adunit[MAX_ADUNITS], incSARI_adunit[MAX_ADUNITS], incCritical_adunit[MAX_ADUNITS], incCritRecov_adunit[MAX_ADUNITS];
183 double cumMild_adunit[MAX_ADUNITS], cumILI_adunit[MAX_ADUNITS], cumSARI_adunit[MAX_ADUNITS], cumCritical_adunit[MAX_ADUNITS], cumCritRecov_adunit[MAX_ADUNITS];
184 double incDeath_ILI_adunit[MAX_ADUNITS], incDeath_SARI_adunit[MAX_ADUNITS], incDeath_Critical_adunit[MAX_ADUNITS];
185 double cumDeath_ILI_adunit[MAX_ADUNITS], cumDeath_SARI_adunit[MAX_ADUNITS], cumDeath_Critical_adunit[MAX_ADUNITS];
188 double Mild_age[NUM_AGE_GROUPS], ILI_age[NUM_AGE_GROUPS], SARI_age[NUM_AGE_GROUPS], Critical_age[NUM_AGE_GROUPS], CritRecov_age[NUM_AGE_GROUPS];
189 double incMild_age[NUM_AGE_GROUPS], incILI_age[NUM_AGE_GROUPS], incSARI_age[NUM_AGE_GROUPS], incCritical_age[NUM_AGE_GROUPS], incCritRecov_age[NUM_AGE_GROUPS];
190 double cumMild_age[NUM_AGE_GROUPS], cumILI_age[NUM_AGE_GROUPS], cumSARI_age[NUM_AGE_GROUPS], cumCritical_age[NUM_AGE_GROUPS], cumCritRecov_age[NUM_AGE_GROUPS];
191 double incDeath_ILI_age[NUM_AGE_GROUPS], incDeath_SARI_age[NUM_AGE_GROUPS], incDeath_Critical_age[NUM_AGE_GROUPS];
192 double cumDeath_ILI_age[NUM_AGE_GROUPS], cumDeath_SARI_age[NUM_AGE_GROUPS], cumDeath_Critical_age[NUM_AGE_GROUPS];
213 double infectee_x, infectee_y, t, t_infector;
214 int run, infectee_ind, infector_ind, type, infectee_adunit, listpos, infectee_cell, infector_cell, thread;
251 int num_mcell, num_place, Inv_prop_traffic[129], Inv_DestMcells[1025], Inv_DestPlaces[1025];
252 unsigned short int num_connected, *conn_airports;
253 float total_traffic, loc_x, loc_y;
272 unsigned short int country;
274 int* places[NUM_PLACE_TYPES];
275 unsigned short int np[NUM_PLACE_TYPES];
276 unsigned short int moverest, placeclose, socdist, keyworkerproph, move_trig, place_trig, socdist_trig, keyworkerproph_trig;
277 unsigned short int move_start_time, move_end_time;
278 unsigned short int place_end_time, socdist_end_time, keyworkerproph_end_time;
279 unsigned short int treat, vacc, treat_trig, vacc_trig;
280 unsigned short int treat_start_time, treat_end_time;
281 unsigned short int vacc_start_time;
294 int n, S, L, I, R, D, cumTC, S0, tot_treat, tot_vacc;
295 int* members, *susceptible, *latent, *infected;
297 float tot_prob, *cum_trans, *max_trans;
298 short int CurInterv[MAX_INTERVENTION_TYPES];
314 unsigned short int ng, treat, control_trig, country;
315 unsigned short int close_start_time, close_end_time, treat_end_time;
316 unsigned short int* AvailByAge;
317 unsigned short int Absent[MAX_ABSENT_TIME], AbsentLastUpdateTime;
320 int* group_start, *group_size, *members;
330 int InterventionType, DoAUThresh, NoStartAfterMin,dummy;
331 double StartTime, StopTime, MinDuration, RepeatInterval, TimeOffset;
332 double StartThresholdHigh, StartThresholdLow, StopThreshold, Level, LevelCellVar, LevelAUVar, LevelCountryVar, ControlParam, LevelClustering;
333 unsigned int MaxRounds, MaxResource;
341 int id, cnt_id, NI, n;
342 Intervention InterventionList[MAX_INTERVENTIONS_PER_ADUNIT];
343 char cnt_name[96], ad_name[200];
344 int NP, place_close_trig;
345 double CaseIsolationTimeStart, HQuarantineTimeStart, DigitalContactTracingTimeStart;
346 double SocialDistanceTimeStart, PlaceCloseTimeStart;
348 double SocialDistanceDelay, HQuarantineDelay, CaseIsolationDelay, PlaceCloseDelay, DCTDelay;
349 double SocialDistanceDuration, HQuarantineDuration, CaseIsolationPolicyDuration, PlaceCloseDuration, DCTDuration;
358 extern PopVar State, StateT[MAX_NUM_THREADS];
359 extern Cell* Cells, ** CellLookup;
360 extern Microcell* Mcells, ** McellLookup;
361 extern Place** Places;
367 extern Results* TimeSeries, *TSMean, *TSVar, *TSMeanNE, *TSVarNE, *TSMeanE, *TSVarE;
370 extern Events* InfEventLog;
374 extern double inftype[INFECT_TYPE_MASK], inftype_av[INFECT_TYPE_MASK], infcountry[MAX_COUNTRIES], infcountry_av[MAX_COUNTRIES], infcountry_num[MAX_COUNTRIES];
375 extern double indivR0[MAX_SEC_REC][MAX_GEN_REC], indivR0_av[MAX_SEC_REC][MAX_GEN_REC];
376 extern double inf_household[MAX_HOUSEHOLD_SIZE + 1][MAX_HOUSEHOLD_SIZE + 1], denom_household[MAX_HOUSEHOLD_SIZE + 1];
377 extern double inf_household_av[MAX_HOUSEHOLD_SIZE + 1][MAX_HOUSEHOLD_SIZE + 1], AgeDist[NUM_AGE_GROUPS], AgeDist2[NUM_AGE_GROUPS];
378 extern double case_household[MAX_HOUSEHOLD_SIZE + 1][MAX_HOUSEHOLD_SIZE + 1], case_household_av[MAX_HOUSEHOLD_SIZE + 1][MAX_HOUSEHOLD_SIZE + 1];
379 extern double PropPlaces[NUM_AGE_GROUPS * AGE_GROUP_WIDTH][NUM_PLACE_TYPES];
380 extern double PropPlacesC[NUM_AGE_GROUPS * AGE_GROUP_WIDTH][NUM_PLACE_TYPES], AirTravelDist[MAX_DIST];
381 extern double PeakHeightSum, PeakHeightSS, PeakTimeSum, PeakTimeSS;
383 extern int DoInitUpdateProbs;
385 #endif // COVIDSIM_MODEL_H_INCLUDED_
int cumMild_adunit[MAX_ADUNITS]
cum incidence quantities. (+ by admin unit)
Recorded time-series variables (typically populated from the POPVAR state)
The basic unit of the simulation and is associated to a geographical location.
Used for computing spatial interactions more efficiently.
The global state of the model.
Represents an institution that people may belong to.
int cumMild_age[NUM_AGE_GROUPS]
cum incidence quantities. (+ by age group)
A political entity that administers a geographical area.
Deprecated intervention mechanism.