#ifndef NMDATAAUTOMATICFITTING_H #define NMDATAAUTOMATICFITTING_H #include "nmData_global.h" #include "nmDataBase.h" #include "nmDataAttribute.h" class NM_DATA_EXPORT nmDataAutomaticFitting : public nmDataBase { Q_OBJECT public: nmDataAutomaticFitting(); ~nmDataAutomaticFitting(); nmDataAutomaticFitting(const nmDataAutomaticFitting& other); // 拷贝构造函数 nmDataAutomaticFitting& operator=(const nmDataAutomaticFitting& other); // 赋值运算符 // 实现 nmDataBase 的抽象方法:将当前 C++ 对象序列化为 RapidJSON Value virtual rapidjson::Value ToJsonValue(rapidjson::Document::AllocatorType& allocator) const override; // 实现 nmDataBase 的抽象方法:从 RapidJSON Value 反序列化数据到当前 C++ 对象 virtual void FromJsonValue(const rapidjson::Value& jsonValue) override; // Getter and Setter for permeabilityMax nmDataAttribute& getPermeabilityMax(); void setPermeabilityMax(const nmDataAttribute& permeabilityMax); // Getter and Setter for permeabilityMin nmDataAttribute& getPermeabilityMin(); void setPermeabilityMin(const nmDataAttribute& permeabilityMin); // Getter and Setter for skinMax nmDataAttribute& getSkinMax(); void setSkinMax(const nmDataAttribute& skinMax); // Getter and Setter for skinMin nmDataAttribute& getSkinMin(); void setSkinMin(const nmDataAttribute& skinMin); // Getter and Setter for wellboreStorageMax nmDataAttribute& getWellboreStorageMax(); void setWellboreStorageMax(const nmDataAttribute& wellboreStorageMax); // Getter and Setter for wellboreStorageMin nmDataAttribute& getWellboreStorageMin(); void setWellboreStorageMin(const nmDataAttribute& wellboreStorageMin); // Getter and Setter for porosityMax nmDataAttribute& getPorosityMax(); void setPorosityMax(const nmDataAttribute& porosityMax); // Getter and Setter for porosityMin nmDataAttribute& getPorosityMin(); void setPorosityMin(const nmDataAttribute& porosityMin); // Getter and Setter for initialPressureMax nmDataAttribute& getInitialPressureMax(); void setInitialPressureMax(const nmDataAttribute& initialPressureMax); // Getter and Setter for initialPressureMin nmDataAttribute& getInitialPressureMin(); void setInitialPressureMin(const nmDataAttribute& initialPressureMin); // Getter and Setter for thicknessMax nmDataAttribute& getThicknessMax(); void setThicknessMax(const nmDataAttribute& thicknessMax); // Getter and Setter for thicknessMin nmDataAttribute& getThicknessMin(); void setThicknessMin(const nmDataAttribute& thicknessMin); // Getter and Setter for ctMax nmDataAttribute& getCtMax(); void setCtMax(const nmDataAttribute& ctMax); // Getter and Setter for ctMin nmDataAttribute& getCtMin(); void setCtMin(const nmDataAttribute& ctMin); // Getter and Setter for cfMax nmDataAttribute& getCfMax(); void setCfMax(const nmDataAttribute& cfMax); // Getter and Setter for cfMin nmDataAttribute& getCfMin(); void setCfMin(const nmDataAttribute& cfMin); // Getter and Setter for soiMax nmDataAttribute& getSoiMax(); void setSoiMax(const nmDataAttribute& soiMax); // Getter and Setter for soiMin nmDataAttribute& getSoiMin(); void setSoiMin(const nmDataAttribute& soiMin); // Getter and Setter for sgiMax nmDataAttribute& getSgiMax(); void setSgiMax(const nmDataAttribute& sgiMax); // Getter and Setter for sgiMin nmDataAttribute& getSgiMin(); void setSgiMin(const nmDataAttribute& sgiMin); // Getter and Setter for swiMax nmDataAttribute& getSwiMax(); void setSwiMax(const nmDataAttribute& swiMax); // Getter and Setter for swiMin nmDataAttribute& getSwiMin(); void setSwiMin(const nmDataAttribute& swiMin); // Getter and Setter for iteration count nmDataAttribute& getIterationCount(); void setIterationCount(const nmDataAttribute& iterationCount); // Getter and Setter for error tolerance nmDataAttribute& getErrorTolerance(); void setErrorTolerance(const nmDataAttribute& errorTolerance); QString getAlgorithmName() const; void setAlgorithmName(const QString& algorithmName); bool getSurrogateScreeningEnabled() const; void setSurrogateScreeningEnabled(bool enabled); // Getter and Setter for parameter selection flags bool getPermeabilitySelected() const; void setPermeabilitySelected(bool selected); bool getSkinSelected() const; void setSkinSelected(bool selected); bool getWellboreStorageSelected() const; void setWellboreStorageSelected(bool selected); bool getPorositySelected() const; void setPorositySelected(bool selected); bool getInitialPressureSelected() const; void setInitialPressureSelected(bool selected); bool getThicknessSelected() const; void setThicknessSelected(bool selected); bool getCtSelected() const; void setCtSelected(bool selected); bool getCfSelected() const; void setCfSelected(bool selected); bool getSoiSelected() const; void setSoiSelected(bool selected); bool getSgiSelected() const; void setSgiSelected(bool selected); bool getSwiSelected() const; void setSwiSelected(bool selected); private: // 参数最大值 nmDataAttribute m_permeabilityMax; nmDataAttribute m_skinMax; nmDataAttribute m_wellboreStorageMax; nmDataAttribute m_porosityMax; nmDataAttribute m_initialPressureMax; nmDataAttribute m_thicknessMax; nmDataAttribute m_ctMax; nmDataAttribute m_cfMax; nmDataAttribute m_soiMax; nmDataAttribute m_sgiMax; nmDataAttribute m_swiMax; // 参数最小值 nmDataAttribute m_permeabilityMin; nmDataAttribute m_skinMin; nmDataAttribute m_wellboreStorageMin; nmDataAttribute m_porosityMin; nmDataAttribute m_initialPressureMin; nmDataAttribute m_thicknessMin; nmDataAttribute m_ctMin; nmDataAttribute m_cfMin; nmDataAttribute m_soiMin; nmDataAttribute m_sgiMin; nmDataAttribute m_swiMin; // 迭代参数 nmDataAttribute m_iterationCount; // 迭代步数 nmDataAttribute m_errorTolerance; // 误差精度 QString m_algorithmName; // 算法名称 bool m_surrogateScreeningEnabled; // 参数选择标志 bool m_permeabilitySelected; // 是否选择渗透率进行拟合 bool m_skinSelected; // 是否选择表皮系数进行拟合 bool m_wellboreStorageSelected; // 是否选择井筒储集系数进行拟合 bool m_porositySelected; // 是否选择孔隙度进行拟合 bool m_initialPressureSelected; // 是否选择初始压力进行拟合 bool m_thicknessSelected; // 是否选择储层厚度进行拟合 bool m_ctSelected; // 是否选择综合压缩系数进行拟合 bool m_cfSelected; // 是否选择岩石压缩系数进行拟合 bool m_soiSelected; // 是否选择初始含油饱和度进行拟合 bool m_sgiSelected; // 是否选择初始含气饱和度进行拟合 bool m_swiSelected; // 是否选择初始含水饱和度进行拟合 }; #endif // NMDATAAUTOMATICFITTING_H