GemaCoreLib
The GeMA Core library
Loading...
Searching...
No Matches
gmModelData.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_MODEL_DATA_H_
25#define _GEMA_MODEL_DATA_H_
26
27#include "gmCoreConfig.h"
28
29#include <QString>
30#include <QMap>
31#include <QVariantMap>
32
33class GmStateVar;
34class GmPropertySet;
35class GmMesh;
36class GmCellMesh;
37class GmUserFunction;
40class GmSpatialIndex;
42class GmPluginData;
44class GmPCR;
45
46class GmLogCategory;
47
48
53{
54public:
57
58 void clear();
59
61 const QMap<QString, GmStateVar*>& stateVars() const { return _stateVarMap; }
62
64 const QMap<QString, int>& stateVarGroupNames() const { return _stateVarGroupNames; }
65
67 const QMap<QString, GmPropertySet*>& propertySets() const { return _propertySetMap; }
68
70 const QMap<QString, GmMesh*>& meshes() const { return _meshMap; }
71
73 const QMap<QString, GmPCR*>& pcrObjects() const { return _pcrMap; }
74
76 const QMap<QString, GmUserFunction*>& userFunctions() const { return _userFunctionMap; }
77
80
83
85 const QMap<QString, GmSpatialIndex*>& spatialIndices() const { return _spatialIndexMap; }
86
88 const QMap<QString, GmDiscontinuitySet*>& discontinuitySets() const { return _discontinuitySetMap; }
89
91 const QMap<QString, QMap<QString, GmPluginData*>>& pluginData() const { return _pluginDataMap; }
92
94 const QMap<QString, GmPluginData*> pluginData(QString typeName) const { return _pluginDataMap.value(typeName); }
95
96 bool addStateVar(GmStateVar* stateVar);
97
99 int numStateVarDofs() const { return _nextDof; }
100
104 bool addPropertySet(GmPropertySet* propSet) { return addObjectToMap<GmPropertySet>(propSet, _propertySetMap); }
105
109 bool addMesh(GmMesh* mesh) { return addObjectToMap<GmMesh>(mesh, _meshMap); }
110
111 GmMesh* addNewEmptyMesh(GmSimulationData* simData, QString id, int dim, QString unit,
112 const QVariantMap& attributes = QVariantMap(),
113 QString pluginType = "GemaMesh.elem", bool addToModel = true);
114
115 void removeMesh(QString id, bool deleteMesh = true);
116
120 bool addPcrObject(GmPCR* pcr) { return addObjectToMap<GmPCR>(pcr, _pcrMap); }
121
122 GmPCR* addNewPcrObject(GmSimulationData* simData, QString id, QString pluginType, GmMesh* mesh,
123 const QVariantMap& attributes, bool addToModel = true);
124
125 GmPCR* newDefaultPcrObject(GmSimulationData* simData, QString meshId, GmMesh* mesh, const GmLogCategory& logger);
126
127 void removePcrObject(QString id, bool deletePcr = true);
128
132 bool addUserFunction(GmUserFunction* ufunc) { return addObjectToMap<GmUserFunction>(ufunc, _userFunctionMap); }
133
137 bool addBoundaryCondition(GmBoundaryCondition* bc) { return addObjectToMap<GmBoundaryCondition>(bc, _bcMap); }
138
142 bool addContactBoundaryCondition(GmContactBoundaryCondition* bc) { return addObjectToMap<GmContactBoundaryCondition>(bc, _cbcMap); }
143
147 bool addSpatialIndex(GmSpatialIndex* index) { return addObjectToMap<GmSpatialIndex>(index, _spatialIndexMap); }
148
149 GmSpatialIndex* addNewSpatialIndex(GmSimulationData* simData, QString id, QString pluginType, GmMesh* mesh,
150 const QVariantMap& attributes, bool addToModel = true);
151
152 void removeSpatialIndex(QString id, bool deleteIndex = true);
153
157 bool addDiscontinuitySet(GmDiscontinuitySet* dset) { return addObjectToMap<GmDiscontinuitySet>(dset, _discontinuitySetMap); }
158
159 GmDiscontinuitySet* addNewEmptyDiscSet(GmSimulationData* simData, QString id, QString desc, GmCellMesh* mesh, GmSpatialIndex* index,
160 const QVariantMap& options = QVariantMap(), bool addToModel = true);
161
162 void removeDiscontinuitySet(QString id, bool deleteDisc = true);
163
164 bool addPluginData(GmPluginData* pdata);
165
166 void setStateVarGroupName(GmStateVar* stateVar, QString name);
167
168 void printInfo(const GmLogCategory& logger, const GmSimulationData* simData);
169
170private:
171 template <class T> bool addObjectToMap(T* obj, QMap<QString, T*>& map);
172
183
185
187};
188
189#endif
A class used to represent a set of boundary conditions of the same type, tied to the same mesh.
Definition gmBoundaryCondition.h:287
Base interface class for CellMesh type plugins.
Definition gmCellMesh.h:40
A class used to represent a set of contact boundary conditions of the same type, tied to the same mes...
Definition gmContactBoundaryCondition.h:33
Base interface for providing discontinuity geometry information for spatial indices.
Definition gmDiscontinuitySet.h:59
Class representing a category with multiple logging levels.
Definition gmLog.h:58
Base interface class for Mesh type plugins.
Definition gmMesh.h:48
Auxiliar class used to store the complete set of model data for a simulation.
Definition gmModelData.h:53
const QMap< QString, GmContactBoundaryCondition * > & contactBoundaryConditions() const
Returns a const reference to the contact boundary conditions map.
Definition gmModelData.h:82
bool addContactBoundaryCondition(GmContactBoundaryCondition *bc)
Adds a contact boundary condition to the model. Returns false if an object with the same id already e...
Definition gmModelData.h:142
QMap< QString, GmPropertySet * > _propertySetMap
Map storing property sets, keyed by property set id.
Definition gmModelData.h:174
const QMap< QString, GmDiscontinuitySet * > & discontinuitySets() const
Returns a const reference to the discontinuity set map.
Definition gmModelData.h:88
bool addUserFunction(GmUserFunction *ufunc)
Adds a user function to the model. Returns false if an object with the same id already exists....
Definition gmModelData.h:132
const QMap< QString, GmBoundaryCondition * > & boundaryConditions() const
Returns a const reference to the boundary conditions map.
Definition gmModelData.h:79
QMap< QString, GmContactBoundaryCondition * > _cbcMap
Map storing contact boundary conditions, keyed by boundary condition id.
Definition gmModelData.h:179
bool addDiscontinuitySet(GmDiscontinuitySet *dset)
Adds a spatial index to the model. Returns false if an object with the same id already exists....
Definition gmModelData.h:157
bool addPropertySet(GmPropertySet *propSet)
Adds a property set to the model. Returns false if an object with the same id already exists....
Definition gmModelData.h:104
QMap< QString, GmBoundaryCondition * > _bcMap
Map storing boundary conditions, keyed by boundary condition id.
Definition gmModelData.h:178
bool addMesh(GmMesh *mesh)
Adds a mesh to the model. Returns false if an object with the same id already exists....
Definition gmModelData.h:109
QMap< QString, GmDiscontinuitySet * > _discontinuitySetMap
Map storing discontinuity sets, keyed by index id.
Definition gmModelData.h:181
const QMap< QString, GmPropertySet * > & propertySets() const
Returns a const reference to the property sets map.
Definition gmModelData.h:67
const QMap< QString, int > & stateVarGroupNames() const
Returns a const reference to the map assigning sequential group ids to group names.
Definition gmModelData.h:64
const QMap< QString, GmPluginData * > pluginData(QString typeName) const
Returns the plugin data map storing objects of the given type (remember that in Qt maps are implicitl...
Definition gmModelData.h:94
const QMap< QString, QMap< QString, GmPluginData * > > & pluginData() const
Returns a const reference to the set of per plugin data type maps.
Definition gmModelData.h:91
QMap< QString, GmStateVar * > _stateVarMap
Map storing state variables information, keyed by state var id.
Definition gmModelData.h:173
const QMap< QString, GmPCR * > & pcrObjects() const
Returns a const reference to the PCR objects map.
Definition gmModelData.h:73
const QMap< QString, GmMesh * > & meshes() const
Returns a const reference to the meshes map.
Definition gmModelData.h:70
bool addBoundaryCondition(GmBoundaryCondition *bc)
Adds a boundary condition to the model. Returns false if an object with the same id already exists....
Definition gmModelData.h:137
QMap< QString, int > _stateVarGroupNames
Map translating state var group names into a sequential group id.
Definition gmModelData.h:184
bool addSpatialIndex(GmSpatialIndex *index)
Adds a spatial index to the model. Returns false if an object with the same id already exists....
Definition gmModelData.h:147
const QMap< QString, GmSpatialIndex * > & spatialIndices() const
Returns a const reference to the spatial index map.
Definition gmModelData.h:85
QMap< QString, QMap< QString, GmPluginData * > > _pluginDataMap
Map storing per plugin data type (alias), a map with the plugin data objects of that type keyed by ob...
Definition gmModelData.h:182
QMap< QString, GmMesh * > _meshMap
Map storing meshes, keyed by mesh id.
Definition gmModelData.h:175
const QMap< QString, GmUserFunction * > & userFunctions() const
Returns a const reference to the user functions map.
Definition gmModelData.h:76
int numStateVarDofs() const
Returns the number of global dof's used by the set of state vars.
Definition gmModelData.h:99
QMap< QString, GmPCR * > _pcrMap
Map storing PCR objects, keyed by object id.
Definition gmModelData.h:176
QMap< QString, GmSpatialIndex * > _spatialIndexMap
Map storing spatial indices, keyed by index id.
Definition gmModelData.h:180
const QMap< QString, GmStateVar * > & stateVars() const
Returns a const reference to the state vars map.
Definition gmModelData.h:61
QMap< QString, GmUserFunction * > _userFunctionMap
Map storing user defined functions for evaluating attribute / property values.
Definition gmModelData.h:177
int _nextDof
Next available degree of freedom number.
Definition gmModelData.h:186
bool addPcrObject(GmPCR *pcr)
Adds a PCR object to the model. Returns false if an object with the same id already exists....
Definition gmModelData.h:120
Base interface class for Partition-Color-Renumber object plugins.
Definition gmPCR.h:54
This class is a simple wrapper over a generic Lua table, provided in the model, that also handles the...
Definition gmPluginData.h:37
Interface storing property descriptions and values.
Definition gmPropertySet.h:38
Auxiliar class used to store the complete set of simulation data.
Definition gmSimulationData.h:55
Base interface class for Spatial Index type plugins.
Definition gmSpatialIndex.h:66
Auxiliar class used to store the definition of a state variable.
Definition gmStateVar.h:41
Class used to store the definition of a user function and its parameters.
Definition gmUserFunction.h:82
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