Photosynthesis
Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)
WHAT IS IT?
The simulation shows the relationship between the inputs and outputs of photosynthesis through a series multistep series of chemical reactions occuring in chloropasts.
The multistep process shown occuring in a chloroplasts in this simulation represents a series of more complex substeps in photosynthesis, including the light reactions and the Calvin cycle. The simulation shows something that looks like electrical energy and white dots within the chloroplasts getting built up when water molecules are converted to oxygen molecules. This an be seein occuring before each new carbon dioxide molecule is disassembled. This represents some of the electrical potential that is built up as hydrogen ions are removed from water in the light reactions and ATP is produced. These light reactions produce oxygen gas before glucose is fully formed. Gradual rearrangement of carbon dioxide molecules is shown occurring before a fully formed glucose molecule is produced. This represents some of the gradual rearrangement of carbon and oxygen atoms from carbon dioxide and hydrogen atoms from water that occurs in the Calvin cycle, though the intermediate arrangements of those carbon atoms are different than those shown in the simulation.
HOW TO USE IT
- Adjust the slider parameters (see below), or use the default settings.
- Press the SETUP button.
- Press the GO/PAUSE button to begin the model run.
THINGS TO TRY
Compare how the outputs(oxygen produced and sugar produced) in investigation B as are affected affected when a single independent variable Llight, carbon dioxide, water, number of chloroplasts)for a given length of imulation run.
CREDITS AND REFERENCES
This version of the model is part of the OpenSciEd Middle School instructional units developed with funding from the Carnegie Corporation of New York.
The orignal model it was developed form, was part of the iHub/nextgenstorylines Hight School Evolution developed with funding through grants from the National Science Foundation, the Gordon and Betty Moore Foundation, Denver Public Schools to Northwestern University and the University of Colorado Boulder.
For more information about this project, see the nextgenstorylines website: http://www.nextgenstorylines.org/how-do-small-changes-make-big-impacts-on-ecosystems-part-2/
HOW TO CITE
If you mention this model or the NetLogo software in a publication, we ask that you include the citations below.
For the model itself:
- Novak, M. and Penuel, B. (2016). NetLogo Photosynthesis Model. http://photosynthesis.inquiry-hub.net/.
Please cite the NetLogo software as:
- Wilensky, U. (1999). NetLogo. http://ccl.northwestern.edu/netlogo/. Center for Connected Learning and Computer-Based Modeling, Northwestern University, Evanston, IL.
COPYRIGHT AND LICENSE
Copyright 2015 Uri Wilensky.
This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License. To view a copy of this license, visit https://creativecommons.org/licenses/by-nc-sa/3.0/ or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.
Commercial licenses are also available. To inquire about commercial licenses, please contact Uri Wilensky at uri@northwestern.edu.
Comments and Questions
breed [co2s co2] breed [o2s o2] breed [h2os h2o] breed [sugars sugar] breed [photons photon] breed [chloroplasts chloroplast] breed [atps atp] breed [panels panelp] breed [carbon-complexes carbon-complex] breed [flows flow] breed [side-panels side-panel] breed [key-labels key-label] breed [breaks break] co2s-own [for-key] o2s-own [for-key] h2os-own [bound-to for-key] photons-own [bound-to for-key] atps-own [pair my-chloroplast state for-key] sugars-own [for-key] key-labels-own [for-key] panels-own [pair my-chloroplast state age] carbon-complexes-own [my-chloroplast ] patches-own [region] globals [ #-co2-molecules #-o2-molecules #-glucose-molecules-produced ] to start-up setup end to setup clear-all ;import-world "Zoom.csv" ; import-drawing "Zoom.png" set #-co2-molecules initial-carbon-dioxide set #-o2-molecules 0 set #-glucose-molecules-produced 0 create-co2s initial-carbon-dioxide [setxy (-10 + random-float 20) random 20 set-shape-size ] create-sugars 1 [setxy 14.2 -5.5 set-shape-size set for-key 1] create-key-labels 1 [setxy 16 -6.8 set shape "empty" set label "sugar (glucose)"] create-breaks 1 [setxy 13.95 -3.8 set shape "break" set color gray + 2 set size 6.7] create-key-labels 1 [setxy 15.2 -7.6 set shape "empty" set label "molecule"] create-co2s 1 [setxy 14.2 -1.5 set-shape-size set for-key 1] create-key-labels 1 [setxy 16.2 -2.4 set shape "empty" set label "carbon dioxide"] create-breaks 1 [setxy 13.95 -0.0 set shape "break" set color gray + 2 set size 6.7] create-key-labels 1 [setxy 15.2 -3.1 set shape "empty" set label "molecule"] create-o2s 1 [setxy 14.2 1.4 set-shape-size set for-key 1] create-key-labels 1 [setxy 16.4 0.7 set shape "empty" set label "oxygen molecule"] create-breaks 1 [setxy 13.95 2.8 set shape "break" set color gray + 2 set size 6.7] create-h2os 1 [setxy 14.3 4.4 set-shape-size set for-key 1] create-key-labels 1 [setxy 16.1 3.7 set shape "empty" set label "water molecule"] create-breaks 1 [setxy 13.95 5.8 set shape "break" set color gray + 2 set size 6.7] create-key-labels 1 [setxy 14.3 7.5 set color yellow + 3 set size 0.6 set heading 135 set shape "ray" set for-key 1.2] create-key-labels 1 [setxy 14.5 6.5 set shape "empty" set label "light"] create-key-labels 1 [setxy 14.3 9 set shape "empty" set label-color black set label "KEY"] if initial-#-of-chloroplasts > 0 [make-initial-chloroplasts] make-system-boundary make-flows reset-ticks end to set-shape-size let new-size 2.5 if breed = sugars [set shape "sugar" set color black set size new-size ] if breed = chloroplasts [set color [0 200 0 150] set shape "circle" set size 4 ] if breed = h2os [set shape "h20" set color black set size new-size ] if breed = co2s [set shape "co2" set color black set size new-size ] if breed = o2s [set shape "o2" set color black set size new-size ] if breed = photons [set color yellow + 3 set size 0.6 set heading 135 set shape "ray"] end to make-initial-chloroplasts let angle-increment 0 let off-set random 360 let divider 360 / initial-#-of-chloroplasts repeat initial-#-of-chloroplasts [ create-chloroplasts 1 [ set heading (off-set + (angle-increment * (divider) + random (divider / 3) - random (divider / 3))) fd (3.5 + random-float 3.5) set-shape-size ] set angle-increment angle-increment + 1 ] ask chloroplasts [ let atp-count 0 let atp-offset random 60 let this-chloroplast self let this-pair 0 set heading 0 repeat 3 [ repeat 2 [ hatch 1 [set breed atps set heading (atp-offset + (atp-count * 60)) set my-chloroplast this-chloroplast set hidden? true set pair this-pair set state 0] set atp-count atp-count + 1 ] set this-pair this-pair + 1 ] ] end to make-flows create-flows 1 [set heading 90 set hidden? true] end to make-system-boundary ask patches [ if ((pxcor < -9 or pxcor > 10) and (pycor = max-pycor or pycor = min-pycor)) or (pycor = max-pycor or pycor = min-pycor) or (pxcor = -10 or pxcor = 10 ) or (pycor = 0 and pxcor < -10 ) or (pxcor = min-pxcor or pxcor = max-pxcor) [ sprout 1 [set breed side-panels set shape "square" set size 1.2 set color [180 180 180]] ] if ((pxcor = -9) or ((pxcor >= -9 and pxcor < 10) and pycor = max-pycor)) [set region 3] if (pxcor > -9 and pxcor < 10 and pycor != max-pycor) [set region 4] if ((pxcor = 10) or ((pxcor >= -9 and pxcor < 10) and pycor = min-pycor)) [set region 5] if (pxcor > 10) [set region 6] if region = 4 [sprout 1 [set shape "square" set size 1.2 set color sky + 2 stamp die]] if region = 6 [sprout 1 [set shape "square" set size 1.0 set color gray stamp die]] ] end to do-photon-flow if intensity-of-light > random 100 [ ask n-of 1 patches with [region = 3] [ sprout 1 [ set breed photons set-shape-size set hidden? true ] ] ] ask photons [ if for-key != 1 [fd 0.15 set bound-to 0] if for-key != 1 and region = 5 [die] if pxcor >= -9.6 [set hidden? false] ] end to do-water-flow if waterflow-through-leaf > random 100 and random 3 = 0 [ ask n-of 1 patches with [region = 3 and pycor < max-pycor] [ sprout 1 [ set breed h2os set-shape-size set hidden? true create-link-from one-of flows [ tie set hidden? true ] ] ] ] ask h2os [ if for-key != 1 [fd 0.01 rt random 10 lt random 10] if (pxcor >= 10 and for-key != 1 ) [die] if for-key = 1 [set hidden? false] if pxcor >= -9.6 [set hidden? false] if pycor > (max-pycor - .4) [set hidden? true] if pycor < (min-pycor + .4) [set hidden? true] ] end to do-sugar-flow ask sugars [ if for-key != 1 [fd 0.005 rt random 10 lt random 10] if (pxcor >= 10 and for-key != 1 )[die] if for-key = 1 [set hidden? false] ] end to do-gas-flow ask co2s with [for-key != 1] [ fd 0.08 rt random-float 0.005 lt random-float 0.005 if xcor > 10 [set xcor -9] if xcor < -9 [set xcor 10] ] ask o2s with [for-key != 1] [fd 0.05] end to go ask turtles with [breed = co2s or breed = o2s or breed = h2os or breed = sugars or breed = photons] [ ifelse region = 4 or for-key = 1 [set hidden? false][set hidden? true] ] do-photon-flow do-water-flow do-sugar-flow do-gas-flow ask flows [fd 0.05] ask side-panels [set hidden? false] ask atps with [state = 0] [ let this-pair pair let this-chloroplasts my-chloroplast let h2os-near-me h2os in-radius 2 let photons-near-me photons in-radius 2 let total-atps atps with [pair = this-pair and my-chloroplast = this-chloroplasts and state = 0] let other-charged-atps atps with [pair != this-pair and my-chloroplast = this-chloroplasts and state = 1] if any? photons-near-me and any? h2os-near-me and not any? other-charged-atps [ if count h2os-near-me >= 2 and count total-atps = 2 [ ask one-of h2os-near-me [die] ask one-of other h2os-near-me [die] hatch 1 [set breed o2s set shape "o2" set size 2 set heading random 360] set hidden? false set state 1 ask total-atps [set hidden? false set state 1] ] ] ] ask atps [ask photons in-radius 2 [die]] ask atps with [state = 1] [ let this-pair pair let this-chloroplasts my-chloroplast let total-atps atps with [not hidden? and pair = this-pair and my-chloroplast = this-chloroplasts and state = 1] ; show count total-atps if count total-atps = 2 [ let co2s-near-me co2s in-radius 2 ; show count co2s-near-me if count co2s-near-me >= 2 [ let other-atps one-of other total-atps ask one-of co2s-near-me [ set heading [heading] of myself setxy ([xcor] of myself) ([ycor] of myself) set breed carbon-complexes set my-chloroplast this-chloroplasts set shape "carbon-complexes" ask one-of other co2s-near-me [ set heading [heading] of other-atps setxy ([xcor] of other-atps) ([ycor] of other-atps) set breed carbon-complexes set my-chloroplast this-chloroplasts set shape "carbon-complexes" ] hatch 1 [set breed o2s set shape "o2" set size 2 set heading random 360] ] ask total-atps [set state -1] ] ] ] ask atps with [state = 1] [set hidden? false set color (orange + 3 + random-float 1) set shape (word "electric-" random 10)] ask atps with [state != 1] [set hidden? true] ask chloroplasts [ let this-chloroplast self let my-carbon-complexes carbon-complexes with [my-chloroplast = this-chloroplast] if count my-carbon-complexes = 6 [ ask my-carbon-complexes with [my-chloroplast = this-chloroplast] [die] hatch 1 [set breed sugars set shape "sugar" set color black set heading random 360 set size 2 create-link-from one-of flows [ tie set hidden? true ]] set #-glucose-molecules-produced #-glucose-molecules-produced + 1 ask atps with [my-chloroplast = this-chloroplast] [set hidden? true set state 0] ] ] update-counts ; wait delay tick end to update-counts set #-co2-molecules count co2s with [for-key != 1] set #-o2-molecules count o2s with [for-key != 1] end
There are 3 versions of this model.
Attached files
File | Type | Description | Last updated | |
---|---|---|---|---|
Photosynthesis.png | preview | Preview for 'Photosynthesis' | about 6 years ago, by Michael Novak | Download |
This model does not have any ancestors.
This model does not have any descendants.
Peter Kimemiah
The sugar production stops (Question)
I have noted in this model the sugar productions stops when co2 is depleted. I have adjusted the light intensity to reduce the production of oxygen , but that doe snot appear to have any impact. Is this intended and if so why? If not is it a bug?
Posted over 3 years ago