Пример #1
0
        /// <summary>
        /// Calculates the assimilation values for each pathway
        /// </summary>
        private void UpdateAssimilation(Transpiration t, bool updateT)
        {
            foreach (var p in pathways)
            {
                t.Leaf.temperature = p.Temperature;
                t.Water.LeafTemp   = p.Temperature;

                var func = t.UpdateA(assimilation, p);
                assimilation.UpdatePartialPressures(p, t.Leaf, func);

                if (!(assimilation is AssimilationC3))
                {
                    t.UpdateA(assimilation, p);
                }

                if (updateT)
                {
                    t.UpdateTemperature(p);
                }

                if (double.IsNaN(p.CO2Rate) || double.IsNaN(p.WaterUse))
                {
                    p.CO2Rate  = 0;
                    p.WaterUse = 0;
                }
            }
        }
Пример #2
0
        /// <summary>
        /// Recalculates the assimilation values for each pathway
        /// </summary>
        public void UpdateAssimilation(Transpiration t)
        {
            foreach (var p in pathways)
            {
                t.SetConditions(At25C, p.Temperature, PhotonCount, AbsorbedRadiation);
                t.UpdatePathway(assimilation, p);
                t.UpdateTemperature(p);

                // If the assimilation is not sensible zero the values
                if (double.IsNaN(p.CO2Rate) || p.CO2Rate <= 0.0 || double.IsNaN(p.WaterUse) || p.WaterUse <= 0.0)
                {
                    p.CO2Rate  = 0;
                    p.WaterUse = 0;
                }
            }
        }