From 924f6f4ee8229c27c2bb48b9073ec0d66e2889b3 Mon Sep 17 00:00:00 2001 From: lvjunjie Date: Fri, 14 Aug 2026 15:50:28 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=A0=E9=99=A4=E5=80=99=E9=80=89=E8=AF=84?= =?UTF-8?q?=E4=BB=B7=E4=B8=AD=E7=9A=84=E5=8F=82=E6=95=B0=E4=B8=93=E5=B1=9E?= =?UTF-8?q?=E7=A1=AC=E7=BC=96=E7=A0=81=E9=98=88=E5=80=BC=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../nmCalculation/nmCalculationAutoFitPSO.cpp | 53 +------------------ 1 file changed, 2 insertions(+), 51 deletions(-) diff --git a/Src/nmNum/nmCalculation/nmCalculationAutoFitPSO.cpp b/Src/nmNum/nmCalculation/nmCalculationAutoFitPSO.cpp index 94497c7..cb510f6 100644 --- a/Src/nmNum/nmCalculation/nmCalculationAutoFitPSO.cpp +++ b/Src/nmNum/nmCalculation/nmCalculationAutoFitPSO.cpp @@ -6327,9 +6327,8 @@ int nmCalculationAutoFitPSO::getEnabledParameterCount() const bool nmCalculationAutoFitPSO::validateParameters(const QVector& parameters) const { - // 参数合法性检查分两层: - // 1. 与用户界面设置一致:维度、有限数、上下界; - // 2. 求解器保护:拦截会导致数值崩溃或明显无物理意义的极端值。 + // 参数物理范围已由拟合窗口统一校验;候选评价只检查维度、有限数和 + // 用户设置的上下界,避免另一套硬编码阈值与实际搜索范围冲突。 if(parameters.size() != getEnabledParameterCount()) { return false; } @@ -6352,54 +6351,6 @@ bool nmCalculationAutoFitPSO::validateParameters(const QVector& paramete } } - // 直接拦截会导致求解器数值崩溃的参数值 - for(int i = 0; i < parameters.size() && i < m_enabledParamIndices.size(); ++i) { - int paramIndex = m_enabledParamIndices[i]; - double value = parameters[i]; - - switch(paramIndex) { - case 0: // 渗透率:必须大于零 - if(value <= 1e-8) { - DEBUG_OUT(QString("Rejecting near-zero permeability: %1").arg(value)); - return false; - } - - break; - - case 2: // 井筒储集系数:必须大于零 - if(value <= 1e-10) { - DEBUG_OUT(QString("Rejecting near-zero wellbore storage: %1").arg(value)); - return false; - } - - break; - - case 3: // 孔隙度:必须在合理范围 - if(value <= 1e-6 || value >= 0.99) { - DEBUG_OUT(QString("Rejecting unrealistic porosity: %1").arg(value)); - return false; - } - - break; - - case 5: // 综合压缩系数:必须大于零 - if(value <= 1e-8) { - DEBUG_OUT(QString("Rejecting near-zero total compressibility: %1").arg(value)); - return false; - } - - break; - - case 8: // 裂缝导流能力:0 表示无限导流,不能作为连续拟合搜索点 - if(value <= 1e-10) { - DEBUG_OUT(QString("Rejecting non-positive fracture conductivity: %1").arg(value)); - return false; - } - - break; - } - } - return true; }