GemaCoreLib
The GeMA Core library
Loading...
Searching...
No Matches
gmSolutionData.h
Go to the documentation of this file.
1/************************************************************************
2**
3** Copyright (C) 2014 by Carlos Augusto Teixera Mendes
4** All rights reserved.
5**
6** This file is part of the "GeMA" software. It's use should respect
7** the terms in the license agreement that can be found together
8** with this source code.
9** It is provided AS IS, with NO WARRANTY OF ANY KIND,
10** INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR
11** A PARTICULAR PURPOSE.
12**
13************************************************************************/
14
24#ifndef _GEMA_SOLUTION_DATA_H_
25#define _GEMA_SOLUTION_DATA_H_
26
27#include "gmCoreConfig.h"
28
29#include <QString>
30#include <luaFunction.h>
31
32class GmPhysics;
33class GmNumSolver;
35class GmLogCategory;
36
37
42{
43public:
46
47 void clear();
48
50 const QMap<QString, GmPhysics*>& physics() const { return _physicsMap; }
51
53 const QMap<QString, GmNumSolver*>& numSolvers() const { return _numSolverMap; }
54
58 bool addPhysics(GmPhysics* phys) { return addObjectToMap<GmPhysics>(phys, _physicsMap); }
59
63 bool addNumSolver(GmNumSolver* nsolver) { return addObjectToMap<GmNumSolver>(nsolver, _numSolverMap); }
64
65 GmNumSolver* addNewNumSolver(GmSimulationData* simData, QString id, QString pluginType,
66 const QVariantMap& attributes, bool addToSolution = true);
67
68 void removeNumSolver(QString id, bool deleteSolver = true);
69
71 LuaFunction& mainScript() { return _mainScript; }
72
74 QString pythonScript() const { return _pythonScript; }
75
77 const QMap<QString, QString>& processSetMap() const { return _processSetMap; }
78
80 void setMainScript(LuaFunction& f) { _mainScript = f; }
81
83 void setPythonScript(QString script) { assert(!_mainScript.isValid()); _pythonScript = script; }
84
85
86 bool addProcessSet(QString setName, QString pluginName);
87
88 void printInfo(const GmLogCategory& logger);
89
90private:
91 template <class T> bool addObjectToMap (T* obj, QMap<QString, T*>& map);
92
98};
99
100#endif
Class representing a category with multiple logging levels.
Definition gmLog.h:58
Base interface class for NumSolver type plugins.
Definition gmNumSolver.h:36
Base interface class for Physics type plugins.
Definition gmPhysics.h:42
Auxiliar class used to store the complete set of simulation data.
Definition gmSimulationData.h:55
Auxiliar class used to store the complete set of solution methods data for a simulation.
Definition gmSolutionData.h:42
const QMap< QString, GmPhysics * > & physics() const
Returns a const reference to the state vars map.
Definition gmSolutionData.h:50
void setPythonScript(QString script)
Updates the python script when _mainScript is empty.
Definition gmSolutionData.h:83
LuaFunction _mainScript
Reference for the main script function.
Definition gmSolutionData.h:93
QMap< QString, GmNumSolver * > _numSolverMap
Map storing numeric solvers, keyed by solver id.
Definition gmSolutionData.h:97
QMap< QString, QString > _processSetMap
Map storing for each process function group the name of the plugin that implements it.
Definition gmSolutionData.h:95
const QMap< QString, GmNumSolver * > & numSolvers() const
Returns a const reference to the numerical solvers map.
Definition gmSolutionData.h:53
bool addNumSolver(GmNumSolver *nsolver)
Adds a numeric solver to the model. Returns false if an object with the same id already exists....
Definition gmSolutionData.h:63
void setMainScript(LuaFunction &f)
Updates the main Lua script used for the simulation.
Definition gmSolutionData.h:80
QMap< QString, GmPhysics * > _physicsMap
Map storing physics objects, keyed by physics id.
Definition gmSolutionData.h:96
bool addPhysics(GmPhysics *phys)
Adds a physical method to the model. Returns false if an object with the same id already exists....
Definition gmSolutionData.h:58
QString pythonScript() const
Returns a reference for the main python script.
Definition gmSolutionData.h:74
QString _pythonScript
The python script used for the simulation if _mainScript is invalid.
Definition gmSolutionData.h:94
const QMap< QString, QString > & processSetMap() const
Returns the map associating process set names with plugin names.
Definition gmSolutionData.h:77
LuaFunction & mainScript()
Returns a reference for the main lua script.
Definition gmSolutionData.h:71
Declaration of useful configuration definitions for the Core library.
#define GMC_API_EXPORT
Macro for controlling if the class is being exported (GEMA_CORE_LIB defined) or imported (GEMA_CORE_L...
Definition gmCoreConfig.h:35