FAQ translation issues

This is a trial new page

This space is dedicated to share issues encountered during the re-implementation process with other STEEMI members

(Please add a new heading for any problem for disussion)

What should I do with equations of the form A = INTEG(B. C) in Vensim models (e.g. Hartmut Bossel's "System Zoo" models)?

The answer depends on the nature of the second argument for the INTEG function (i.e. C in the above template).

If C is a variable, probably called something like "INITIAL A", then you can ignore these equations altogether.

If C is a numeric value, e.g. 100, then use this value to initialise the stock (here called A) in the model diagram.

If C is an expression, e.g. D*E, then create these two variables (if they do not already exist, give them the values that will have been indicated elsewhere in the list of model equations, draw an influence arrow from each one to A, and enter the indicated equation in A.

In all cases, you ignore the first argument (shown as B above). This will usually have the form B1+2-B3-B4, and indicates all the inflows (positive) and outflows (negative) for a stock. Simile already knows these from the model diagram, so you don't need to provide that information.

What should I do if I come across some function (e.g. STEP, RAMP, LOOKUP) which Simile does not recognise?

It is possible that we have already provided a solution or work-around - see Non-standard functions to see if this is the case.

If we have not provided a solution or workaround, then:

- Let us know about it - post a message on the discussion forum; and

- As a short-term fix, provide a constant value in the place of the one that would be calculated by the function, justto get the model running. Make a note of what you have done, and include this note on the relevant page if you decide to upload the model.

How do I handle nested conditional (if...then...else) expressions?

It s quite common to come across an expression with the general form of:

if condition1 then

if condition2 then expression1 else expression 2

else

expression 3

For example:

if a>3 then

if b<5 then 7 else 8

else 0

In Vensim, this would be represented as

IF THEN ELSE (a>3, IF THEN ELSE(b<5, 7, 8), 0)

In Simile, you simply enclose the inner conditional in round brackets, e.g.

if a>3 then (if b<5 then 7 else 8) else 0