diff --git a/Src/nmNum/nmCalculation/nmCalculationAutoFitPSO.cpp b/Src/nmNum/nmCalculation/nmCalculationAutoFitPSO.cpp index bb098bb..6d5ee8f 100644 --- a/Src/nmNum/nmCalculation/nmCalculationAutoFitPSO.cpp +++ b/Src/nmNum/nmCalculation/nmCalculationAutoFitPSO.cpp @@ -62,10 +62,10 @@ static const unsigned int kFixedPsoSeed = 1792008679u; // 当前固定 // ===== 代理模型训练域约束 ===== // // 这些范围必须与 ML/nmWTAI-ML/configs/data_gen_family_random_v2_q.yaml 中的 -// 数据生成范围保持一致。超出范围时,C++ 侧会强制退回真实求解器,避免代理模型 -// 在训练域外给出不可靠排序。 -static const double kSurrogateKMin = 1.0e-3; // 代理模型训练域:渗透率下界。 -static const double kSurrogateKMax = 10.0; // 代理模型训练域:渗透率上界。 +// 数据生成范围保持一致。PSO 中渗透率使用 mD,因此将训练配置中的 Darcy 范围 +// 乘以 1000 后再门控;超出范围时强制退回真实求解器。 +static const double kSurrogateKMin = 1.0; // 代理模型训练域:渗透率下界,单位 mD。 +static const double kSurrogateKMax = 10000.0; // 代理模型训练域:渗透率上界,单位 mD。 static const double kSurrogateSkinMin = -10.0; // 代理模型训练域:skin 下界。 static const double kSurrogateSkinMax = 10.0; // 代理模型训练域:skin 上界。 static const double kSurrogateWellboreCMin = 1.0e-4; // 代理模型训练域:井筒储集下界。 @@ -192,8 +192,8 @@ static bool getSurrogateParameterDomain(NM_SOLVER_MODEL_TYPE solverModelType, Su return true; case SMT_Gas_VariablePvt: - domain->kMin = 4.5e-6; - domain->kMax = 6.2e-6; + domain->kMin = 4.5e-3; + domain->kMax = 6.2e-3; domain->skinMin = 0.0; domain->skinMax = 4.5; domain->wellboreCMin = 5.0e-5;