tutorials:radiation-model-in-crop_model9
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| tutorials:radiation-model-in-crop_model9 [2025/10/30 22:28] – barley1965 | tutorials:radiation-model-in-crop_model9 [2025/10/31 14:11] (current) – barley1965 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== Assimilate Transport and Fruit Development ====== | ====== Assimilate Transport and Fruit Development ====== | ||
| - | The Transport model extends the FlowerAging | + | //Open {{ : |
| + | |||
| + | The Transport model extends the [[: | ||
| ===== Assimilate Storage and Transport Parameters ===== | ===== Assimilate Storage and Transport Parameters ===== | ||
| - | The model introduces a new parameter '' | + | The model introduces a new parameter '' |
| <code java> | <code java> | ||
| Line 17: | Line 19: | ||
| ===== Maintenance Respiration ===== | ===== Maintenance Respiration ===== | ||
| - | A maintenance respiration constant has been added to simulate the metabolic cost of keeping tissues alive (L. 78): | + | A maintenance respiration constant has been added to simulate the metabolic cost of keeping tissues alive (L. 96): |
| <code java> | <code java> | ||
| Line 23: | Line 25: | ||
| </ | </ | ||
| - | This is applied to internodes during growth to simulate sugar consumption: | + | This is applied to internodes during growth to simulate sugar consumption |
| <code java> | <code java> | ||
| itn: | itn: | ||
| - | | + | itn[age]++; |
| - | if(itn[as]> | + | if(itn[as]> |
| - | itn[length] += logistic(1, itn[age], 10, 0.1); | + | itn[length] += logistic(1, itn[age], 10, itn[as]); |
| - | } | + | itn.(setShader(new RGBAShader(itn[as]*15.0, itn[as]*7.5, itn[as]))); |
| + | } | ||
| </ | </ | ||
| + | |||
| + | Note that internode length is incremented up to a fixed length of 1, however, we vary the speed of elongation as a function of sugar available in the internode, '' | ||
| ===== Transport Mechanism ===== | ===== Transport Mechanism ===== | ||
| - | The main novelty of the present model is the implementation of a diffusion-based transport system. The transport occurs with a diffusion constant that controls the rate (L. 75): | + | The main novelty of the present model is the implementation of a diffusion-based transport system. The transport occurs with a diffusion constant that controls the rate (L. 94): |
| <code java> | <code java> | ||
| - | const float DIFF_CONST = 0.001; | + | const float DIFF_CONST = 0.002; |
| </ | </ | ||
| - | The transport | + | Transport |
| <code java> | <code java> | ||
| Line 53: | Line 58: | ||
| Three types of transport are implemented using user-defined edge relations: | Three types of transport are implemented using user-defined edge relations: | ||
| - | **a) Leaf to Internode Transport** (L. 251-258): | + | **a) Leaf to Internode Transport, and vice versa ** (L. 256-280): |
| <code java> | <code java> | ||
| lf:Leaf < | lf:Leaf < | ||
| - | | + | if(lf[as] > 0.01 && lf[age]> |
| float exportable = lf[as] - 0.01; | float exportable = lf[as] - 0.01; | ||
| float r = DIFF_CONST * exportable; | float r = DIFF_CONST * exportable; | ||
| lf[as] -= r; | lf[as] -= r; | ||
| itn[as] += r; | itn[as] += r; | ||
| - | | + | // |
| - | } | + | } else |
| + | if(itn[as] > 0.01 && lf[age]< | ||
| + | float exportable = itn[as] - 0.01; | ||
| + | float r = DIFF_CONST * exportable; | ||
| + | lf[as] += r; | ||
| + | itn[as] -= r; | ||
| + | // | ||
| + | } | ||
| + | } | ||
| </ | </ | ||
| - | This rule ensures leaves retain a minimum amount (0.01) for maintenance while exporting the surplus. | + | This rule ensures leaves retain a minimum amount (0.01) for maintenance while exporting the surplus. |
| **b) Internode to Internode Transport** (L. 260-268): | **b) Internode to Internode Transport** (L. 260-268): | ||
| Line 84: | Line 97: | ||
| </ | </ | ||
| - | This bidirectional transport follows the concentration gradient between successive internodes. | + | This bidirectional transport follows the concentration gradient between successive internodes. |
| **c) Internode to Fruit Transport** (L. 269-275): | **c) Internode to Fruit Transport** (L. 269-275): | ||
| Line 97: | Line 110: | ||
| } | } | ||
| </ | </ | ||
| + | This final rule expresses transport in only one direction, i.e. fruits are //absolute sinks// (which is wrong, because young fruit are often green and have been shown to carry out photosynthesis). | ||
| ===== Fruit Set Decision Based on Sugar Availability ===== | ===== Fruit Set Decision Based on Sugar Availability ===== | ||
| - | The model now makes fruit formation dependent on available | + | The model now makes fruit formation dependent on sugar available |
| <code java> | <code java> | ||
| - | fl: | + | fl: |
| - | {float sugar = sum((* lf:Leaf *)[as]); | + | {float sugar = first((* Leaf *)[as]); |
| - | println(sugar); | + | println(" |
| - | } | + | } |
| - | if(probability(0.6)) (Fruit(0.01, | + | if(sugar>0.0005) ({noFrts++; |
| - | else if(probability(0.4)) | + | else (fl); |
| </ | </ | ||
| - | + | Note that a '' | |
| - | Sugar availability | + | Availability of sugar is calculated by querying '' |
| ===== Fruit Growth Competition ===== | ===== Fruit Growth Competition ===== | ||
| - | Multiple fruits compete for available resources using an age-based weighting system (L. 209-225): | + | Multiple fruits compete for available resources using an age-based weighting system (L. 214-226): |
| <code java> | <code java> | ||
| fr:Fruit ::> { | fr:Fruit ::> { | ||
| Line 127: | Line 141: | ||
| float sugar = (totalAgeWeight > 0) ? | float sugar = (totalAgeWeight > 0) ? | ||
| (totalSugar * ageWeight) / totalAgeWeight : totalSugar / fruitCount; | (totalSugar * ageWeight) / totalAgeWeight : totalSugar / fruitCount; | ||
| - | </ | + | |
| - | Younger fruits receive proportionally more resources through exponential age weighting, simulating their stronger sink strength. | + | Younger fruits receive proportionally more resources through exponential age weighting, simulating their stronger sink affinity (thereby compensating their smaller size). |
| ===== Visual Feedback ===== | ===== Visual Feedback ===== | ||
| Line 138: | Line 152: | ||
| ===== Tasks for Exploration ===== | ===== Tasks for Exploration ===== | ||
| - | 1. Run the model and observe sugar flow: Watch how internodes change color as sugar moves through them. | + | - Run the model and observe sugar flow: Watch how internodes change color as sugar moves through them. |
| - | 2. Modify DIFF_CONST: Try values between 0.0001 and 0.01. How does this affect: | + | |
| - | o Speed of sugar movement? | + | |
| - | o Final fruit size? | + | * Final fruit size? |
| - | o Number of successfully developed fruits? | + | * Number of successfully developed fruits? |
| - | 3. Change transport frequency: Modify the condition if(time % 24 == 0) to different values (e.g., % 12 for twice-daily transport). What impact does this have? | + | |
| - | 4. Adjust maintenance respiration: | + | |
| ===== Biological Relevance ===== | ===== Biological Relevance ===== | ||
tutorials/radiation-model-in-crop_model9.1761859726.txt.gz · Last modified: 2025/10/30 22:28 by barley1965
