Archive for March, 2009

Spatial Modeling in iThink and STELLA

March 31st, 2009 No comments

STELLA and iThink provide capabilities to model spatial problems.  Version 9.1.2 expands these capabilities to allow more intuitive equation formulations.

Spatial modeling is concerned with modeling behavior over space as well as time.  Common applications include modeling flows in lakes and streams or modeling development in an urban landscape.  To demonstrate the new capabilities in version 9.1.2, the one-dimensional diffusion problem will be modeled in STELLA.

Consider the diffusion of heat through a one meter metal bar when a constant temperature is applied to both ends.  This problem is typically introduced as the following partial differential equation for temperature function u(x, t) with the given boundary conditions:

u/∂tk2u/∂x2 = 0
u(x, 0) = 0, 0 < x < 1
u(0, t) = u0, t ≥ 0
(1, t) = u0, t ≥ 0

Here, k is the diffusion coefficient (based on thermal conductivity, density, and heat capacity) and u0 is the constant temperature applied to both ends of the bar.  The finite difference solution to this problem (with the above initial conditions) is:

u(x, t + dt) = u(x, t) + ∂u/∂t
u/∂t = k (u(x + dx, t) – 2u(x, t) + u(xdx, t))/dx2

It is also possible to derive a closed-form solution.  Unless you are an astrophysicist, this solution probably does little to help you understand what is happening.  It is far more intuitive to develop a physical model of the underlying mechanics than to wrestle with the mathematics.

Read more…

A Minor Release with Major Features

March 26th, 2009 No comments
Karim and Rob listening to customers at User Conference Lab

Karim & Rob listening to customers at User Conference Lab

We’ve been working hard these past few months preparing for the latest release of STELLA and iThink and are happy to finally share it with everyone.  Version 9.1.2 is now available!

As an update to STELLA and iThink, you could easily be fooled into thinking that it is made up of just a few minor bug fixes.  To the contrary, this release is full of new features and enhancements that make it much more exciting than its version number suggests.

After receiving wonderful feedback at our User Conference last October, our development team was motivated to incorporate as many suggestions as they could into this particular update. Better yet, version 9.1.2 is a FREE update for anyone who has purchased a software license or an Annual Support Contract within the last 12 months.

A series of in-depth posts about specific features in 9.1.2 already exist and we’ll be adding more in response to your comments in the coming weeks. In addition to providing new functionality, we worked with beta testers on eliminating performance bottlenecks especially with larger models spanning multiple modules.

Version 9.1.2 shows impressive performance. This is a significant step in productivity! — Albert Mauritius, Beta Tester

Check out the complete list of what’s new in version 9.1.2 on our web site or download your copy now.

Publishing Your Models to the Web with isee NetSim

March 26th, 2009 2 comments

You might have missed one of our recent free live webinars, Publishing Your Models to the Web with isee NetSim, that featured a demonstration of our isee Netsim product.  We periodically run these webinars to allow customers the opportunity to see live software demonstrations and ask questions in real time.  Video archives of these webinars are posted on our website.

In this session, Jeremy Merritt presented a live demonstration of  isee Netsim.  isee Netsim lets you publish your STELLA or iThink models to the web so that anyone with an internet connection and a web browser can run them. If you’re curious about how this simple process works, you can view the archived webinar video that shows how to prepare, export and publish a model to the web.

Get a taste of the higher resolution 40 minute presentation by watching this one minute preview.

>> View complete webinar presentation.

Categories: Training Tags: , , ,

Running Models from the Command Line

March 20th, 2009 4 comments

Version 9.1.2 introduces the oft-requested ability to run models from the command line outside of iThink or STELLA (Windows only).  This feature opens up a number of possibilities for users who need to automate their modeling tasks.  For example, you could use the command line to automatically run a model multiple times, start a model from a script, or create a shortcut that opens and runs a model when you double-click on the icon.

I have set up a simple example that illustrates how you could run an iThink model multiple times to skirt the 32,767 time step limit that advanced users sometimes run up against.  The model itself does nothing extraordinary, it simply increments the value of a Stock by one at each time step. What makes it worth noticing is that it runs 32,000 iterations three times to mimic a 96,000 step run.

