Effects of testing and social distancing on the spread of infectious diseases ("Flattening the Curve")

Effects of testing and social distancing on the spread of infectious diseases ("Flattening the Curve") preview image

1 collaborator

Default-person Shikhara Bhat (Author)

Tags

disease 

Tagged by Shikhara Bhat over 4 years ago

humans carry disease 

Tagged by Shikhara Bhat over 4 years ago

infectious disease model 

Tagged by Shikhara Bhat over 4 years ago

sir 

Tagged by Shikhara Bhat over 4 years ago

Visible to everyone | Changeable by the author
Model was written in NetLogo 6.0.2 • Viewed 567 times • Downloaded 31 times • Run 0 times
Download the 'Effects of testing and social distancing on the spread of infectious diseases ("Flattening the Curve")' modelDownload this modelEmbed this model

Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)


Info tab cannot be displayed because of an encoding error

Comments and Questions

Please start the discussion about this model! (You'll first need to log in.)

Click to Run Model

breed [infecteds infected]
breed [susceptibles susceptible]
breed [recovereds recovered]

infecteds-own [
  clock
  tested?
]
turtles-own [neighbours]

to setup
  clear-turtles
  clear-ticks
  random-seed seed ;To make sure runs have same initial conditions
  create-turtles number
  [setxy random-xcor random-ycor
    set size 1
    ifelse (who < number_sick)
    [set breed infecteds
    set clock 0
    set tested? False]
    [set breed susceptibles]
    recolor
  ]
  reset-ticks
end 

to recolor
  if (breed = susceptibles) [
    set color green
  ]
  if (breed = infecteds) [
    ifelse (tested? = True)
    [set color yellow]
    [set color red]
  ]
  if (breed = recovereds) [
    set color blue
  ]
end 

to move [dist]
  ifelse(SD?)
  [set neighbours other turtles in-radius ((SD_radius))
    if (count(neighbours) >= 1) ;Move only if you have neighbours
     [facexy (mean [xcor] of neighbours)
             (mean [ycor] of neighbours)
      rt 180  ; Turn away from the mean x and y co_ordinates of your neighbours
      fd dist
     ]
  ]
  [rt random-float 360  ;Turn to a random direction
   fd dist]
end 

to get_infected ;S _> I
  let sick_neighbours infecteds in-radius max_inf_radius
  if (breed = susceptibles and count sick_neighbours  >= 1)
   [if ((random-float 1) <  (1 - ((1 - transmissibility)^(count(sick_neighbours)))))
    [set breed infecteds
      set clock 0
      set tested? False]
      ]
end 

to recover ;I _> R
  if (clock >= infection_period and (random-float 1 < recovery_rate))
    [set breed recovereds]
end 

to lose_immunity ;R _> S
  if (random-float 1 < susceptibility)
  [set breed susceptibles]
end 

to advance_clock ;For recovery of infected people
  set clock (clock + 1)
end 

to runtest
  if (breed = infecteds)
  [die]
end 

to test;
  ifelse (num_to_test <= count(turtles))
    [let testsubjects n-of num_to_test turtles
    ask (testsubjects) [runtest]]
    [ask (turtles) [runtest]]
end 

to go
  ask (recovereds) [lose_immunity]
  ask (susceptibles) [get_infected]
  ask (infecteds) [advance_clock]
  ask (infecteds) [recover]
  ask (turtles) [move 1]
  ask (turtles) [recolor]
  if (ticks mod test_freq = 0)
      [test]
  tick
  if (count(infecteds) = 0 or count(infecteds) = count(turtles)) ;Stop if nobody is infected, or everybody is infected
  [stop]
end 

There are 2 versions of this model.

Uploaded by When Description Download
Shikhara Bhat over 4 years ago Slightly modified the 'model info' section Download this version
Shikhara Bhat over 4 years ago Initial upload Download this version

Attached files

File Type Description Last updated
Effects of testing and social distancing on the spread of infectious diseases ("Flattening the Curve").png preview Preview for 'Effects of testing and social distancing on the spread of infectious diseases ("Flattening the Curve")' over 4 years ago, by Shikhara Bhat Download

This model does not have any ancestors.

This model does not have any descendants.