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.
nmWTAI-Platform/Include/nmNum/nmData/nmDataAutomaticFitting.h

195 lines
6.8 KiB
C++

#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