24#ifndef _GEMA_BOUNDARY_CONDITION_H_
25#define _GEMA_BOUNDARY_CONDITION_H_
99 int numNodes (
int bcIndex)
const;
100 int node (
int bcIndex,
int nodeIndex)
const;
101 GmCell* cell (
int bcIndex)
const;
102 int numBoundaryCells (
int bcIndex)
const;
103 GmCell* boundaryCell (
int bcIndex,
int cellIndex)
const;
104 int boundaryCellBorder(
int bcIndex,
int cellIndex)
const;
108 const GmNodeSet* nodeSet (
int bcIndex)
const;
113 void setNode (
int bcIndex,
int node);
115 void setNode (
int bcIndex,
GmNodeSet* nodeSet);
116 void setNode (
int bcIndex,
int numNodes,
int* nodes);
117 void setCell (
int bcIndex,
int cell);
118 void setBoundary(
int bcIndex,
int cell,
int border);
120 void setBoundary(
int bcIndex,
int numCells,
int* cells,
int* borders);
122 void reloadNodeBoundaryData(
int bcIndex);
124 int addLines(
int n = 1);
125 void removeLines(
int bcIndex,
int n = 1);
131 int addNodeLine(
int node) {
int index = addLines();
if(index >= 0) setNode(index, node);
return index; }
145 int addNodeLine(
GmNodeSet* nodeSet) {
int index = addLines();
if(index >= 0) setNode(index, nodeSet);
return index; }
152 int addNodeLine(
int numNodes,
int* nodes) {
int index = addLines();
if(index >= 0) setNode(index, numNodes, nodes);
return index; }
158 int addCellLine(
int cell) {
int index = addLines();
if(index >= 0) setCell(index, cell);
return index; }
165 int addBoundaryLine(
int cell,
int border) {
int index = addLines();
if(index >= 0) setBoundary(index, cell, border);
return index; }
178 int addBoundaryLine(
int numCells,
int* cells,
int* borders) {
int index = addLines();
if(index >= 0) setBoundary(index, numCells, cells, borders);
return index; }
183 size_t usedMemory()
const;
185 static QString bcTypeToStr(BcType type);
186 static int strToBcType(
QString str);
194 virtual void clearObjects();
195 void clearIndex(
int bcIndex);
223 size_t appPointUsedMemory()
const;
227 QString nodeListStr (
int bcIndex,
int titleSize,
bool align,
bool* cropped)
const;
228 QString cellBoundaryListStr(
int bcIndex,
int titleSize,
bool* cropped)
const;
237 int appPointIndex(
int bcIndex,
int listIndex)
const;
246 const GmNodeSet* mergedNodeSet (
int bcIndex)
const;
299 bool hasTags()
const {
return !_taggedProperties.isEmpty(); }
307 quint64 tagMask(
int bcIndex,
int listIndex)
const;
333 virtual bool addStateItemsToGroup(
GmStateDump* state,
int groupId);
335 virtual bool fillDumpControlMapData (QVariantMap* map,
const GmLogCategory& logger);
336 virtual bool dumpControlMapDataLoaded(QVariantMap* map,
const GmLogCategory& logger);
Aux class used to store a cell boundary created from a user given list of cells/borders.
Definition gmBoundaryCondition.cpp:200
Aux class used to store a node set created either from a GmCellBoundary or from a user given node lis...
Definition gmBoundaryCondition.cpp:82
A wrapper class around QtTaggedPtr providing specific constructors to the type of Gema pointers that ...
Definition gmBoundaryCondition.cpp:297
The GmBoundaryConditionAccessor class is a proxy object to a value accesor implementing a more conven...
Definition gmBoundaryConditionAccessor.h:74
A base class used to implement the common part between GmBoundaryCondition and GmContactBoundaryCondi...
Definition gmBoundaryCondition.h:58
QVector< GmValueSet * > _appPointPropertiesData
List with set of values tied to the application points. Filled only when those are different from _us...
Definition gmBoundaryCondition.h:263
int addNodeLine(int numNodes, int *nodes)
Adds a new boundary condition line to a GM_BC_NODE object, filling the node information from the give...
Definition gmBoundaryCondition.h:152
int addBoundaryLine(int cell, int border)
Adds a new boundary condition line to a GM_BC_EDGE/GM_BC_FACE object, filling the boundary informatio...
Definition gmBoundaryCondition.h:165
QString _id
The boundary condition id (name)
Definition gmBoundaryCondition.h:253
bool _appPointUserProperties
Set to true if user properties are tied to application points, false otherwise
Definition gmBoundaryCondition.h:264
QVarLengthArray< BcTaggedPtr, 1 > * _appPointData
A vector with size _numValues storing the boundary condition application points.
Definition gmBoundaryCondition.h:282
int addNodeLine(GmCellBoundary *boundary)
Adds a new boundary condition line to a GM_BC_NODE object, filling the node information from a bounda...
Definition gmBoundaryCondition.h:138
QString _type
The type of this conditions, to be interpreted by a physics object.
Definition gmBoundaryCondition.h:255
QString _description
A description of the boundary conditions.
Definition gmBoundaryCondition.h:254
GmMesh * mesh() const
Returns the mesh that this boundary conditions are tied to.
Definition gmBoundaryCondition.h:83
QMap< QString, int > _userPropertiesMap
Map translating ids from properties into their position in _userPropertiesData.
Definition gmBoundaryCondition.h:261
BcType _bcType
The type of bc. Defines if the bc should be applied over nodes, edges or faces.
Definition gmBoundaryCondition.h:257
int addBoundaryLine(int numCells, int *cells, int *borders)
Adds a new boundary condition line to a GM_BC_EDGE/GM_BC_FACE object, filling the boundary informatio...
Definition gmBoundaryCondition.h:178
int numProperties() const
Returns the number of properties (columns) stored for each condition in the object.
Definition gmBoundaryCondition.h:92
virtual QString msgPrefix() const
The contents of the %1 argument on the "%1boundary condition" string used on error messages.
Definition gmBoundaryCondition.h:215
QString type() const
Returns the boundary condition type, to be interpreted by a physics object.
Definition gmBoundaryCondition.h:80
virtual void printExtraHeaderInfo(const GmLogCategory &logger, GmLogLevel level) const
Aux function to print(), giving a chance for derived classes to add additional header data.
Definition gmBoundaryCondition.h:218
BcType
Boundary condition type defining where a BC is applied (node, edge or face)
Definition gmBoundaryCondition.h:62
@ GM_BC_NODE
The boundary condition will be applied over a node.
Definition gmBoundaryCondition.h:63
@ GM_BC_CELL
The boundary condition will be applied over a cell.
Definition gmBoundaryCondition.h:66
@ GM_BC_EDGE
The boundary condition will be applied over an edge.
Definition gmBoundaryCondition.h:64
@ GM_BC_FACE
The boundary condition will be applied over a face.
Definition gmBoundaryCondition.h:65
QVector< GmValueSet * > _userPropertiesData
List with set of values for the user properties.
Definition gmBoundaryCondition.h:262
int addCellLine(int cell)
Adds a new boundary condition line to a GM_BC_CELL object, filling the cell information....
Definition gmBoundaryCondition.h:158
int addNodeLine(GmNodeSet *nodeSet)
Adds a new boundary condition line to a GM_BC_NODE object, filling the node information from a node s...
Definition gmBoundaryCondition.h:145
int _numValues
The number of boundary conditions stored in this object.
Definition gmBoundaryCondition.h:259
BcType bcType() const
Returns the type of bc, defining if the bc should be applied over nodes, edges or faces.
Definition gmBoundaryCondition.h:86
QString description() const
Returns the boundary condition description.
Definition gmBoundaryCondition.h:77
int addNodeLine(int node)
Adds a new boundary condition line to a GM_BC_NODE object, filling the node information....
Definition gmBoundaryCondition.h:131
QString id() const
Returns the boundary condition name.
Definition gmBoundaryCondition.h:74
int addBoundaryLine(GmCellBoundary *boundary)
Adds a new boundary condition line to a GM_BC_EDGE/GM_BC_FACE object, filling the boundary informatio...
Definition gmBoundaryCondition.h:171
QVector< const GmCellBoundary * > _mergedBoundaries
A list with internal boundary objects created by the MERGE process.
Definition gmBoundaryCondition.h:267
int numValues() const
Returns the number of boundary conditions (lines) stored in the object.
Definition gmBoundaryCondition.h:89
GmMesh * _mesh
The mesh that this boundary conditions are tied to.
Definition gmBoundaryCondition.h:256
virtual void printExtraPropertyValues(const GmLogCategory &logger, GmLogLevel level) const
Aux function to print(), giving a chance for derived classes to add property values when _appPointUse...
Definition gmBoundaryCondition.h:221
QVector< const GmNodeSet * > _mergedNodeSets
A list with internal node set objects created by the MERGE process. Does NOT include node sets create...
Definition gmBoundaryCondition.h:266
A class used to represent a set of boundary conditions of the same type, tied to the same mesh.
Definition gmBoundaryCondition.h:287
bool _hasTaggedFunctionAccessors
Flag set to true for node BCs with tags that have a ignore clause and function based accessors.
Definition gmBoundaryCondition.h:318
QVector< GmBoundaryConditionAccessor * > _taggedAccessors
Accessors for tagged properties. Not NULL only for NODE BCs where the tag ignores default or zero val...
Definition gmBoundaryCondition.h:317
QVector< int > _taggedProperties
The index in the value set list of the set of properties with tags.
Definition gmBoundaryCondition.h:316
GmBoundaryCondition(QString id, QString description, QString type, GmMesh *mesh, BcType bcType)
Constructor. See parameter description on the GmBoundaryConditionBase constructor documentation.
Definition gmBoundaryCondition.h:290
bool hasTags() const
Returns true if any of the B.c. properties has a tag.
Definition gmBoundaryCondition.h:299
bool tagNeedsPerNodeEvaluation() const
Returns true, for node BCs only, when the tag set includes properties with either ignoreDef or ignore...
Definition gmBoundaryCondition.h:305
An auxiliar class used to host the needed code for duming a boundary condition to a state dump....
Definition gmBoundaryCondition.h:326
QVariantMap _controlMap
Variant map used for storing the dump control data for the bc object.
Definition gmBoundaryCondition.h:342
GmBoundaryCondition * _bc
The boundary condition.
Definition gmBoundaryCondition.h:341
QVector< void * > _auxObj
Temporarily stores pointers to either BcNodeSet or BcCellBoundary objects during bc data loading.
Definition gmBoundaryCondition.h:346
char * _appPointDataPtr
A pointer to the _bc->_appPointData vector data converted to a char*.
Definition gmBoundaryCondition.h:344
QMap< uintptr_t, QString > _translationMap
Translation map for app point pointers (Uses uintptr_t instead of BcTaggedPtr::Data since that class ...
Definition gmBoundaryCondition.h:343
GmStateDumpBufferDataItem * _auxObjDumpItem
The dump item used to save BcNodeSet / BcCellBoundary data.
Definition gmBoundaryCondition.h:345
This class stores a set of cell edges or cell faces that together form a piece of the boundary of a m...
Definition gmCellBoundary.h:44
Base interface for mesh cells.
Definition gmCell.h:88
A basic interface used for creating dump items for objects that can be dumped by a composition of mul...
Definition gmStateDumpItem.h:53
A helper class used to parse and retrieve data from am hdf5 model file. Used by the mesh plugin to re...
Definition gmHdf5ModelReader.h:53
A class used to export parts of a GeMA model to an HDF5 file. Its API includes both GeMA centric func...
Definition gmHdf5ModelWriter.h:58
Class representing a category with multiple logging levels.
Definition gmLog.h:58
Base interface class for Mesh type plugins.
Definition gmMesh.h:48
A wrapper class around QtNanBoxedValue providing specific constructors to store user functions / user...
Definition gmNanBoxedValue.h:41
This class stores a set of nodes belonging to a mesh. The nodes can belong to the mesh boundary but t...
Definition gmNodeSet.h:34
Auxiliar class used to store the complete set of simulation data.
Definition gmSimulationData.h:55
Class responsible for storing one or more user buffer objects.
Definition gmStateDumpItem.h:492
The GmStateDump class presents a higher level of abstraction over GmMemoryDump, storing accessor data...
Definition gmStateDump.h:54
Interface class for accessing and setting values from an "indexable" collection of values.
Definition gmValueAccessor.h:60
Auxiliar class used to store the definition of a value. It can be used to store informations about st...
Definition gmValueInfo.h:132
Basic class used to store sets of values, bound to a common definition, on behalf of another object (...
Definition gmValueSet.h:54
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
Declaration of support functions and macros for information logging.
GmLogLevel
Available log levels list.
Definition gmLog.h:36
Declaration of the GmStateDumpBaseDataItem and basic derived classes.