### internal function set_param <- function(type = "SEIQHRF", nsteps = 366, nsims = 8, ncores = 4, prog.rand = FALSE, quar.rand = TRUE, hosp.rand = TRUE, disch.rand = TRUE, rec.rand = TRUE, arec.rand = TRUE, fat.rand = TRUE, infection.FUN = 'infection.FUN', # infection.seiqhrf.icm, recovery.FUN = 'recovery.FUN', # progress.seiqhrf.icm, departures.FUN = 'departures.FUN', # departures.seiqhrf.icm, arrivals.FUN = 'arrivals.FUN', # arrivals.seiqhrf.icm, get_prev.FUN = 'get_prev.FUN', # get_prev.seiqhrf.icm, # init.icm params s.num = 9997, e.num=0, i.num = 3, q.num=0, h.num=0, r.num = 0, f.num = 0, # param.icm params inf.prob.e = 0.02, act.rate.e = 10, inf.prob.i = 0.05, act.rate.i = 10, inf.prob.q = 0.02, act.rate.q = 2.5, prog.rate = 1/10, quar.rate = 1/30, hosp.rate = 1/100, disch.rate = 1/15, rec.rate = 0.071, arec.rate = 0.05, prog.dist.scale = 5, prog.dist.shape = 1.5, quar.dist.scale = 1, quar.dist.shape = 1, hosp.dist.scale = 1, hosp.dist.shape = 1, disch.dist.scale = 1, disch.dist.shape = 1, rec.dist.scale = 35, rec.dist.shape = 1.5, arec.dist.scale = 35, arec.dist.shape = 1.5, fat.rate.base = 1/50, hosp.cap = 40, fat.rate.overcap = 1/25, fat.tcoeff = 0.5, vital = TRUE, a.rate = (10.5/365)/1000, a.prop.e = 0.01, a.prop.i = 0.001, a.prop.q = 0.01, ds.rate = (7/365)/1000, de.rate = (7/365)/1000, di.rate = (7/365)/1000, dq.rate = (7/365)/1000, dh.rate = (20/365)/1000, dr.rate = (7/365)/1000, out="mean" ) { control <- control.icm(type = type, nsteps = nsteps, nsims = nsims, ncores = ncores, prog.rand = prog.rand, quar.rand = quar.rand, hosp.ramd = hosp.rand, disch.rand = disch.rand, rec.rand = rec.rand, arec.rand = arec.rand, infection.FUN = infection.FUN, recovery.FUN = recovery.FUN, arrivals.FUN = arrivals.FUN, departures.FUN = departures.FUN, get_prev.FUN = get_prev.FUN) init <- EpiModel::init.icm(s.num = s.num, e.num = e.num, i.num = i.num, q.num = q.num, h.num = h.num, r.num = r.num, f.num = f.num) param <- EpiModel::param.icm(inf.prob.e = inf.prob.e, act.rate.e = act.rate.e, inf.prob.i = inf.prob.i, act.rate.i = act.rate.i, inf.prob.q = inf.prob.q, act.rate.q = act.rate.q, prog.rate = prog.rate, quar.rate = quar.rate, hosp.rate = hosp.rate, disch.rate = disch.rate, rec.rate = rec.rate, arec.rate = arec.rate, prog.dist.scale = prog.dist.scale, prog.dist.shape = prog.dist.shape, quar.dist.scale = quar.dist.scale, quar.dist.shape = quar.dist.shape, hosp.dist.scale = hosp.dist.scale, hosp.dist.shape = hosp.dist.shape, disch.dist.scale = disch.dist.scale, disch.dist.shape = disch.dist.shape, rec.dist.scale = rec.dist.scale, rec.dist.shape = rec.dist.shape, arec.dist.scale = arec.dist.scale, arec.dist.shape = arec.dist.shape, fat.rate.base = fat.rate.base, hosp.cap = hosp.cap, fat.rate.overcap = fat.rate.overcap, fat.tcoeff = fat.tcoeff, vital = vital, a.rate = a.rate, a.prop.e = a.prop.e, a.prop.i = a.prop.i, a.prop.q = a.prop.q, ds.rate = ds.rate, de.rate = de.rate, di.rate = di.rate, dq.rate = dq.rate, dh.rate = dh.rate, dr.rate = dr.rate) return(list(control = control, param = param, init = init)) }