GemaCoreLib
The GeMA Core library
Loading...
Searching...
No Matches
GmEdgeListDiscontinuity Class Reference

Edge based 2D representation for a discontinuity. More...

#include <gmEdgeListDiscontinuity.h>

Inheritance diagram for GmEdgeListDiscontinuity:
Collaboration diagram for GmEdgeListDiscontinuity:

Public Member Functions

virtual ~GmEdgeListDiscontinuity ()
 Destructor.
 
virtual int numElements () const
 A generic interface to return the original discontinuity data number of geometric elements. For 2d meshes it will be either the number of polyline segments or the number of edges. For 3d meshes, the number of triangles or the number of faces.
 
virtual int numPoints () const
 A generic interface to return the original discontinuity data number of points.
 
virtual int numIntersections () const
 A generic interface to return the number of intersections between the mesh and the user given geometry. Is the number of line segments or faces (triangles an/or quads) in the intersection set.
 
virtual bool extendGeometry (GmCellMesh *sMesh, double size, const GmLogCategory &logger)
 
int numEdges () const
 Returns the number of edges.
 
const int * edges () const
 Returns the edges vector, organized as cell1, edge1, cell2, edge2, .... Size equal to numEdges() * 2.
 
virtual void clearGeometry ()
 Clears the original discontinuity geometry information, releasing memory.
 
virtual void printGeometry (const GmLogCategory &logger, GmLogLevel level) const
 Prints the discontinuity geometry information.
 
virtual size_t usedGeometryMemory () const
 Returns an estimative of the memory used by the discontinuity geometry in bytes.
 
- Public Member Functions inherited from GmDiscontinuity
virtual ~GmDiscontinuity ()
 Virtuald destructor.
 
int index () const
 Returns this discontinuity index in the father set.
 
QString id () const
 Returns the discontinuity id (name)
 
int cellGroupIndex () const
 Returns the cell group index associated with this discontinuity, if any. This is the index of the group in the list returned by GmCellMesh::cellGroupIds() Returns -1 for an unspecified cell group.
 
void setCellGroupIndex (int group)
 
virtual int propertyIndex (int propertySet) const
 Given a property set number, returns the line of the property set that contains property values for this discontinuity. The returned value can be used to get a property from a property accessor retrieved from the discontinuity set.
 
virtual bool findIntersections (const GmLogCategory &logger)
 Builds the element intersection list for this discontinuity.
 
virtual void printIntersections (const GmLogCategory &logger, GmLogLevel level) const
 Prints the discontinuity-mesh intersection information.
 
virtual size_t usedIntersectionMemory () const
 Returns an estimative of the memory used by the intersection data in bytes.
 

Private Member Functions

 GmEdgeListDiscontinuity (const GmDiscontinuitySet *ds, int index, QString id, int groupIndex, const QVector< int > &psIndex)
 Constructor.
 
virtual void setGeometry (double *dvec, int nd, int *ivec, int ni)
 Sets the geometry. ivec should be a vector with cell id + edge id pairs (size ni * 2), ni the number of edges. dvec should be NULL.
 
virtual bool loadGeometryFromTable (LuaTable &tab, const GmLogCategory &logger)
 

Private Attributes

int _numEdges
 The number of edges.
 
int _numPoints
 
int * _edgeList
 The (Cell id, edge number) pairs vector. Size == _numEdges * 2.
 

Friends

class GmDiscontinuitySet
 
class GmDiscontinuitySetStateDumpItem
 
QDataStreamoperator<< (QDataStream &stream, const GmDiscontinuitySet &ds)
 
QDataStreamoperator>> (QDataStream &stream, GmDiscontinuitySet &ds)
 

Additional Inherited Members

- Protected Member Functions inherited from GmDiscontinuity
 GmDiscontinuity (const GmDiscontinuitySet *ds, int index, QString id, int groupIndex, const QVector< int > &psIndex)
 Private constructor. Discontinuities are only created by the DiscontinuitySet.
 
- Static Protected Member Functions inherited from GmDiscontinuity
template<class T , class V >
static T * loadIntoVector (LuaTable &tab, V validator, int n, int *realSize, QString discontinuityId, const char *msg, const GmLogCategory &logger)
 Allocate a vector of type T with at most tab.size() * n elements and reads the tab contents into it. Expects that tab is a vector with sub-tables storing n elements. Each loaded element is passed as a variant to the validator function, that should return the converted value to T. The validator should also fill a status variable that says if the value is ok (>=0), ignored (-1) or invalid(-2). Invalid values raise an error and causes loadIntoVector() to log a message and return NULL. Ignored values are simply not added to the result vector (which will be resized accordingly) and are targeted into ignoring cells that don't belong to the current mesh partition. Returns the real size of the vector in the realSize output parameter.
 
- Protected Attributes inherited from GmDiscontinuity
const GmDiscontinuitySet_ds
 Our "father" discontinuity set.
 
int _index
 The discontinuity index in its "father" discontinuity set.
 
QString _id
 The discontinuity id.
 
int _groupIndex
 The index in the mesh for the associated cell group or -1 if there is none.
 
QVector< int > _psIndex
 The property set line index for this discontinuity. One entry per associated property set.
 

Detailed Description

Edge based 2D representation for a discontinuity.

Member Function Documentation

◆ clearGeometry()

void GmEdgeListDiscontinuity::clearGeometry ( )
virtual

Clears the original discontinuity geometry information, releasing memory.

Implements GmDiscontinuity.

◆ extendGeometry()

virtual bool GmEdgeListDiscontinuity::extendGeometry ( GmCellMesh * sMesh,
double size,
const GmLogCategory & logger )
inlinevirtual

\breif A generic interface for extending the original geometry by size units. The 'sMesh' is a empty mesh that supports addition of elements and topological consults.

Implements GmDiscontinuity.

◆ loadGeometryFromTable()

bool GmEdgeListDiscontinuity::loadGeometryFromTable ( LuaTable & tab,
const GmLogCategory & logger )
privatevirtual

Implements GmDiscontinuity.

◆ numElements()

virtual int GmEdgeListDiscontinuity::numElements ( ) const
inlinevirtual

A generic interface to return the original discontinuity data number of geometric elements. For 2d meshes it will be either the number of polyline segments or the number of edges. For 3d meshes, the number of triangles or the number of faces.

Implements GmDiscontinuity.

◆ numIntersections()

virtual int GmEdgeListDiscontinuity::numIntersections ( ) const
inlinevirtual

A generic interface to return the number of intersections between the mesh and the user given geometry. Is the number of line segments or faces (triangles an/or quads) in the intersection set.

Implements GmDiscontinuity.

◆ numPoints()

virtual int GmEdgeListDiscontinuity::numPoints ( ) const
inlinevirtual

A generic interface to return the original discontinuity data number of points.

Implements GmDiscontinuity.

◆ printGeometry()

void GmEdgeListDiscontinuity::printGeometry ( const GmLogCategory & logger,
GmLogLevel level ) const
virtual

Prints the discontinuity geometry information.

Implements GmDiscontinuity.

◆ setGeometry()

virtual void GmEdgeListDiscontinuity::setGeometry ( double * dvec,
int nd,
int * ivec,
int ni )
inlineprivatevirtual

Sets the geometry. ivec should be a vector with cell id + edge id pairs (size ni * 2), ni the number of edges. dvec should be NULL.

Implements GmDiscontinuity.

◆ usedGeometryMemory()

virtual size_t GmEdgeListDiscontinuity::usedGeometryMemory ( ) const
inlinevirtual

Returns an estimative of the memory used by the discontinuity geometry in bytes.

It returns in general the variable memory that depends on the number of lines in a polyline, edges or faces for boundary lists or points & triangles for surfaces, ignoring "constant" sizes.

Implements GmDiscontinuity.


The documentation for this class was generated from the following files: