Model

Class Model is the primary interface for modelers, integrating the Patches/Patch Turtles/Turtle and Links/Link AgentSets .. i.e.:

  • model.Patches: an array Patches of Patch instances
  • model.Turtles: an array Turtles of Turtle instances
  • model.Links: an array Links of Link instances
  • model.breed: a sub-array of any of the three above.
  • All of which are subclasses of AgentSet.

Convention: Three abstract methods are provided by the modeler

  • startup(): (Optional) Called once to import images, data etc
  • setup(): Called to initialize the model state.
  • step(): Step the model. Will advance ticks.

Constructor

new Model(worldOptionsopt)

Creates an instance of Model. The worldOptions define the coordinate system for this model The World options sets xMin, xMax, yMin, yMax and when using 3D: zMin, zMax

Fine point: Can also be an instance of World or GeoWorld

Parameters:
NameTypeAttributesDefaultDescription
worldOptionsObject<optional>
World.defaultOptions()

Methods

initModel(worldOptionsopt)

Initialize model to initial state w/ new Patches, Turtles, Links. The worldOptions will default to initial values but can be changed by modeler.

Parameters:
NameTypeAttributesDefaultDescription
worldOptionsObject | World<optional>
this.world

World object

reset(callSetupopt)

Reset the model by clearing the turtles, setting ID & ticks to 0 and calling setup()

Parameters:
NameTypeAttributesDefaultDescription
callSetupboolean<optional>
true

tick()

Increment the tick cound. Not needed if autoTick true, the default

(async, abstract) startup()

An abstract method to perform one-time initialization. Subclasses provide their versions of this to import data.

(abstract) setup()

An abstract method for initializing the model Subclasses provide their version of this to initialice the model

(abstract) step()

An abstract method to run the model one step.

patchBreeds(breedNames)

Create breeds (sub-arrays) of Patches. Used in the Exit model:

  • this.patchBreeds('exits inside wall')
Parameters:
NameTypeDescription
breedNamesstring

A string of space separated breeds names

turtleBreeds(breedNames)

Create breeds (sub-arrays) of Turtles. Used in Wallfollower model:

  • this.turtleBreeds('lefty righty')
Parameters:
NameTypeDescription
breedNamesstring

A string of space separated breeds names

linkBreeds(breedNames)

Create breeds (sub-arrays) of Links. Used in Roads model:

  • this.linkBreeds('trips')
Parameters:
NameTypeDescription
breedNamesstring

A string of space separated breeds names