GSoC Idea: Controlling (numerical) computations and simulations

Controlling (numerical) computations and simulations

AM This is just a haphazard description of an idea that has been pestering me for some time now.

Imagine this situation:

  • You have a couple of programs that each do their job fine, but the one needs results from the other, possibly in a feedback loop
  • You can transform these programs into libraries instead of distinct programs and that may help to bring them together in a more modern way
  • A Tcl layer on top can then be used to control how often, and in which order these programs or libraries will run

Here is a more tangible example:

  • Program 1 simulates the physical environment, say, a river and its delta
  • Program 2 simulates the economy of the region (houses are built, roads are constructed, there is waste water to take care of ...)
  • Program 3 is an expert system that evaluates the economical activities and their impact on the environment and sets up a set of measures

These three programs will interact, but they also work on different time scales - the physical environment will have a time scale of days, where the time scale of economy is more typically months or years. You can build a static program that controls these three programs and make sophisticated input facilities to experiment with the various options (how often to invoke program 1 before invoking program 2 for instance), but it would be more flexible to do so with a high-level program written in a Tcl-based domain-specific language.

This is just the sort of applications I like to think about - there are many other areas where similar tasks have to be combined in smart and flexible ways.

Benefits: to be added