lx
2025-08-08 09c1d78e98e01881f5abec85b75b52149b9b35f8
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));
    }
}