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