diff --git a/Src/nmNum/nmCalculation/nmCalculationPebiGrid.cpp b/Src/nmNum/nmCalculation/nmCalculationPebiGrid.cpp index a1440f2..2c05fb8 100644 --- a/Src/nmNum/nmCalculation/nmCalculationPebiGrid.cpp +++ b/Src/nmNum/nmCalculation/nmCalculationPebiGrid.cpp @@ -30,15 +30,6 @@ #include #include -// PEBI二维裂缝输入约定:FC为0表示无限导流,大于0表示有限导流能力。 -static double getPebiFractureConductivity(const nmDataAttribute& fractureModel, const nmDataAttribute& conductivity) -{ - if(fractureModel.getValue().toString().contains("Infinite", Qt::CaseInsensitive)) { - return 0.0; - } - - return conductivity.getValue().toDouble(); -} #ifdef Q_OS_WIN #include #define DEBUG_OUT(msg) OutputDebugStringA(QString("[Mesh] %1\n").arg(msg).toLocal8Bit().data()) @@ -298,7 +289,8 @@ bool nmCalculationPebiGrid::meshGenPebiWells(HX_NWTM_GRID_INPUT& inputObj) crack[2] = vFracPoints[1].x(); crack[3] = vFracPoints[1].y(); crack[4] = 1; // 裂缝宽度 - crack[5] = getPebiFractureConductivity(pVerticalFracturedWell->getFractureModel(), pVerticalFracturedWell->getDfc()); // FC + // FC直接取井对象中保存的裂缝导流能力,0表示无限导流。 + crack[5] = pVerticalFracturedWell->getDfc().getValue().toDouble(); inputObj.FractureVerticalWell.push_back(crack); // 添加到自定义井顺序数组 pDataManager->appendCalculationWell(QPair(NM_WELL_MODEL::Vertical_Fractured_Well, pVerticalFracturedWell->getWellName())); @@ -322,7 +314,8 @@ bool nmCalculationPebiGrid::meshGenPebiWells(HX_NWTM_GRID_INPUT& inputObj) crack[2] = vEndPoint.x(); crack[3] = vEndPoint.y(); crack[4] = 2; // 裂缝宽度 - crack[5] = getPebiFractureConductivity(pHorizontalFracturedWell->getFractureModel(), pHorizontalFracturedWell->getDfc()); // FC + // FC直接取井对象中保存的裂缝导流能力,0表示无限导流。 + crack[5] = pHorizontalFracturedWell->getDfc().getValue().toDouble(); vMultistageFracturedHorizontalWell.push_back(crack); } @@ -467,7 +460,8 @@ bool nmCalculationPebiGrid::meshGenPebiCrack(HX_NWTM_GRID_INPUT &inputObj) crack[3] = vEndPoint.y(); // todo,裂缝的宽度 crack[4] = 1; - crack[5] = getPebiFractureConductivity(pFrac->getFractureFlowModel(), pFrac->getFractureDfc()); // FC + // 手动画裂缝目前只支持无限导流,FC固定为0。 + crack[5] = 0.0; qDebug() << crack[0] << crack[1] << crack[2] << crack[3] << crack[4] << crack[5]; int iIndex = inputObj.VerticalWell.size() + inputObj.FractureVerticalWell.size(); diff --git a/Src/nmNum/nmPlot/nmPlotGraphicBinder.cpp b/Src/nmNum/nmPlot/nmPlotGraphicBinder.cpp index 0006149..b461ab6 100644 --- a/Src/nmNum/nmPlot/nmPlotGraphicBinder.cpp +++ b/Src/nmNum/nmPlot/nmPlotGraphicBinder.cpp @@ -63,6 +63,12 @@ void nmPlotGraphicBinder::createFaultForGraphic(nmObjLineFault* pGraphic) // 将图元值推入数据 pData->setFaultName(pGraphic->getName()); pData->setFaultPoints(pGraphic->getAllValues()); + nmDataAttribute faultFlowModel = pData->getFaultFlowModel(); + faultFlowModel.setValue(pGraphic->getFaultFlowModel() == 0 ? tr("Leaky") : tr("Composite limit")); + pData->setFaultFlowModel(faultFlowModel); + nmDataAttribute faultLeakage = pData->getFaultLeakage(); + faultLeakage.setValue(pGraphic->getFaultLeakage()); + pData->setFaultLeakage(faultLeakage); // 建立信号连接 _connectFault(pGraphic, pData); @@ -274,6 +280,15 @@ void nmPlotGraphicBinder::createCrackForGraphic(nmObjLineCrack* pGraphic) // 将图元值推入数据 pData->setFractureName(pGraphic->getName()); pData->setFracturePoints(pGraphic->getAllValues()); + nmDataAttribute fractureFlowModel = pData->getFractureFlowModel(); + fractureFlowModel.setValue(pGraphic->getCrackFlowModel() == 0 ? tr("Infinite Conductivity") : tr("Finite Conductivity")); + pData->setFractureFlowModel(fractureFlowModel); + nmDataAttribute fractureDfc = pData->getFractureDfc(); + fractureDfc.setValue(pGraphic->getCrackDfc()); + pData->setFractureDfc(fractureDfc); + nmDataAttribute fractureDw = pData->getFractureDw(); + fractureDw.setValue(pGraphic->getCrackDw()); + pData->setFractureDw(fractureDw); // 建立信号连接 _connectCrack(pGraphic, pData); @@ -917,6 +932,8 @@ void nmPlotGraphicBinder::createRegionMarkForGraphic(nmObjRegionMark* pGraphic) nmDataAttribute ntgAttr = pData->getNetToGross(); ntgAttr.setValue(pGraphic->getNetToGross()); pData->setNetToGross(ntgAttr); + pData->setBackgroundColor(pGraphic->getBackgrdColor()); + pData->setSelectRegion(pGraphic->getSelectRegion()); // 建立信号连接 _connectRegionMark(pGraphic, pData); @@ -964,6 +981,8 @@ void nmPlotGraphicBinder::syncRegionMarkData(nmObjRegionMark* pGraphic) if (!pData) return; pData->setRegionMarkName(pGraphic->getName()); + pData->setBackgroundColor(pGraphic->getBackgrdColor()); + pData->setSelectRegion(pGraphic->getSelectRegion()); QVector pts = pGraphic->getAllValues(); if (pts.count() >= 1) { @@ -1163,6 +1182,13 @@ void nmPlotGraphicBinder::createRegionForGraphic(nmObjRegion* pGraphic) nmDataAttribute leakageAttr = pData->getRegionLeakage(); leakageAttr.setValue(pGraphic->getRegionLeakage()); pData->setRegionLeakage(leakageAttr); + pData->setPenWidth(pGraphic->getPen().widthF()); + pData->setBackgrdColor(pGraphic->getBackgrdColor()); + + nmObjRegionMark* pRegionMark = pGraphic->getRegionMark(); + if (pRegionMark) { + pData->setRegionMarkData(getRegionMarkDataFor(pRegionMark)); + } // 建立映射 m_mapRegionData[pGraphic] = pData;