something like a DOWHILE?
Posted: Mon Sep 08, 2008 4:58 pm
I'm trying to model a behavior that is sort of like a DO WHILE statement: I keep adjusting the size of a pile until it meets a condition, at which point the model moves on.
So, for example, I reduce the total pollution of a system (the criterion) by cutting back output of one technology. In order to satisfy demand, I replace this output with that from another less polluting technology. So total pollution goes down, but not (yet) to desired levels. I then reduce the first technology even further and replace it with output from a less (but still nonzero) polluting technology. This continues until the total pollution meets a critical level, and all the while output demand is satisfied.
I can't see how to do a "simple" transform for this algorith, unless there's some very clever way to use ALLOC. I think I could do this in a SD way if Vensim let me loop through the level lots of times before moving on, but I think that any subdivision of a single time step would require that all time steps in the model be so subdivided.
Anybody know of way to do this, perhaps an independent module? Thanks in advance.
So, for example, I reduce the total pollution of a system (the criterion) by cutting back output of one technology. In order to satisfy demand, I replace this output with that from another less polluting technology. So total pollution goes down, but not (yet) to desired levels. I then reduce the first technology even further and replace it with output from a less (but still nonzero) polluting technology. This continues until the total pollution meets a critical level, and all the while output demand is satisfied.
I can't see how to do a "simple" transform for this algorith, unless there's some very clever way to use ALLOC. I think I could do this in a SD way if Vensim let me loop through the level lots of times before moving on, but I think that any subdivision of a single time step would require that all time steps in the model be so subdivided.
Anybody know of way to do this, perhaps an independent module? Thanks in advance.