#pragma once #include "Defines.h" #include "mAlgPseudo_global.h" // 拟压力计算载体,单例模式,在模型处理解释过程调用 class M_ALGPSEUDO_EXPORT iAlgPseuCal { public: iAlgPseuCal(); /// @brief 计算拟压力相关 /// @param vvec长度为4,对应四列数据 /// @note VecDouble vecP = vvec[0] /// VecDouble vecPs = vvec[1] /// VecDouble vecZg = vvec[2] /// VecDouble vecMug = vvec[3] static bool initPs(VVecDouble vvec); // 系统内部自动选用不同的方法 static bool calP(double ps, double &p, int which = -1); static bool calPS(double p, double &ps, int which = -1); private: /////////////////////////////////////////////////////////////////////////////////////////// // 拟合公式 // 计算“压力->拟压力”的回归曲线方程系数 static bool fitPtoPS(bool isZero = true); // 计算“拟压力->压力”的回归曲线方程系数 static bool fitPStoP(bool isZero = false); /////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// // 回归曲线法 // 压力->拟压力,精度比湛江方法高 static bool pToPs_Cv(double p, double &ps); // 拟压力->压力,精度比湛江方法低,暂未调用 static bool psToP_Cv(double ps, double &p); //////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// // 湛江方法 // 压力->拟压力,精度不如回归曲线法,暂未调用 //static bool pToPs_Zj(double p, double &ps); // 拟压力->压力,精度好于回归曲线法 static bool psToP_Zj(double ps, double &p); //////////////////////////////////////////////////////////////////////////////// private: // 用压力算拟压力的系数 static VecDouble m_vecCoefsPtoPS; // 用拟压力算压力的系数 static VecDouble m_vecCoefsPStoP; // job里的三组数据 static VecDouble m_vecP; static VecDouble m_vecPs; static VecDouble m_vecZg; static VecDouble m_vecMug; };