;;; Model on the local establishment of non-native plants under competition and herbivory ;;; Authors of the accompanying paper: Janina Radny & Katrin Meyer ;;; University of Göttingen, Germany ;;; 2018 ;;; No warranty for anything ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;Agent types, actors ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; globals [ ;Plant related parameter ;;;Non-native plant values size-factor ;;;Takes care of size depending on cell size -- Source: Lin et al. (2012) parent-xcor ;;;Parent plant coordinates parent-ycor ;;;Important for dispersal of seeds in radius x around parent plant ;Storage variables ;Non-native species initialEx ;;;Initial number of non-native individuals. "Ex" stands for "exotic species", the earlier describing term of non-natives. finalEx ;;;Final number of non-native individuals at the end of a simulation run. ;Native species initialAg ;;; As above for Agrostis capilaris finalAg initialFr ;;; As above for Festuca rubra finalFr initialHp ;;; As above for Hypericum perforatum finalHp initialPl ;;; As above for Plantago lanceolata finalPl ] ;;Exotic and native adult plants breed [plants plant] ;;Exotic and native seeds breed [seeds seed] ;Insect herbivores breed [herbivores herbivore] ;;;;;Own-variables patches-own [biomass_acc] ;;;; Accumulated biomass of competing plants on this patch herbivores-own [ origin ;;From the code, all agents must own origin and profile. profile ;;For herbivores, this is simply "herbivore" preference ;;Preference "Any" is implemented at the moment. This may be changed to preference for one species to implement specialist enemies or enemy release in future versions of this model. ] seeds-own [ ;;Plant description temp_spec ;;this is to choose the species identity of natives with seedbank-based mixture. origin profile ;;Species characterisitcs ;Life history traits to be inherited seedweight biomass_init biomass_max max_age rgr repulse seedmass_per_shootmass germprob scale dshape ;Individual values myycor myxcor parentx parenty mydistance dead ] plants-own [ ;;Plant description origin ;;Native or exotic profile ;;Trait combination from combinator ;;Species characteristics ;Life history traits seedweight biomass_init biomass_max max_age rgr repulse seedmass_per_shootmass germprob ;;Individual values during simulation age ;;Time since germination in days biomass_now ;For competition rad ;;Radius of zone of influence (ZOI) my_area my_share ;;Share of resources on each patch in radius of ZOI eff_area ;;Effective area (resources) available after competition comp_pressure ;For death threshold_of_death adult gain scale dshape dead age_at_death ;;This can be activated to track time of highest negative impact - i.e. death rate - of competition ] ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;; SETUP ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; to setup-environment clear-all ;;;; Clean-up grid reset-ticks ;;;; and time from former run set-default-shape herbivores "bug" ;;;; Herbivores get a default shape set-default-shape seeds "dot" set-default-shape plants "hollow" set size-factor ( world-width / 100) ask patches [set pcolor 39] ifelse density = "low" [ ;;All native species have the same initial number of individuals ifelse mixture = "even"[ create-seeds 25 * 3 ;;the whole plot fits approximately 25 planting pots from the preceeding experiment (Radny et al., in press). Each pot had 3 natives of one species in it, hence 25 * 3 individuals in the modelled world [set profile "Agrostis"] create-seeds 25 * 3 [set profile "Festuca"] create-seeds 25 * 3 [set profile "Plantago"] create-seeds 25 * 3 [set profile "Hypericum"] ] [ ;; Here, the 25 planting pots (see above) have a seed-bank based mixture, i.e. the 12 plants in each "pot" have a chance as defined below to be one or another species create-seeds 25 * 12 ;; 25 planting pots * 12 individuals (3 individuals of 4 species = 12 individuals) ask seeds [ set temp_spec random-float 1 if temp_spec < 0.7 [ set profile "Agrostis" ] if (temp_spec >= 0.7) AND (temp_spec < 0.9) [ set profile "Festuca" ] if (temp_spec >= 0.9) AND (temp_spec < 0.95) [ set profile "Hypericum" ] if (temp_spec >= 0.95) [ set profile "Plantago" ] ] ] ] [ ;;Same routine as above but a higher number of native individuals ifelse mixture = "even" [ create-seeds 25 * 11 ;;In high density planting pots, we used 11 individuals per native species, hence 25 pots * 11 individuals [set profile "Agrostis"] create-seeds 25 * 11 [set profile "Festuca"] create-seeds 25 * 11 [set profile "Plantago"] create-seeds 25 * 11 [set profile "Hypericum"] ] [ create-seeds 25 * 44 ;;25 planting pots * 12 individuals (11 individuals of 4 species = 44 individuals) ask seeds [ set temp_spec random-float 1 if temp_spec < 0.7 [ set profile "Agrostis" ] if (temp_spec >= 0.7) AND (temp_spec < 0.9) [ set profile "Festuca" ] if (temp_spec >= 0.9) AND (temp_spec < 0.95) [ set profile "Hypericum" ] if (temp_spec >= 0.95) [ set profile "Plantago" ] ] ] ] ask seeds with [profile = "Agrostis"] [ setxy random-xcor random-ycor set origin "native" set seedweight 0.06 set biomass_max 4000 set max_age 76 set repulse 0.3 set seedmass_per_shootmass 0.6 * random-normal 1 0.1 set germprob 0.02 set scale 400 set dshape 1.4 set color yellow set dead False ] ask seeds with [profile = "Festuca"] [ setxy random-xcor random-ycor set origin "native" set profile "Festuca" set seedweight 0.77 set biomass_max 12000 set max_age 76 set repulse 0.3 set seedmass_per_shootmass 0.4 * random-normal 1 0.1 set germprob 0.5 set scale 200 set dshape 1.4 set color green set dead False ] ask seeds with [profile = "Hypericum"] [ setxy random-xcor random-ycor set origin "native" set profile "Hypericum" set seedweight 0.09 set biomass_max 5800 set max_age 76 set repulse 0.6 set seedmass_per_shootmass 0.23 * random-normal 1 0.1 set germprob 0.42 set scale 500 ;sticky seeds, thus long-distance dispersal parameters set dshape 1.4 set color 114 set dead False ] ask seeds with [profile = "Plantago"] [ setxy random-xcor random-ycor set origin "native" set profile "Plantago" set seedweight 1.4 set biomass_max 8000 set max_age 76 set repulse 0.3 set seedmass_per_shootmass 0.23 * random-normal 1 0.1 set germprob 0.29 ;; set scale 500 set dshape 1.4 set color blue set dead False ] create-seeds 8 * (2 ^ invasion-level) [ setxy random-xcor random-ycor set color red set origin "exotic" set dead False ] ;;;;; For sources of parameter values, see main publication ;;;;; Source of coding stucture: http://groups.yahoo.com/group/netlogo-users/message/11470 set parameter [ ["HHH" ;;item 0 3 ;;initial size (mg) 15000 ;;max. size (mg) 76 ;;max. age 0.7 ;;repulse of herbivores 0.41 ;;transformation of biomass into seeds 0.05 ;;germination rate 500 ;;Scale of Weibull curve 1.4 ;;Shappe of Weibull curve ] ["HLL" ;;item 1 3 ;;initial size (mg) 15000 ;;max. size (mg) 76 ;;max. age 0.3 ;;repulse of herbivores 0.41 ;;transformation of biomass into seeds 0.05 ;;germination rate 200 ;;scale 1.4 ;;shape ] ["LHL" ;;item 2 1 ;;initial size (mg) 4000 ;;max. size (mg) 76 ;;max. age 0.7 ;;repulse of herbivores 0.65 ;;transformation of biomass into seeds 0.05 ;;germination rate 200 ;;scale 1.4 ;;shape ] ["LLH" ;;item 3 1 ;;initial size (mg) 4000 ;;max. size (mg) 76 ;;max. age 0.3 ;;repulse of herbivores 0.65 ;;transformation of biomass into seeds 0.05 ;;germination rate 500 ;;scale 1.4 ;;shape ] ["LHH" ;item 4 1 ;;initial size (mg) 4000 ;;max. size (mg) 76 ;;max. age 0.7 ;;repulse of herbivores 0.65 ;;transformation of biomass into seeds 0.05 ;;germination rate 500 ;;scale 1.4 ;;shape ] ["HLH" ;;item 5 3 ;;initial size (mg) 15000 ;;max. size (mg) 76 ;;max. age 0.3 ;;repulse of herbivores 0.41 ;;transformation of biomass into seeds 0.05 ;;germination rate 500 ;;scale 1.4 ;;shape ] ["HHL" ;item 6 3 ;;initial size (mg) 15000 ;;max. size (mg) 76 ;;max. age 0.7 ;;repulse of herbivores 0.41 ;;transformation of biomass into seeds 0.05 ;;germination rate 200 ;;scale 1.4 ;;shape ] ["LLL" ;;item 7 1 ;;initial size (mg) 4000 ;;max. size (mg) 76 ;;max. age 0.3 ;;repulse of herbivores 0.65 ;;transformation of biomass into seeds 0.05 ;;germination rate 200 ;;scale 1.4 ;;shape ] ] ;;Here, the actual plant is created (in the form of a seed) ask seeds with [origin = "exotic"] [ let profile-me combinator let profile-data item profile-me parameter set profile item 0 profile-data set seedweight item 1 profile-data set biomass_max item 2 profile-data set max_age item 3 profile-data set repulse item 4 profile-data set seedmass_per_shootmass item 5 profile-data set germprob item 6 profile-data set scale item 7 profile-data set dshape item 8 profile-data set color red ] ;; Seeds germinate germinate end ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;; GO (flow of model procedures) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; to go ;;;;Stopping commands if ticks > 76 [stop] ;;;; Simulation is terminated if there are no exotic individuals left if not any? turtles with [origin = "exotic"] [stop] ;;; Herbivore procedures move_gen ;;appear and walk around, daily eat_gen ;;actual herbivory, daily ;;;Plant procedures compete ;;daily grow ;;daily ageing ;;daily reproduce ;;once a year (at the end of the simulation) die-back ;;die tick end ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;; PROCEDURES ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;; ;;Germination ;; ;;Seeds germinate if a random number is smaller than the germination probability ;;Else the seed is removed ;;Germination probability is 4th item in list seed-profiles ;;;;;;;;;;;;;; to germinate ask seeds [ hatch-plants 1 [ ;new plants get values set adult false set dead False set age 1 set biomass_now seedweight * 10 * random-normal 1 0.1 set rgr 1 + ((ln(biomass_max) - ln(biomass_now)) / (max_age - age)) ;;;;;Cacluation of (initial) ZOI and drawing of the plant ifelse coding = "Weiner et al" [ ;; calculation based on Weiner and Damgaard (2006) set rad sqrt ((biomass_now ^ ( 2 / 3)) / pi) set eff_area pi * rad ^ 2 set size rad * 2 * size-factor ] [ ;; calculation based on Lin et al (2012) set rad (biomass_now ^ ( 3 / 8)) * ( pi ^ ( -1 / 2)) set eff_area biomass_now ^ (3 / 4) set size rad * 2 * size-factor ] ifelse origin = "exotic" [ set threshold_of_death 0.05 ] [ set threshold_of_death 0.05 ] ] die ] set initialEx count plants with [origin = "exotic"] set initialAg count plants with [profile = "Agrostis"] set initialFr count plants with [profile = "Festuca"] set initialHp count plants with [profile = "Hypericum"] set initialPl count plants with [profile = "Plantago"] end ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;Herbivore move & eat ; ;Herbivores appear, walk around and eat here and there ;To acount for various herbivores, ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; to move_gen if herbivore_density = 0 [ ] ;;No herbivores are created (only written out for completeness) if herbivore_density = 1 [ create-herbivores 13 [ ;;3.2 hoppers per square metre (Ledergreber et al. 1997) set color 114 set size 2 setxy random-xcor random-ycor set origin "herbivore" set profile "herbivore" set preference "any" ;;Future extensions can implement specialists by setting distinct preferences of herbivores ] ] if herbivore_density = 2 [ create-herbivores 25 * 3 [ ;;25 planting pots (see above) * 3 herbivore individuals per pot set color 114 set size 2 setxy random-xcor random-ycor set origin "herbivore" set profile "herbivore" set preference "any" ] ] ask herbivores with [preference = "any"] [ hatch-herbivores (random(10 - 7) + 7) [ ;;Herbivores eat between one and three times a day. Each hebrivore is multiplied by the times of meals it takes that day. The number of meals is a random number between 1 and 3. setxy random-xcor random-ycor ] let targetplant one-of plants in-radius 50 if targetplant != nobody [move-to targetplant] ] end to eat_gen ask herbivores with [preference = "any"] [ ask plants-here [ if random-float 1 > repulse [ let before-attack biomass_now set biomass_now biomass_now - (7.5 * (1 + random-float 0.1)) if biomass_now <= before-attack * 0.1 [ ;;In the experiment, some plants fully recovered from 75% foliage loss. We assume that 90% will kill the plant. die ] ] ] die ] end ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;Plant move I ; ;Compete, grow and age ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; to compete ;Step 0: Patches are reset ask patches [ set biomass_acc 0 set pcolor 39 ] ;Step 1: Plants "occupy" their surrounding ask plants with [dead = false] [ ask patches in-radius (rad * size-factor) [ set biomass_acc biomass_acc + [biomass_now ^ a-symmetry] of myself set pcolor pcolor - 1 ] ] ;Step 2: Computational trick by Lin et al. (2012) ask patches with [biomass_acc > 0] [ set biomass_acc 1 / biomass_acc ] ;Step 3: Plants compare their biomass to the biomass of competitors and calculate their share ask plants with [dead = false] [ set my_area (count patches in-radius (rad * size-factor)) ifelse my_area <= 0 [ die ] [ set my_share (sum ([biomass_acc * [biomass_now ^ a-symmetry] of myself] of patches in-radius (rad * size-factor))) set comp_pressure my_share / my_area ifelse coding = "Weiner et al" [ set eff_area (biomass_now ^ ( 2 / 3)) * comp_pressure ] [ set eff_area (biomass_now ^ (3 / 4) ) * comp_pressure ] ] ] end to grow ;;and die ask plants with [dead = false] [ ifelse comp_pressure <= 0 [ set color black set dead True set age_at_death age ] [ ifelse coding = "Weiner et al" [ set gain rgr * (eff_area - (biomass_now ^ 2 / biomass_max ^ (4 / 3))) ] [ set gain rgr * eff_area * (1 - ((biomass_now / biomass_max) ^ 0.25)) ] ifelse gain <= (biomass_now ^ (3 / 4)) * threshold_of_death [ set dead True set age_at_death age set color black ] [ set biomass_now biomass_now + gain ifelse coding = "Weiner et al" [ set rad sqrt ((biomass_now ^ ( 2 / 3)) / pi) ] [ set rad (biomass_now ^( 3 / 8)) * (PI ^ (-1 / 2)) ] set size rad * size-factor * 2 ] ] ] end to ageing ask plants [ set age age + 1 if age = max_age [ set adult true ] ] end ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;Plant move II ; ;reproduction and death ;this routine is preserved in the model for future extension to more generations per simulation run ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; to reproduce ask plants with [adult = true AND dead = false AND origin = "exotic"] [ if origin = "exotic" [ set finalEx finalEx + 1 ] let seedmass biomass_now * seedmass_per_shootmass hatch-seeds ((seedmass / seedweight) * germprob) [ ;;;To reduce computation time, only seeds that would germinate in the next generation are created set dead false set size 1 set parenty ycor set parentx xcor rt random-float 360 set mydistance scale * ((- ln (1 - random-float 1)) ^ (1 / dshape)) ;;Weibull-shaped dispersal, lambda and k are species-specific jump mydistance ;;Seeds disappear from the simulation when they are dispersed beyond the world borders if distancexy parentx parenty != distancexy-nowrap parentx parenty [ die ] ] set dead True set age_at_death age ] end to die-back ask plants with [dead = True] [ die ] end @#$#@#$#@ GRAPHICS-WINDOW 36 46 650 661 -1 -1 6.0 1 10 1 1 1 0 1 1 1 0 100 0 100 0 0 1 ticks 30.0 BUTTON 670 613 806 677 Setup environment setup-environment NIL 1 T OBSERVER NIL NIL NIL NIL 1 SLIDER 665 210 842 243 invasion-level invasion-level 0 5 5.0 1 1 NIL HORIZONTAL TEXTBOX 671 584 821 602 Starting the simulation 14 0.0 1 TEXTBOX 668 50 818 84 Parameter configuration\n 14 0.0 1 TEXTBOX 669 111 833 139 Starting density of native seeds 11 0.0 1 TEXTBOX 673 191 848 209 Initial number of non-natives\n 11 0.0 1 TEXTBOX 863 190 1136 241 Trait profile of non-native species 11 0.0 1 CHOOSER 864 210 1002 255 combinator combinator 0 1 2 3 4 5 6 7 0 TEXTBOX 1038 192 1216 304 0=HiAll (HHH)\n1=HiComp (HLL)\n2=HiDef (LHL)\n3=HiDisp (LLH)\n4=LoComp (LHH)\n5=LoDef (HLH)\n6=LoDisp (HHL)\n7=LoAll (LLL) 11 0.0 1 BUTTON 818 613 941 677 Start simulation go T 1 T OBSERVER NIL NIL NIL NIL 1 SLIDER 669 441 853 474 a-symmetry a-symmetry 0 1.5 1.5 0.25 1 NIL HORIZONTAL PLOT 1179 50 1608 431 Number of plants Ticks Population size 0.0 10.0 0.0 10.0 true true "" "" PENS "number_ex" 1.0 0 -8053223 true "" "if any? plants [if count turtles with [origin = \"exotic\"] > 1 [plot count turtles with [ origin = \"exotic\" AND dead = False]]]" "number_fr" 1.0 0 -15040220 true "" "if any? plants [if count turtles with [profile = \"Festuca\"] > 1 [plot count turtles with [ profile = \"Festuca\" AND dead = False]]]" "number_pl" 1.0 0 -14454117 true "" "if any? plants [if count turtles with [profile = \"Plantago\"] > 1 [plot count turtles with [ profile = \"Plantago\" AND dead = False]]]" "number_hp" 1.0 0 -11783835 true "" "if any? plants [if count turtles with [profile = \"Hypericum\"] > 1 [plot count turtles with [ profile = \"Hypericum\" AND dead = False]]]" "number_ac" 1.0 0 -4079321 true "" "if any? plants [if count turtles with [profile = \"Agrostis\"] > 1 [plot count turtles with [ profile = \"Agrostis\" AND dead = False]]]" "number_dead" 1.0 0 -2064490 true "" "if any? plants [if count plants with [dead = True] > 1 [plot count turtles with [dead = True ]]]" "number_adults" 1.0 0 -16050907 true "" "if any? plants with [adult = true] [plot count plants with [adult = true]]" CHOOSER 881 444 1019 489 coding coding "Weiner et al" "Lin" 1 CHOOSER 665 131 803 176 density density "low" "high" 1 CHOOSER 861 130 999 175 mixture mixture "even" "seedbank" 1 SLIDER 664 322 836 355 herbivore_density herbivore_density 0 2 1.0 1 1 NIL HORIZONTAL TEXTBOX 667 84 817 112 Plant population parameters\n--------------------------- 11 0.0 1 TEXTBOX 867 110 1017 128 Mixture of native community 11 0.0 1 TEXTBOX 669 293 819 321 Herbivore parameter\n----------------------- 11 0.0 1 TEXTBOX 672 395 822 423 Competition parameters\n------------------------ 11 0.0 1 TEXTBOX 671 421 847 449 Degree of competition asymmetry 11 0.0 1 TEXTBOX 882 420 1032 438 Source of calculation mode 11 0.0 1 @#$#@#$#@ ## Purpose of the model This model is intended to explore differences in early establishment success of non-native plant species in a native community. The native community is excerting biotic pressures in form of competition and herbivore attack. The non-native species are characterized by their ability to respond to these pressures. The ability is classified as either strong or weak and expressed by seedweight and maximum biomass (competitive traits) and repulsion of herbivores (defensive ability). Establishment success is determined as survival of the non-native species. ## Initialization and running the model ### Initialization On initialzation, seeds of the native and non-native species are created according to scenario selection (see Scenarios and Settings below). Seeds germinate with a specific probability and turn into plants. The native community consists of four native plant species and generalist herbivores. There is always only one non-native plant species mixed into the community. ### Process order Each day, herbivores appear on the grid and approach random plants. If a random number drawn from the interval [0, 1] is larger than the repulse value of the plant, the herbivore consumes 7.5 mg of plant biomass. After consumption - or attempt of consumption - the herbivore is removed from the grid. Plants are represented by the physical area they occupy. This area is the circular Zone-of-Influence ZOI (Lin et al., 2012; Weiner and Damgaard, 2006), allometrically related to their aboveground biomass. Where ZOIs are overlapping, i.e. a patch is within the ZOI of more than one plant, plants compete for resources. Depending on the degree of competition asymmetry (see below), plants capture a given amount of resources. Captured resources are used for growth and maintainance of metabolism. If the amount of captured resources falls below a minimum threshold, the plant dies. After growth, plant age is increased by one day. After 75 days, the non-native plants produce seeds as a function of their biomass and disperse them in space. Dispersal distance of seeds is recorded. ### End of simulation Each tick represents one day. The simulation is terminated when the non-native individuals have reached their maximum age and have reproduced. The simulation run stops earlier, if there are no non-native individuals left. ## Scenarios and settings ### Non-native species There are eight non-native species implemented in the model. They are created from combinations of traits values, expressing their competitive (seedweight and biomass) and defensive (repulse) ability. At this stage, high or low values of competitive ability and defensive ability are of main importance. The species are also characterized by dispersal values (scale and shape of dispersal kernel), which is intended to be used in a future upgrade of the model. However, for the current model version, dispersal values are not of importance. Initial density of non-native seeds can be varied as 8 * 2^invasion-level, taking values between 8 and 256 individuals. ### Native commnity The native community consists of generic species based on characteristics of the species Agrostis capilaris, Festuca rubra, Hypericum perforatum and Plantago lanceolata. Initial density of native seeds can be set to low (300 individuals) or high (1100 individuals). These values are based on a greenhouse experiment (Radny et al. in press), where planting pots of 18x18cm (0.04 m^2) harboured 12 or 44 native plants. Initial community mixture is either even - each species is represented with the same number of individuals - or based on literature values of seedbank size of those species (for literature citations, see Radny and Meyer 2017). ### Herbivore density Herbivore density can take three values: 0 - No herbivores on the grid 1 - Herbivore density is based on Locusta migratoria (Ledergerber 1997) => 13 2 - Herbivore density is based on experimental values (Radny et al. in press) => 75 ### Degree of competition asymmetry Competitive asymmetry (Θ) determines the proportion of resources captured under competition proportional to biomass of the competing plants (Weiner and Damgaard 2006). In this model, it takes values between 0 and 1.5 in 0.25 steps. Setting the competiton asymmetry to 0 implies that contested resources are shared equally among the competitors, regardless of their biomass. Increasing competition asymmetry leads to an increasing weight of biomass for capturing contested resources in a shared cell. With Θ = 1, a larger plant receives a larger share of the contested resources than a smaller plant, proportional to its biomass (perfect size-symmetry). When Θ is larger than 1, the larger plant receives the larger share, dispropotionate to its biomass. ## Potenital further development of the model ### Extension of observation period Reproduction is included in the model. Dispersal of seeds records seeds which remain on the parental patch and seeds leaving it. A future expansion could observe population dynamics over several generations. ### Spatial upscaling The model can be used as subunit for a large-scale simulation, tracking range expansion dynamics of plants with climate change. ### Individual interaction modi Interactions between individuals are uniform for both inter- and intraspecific interaction partners. This is a common simplification. However, we advocate for expansion attempts, distinguishing between inter- and intraspecific interactions, e.g. through facilitation or pairing-specific degrees of competition for resources. ### Inclusion of specialist herbivores Due to a lack of data, we were not able to include specialist herbivores. We invite interested modellers to extend the model with specialist herbivores, especially for simulation of effects of enemy release scenarios. ## Relevant publications For extended description, parametrization and analysis of results, please see: Radny, J., Meyer, K.M., 2017. The role of biotic factors during plant establishment in novel communities assessed with an agent-based simulation model (No. e3088v1). PeerJ Inc. https://doi.org/10.7287/peerj.preprints.3088v1 This model is partially based on a greenhouse experiment, described in: Radny, J., van der Putten, W.H., Tielbörger, K., Meyer, K.M., in press. Influence of seed size on performance of non-native annual plant species in a novel community at two planting densities. Acta Oecologica. https://doi.org/10.1016/j.actao.2018.05.005 ### Cited references Ledergerber, S., Thommen, G.H., Baur, B., 1997. Grazing damage to plants and gastropod and grasshopper densities in a CO< sub> 2-enrichment experiment on calcareous grassland. Acta Oecologica 18, 255–261. Lin, Y., Berger, U., Grimm, V., Ji, Q.-R., 2012. Differences between symmetric and asymmetric facilitation matter: exploring the interplay between modes of positive and negative plant interactions. Journal of Ecology 100, 1482–1491. https://doi.org/10.1111/j.1365-2745.2012.02019.x Weiner, J., Damgaard, C., 2006. Size-asymmetric competition and size-asymmetric growth in a spatially explicit zone-of-influence model of plant competition. Ecol. Res. 21, 707–712. https://doi.org/10.1007/s11284-006-0178-6 ## Credits The model structure is based on: Lin, Y., Berger, U., Grimm, V., Ji, Q.-R., 2012. Differences between symmetric and asymmetric facilitation matter: exploring the interplay between modes of positive and negative plant interactions. Journal of Ecology 100, 1482–1491. https://doi.org/10.1111/j.1365-2745.2012.02019.x @#$#@#$#@ default true 0 Polygon -7500403 true true 150 5 40 250 150 205 260 250 airplane true 0 Polygon -7500403 true true 150 0 135 15 120 60 120 105 15 165 15 195 120 180 135 240 105 270 120 285 150 270 180 285 210 270 165 240 180 180 285 195 285 165 180 105 180 60 165 15 arrow true 0 Polygon -7500403 true true 150 0 0 150 105 150 105 293 195 293 195 150 300 150 box false 0 Polygon -7500403 true true 150 285 285 225 285 75 150 135 Polygon -7500403 true true 150 135 15 75 150 15 285 75 Polygon -7500403 true true 15 75 15 225 150 285 150 135 Line -16777216 false 150 285 150 135 Line -16777216 false 150 135 15 75 Line -16777216 false 150 135 285 75 bug true 0 Circle -7500403 true true 96 182 108 Circle -7500403 true true 110 127 80 Circle -7500403 true true 110 75 80 Line -7500403 true 150 100 80 30 Line -7500403 true 150 100 220 30 butterfly true 0 Polygon -7500403 true true 150 165 209 199 225 225 225 255 195 270 165 255 150 240 Polygon -7500403 true true 150 165 89 198 75 225 75 255 105 270 135 255 150 240 Polygon -7500403 true true 139 148 100 105 55 90 25 90 10 105 10 135 25 180 40 195 85 194 139 163 Polygon -7500403 true true 162 150 200 105 245 90 275 90 290 105 290 135 275 180 260 195 215 195 162 165 Polygon -16777216 true false 150 255 135 225 120 150 135 120 150 105 165 120 180 150 165 225 Circle -16777216 true false 135 90 30 Line -16777216 false 150 105 195 60 Line -16777216 false 150 105 105 60 car false 0 Polygon -7500403 true true 300 180 279 164 261 144 240 135 226 132 213 106 203 84 185 63 159 50 135 50 75 60 0 150 0 165 0 225 300 225 300 180 Circle -16777216 true false 180 180 90 Circle -16777216 true false 30 180 90 Polygon -16777216 true false 162 80 132 78 134 135 209 135 194 105 189 96 180 89 Circle -7500403 true true 47 195 58 Circle -7500403 true true 195 195 58 circle false 0 Circle -7500403 true true 0 0 300 circle 2 false 0 Circle -7500403 true true 0 0 300 Circle -16777216 true false 30 30 240 cow false 0 Polygon -7500403 true true 200 193 197 249 179 249 177 196 166 187 140 189 93 191 78 179 72 211 49 209 48 181 37 149 25 120 25 89 45 72 103 84 179 75 198 76 252 64 272 81 293 103 285 121 255 121 242 118 224 167 Polygon -7500403 true true 73 210 86 251 62 249 48 208 Polygon -7500403 true true 25 114 16 195 9 204 23 213 25 200 39 123 cylinder false 0 Circle -7500403 true true 0 0 300 dot false 0 Circle -7500403 true true 90 90 120 face happy false 0 Circle -7500403 true true 8 8 285 Circle -16777216 true false 60 75 60 Circle -16777216 true false 180 75 60 Polygon -16777216 true false 150 255 90 239 62 213 47 191 67 179 90 203 109 218 150 225 192 218 210 203 227 181 251 194 236 217 212 240 face neutral false 0 Circle -7500403 true true 8 7 285 Circle -16777216 true false 60 75 60 Circle -16777216 true false 180 75 60 Rectangle -16777216 true false 60 195 240 225 face sad false 0 Circle -7500403 true true 8 8 285 Circle -16777216 true false 60 75 60 Circle -16777216 true false 180 75 60 Polygon -16777216 true false 150 168 90 184 62 210 47 232 67 244 90 220 109 205 150 198 192 205 210 220 227 242 251 229 236 206 212 183 fish false 0 Polygon -1 true false 44 131 21 87 15 86 0 120 15 150 0 180 13 214 20 212 45 166 Polygon -1 true false 135 195 119 235 95 218 76 210 46 204 60 165 Polygon -1 true false 75 45 83 77 71 103 86 114 166 78 135 60 Polygon -7500403 true true 30 136 151 77 226 81 280 119 292 146 292 160 287 170 270 195 195 210 151 212 30 166 Circle -16777216 true false 215 106 30 flag false 0 Rectangle -7500403 true true 60 15 75 300 Polygon -7500403 true true 90 150 270 90 90 30 Line -7500403 true 75 135 90 135 Line -7500403 true 75 45 90 45 flower false 0 Polygon -10899396 true false 135 120 165 165 180 210 180 240 150 300 165 300 195 240 195 195 165 135 Circle -7500403 true true 85 132 38 Circle -7500403 true true 130 147 38 Circle -7500403 true true 192 85 38 Circle -7500403 true true 85 40 38 Circle -7500403 true true 177 40 38 Circle -7500403 true true 177 132 38 Circle -7500403 true true 70 85 38 Circle -7500403 true true 130 25 38 Circle -7500403 true true 96 51 108 Circle -16777216 true false 113 68 74 Polygon -10899396 true false 189 233 219 188 249 173 279 188 234 218 Polygon -10899396 true false 180 255 150 210 105 210 75 240 135 240 hollow true 0 Circle -7500403 false true 8 8 283 house false 0 Rectangle -7500403 true true 45 120 255 285 Rectangle -16777216 true false 120 210 180 285 Polygon -7500403 true true 15 120 150 15 285 120 Line -16777216 false 30 120 270 120 leaf false 0 Polygon -7500403 true true 150 210 135 195 120 210 60 210 30 195 60 180 60 165 15 135 30 120 15 105 40 104 45 90 60 90 90 105 105 120 120 120 105 60 120 60 135 30 150 15 165 30 180 60 195 60 180 120 195 120 210 105 240 90 255 90 263 104 285 105 270 120 285 135 240 165 240 180 270 195 240 210 180 210 165 195 Polygon -7500403 true true 135 195 135 240 120 255 105 255 105 285 135 285 165 240 165 195 line true 0 Line -7500403 true 150 0 150 300 line half true 0 Line -7500403 true 150 0 150 150 orbit 1 true 0 Circle -7500403 true true 116 11 67 Circle -7500403 false true 41 41 218 pentagon false 0 Polygon -7500403 true true 150 15 15 120 60 285 240 285 285 120 person false 0 Circle -7500403 true true 110 5 80 Polygon -7500403 true true 105 90 120 195 90 285 105 300 135 300 150 225 165 300 195 300 210 285 180 195 195 90 Rectangle -7500403 true true 127 79 172 94 Polygon -7500403 true true 195 90 240 150 225 180 165 105 Polygon -7500403 true true 105 90 60 150 75 180 135 105 plant false 0 Rectangle -7500403 true true 135 90 165 300 Polygon -7500403 true true 135 255 90 210 45 195 75 255 135 285 Polygon -7500403 true true 165 255 210 210 255 195 225 255 165 285 Polygon -7500403 true true 135 180 90 135 45 120 75 180 135 210 Polygon -7500403 true true 165 180 165 210 225 180 255 120 210 135 Polygon -7500403 true true 135 105 90 60 45 45 75 105 135 135 Polygon -7500403 true true 165 105 165 135 225 105 255 45 210 60 Polygon -7500403 true true 135 90 120 45 150 15 180 45 165 90 plant small false 0 Rectangle -7500403 true true 135 240 165 300 Polygon -7500403 true true 135 255 90 210 45 195 75 255 135 285 Polygon -7500403 true true 165 255 210 210 255 195 225 255 165 285 Polygon -7500403 true true 135 240 120 195 150 165 180 195 165 240 sheep false 15 Circle -1 true true 203 65 88 Circle -1 true true 70 65 162 Circle -1 true true 150 105 120 Polygon -7500403 true false 218 120 240 165 255 165 278 120 Circle -7500403 true false 214 72 67 Rectangle -1 true true 164 223 179 298 Polygon -1 true true 45 285 30 285 30 240 15 195 45 210 Circle -1 true true 3 83 150 Rectangle -1 true true 65 221 80 296 Polygon -1 true true 195 285 210 285 210 240 240 210 195 210 Polygon -7500403 true false 276 85 285 105 302 99 294 83 Polygon -7500403 true false 219 85 210 105 193 99 201 83 square false 0 Rectangle -7500403 true true 30 30 270 270 square 2 false 0 Rectangle -7500403 true true 30 30 270 270 Rectangle -16777216 true false 60 60 240 240 star false 0 Polygon -7500403 true true 151 1 185 108 298 108 207 175 242 282 151 216 59 282 94 175 3 108 116 108 target false 0 Circle -7500403 true true 0 0 300 Circle -16777216 true false 30 30 240 Circle -7500403 true true 60 60 180 Circle -16777216 true false 90 90 120 Circle -7500403 true true 120 120 60 tree false 0 Circle -7500403 true true 118 3 94 Rectangle -6459832 true false 120 195 180 300 Circle -7500403 true true 65 21 108 Circle -7500403 true true 116 41 127 Circle -7500403 true true 45 90 120 Circle -7500403 true true 104 74 152 triangle false 0 Polygon -7500403 true true 150 30 15 255 285 255 triangle 2 false 0 Polygon -7500403 true true 150 30 15 255 285 255 Polygon -16777216 true false 151 99 225 223 75 224 truck false 0 Rectangle -7500403 true true 4 45 195 187 Polygon -7500403 true true 296 193 296 150 259 134 244 104 208 104 207 194 Rectangle -1 true false 195 60 195 105 Polygon -16777216 true false 238 112 252 141 219 141 218 112 Circle -16777216 true false 234 174 42 Rectangle -7500403 true true 181 185 214 194 Circle -16777216 true false 144 174 42 Circle -16777216 true false 24 174 42 Circle -7500403 false true 24 174 42 Circle -7500403 false true 144 174 42 Circle -7500403 false true 234 174 42 turtle true 0 Polygon -10899396 true false 215 204 240 233 246 254 228 266 215 252 193 210 Polygon -10899396 true false 195 90 225 75 245 75 260 89 269 108 261 124 240 105 225 105 210 105 Polygon -10899396 true false 105 90 75 75 55 75 40 89 31 108 39 124 60 105 75 105 90 105 Polygon -10899396 true false 132 85 134 64 107 51 108 17 150 2 192 18 192 52 169 65 172 87 Polygon -10899396 true false 85 204 60 233 54 254 72 266 85 252 107 210 Polygon -7500403 true true 119 75 179 75 209 101 224 135 220 225 175 261 128 261 81 224 74 135 88 99 wheel false 0 Circle -7500403 true true 3 3 294 Circle -16777216 true false 30 30 240 Line -7500403 true 150 285 150 15 Line -7500403 true 15 150 285 150 Circle -7500403 true true 120 120 60 Line -7500403 true 216 40 79 269 Line -7500403 true 40 84 269 221 Line -7500403 true 40 216 269 79 Line -7500403 true 84 40 221 269 wolf false 0 Polygon -16777216 true false 253 133 245 131 245 133 Polygon -7500403 true true 2 194 13 197 30 191 38 193 38 205 20 226 20 257 27 265 38 266 40 260 31 253 31 230 60 206 68 198 75 209 66 228 65 243 82 261 84 268 100 267 103 261 77 239 79 231 100 207 98 196 119 201 143 202 160 195 166 210 172 213 173 238 167 251 160 248 154 265 169 264 178 247 186 240 198 260 200 271 217 271 219 262 207 258 195 230 192 198 210 184 227 164 242 144 259 145 284 151 277 141 293 140 299 134 297 127 273 119 270 105 Polygon -7500403 true true -1 195 14 180 36 166 40 153 53 140 82 131 134 133 159 126 188 115 227 108 236 102 238 98 268 86 269 92 281 87 269 103 269 113 x false 0 Polygon -7500403 true true 270 75 225 30 30 225 75 270 Polygon -7500403 true true 30 75 75 30 270 225 225 270 @#$#@#$#@ NetLogo 6.0.2 @#$#@#$#@ @#$#@#$#@ @#$#@#$#@ setup-environment go count plants with [origin = "exotic"] count plants with [profile = "Agrostis"] count plants with [profile = "Festuca"] count plants with [profile = "Hypericum"] count plants with [profile = "Plantago"] sum [biomass_now] of plants with [origin = "Exotic"] sum [biomass_now] of plants with [profile = "Agrostis"] sum [biomass_now] of plants with [profile = "Festuca"] sum [biomass_now] of plants with [profile = "Hypericum"] sum [biomass_now] of plants with [profile = "Plantago"] export-counter_1_exotic export-counter_1_native initialEx finalEx initialAg initialFr initialHp initialPl finalAg finalFr finalhp finalPl setup-environment go count plants with [origin = "exotic"] count plants with [profile = "Agrostis"] count plants with [profile = "Festuca"] count plants with [profile = "Hypericum"] count plants with [profile = "Plantago"] sum [biomass_now] of plants with [origin = "Exotic"] sum [biomass_now] of plants with [profile = "Agrostis"] sum [biomass_now] of plants with [profile = "Festuca"] sum [biomass_now] of plants with [profile = "Hypericum"] sum [biomass_now] of plants with [profile = "Plantago"] export-counter_1_exotic export-counter_1_native initialEx finalEx initialAg initialFr initialHp initialPl finalAg finalFr finalhp finalPl setup-environment go count plants with [origin = "exotic"] count plants with [profile = "Agrostis"] count plants with [profile = "Festuca"] count plants with [profile = "Hypericum"] count plants with [profile = "Plantago"] sum [biomass_now] of plants with [origin = "Exotic"] sum [biomass_now] of plants with [profile = "Agrostis"] sum [biomass_now] of plants with [profile = "Festuca"] sum [biomass_now] of plants with [profile = "Hypericum"] sum [biomass_now] of plants with [profile = "Plantago"] export-counter_1_exotic export-counter_1_native initialEx finalEx initialAg initialFr initialHp initialPl finalAg finalFr finalhp finalPl setup-environment go count plants with [origin = "exotic"] count plants with [profile = "Agrostis"] count plants with [profile = "Festuca"] count plants with [profile = "Hypericum"] count plants with [profile = "Plantago"] sum [biomass_now] of plants with [origin = "Exotic"] sum [biomass_now] of plants with [profile = "Agrostis"] sum [biomass_now] of plants with [profile = "Festuca"] sum [biomass_now] of plants with [profile = "Hypericum"] sum [biomass_now] of plants with [profile = "Plantago"] export-counter_1_exotic export-counter_1_native initialEx finalEx initialAg initialFr initialHp initialPl finalAg finalFr finalhp finalPl setup-environment go count plants with [origin = "exotic"] count plants with [profile = "Agrostis"] count plants with [profile = "Festuca"] count plants with [profile = "Hypericum"] count plants with [profile = "Plantago"] sum [biomass_now] of plants with [origin = "Exotic"] sum [biomass_now] of plants with [profile = "Agrostis"] sum [biomass_now] of plants with [profile = "Festuca"] sum [biomass_now] of plants with [profile = "Hypericum"] sum [biomass_now] of plants with [profile = "Plantago"] export-counter_1_exotic export-counter_1_native initialEx finalEx initialAg initialFr initialHp initialPl finalAg finalFr finalhp finalPl setup-environment go count plants with [origin = "exotic"] count plants with [profile = "Agrostis"] count plants with [profile = "Festuca"] count plants with [profile = "Hypericum"] count plants with [profile = "Plantago"] sum [biomass_now] of plants with [origin = "Exotic"] sum [biomass_now] of plants with [profile = "Agrostis"] sum [biomass_now] of plants with [profile = "Festuca"] sum [biomass_now] of plants with [profile = "Hypericum"] sum [biomass_now] of plants with [profile = "Plantago"] export-counter_1_exotic export-counter_1_native initialEx finalEx initialAg initialFr initialHp initialPl finalAg finalFr finalhp finalPl setup-environment go count plants with [origin = "exotic"] count plants with [profile = "Agrostis"] count plants with [profile = "Festuca"] count plants with [profile = "Hypericum"] count plants with [profile = "Plantago"] sum [biomass_now] of plants with [origin = "Exotic"] sum [biomass_now] of plants with [profile = "Agrostis"] sum [biomass_now] of plants with [profile = "Festuca"] sum [biomass_now] of plants with [profile = "Hypericum"] sum [biomass_now] of plants with [profile = "Plantago"] export-counter_1_exotic export-counter_1_native initialEx finalEx initialAg initialFr initialHp initialPl finalAg finalFr finalhp finalPl setup-environment go count plants with [origin = "exotic"] count plants with [profile = "Agrostis"] count plants with [profile = "Festuca"] count plants with [profile = "Hypericum"] count plants with [profile = "Plantago"] sum [biomass_now] of plants with [origin = "Exotic"] sum [biomass_now] of plants with [profile = "Agrostis"] sum [biomass_now] of plants with [profile = "Festuca"] sum [biomass_now] of plants with [profile = "Hypericum"] sum [biomass_now] of plants with [profile = "Plantago"] export-counter_1_exotic export-counter_1_native initialEx finalEx initialAg initialFr initialHp initialPl finalAg finalFr finalhp finalPl @#$#@#$#@ @#$#@#$#@ default 0.0 -0.2 0 0.0 1.0 0.0 1 1.0 0.0 0.2 0 0.0 1.0 link direction true 0 Line -7500403 true 150 150 90 180 Line -7500403 true 150 150 210 180 @#$#@#$#@ 0 @#$#@#$#@