Jump to content

Spreading1: Difference between revisions

From SELESwiki
No edit summary
 
(2 intermediate revisions by the same user not shown)
Line 27: Line 27:


===Spreading.lse===
===Spreading.lse===
LSEVENT: SpreadingTypes
LSEVENT: SpreadingTypes
 
DEFINITIONS
DEFINITIONS
   LAYER: DistanceFromSrc, Visited
   LAYER: DistanceFromSrc, Visited
   GLOBAL VARIABLE: SpreadType
   GLOBAL VARIABLE: SpreadType
   CLUSTER VARIABLE: StartLocation
   CLUSTER VARIABLE: StartLocation
   CELL VARIABLE: distInc, d
   CELL VARIABLE: distInc, d
ENDDEF
ENDDEF
 
RETURNTIME
RETURNTIME
   RETURNTIME = 0
   RETURNTIME = 0
   DistanceFromSrc = (NUMROWS^2 + NUMCOLS^2)^0.5
   DistanceFromSrc = (NUMROWS^2 + NUMCOLS^2)^0.5
ENDRT
ENDRT
 
EVENTLOCATION
EVENTLOCATION
   REGION LOCATION(LOCATION(NUMROWS/2, NUMCOLS/2))
   REGION LOCATION(LOCATION(NUMROWS/2, NUMCOLS/2))
ENDEL
ENDEL
 
PROBINIT
PROBINIT
   PROBINIT = 1
   PROBINIT = 1
   StartLocation = Location
   StartLocation = Location
   distInc = 0
   distInc = 0
   d = 0
   d = 0
ENDPI
ENDPI
 
TRANSITIONS
TRANSITIONS
   TRANSITIONS = (d < DistanceFromSrc)
   TRANSITIONS = (d < DistanceFromSrc)
   Visited = 1
   Visited = 1
   DistanceFromSrc = d
   DistanceFromSrc = d
ENDTR
ENDTR
 
SPREADTIMESTEP = distInc
SPREADTIMESTEP = distInc
SPREADLOCATION
 
 
SPREADLOCATION
   maxD = IF (1 <= SpreadType <= 3) THEN 1.5 ELSE 1
   maxD = IF (1 <= SpreadType <= 3) THEN 1.5 ELSE 1
 
      REGION CENTRED(1, maxD)
  REGION CENTRED(1, maxD)
       DECISION DistanceFromSrc > (DISTANCE(StartLocation, Location))
       DECISION DistanceFromSrc > (DISTANCE(StartLocation, Location))
ENDSL
ENDSL
 
SPREADPROB
 
SPREADPROB
   SPREADPROB = 1
   SPREADPROB = 1
   d = ROUND(DISTANCE(StartLocation, Location))
   d = ROUND(DISTANCE(StartLocation, Location))
Line 79: Line 66:
               2: DISTANCE(Location, SOURCE Location)
               2: DISTANCE(Location, SOURCE Location)
               3: MAX(0,d - SOURCE DistanceFromSrc)
               3: MAX(0,d - SOURCE DistanceFromSrc)
               ENDFN
               ENDFN
ENDSP
ENDSP

Latest revision as of 18:14, 14 November 2006

A simple model to demonstrate spread across a landscape from a single point.

Model download

File:Spreading1.zip

Model code

Spreading.scn

SELES Scenario

Model Dimensions: 100, 100 Model.sel SimPriority Low Priority

Model.sel

Seles Model Time Units: Step KiloStep 1000 100 Landscape Events:

  Spreading.lse DEBUG

Spatial Variables:

  DistanceFromSrc[(NumRows^2 + NumCols^2)^0.5+1]
  Visited[1]

Global Variables:

 SpreadType = 0

Spreading.lse

LSEVENT: SpreadingTypes
DEFINITIONS
 LAYER: DistanceFromSrc, Visited
 GLOBAL VARIABLE: SpreadType
 CLUSTER VARIABLE: StartLocation
 CELL VARIABLE: distInc, d
ENDDEF
RETURNTIME
  RETURNTIME = 0
  DistanceFromSrc = (NUMROWS^2 + NUMCOLS^2)^0.5
ENDRT
EVENTLOCATION
  REGION LOCATION(LOCATION(NUMROWS/2, NUMCOLS/2))
ENDEL
PROBINIT
 PROBINIT = 1
 StartLocation = Location
 distInc = 0
 d = 0
ENDPI
TRANSITIONS
 TRANSITIONS = (d < DistanceFromSrc)
 Visited = 1
 DistanceFromSrc = d
ENDTR
SPREADTIMESTEP = distInc
SPREADLOCATION
  maxD = IF (1 <= SpreadType <= 3) THEN 1.5 ELSE 1
     REGION CENTRED(1, maxD)
     DECISION DistanceFromSrc > (DISTANCE(StartLocation, Location))
ENDSL
SPREADPROB
  SPREADPROB = 1
  d = ROUND(DISTANCE(StartLocation, Location))
  distInc = CLASSIFY(SpreadType)
              0: 1
              1: 1
              2: DISTANCE(Location, SOURCE Location)
              3: MAX(0,d - SOURCE DistanceFromSrc)
             ENDFN  
ENDSP