lookright

Release Notes Smart 1.3.3

Home

Release Notes

Download

Registration

What's new in Smart 1.3.3
Known issues
Contact
Release Notes Smart 1.3.2 (separate page)
Release Notes Smart 1.3.1 (separate page)
Release Notes Smart 1.3.0 (separate page)
Earlier release notes (separate page)

What's new in Smart 1.3.3

January 16, 2024

Presentation

Messages (errors, warnings, confirmations, informational) are now presented in a uniform way, using standard Windows message dialogs.

Model definition: formulas

Finally, the limit on the number of condition-formula pairs for conditional formulas has been removed. A new button Delete is introduced to remove the currently selected pair from the grid. The list of pairs grows automatically when the last row of the grid is selected, as for array families and array index specifications. Upon closing the model component dialog, only non-empty rows are stored.
Condition <default> is no longer protected for editing. This makes it easier to move the default condition to another formula. Duplicate or missing <default> conditions are now discovered when checking the model, but not when the model component dialog is closed.

Empty conditions and formulas could cause unexpected behaviour in some situations. This has been corrected.
Moreover, empty formulas or conditions will be shown in model listing and print now.

Model definition: tabulars

The concept of time-independent tabulars was not yet fully operational. Now all cases, including tabulars with another tabular as index variable, are checked and processed correctly.

The index variable of a tabular can be an array component now. And indexed tabulars can be used in fields like initial value. Previously, such cases would cause model check to crash.

Model definition: special states

For the definition of special states, the rules for fields have been simplified. Field Depends On must refer to a model component (other than function); other fields – except Condition – can refer to any time-independent component or value. When the value is numeric, it must be within the defined domain of the variable.
Some checks did not yet work properly for special states. As a consequence of the new rules, checks are complete now.

Special state kind Delay has been fully implemented. The delay must be positive (of course), and the (maximum) step size of integration must be smaller than the delay. When either of these constraints is violated, the runtime model will report the problem when started.
For special state kind Hysteresis, the offset must be positive. A similar check for this constraint has been introduced.

Special state kind Average is now flagged as deprecated. Its implementation gives a very poor approximation of the true running average. Instead, one should rely on the integration algorithm to compute the cumulative value of the observed variable, which can be divided by elapsed model time to obtain the average. When using Euler integration, the approximation is still relatively poor but already better than the value computed for the corresponding special state.

Model definition: errors and warnings

Previously, most errors during definition of model components would prevent the dialog from closing. Since version 1.3.3, only errors in the component name (Identity) are blocking. For all other issues, the user can choose to save the incomplete – or even incorrect – definition to return to it at a later stage. All errors are checked now during Model > Check.
When Smart detects a problem in the definition of a model component, and the user chooses to correct the issue, the offending field gets input focus.

Model check

Checks on minimum and maximum domain values have been added to the model check.
Many checks have been refined to cover exceptional cases.
Checking of proper use of <default> conditions is now part of model checking rather than part of defining model components.
Checks on combinations of tabulars and arrays are now working properly.
Some specific messages have been replaced by more generic ones, some new messages have been introduced.
For dependency checking, the full dependency path for circular dependencies (formerly "mutually dependent") is shown.

Expansion of models using arrays

Now, the expanded model can be saved even if it still contains errors. This might help solving the problems. Still, for consistency, after correcting errors in the expanded model, please make corresponding changes to the unexpanded model.
Since Smart version 1.3.1, links in the check window after array expansion did not work. This problem has been solved.
Some names will become a number by array expansion. For fields that require a name, this will now be flagged before expansion.

Model compile and runtime model

This version comes with a new compilation template. The differences are in the support of special states. When not using special states, models compiled with version 1.3.2 will still work. (Version 1.3.2 corrected a serious error in the template, so older models must be compiled again anyway.)

Experiment definition

Some changes to experiment fields were not recorded as changes to the current experiment. Also, the last changed field was not always processed before saving the experiment or making listings.
All changes in experiments are now processed before saving, producing listings and similar actions. This may cause an error message on wrong values that were not yet checked, typically because the focus was still on the corresponding text field in the user interface.

When saving or opening an experiment, Smart now performs the same checks as when opening the simulation window. While any detected errors cannot be ignored for the simulation window, the user can choose to ignore such errors when saving or opening an experiment.

Import

Importing a model or experiment without specifiying the filename would result in a cryptic error message. Now, importing will not even start when the filename has not been specified.

In rare cases, import of an incomplete model would miss some fields. (Import of complete models was not affected.) Compilation of an incomplete model would sometimes start but fail. These problems have been corrected now.

When importing an experiment, tabulars and special states as outputs were ignored. They are imported correctly now.

Example models

This version comes with a new example model Special States Showcase. This model has been created to illustrate and test the various kinds of special state variables.

Help files, manual

Cleaned up the list of potential error message for the Check window.
Added a section on field types and restrictions of model and experiment data under technical information.
Updated the help files according to the changes listed above.
Corrected a number of small mistakes and added some missing error messages.

Known issues

Integration method RK4fixed does not combine well with discontinuities in formulas for state variables. At first sight the outcomes seem to be wrong. But in fact, this integration method combines derivatives at several points in the integration interval. In case of a discontinuity, this may lead to results that are mathematically incorrect. Variable step methods will at least reduce the step size around a discontinuity.

The order of existing variables in existing graphs is not changed when they are changed in the Define Output dialog. This issue is caused by the underlying graph component. As a work-around, one can add a table from the graph – implicitly carrying over all settings – and then add a new graph from that table.

Prints of listings and graphs do not always scale properly. Unfortunately, these are issues of underlying components, out of our control.

An early version of Smart supported customization of visibility of model components. This feature has not been maintained and is possibly broken. Please remove or rename any old .cst and .prv files that accompany your models.

If you find any errors not included here, please inform us.

Contact

For questions and suggestions regarding Smart, please contact Mark R. Kramer (mark dot kramer at wur dot nl) of the Information Technology chair group at Wageningen University.