Escalator Boxcar Train – Frequently Asked Questions


How do I graph a population state distribution using equidistant state intervals for the classification?

Cohorts in the EBT are always closed off after a fixed amount of time. If you would include age as an individual state variable, you would see an equidistant cohort distribution on this age axis. More precisely, the age distribution would be a number of peaks positioned at the average individual age within the cohort. This might not be exactly in the middle of the left and right age boundary of the cohort (it usually isn't), but the width of all cohorts would be identical. This is however not the case when you have a structuring variable like size or nitrogen content, which develops at a time-dependent rate. In that case cohorts "pile up". However, the EBT tool can still help you to generate a proper size-distribution. Here is how: use a "State graph" to plot the population distribution. The "Style" tab for a particular data set now gives you a "Curve type" option. The interesting types are "Bars", which represents the cohorts as spikes of an appropriate height at the average value of the i-state variable, and "Histogram". This latter option calculates a population distribution (histogram) for an specified equidistant spacing of intervals on the appropriate i-state-variable axis. You can specify the spacing by choosing the lower and upper bound of the axis and specifying the number of bars in the histogram.

How can I use the EBTtool for bifurcation studies, analyzing population dynamics as a function of a parameter?

The latest version of the EBT contains all the necessary procedures to carry out bifurcation studies. To study population dynamics as a function of one parameter that is varied, simply include the following define statement in the problem-specific header file:

#define BIFURCATION1

If the macro BIFURCATION is set to 1 the program will carry out an integration run over a very long time, during which it will stepwise increase one parameter at regular intervals. The duration of these intervals, during which the bifurcation parameter is constant, equals the maximum integration time that is specified in the CVF file. Because the bifurcation parameter is increased during a single integration run, the initial state of the population for a particular value of the bifurcation parameter is the final state that was reached for the previous value of the parameter. The advantage of this strategy is that a particular type of population dynamics (or attractor in technical terms) is easily followed and continued with changing parameter value, as long as the attractor is stable. This minimizes the influence of the initial condition on the type of attractor that is ultimately reached at a particular parameter value. With this strategy bistability between multiple attractors can be studied by combining bifurcation runs in which the parameter is increased over time with studies in which it is decreased.

The use of the bifurcation feature of the program further requires that the CVF file contains 6 additional lines with control variables following the specification of all model parameters. These lines should, for example, look like:

”Index of the bifurcation parameter”3.0
"Step size in the bifurcation parameter"0.1
"Final value of the bifurcation parameter"10.0
"Linear (0) or logarithmic (1) parameter change"0.0
"Period of output generation in bifurcation"100.0
"Period of state output in bifurcation"0.0

The first additional control variable specifies the index number of the parameter that should be changed, while the second and third determine the step size and the final value of the parameter. The fourth control variable determines whether parameter steps should be additive (on a linear scale) or multiplicative (on a logarithmic scale).

The fifth and sixth additional control variable determine the time period within the integration interval for 1 particular parameter value, during which normal and state output is generated. For example, if the parameter is changed every 250 time units (that means the maximum integration time is set to 250.0 in the CVF file), the above value determines that normal output is discarded for the first 150 of these 250 time units, but written to file for the last 100 time units, while state output is only generated at the very end of the 250 time units.