Simile v5.9 is a maintenance release, providing incremental improvements to many existing features and fixing some problems that have come up.
Improvements to debug mode messages:
- Components are referred to by their captions rather than their internal names
- Enumerated type index values are given correctly rather than as numbers
- Some cases in which the error was described wrongly have been fixed
- If some model process is taking a very long time, hitting 'stop' will now offer to abort execution as it does in compiled runs, and the message will say what was being done when aborted
- Equation listings now include values' units
Broken features fixed:
- Ability to use grid or polygon visualization tools to enter values to model components
- If the instances of an association submodel are never created or deleted except when their base submodels are, then only association of new base members are checked when updating membership, which improves performance
- Loading a complete model with execution setup into a submodel window would try to run it, which caused cryptic messages. Now it just loads as a submodel.
- The 'undo' and 'redo' buttons now update a submodel's border, caption and background appearance correctly when they have been changed
- Circumstances in which autosave file failed to be created have been fixed
- PEST interface could not use current values of array parameters as estimates, now it can
Issues with function behaviour:
- Functions time() and dt() gave wrong value if used in the equation for the initial value of a compartment
- Some statistical functions, e.g., poidev(), gave arrays of identical results when replicated explicitly, but they should all be separate deviates
- 'in_preceding()' function did not always do the right thing if its argument was an array -- now it does.
- Nested variable-membership submodels did not get initialized properly if inner one's membership is fixed throughout life of outer one, but outer one's membership varies over time
- If sliders etc were used to set multidimensional parameter values, they could end up setting the wrong values, even values of other components, and occasionally crash the model
- Some numerical constants could not be entered in equations
- Including ghosts in alarm (iterative) submodels stopped model building
- Including backslash character in a comment stopped model building
- A user-defined functions file with DOS-style line endings would cause the Linux version to fail to start.
Problems with units fixed:
- The result of a sketch graph function would get the same units as its argument, which is not justifiable. Graph functions are now treated like trig functions -- result and arguments must be dimensionless (explicit dimension conversion in equations has now been documented).
- It was possible to do multiplication and division on enumerated type values, which defeats much of the point of enumerated types. Trying to do this now produces a sensible error message.
- A warning is now given if a dimensionless value is used as an input parameter or component's units, as the behaviour this implies can be confusing
- If you type something inappropriate for a parameter's local name or units in the equation dialogue, you can now cancel the dialogue without having to re-enter the previous value
- Defining large numbers of enumerated types stopped doubleclicks opening the equation dialogue -- now sorted
- Simile would fail to launch if some of its temporary files were missing or corrupt -- it now starts anyway and re-creates them
- Messages about adding sliders for all components in a submodel now disappear when no longer relevant
- If you type an equation in the dialogue box and format it for legibility with newlines and whitespace, this formatting is now preserved if you later edit it in the equation bar (where you cannot see it)
- Trying to add a flow from a point on an existing flow would put the model editor into an odd state. This no longer happens, but a future version may include splitting flows as a feature.
- Text items can now be different sizes, include any characters, and word wrap to different width
- Components can be added more rapidly (this sometimes failed under Windows)
- Linux version produced two confirmation dialogues when attempting to quit without saving -- one is enough
- The application is a little faster to launch