added foam path/arch to config
[engrid.git] / src / openfoamtools.h
blob16e936a7f213a43c600e6fea1561107db50afa5d
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 #include "egvtkobject.h"
31 class OpenFOAMTools : public QObject, public EgVtkObject
33 Q_OBJECT;
35 private: // attributes
37 QProcess* m_SolverProcess;
38 QProcess* m_ToolsProcess;
39 QString m_SolverBinary;
40 QString m_StrippedSolverBinary;
41 QString m_WorkingDirectory;
42 int m_NumProcesses;
43 QString m_HostFile;
44 QString m_Program;
45 QStringList m_Arguments;
46 QString m_OpenFoamPath;
47 QString m_OpenFoamArch;
48 QString m_MainHost;
50 private: // methods
52 void writeMpiParameters();
53 int getArguments();
54 void runTool(QString path, QString name, QStringList args = QStringList());
55 QString getBinary(QString path, QString name) { return m_OpenFoamPath + "/" + path + "/" + m_OpenFoamArch + "/" + name; };
57 public:
59 OpenFOAMTools(QObject *parent = 0);
60 ~OpenFOAMTools();
62 public: // methods
66 public slots:
68 void runSolver();
69 void runDecomposePar();
70 void runPostProcessingTools();
71 void runImportFluentCase();
73 void stopSolverProcess();
75 void finishedHandler(int exitCode, QProcess::ExitStatus exitStatus);
76 void readFromStderr();
77 void readFromStdout();
78 void startedHandler();
82 #endif