/// <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; } } }
/// <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; } } }