Summer School „Modelling and Simulation with GroIMP“ / Tutorial for beginners University of Göttingen (Germany), 27-28 September, 2010 Winfried Kurth Some.

Slides:



Advertisements
Similar presentations
Chapter 14 Software Testing Techniques - Testing fundamentals - White-box testing - Black-box testing - Object-oriented testing methods (Source: Pressman,
Advertisements

SOFTWARE TESTING. INTRODUCTION  Software Testing is the process of executing a program or system with the intent of finding errors.  It involves any.
Chapter 12 Creating and Using Templates. If you have already created and designed a page you like, you can use the layout and design for other pages in.
15-853Page : Algorithms in the Real World Suffix Trees.
296.3: Algorithms in the Real World
CMSC 345, Version 11/07 SD Vick from S. Mitchell Software Testing.
Java Programming, 3e Concepts and Techniques Chapter 4 Decision Making and Repetition with Reusable Objects.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Chapter 10: File-System Interface.
Chair of Software Engineering Fundamentals of Program Analysis Dr. Manuel Oriol.
Logical Operators Java provides two binary logical operators (&& and ||) that are used to combine boolean expressions. Java also provides one unary (!)
Chapter 4 Sec. 4.1, 4.2, 4.4 Procedures (User-defined)
C++ Programming: Program Design Including Data Structures, Third Edition Chapter 20: Binary Trees.
Functional-Structural Plant Modelling with GroIMP and XL Tutorial and Workshop at Agrocampus Ouest, Angers, 5-7 May, 2015 Winfried Kurth University of.
Summer School „Modelling and Simulation with GroIMP“ / Tutorial for beginners University of Göttingen (Germany), September, 2010 Winfried Kurth Modelling.
XL as an extension of the L-system formalism Tutorial "Modelling Plants with GroIMP", Cottbus, March 11-12, 2008 Winfried Kurth Ole Kniemeyer Reinhard.
Optimization of application in virtual laboratory Optimization of application in virtual laboratory constructing workflows based on application sources.
1 iSee Player Tutorial Using the Forest Biomass Accumulation Model as an Example ( Tutorial Developed by: (
Ruel based decision support for the process flow Embedding SIMONE optimisation modules in a Knowledge and rule based process.
Functional-Structural Plant Modelling with GroIMP and XL Tutorial and Workshop at Agrocampus Ouest, Angers, 5-7 May, 2015 Winfried Kurth University of.
Summer School „Modelling and Simulation with GroIMP“ / Tutorial for beginners University of Göttingen (Germany), September, 2010 Winfried Kurth Some.
Tutorial „Modelling in the language XL“ University of Göttingen (Germany), September 21/22, 2009 Winfried Kurth Some basic examples in XL (part 1) related.
Modelling of Ecosystems by Tools from Computer Science Summer School at Czech University of Life Sciences, Prague, September, 2013 Winfried Kurth.
Functional-Structural Plant Modelling with GroIMP and XL
Tutorial and workshop „Modelling with GroIMP and XL“ / Tutorial for beginners University of Göttingen, 27 February, 2012 Winfried Kurth Basic examples.
Chapter 10: File-System Interface 10.1 Silberschatz, Galvin and Gagne ©2011 Operating System Concepts – 8 th Edition 2014.
Summer School „Modelling and Simulation with GroIMP“ / Tutorial for beginners University of Göttingen (Germany), September, 2010 Winfried Kurth Some.
Functional-Structural Plant Modelling with GroIMP and XL Tutorial and Workshop at Agrocampus Ouest, Angers, 5-7 May, 2015 Winfried Kurth University of.
Summer School „Modelling and Simulation with GroIMP“ / Tutorial for beginners University of Göttingen (Germany), September, 2010 Winfried Kurth Some.
Functional-Structural Plant Modelling with GroIMP and XL Tutorial and Workshop at Agrocampus Ouest, Angers, 5-7 May, 2015 Winfried Kurth University of.
Functions Top-down design Breaking a complex problem into smaller parts that we can understand is a common practice. The process of subdividing a problem.
Modelling of Ecosystems by Tools from Computer Science Summer School at Czech University of Life Sciences, Prague, September, 2013 Winfried Kurth.
Visual C# 2012 How to Program © by Pearson Education, Inc. All Rights Reserved.
C++ Programming: From Problem Analysis to Program Design, Fourth Edition Chapter 6: User-Defined Functions I.
Tutorial and workshop „Modelling with GroIMP and XL“ / Tutorial for beginners University of Göttingen, 27 February, 2012 Winfried Kurth Introduction to.
1 DATA FLOW DIAGRAM. 2 Outline Process decomposition diagrams Data flow diagram (DFD)
WIRED 4 An extensible generic Event Display Mark Donszelmann SLAC, Stanford, U.S.A. CHEP2004, 27 september – 1 october Interlaken, Switzerland.
SOFTWARE DESIGN. INTRODUCTION There are 3 distinct types of activities in design 1.External design 2.Architectural design 3.Detailed design Architectural.
Modelling above- and below-ground competition together Winfried Kurth University of Göttingen Chair for Computer Graphics and Ecological Informatics wk.
Adding functionality to a growth model; A tutorial on queries in GroImp Basic plant.gsz Adding function using queries.
SIMO Python/XML Simulator Current situation 28/10/2005 SIMO Seminar Antti Mäkinen Dept. of Forest Resource Management / University of Helsinki.
Tutorial and workshop „Modelling with GroIMP and XL“ / Tutorial for beginners University of Göttingen, 27 February, 2012 Gerhard Buck-Sorlin and Winfried.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Graph-oriented modelling of multiscaled dynamical systems with a dynamical structure: Challenges to the "Relational Growth Grammar" approach Winfried Kurth.
C++ Programming: Program Design Including Data Structures, Fourth Edition Chapter 6: User-Defined Functions I.
SOFTWARE TESTING. Introduction Software Testing is the process of executing a program or system with the intent of finding errors. It involves any activity.
Chapter 3: User-Defined Functions I
Concepts and Realization of a Diagram Editor Generator Based on Hypergraph Transformation Author: Mark Minas Presenter: Song Gu.
C++ Programming: From Problem Analysis to Program Design, Fourth Edition Chapter 6: User-Defined Functions I.
UMass Lowell Computer Science Java and Distributed Computing Prof. Karen Daniels Fall, 2000 Lecture 8 Java Fundamentals Control Structures Fri.
Modelling of Ecosystems by Tools from Computer Science Summer School at Czech University of Life Sciences, Prague, September, 2013 Winfried Kurth.
Modelling of Ecosystems by Tools from Computer Science Summer School at Czech University of Life Sciences, Prague, September, 2013 Winfried Kurth.
Tutorial „Modelling in the language XL“ University of Göttingen (Germany), September 21/22, 2009 Winfried Kurth Some basic examples in XL (part 2) related.
Functional-Structural Plant Modelling with GroIMP and XL Tutorial and Workshop at Agrocampus Ouest, Angers, 5-7 May, 2015 Winfried Kurth University of.
© 2010 Delmar, Cengage Learning Chapter 11 Creating and Using Templates.
OOP Basics Classes & Methods (c) IDMS/SQL News
Naming CSCI 6900/4900. Names & Naming System Names have unique importance –Resource sharing –Identifying entities –Location reference Name can be resolved.
Introduction to the TLearn Simulator n CS/PY 231 Lab Presentation # 5 n February 16, 2005 n Mount Union College.
BIL 104E Introduction to Scientific and Engineering Computing Lecture 4.
Software Testing.
Eclipse Navigation & Usage.
Graph-Based Operational Semantics
1. Introduction to Visual Basic
Factor Graphs and the Sum-Product Algorithm
File Structure 2018, Spring Pusan National University Joon-Seok Kim
EECE.4810/EECE.5730 Operating Systems
Interpretive rules and instantiation rules
Analysis models and design models
Homework Any Questions?.
APPCs revisited 2/25/2019 APPCs revisited.
A QUICK START TO OPL IBM ILOG OPL V6.3 > Starting Kit >
Presentation transcript:

Summer School „Modelling and Simulation with GroIMP“ / Tutorial for beginners University of Göttingen (Germany), September, 2010 Winfried Kurth Some basic examples in XL (part 4) related material: XL code files sm09_e??.rgg URL and drive T:\rgg on CIP pool stations

Representation of graphs in XL ● node types must be declared with „ module “ ● nodes can be all Java objects. In user-made module declarations, methods (functions) and additional variables can be introduced, like in Java ● notation for nodes in a graph: Node_type, optionally preceded by: label: Examples: A, Meristem(t), b:Bud ● notation for edges in a graph: - edgetype ->, <- edgetype - ● special edge types: successor edge: -successor->, > or (blank) branch edge: -branch->, +> or [ refinement edge: />

Notations for special edge types > successor edge forward < successor edge backward --- successor edge forward or backward +> branch edge forward <+ branch edge backward -+- branch edge forward or backward /> refinement edge forward </ refinement edge backward --> arbitrary edge forward <-- arbitrary edge backward -- arbitrary edge forward or backward (cf. Kniemeyer 2008, p. 150 and 403)

user-defined edge types const int xxx = EDGE_0; // oder EDGE_1,..., EDGE_14... usage in the graph: -xxx->, <-xxx-, -xxx- Notation of graphs in XL example: is represented in programme code as (the representation is not unique!) ( >: successor edge, +: branch edge)

derived relations relation between nodes connected by several edges (one after the other) of the same type: „transitive hull“ of the original relation (edge)

Notation for the transitive hull in XL: (-edgetype->)+ reflexive-transitive hull („node stands in relation to itself“ also permitted): (-edgetype->)* e.g., for the successor relation: (>)* common transitive hull of the special relations „successor“ and „branch“, in reverse direction: -ancestor-> interpretation: this relation is valid to all „preceding nodes“ in a tree along the path to the root. nearest successors of a certain node type: -minDescendants-> (nodes of other types are skipped)

successor edge branch edge relation „ancestor“ minDescendants

The current graph GroIMP maintains always a graph which contains the complete current structural information. This graph is transformed by application of the rules. Attention: Not all nodes are visible objects in the 3-D view of the structure! - F0, F(x), Box, Sphere : yes - RU(30), A, B : normally not (if not derived by „ extends “ from visible objects) The graph can be completely visualized in the 2-D graph view (in GroIMP: Panels - 2D - Graph).

Load an example RGG file in GroIMP and execute some steps (do not work with a too complex structure). Open the 2-D graph view, fix the window with the mouse in the GroIMP user interface and test different layouts (Layout - Edit): Tree Sugiyama Square Circle Random SimpleEdgeBased Fruchterman Keep track of the changes of the graph when you apply the rules (click on „redraw“)!

which parts of the current graph of GroIMP are visible (in the 3-d view) ? all geometry nodes which can be accessed from the root (denoted ^) of the graph by exactly one path, which consists only of "successor" and "branch" edges How to enforce that an object is visible in any case: ==>> ^ Object

Derivation modes in XL default: parallel application of rules (like in L-systems) to switch into sequential mode (then, in each step at most one rule is applied at one match): setDerivationMode(SEQUENTIAL_MODE) to switch back to parallel mode: setDerivationMode(PARALLEL_MODE) test the example sm09_e32.rgg

a further type of rules: actualization rules often, nothing at the graph structure has to be changed, but only attributes of one single node are to be modified (e.g., calculation of photosynthesis in one leaf). For this purpose, there is an extra rule type: A ::> { imperative code }; Test the examples sm09_e25.rgg, sm09_e16.rgg, sm09_e17.gsz, sm09_e18.rgg and concerning the access to node attributes: sm09_e26.rgg

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)

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 { 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)

Modelling diameter growth in plants frequently used approaches: - regression diameter ~ length for new growth units - then, diameter increment dependent from age, branch order, etc. e.g., use rule with fixed annual growth Shoot(l, d) ==> Shoot(l, d+delta_d); interpretive rule for Shoot: Shoot(d) ==> F(l, d); - or: “pipe model“ assumption

“pipe model“ (SHINOZAKI et al. 1964) : parallel “unit pipes“ cross section area ~ leaf mass ~ fine root mass

conclusion: „Leonardo rule“ (da Vinci, about 1500) d  didi  In each branching node we have d 2 =  d i 2 (invariance of cross section area)

A = A 1 + A 2 d 2 = d d 2 2 A A1A1 A2A2 realization in an XL-based model: see examples sm09_e33.rgg, sm09_e34.rgg there, first the structural and length growth is simulated, then in separate steps the diameter growth, calculated top-down (also a – more realistic – combination is possible)