lx
2025-08-15 c97331d8eca8f9ef6a0c18ffce3518578b5638ff
ErrorAnalysis.Service/PDEVCalcService.cs
@@ -8,19 +8,17 @@
{
    public class PDEVCalcService
    {
        public static double GetMergePDEV(string modelId, double porosity, double sw, double speed, double depth)
        public static double GetMergePDEV(string modelId, double porosity, double sw, double speed, double depth, double yieldCounting, double nearCofe, double farCofe)
        {
            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 farResult = COMergeCalcService.GetFarMergeCOResult(modelId, porosity, sw, speed, depth, yieldCounting);
            var farPDEV = CalcPDEV(farResult.Item1, farResult.Item2);
            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);
            var nearResult = COMergeCalcService.GetNearMergeCOResult(modelId, porosity, sw, speed, depth, yieldCounting);
            var nearPDEV = CalcPDEV(nearResult.Item1, nearResult.Item2);
            return nearPDEV * 0.65 + farPDEV * 0.35;
            return Math.Sqrt(Math.Pow(nearPDEV * nearCofe, 2) + Math.Pow(farPDEV * farCofe, 2));
        }
        private static double CalcPDEV(double c, double o) => Math.Sqrt(Math.Pow(c / o, 2) * (1 / c + 1 / o));
        private static double CalcPDEV(double c, double o) => c / o * Math.Sqrt((1 / c + 1 / o));
    }
}