fixed density choice: instead of taking first match, the one with smallest length...
[engrid.git] / src / openfoamtools.h
blobf766dba8ee1dba2f7fbff122952f759d0da9b368
1 //
2 // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3 // + +
4 // + This file is part of enGrid. +
5 // + +
6 // + Copyright 2008,2009 Oliver Gloth +
7 // + +
8 // + enGrid is free software: you can redistribute it and/or modify +
9 // + it under the terms of the GNU General Public License as published by +
10 // + the Free Software Foundation, either version 3 of the License, or +
11 // + (at your option) any later version. +
12 // + +
13 // + enGrid is distributed in the hope that it will be useful, +
14 // + but WITHOUT ANY WARRANTY; without even the implied warranty of +
15 // + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +
16 // + GNU General Public License for more details. +
17 // + +
18 // + You should have received a copy of the GNU General Public License +
19 // + along with enGrid. If not, see <http://www.gnu.org/licenses/>. +
20 // + +
21 // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
23 #ifndef OPENFOAMTOOLS_H
24 #define OPENFOAMTOOLS_H
26 #include <QObject>
27 #include <QProcess>
29 class OpenFOAMTools : public QObject
31 Q_OBJECT;
33 private: // attributes
35 QProcess* m_SolverProcess;
36 QProcess* m_ToolsProcess;
37 QString m_SolverBinary;
38 QString m_StrippedSolverBinary;
39 QString m_WorkingDirectory;
40 int m_NumProcesses;
41 QString m_HostFile;
42 QString m_Program;
43 QStringList m_Arguments;
44 QString m_OpenFoamPath;
45 QString m_OpenFoamArch;
46 QString m_MainHost;
48 private: // methods
50 void writeMpiParameters();
51 int getArguments();
52 void runTool(QString path, QString name, QStringList args = QStringList());
53 QString getBinary(QString path, QString name) { return m_OpenFoamPath + "/" + path + "/" + m_OpenFoamArch + "/" + name; };
55 public:
57 OpenFOAMTools(QObject *parent = 0);
58 ~OpenFOAMTools();
60 public: // methods
64 public slots:
66 void runSolver();
67 void runDecomposePar();
68 void runPostProcessingTools();
69 void runImportFluentCase();
71 void stopSolverProcess();
73 void finishedHandler(int exitCode, QProcess::ExitStatus exitStatus);
74 void readFromStderr();
75 void readFromStdout();
76 void startedHandler();
80 #endif