====== Over All Time vs One Time-Step at A Time ====== Terminalogy definition to set it up maybe reference [[:glossary#c|calculator ]] FIXME Suppose you have 2 models, model1 and model2, and some of the outputs of the model1 are to be used as inputs to model2. Both models are to be run over time. Two ways of implementing this are: 1)temporally sequential (one time step at a time over all models) update diagram to two processes (e.g. population and stock driven by pop) FIXME Marcus {{:concepts:sequential.png|}} set time = first time evaluate model1 evaluate model2 if time = last time finish set time = time + timeStep and go to evaluate model1 2)temporally blockwise (over all time one model at a time) {{:concepts:parallel.png|}} evaluate model1 for all time evaluate model2 for all time The advantages of the temporally blockwise method is that each model can be explored without having to always recalculate the other models. These advantages increase combinatorial as the number of models used to represent the system increases. This method also lends itself to transforming existing models to variants by [[concepts:feedback_in_whatif|feedback]] without having to carry the calculational baggage of having to execute all the other models. For example suppose model1 was a conventional cohort population model with immigration as exogenous and model 2 was a transportation model with complex dependence on population by age. Now using feedback we want to transform the conventional cohort population model to one in which immigration was proportional to existing population. With the temporally blockwise method of handling time this can be done without ever having to evaluate model2. [Other advantages of this blockwise approach, or aspects of the Design Approach that rely on this approach: * tension, and expectation * computational efficiency, number of iterations to convergence when using feedback * modularity ] /* Rob's diagrams below, for potential inclusion or reference...? {{:concepts:control_1.png|}} {{:concepts:control_2.png|}} {{:concepts:control_3.png|}} */