// // Created by lloyd on 2020/12/2. // #ifndef GTCVR_GTAOIDCORE_H #define GTCVR_GTAOIDCORE_H #include "DataMapping/dgns_gtbaseparam.h" class gtaoidcore { public: class gtrevision { public: std::string sgt; std::string sgtx; double cha; std::string result = ""; double **cardArray; double **card; double cc1; double maxLoad; double minLoad; double maxShift; double minShift; int pointNum; double loadmin; int minShiftPoint; int maxShiftPoint; double maxShiftLoad; double minShiftLoad; public: void sgt_encode(dgns_gtbaseparam *_dgns_gtbaseparam); }; class calbgt { public: double maxShift; double minShift = 1000; double maxLoad; double minLoad; std::string cha; std::string _maxShift; std::string _minShift; std::string _maxLoad; std::string _minLoad; double cc; double cc1; int pointNum; double **card; double **cardSlope; double **cardMakeUp; double znxs; double theorycc; double power; double yxcc; double makeUpPower; std::string result; gtrevision _encode; std::string bgtstr = ""; std::vector> bgt; int calnumb = 0; void cal_bgt(const gtrevision &_encode, const std::string &zdjg); int p; private: double dFunXShXiGeMa_n(double dWuMiGa, double DT, int iCShn, double *dZaiHe, int iDianShu); double dFunXShTao_n(double dWuMiGa, double DT, int iCShn, double *dZaiHe, int iDianShu); double dFunXShMiu_n(double dWuMiGa, double DT, int iCShn, double *dWeiYi, int iDianShu); double dFunXShDeErTa_n(double dWuMiGa, double DT, int iCShn, double *dWeiYi, int iDianShu); double dFunFLYZaiHe(double dWuMiGa, int iCShn, double *dXiGeMa, double *dTao, double dShiJian_t); double dFunYWeiYi(double dWuMiGa, int iCShn, double *dMiu, double *dDeErTa, double dShiJian_t); double dFunSH(double dz); double dFunXSha_n(double dWuMiGa, int iCShn, double dCShC, double dCSHa); double dFunXShB_n(double dWuMiGa, int iCShn, double dCShC, double dCSHa); double dFunXShK_n(double dan, double dBn, double DXiGeMa, double dTaon, double dE, double dAr); double dFunXShU_n(double dan, double dBn, double DXiGeMan, double dTaon, double dE, double dAr); double dFunZLXShC(double dWuMiGa, double dCSHa, double dCSh_u, double dRor, double dAr, double dDt, double dDr, double dL); double dFunO_n(double dx, double dKn, double dBn, double dDeErTan, double dan, double dUn, double dMiun); double dFunP_n(double dx, double dKn, double dBn, double dDeErTan, double dan, double dUn, double dMiun); double dFunPianO_n(double dx, double dKn, double dBn, double dDeErTan, double dan, double dUn, double dMiun, double dTaon, double DXiGeMan, double dE, double dAr); double dFunPianP_n(double dx, double dKn, double dBn, double dDeErTan, double dan, double dUn, double dMiun, double dTaon, double DXiGeMan, double dE, double dAr); double dFunUxt(double dx, double dWuMiGa, double dXiGeMa0, double dMiu0, double dE, double dAr, int iCShn, double *dOn, double *dPn, double dShiJian_t); double dFunFxt(double dWuMiGa, double dXiGeMa0, double dE, double dAr, int iCShn, double *dPianOn, double *dPianPn, double dShiJian_t); std::vector> subGeJiGanGT(double dNowGanSh, double dGanJing, double GanMidu, double DXML_E, double *DdiMianWY, double *dYeZhong, double chongci, int TotalPoint, int UpPoint, int iNN1, double Viscosity, double Tubingsize, double &dzxwyzh, double &dzxwy, double &dbmaxload, double &dbminload, double &ddZNXShC); }; class CardSlopeRec { public: double Card_Shift; double Card_Slope; double PumpCard_Shift; double PumpCard_Slope; }; /** * * @param sgt * @param bgt * @param cc * @param cc1 * @param zdjg * @param bj 泵径 mm * @param bs 泵深 m * @param hsl 含水率 % * @param smd 水密度 t/m³ * @param ymd 油密度 t/m³ * @param qyb 气液比 小数 * @param dym 动液面 m * @param bdxs * @param gradient_1 * @param gradient_10 * @param gradient_2 * @param gradient_3 * @param gradient_4 * @param gradient_5 * @param gradient_6 * @param gradient_7 * @param gradient_8 * @param gradient_9 * @param dividenum_1 * @param dividenum_2 * @param dividenum_3 * @param dividenum_4 * @param dividenum_5 * @param dividenum_6 * @param dividenum_7 * @param dividenum_8 * @param dividenum_9 * @param dividenum_10 * @return 日产液量 日产油量 日产水量 日产气量 泵效 理论排量 实际冲程 有效冲程 左冲程 右冲程 冲程损失 漏失损失 gyss 有效冲程比例 */ std::vector cal_ylandon(std::vector> sgt, std::vector> bgt, double cc, double cc1, std::string zdjg, double bj, double bs, double hsl, double smd, double ymd, double qyb, double dym, double bdxs, double gradient_1, double gradient_10, double gradient_2, double gradient_3, double gradient_4, double gradient_5, double gradient_6, double gradient_7, double gradient_8, double gradient_9, double dividenum_1, double dividenum_2, double dividenum_3, double dividenum_4, double dividenum_5, double dividenum_6, double dividenum_7, double dividenum_8, double dividenum_9, double dividenum_10); }; #endif //GTCVR_GTAOIDCORE_H