|
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
|
|
#include "nmSubWxs_global.h"
|
|
|
|
|
|
|
|
|
|
|
|
#include "nmDataReservoir.h"
|
|
|
|
|
|
#include "nmDataVerticalWell.h"
|
|
|
|
|
|
#include "nmDataVerticalFracturedWell.h"
|
|
|
|
|
|
#include "nmDataHorizontalFracturedWell.h"
|
|
|
|
|
|
#include "nmDataRegionMark.h"
|
|
|
|
|
|
#include "nmDataFault.h"
|
|
|
|
|
|
#include "nmDataFracture.h"
|
|
|
|
|
|
#include "nmDataRegion.h"
|
|
|
|
|
|
|
|
|
|
|
|
class nmDataAnalyzeManager;
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* @brief 储层参数编辑快照。
|
|
|
|
|
|
* @note 快照保存一次编辑会话所需的全部数据副本,不包含普通水平井。
|
|
|
|
|
|
*/
|
|
|
|
|
|
struct NM_SUB_WXS_EXPORT nmReservoirPropertiesSnapshot
|
|
|
|
|
|
{
|
|
|
|
|
|
/** @brief 构造空快照。 */
|
|
|
|
|
|
nmReservoirPropertiesSnapshot();
|
|
|
|
|
|
|
|
|
|
|
|
int m_nSolverModelType; ///< 打开对话框时的求解器模型类型数值。
|
|
|
|
|
|
nmDataReservoir m_oReservoir; ///< 储层参数副本。
|
|
|
|
|
|
QVector<nmDataVerticalWell> m_vecVerticalWells; ///< 直井参数副本。
|
|
|
|
|
|
QVector<nmDataVerticalFracturedWell> m_vecVerticalFracturedWells; ///< 垂直压裂井参数副本。
|
|
|
|
|
|
QVector<nmDataHorizontalFracturedWell> m_vecHorizontalFracturedWells; ///< 水平压裂井参数副本。
|
|
|
|
|
|
QVector<nmDataRegionMark> m_vecRegionMarks; ///< 区域标记参数副本。
|
|
|
|
|
|
QVector<nmDataFault> m_vecFaults; ///< 断层参数副本。
|
|
|
|
|
|
QVector<nmDataFracture> m_vecFractures; ///< 裂缝参数副本,包含DFN以保持提交索引稳定。
|
|
|
|
|
|
QVector<nmDataRegion> m_vecRegions; ///< 复合区参数副本。
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* @brief 储层参数数据源接口。
|
|
|
|
|
|
* @note 对话框只依赖此接口,不直接访问全局数据管理器。
|
|
|
|
|
|
*/
|
|
|
|
|
|
class NM_SUB_WXS_EXPORT nmIReservoirPropertiesDataSource
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
/** @brief 析构数据源接口。 */
|
|
|
|
|
|
virtual ~nmIReservoirPropertiesDataSource();
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* @brief 读取当前分析窗口的数据快照。
|
|
|
|
|
|
* @param oSnapshot 输出的工作快照。
|
|
|
|
|
|
* @param sError 输出的错误信息。
|
|
|
|
|
|
* @return 读取成功返回true。
|
|
|
|
|
|
*/
|
|
|
|
|
|
virtual bool loadSnapshot(nmReservoirPropertiesSnapshot& oSnapshot,
|
|
|
|
|
|
QString& sError) const = 0;
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* @brief 一次性提交编辑后的工作快照。
|
|
|
|
|
|
* @param oSnapshot 待提交的工作快照。
|
|
|
|
|
|
* @param bGeometryChanged 井坐标或几何参数是否发生变化。
|
|
|
|
|
|
* @param sError 输出的错误信息。
|
|
|
|
|
|
* @return 提交成功返回true。
|
|
|
|
|
|
*/
|
|
|
|
|
|
virtual bool commitSnapshot(const nmReservoirPropertiesSnapshot& oSnapshot,
|
|
|
|
|
|
bool bGeometryChanged,
|
|
|
|
|
|
QString& sError) = 0;
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* @brief 基于nmDataAnalyzeManager的数据源适配器。
|
|
|
|
|
|
*/
|
|
|
|
|
|
class NM_SUB_WXS_EXPORT nmAnalyzeManagerReservoirDataSource :
|
|
|
|
|
|
public nmIReservoirPropertiesDataSource
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
/**
|
|
|
|
|
|
* @brief 构造数据源适配器。
|
|
|
|
|
|
* @param pDataManager 当前分析窗口的数据管理器,不转移所有权。
|
|
|
|
|
|
*/
|
|
|
|
|
|
explicit nmAnalyzeManagerReservoirDataSource(nmDataAnalyzeManager* pDataManager);
|
|
|
|
|
|
|
|
|
|
|
|
/** @brief 析构数据源适配器。 */
|
|
|
|
|
|
virtual ~nmAnalyzeManagerReservoirDataSource();
|
|
|
|
|
|
|
|
|
|
|
|
virtual bool loadSnapshot(nmReservoirPropertiesSnapshot& oSnapshot,
|
|
|
|
|
|
QString& sError) const;
|
|
|
|
|
|
|
|
|
|
|
|
virtual bool commitSnapshot(const nmReservoirPropertiesSnapshot& oSnapshot,
|
|
|
|
|
|
bool bGeometryChanged,
|
|
|
|
|
|
QString& sError);
|
|
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
|
nmDataAnalyzeManager* m_pDataManager; ///< 当前分析窗口的数据管理器,不拥有所有权。
|
|
|
|
|
|
};
|
|
|
|
|
|
|