>> Download the Sample Files

This example will open and run the model file named multiple_run.itm, import data at the beginning of each run, and export data at the end of each run.  You can double-click on the “Start batch runs” shortcut to kick things off or you can use the batch file that is provided. Note that you may have to edit these start files to make them work on your computer

Command Line Syntax

"c:\program files\isee systems\iThink 9.1.2\iThink.exe" -rn 3 multiple_run.itm

Shortcut Properties

The command line above was entered into the “Target” field of the “Start batch runs” Properties dialog.  Note the “Start in” field is intentionally left blank so that the shortcut will run the model from the current directory.  If you move the shortcut file to a different directory,  you’ll need to enter that directory into this field.

The identical command line syntax is used in the supplied batch file named “go.bat” and can be edited using Notepad.

Sample Model and Spreadsheet

The sample model uses a table to report the value of the Stock at the end of each run so that it can be exported to the “multiple_run_data.xls” Excel file. In Excel, I linked the exported value of the Stock to an “Import” worksheet.   This way, one run hands off the final data to start the subsequent run like runners in a relay race passing a baton.  Note the initial Stock value will need to be reset in Excel before starting a new batch of runs.

Running the sample command line puts iThink into a macro mode.  It opens just as if you double-clicked its icon and manually started the runs yourself.   Sit back and watch the model open, and let the model run three times on its own.  Try to leave the process alone while it executes, I did find that if the runs were interrupted the Excel file could sometimes lose its formatting.

For an experiment you could add “-nq” to the command so that the model stays open after running.  After adding the new parameter your command would look like this:

"c:\program files\isee systems\iThink 9.1.2\iThink.exe" -rn 3 -nq multiple_run.itm

There are many more command options available.  View the full list here and experiment with other parameters.


Another advantage to running from the command line is that you can start and run a model from inside Excel. Not only can you run the model this way, but you can take advantage of all the parameters.

Create a shortcut as described in the post and save it. In Excel, pick a cell and select Insert hyperlink. Browse to and select the shortcut and then click OK. It’s that easy!!

LOOKUP Built-in Allows Reuse of Graphical Function Curves

March 10th, 2009 No comments

Sometimes it is necessary to access a data set from multiple places within a model.  For example, a manufacturer may have a non-linear curve that maps capacity required for a given product to raw material required to manufacture it.  Such a curve is shown below:


If one production line needs to know this information, a graphical function works fine.  However, if there are two production lines in the model, the second line also needs this information.  If the two lines are identical in structure, the model could be arrayed to share the curve for both lines.  If they are not, it was necessary in versions prior to 9.1 to make a copy of this curve for the second production line.  Then if, at a later time, one copy of the curve needed to be changed, the other one also needed to be changed in the same way.

Version 9.1 introduced the LOOKUP built-in.  This allows any graphical function curve to be re-used as many times as desired within the same model.  Note that a graphical function, by definition, ties a specific equation to the given curve.  Using LOOKUP, it is now possible to evaluate that same curve using several different equations in the same time step.

In this case, let’s assume the second production line has similar variables with “2” appended to their names.  Thus, there is a capacity2 and a material needed 2.  Prior to version 9.1, it was necessary for material needed 2 to be an identical copy of material needed.
Since version 9.1 allows the curve to be re-evaluated for any arbitrary
expression, material needed 2 no longer needs to be a graphical function.
Instead, it contains the equation:

material_needed_2 = LOOKUP(material_needed, capacity_2)

This equation simply evaluates the graphical function stored in material needed using capacity 2 as the x-coordinat

Imported file not found?

March 6th, 2009 2 comments

We often get calls from customers who have copied a model to another computer and then get the dreaded “…file was not found” message when they open the model.  It may be a missing picture, Excel spreadsheet or some other imported file. When copying a model from one computer to another, you may need to copy more than just the model file.  files2If your model uses other files such as graphics, sounds or spreadsheets you’ll need to package all of them with the model file.

