in_preceding function -- new in Simile v5.7
Usage: in_preceding(expression of any type) returns that type
Definition: Used in a multi-instance submodel, returns the value of the argument expression as it would be in the preceding instance of that submodel, or 0 or "false" in the first instance. The argument can include the function prev(0) to refer to the value in the previous submodel instance of the component in whose equation the in_preceding() function appears.
Note that a model that contains a circular set of influences can build and run properly if the input parameter associated with one of the influences is only used in the argument of an in_preceding() function. This is because since the value of the argument is calculated for one submodel instance and then used in the next, there is no actual circular dependency.
Example 1:
A 5-instance submodel contains a variable with the equation
index(1)+in_preceding(prev(0)).
The values will be:
1 3 6 10 15
Example 2:
An 8-instance submodel contains two variables, "received" and "forwarded". These are connected to one another by influences in each direction. The equation for "forwarded" is received/2. The equation for "received" is
if index(1)==1 then 200 else in_preceding(forwarded)
The values of "received" for the 8 instances will be:
200 100 50 25 12.5 6.25 3.125 1.5625
In: Contents >> Working with equations >> Functions >> Built-in functions