GemaPCR
The GeMA PCR (Partition-Color-Renumber) Plugin
Loading...
Searching...
No Matches
gmpGemaCR.h File Reference

Declaration of the GmpGemaCR class & friends. More...

#include <gmPCR.h>
#include <gmCellMesh.h>
#include "gmpGemaPCRConfig.h"
Include dependency graph for gmpGemaCR.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  GmpColorData
 Helper struct grouping coloring data together. More...
 
class  GmpColoringMethod
 The abstract interface for a coloring method implementation. More...
 
class  GmpNodeRenumberingMethod< IntVector >
 The abstract interface for a node renumbering method implementation. Template parameters is the type for a vector of ints for the sorted to original mapping (either GmSingleVector<int> or GmDualVector<int>). More...
 
class  GmpCellRenumberingMethod< IntVector >
 The abstract interface for a cell renumbering method implementation. Template parameter is the type for a vector of ints for the sorted to original mapping (either GmSingleVector<int> or GmDualVector<int>). More...
 
class  GmpGemaCRBase< Vector, Partition >
 An implementation of the CR (color and renumbering) object interface. The partition interface does nothing. The template parameters are the vector type (should be either GmSingleVector or GmDualVector and probably EQUAL to the type used by the mesh instantiation) and the Partition support. The later should be set to true when this class is being used as the base class for the GmpGemaPCR class. More...
 
struct  GmpGemaCRBase< Vector, Partition >::PartitionFalse
 Empty structure for use when Partition is false. If we where using C++ 20, we could mark this as [[no_unique_address]] preventing it to occupy space. Since we just have one PCR object in the application, we don't bother with it. (We could also solve this by inheriting from the struct - Empty Base Optimization (EBO)) More...
 
struct  GmpGemaCRBase< Vector, Partition >::PartitionTrue
 Additional partition info when Partition is true. Stores the vectors needed for ghost node reordering + vectors with information for ordered node and cell traversal that are needed only when the mesh was partitioned. More...
 

Macros

#define MAKE_SR_FUNCTION(mainFunctionName, classFunction, classValue)
 

Typedefs

typedef GmpGemaCRBase< GmSingleVector, false > GmpGemaCR
 Typedef for the CR implementation with single vector.
 
typedef GmpGemaCRBase< GmDualVector, false > GmpGemaCRD
 Typedef for the CR implementation with dual vector.
 

Detailed Description

Declaration of the GmpGemaCR class & friends.

Author
Carlos Augusto Teixeira Mendes and Caio Souza
Date
February, 2026

Macro Definition Documentation

◆ MAKE_SR_FUNCTION

#define MAKE_SR_FUNCTION ( mainFunctionName,
classFunction,
classValue )
Value:
virtual int mainFunctionName##SR(int id) const \
{ \
if constexpr(Partition) \
{ \
if(!_skipRemote) \
return mainFunctionName(id); \
int localId = mainFunctionName##Impl(id); \
if(localId >= 0 && classFunction(localId) == classValue) \
return -1; \
return localId; \
} \
else \
return mainFunctionName(id); \
}