00001 00022 #ifndef CALCULATEREGIMEINTERFACE_H 00023 #define CALCULATEREGIMEINTERFACE_H 00024 00025 #include <QString> 00026 #include <QList> 00027 #include <QPair> 00028 00029 #include "plugininterface.h" 00030 #include "frictionfunctions.h" 00031 #include "data.h" 00032 00034 class CalculateRegimeInterface : public PluginInterface 00035 { 00036 public: 00037 virtual ~CalculateRegimeInterface() {}; 00038 00039 virtual double calculateAlpha(Data *data, FrictionFunctions *frictionFunctions, double tolerance) = 0; 00040 virtual QList<QPair<QString, double> > calculate(Data *data, FrictionFunctions *frictionFunctions, double tolerance) = 0; 00041 virtual double calculatePressureDrop(Data *data, FrictionFunctions *frictionFunctions, double tolerance) = 0; 00042 00043 00044 virtual bool isAnnular() const = 0; 00045 virtual bool isStratified() const = 0; 00046 virtual bool isDispersed() const = 0; 00047 virtual bool isSlug() const = 0; 00048 00049 virtual QString pluginName() const = 0; 00050 }; 00051 00052 Q_DECLARE_INTERFACE(CalculateRegimeInterface, "com.MariusStene.MultiPhase.CalculateRegimeInterface/1.0"); 00053 00054 #endif // CALCULATEREGIMEINTERFACE_H