What improvements would you like to see in Vensim?

Use this forum to post Vensim related questions.
gaulocher
Junior Member
Posts: 2
Joined: Thu Nov 21, 2013 12:50 pm
Vensim version: PLE

Re: What improvements would you like to see in Vensim?

Post by gaulocher » Thu Nov 21, 2013 12:59 pm

I have not found any function for computing the time derivative of a signal, i.e. y = du/dt, where the output y(t) is the time derivative of the input u(t).

It would be nice to have a ready-made function for this. The time derivative in a discrete-time setting can be approximated for example using y = (u - DELAY FIXED(u,<time step>,0))/<time step>.

jrissman
Senior Member
Posts: 77
Joined: Wed Oct 16, 2013 6:04 pm
Vensim version: DSS

Re: What improvements would you like to see in Vensim?

Post by jrissman » Thu Nov 21, 2013 10:56 pm

This is a small thing, but it would be great if a user could select multiple objects by dragging a box around them (while holding shift) when he/she already has one or more objects selected. Currently, Vensim lets you drag a box to make the initial selection, but after that, objects must be added to the selection by holding shift and clicking on each additional object individually. There are many times per day when I want to select two or three different "clusters" of things (for example, to move them slightly on the page or right before using the "set subscripts" command), so I encounter this limitation on a daily basis.

Most programs that allow drag-a-box-selection allow objects to be added to the selection by holding shift and dragging another box. Vensim is the only program I've encountered that does not obey this convention.

jrissman
Senior Member
Posts: 77
Joined: Wed Oct 16, 2013 6:04 pm
Vensim version: DSS

Re: What improvements would you like to see in Vensim?

Post by jrissman » Wed Nov 27, 2013 11:18 pm

Here's another issue that I've run into repeatedly. When you copy a variable that includes in-line comments (e.g. inside curly braces in the "Equations" field, not in the "Comment" field) and paste the variable with "Replicate" mode (e.g. using a prefix or suffix, so it becomes a new variable), the numbers and equations are correctly copied to the new variable, but the in-line comments are omitted. Sometimes the comments are important in explaining what the equations are doing. So, you have to go back and manually copy and paste any in-line comments from the old variable to the new variable. It would be better if Vensim correctly copied not just the formulas and numbers, but also the comments associated with them.

jrissman
Senior Member
Posts: 77
Joined: Wed Oct 16, 2013 6:04 pm
Vensim version: DSS

Re: What improvements would you like to see in Vensim?

Post by jrissman » Wed Dec 04, 2013 7:00 am

My suggestion #3: Please allow the ALLOCATE AVAILABLE function to work properly when given a sub-range, rather than a complete subscript range.

This incompatibility was discussed in a thread on this forum at http://www.ventanasystems.co.uk/forum/v ... ges#p17188

I've run into this problem in my own model. After carefully making different fuel types into sub-ranges of a master fuel list (e.g. "Buildings Fuels" and "Industrial Fuels" were two of the sub-ranges, with elements like "natural gas"), and updating all the variables in my model accordingly, I found that every single one of the ALLOCATE AVAILABLE functions in my model stopped working. Each of them gave me one of the two following errors:
Error in ALLOCATE_AVAILABLE/FIND_MARKET_PRICE - bad ptype
Error in ALLOCATE_AVAILABLE/FIND_MARKET_PRICE - subscript range error in request quantity

When I was unable to fix the problem, I searched the forums and found the thread above that explains the incompatibility. There's no conceptual reason why it can't be possible to use an ALLOCATE AVAILABLE function across a sub-range: you'd just be allocating things into the specified elements, rather than into all elements, of a given subscript.

But if you choose not to make this improvement to Vensim, at least, please add a sentence to the Vensim User Manual on the ALLOCATE AVAILABLE function page mentioning that the function is not compatible with sub-ranges (and other relevant function pages, like ALLOCATE BY PRIORITY, if they are similarly incompatible). A single sentence in the manual warning of this incompatibility would have saved me a lot of time.

