Determining stock inflow during portion of a year

Use this forum to post Vensim related questions.
Post Reply
rdudley
Senior Member
Posts: 77
Joined: Mon Sep 08, 2003 2:16 am

Determining stock inflow during portion of a year

Post by rdudley »

I am regularly interested in specifying the absolute size of an inflow to a stock that will occur during part of a year... in population models. Let's say using three stocks with young, immature, and mature organisms. the inflow of new young is some function of mature organisms.

I want this inflow to occur over a smaller portion of a year, but I still want the total inflow over this shorter time to equal to the calculated amount. I don't want this to be a pulse, but rather an inflow over several months. I have fiddled with various ways of doing this, but I am wondering about the best way?!

This model uses years and I have no problem calculating months within year for the reproductive season. I want this reproductive season set so it can be varied with a phase-in and phase-out. :) . I need to avoid having vensim timeslice this as if it were occurring over a whole year.
bob@vensim.com
Senior Member
Posts: 1107
Joined: Wed Mar 12, 2003 2:46 pm

Post by bob@vensim.com »

The most common approach to seasonality is to use

rate = underlying rate * seasonal effect
seasonal effect = seasonality profile(MODULO(Time,UNIT YEAR))
seasonality profile((0,0),(0.5,2),(1,0))

This for a model in years. The profile function should start and stop a the same place, and have an area of 1 (when integrated over a cycle) though you can correct for this with LOOKUP AREA.

Note that underlying rate needs to be held constant during a year to achieve the effect you describe.
rdudley
Senior Member
Posts: 77
Joined: Mon Sep 08, 2003 2:16 am

Post by rdudley »

Not sure what you mean by UNIT YEAR, but that approach will work -- making the area under the curve be the appropriate size. I made the lookup in terms of months so the total area under the seasonality curve should be 12. A simple example makes spawning at an intensity of 6 for 2 month.

month within year= MODULO(Time*12, 12)

organisms entering population=REPRODUCTIVE SEASON LOOKUP(month within year)*total young produced

REPRODUCTIVE SEASON LOOKUP([(0,0)-(12,8)],(0.99,0),(1,6),(3,6),(3.01,0),(12,0))

total young produced=Reproducing Adults*young produced per adult

young produced per adult=5

Reproducing Adults=1000

TIME STEP = 0.03125

This gives the right output 30000 young/year for 2 months same as 5,000 per year.

BUT! I would prefer something where I could have a lookup that did not need to be carefully calculated to come out with a specific area. So that the user could specify reproductive intensity within any month on a scale of 0 to 1 (etc) without worrying about the area under the curve. ;)
bob@vensim.com
Senior Member
Posts: 1107
Joined: Wed Mar 12, 2003 2:46 pm

Post by bob@vensim.com »

Just use

organisms entering population=REPRODUCTIVE SEASON LOOKUP(month within year/unit month)*total young produced *
months per year / LOOKUP AREA(REPRODUCTIVE SEASON LOOKUP,0,12) ~ Fish/Year
months per year = 12 ~ month/year
Units month = 1 ~month

this assumes total young produced per adult is measured in 1/month as your description suggests. REPRODUCTIVE SEASON LOOKUP is diminesionless.
Post Reply