|
|
|
|
@ -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());
|
|
|
|
|
|