If you have to e-mail your model to isee support, it’s good to know how to package all the necessary files so that we can recreate your setup.

Here’s a list of the files your model may need:

  • Modules (.itt files)
  • Links (Files that a local file hyperlink button points to)
  • Data (Excel and .csv files for import/export)
  • Graphics
  • Sounds
  • Movies

Locate all the associated files in the same place as your model file.

If you have a lot of associated files you can organize them into sub-folders as pictured below:

foldersThe one thing to watch out for is the situation of having one file that is accessed in more than one way.  For instance, an Excel file that is used for importing data but is also accessed via a hyperlink button.  In this case, the Excel file should not be in a sub-folder.  Instead, keep it in the same folder as the model file.

Now you can copy the folder to another computer or flash drive, or burn it to a CD.

If you are going to e-mail the folder, you might want to zip it up so you only have one file to send.

“Thinking in Systems” book inspires online course

March 6th, 2009 12 comments

thinkinginsystemsOne of the questions I often get asked in both my professional and personal life is “What is Systems Thinking?”  It seems like a simple question but the answer can be very different depending on who you’re talking to.  Much of my career has been involved in the development of software so it is only natural for a lot of the folks I know to think of “systems” as having something to do with computers.  Then there are certain unnamed members of my family who still don’t quite understand what it is I do for a living.   And even when I do my best to explain, their eyes glaze over and they claim to get it “sort of”.  That’s why I was so excited after I read the book Thinking in Systems – A Primer by Donnella Meadows.  Finally there’s a book I can recommend to everyone because it so clearly explains what this systems stuff is all about.

I have Chris Soderquist of Pontifex Consulting to thank for recommending Thinking in Systems to me but also for suggesting we collaborate on an online course based on the book.  Chris was one of the book reviewers and together with Diana Wright of the Sustainability Institute (the book’s editor) we developed a syllabus for a four-session web seminar series titled Thinking in Systems: Practical Lessons for Building Sustainable Organizations & Communities.

Here’s how the online course will work.  For four consecutive Fridays in April and May participants will log on to a web site where the course is being hosted. (We use the GoToWebinar service.)  During each 70 minute session, Chris and Diana will present materials  and provide step-by-step instruction followed by an interactive discussion period.  Sessions will be recorded and all of the course materials will be available for download afterwards.

[UPDATEThe live course is now complete but we have made the recorded series available for purchase]

We’re really excited about this course because it is so relevant to the headlines we’ve been reading daily and will provide a framework for discussion regardless of your Systems Thinking experience level.   If you’ve never done any modeling before, this course will be a great place to start.  We’re even offering a time limited student license of iThink or STELLA for course participants.

Looking forward to having you join us on Fridays, beginning April 17th.

LOOKUPXY Built-in Increases Dataset Flexibility

March 3rd, 2009 1 comment

Version 9.1.2 adds the ability to incorporate non-regularly sampled data easily into your models.  Many people use the graphical function for historical records of data.  The graphical function, however, assumes a fixed interval along the x-axis.  This can make it difficult to use data like the following:

Day Flow
1 12.1
3 7.6
4 15.2
6 13.5
9 23.8
12 17.3

While it is easy to determine the fixed interval to use to capture all of these points (1 day), it is more difficult to determine what data points to use for the missing intermediate 1-day values.  There are also many cases where it is very difficult to find a fixed interval that works for a given dataset.

Graphical Function Day

Graphical Function Day (click for full size)

The LOOKUPXY built-in was specifically added to address this issue.  It is unique in that it requires two separate graphical functions:  one for the x-coordinates of each pair and one for the y-coordinates of each pair.  The number of points in each graphical function should match; if they do not, extraneous points are ignored.  The data values (x-coordinates and y-coordinates) are both entered by the user as the y-values in each graphical function.  The x-values in each graphical function are ignored; only the number of points matter.  It is a good idea, though, to run the x-axis of both from one to the number of points.  That way, it is easy to verify that the values in each graphical function properly align with one another.  In addition, the x-coordinates should be in increasing order.  If they are not, however, the program will automatically readjust them when the model is first run.

Read more…