tutorials:radiation-model-in-crop_model5
Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
tutorials:radiation-model-in-crop_model5 [2025/05/27 17:15] – created barley1965 | tutorials:radiation-model-in-crop_model5 [2025/05/27 18:00] (current) – barley1965 | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== Introducing simple linear leaf photosynthesis ====== | ====== Introducing simple linear leaf photosynthesis ====== | ||
- | //Open the file SimplePS.gsz.// | + | //Open the file {{ : |
We want to have some rudimentary photosynthesis. In its simplest version, the model of photosynthesis is simply a linear function of absorbed radiation. This approach is called //Radiation Use Efficiency// | We want to have some rudimentary photosynthesis. In its simplest version, the model of photosynthesis is simply a linear function of absorbed radiation. This approach is called //Radiation Use Efficiency// | ||
Line 14: | Line 14: | ||
</ | </ | ||
- | Then we define a simple conversion factor that serves to calculate the amount of assimilates in one step from the quantity of absorbed light: | + | Then we define a simple conversion factor that serves to calculate the amount of assimilates in one step from the quantity of absorbed light: |
+ | |||
+ | <code java> | ||
+ | // conversion factor light-> | ||
+ | const float CONV_FACTOR = 0.2; | ||
+ | </ | ||
- | The leaf now receives a further | + | The new parameter, |
+ | |||
+ | <code java> | ||
+ | Bud(r, p, o), (r < 10 && p == 0 && o < 3) ==> RV(-0.1) Internode(0.1, | ||
+ | [RL(BRANCH_ANGLE) Bud(r, PHYLLOCHRON, | ||
+ | RH(GOLDEN_ANGLE) RV(-0.1) Internode(0.1, | ||
+ | </ | ||
- | The method absorbAndGrow() is modified accordingly: | + | The method |
+ | |||
+ | <code java> | ||
+ | protected void absorbAndGrow () | ||
+ | [ | ||
+ | lf:Leaf ::> { | ||
+ | lf[al] = lm.getAbsorbedPower3d(lf).integrate()*2.25; | ||
+ | // | ||
+ | lf.(setShader(new AlgorithmSwitchShader(new RGBAShader(lf[al]/ | ||
+ | lf[age]++; | ||
+ | //amount of assimilates | ||
+ | lf[as] = lf[al]*CONV_FACTOR; | ||
+ | // amount of assimilates of all leaves | ||
+ | float lfas = sum((* Leaf *)[as]); | ||
+ | // dependency of growth on availability of assimilates | ||
+ | if(lfas> | ||
+ | lf[length] += logistic(2, | ||
+ | lf[width] = lf[length]*0.7; | ||
+ | } | ||
+ | </ | ||
Note that we also introduced a new condition to leaf growth: it is now dependent on the global availability of assimilates. Before leaf growth can occur, it is checked whether the sum of assimilates of all leaves is not zero. | Note that we also introduced a new condition to leaf growth: it is now dependent on the global availability of assimilates. Before leaf growth can occur, it is checked whether the sum of assimilates of all leaves is not zero. | ||
- | Don’t forget to plot the parameter. Do you remember how to do that? | + | |
+ | //Don’t forget to plot the parameter | ||
+ | |||
+ | {{tutorials: | ||
tutorials/radiation-model-in-crop_model5.1748358919.txt.gz · Last modified: 2025/05/27 17:15 by barley1965