You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
195 lines
6.8 KiB
C
195 lines
6.8 KiB
C
|
3 weeks ago
|
#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
|