(While we're on the topic of the ALLOCATE AVAILABLE Venism manual page, note that the "Important Note" on that page could be made a little clearer. It appears that the text was copied and pasted from ALLOCATE BY PRIORITY, then edited, but it accidentally still says "ALLOCATE BY PRIORITY" instead of "ALLOCATE AVAILABLE," and it may be missing a couple words that would be helpful (in underlined italics here): "the request elements must be last on the left hand side variable and on request, and second last on pp")

gwr
Senior Member
Posts: 209
Joined: Sun Oct 04, 2009 8:40 pm
Vensim version: DSS

Re: What improvements would you like to see in Vensim?

Post by gwr » Thu Dec 05, 2013 3:55 pm

In a recent article Bob Eberlein, former developer of Vensim, and James Thompson, demonstrated how deficiencies in handling aging chains of populations where the process of aging should be modeled by a continuous process that handles exact duration of aging (e.g. 1 year is exactly 1 year in aging), prevents cohort blending and deals with in- and outflows during the process (e.g. migration, premature death etc.):

Eberlein, R. L. and Thompson, J. P. (2013), Precise modeling of aging populations. Syst. Dyn. Rev., 29: 87–101

http://onlinelibrary.wiley.com/doi/10.1 ... .1497/full

Bob and James have published an external function, called COHORT CONTROL, that can be used with Vensim. I consider this an important and relevant feature and I would greatly encourage the Vensim developers to include such a feature in the software. (Hint: Bob is now working with isee systems and announces that they will do so ...)

drw
Member
Posts: 32
Joined: Wed Mar 25, 2009 1:10 pm

Re: What improvements would you like to see in Vensim?

Post by drw » Wed Feb 26, 2014 11:09 am

It would be great if some of the analytical buttons are "sticky" (i.e. remain active) in a better way. For instance, for table and graphs you have the option of selecting "Activate on variable selection" after right clicking the button graph/table and going to options. However, this is a bit cumbersome to turn on/off. However, you could do something like the format painter in MS Word, whereby you double click on the icon and it stays active until you either deselect or hit Esc.

Rimback
Junior Member
Posts: 6
Joined: Thu Jul 29, 2010 5:39 pm
Vensim version: PRO

Re: What improvements would you like to see in Vensim?

Post by Rimback » Sat Mar 15, 2014 2:23 pm

Let me know if I missed a setting, but it would be nice to be able to turn off the thumbnail graphs individually or collectively. Some patterns obliterate the text. - Joe

Administrator
Super Administrator
Posts: 3364
Joined: Wed Mar 05, 2003 3:10 am

Re: What improvements would you like to see in Vensim?

Post by Administrator » Mon Mar 17, 2014 10:33 am

Let me know if I missed a setting, but it would be nice to be able to turn off the thumbnail graphs individually or collectively. Some patterns obliterate the text. - Joe
Do you mean in SyntheSim mode?
Advice to posters seeking help (it really helps us to help you)
http://www.ventanasystems.co.uk/forum/v ... f=2&t=4391

Units are important!
http://www.bbc.co.uk/news/magazine-27509559

jrissman
Senior Member
Posts: 77
Joined: Wed Oct 16, 2013 6:04 pm
Vensim version: DSS

Re: What improvements would you like to see in Vensim?

Post by jrissman » Thu Aug 14, 2014 7:49 pm

My suggestion #4: It would be nice to allow the user to specify which subscripts the ALLOCATE AVAILABLE function should act on, rather than restricting it to a single subscript. Perhaps the user could use the "!" symbol to designate which subscripts should be included.

Here's where this is causing a problem in my model. I break down power plants into seven types (coal, natural gas, nuclear, hydro, wind, solar, biomass) and three quality levels (we'll call them low, medium, and high - in the model, they refer to plants built at different times with different properties). In the electricity dispatch calculations, I use ALLOCATE AVAILABLE to allocate demand among the 21 power plant categories based on the cost to dispatch them. I'd like to be able to do this by specifying that both subscripts should be included in the allocation operation, with elements considered separately, as demand recipients. For example (using the "!" to designate the subscripts to be included in the allocation):

