MmProcess
The GeMA Mesh Mapping Process Plugin
Loading...
Searching...
No Matches
GmpMmMeshMapping Class Referenceabstract

Class GmpMmMeshMapping. More...

#include <gmpMmMeshMapping.h>

Inheritance diagram for GmpMmMeshMapping:
Collaboration diagram for GmpMmMeshMapping:

Public Member Functions

 GmpMmMeshMapping (GmSimulationData *simData, GmMesh *dstMesh, GmSpatialIndex *spatialIndex, const GmDiscontinuitySet *ds, const QStringList &nodeValues, const QStringList &gaussValues, const QVector< bool > &dstGauss, const QMap< QString, QString > &dstTranslationMap, const GmLogCategory &logger, const QVariantMap &options=QVariantMap())
 Mesh mapping constructor.
 
virtual ~GmpMmMeshMapping ()
 Virtual destructor.
 
bool generate ()
 Process the mesh mapping.
 

Protected Member Functions

void getNoDataValues (QVector< GmVector > &values, int dataSize)
 Get no data values.
 
void getNodeValues (int srcNodeId, QString valueId, QVector< GmVector > &values)
 Get values from another point.
 
void getOutOfMeshValues (const GmVector &crd, QString valueId, QVector< GmVector > &values)
 Get values when point is out of cell mesh.
 

Protected Attributes

GmElementMesh_srcElementMesh
 
GmValueAccessor_srcCrdAcc
 
GmSpatialIndex_spatialIndex
 
const GmDiscontinuitySet_ds
 
int _nstates
 
GmInterpolatorType _interpType
 
QVariant _interpParam
 
QMap< QString, QVector< const GmValueAccessor * > > _srcNodeAccMap
 
QMap< QString, QVector< const GmGaussAccessor * > > _srcGaussAccMap
 

Private Member Functions

void setDstGaussValues ()
 Map values on elements gauss points.
 
void setDstNodesValues ()
 Map values on mesh nodes.
 
virtual bool acceptSrcGaussValues () const =0
 Returns true if the mapping accepts to transfer gauss values in the source meshe.
 
virtual bool checkConsistency ()
 Process the mesh mapping.
 
virtual void insertSrcNodeInterp (QString valueId, QVector< const GmValueAccessor * > nodeAccList)
 
virtual void insertSrcGaussInterp (QString valueId, QVector< const GmGaussAccessor * > gaussAccList)
 
virtual void getValuesFromBI (const GmVector &crd, QString valueId, QVector< GmVector > &values)
 Get values from bucket index.
 

Private Attributes

QStringList _srcNodeValues
 
QStringList _srcGaussValues
 
QStringList _dstNodeValues
 
QStringList _dstGaussValues
 
GmSimulationData_simData
 
GmMesh_srcMesh
 
GmMesh_dstMesh
 
GmElementMesh_dstElementMesh
 
GmValueAccessor_dstCrdAcc
 
QMap< QString, QVector< GmValueAccessor * > > _dstNodeAccMap
 
QMap< QString, QVector< GmGaussAccessor * > > _dstGaussAccMap
 
QMap< QString, QString_dstTranslationMap
 
bool _noDataMode
 
double _noDataValue
 
double _noDataEps
 
double _tol
 
int _state
 
bool _activeOnly
 
bool _info
 
int _nworkers
 
int _ntasks
 
const GmLogCategory_logger
 The logger object used to report errors.
 

Detailed Description

Constructor & Destructor Documentation

◆ GmpMmMeshMapping()

GmpMmMeshMapping::GmpMmMeshMapping ( GmSimulationData * simData,
GmMesh * dstMesh,
GmSpatialIndex * spatialIndex,
const GmDiscontinuitySet * ds,
const QStringList & nodeValues,
const QStringList & gaussValues,
const QVector< bool > & dstGauss,
const QMap< QString, QString > & dstTranslationMap,
const GmLogCategory & logger,
const QVariantMap & options = QVariantMap() )

Mesh mapping constructor.

Parameters
simDataThe simulation data object. Needed for access to the task manager (parallelization)
dstMeshThe destination mesh.
spatialIndexThe source spatial index.
nodeValuesA list with the names of node values of source mesh that will be mapped on destination mesh.
gaussValuesA list with the names of gauss attributes of source mesh that will be mapped on destination mesh.
dstGaussA list of booleans which size is equal to the sum of sizes of nodeValues and gaussValues lists. If boolean is false, it means that the corresponding value will be mapped on the nodes of the destination mesh. If boolean is true, the corresponding value will be mapped on the gauss points of the destination mesh.
dstTranslationMapA map keyed by the src attribute id, containing am optional alternate name for the destination attribute id.
loggerPlugin logger object used to emmit messages.
optionsA set of mapping options. Available options are: 'noDataMode' – Activate the noData mode. Default = false 'noDataValue' – If noDataMode is true, define the noData value. Default = 0.0 'noDataEps' – If noDataMode is true, define the tolerency value on the source mesh frontier. Default = 0.0 'state' – The state number we want to map. Default = -1 (all states will be mapped) 'interpType' – The interpolator type used to compute the data inside a cell. Default = GM_DEFAULT_INTERPOLATOR 'interpParam' – The parameters associated to the interpolator. 'activeOnly' – Should we map data only on the active cells of the destination mesh? No effect if the mapping is done on destination nodes. Default = true 'info' – Print informations about the mesh mapping. Default = false When filling this table, keep in mind that only options different from the default are needed. When an option is not present in the table its default value will be used.

Member Function Documentation

◆ acceptSrcGaussValues()

virtual bool GmpMmMeshMapping::acceptSrcGaussValues ( ) const
privatepure virtual

Returns true if the mapping accepts to transfer gauss values in the source meshe.

Implemented in GmpMmCellMeshMapping, GmpMmElementMeshMapping, and GmpMmNodeMeshMapping.

◆ getValuesFromBI()

void GmpMmMeshMapping::getValuesFromBI ( const GmVector & crd,
QString valueId,
QVector< GmVector > & values )
privatevirtual

Get values from bucket index.

Reimplemented in GmpMmCellMeshMapping, and GmpMmElementMeshMapping.

◆ setDstGaussValues()

void GmpMmMeshMapping::setDstGaussValues ( )
private

Map values on elements gauss points.

Function Object class for parallelizing the work done per mesh cell

The function that will be called for each parallel task

◆ setDstNodesValues()

void GmpMmMeshMapping::setDstNodesValues ( )
private

Map values on mesh nodes.

Function Object class for parallelizing the work done per mesh node

The function that will be called for each parallel task


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