In my program, each turtle (namely glucose and bacteria) has their own variable called mass. The setup procedure states that the initial mass of glucose and the bacteria is 1 mmol. The to-go procedure says that the glucose will be hydrolyzed and divided. Thus the glucose_mass will be different to the initial 1 mmol. The to-go procedure for the bacteria says that when the bacteria eats one glucose then the mass of the bacteria will grow from the initial 1 mmol plus the mass of the glucose (stochastic number determined in the to divide_hydrolyzed_glucose procedure) that it consumed times a fixed number (i.e. 0.3). How can I limit the glucose_mass that the bacteria can consume (maximum uptake rate) each tick? (1 tick=1 hour) And how can I set the remaining glucose_mass of the prey? For example, if the bacteria can only eat (uptake) 0.0207 mmol of glucose/h, but the hydrolyzed glucose_mass is 0.6 mmol; then, the bacteria can only use 0.0207 of the glucose_mass. The remaining glucose_mass has to be recalculated as (0.6 – 0.0207). I am using the primitive “myself” to refer to the agent from the “outer” context – in this case the “outer” agent is the bacteria. However, the error says that “There is no agent for myself to refer to”.
Any comments or suggestions on this issue?
Breed [glucose a-glucose];; Food-prey
Breed [bacteria bacterium] ;; Predator
glucose-own [glucose_mass]
Bacteria-own [bacteria_mass uptake]
to setup
;;;GLUCOSE;;;
Create-glucose (8) ;; Create the glucose available in mmol/d,
[set glucose_mass (1)] ;; in mmol
;;; BACTERIA;;;
Create-Bacteria (10) ;; Create the clostridiales in mmol
[set batceria_mass (1)
Set uptake (0.0207)
]
end
to go
ask glucose
[
Hydrolyse_glucose
Divide_hydrolyzed_glucose
]
ask Bacteria
[Bacteria_eat_glucose]
to hydrolyse_glucose
if (glucose_mass < 200) [
set glucose_mass ((glucose_mass * 0.025 + random-float 32.975) / 24)
]
end
to divide_hydrolyzed_glucose
if (glucose_mass > 1)
[
set glucose_mass (glucose_mass / 2)
hatch 1
]
end
to Bacteria_eat_glucose
let prey one-of glucose-here
if prey != nobody
[
ifelse [glucose_mass] of prey > [ uptake ] of myself
[
set bacteria_mass bacteria_mass + [[ uptake] of myself * 0.3]
ask prey [set glucose_mass glucose_mass – [uptake] of myself]
]
[
set bacteria_mass bacteria_mass + [glucose_mass * 0.3] of prey
ask prey [die]
]
]
end