1 / 11

Tutorial „Modelling in the language XL“ University of Göttingen (Germany), September 21/22, 2009

Tutorial „Modelling in the language XL“ University of Göttingen (Germany), September 21/22, 2009 Winfried Kurth Steps towards modelling poplar trees related material: XL code files sm09_e??.rgg URL http://www.uni-forst.gwdg.de/~wkurth/ and drive T:gg on CIP pool stations.

amos-young
Télécharger la présentation

Tutorial „Modelling in the language XL“ University of Göttingen (Germany), September 21/22, 2009

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Tutorial „Modelling in the language XL“ University of Göttingen (Germany), September 21/22, 2009 Winfried Kurth Steps towards modelling poplar trees related material: XL code files sm09_e??.rgg URL http://www.uni-forst.gwdg.de/~wkurth/ and drive T:\rgg on CIP pool stations

  2. increasingly elaborated versions of a (preliminary) model of 1-year-old, unbranched poplar trees versions: sm09_e37.gsz modules with user-defined methods; use of transformation matrices sm09_e38.gsz internode elongation, counting the days sm09_e39.gsz collection of all constants at the head of the programme sm09_e40.gsz introduction of three leaf maturity classes, arrays with growth parameters

  3. necessary for the distribution of assimilates: modelling of transport processes approach: substrate flows from elements with high concentration to neighbour elements with low concentration (principle of diffusion) example: sm09_e41.rgg (concentration of substrates is here visualized by diameter)

  4. module Internode(super.diameter) extends F(100, diameter); protected void init() [ Axiom ==> P(14) Internode(1) P(2) Internode(1) P(4) Internode(1) P(15) Internode(60); ] public void transport() [ i_top:Internode < < i_bottom:Internode ::> { float r = 0.1 * (i_bottom[diameter] - i_top[diameter]); i_bottom[diameter] :-= r; i_top[diameter] :+= r; } ] (two reverse successor edges, one after the other)

  5. for light interception / photosynthesis: a simple model of overshadowing model approach (strongly simplifying): overshadowing of an object occurs when there are further objects in an imagined cone with its apex in the object, opened into z direction (to the sky). example: sm09_e42.rgg competition of three 2-dimensional model plants for light

  6. module Segment(int t, int ord) extends F0; module TBud(int t) extends F(1, 1, 1); module LBud extends F(0.5, 0.5, 1); Vector3d z = new Vector3d(0, 0, 1); protected void init() [ Axiom ==> P(2) D(5) V(-0.15) [ TBud(-4) ] RU(90) M(600) RU(-90) [ TBud(0) ] RU(-90) M(1200) RU(90) [ TBud(-8) ]; ] public void run() [ TBud(t), (t < 0) ==> TBud(t+1); x:TBud(t), (t >= 0 && empty( (* s:Segment, (s in cone(x, z, 45)) *) ) ) ==> L(random(80, 120)) Segment(0, 0) [ MRel(random(0.5, 0.9)) RU(60) LBud ] [ MRel(random(0.5, 0.9)) RU(-60) LBud ] TBud(t+1); y:LBud, (empty( (* s:Segment, (s in cone(y, z, 45)) *) ) ) ==> L(random(60, 90) Segment(0, 1) RV0 LBud; Segment(t, o), (t < 8) ==> Segment(t+1, o); Segment(t, o), (t >= 8 && o == 1) ==>> ; /* removal of the whole branch */ ]

  7. a further rule type in XL: • instantiation rules • purpose: replacement of single modules by more complicated structures, only for visual representation • (similar as for interpretive rules) • but: less data are stored (less usage of memory) • in contrast to interpretive rules, no turtle commands • with effect on other nodes can be used • further, arising possibility: „replicator nodes“ for copying and relocation of whole structures

  8. instantiation rules: syntax no new sort of rule arrow specification of the instantiation rule directly in the declaration of the module which is to be replaced module A ==> B C D; replaces (instantializes) everywhere A by B C D example sm09_e43.rgg

  9. const int multiply = EDGE_0; /* user-defined edge type */ module Tree ==> F(20, 1) [ M(-8) RU(45) F(6, 0.8) Sphere(1) ] [ M(-5) RU(-45) F(4, 0.6) Sphere(1) ] Sphere(2); module Replicator ==> [ getFirst(multiply) ] Translate(10, 0, 0) [ getFirst(multiply) ]; public void run1() [ Axiom ==> F(2, 6) P(10) Tree; ] public void run2() [ Axiom ==> F(2, 6) P(10) Replicator -multiply-> Tree; ] Tree is instantiated with the red structure inserts all what comes after the „multiply“ edge

  10. further steps towards the poplar model • sm09_b44.gsz • sm09_b45.gsz • in poplar.gsz we have additionally: • insertion of a rule block for the angles, change of angles • during growth • insertion of an object „Sun“ which changes its position • relative to the plant during the day

  11. Thank you for your attention!

More Related