/// <summary>Updates each tissue, make changes in DM and N effective.</summary> public static void UpdateTissues(RootTissue tissue1, RootTissue tissue2) { // save current state double previousDM = tissue1.DM.Wt + tissue2.DM.Wt; double previousN = tissue1.DM.N + tissue2.DM.N; // update all tissues tissue1.Update(); tissue2.Update(); var currentDM = tissue1.DM.Wt + tissue2.DM.Wt; var currentN = tissue1.DM.N + tissue2.DM.N; // check mass balance if (!MathUtilities.FloatsAreEqual(0.0, previousDM + tissue1.dmTransferredIn - tissue2.dmTransferredOut - currentDM)) { throw new Exception("Growth and tissue turnover resulted in loss of dry matter mass balance for roots"); } if (!MathUtilities.FloatsAreEqual(0.0, previousN + tissue1.nTransferredIn - tissue1.nRemobilised - tissue2.nRemobilised - tissue2.nTransferredOut - currentN)) { throw new Exception("Growth and tissue turnover resulted in loss of nitrogen mass balance for roots"); } }