A dynamic and flexible way to extend a model, views are a powerful tool in the whatIf? suite.
Models, especially once populated with data, are fairly rigid. Modifying any working model requires changing the design and reloading data. Views provide a mechanism for extending the model either through preprocessed input data, additional analysis of output data and even implementing feedback loops in the model's logic.
Part of the design process is deciding what should be part of the rigid structure of the model and what should be dynamic and implemented by views. Anything that needs to be flexible is usually implemented in views.
Suppose you had a model which had a control variable specifying exogenously the market share for new vehicles over time. There are many ways to create that data and one must have been used to load the original model. If you found a new algorithm for determining that market share based on something inside the model, something totally external or some mix of these, then a view could be written to implement this algorithm and feed it into the model as the new market share. Essentially you have extended the model's scope but have taken on the work of actually modifying the model. Of course the model can be changed later to encapsulate the new logic in the model itself but it doesn't need to.
Suppose you have a model with a coefficient in it which is NOT measured, for example an efficiency coefficient for a widget, and you need to estimate that coefficient. In historic time you have a good estimate of the number of widgets and the amount of energy used by the widgets (observedEnergyUse). You need to find an value for your coefficient that when multiplied by the number of widgets results in an energy use amount that tracks as close as possible to the observedEnergyUse. A feed back view can be used to run the model check the difference in energy use, modify the coefficient appropriately, run the model again, and continue this loop until some acceptable level of convergence is achieved.
The result is a calibrated value for the coefficient in historic time that can be a good starting value for your simulation.
This is used extensively in the calibration process
Suppose you have an energy model that calculates fuel use and GHG emissions. Then you get some coefficients for CAC emissions and you want to do a quick calculation to get the CAC emissions. A display view can be written to take the results of the model and the new coefficients multiply them out and display the results.
In the whatIf? platform views the way the user interacts dynamically with the model. Views are also used to import and export data, to mediate interaction with the model, do analysis and display it to the user, do iterative runs of the model to converge on parameter settings and every combination of these.
Display views are read only views into the model which do not change any model data but instead pull data from the model. These can be considered as reporting view. Here are some uses of display views: