24 #ifndef _GEMA_DISCONTINUITY_SET_H_ 25 #define _GEMA_DISCONTINUITY_SET_H_ 99 bool internalIntersections()
const {
return _internalIntersections; }
110 int discontinuityIndex(
QString id)
const;
122 int numAttributeStates(
QString id)
const;
136 int propertySetIndex(
QString id)
const;
143 const SegmentCell2DIntersectionList& cell2DPolylineIntersections(
const GmCell* c)
const;
152 size_t usedMemory()
const;
154 static QString discontinuityTypeToStr(DiscontinuityType type);
158 GmSpatialIndex* index,
bool addElements,
bool extraDofs,
double snapTol,
159 bool noInternalNodes,
bool internalIntersections,
bool discardOriginalGeometry);
161 bool add2DSegmentCellIntersectionsToMesh(
const GmLogCategory& logger);
162 bool break2DPolylinesAtIntersections(
const GmLogCategory& logger);
165 template <
class T,
class V> T* loadIntoVector(
LuaTable& tab, V validator,
int n,
QString discontinuityId,
const char* msg,
const GmLogCategory& logger);
167 size_t usedElementMapMemory()
const;
194 #endif // _GEMA_DISCONTINUITY_SET_H_ QString id() const
Returns the discontinuity set name.
Definition: gmDiscontinuitySet.h:72
Auxiliar class used to store the definition of a value. It can be used to store informations about st...
Definition: gmValueInfo.h:126
Interface storing property descriptions and values.
Definition: gmPropertySet.h:37
GmCellMesh * _mesh
The mesh that this discontinuity set is tied to.
Definition: gmDiscontinuitySet.h:174
A simple accessor used to access 2d segment cell intersection data with possible unit conversion from...
Definition: gmDiscontinuityAccessor.h:151
QString description() const
Returns the discontinuity set description.
Definition: gmDiscontinuitySet.h:75
Basic class used to store sets of values, bound to a common definition, on behalf of another object (...
Definition: gmValueSet.h:53
Representation for the intersection between a polyline segment and a mesh cell. Can be used both in 2...
Definition: gmSegmentCellIntersection.h:58
bool _addedInterfElemHaveExtraDofs
Should added interface elements for EDGELIST/FACELIST have extra dof nodes?
Definition: gmDiscontinuitySet.h:177
QVector< GmDiscontinuity * > _data
The list with discontinuity data.
Definition: gmDiscontinuitySet.h:185
Base interface for mesh cells.
Definition: gmCell.h:81
double snapTolerance() const
Returns the percentual tolerance used for snapping intersection points to nodes, edges or faces.
Definition: gmDiscontinuitySet.h:93
GmDiscontinuity * discontinuity(int index)
Returns the given discontinuity. Index shoulde be between 0 and numDiscontinuities() - 1.
Definition: gmDiscontinuitySet.h:113
bool noInternalNodes() const
Return true if internal intersections between segments are "broken".
Definition: gmDiscontinuitySet.h:96
QVarLengthArray< GmCompact2DSegmentCellIntersection *, 1 > SegmentCell2DIntersectionList
Type for storing the set of 2D polyline-element intersections We use a QVarLengthArray since it has a...
Definition: gmDiscontinuitySet.h:67
QMap< QString, int > _attributesMap
Maps attribute ids to their indices in _attributes.
Definition: gmDiscontinuitySet.h:186
DiscontinuityType
Discontinuity type (defining how the disc. geometry is defined)
Definition: gmDiscontinuitySet.h:52
Auxiliar class used to store the complete set of simulation data.
Definition: gmSimulationData.h:51
QString _id
The discontinuity set id (name)
Definition: gmDiscontinuitySet.h:171
bool _discardOriginalGeometry
Flag controlling if the original geometry should be discarded after intersection handling for memory ...
Definition: gmDiscontinuitySet.h:181
GmSpatialIndex * _index
The optional spatial index used to speedup queries.
Definition: gmDiscontinuitySet.h:175
double _snapTol
The percentual snap tolerance for atracting intersection points to nodes, edges or faces.
Definition: gmDiscontinuitySet.h:178
The geometric representation for a single discontinuity from the Discontinuity set....
Definition: gmDiscontinuity.h:35
The disc. geometry is given by a polyline. Inserted elements are bars.
Definition: gmDiscontinuitySet.h:54
Base interface class for CellMesh type plugins.
Definition: gmCellMesh.h:39
Base interface class for Spatial Index type plugins.
Definition: gmSpatialIndex.h:37
The disc. geometry is given by a trinagulated surface. Inserted elements are triangles or quads.
Definition: gmDiscontinuitySet.h:55
int numPropertySets() const
Returns the number of property sets attached to this discontinuity set.
Definition: gmDiscontinuitySet.h:125
QString _description
A description of the discontinuity set.
Definition: gmDiscontinuitySet.h:172
const GmDiscontinuity * discontinuity(int index) const
Returns the given discontinuity as a const object. Index shoulde be between 0 and numDiscontinuities(...
Definition: gmDiscontinuitySet.h:116
The disc. geometry is given by a face list. Inserted elements are 3d interface elements.
Definition: gmDiscontinuitySet.h:57
bool discardOriginalGeometry() const
Returns true if the original intersection geometry data will be discarded after intersection handling...
Definition: gmDiscontinuitySet.h:102
bool _noInternalNodes
Flag controlling if internal nodes are allowed (false) or not (true) in the intersection segments.
Definition: gmDiscontinuitySet.h:179
bool autoAddElements() const
Returns true if the dicontinuity-cell intersections are added as new elements to the mesh.
Definition: gmDiscontinuitySet.h:87
QVector< GmValueSet * > _attributes
List with the set of defined attribute values.
Definition: gmDiscontinuitySet.h:183
void print(const GmMatrix &m, const GmLogCategory &logger, GmLogLevel level, int fieldWidth, char format, int precision)
Prints the matrix using the specified logger, level and precision fields.
Definition: gmMatrixUtils.cpp:34
DiscontinuityType type() const
Returns the discontinuity geometry definition type.
Definition: gmDiscontinuitySet.h:78
#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
A (much more) compact version of GmSegmentCellIntersection for 2d intersections only....
Definition: gmSegmentCellIntersection.h:105
QMap< int, SegmentCell2DIntersectionList > _elementPolylineIntersectionsMap
The map with per element intersections with polyline discontinuities.
Definition: gmDiscontinuitySet.h:190
GmLogLevel
Available log levels list.
Definition: gmLog.h:36
int numDiscontinuities() const
Returns the number of discontinuities (lines) stored in the object.
Definition: gmDiscontinuitySet.h:105
Class representing a category with multiple logging levels.
Definition: gmLog.h:58
The GmDiscontinuityAccessor class is a proxy object to a value accesor implementing a more convenient...
Definition: gmDiscontinuityAccessor.h:47
The disc. geometry is given by an edge list. Inserted elements are 2d interface elements.
Definition: gmDiscontinuitySet.h:56
Base interface for providing discontinuity geometry information for spatial indices.
Definition: gmDiscontinuitySet.h:48
bool extraDofsInAddedElements() const
Returns true if added interface elements for type() == EDGELIST or FACELIST should have extra dof nod...
Definition: gmDiscontinuitySet.h:90
QMap< QString, int > _dataMap
Maps discontinuity names to their indices in _data.
Definition: gmDiscontinuitySet.h:187
GmSpatialIndex * spatialIndex() const
Returns the mesh spatial index that this discontinuity set is tied to.
Definition: gmDiscontinuitySet.h:84
GmCellMesh * mesh() const
Returns the mesh that this discontinuity set is tied to.
Definition: gmDiscontinuitySet.h:81
bool _addElements
Should we automatically add the discontinuity geometry - cell intersections as elements to the mesh?
Definition: gmDiscontinuitySet.h:176
const QVector< GmDiscontinuity * > & discontinuities() const
Returns the stored list of discontinuities.
Definition: gmDiscontinuitySet.h:108
bool _internalIntersections
Flag controlling if internal intersections should be handled or not.
Definition: gmDiscontinuitySet.h:180
QVector< GmPropertySet * > _propertySets
List with the associated property sets.
Definition: gmDiscontinuitySet.h:184
DiscontinuityType _type
The type of the discontinuities geometric data.
Definition: gmDiscontinuitySet.h:173
const QVector< GmPropertySet * > & propertySets() const
Returns a reference to the list of property sets associated to this set.
Definition: gmDiscontinuitySet.h:134
Declaration of support functions and macros for information logging.