00001 00023 #ifndef CALCULATETHREAD_H 00024 #define CALCULATETHREAD_H 00025 00026 #include <QThread> 00027 #include <QString> 00028 #include <QDebug> 00029 #include <QFile> 00030 #include <QMessageBox> 00031 00032 #include <vector> 00033 00034 #include "defines.h" 00035 #include "../../Support/calculatefunctions.h" 00036 #include "../../Support/data.h" 00037 #include "../../Support/frictionfunctions.h" 00038 #include "../../Support/regimetransitioninterface.h" 00039 #include "../../Support/calculateregimeinterface.h" 00040 #include "../../Support/pluginexception.h" 00041 00042 00043 class CalculateFlowThread : public QThread 00044 { 00045 Q_OBJECT 00046 public: 00047 CalculateFlowThread(QWidget *parent, Data *data, FrictionFunctions *frictionFunctions, CalculateFunctions *calculateFunctions, 00048 bool useMinimumHoldupCriterion, unsigned int id, double tolerance = 0.0001); 00049 CalculateFlowThread(QWidget *parent, Data *data, FrictionFunctions *frictionFunctions, CalculateFunctions *calculateFunctions, 00050 RegimeTransitionInterface *regimeTransitionPlugin, 00051 unsigned int id, double tolerance = 0.0001); 00052 ~CalculateFlowThread(); 00053 double diameterGas(); 00054 double x(); 00055 double y(); 00056 double holdup(); 00057 double alpha(); 00058 double dpdx(); 00059 00060 protected: 00061 void run(); 00062 00063 private: 00064 QWidget *_parent; 00065 Data *_data; 00066 FrictionFunctions *_frictionFunctions; 00067 RegimeTransitionInterface *_regimeTransitionPlugin; 00068 CalculateFunctions *_calculateFunctions; 00069 double _diameterGas; 00070 double _holdup; 00071 double _alpha; 00072 double _dpdx; 00073 double _y; 00074 bool _useMinimumHoldupCriterion; 00075 unsigned int _resolution; 00076 unsigned int _id; 00077 double _tolerance; 00078 signals: 00079 void simulationError(QString errorMsg); 00080 }; 00081 00082 #endif // CALCULATETHREAD_H 00083 00084