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/mAlg/mAlgDiffusion/iAlgDiffusionBase.h

61 lines
1.6 KiB
C++

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

#pragma once
#include "Defines.h"
#include "mAlgDiffusion_global.h"
// Diffusion相关小算法的基类
class M_DIFFUSION_EXPORT iAlgDiffusionBase
{
public:
iAlgDiffusionBase();
~iAlgDiffusionBase();
// 统一的初始化函数
virtual void init();
// 设置内部的算法类型
// 为了统一此处用了整形各子类内部转换为enum
void setSubType(int n);
// 传值函数
void setParaValues(QMap<QString, QVariant>& map, \
QStringList listTagParas = QStringList(), \
QStringList listTagModels = QStringList());
// 计算函数(调用算法)
virtual bool cal(VecDouble vecX, VecDouble& vecY1, VecDouble& vecY2);
virtual bool cal(double dIn, double& dOut1, double& dOut2);
virtual bool cal(VecDouble vecX, VecDouble& vecY);
virtual bool cal(double dIn, double& dOut);
// 获取错误信息
QString getLastError();
protected:
// 把参数Map解析为成员变量
virtual bool parseParas2Members(QStringList& listTagParas, QStringList& listTagModels);
bool _parseParas(QStringList& listParas, VecDouble& vecValues);
// 输入(参数+输入)正确性验证
virtual bool checkParas();
virtual bool checkInputs();
protected:
// 当前的相态可以是组合也可以是单相具体参见PvtFluidType
int m_nPhaseTypes;
// 内部的算法类型,为了统一此处用了整形各子类内部转换为enum
int m_nSubType;
// 各个参数需要外界传入的Key值
QMap<QString, QVariant> m_mapParas;
// 出错信息
QString m_sLastError;
};