When the simulation begins, an error window will be created to report all errors, warnings, and messages. This window behaves exactly like tool output windows.
Any errors encountered in a simulation will terminate the simulation and you will receive a message explaining why. Warnings will not terminate a simulation. Warnings arise from Lookups that have gone out of range and from variables that have gone beyond their specified low/high range. If there are no errors, warnings, or informational messages, no error window will be created.
Information messages are displayed telling you what Changes files are being used.
Warnings occur because of range violations and Lookup overruns. The format for these is very similar. The first time something goes above or below its normal range it is reported, then nothing is reported until it returns to inside its normal range. For example, you might get messages like the following.
WARNING: At 0 Below FIRST LOOKUP computing first var
WARNING: At 3 In FIRST LOOKUP computing first var
WARNING At 4 Above lonely var
WARNING At 7 In lonely var
WARNING At 8 Below lonely var
This indicates that the input to FIRST LOOKUP was smaller than the first value in the X-axis for the Lookup at time 0, and remained below this minimum value until time 3, when it went above the minimum value. After time 3 the input to FIRST LOOKUP remained between the first and last X-axis values of the Lookup. The value for lonely var went above the maximum bound for this variable at time 4, returned into normal range at time 7, and then went below the range at time 8.
Error messages are displayed if a file (such as a Changes file) cannot be found or if Vensim was unable to interpret information. These errors will cause the simulation to be aborted. Fix the files or names mentioned and simulate again.
If you have a model with Data variables and not all of those data variables are contained in the data files Vensim will issues a warning message and attempt to proceed assigning a :NA: to the Data variable. These warnings cannot be suppressed. If the data is used extensively in the model it is likely to cause a floating point error. It is, however, sometimes convenient to be able to proceed even when there is missing data and thus the simulation is not aborted.
If there was a division by zero or other overflow during a simulation (a variable's value got too large) you will also receive an error message. This message will tell you what equation was being computed when the overflow occurred. The simulation will be stopped and all results to that time stored. The results at the time of the error will also be stored if possible. You can then review the run to discover the cause of the error.
Active Initial Differences
Another type of simulation warning message is the reporting of differences between initial values and the first active value computed. These difference occur only when you use the ACTIVE INITIAL function. Suppose, for example, that you have the following equations:
Visibility = INTEG((indicated visibility-Visibility)/
TIME ADJUST VISIBILITY,indicated visibility) ~Page ~|
indicated visibility = enduser demand * PAGE FROM VOLUME ~Page ~|
enduser demand = ACTIVE INITIAL(BASE DEMAND *
PRODUCT VISIBILITY F(Visibility/REF VISIBILITY) *
PRODUCT PRICE F(Price/REF PRICE),
BASE DEMAND) ~Widget/Year~|
The last of these equations is being used to get around an initial simultaneous value error that would otherwise result. Now suppose that Price is initialized at 1.5 and REF PRICE is just 1. The value of enduser demand is required to initialize Visibility, and will be set at BASE DEMAND. However, when enduser demand is computed at the initial time (given the values of all the levels), it will be different because of the different price. When you do a simulation you will see the messages:
For this example, this message is an indication of a formulation problem — Price should be initialized more accurately. In general, there might be small differences that you will not want to worry about. You can control whether or not an error message gets reported by setting the Active Initial Relative and Absolute fields in the Global Options dialog Settings tab. Differences will be reported only if they are larger in absolute value than the absolute number you enter, and larger relative to the initial value by the relative number you enter. For example, a relative error threshold of .5 would have prevented these messages from being reported.
If you want to look more closely at initial computations, selecting the integration type Diff will cause the initially computed values to be reported at Time 0 and the first active values to be reported at the next SAVEPER.