diff --git a/Src/nmNum/nmCalculation/nmCalculationDllPebiSolverTask.cpp b/Src/nmNum/nmCalculation/nmCalculationDllPebiSolverTask.cpp index a3be736..8ba99db 100644 --- a/Src/nmNum/nmCalculation/nmCalculationDllPebiSolverTask.cpp +++ b/Src/nmNum/nmCalculation/nmCalculationDllPebiSolverTask.cpp @@ -108,14 +108,9 @@ void fillPvtInputByModel(HX_NWTM_MODEL_INPUT& input, nmDataPvtParaForPebi* pPvt, nmDataReservoir* pRes) { - // 压力横坐标:变化PVT从曲线读取,常数PVT生成占位数组 - if(pPvt != nullptr) { - assignPvtVectorIfNotEmpty(input.PVT.p, pPvt->getPressure()); - } - switch(eModelType) { case SMT_Oil_ConstPvt: - // 油相常数PVT:生成占位压力数组 + 单值扩展为200元素数组 + // 油相常数PVT:不依赖pPvt,生成占位压力数组 + 单值扩展为200元素数组 input.PVT.p = generateDummyPressure(); if(pRes != nullptr) { input.PVT.Bo = expandConstPvt(pRes->getBo().getValue().toDouble()); @@ -126,6 +121,7 @@ void fillPvtInputByModel(HX_NWTM_MODEL_INPUT& input, case SMT_Oil_VariablePvt: // 油相变化PVT:从 pebiPvtPara 读曲线数组 if(pPvt != nullptr) { + assignPvtVectorIfNotEmpty(input.PVT.p, pPvt->getPressure()); assignPvtVectorIfNotEmpty(input.PVT.Bo, pPvt->getBo()); assignPvtVectorIfNotEmpty(input.PVT.Co, pPvt->getCo()); assignPvtVectorIfNotEmpty(input.PVT.miuo, pPvt->getMiuo()); @@ -133,7 +129,7 @@ void fillPvtInputByModel(HX_NWTM_MODEL_INPUT& input, break; case SMT_Water_ConstPvt: - // 水相常数PVT:生成占位压力数组 + 单值扩展为200元素数组 + // 水相常数PVT:不依赖pPvt,生成占位压力数组 + 单值扩展为200元素数组 input.PVT.p = generateDummyPressure(); if(pRes != nullptr) { input.PVT.Bw = expandConstPvt(pRes->getBw().getValue().toDouble()); @@ -144,6 +140,7 @@ void fillPvtInputByModel(HX_NWTM_MODEL_INPUT& input, case SMT_Water_VariablePvt: // 水相变化PVT:从 pebiPvtPara 读曲线数组 if(pPvt != nullptr) { + assignPvtVectorIfNotEmpty(input.PVT.p, pPvt->getPressure()); assignPvtVectorIfNotEmpty(input.PVT.Bw, pPvt->getBw()); assignPvtVectorIfNotEmpty(input.PVT.Cw, pPvt->getCw()); assignPvtVectorIfNotEmpty(input.PVT.miuw, pPvt->getMiuw()); @@ -154,6 +151,7 @@ void fillPvtInputByModel(HX_NWTM_MODEL_INPUT& input, case SMT_Gas_PseudoPressure: // 气相变化PVT/拟压力:从 pebiPvtPara 读曲线数组 if(pPvt != nullptr) { + assignPvtVectorIfNotEmpty(input.PVT.p, pPvt->getPressure()); assignPvtVectorIfNotEmpty(input.PVT.Bg, pPvt->getBg()); assignPvtVectorIfNotEmpty(input.PVT.Cg, pPvt->getCg()); assignPvtVectorIfNotEmpty(input.PVT.miug, pPvt->getMiug()); @@ -163,6 +161,7 @@ void fillPvtInputByModel(HX_NWTM_MODEL_INPUT& input, case SMT_Oil_Water_TwoPhase: // 油水两相:从 pebiPvtPara 读油+水曲线数组 + 相渗数据 if(pPvt != nullptr) { + assignPvtVectorIfNotEmpty(input.PVT.p, pPvt->getPressure()); assignPvtVectorIfNotEmpty(input.PVT.Bo, pPvt->getBo()); assignPvtVectorIfNotEmpty(input.PVT.miuo, pPvt->getMiuo()); assignPvtVectorIfNotEmpty(input.PVT.Bw, pPvt->getBw());