Code: Select all

ALLOCATE AVAILABLE(
  Potential Electricity Output[Power Plant Type!, Power Plant Quality Level!],
  Least Cost Dispatch Priority Profile[Power Plant Type!, Power Plant Quality Level!, ptype],
  Electricity Demand to Satisfy
)
Since I cannot do this, I believe I need to create a new subscript with 21 elements (each of which is a concatenated combination of a power plant type and a quality level), copy my data from my two subscripts into the single 21-element subscript, run it through the ALLOCATE AVAILABLE function, and then move the results back into the two subscripts. This is bothersome but not terrible for my model- it adds an extra subscript and some extra steps inside the model calculation flow. But it would be a serious problem for a model with more than 7 x 3 elements among which to allocate. For example, if I also wanted to allocate electricity demand among power plants in the 50 U.S. states and among privately-owned and publicly-owned power plants, we'd require moving the elements from four subscripts (of sizes 7, 3, 50, and 2) into a single subscript with 7*3*50*2 = 2,100 elements.

This would increase the power of the ALLOCATE AVAILABLE function by allowing it to be used on multi-dimensional matrices rather than just vectors. If we use a symbol like "!" to designate which subscripts to include in the allocation, then the ordering of the subscripts (other than pprofile) may no longer be important, which may increase convenience for users and make the ALLOCATE AVAILABLE function work more like other functions that operate on vectors, such as SUM (which does not care about subscript order, and instead cares which subscripts have been designated with "!").

