GemaCoreLib
The GeMA Core library
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 
32 class GmStateVar;
33 class GmPropertySet;
34 class GmMesh;
35 class GmUserFunction;
38 class GmSpatialIndex;
39 class GmDiscontinuitySet;
40 class GmPluginData;
41 class GmSimulationData;
42 
43 class GmLogCategory;
44 
45 
50 {
51 public:
52  GmModelData();
53  ~GmModelData();
54 
55  void clear();
56 
58  const QMap<QString, GmStateVar*>& stateVars() const { return _stateVarMap; }
59 
61  const QMap<QString, int>& stateVarGroupNames() const { return _stateVarGroupNames; }
62 
64  const QMap<QString, GmPropertySet*>& propertySets() const { return _propertySetMap; }
65 
67  const QMap<QString, GmMesh*>& meshes() const { return _meshMap; }
68 
70  const QMap<QString, GmUserFunction*>& userFunctions() const { return _userFunctionMap; }
71 
73  const QMap<QString, GmBoundaryCondition*>& boundaryConditions() const { return _bcMap; }
74 
77 
79  const QMap<QString, GmSpatialIndex*>& spatialIndices() const { return _spatialIndexMap; }
80 
82  const QMap<QString, GmDiscontinuitySet*>& discontinuitySets() const { return _discontinuitySetMap; }
83 
85  const QMap<QString, QMap<QString, GmPluginData*>>& pluginData() const { return _pluginDataMap; }
86 
88  const QMap<QString, GmPluginData*> pluginData(QString typeName) const { return _pluginDataMap.value(typeName); }
89 
90  bool addStateVar(GmStateVar* stateVar);
91 
93  int numStateVarDofs() const { return _nextDof; }
94 
98  bool addPropertySet(GmPropertySet* propSet) { return addObjectToMap<GmPropertySet>(propSet, _propertySetMap); }
99 
103  bool addMesh(GmMesh* mesh) { return addObjectToMap<GmMesh>(mesh, _meshMap); }
104 
108  bool addUserFunction(GmUserFunction* ufunc) { return addObjectToMap<GmUserFunction>(ufunc, _userFunctionMap); }
109 
113  bool addBoundaryCondition(GmBoundaryCondition* bc) { return addObjectToMap<GmBoundaryCondition>(bc, _bcMap); }
114 
118  bool addContactBoundaryCondition(GmContactBoundaryCondition* bc) { return addObjectToMap<GmContactBoundaryCondition>(bc, _cbcMap); }
119 
123  bool addSpatialIndex(GmSpatialIndex* index) { return addObjectToMap<GmSpatialIndex>(index, _spatialIndexMap); }
124 
128  bool addDiscontinuitySet(GmDiscontinuitySet* dset) { return addObjectToMap<GmDiscontinuitySet>(dset, _discontinuitySetMap); }
129 
130  bool addPluginData(GmPluginData* pdata);
131 
132  void setStateVarGroupName(GmStateVar* stateVar, QString name);
133 
134  void printInfo(const GmLogCategory& logger, const GmSimulationData* simData);
135 
136 private:
137  template <class T> bool addObjectToMap (T* obj, QMap<QString, T*>& map);
138 
148 
150 
151  int _nextDof;
152 };
153 
154 #endif
A class used to represent a set of contact boundary conditions of the same type, tied to the same mes...
Definition: gmContactBoundaryCondition.h:32
QMap< QString, GmDiscontinuitySet * > _discontinuitySetMap
Map storing discontinuity sets, keyed by index id.
Definition: gmModelData.h:146
const QMap< QString, QMap< QString, GmPluginData * > > & pluginData() const
Returns a const reference to the set of per plugin data type maps.
Definition: gmModelData.h:85
int _nextDof
Next available degree of freedom number.
Definition: gmModelData.h:151
Interface storing property descriptions and values.
Definition: gmPropertySet.h:37
QMap< QString, GmBoundaryCondition * > _bcMap
Map storing boundary conditions, keyed by boundary condition id.
Definition: gmModelData.h:143
Auxiliar class used to store the complete set of model data for a simulation.
Definition: gmModelData.h:49
const QMap< QString, GmBoundaryCondition * > & boundaryConditions() const
Returns a const reference to the boundary conditions map.
Definition: gmModelData.h:73
const QMap< QString, GmStateVar * > & stateVars() const
Returns a const reference to the state vars map.
Definition: gmModelData.h:58
const QMap< QString, GmSpatialIndex * > & spatialIndices() const
Returns a const reference to the spatial index map.
Definition: gmModelData.h:79
Declaration of usefull configuration definitions for the Core library.
A class used to represent a set of boundary conditions of the same type, tied to the same mesh.
Definition: gmBoundaryCondition.h:262
This class is a simple wrapper over a generic Lua table, provided in the model, that also handles the...
Definition: gmPluginData.h:36
const QMap< QString, GmContactBoundaryCondition * > & contactBoundaryConditions() const
Returns a const reference to the contact boundary conditions map.
Definition: gmModelData.h:76
Auxiliar class used to store the complete set of simulation data.
Definition: gmSimulationData.h:51
Auxiliar class used to store the definition of a state variable.
Definition: gmStateVar.h:40
QMap< QString, GmStateVar * > _stateVarMap
Map storing state variables information, keyed by state var id.
Definition: gmModelData.h:139
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:123
Base interface class for Spatial Index type plugins.
Definition: gmSpatialIndex.h:37
QMap< QString, GmPropertySet * > _propertySetMap
Map storing property sets, keyed by property set id.
Definition: gmModelData.h:140
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:108
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:98
const QMap< QString, GmDiscontinuitySet * > & discontinuitySets() const
Returns a const reference to the discontinuity set map.
Definition: gmModelData.h:82
QMap< QString, int > _stateVarGroupNames
Map translating state var group names into a sequential group id.
Definition: gmModelData.h:149
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:128
QMap< QString, GmUserFunction * > _userFunctionMap
Map storing user defined functions for evaluating attribute / property values.
Definition: gmModelData.h:142
bool addContactBoundaryCondition(GmContactBoundaryCondition *bc)
Adds a contactboundary condition to the model. Returns false if an object with the same id already ex...
Definition: gmModelData.h:118
#define GMC_API_EXPORT
Macro for controling if the class is being exported (GEMA_CORE_LIB defined) or imported (GEMA_CORE_LI...
Definition: gmCoreConfig.h:35
bool addMesh(GmMesh *mesh)
Adds a mesh to the model. Returns false if an object with the same id already exists....
Definition: gmModelData.h:103
Class representing a category with multiple logging levels.
Definition: gmLog.h:58
QMap< QString, GmContactBoundaryCondition * > _cbcMap
Map storing contact boundary conditions, keyed by boundary condition id.
Definition: gmModelData.h:144
Base interface for providing discontinuity geometry information for spatial indices.
Definition: gmDiscontinuitySet.h:48
QMap< QString, QMap< QString, GmPluginData * > > _pluginDataMap
Map sotring per plugin data type (alias), a map with the plugin data objects of that type keyed by ob...
Definition: gmModelData.h:147
const QMap< QString, GmPropertySet * > & propertySets() const
Returns a const reference to the property sets map.
Definition: gmModelData.h:64
const QMap< QString, int > & stateVarGroupNames() const
Returns a const reference to the map assigning sequential group ids to group names.
Definition: gmModelData.h:61
const QMap< QString, GmUserFunction * > & userFunctions() const
Returns a const reference to the user functions map.
Definition: gmModelData.h:70
Base interface class for Mesh type plugins.
Definition: gmMesh.h:44
Class used to store the definition of a user function and its parameters.
Definition: gmUserFunction.h:78
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:113
const QMap< QString, GmPluginData * > pluginData(QString typeName) const
Returns the plugin data map storing objects of the given type (remember that in Qt maps implicitely c...
Definition: gmModelData.h:88
const QMap< QString, GmMesh * > & meshes() const
Returns a const reference to the meshes map.
Definition: gmModelData.h:67
QMap< QString, GmMesh * > _meshMap
Map storing meshes, keyed by mesh id.
Definition: gmModelData.h:141
QMap< QString, GmSpatialIndex * > _spatialIndexMap
Map storing spatial indices, keyed by index id.
Definition: gmModelData.h:145
int numStateVarDofs() const
Returns the number of global dof's used by the set of state vars.
Definition: gmModelData.h:93