z1..m(t+1)=f(z1..m(t),i1..n(t), p1..l,t)
i1..n: inputs (maps)
p1..l: parameters (maps)
z1..m: model variables
f: the model (set of functions run for each timestep)