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

reset(worldOptionsopt)

Resets model to initial state w/ new Patches, Turtles, Links. The worldOptions will default to initial values but can be changed by modeler. Setup() often called after reset() to re-initialize the model.

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

World object

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

Note: can be used with reset(). This will reinitialize the Patches, Turtles, Links for re-running the model

  • reset()
  • setup()

(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