| ErrorAnalysis.Service/COMergeCalcService.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| ErrorAnalysis.Service/ErrorRatioCalc.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| ErrorAnalysis.Service/Utility.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| ErrorAnalysis.UI/ErrorAnalysis.UI.csproj | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| ErrorAnalysis.UI/FrmMain.Designer.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| ErrorAnalysis.UI/FrmMain.resx | 补丁 | 查看 | 原始文档 | blame | 历史 |
ErrorAnalysis.Service/COMergeCalcService.cs
@@ -36,14 +36,14 @@ var oilLineValArr = oilLine.CInelasticSpec.Split(',').Select(v => Convert.ToDouble(v)).ToArray(); var waterLineValArr = waterLine.CInelasticSpec.Split(',').Select(v => Convert.ToDouble(v)).ToArray(); var oilLineCR = oilLineValArr.Skip(_cWinStartIndex).Take(cWinLength).Sum() / oilLineValArr.Sum(); var oilLineOR = oilLineValArr.Skip(_oWinStartIndex).Take(oWinLength).Sum() / oilLineValArr.Sum(); var oilLineCR = oilLineValArr.Skip(_cWinStartIndex - 1).Take(cWinLength).Sum() / oilLineValArr.Skip(17).Take(237).Sum(); var oilLineOR = oilLineValArr.Skip(_oWinStartIndex - 1).Take(oWinLength).Sum() / oilLineValArr.Skip(17).Take(237).Sum(); var oilLineC = 36d / 160d * oilLineCR * yieldCounting / speed * depth * 0.0762d; var oilLineO = 36d / 160d * oilLineOR * yieldCounting / speed * depth * 0.0762d; var waterLineCR = waterLineValArr.Skip(_cWinStartIndex).Take(cWinLength).Sum() / waterLineValArr.Sum(); var waterLineOR = waterLineValArr.Skip(_oWinStartIndex).Take(oWinLength).Sum() / waterLineValArr.Sum(); var waterLineCR = waterLineValArr.Skip(_cWinStartIndex - 1).Take(cWinLength).Sum() / waterLineValArr.Skip(17).Take(237).Sum(); var waterLineOR = waterLineValArr.Skip(_oWinStartIndex - 1).Take(oWinLength).Sum() / waterLineValArr.Skip(17).Take(237).Sum(); var waterLineC = 36d / 160d * waterLineCR * yieldCounting / speed * depth * 0.0762d; var waterLineO = 36d / 160d * waterLineOR * yieldCounting / speed * depth * 0.0762d; @@ -77,13 +77,13 @@ var oilLineValArr = oilLine.CInelasticSpec.Split(',').Select(v => Convert.ToDouble(v)).ToArray(); var waterLineValArr = waterLine.CInelasticSpec.Split(',').Select(v => Convert.ToDouble(v)).ToArray(); var oilLineCR = oilLineValArr.Skip(_cWinStartIndex).Take(cWinLength).Sum() / oilLineValArr.Sum(); var oilLineOR = oilLineValArr.Skip(_oWinStartIndex).Take(oWinLength).Sum() / oilLineValArr.Sum(); var oilLineCR = oilLineValArr.Skip(_cWinStartIndex - 1).Take(cWinLength).Sum() / oilLineValArr.Skip(17).Take(237).Sum(); var oilLineOR = oilLineValArr.Skip(_oWinStartIndex - 1).Take(oWinLength).Sum() / oilLineValArr.Skip(17).Take(237).Sum(); var oilLineC = (36d / 160d) * oilLineCR * yieldCounting / speed * depth * 0.0762d; var oilLineO = (36d / 160d) * oilLineOR * yieldCounting / speed * depth * 0.0762d; var waterLineCR = waterLineValArr.Skip(_cWinStartIndex).Take(cWinLength).Sum() / waterLineValArr.Sum(); var waterLineOR = waterLineValArr.Skip(_oWinStartIndex).Take(oWinLength).Sum() / waterLineValArr.Sum(); var waterLineCR = waterLineValArr.Skip(_cWinStartIndex - 1).Take(cWinLength).Sum() / waterLineValArr.Skip(17).Take(237).Sum(); var waterLineOR = waterLineValArr.Skip(_oWinStartIndex - 1).Take(oWinLength).Sum() / waterLineValArr.Skip(17).Take(237).Sum(); var waterLineC = (36d / 160d) * waterLineCR * yieldCounting / speed * depth * 0.0762d; var waterLineO = (36d / 160d) * waterLineOR * yieldCounting / speed * depth * 0.0762d; @@ -189,11 +189,11 @@ var oilLineValArr = oilLine.CInelasticSpec.Split(',').Select(v => Convert.ToDouble(v)).ToArray(); var waterLineValArr = waterLine.CInelasticSpec.Split(',').Select(v => Convert.ToDouble(v)).ToArray(); var oilLineCR = oilLineValArr.Skip(_cWinStartIndex).Take(cWinLength).Sum() / oilLineValArr.Sum(); var oilLineOR = oilLineValArr.Skip(_oWinStartIndex).Take(oWinLength).Sum() / oilLineValArr.Sum(); var oilLineCR = oilLineValArr.Skip(_cWinStartIndex - 1).Take(cWinLength).Sum() / oilLineValArr.Skip(17).Take(237).Sum(); var oilLineOR = oilLineValArr.Skip(_oWinStartIndex - 1).Take(oWinLength).Sum() / oilLineValArr.Skip(17).Take(237).Sum(); var waterLineCR = waterLineValArr.Skip(_cWinStartIndex).Take(cWinLength).Sum() / waterLineValArr.Sum(); var waterLineOR = waterLineValArr.Skip(_oWinStartIndex).Take(oWinLength).Sum() / waterLineValArr.Sum(); var waterLineCR = waterLineValArr.Skip(_cWinStartIndex - 1).Take(cWinLength).Sum() / waterLineValArr.Skip(17).Take(237).Sum(); var waterLineOR = waterLineValArr.Skip(_oWinStartIndex - 1).Take(oWinLength).Sum() / waterLineValArr.Skip(17).Take(237).Sum(); double cRes = 0, oRes = 0; if (sw == 0) @@ -225,11 +225,11 @@ var oilLineValArr = oilLine.CInelasticSpec.Split(',').Select(v => Convert.ToDouble(v)).ToArray(); var waterLineValArr = waterLine.CInelasticSpec.Split(',').Select(v => Convert.ToDouble(v)).ToArray(); var oilLineCR = oilLineValArr.Skip(_cWinStartIndex).Take(cWinLength).Sum() / oilLineValArr.Sum(); var oilLineOR = oilLineValArr.Skip(_oWinStartIndex).Take(oWinLength).Sum() / oilLineValArr.Sum(); var oilLineCR = oilLineValArr.Skip(_cWinStartIndex - 1).Take(cWinLength).Sum() / oilLineValArr.Skip(17).Take(237).Sum(); var oilLineOR = oilLineValArr.Skip(_oWinStartIndex - 1).Take(oWinLength).Sum() / oilLineValArr.Skip(17).Take(237).Sum(); var waterLineCR = waterLineValArr.Skip(_cWinStartIndex).Take(cWinLength).Sum() / waterLineValArr.Sum(); var waterLineOR = waterLineValArr.Skip(_oWinStartIndex).Take(oWinLength).Sum() / waterLineValArr.Sum(); var waterLineCR = waterLineValArr.Skip(_cWinStartIndex - 1).Take(cWinLength).Sum() / waterLineValArr.Skip(17).Take(237).Sum(); var waterLineOR = waterLineValArr.Skip(_oWinStartIndex - 1).Take(oWinLength).Sum() / waterLineValArr.Skip(17).Take(237).Sum(); double crRes = 0, orRes = 0; if (sw == 0) ErrorAnalysis.Service/ErrorRatioCalc.cs
@@ -1,8 +1,10 @@ using ErrorAnalysis.Repository; using ErrorAnalysis.Repository.Entity; using ErrorAnalysis.Service; using ErrorAnalysis.Service.Model; using System; using System.Collections.Generic; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; @@ -11,6 +13,9 @@ { public class ErrorRatioCalc { private static (double slope, double intercept) _lineCoef; private static (double a, double b, double c) _parabolaCoef; public static ErrorRatioResult GetErrorRatioResult(string modelID, double porosity, double sw, double depth, bool lockSpeed, double speed, double yieldCounting, double targetErrorRatio, out double testSpeed, int pass = 0, double nearCofe = 0.65, double farCofe = 0.35) { var result = new ErrorRatioResult @@ -25,10 +30,11 @@ { List<double[]> cWOL; List<double[]> oWOL; var firstErrorPassM = GetFirstErrorRatio(modelID, porosity, sw, speed, depth, yieldCounting, nearCofe, farCofe); (cWOL, oWOL) = GetOilWaterLine(modelID); result.CWOL = cWOL; result.OWOL = oWOL; var firstErrorPassM = GetFirstErrorRatio(modelID, porosity, sw, speed, depth, yieldCounting, nearCofe, farCofe); result.ErrorRatios.Add(firstErrorPassM); if (firstErrorPassM.ErrorRatioValue > targetErrorRatio) { @@ -50,7 +56,7 @@ var nearCROR = COMergeCalcService.GetNearCOORResult(modelID, porosity, sw); var farCROR = COMergeCalcService.GetFarCOORResult(modelID, porosity, sw); var mDelta = GetMDelta(modelID, porosity); var mDelta = GetMDelta(porosity); speed = Math.Pow(firstTargetErrorRatio / (Math.Sqrt(160 / (0.0762 * depth * 36d * yieldCounting)) * @@ -89,7 +95,7 @@ try { var mDelta = GetMDelta(modelID, porosity); var mDelta = GetMDelta(porosity); //var mergePDEVOld = PDEVCalcService.GetMergePDEV(modelID, porosity, sw, speed, depth, yieldCounting, nearCofe, farCofe); @@ -108,40 +114,43 @@ } } private static double GetMDelta(string modelID, double porosity) private static double GetMDelta(double porosity) { var cWolRes = RepositoryInstance.Instance.COWOLRepository?.GetWOL(modelID, 0); var oWolRes = RepositoryInstance.Instance.COWOLRepository?.GetWOL(modelID, 100); var wolResType = cWolRes?.GetType(); var oilRes = Utility.GetParabolaValue(porosity, _parabolaCoef.a, _parabolaCoef.b, _parabolaCoef.c); var waterRes = Utility.GetLineValue(porosity, _lineCoef.slope, _lineCoef.intercept); double cRes = 0; double oRes = 0; //var cWolRes = RepositoryInstance.Instance.COWOLRepository?.GetWOL(modelID, 0); //var oWolRes = RepositoryInstance.Instance.COWOLRepository?.GetWOL(modelID, 100); //var wolResType = cWolRes?.GetType(); if (porosity % 5 == 0) { var poroFiledName = $"WLPu" + porosity; var property = wolResType.GetProperty(poroFiledName); //double cRes = 0; //double oRes = 0; cRes = Convert.ToDouble(property.GetValue(cWolRes)); oRes = Convert.ToDouble(property.GetValue(oWolRes)); } else { var ceilingPorosity = Math.Ceiling(porosity / 5) * 5; var ceilingProperty = wolResType.GetProperty($"WLPu" + ceilingPorosity); var ceilingC = Convert.ToDouble(ceilingProperty.GetValue(cWolRes)); var ceilingO = Convert.ToDouble(ceilingProperty.GetValue(oWolRes)); //if (porosity % 5 == 0) //{ // var poroFiledName = $"WLPu" + porosity; // var property = wolResType.GetProperty(poroFiledName); // cRes = Convert.ToDouble(property.GetValue(cWolRes)); // oRes = Convert.ToDouble(property.GetValue(oWolRes)); //} //else //{ // var ceilingPorosity = Math.Ceiling(porosity / 5) * 5; // var ceilingProperty = wolResType.GetProperty($"WLPu" + ceilingPorosity); // var ceilingC = Convert.ToDouble(ceilingProperty.GetValue(cWolRes)); // var ceilingO = Convert.ToDouble(ceilingProperty.GetValue(oWolRes)); var floorPorosity = Math.Floor(porosity / 5) * 5; var floorProperty = wolResType.GetProperty($"WLPu" + floorPorosity); var floorC = Convert.ToDouble(floorProperty.GetValue(cWolRes)); var floorO = Convert.ToDouble(floorProperty.GetValue(oWolRes)); // var floorPorosity = Math.Floor(porosity / 5) * 5; // var floorProperty = wolResType.GetProperty($"WLPu" + floorPorosity); // var floorC = Convert.ToDouble(floorProperty.GetValue(cWolRes)); // var floorO = Convert.ToDouble(floorProperty.GetValue(oWolRes)); cRes = Utility.Interpolate(porosity, floorPorosity, floorC, ceilingPorosity, ceilingC); oRes = Utility.Interpolate(porosity, floorPorosity, floorO, ceilingPorosity, ceilingO); } return cRes - oRes; // cRes = Utility.Interpolate(porosity, floorPorosity, floorC, ceilingPorosity, ceilingC); // oRes = Utility.Interpolate(porosity, floorPorosity, floorO, ceilingPorosity, ceilingO); //} return oilRes - waterRes; } private static (List<double[]>, List<double[]>) GetOilWaterLine(string modelID) @@ -149,8 +158,10 @@ var cWOL = new List<double[]>(); var oWOL = new List<double[]>(); var cWolRes = RepositoryInstance.Instance.COWOLRepository?.GetWOL(modelID, 0); var oWolRes = RepositoryInstance.Instance.COWOLRepository?.GetWOL(modelID, 100); var fitModel = GetFitModel(modelID); var cWolRes = fitModel.Item1; var oWolRes = fitModel.Item2; var wolResType = cWolRes?.GetType(); foreach (var wolProperty in wolResType.GetProperties()) @@ -163,5 +174,49 @@ } return (cWOL, oWOL); } private static (COWOLTable, COWOLTable) GetFitModel(string modelID) { var oilWol = RepositoryInstance.Instance.COWOLRepository?.GetWOL(modelID, 0); var waterWol = RepositoryInstance.Instance.COWOLRepository?.GetWOL(modelID, 100); var wolResType = oilWol?.GetType(); List<PointF> oilPoints = []; List<PointF> waterPoints = []; foreach (var wolProperty in wolResType.GetProperties()) { if (wolProperty.Name.Contains("WLPu")) { var porosity = float.Parse(wolProperty.Name.Replace("WLPu", "")); var oilVal = (double)wolProperty.GetValue(oilWol); var waterVal = (double)wolProperty.GetValue(waterWol); oilPoints.Add(new PointF(porosity, (float)oilVal)); waterPoints.Add(new PointF(porosity, (float)waterVal)); } } _lineCoef = Utility.FitLine(waterPoints.ToArray()); _parabolaCoef = Utility.FitParabola(oilPoints.ToArray()); double initDiff = 0; foreach (var wolProperty in wolResType.GetProperties()) { if (wolProperty.Name.Contains("WLPu")) { var porosity = double.Parse(wolProperty.Name.Replace("WLPu", "")); var waterVal = Utility.GetLineValue(porosity, _lineCoef.slope, _lineCoef.intercept); var oilVal = Utility.GetParabolaValue(porosity, _parabolaCoef.a, _parabolaCoef.b, _parabolaCoef.c); if (porosity == 0) { initDiff = oilVal - waterVal; } wolProperty.SetValue(waterWol, waterVal + initDiff); wolProperty.SetValue(oilWol, oilVal); } } return (oilWol, waterWol); } } } ErrorAnalysis.Service/Utility.cs
@@ -1,5 +1,6 @@ using System; using System.Collections.Generic; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; @@ -23,5 +24,129 @@ double y = y0 + (value - x0) * (y1 - y0) / (x1 - x0); return y; } public static (double slope, double intercept) FitLine(PointF[] points) { // 计算各求和项 int n = points.Length; double sumX = 0, sumY = 0, sumXY = 0, sumX2 = 0; foreach (var p in points) { sumX += p.X; sumY += p.Y; sumXY += p.X * p.Y; sumX2 += p.X * p.X; } // 计算斜率和截距 double denominator = n * sumX2 - sumX * sumX; if (Math.Abs(denominator) < 1e-10) // 避免除以0 throw new InvalidOperationException("点集过于集中,无法拟合直线"); double slope = (n * sumXY - sumX * sumY) / denominator; double intercept = (sumY - slope * sumX) / n; return (slope, intercept); } public static double GetLineValue(double x, double slope, double intercept) => slope * x + intercept; public static (double a, double b, double c) FitParabola(PointF[] points) { if (points.Length < 3) throw new ArgumentException("至少需要3个点进行抛物线拟合"); // 1. 计算各项求和值[1,6](@ref) int n = points.Length; double sx = 0, sy = 0, sx2 = 0, sx3 = 0, sx4 = 0, sxy = 0, sx2y = 0; foreach (var p in points) { double x = p.X; double y = p.Y; double x2 = x * x; double x3 = x2 * x; double x4 = x2 * x2; sx += x; sy += y; sx2 += x2; sx3 += x3; sx4 += x4; sxy += x * y; sx2y += x2 * y; } // 2. 构建正规方程矩阵[1,6](@ref) double[,] matrix = { { sx4, sx3, sx2, sx2y }, { sx3, sx2, sx, sxy }, { sx2, sx, n, sy } }; // 3. 使用高斯消元法求解 double[] coefficients = GaussElimination(matrix); return (coefficients[0], coefficients[1], coefficients[2]); } // 高斯消元法实现(带部分主元选择) private static double[] GaussElimination(double[,] matrix) { int n = matrix.GetLength(0); double[] result = new double[n]; // 前向消元 for (int i = 0; i < n - 1; i++) { // 部分主元选择 int maxRow = i; for (int k = i + 1; k < n; k++) { if (Math.Abs(matrix[k, i]) > Math.Abs(matrix[maxRow, i])) maxRow = k; } // 行交换 if (maxRow != i) { for (int j = 0; j <= n; j++) { double temp = matrix[i, j]; matrix[i, j] = matrix[maxRow, j]; matrix[maxRow, j] = temp; } } // 消元过程 for (int k = i + 1; k < n; k++) { double factor = matrix[k, i] / matrix[i, i]; for (int j = i; j <= n; j++) { matrix[k, j] -= factor * matrix[i, j]; } } } // 回代求解 for (int i = n - 1; i >= 0; i--) { result[i] = matrix[i, n]; for (int j = i + 1; j < n; j++) { result[i] -= matrix[i, j] * result[j]; } result[i] /= matrix[i, i]; } return result; } public static double GetParabolaValue(double x, double a, double b, double c) { return a * x * x + b * x + c; } } } ErrorAnalysis.UI/ErrorAnalysis.UI.csproj
@@ -10,7 +10,7 @@ <Authors>Casing Research Insitute</Authors> <Product>JobPlanner</Product> <Copyright>COSL</Copyright> <Version>1.1.0</Version> <Version>1.1.1</Version> </PropertyGroup> <ItemGroup> ErrorAnalysis.UI/FrmMain.Designer.cs
@@ -171,7 +171,7 @@ btnAnalysis.Location = new Point(716, 580); btnAnalysis.Name = "btnAnalysis"; btnAnalysis.Size = new Size(75, 23); btnAnalysis.TabIndex = 0; btnAnalysis.TabIndex = 37; btnAnalysis.Text = "Analysis"; btnAnalysis.UseVisualStyleBackColor = true; btnAnalysis.Click += btnAnalysis_Click; @@ -237,7 +237,7 @@ nudSoPrecisionRequired.Location = new Point(185, 43); nudSoPrecisionRequired.Name = "nudSoPrecisionRequired"; nudSoPrecisionRequired.Size = new Size(54, 23); nudSoPrecisionRequired.TabIndex = 13; nudSoPrecisionRequired.TabIndex = 25; // // label21 // @@ -263,7 +263,7 @@ nudPass.Location = new Point(45, 16); nudPass.Name = "nudPass"; nudPass.Size = new Size(72, 23); nudPass.TabIndex = 14; nudPass.TabIndex = 36; // // label23 // @@ -292,7 +292,7 @@ cmbSpeedUnit.Location = new Point(132, 16); cmbSpeedUnit.Name = "cmbSpeedUnit"; cmbSpeedUnit.Size = new Size(87, 25); cmbSpeedUnit.TabIndex = 13; cmbSpeedUnit.TabIndex = 35; // // nudSpeed // @@ -302,7 +302,7 @@ nudSpeed.Maximum = new decimal(new int[] { 9999999, 0, 0, 0 }); nudSpeed.Name = "nudSpeed"; nudSpeed.Size = new Size(72, 23); nudSpeed.TabIndex = 12; nudSpeed.TabIndex = 34; // // label20 // @@ -329,7 +329,7 @@ rdoLockSpeed.Location = new Point(3, 3); rdoLockSpeed.Name = "rdoLockSpeed"; rdoLockSpeed.Size = new Size(94, 21); rdoLockSpeed.TabIndex = 7; rdoLockSpeed.TabIndex = 32; rdoLockSpeed.TabStop = true; rdoLockSpeed.Text = "Lock Speed"; rdoLockSpeed.UseVisualStyleBackColor = true; @@ -341,7 +341,7 @@ rdoLockPass.Location = new Point(103, 4); rdoLockPass.Name = "rdoLockPass"; rdoLockPass.Size = new Size(83, 21); rdoLockPass.TabIndex = 8; rdoLockPass.TabIndex = 33; rdoLockPass.Text = "Lock Pass"; rdoLockPass.UseVisualStyleBackColor = true; rdoLockPass.CheckedChanged += rdoMode_CheckedChanged; @@ -407,7 +407,7 @@ btnReport.Location = new Point(797, 580); btnReport.Name = "btnReport"; btnReport.Size = new Size(75, 23); btnReport.TabIndex = 4; btnReport.TabIndex = 38; btnReport.Text = "Report"; btnReport.UseVisualStyleBackColor = true; btnReport.Click += btnReport_Click; @@ -503,7 +503,7 @@ nudTubeHoldUp.Location = new Point(449, 87); nudTubeHoldUp.Name = "nudTubeHoldUp"; nudTubeHoldUp.Size = new Size(44, 23); nudTubeHoldUp.TabIndex = 26; nudTubeHoldUp.TabIndex = 18; // // label10 // @@ -530,7 +530,7 @@ nudScreenHoldUp.Location = new Point(449, 57); nudScreenHoldUp.Name = "nudScreenHoldUp"; nudScreenHoldUp.Size = new Size(44, 23); nudScreenHoldUp.TabIndex = 26; nudScreenHoldUp.TabIndex = 16; // // nudBHSalinity // @@ -540,7 +540,7 @@ nudBHSalinity.Maximum = new decimal(new int[] { 99999999, 0, 0, 0 }); nudBHSalinity.Name = "nudBHSalinity"; nudBHSalinity.Size = new Size(55, 23); nudBHSalinity.TabIndex = 16; nudBHSalinity.TabIndex = 10; // // label49 // @@ -567,7 +567,7 @@ nudCasingHoldUp.Location = new Point(449, 26); nudCasingHoldUp.Name = "nudCasingHoldUp"; nudCasingHoldUp.Size = new Size(44, 23); nudCasingHoldUp.TabIndex = 26; nudCasingHoldUp.TabIndex = 14; // // label50 // @@ -613,7 +613,7 @@ nudOilDensity.Maximum = new decimal(new int[] { 99999999, 0, 0, 0 }); nudOilDensity.Name = "nudOilDensity"; nudOilDensity.Size = new Size(56, 23); nudOilDensity.TabIndex = 16; nudOilDensity.TabIndex = 11; // // nudGasDensity // @@ -623,7 +623,7 @@ nudGasDensity.Maximum = new decimal(new int[] { 9999999, 0, 0, 0 }); nudGasDensity.Name = "nudGasDensity"; nudGasDensity.Size = new Size(56, 23); nudGasDensity.TabIndex = 16; nudGasDensity.TabIndex = 12; // // label48 // @@ -642,7 +642,7 @@ cmbScreenHoldUp.Location = new Point(384, 56); cmbScreenHoldUp.Name = "cmbScreenHoldUp"; cmbScreenHoldUp.Size = new Size(59, 25); cmbScreenHoldUp.TabIndex = 1; cmbScreenHoldUp.TabIndex = 15; cmbScreenHoldUp.Tag = "ScreenFluid"; cmbScreenHoldUp.SelectedIndexChanged += holdUp_cmb_SelectedIndexChanged; // @@ -663,7 +663,7 @@ cmbTubeHoldUp.Location = new Point(384, 85); cmbTubeHoldUp.Name = "cmbTubeHoldUp"; cmbTubeHoldUp.Size = new Size(59, 25); cmbTubeHoldUp.TabIndex = 1; cmbTubeHoldUp.TabIndex = 17; cmbTubeHoldUp.Tag = "TubeFluid"; cmbTubeHoldUp.SelectedIndexChanged += holdUp_cmb_SelectedIndexChanged; // @@ -675,7 +675,7 @@ cmbCasingHoldUp.Location = new Point(385, 25); cmbCasingHoldUp.Name = "cmbCasingHoldUp"; cmbCasingHoldUp.Size = new Size(58, 25); cmbCasingHoldUp.TabIndex = 1; cmbCasingHoldUp.TabIndex = 13; cmbCasingHoldUp.Tag = "CasingFluid"; cmbCasingHoldUp.SelectedIndexChanged += holdUp_cmb_SelectedIndexChanged; // @@ -752,7 +752,7 @@ cmbCasingOD.Location = new Point(143, 43); cmbCasingOD.Name = "cmbCasingOD"; cmbCasingOD.Size = new Size(55, 25); cmbCasingOD.TabIndex = 1; cmbCasingOD.TabIndex = 2; cmbCasingOD.Tag = "CasingOD"; cmbCasingOD.SelectedIndexChanged += borehole_cmb_SelectedIndexChanged; // @@ -772,7 +772,7 @@ cmbScreenOD.Location = new Point(143, 70); cmbScreenOD.Name = "cmbScreenOD"; cmbScreenOD.Size = new Size(55, 25); cmbScreenOD.TabIndex = 1; cmbScreenOD.TabIndex = 4; cmbScreenOD.Tag = "ScreenOD"; cmbScreenOD.SelectedIndexChanged += borehole_cmb_SelectedIndexChanged; // @@ -783,7 +783,7 @@ cmbScreenID.Location = new Point(388, 72); cmbScreenID.Name = "cmbScreenID"; cmbScreenID.Size = new Size(55, 25); cmbScreenID.TabIndex = 1; cmbScreenID.TabIndex = 5; cmbScreenID.Tag = "ScreenID"; cmbScreenID.SelectedIndexChanged += borehole_cmb_SelectedIndexChanged; // @@ -810,7 +810,7 @@ nudGravelFIllPercent.Location = new Point(143, 124); nudGravelFIllPercent.Name = "nudGravelFIllPercent"; nudGravelFIllPercent.Size = new Size(55, 23); nudGravelFIllPercent.TabIndex = 26; nudGravelFIllPercent.TabIndex = 8; // // cmbTubeID // @@ -819,7 +819,7 @@ cmbTubeID.Location = new Point(388, 98); cmbTubeID.Name = "cmbTubeID"; cmbTubeID.Size = new Size(55, 25); cmbTubeID.TabIndex = 1; cmbTubeID.TabIndex = 7; cmbTubeID.Tag = "TubeID"; cmbTubeID.SelectedIndexChanged += borehole_cmb_SelectedIndexChanged; // @@ -848,7 +848,7 @@ cmbCasingID.Location = new Point(388, 46); cmbCasingID.Name = "cmbCasingID"; cmbCasingID.Size = new Size(55, 25); cmbCasingID.TabIndex = 1; cmbCasingID.TabIndex = 3; cmbCasingID.Tag = "CasingID"; cmbCasingID.SelectedIndexChanged += borehole_cmb_SelectedIndexChanged; // @@ -884,7 +884,7 @@ nudCementBond.Location = new Point(388, 124); nudCementBond.Name = "nudCementBond"; nudCementBond.Size = new Size(55, 23); nudCementBond.TabIndex = 26; nudCementBond.TabIndex = 9; nudCementBond.Value = new decimal(new int[] { 100, 0, 0, 0 }); // // cmbTubeOD @@ -894,7 +894,7 @@ cmbTubeOD.Location = new Point(143, 97); cmbTubeOD.Name = "cmbTubeOD"; cmbTubeOD.Size = new Size(55, 25); cmbTubeOD.TabIndex = 1; cmbTubeOD.TabIndex = 6; cmbTubeOD.Tag = "TubeOD"; cmbTubeOD.SelectedIndexChanged += borehole_cmb_SelectedIndexChanged; // @@ -974,7 +974,7 @@ nudReservoirSalinity.Maximum = new decimal(new int[] { 99999999, 0, 0, 0 }); nudReservoirSalinity.Name = "nudReservoirSalinity"; nudReservoirSalinity.Size = new Size(71, 23); nudReservoirSalinity.TabIndex = 34; nudReservoirSalinity.TabIndex = 22; // // label40 // @@ -1019,7 +1019,7 @@ nudVSH.Location = new Point(145, 148); nudVSH.Name = "nudVSH"; nudVSH.Size = new Size(72, 23); nudVSH.TabIndex = 29; nudVSH.TabIndex = 23; // // label42 // @@ -1037,7 +1037,7 @@ nudSw.Location = new Point(146, 88); nudSw.Name = "nudSw"; nudSw.Size = new Size(72, 23); nudSw.TabIndex = 29; nudSw.TabIndex = 21; // // label18 // @@ -1055,7 +1055,7 @@ nudPorosity.Location = new Point(146, 58); nudPorosity.Name = "nudPorosity"; nudPorosity.Size = new Size(72, 23); nudPorosity.TabIndex = 26; nudPorosity.TabIndex = 20; // // label17 // @@ -1083,7 +1083,7 @@ cmbLithology.Location = new Point(146, 26); cmbLithology.Name = "cmbLithology"; cmbLithology.Size = new Size(119, 25); cmbLithology.TabIndex = 25; cmbLithology.TabIndex = 19; cmbLithology.Tag = "Lithology"; cmbLithology.SelectedIndexChanged += cmbLithology_SelectedIndexChanged; // @@ -1140,7 +1140,7 @@ cmbTargetLoggingIntervalUnit.Location = new Point(243, 98); cmbTargetLoggingIntervalUnit.Name = "cmbTargetLoggingIntervalUnit"; cmbTargetLoggingIntervalUnit.Size = new Size(46, 25); cmbTargetLoggingIntervalUnit.TabIndex = 13; cmbTargetLoggingIntervalUnit.TabIndex = 28; // // label5 // @@ -1157,7 +1157,7 @@ chkAlphaProcessing.Location = new Point(419, 43); chkAlphaProcessing.Name = "chkAlphaProcessing"; chkAlphaProcessing.Size = new Size(128, 21); chkAlphaProcessing.TabIndex = 15; chkAlphaProcessing.TabIndex = 29; chkAlphaProcessing.Text = "Alpha processing"; chkAlphaProcessing.UseVisualStyleBackColor = true; // @@ -1169,7 +1169,7 @@ nudYieldCounting.Maximum = new decimal(new int[] { 99999999, 0, 0, 0 }); nudYieldCounting.Name = "nudYieldCounting"; nudYieldCounting.Size = new Size(82, 23); nudYieldCounting.TabIndex = 13; nudYieldCounting.TabIndex = 31; // // nudAlphaProcessingWin // @@ -1177,7 +1177,7 @@ nudAlphaProcessingWin.Maximum = new decimal(new int[] { 99999999, 0, 0, 0 }); nudAlphaProcessingWin.Name = "nudAlphaProcessingWin"; nudAlphaProcessingWin.Size = new Size(47, 23); nudAlphaProcessingWin.TabIndex = 13; nudAlphaProcessingWin.TabIndex = 30; // // nudDepth // @@ -1185,7 +1185,7 @@ nudDepth.Maximum = new decimal(new int[] { 99999999, 0, 0, 0 }); nudDepth.Name = "nudDepth"; nudDepth.Size = new Size(54, 23); nudDepth.TabIndex = 13; nudDepth.TabIndex = 26; // // nudTargetLoggingInterval // @@ -1194,7 +1194,7 @@ nudTargetLoggingInterval.Maximum = new decimal(new int[] { 99999999, 0, 0, 0 }); nudTargetLoggingInterval.Name = "nudTargetLoggingInterval"; nudTargetLoggingInterval.Size = new Size(54, 23); nudTargetLoggingInterval.TabIndex = 13; nudTargetLoggingInterval.TabIndex = 27; // // label54 // @@ -1211,7 +1211,7 @@ txtToolType.Name = "txtToolType"; txtToolType.ReadOnly = true; txtToolType.Size = new Size(88, 23); txtToolType.TabIndex = 6; txtToolType.TabIndex = 24; // // label53 // ErrorAnalysis.UI/FrmMain.resx