|
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
|
|
#include "iWxPseuSub.h"
|
|
|
|
|
|
#include "mToolPseu_global.h"
|
|
|
|
|
|
|
|
|
|
|
|
class M_TOOL_PSEU_EXPORT iWxPseuSubNormal : public iWxPseuSub
|
|
|
|
|
|
{
|
|
|
|
|
|
Q_OBJECT
|
|
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
|
|
|
|
|
|
explicit iWxPseuSubNormal(QWidget *parent = 0);
|
|
|
|
|
|
~iWxPseuSubNormal();
|
|
|
|
|
|
|
|
|
|
|
|
void initUI();
|
|
|
|
|
|
|
|
|
|
|
|
// 传递参数
|
|
|
|
|
|
virtual void setInfos(QString sFluidType, QString sPhaseType, QString sPara);
|
|
|
|
|
|
|
|
|
|
|
|
// 传递参数
|
|
|
|
|
|
void calAndFreshBy(QMap<QString, VecPointF>& mapInputs);
|
|
|
|
|
|
|
|
|
|
|
|
// 是否已经正确进行了拟压力计算
|
|
|
|
|
|
virtual bool hasProperPseuRst();
|
|
|
|
|
|
|
|
|
|
|
|
/// @brief 获取 拟压力页面中,拟压力结果表
|
|
|
|
|
|
/// @param vvec,返回数据,长度为4,分别为压力P/拟压力Ps/偏差因子Zg/黏度Miug
|
|
|
|
|
|
/// 压力,单位 Mpa
|
|
|
|
|
|
/// 拟压力,单位 Pa/sec
|
|
|
|
|
|
/// 偏差因子,单位 Pa/sec
|
|
|
|
|
|
/// 黏度,单位 Pa/sec
|
|
|
|
|
|
virtual bool getPseuRstOf(VVecDouble& vvec);
|
|
|
|
|
|
|
|
|
|
|
|
// 组织四列拟压力相关的数据
|
|
|
|
|
|
// VecDouble vecP = vvec[0]
|
|
|
|
|
|
// VecDouble vecPs = vvec[1]
|
|
|
|
|
|
// VecDouble vecZg = vvec[2]
|
|
|
|
|
|
// VecDouble vecMug = vvec[3]
|
|
|
|
|
|
bool getPseuPseuInfos(VVecDouble& vvec);
|
|
|
|
|
|
|
|
|
|
|
|
// 文件标识
|
|
|
|
|
|
virtual QString getFilePseuTag();
|
|
|
|
|
|
|
|
|
|
|
|
// 辅助信息
|
|
|
|
|
|
virtual void dealwithDesc();
|
|
|
|
|
|
|
|
|
|
|
|
// 初始化算法
|
|
|
|
|
|
virtual void initAlg();
|
|
|
|
|
|
|
|
|
|
|
|
// 算法计算入口
|
|
|
|
|
|
virtual void calAndFreshPseu(bool bCreateIfFirst = true);
|
|
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
|
|
|
|
|
|
virtual void initUI_Others_Paras(QHBoxLayout* pLayoutH);
|
|
|
|
|
|
|
|
|
|
|
|
// 四个范围点,nWhich:0-3
|
|
|
|
|
|
double getPrsScale(int nWhich);
|
|
|
|
|
|
// 步长
|
|
|
|
|
|
double getPrsStep();
|
|
|
|
|
|
// 获取数值
|
|
|
|
|
|
double getCtrlValueBy(QString sKey);
|
|
|
|
|
|
|
|
|
|
|
|
protected slots:
|
|
|
|
|
|
|
|
|
|
|
|
// 压力段范围点改变
|
|
|
|
|
|
void slotPrsScaleChanged();
|
|
|
|
|
|
// 压力段步长改变
|
|
|
|
|
|
void slotPrsStepChanged();
|
|
|
|
|
|
// 根据当前压力段范围点重新计算
|
|
|
|
|
|
void slotBtnRefresh();
|
|
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
|
|
|
|
|
|
|
// 初始化
|
|
|
|
|
|
virtual QWidget* initUI_Chart();
|
|
|
|
|
|
virtual void initUI_Others();
|
|
|
|
|
|
|
|
|
|
|
|
// 算法有多少种
|
|
|
|
|
|
virtual void dealwithMethods();
|
|
|
|
|
|
|
|
|
|
|
|
// 标题
|
|
|
|
|
|
virtual void dealwithTitles();
|
|
|
|
|
|
|
|
|
|
|
|
// 计算点
|
|
|
|
|
|
virtual bool calResultPos(QPointF& pt);
|
|
|
|
|
|
|
|
|
|
|
|
// 组织数据
|
|
|
|
|
|
bool organizeInputs(QString sX, \
|
|
|
|
|
|
QMap<QString, VecPointF>& mapInputs, \
|
|
|
|
|
|
QMap<QString, VecDouble>& mapParas);
|
|
|
|
|
|
signals:
|
|
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
|
VecDouble m_vecZg;
|
|
|
|
|
|
VecDouble m_vecMug;
|
|
|
|
|
|
};
|