修改nmDataReservoir默认构造的参数,以及调整获取的参数

feature/DialogBox-20260526
lvjunjie 3 weeks ago
parent b13503ba91
commit f2d58bf502

@ -1497,10 +1497,6 @@ void nmDataAnalyzeManager::initPvtParaFromSubFit()
Q_ASSERT(nullptr != pSubWndFitting);
Q_ASSERT(nullptr != pContextProvider);
// 获取PEBI网格需要的Pvt数据
// 定义返回结果的 QMap
QMap<QString, double> mapPebiPvtPara;
if(nullptr != pSubWndFitting && nullptr != pContextProvider) {
PvtFluidType eType = WFT_Null;
pContextProvider->getBasicPft(pSubWndFitting, eType);
@ -1510,34 +1506,6 @@ void nmDataAnalyzeManager::initPvtParaFromSubFit()
bool bReadWaterPvt = false;
resolvePvtPhaseReadFlags(eType, bReadOilPvt, bReadGasPvt, bReadWaterPvt);
QStringList listPvtParas;
// 单值参数同样按当前相态筛选避免读取不存在的Phase子窗口
if(bReadOilPvt) {
listPvtParas << "Pb" //压力, MPa
<< "Rs" //溶解气油比, m^3/m^3
<< "Bo" //油体积系数, m^3/m^3
<< "Co" //油压缩系数, 1/MPa
<< "Miuo" //油粘度, mPa·s
<< "Rhoo"; //油密度, kg/m^3
}
if(bReadGasPvt) {
listPvtParas << "Rv" //凝析油气比, m^3/m^3
<< "Bg" //气体积系数, m^3/m^3
<< "Cg" //气压缩系数, 1/MPa
<< "Miug" //气粘度, mPa·s
<< "Rhog" //气密度, kg/m^3
<< "Zg"; //气偏差因子, 1
}
if(bReadWaterPvt) {
listPvtParas << "Rsw" //溶解气水比, m^3/m^3
<< "Bw" //水体积系数, m^3/m^3
<< "Cw" //水压缩系数, 1/MPa
<< "Miuw" //水粘度, mPa·s
<< "Rhow"; //水密度, kg/m^3
}
// Ct/Cf为基础单值参数保留原有读取逻辑
listPvtParas << "Ct"
<< "Cf";
//QVector<double> vecPressure; // 压力, MPa
QVector<double> vecRso; // 溶解气油比, m^3/m^3
@ -1556,7 +1524,6 @@ void nmDataAnalyzeManager::initPvtParaFromSubFit()
QVector<double> vecCw; // 水压缩系数, 1/MPa
QVector<double> vecMiuw; // 水粘度, mPa·s
QVector<double> vecRouw; // 水密度, kg/m^3
pContextProvider->getPvtParaValues(pSubWndFitting, listPvtParas, mapPebiPvtPara);
VecDouble vecX;
@ -1568,18 +1535,13 @@ void nmDataAnalyzeManager::initPvtParaFromSubFit()
m_pebiPvtPara = new nmDataPvtParaForPebi;
// 饱和压力为单值参数,读到时覆盖求解器默认值
if(mapPebiPvtPara.contains("Pb")) {
m_pebiPvtPara->setPb(nmDataAttribute("Pb", mapPebiPvtPara.value("Pb"), "MPa"));
}
// PVT结果曲线也只读取当前相态已有的页缺失相态保留PEBI默认数据
if(bReadOilPvt) {
// 气油比
// 气油比不按相态区分,所有情况都尝试读取
pContextProvider->getPvtRstOf(pSubWndFitting, WellFluidType::WFT_Oil, "Rs", vecX, vecRso);
m_pebiPvtPara->setRso(vecRso);
setPebiPressureIfEmpty(m_pebiPvtPara, vecX);
// 其他PVT结果曲线只读取当前相态已有的页缺失相态保留PEBI默认数据
if(bReadOilPvt) {
// 油体积系数
pContextProvider->getPvtRstOf(pSubWndFitting, WellFluidType::WFT_Oil, "Bo", vecX, vecBo);
m_pebiPvtPara->setBo(vecBo);
@ -1602,10 +1564,6 @@ void nmDataAnalyzeManager::initPvtParaFromSubFit()
}
if(bReadGasPvt) {
// 凝析油气比
pContextProvider->getPvtRstOf(pSubWndFitting, WellFluidType::WFT_Gas, "Rv", vecX, vecRv);
m_pebiPvtPara->setRv(vecRv);
setPebiPressureIfEmpty(m_pebiPvtPara, vecX);
// 气体积系数
pContextProvider->getPvtRstOf(pSubWndFitting, WellFluidType::WFT_Gas, "Bg", vecX, vecBg);

@ -2,21 +2,21 @@
#include "ZxSerializer.h"
nmDataReservoir::nmDataReservoir() {
m_initialPressure = nmDataAttribute("Initial Pressure",50.0, "MPa", UNIT_TYPE_PRESSURE, QStringList(), QStringList() << "psia" << "Pa" << "kPa" << "atm" << "bara" << "kg/cm^2" << "m" << "psig" << "bar" << "MPa" << "kPag");
m_initialPressure = nmDataAttribute("Initial Pressure",40.0, "MPa", UNIT_TYPE_PRESSURE, QStringList(), QStringList() << "psia" << "Pa" << "kPa" << "atm" << "bara" << "kg/cm^2" << "m" << "psig" << "bar" << "MPa" << "kPag");
m_reservoirType = nmDataAttribute("Reservoir type", "Homogeneous", "", UNIT_TYPE_DIMENSIONLESS, QStringList() << "Homogeneous" << "Dual porosity pseudo steady state", QStringList());
m_Bo = nmDataAttribute("Bo", 0.0, "");
m_permeability = nmDataAttribute("Permeability", 0.025, "Darcy", UNIT_TYPE_PERMEABILITY, QStringList(), QStringList() << "md" << "Darcy" << "m^2" << "cm^2" << "um^2");
m_Bo = nmDataAttribute("Bo", 1.2, "");
m_permeability = nmDataAttribute("Permeability", 0.001, "Darcy", UNIT_TYPE_PERMEABILITY, QStringList(), QStringList() << "md" << "Darcy" << "m^2" << "cm^2" << "um^2");
m_thickness = nmDataAttribute("Thickness", 10.0, "m", UNIT_TYPE_LENGTH, QStringList(), QStringList() << "ft" << "m" << "cm" << "mm" << "in" << "0.1 in" << "mile" << "km");
m_porosity = nmDataAttribute("Porosity", 0.0245, "", UNIT_TYPE_DIMENSIONLESS, QStringList(), QStringList());
m_porosity = nmDataAttribute("Porosity", 0.1, "", UNIT_TYPE_DIMENSIONLESS, QStringList(), QStringList());
m_Ct = nmDataAttribute("Ct", 0.001, "", UNIT_TYPE_DIMENSIONLESS, QStringList(), QStringList());
m_kxKy = nmDataAttribute("Kx/Ky", 1.0, "", UNIT_TYPE_DIMENSIONLESS, QStringList(), QStringList());
m_Cf = nmDataAttribute("Cf", 0.001, "", UNIT_TYPE_DIMENSIONLESS, QStringList(), QStringList());
m_Miuo = nmDataAttribute("Miuo", 0.0, "", UNIT_TYPE_DIMENSIONLESS, QStringList(), QStringList());
m_Cf = nmDataAttribute("Cf", 0.0001, "", UNIT_TYPE_DIMENSIONLESS, QStringList(), QStringList());
m_Miuo = nmDataAttribute("Miuo", 0.5, "", UNIT_TYPE_DIMENSIONLESS, QStringList(), QStringList());
// 初始饱和度
m_Soi = nmDataAttribute("Soi", 1.0, "", UNIT_TYPE_DIMENSIONLESS, QStringList(), QStringList());
m_Soi = nmDataAttribute("Soi", 0.8, "", UNIT_TYPE_DIMENSIONLESS, QStringList(), QStringList());
m_Sgi = nmDataAttribute("Sgi", 0.0, "", UNIT_TYPE_DIMENSIONLESS, QStringList(), QStringList());
m_Swi= nmDataAttribute("Swi", 0.0, "", UNIT_TYPE_DIMENSIONLESS, QStringList(), QStringList());
m_Swi= nmDataAttribute("Swi", 0.2, "", UNIT_TYPE_DIMENSIONLESS, QStringList(), QStringList());
m_dTempGasRe = 100;
m_ePhaseType = PHASE_Oil;

Loading…
Cancel
Save