|
|
#pragma once
|
|
|
|
|
|
#include "iWxPvtSubPhase.h"
|
|
|
|
|
|
namespace Ui {
|
|
|
class iWxPvtSubPhaseGas;
|
|
|
}
|
|
|
|
|
|
class iWxPvtComposition;
|
|
|
class M_TOOL_PVT_EXPORT iWxPvtSubPhaseGas : public iWxPvtSubPhase
|
|
|
{
|
|
|
Q_OBJECT
|
|
|
|
|
|
public:
|
|
|
|
|
|
explicit iWxPvtSubPhaseGas(QString sFluidType, \
|
|
|
QString sPhaseType, \
|
|
|
QWidget *parent = 0);
|
|
|
~iWxPvtSubPhaseGas();
|
|
|
|
|
|
// 初始化
|
|
|
virtual void initUI();
|
|
|
|
|
|
// 返回数据
|
|
|
virtual bool getParaValue(QString sPara,
|
|
|
double &fValue,
|
|
|
QString sUnitDest = "");
|
|
|
|
|
|
// 从当前所有的信息中获取参数的值
|
|
|
virtual bool getPvtParaValue(QString s, double& d);
|
|
|
|
|
|
// 文件标识
|
|
|
virtual QString getFilePvtTag();
|
|
|
|
|
|
virtual void onSerialize(ZxSerializer* ser);
|
|
|
virtual void onDeserialize(ZxSerializer* ser);
|
|
|
|
|
|
protected:
|
|
|
|
|
|
// 默认值
|
|
|
virtual void initDefault();
|
|
|
|
|
|
// 刷新H2S/CO2/N2等
|
|
|
void refreshHCN();
|
|
|
// 刷新摩尔
|
|
|
void refreshMole();
|
|
|
|
|
|
// 根据组分计算并刷新相对密度
|
|
|
void calAndFreshPho(QMap<QString, double>& map);
|
|
|
|
|
|
// 计算临界值
|
|
|
void calAndFreshTcPc(QWidget *pSender = NULL);
|
|
|
|
|
|
// 判断数值是否正确
|
|
|
bool checkInputOfHCN(QWidget *pSender = NULL);
|
|
|
|
|
|
// 在本类对于绘图窗体进行布局调整,注意仅仅是为了代码维护方便而已
|
|
|
virtual void initUI_Others_Btns(QString sPara, QHBoxLayout* pLayoutH);
|
|
|
virtual void initUI_Others_Paras(QString sPara, QHBoxLayout* pLayoutH);
|
|
|
virtual void changeOthersBtns(QString s);
|
|
|
virtual void changeOthersParas(QString s);
|
|
|
|
|
|
// 纠正
|
|
|
void runZgMatch();
|
|
|
void getMathExps(VecPointF& vec);
|
|
|
void updateMatchPlot(VecDouble x, VecDouble y, VecPointF vecExps);
|
|
|
void freshPpcs(double fPpc, double fPpcNew = -1.f);
|
|
|
|
|
|
public slots:
|
|
|
|
|
|
// 临界计算方法切换
|
|
|
void on_cbxCriticalMethods_currentIndexChanged(const QString &arg1);
|
|
|
|
|
|
// H2S/CO2/N2的摩尔模式
|
|
|
void on_radioFraction_clicked();
|
|
|
void on_radioPercent_clicked();
|
|
|
|
|
|
// H2S/CO2/N2的摩尔数值验证
|
|
|
void on_tbxH2S_textChanged(const QString &arg1);
|
|
|
void on_tbxCO2_textChanged(const QString &arg1);
|
|
|
void on_tbxN2_textChanged(const QString &arg1);
|
|
|
|
|
|
// 比重改变
|
|
|
void on_tbxGravity_textChanged(const QString &arg1);
|
|
|
|
|
|
void on_btnComposition_clicked();
|
|
|
|
|
|
void slotCompSubChanged(QMap<QString, double>& map);
|
|
|
|
|
|
// 自行调整,绘图视图下侧的内容显示
|
|
|
virtual void slotAdjustPlotBottomLayout(QString sPara, QHBoxLayout*& pLayoutH);
|
|
|
|
|
|
// match 功能,20210718
|
|
|
void slotBtnZgMatchPrepare();
|
|
|
void slotBtnZgMatchRun();
|
|
|
void slotCbxZgMatchUsePpc();
|
|
|
void slotZgMatchExpData(VVecVariant& vvecData);
|
|
|
|
|
|
// 凝析气参数设置
|
|
|
void slotDiffDpRatioGPP();
|
|
|
|
|
|
// 计算时,对于参数的设定
|
|
|
virtual void slotDealwithAlgoMembers(iAlgPvtBase*& p);
|
|
|
|
|
|
private:
|
|
|
|
|
|
Ui::iWxPvtSubPhaseGas *ui;
|
|
|
|
|
|
QMap<QString, double> m_mapComps;
|
|
|
int m_nCustomIndex;
|
|
|
|
|
|
// match 功能,20210718
|
|
|
QPushButton* m_pBtnZgMatchPrepare;
|
|
|
QPushButton* m_pBtnZgMatchRun;
|
|
|
QLabel* m_pLblPpcs;
|
|
|
QCheckBox* m_pCbxUsePpc;
|
|
|
|
|
|
VVecVariant m_vvecExps; //match需要的edit数据
|
|
|
|
|
|
QLineEdit* m_pTbxGPP;
|
|
|
QLabel* m_pLblGPP;
|
|
|
|
|
|
};
|