using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ErrorAnalysis.Service { public class PDEVCalcService { public static double GetMergePDEV(string modelId, double porosity, double sw, double speed, double depth) { var farC = COMergeCalcService.GetFarMergeCOResult( modelId, porosity, sw, 0, speed, depth); var farO = COMergeCalcService.GetFarMergeCOResult( modelId, porosity, sw, 100, speed, depth); var farPDEV = CalcPDEV(farC, farO); var nearC = COMergeCalcService.GetNearMergeCOResult( modelId, porosity, sw, 0, speed, depth); var nearO = COMergeCalcService.GetNearMergeCOResult( modelId, porosity, sw, 100, speed, depth); var nearPDEV = CalcPDEV(nearC, nearO); return nearPDEV * 0.65 + farPDEV * 0.35; } private static double CalcPDEV(double c, double o) => Math.Sqrt(Math.Pow(c / o, 2) * (1 / c + 1 / o)); } }