Revisions in the 1973 Model of the Tsembaga

Figure 9 shows a Stella model based on the revisions suggested by Christian Kampmann in an "Archives" article in the Summer 1991 issue of the System Dynamics Review. The revised model is organized with the same four sectors as the original.

Human Population Sector:
The revised model uses two stock variables, one to keep track of the human population not in war, and a second to simulate human population in war. This approach allows the deaths from war to be simulated without relying on the questionalbe use a 1 year value for DT.

Pig Population Sector
A similar combination of stocks and flows is used to keep track of the pig population.

Land Yield Sector
This sector is quite similar to the 1973 model, but some "minor" changes have been implemented, as suggested by Kampmann (1991, 166).

Festival Sector
This sector is also rather similar to the 1973 model. The ghosted stock of humans and pigs in the "not at war" or "not to be slaughtered" categories are used to keep track of a "pig labor problem" or a "rate of pig incidents." You'll notice that these variable names are somewhat different than in the 1973 model. The new names are based on Kampmann's suggestions to improve the clarity of the model.

This is also a complex model, so you'll need to study Kampmann's explanation in the System Dynamics Reivew. (Don't expect everything to make sense from the short description provided above.) The equations for the revised model are given below.
Festival Sector
Critical_labor_problem = 5
Critical_rate_of_pig_incidents = 6
Festival_indicator = MAX(Festival_trigger_from_labor_problem, Festival_trigger_from_competition_problem)
Festival_trigger_from_competition_problem = IF (Rate_of_pig_incedents<Critical_rate_of_pig_incidents) THEN (0) ELSE (1)
Festival_trigger_from_labor_problem = IF (Pig_labor_problem<Critical_labor_problem) THEN (0) ELSE(1)
Pig_labor_problem = Pig_population_not_to_be_slaughtered/Desired_pig_population
Rate_of_pig_incedents = Reference_rate_of_pigs_incidents*Pig_population_not_to_be_slaughtered*Human_population_not_in_war
Reference_rate_of_pigs_incidents = 1.8E-4

Human Population Sector
Human_population_in_war(t) = Human_population_in_war(t - dt) + (Transfer_of_humans_to_war - Human_deaths_in_war) * dt
INIT Human_population_in_war = 0

INFLOWS:
Transfer_of_humans_to_war = Festival_indicator*Human_population*Fraction_of_humans_transferred_to_war/DT
OUTFLOWS:
Human_deaths_in_war = Human_population_in_war/Average_lifetime_of_people_in_war
Human_population_not_in_war(t) = Human_population_not_in_war(t - dt) + (Net_human_births - Transfer_of_humans_to_war) * dt
INIT Human_population_not_in_war = 196

INFLOWS:
Net_human_births = Human_population*Net_human_birth_rate
OUTFLOWS:
Transfer_of_humans_to_war = Festival_indicator*Human_population*Fraction_of_humans_transferred_to_war/DT
Average_lifetime_of_people_in_war = 0.3
Desired_food_per_capita = 742E3
Food_per_capita = MIN(Desired_food_per_capita, Food_per_capita_available)
Food_per_capita_available = Food/Human_population
Fraction_of_humans_transferred_to_war = 0.1
Human_population = Human_population_not_in_war+Human_population_in_war
Net_human_birth_rate = (1-Switch_to_change_health)*Net_human_birth_rate_1+Switch_to_change_health*Net_human_birth_rate_2
Switch_to_change_health = STEP(1, Time_to_change_health)
Time_to_change_health = 1E9
Net_human_birth_rate_1 = GRAPH(Food_per_capita/Desired_food_per_capita)
(0.00, -0.3), (0.1, -0.25), (0.2, -0.21), (0.3, -0.16), (0.4, -0.12), (0.5, -0.07), (0.6, -0.054), (0.7, -0.038), (0.8, -0.02), (0.9, 0.00), (1, 0.011), (1.10, 0.0114), (1.20, 0.0118), (1.30, 0.0122), (1.40, 0.0126), (1.50, 0.013)
Net_human_birth_rate_2 = GRAPH(Food_per_capita/Desired_food_per_capita)
(0.00, 0.00), (0.1, 0.00), (0.2, 0.00), (0.3, 0.00), (0.4, 0.00), (0.5, 0.00), (0.6, 0.00), (0.7, 0.00), (0.8, 0.00), (0.9, 0.00), (1, 0.00), (1.10, 0.00), (1.20, 0.00), (1.30, 0.00), (1.40, 0.00), (1.50, 0.00)

Land Sustainable Yield Sector
Yield_per_acre(t) = Yield_per_acre(t - dt) + (Yield_regeneration - Yield_degradation) * dt
INIT Yield_per_acre = 4.4E6

INFLOWS:
Yield_regeneration = (Inherent_yield_per_acre-Yield_per_acre)/Yield_regeneration_time
OUTFLOWS:
Yield_degradation = Fractional_degradation_rate*Yield_per_acre
Available_land = 972
Food = Available_land*Yield_per_acre*Intensity
Food_needed = Food_needed_for_humans+Food_needed_for_pigs
Food_needed_for_humans = Human_population*Desired_food_per_capita
Food_needed_for_pigs = Pig_population*Desired_food_per_pig
Inherent_yield_per_acre = 4.4E6
Perceived_potential_food = Available_land*Perceived_yield_per_acre
Perceived_yield_per_acre = SMTH1(Yield_per_acre, Yield_perception_time)
Yield_perception_time = 5
Fractional_degradation_rate = GRAPH(Intensity)
(0.00, 0.00), (0.2, 0.05), (0.4, 0.15), (0.6, 0.3), (0.8, 0.45), (1, 0.49), (1.20, 0.5)
Intensity = GRAPH(Food_needed/Perceived_potential_food)
(0.00, 0.00), (0.25, 0.25), (0.5, 0.5), (0.75, 0.7), (1.00, 0.8), (1.25, 0.9), (1.50, 0.95), (1.75, 0.99), (2.00, 1.00)
Yield_regeneration_time = GRAPH(Yield_per_acre/Inherent_yield_per_acre)
(0.00, 400), (0.1, 140), (0.2, 105), (0.3, 80.0), (0.4, 60.0), (0.5, 45.0), (0.6, 34.0), (0.7, 25.0), (0.8, 20.0), (0.9, 17.0), (1, 16.0)

Pig Population Sector
Pig_population_not_to_be_slaughtered(t) = Pig_population_not_to_be_slaughtered(t - dt) + (Net_pig_births - Pig_transfer_to_slaughter) * dt
INIT Pig_population_not_to_be_slaughtered = 40

INFLOWS:
Net_pig_births = Pig_population*Net_pig_birth_rate
OUTFLOWS:
Pig_transfer_to_slaughter = Festival_indicator*MAX (0, Pig_population-Desired_pig_population)/DT
Pig_population_to_be_slaughtered(t) = Pig_population_to_be_slaughtered(t - dt) + (Pig_transfer_to_slaughter - Pig_deaths_from_slaughtering) * dt
INIT Pig_population_to_be_slaughtered = 0

INFLOWS:
Pig_transfer_to_slaughter = Festival_indicator*MAX (0, Pig_population-Desired_pig_population)/DT
OUTFLOWS:
Pig_deaths_from_slaughtering = Pig_population_to_be_slaughtered/Slaughtering_time
Desired_food_per_pig = 590E3
Desired_pig_population = Human_population*Desired_pig_to_human_ratio
Desired_pig_to_human_ratio = 0.2
Food_per_pig = (Food-Food_per_capita*Human_population)/Pig_population
Pig_population = Pig_population_not_to_be_slaughtered+Pig_population_to_be_slaughtered
Slaughtering_time = 0.3
Net_pig_birth_rate = GRAPH(Food_per_pig/Desired_food_per_pig)
(0.00, -0.15), (0.1, -0.1), (0.2, -0.046), (0.3, 0.00), (0.4, 0.058), (0.5, 0.11), (0.6, 0.114), (0.7, 0.118), (0.8, 0.122), (0.9, 0.126), (1, 0.13), (1.10, 0.132), (1.20, 0.134), (1.30, 0.136), (1.40, 0.138), (1.50, 0.14)