GemaCoreLib
The GeMA Core library
gmDiscontinuity.h
Go to the documentation of this file.
1 /************************************************************************
2 **
3 ** Copyright (C) 2023 by Carlos Augusto Teixeira 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_DISCONTINUITY_H_
25 #define _GEMA_DISCONTINUITY_H_
26 
27 #include "gmLog.h"
28 
29 class GmDiscontinuitySet;
30 
36 {
37 public:
39  virtual ~GmDiscontinuity() {}
40 
42  int index() const { return _index; }
43 
45  QString id() const { return _id; }
46 
51  int cellGroupIndex() const { return _groupIndex; }
52 
61  virtual int propertyIndex(int propertySet) const { return _psIndex[propertySet]; }
62 
69  virtual int numSegments() const = 0;
70 
75  virtual int numIntersections() const = 0;
76 
78  virtual void clearGeometry() = 0;
79 
81  virtual void printGeometry(const GmLogCategory& logger, GmLogLevel level) const = 0;
82 
89  virtual size_t usedGeometryMemory() const = 0;
90 
92  virtual bool findIntersections(const GmLogCategory& logger) { Q_UNUSED(logger); return true; }
93 
95  virtual void printIntersections(const GmLogCategory& logger, GmLogLevel level) const { Q_UNUSED(logger); Q_UNUSED(level); }
96 
98  virtual size_t usedIntersectionMemory() const { return 0; }
99 
100 private:
101  Q_DISABLE_COPY(GmDiscontinuity);
102 
103 protected:
105  GmDiscontinuity(const GmDiscontinuitySet* ds, int index, QString id, int groupIndex, const QVector<int>& psIndex)
106  : _ds(ds), _index(index), _id(id), _groupIndex(groupIndex), _psIndex(psIndex) {}
107 
109  virtual void setGeometry(double* dvec, int nd, int* ivec, int ni) = 0;
110 
111  friend class GmDiscontinuitySet;
112 
114  int _index;
118 };
119 
120 #endif // _GEMA_DISCONTINUITY_H_
virtual size_t usedIntersectionMemory() const
Returns an estimative of the memory used by the intersection data in bytes.
Definition: gmDiscontinuity.h:98
GmDiscontinuity(const GmDiscontinuitySet *ds, int index, QString id, int groupIndex, const QVector< int > &psIndex)
Private constructor. Discontinuities are only created by the DiscontinuitySet.
Definition: gmDiscontinuity.h:105
virtual void printIntersections(const GmLogCategory &logger, GmLogLevel level) const
Prints the discontinuity-mesh intersection information.
Definition: gmDiscontinuity.h:95
int index() const
Returns this discontinuity index in the father set.
Definition: gmDiscontinuity.h:42
int cellGroupIndex() const
Returns the cell group index associated with this discontinuity, if any. This is the index of the gro...
Definition: gmDiscontinuity.h:51
virtual ~GmDiscontinuity()
Virtuald destructor.
Definition: gmDiscontinuity.h:39
int _index
The discontinuity index in its "father" discontinuity set.
Definition: gmDiscontinuity.h:114
virtual bool findIntersections(const GmLogCategory &logger)
Builds the element intersection list for this discontinuity.
Definition: gmDiscontinuity.h:92
The geometric representation for a single discontinuity from the Discontinuity set....
Definition: gmDiscontinuity.h:35
QString _id
The discontinuity id.
Definition: gmDiscontinuity.h:115
#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
GmLogLevel
Available log levels list.
Definition: gmLog.h:36
Class representing a category with multiple logging levels.
Definition: gmLog.h:58
Base interface for providing discontinuity geometry information for spatial indices.
Definition: gmDiscontinuitySet.h:48
int _groupIndex
The index in the mesh for the associated cell group or -1 if there is none.
Definition: gmDiscontinuity.h:116
virtual int propertyIndex(int propertySet) const
Given a property set number, returns the line of the property set that contains property values for t...
Definition: gmDiscontinuity.h:61
const GmDiscontinuitySet * _ds
Our "father" discontinuity set.
Definition: gmDiscontinuity.h:113
QVector< int > _psIndex
The property set line index for this discontinuity. One entry per associated property set.
Definition: gmDiscontinuity.h:117
QString id() const
Returns the discontinuity id (name)
Definition: gmDiscontinuity.h:45
Declaration of support functions and macros for information logging.