I think this enhancement could be made along with my earlier suggestion (#3, posted Dec 4, 2013) to allow ALLOCATE AVAILABLE to accept sub-ranges, rather than requiring complete subscripts (that are not sub-ranges of another subscript) to be used. See that post for more details on this suggested change. Together, they greatly increase the versatility and user-friendliness of the ALLOCATE AVAILABLE function.

gwr
Senior Member
Posts: 209
Joined: Sun Oct 04, 2009 8:40 pm
Vensim version: DSS

Units for numerical values in equations

Post by gwr » Mon Sep 22, 2014 11:01 am

I noted repeatedly that unit checking runs afoul when numerical values are used in equations. For example in a macro I used an IF THEN ELSE construct that checked for a parameter being :NA:

Code: Select all

result = IF THEN ELSE( input = :NA: , {THEN} result 1, {ELSE} some function of the input ) ~ correctUnits ~|
Vensim does require that the units in the THEN and in the ELSE part are equivalent when it checks for unit errors. While that is a sensible strategy for most cases, it prevents the above formulation from passing the test as when input is :NA: it is a numerical value that by definition is a dimensionless scalar. But when that is the case the second part of the if clause will never get executed. The problem might arise in other cases where numerical values are entered in equations as a short cut for constants.

The solution is to define another variable with the "correct" units, e.g.:

Code: Select all

myInput = :NA: ~ correctUnits ~|
This will work and it will make things explicit but it is a lot of effort if one is used to a bit of programming. I would thus suggest that Vensim will allow numerical values to be given units in a way as it is for example done in Mathematica:

Quantity( magnitude, units )

Internally this expression might be represented as if another variable had been defined like in the myInput - example above. Introducing this might allow more flexibility and avoid unnecessary code writing. A Quantity-expressions might also be used to reference to the result of any equation so that equations like the introductory example might be written as:

Code: Select all

result = IF THEN ELSE( input = :NA:, {THEN} result1, {ELSE} Quantity( input, correctUnits ) ) ~ correctUnits ~|

LAUJJL
Senior Member
Posts: 1249
Joined: Fri May 23, 2003 10:09 am

Re: What improvements would you like to see in Vensim?

Post by LAUJJL » Wed Sep 24, 2014 6:31 pm

Hi Guido

I have in the past be annoyed by a specificity of the handing of units in Vensim.

You have two options: one is the standard way and the other one is strictest unit checking, that you can check in model>settings>Units Equiv.

With the standard one, when Vensim founds a numerical value in the equations, it tries to assign it a dimension from the context. It generally works correctly, but in some cases it can be ambiguous and generate some bugs.

I prefer the strictest unit checking, where Vensim automatically assigns a non dimension unit for any numerical value. I find this unambiguous and I have no more problems now.
Anyhow I never use any numerical value in an equation but 0 and 1, which are used as false and true.

I join a simplistic model, where if you do not set the unit checking to strict, the model will not show an error in unit checking, even if it compares a dimension value to a numerical value, which is to my opinion not quite rigorous.

If you set the unit checking to strict, checking the units will generate a unit error, because Vensim assumes the numerical value to be dimensionless, while in the other case it guessed it had the same dimension than the variable it was compared to.

Regards.

JJ
Attachments
units.mdl
(1.13 KiB) Downloaded 201 times

LAUJJL
Senior Member
Posts: 1249
Joined: Fri May 23, 2003 10:09 am

Re: What improvements would you like to see in Vensim?

Post by LAUJJL » Thu Sep 25, 2014 7:59 am

Hi

The utility of the partial simulation possibility is restricted to only one view. This makes the feature not usable with most models.

Extending it to multiple views would make it really useful. Extending it too to synthesim would be fine.

Regards.

JJ

gwr
Senior Member
Posts: 209
Joined: Sun Oct 04, 2009 8:40 pm
Vensim version: DSS

Re: What improvements would you like to see in Vensim?

Post by gwr » Fri Sep 26, 2014 10:05 am

Hi JJ,

I totally agree that in principle strict unit checking should be enforced. But in lieu of additional functionality I do find it annoying to be forced to explicitly write a separate equation every time which in sketch mode also means additional mouse movements.

It would be clearer to go -- as I demonstrated with the Mathematica example -- either of these ways:

Code: Select all

equationOption1 = IF THEN ELSE( QuantityMagnitude( flow ) = 2, {THEN} 0, {ELSE} 1 ) ~ Dmnl ~|

equationOption2 = IF THEN ELSE( flow = Quantity( 2, "widgets"/"months" ), {THEN} 0, {ELSE} 1 ) ~ Dmnl ~|
In either of these equations strict unit checking might be enforced without any trouble without having to go the additional "mile" of introducing separate equations such as to introduce an extra variable (e.g. myConstant = 2 ~ widgets/months ~| )

Best regards,
Guido

LAUJJL
Senior Member
Posts: 1249
Joined: Fri May 23, 2003 10:09 am

Re: What improvements would you like to see in Vensim?

Post by LAUJJL » Fri Sep 26, 2014 12:41 pm

Hi Guido

I agree with you.

It would be fine to add the dimension, whenever you use a numerical value.

But I think that the purpose was to force modelers to avoid putting too many numerical values in equation, especially when they are changeable constants.

Practically, everything is a question of habit. Once the habit ingrained, (it may take some time), you do not even notice it any more.

SD is anyhow an extremely constraining field with many things to respect that are most of the time not respected, for a question of time, availability of end users, cost etc…

It is to my opinion the main reason of its lack of success in the real world, and its confinement in the academic world.

Regards.

JJ

gwr
Senior Member
Posts: 209
Joined: Sun Oct 04, 2009 8:40 pm
Vensim version: DSS

:NA: or "Not a number"?

Post by gwr » Fri Sep 26, 2014 4:28 pm

D'accord, JJ.

There is one more thing that I feel uncomfortable with and that may need taking care of differently: I do find it unfortunate that :NA: is not a symbol but a numerical value. It sometimes gives annoying error-messages, for example if the range of possible values has been set to 0 you get an error message if the value is :NA: (e.g. from reading in raw data available at irregular intervals).

Proposal for future releases of Vensim:

:NA: should be dealt with as a symbol that indicates "missing" or "not a number" - it should never ever be considered a numerical value.

:NA: should probably also be exempt from unit checking.

Regards,
Guido

jrissman
Senior Member
Posts: 77
Joined: Wed Oct 16, 2013 6:04 pm
Vensim version: DSS

Re: What improvements would you like to see in Vensim?

Post by jrissman » Mon Oct 20, 2014 9:15 pm

My suggestion #5:

It would be nice if Vensim recognized comments in command files (with .cmd extension), rather than trying to parse them and then generating an error. In a Windows command file (which also uses the .cmd extension), the syntax for a comment is to start a line with "rem" or "::" (without the quotes). REM is more widely used than "::"

For example, the following command script generates two errors. Upon loading the command script, before the run begins, there is an error that says, "Error in command definitions- continue anyway?". If I choose yes, it completes the run successfully, then produces an error dialogue box which says (mysteriously) "OE2132C". Both of these errors occur even though I have specified SPECIAL>NOINTERACTION in the command file, which is supposed to suppress errors.

Code: Select all

SPECIAL>NOINTERACTION
SPECIAL>LOADMODEL|TestModel.mdl
SIMULATE>RUNNAME|ScriptTest01
MENU>RUN|O
REM This is a comment.
MENU>VDF2CSV|ScriptTest1.vdf|ScriptTest1.csv|OutputVarsToExport.lst|||||:,!
Also, the VDF2CSV command is supported in command scripts (I've been using it successfully), but it was inadvertently left off the list of supported commands in Vensim's manual. You may want to add this command to the list the next time you update the manual. The list is found at: Reference Manual / DSS Supplement / Command Scripts / Supported Commands

Administrator
Super Administrator
Posts: 3364
Joined: Wed Mar 05, 2003 3:10 am

Re: What improvements would you like to see in Vensim?

Post by Administrator » Tue Oct 21, 2014 2:18 pm

You can have comments in CMD files, eg,

Code: Select all

SIMULATE>RUNNAME|TEST
! This is a comment
Advice to posters seeking help (it really helps us to help you)
http://www.ventanasystems.co.uk/forum/v ... f=2&t=4391

Units are important!
http://www.bbc.co.uk/news/magazine-27509559

LAUJJL
Senior Member
Posts: 1249
Joined: Fri May 23, 2003 10:09 am

Re: What improvements would you like to see in Vensim?

Post by LAUJJL » Sat Nov 29, 2014 8:31 am

Hi

When you make optimizations with many simulations, several hundreds or more, it is sometimes interesting to spot the simulation number where the last simulation increased the payoff.

For instance if you are running an optimization and it has already run say 400 simulations and you see the best payoff was reached at the 40th simulation, there is little chance to find a better payoff and you can stop the optimization.

If the last better payoff happens with the 350th simulation than it is better to leave the optimization running.

To see where the last better payoff was reached, it is necessary to browse back all the log file, which can be very cumbersome.

A good idea would be to show beside the best payoff reached, the simulation number where it was reached.

Best regards.
JJ

bppro
Junior Member
Posts: 14
Joined: Wed Nov 06, 2013 2:06 pm
Vensim version: DSS

Re: What improvements would you like to see in Vensim?

Post by bppro » Sat Nov 29, 2014 2:18 pm

It would be great if Vensim had better scaling for retina displays. I run Vensim on a macbook pro retina, and everything looks blurry.

Using a tool like "Retinizer" helps a little, but much of the interface still looks wrong.

Thank you!

amnyqb
Newbie
Posts: 1
Joined: Sat Dec 06, 2014 10:49 pm
Vensim version: DSS

Re: What improvements would you like to see in Vensim?

Post by amnyqb » Mon Dec 15, 2014 11:01 pm

I hope to see a vensim widget for native scripts, that avoid the hassle of using dlls.

linear feedback
Member
Posts: 25
Joined: Tue Sep 16, 2014 2:20 pm
Vensim version: DSS

Re: What improvements would you like to see in Vensim?

Post by linear feedback » Sat Dec 20, 2014 6:11 pm

Here some quirks in the user interface I keep stumbling over with out any ranking - probably there are ways around some which I have not yet uncovered so feedback would be much appreciated

- Selection of nodes not kept highlighted when changing between hand and lock-tool
- Right-click on a node should open the equation editor but not this style window which at least I never use
- Standard windows bar on top of several windows missing, e.g. they are impossible to move aside when they hide something
- Deleting a node in show hiden mode changes the view to show hidden none which is annoying if one is cleaning up the items which got hidden away
- After a run the selection in the subscript window are set to some weird selection of elements. The original selection should be kept
- Lookup variables are not shown when "all" is selected in the equation editor - but they are, when the button "variables" is clicked
- Help file opens twice when hitting F1
- External function library not linked to the model but to the main program which is annoying when working with several model files and several libraries (and debug and non-debug directories)
- Time step cannot be defined as "one step". The provided units of time are sometimes not related to the model context
- Links to shadow variables on the same view should be created automatically like they are for regular variables
- Links are being added when the originate from hidden variables which needs to be corrected (hidden) manually. Arrows coming out of the blue are really helpful

jrissman
Senior Member
Posts: 77
Joined: Wed Oct 16, 2013 6:04 pm
Vensim version: DSS

Re: What improvements would you like to see in Vensim?

Post by jrissman » Thu Mar 05, 2015 9:23 pm

This is a bug report.

On Windows, when you double-click on a model file, Vensim fails to open the model if there is an occurrence of the right-hand parenthesis character- that is, ")" - anywhere in the path leading to the model or in the model name itself. It launches Vensim, and then Vensim produces an error that says, "Failed to read the model [path]" which is cut off right before the first occurrence of the right-hand parenthesis character.

Vensim can open the model if you launch Vensim, choose "File > Open Model" and navigate to the model on the disk. It is only the ability to open the model by double-clicking on it in Windows that is broken when this character exists in the file name or path.

This is particularly problematic for users of a business Dropbox account, because Dropbox automatically names your folder "Dropbox (business name)". You cannot rename this folder to remove the parenthesis. This forces a user to store the Vensim models outside of the Dropbox folder if he/she wants the ability to double-click to open models. That means the model files are not being backed up by DropBox, which is a problem.

Please fix this issue so that models may be successfully opened by Vensim on double-click in Windows even if the path contains the ")" character. Thank you!

linear feedback
Member
Posts: 25
Joined: Tue Sep 16, 2014 2:20 pm
Vensim version: DSS

Additional suggestions

Post by linear feedback » Mon May 18, 2015 7:56 am

Please increase the thresholds for instance to suppress output display at 256 columns or with optimization runs - it takes far longer to okay away these boxes then for today's computers to generate the views.

Option to suppress the "NOTE Payoff (X) realized at multiple parameter values" which cloggs the report and imo is only relevant if the condition is still valid after the final run as additional information.

In the equation editor: First screen of the commonly used functions shows a couple of "GET 123 XXX"... This list is very helpful but would be even more if commonly used functions like "IF THERE ELSE" were directly accessible. Having the opportunity to edit these as a user would be best.

sarquitt
Junior Member
Posts: 4
Joined: Tue Mar 23, 2010 10:12 pm

Re: What improvements would you like to see in Vensim?

Post by sarquitt » Fri Jun 19, 2015 3:11 am

For the wish list:

Would be great if there was a convenient window that could be opened for each view in which to write comments or descriptions of the entire view.

Regards,
sa

ingdanny
Junior Member
Posts: 2
Joined: Thu Oct 08, 2015 4:44 pm
Vensim version: PLE

Re: What improvements would you like to see in Vensim?

Post by ingdanny » Thu Oct 08, 2015 4:55 pm

I would like to know details of the mathematical formulation of the functions of Vensim Delay Fixed and Delay material. Because t is not clear in the manual Vensim

Post Reply