diff --git a/Src/nmNum/nmData/nmDataHorizontalFracturedWell.cpp b/Src/nmNum/nmData/nmDataHorizontalFracturedWell.cpp index b4b45520..8cff995b 100644 --- a/Src/nmNum/nmData/nmDataHorizontalFracturedWell.cpp +++ b/Src/nmNum/nmData/nmDataHorizontalFracturedWell.cpp @@ -4,7 +4,10 @@ #include "nmDataReservoir.h" nmDataHorizontalFracturedWell::nmDataHorizontalFracturedWell() : nmDataHorizontalWell() { - m_pReservoir = nmDataAnalyzeManager::getCurrentInstance()->getReservoirData(); + m_pReservoir = nmDataWellBase::m_pReservoir; + // 候选加载阶段尚未发布储层对象,裂缝高度随后会由 JSON 恢复。 + const QVariant oInitialFractureHeight = m_pReservoir == nullptr + ? QVariant(0.0) : m_pReservoir->getThickness().getValue(); double horizontalSectionLength = 200.0; m_wellLength.setValue(horizontalSectionLength); @@ -15,7 +18,7 @@ nmDataHorizontalFracturedWell::nmDataHorizontalFracturedWell() : nmDataHorizonta m_dFc = nmDataAttribute("dFc", 1000, "md.m", UNIT_TYPE_CONDUCTIVITY, QStringList(), QStringList() << "md.ft" << "md.m" << "m^3"); m_numberOfFractures = nmDataAttribute("Number of fractures", 15, "", UNIT_TYPE_DIMENSIONLESS, QStringList(), QStringList()); m_fractureHalfLength = nmDataAttribute("Fracture half length", 50.0, "m", UNIT_TYPE_LENGTH, QStringList(), QStringList() << "ft" << "m" << "cm" << "mm" << "in" << "0.1 in" << "mile" << "km"); - m_fractureHeight = nmDataAttribute("Fracture height", m_pReservoir->getThickness().getValue().toDouble(), "m", UNIT_TYPE_LENGTH, QStringList(), QStringList() << "ft" << "m" << "cm" << "mm" << "in" << "0.1 in" << "mile" << "km"); + m_fractureHeight = nmDataAttribute("Fracture height", oInitialFractureHeight.toDouble(), "m", UNIT_TYPE_LENGTH, QStringList(), QStringList() << "ft" << "m" << "cm" << "mm" << "in" << "0.1 in" << "mile" << "km"); m_fractureMidPointHeight = nmDataAttribute("Fracture mid-point height", (m_fractureHeight.getValue().toDouble())/2, "m", UNIT_TYPE_LENGTH, QStringList(), QStringList() << "ft" << "m" << "cm" << "mm" << "in" << "0.1 in" << "mile" << "km"); m_width = nmDataAttribute("Width", 0.00328084, "m", UNIT_TYPE_LENGTH, QStringList(), QStringList() << "ft" << "m" << "cm" << "mm" << "in" << "0.1 in" << "mile" << "km"); m_fractureAngle = nmDataAttribute("Fracture angle", 90.0000, "o", UNIT_TYPE_ANGLE, QStringList(), QStringList() << "o" << "radian"); diff --git a/Src/nmNum/nmData/nmDataVerticalFracturedWell.cpp b/Src/nmNum/nmData/nmDataVerticalFracturedWell.cpp index 4e253fcc..02b745a2 100644 --- a/Src/nmNum/nmData/nmDataVerticalFracturedWell.cpp +++ b/Src/nmNum/nmData/nmDataVerticalFracturedWell.cpp @@ -6,12 +6,15 @@ #include "nmDataReservoir.h" nmDataVerticalFracturedWell::nmDataVerticalFracturedWell() : nmDataVerticalWell() { - m_pReservoir = nmDataAnalyzeManager::getCurrentInstance()->getReservoirData(); + m_pReservoir = nmDataWellBase::m_pReservoir; + // 候选加载阶段尚未发布储层对象,裂缝高度随后会由 JSON 恢复。 + const QVariant oInitialFractureHeight = m_pReservoir == nullptr + ? QVariant(0.0) : m_pReservoir->getThickness().getValue(); m_fractureModel = nmDataAttribute("Fracture model", "Finite conductivity", "", UNIT_TYPE_DIMENSIONLESS, QStringList() << "Infinite conductivity", QStringList()); m_dFc = nmDataAttribute("dFc", 1000.0, "md.m", UNIT_TYPE_CONDUCTIVITY, QStringList(), QStringList() << "md.ft" << "md.m" << "m^3"); m_fractureHalfLength = nmDataAttribute("Fracture half length", 20.0, "m", UNIT_TYPE_LENGTH, QStringList(), QStringList() << "ft" << "m" << "cm" << "mm" << "in" << "0.1 in" << "mile" << "km"); - m_fractureHeight = nmDataAttribute("Fracture height", m_pReservoir->getThickness().getValue() , "m", UNIT_TYPE_LENGTH, QStringList(), QStringList() << "ft" << "m" << "cm" << "mm" << "in" << "0.1 in" << "mile" << "km"); + m_fractureHeight = nmDataAttribute("Fracture height", oInitialFractureHeight, "m", UNIT_TYPE_LENGTH, QStringList(), QStringList() << "ft" << "m" << "cm" << "mm" << "in" << "0.1 in" << "mile" << "km"); m_fractureMidPointHeight = nmDataAttribute("Fracture mid-point height", (m_fractureHeight.getValue().toDouble())/2 , "m", UNIT_TYPE_LENGTH, QStringList(), QStringList() << "ft" << "m" << "cm" << "mm" << "in" << "0.1 in" << "mile" << "km"); m_width = nmDataAttribute("Width", 0.00328084, "m", UNIT_TYPE_LENGTH, QStringList(), QStringList() << "ft" << "m" << "cm" << "mm" << "in" << "0.1 in" << "mile" << "km"); m_fractureAngle = nmDataAttribute("Fracture angle", 0.0000, "o", UNIT_TYPE_ANGLE, QStringList(), QStringList() << "o" << "radian");