public override Double[] plotY(double ratio, string p = "Nitrogen") { Double[] x = plotX(); Double[] y = new Double[15]; double rd = ratio * 12 * BufferDepth * SoilStorageCapacity; // Retention Depth (in over watershed) base.CalculateMediaMixTreatmentEfficiency(); for (int i = 0; i < 14; i++) { double t = RetentionEfficiencyLookupTables.CalculateEfficiency(rd, WatershedNDCIACurveNumber, WatershedDCIAPercent, RainfallZone); double e = (p == "Nitrogen" ? VNBEfficiencyTables.NitrogenRemovalEfficiency(BufferWidthSlope, x[i]) : VNBEfficiencyTables.PhosphorusRemovalEfficiency(BufferWidthSlope, x[i])); double m = (p == "Nitrogen" ? MediaNPercentReduction : MediaPPercentReduction); y[i] = t * m / 100 + (100 - t) * e / 100; } return(y); }
public new void Calculate() { RetentionDepth = 12 * BufferW * BufferDepth * SoilStorageCapacity / (BufferW + BufferFeederWidth); base.CalculateTreatmentEfficiency(RetentionDepth, WatershedNDCIACurveNumber, WatershedDCIAPercent); // The Efficiency is based on BufferNRemovalEfficiency = VNBEfficiencyTables.NitrogenRemovalEfficiency(BufferWidthSlope, BufferW); BufferPRemovalEfficiency = VNBEfficiencyTables.PhosphorusRemovalEfficiency(BufferWidthSlope, BufferW); ProvidedNTreatmentEfficiency = HydraulicCaptureEfficiency + (100 - HydraulicCaptureEfficiency) * BufferNRemovalEfficiency / 100; ProvidedPTreatmentEfficiency = HydraulicCaptureEfficiency + (100 - HydraulicCaptureEfficiency) * BufferPRemovalEfficiency / 100; CaclulateRemainingEfficiency(); CalculateMassLoading(); base.CalculateGroundwaterDischarge(); }