Skip to content

Commit c0a0585

Browse files
author
DENEL Bertrand
committed
numRefinement
1 parent d4144ba commit c0a0585

File tree

5 files changed

+32
-1
lines changed

5 files changed

+32
-1
lines changed

src/coreComponents/mesh/mpiCommunications/GraphPartitionEngine.hpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,13 @@ class GraphPartitionEngine : public dataRepository::Group
110110
*/
111111
virtual int getNumRefinements() const = 0;
112112

113+
/**
114+
* @brief Set the number of refinement iterations
115+
*
116+
* @param numRefinements Number of refinement iterations
117+
*/
118+
virtual void setNumRefinements( int numRefinements ) = 0;
119+
113120
/**
114121
* @brief Accessor for the singleton Catalog object
115122
*

src/coreComponents/mesh/mpiCommunications/MeshPartitioner.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -229,6 +229,11 @@ void MeshPartitioner::postInputInitialization()
229229

230230
GEOS_ERROR_IF( engine == nullptr,
231231
"Failed to create graph partition engine for " << getCatalogName() );
232+
233+
if( m_numRefinements > 0 )
234+
{
235+
engine->setNumRefinements( m_numRefinements );
236+
}
232237
}
233238

234239
GraphPartitionEngine * MeshPartitioner::createDefaultEngine()

src/coreComponents/mesh/mpiCommunications/NoOpEngine.hpp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,15 @@ class NoOpEngine : public GraphPartitionEngine
101101
* @brief Get the number of refinement iterations
102102
*/
103103
int getNumRefinements() const override { return 0; }
104+
105+
/**
106+
* @brief Set the number of refinement iterations (no-op)
107+
* @param numRefinements Number of refinement iterations (ignored)
108+
*/
109+
void setNumRefinements( int const numRefinements ) override
110+
{
111+
// NoOp engine ignores refinements
112+
}
104113
};
105114

106115
} // namespace geos

src/coreComponents/mesh/mpiCommunications/PTScotchEngine.hpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,16 @@ class PTScotchEngine : public GraphPartitionEngine
103103
*/
104104
int getNumRefinements() const override { return 0; }
105105

106+
/**
107+
* @brief Set the number of refinement iterations
108+
* @param numRefinements Number of refinement iterations (ignored by PT-Scotch)
109+
*/
110+
void setNumRefinements( int const numRefinements ) override
111+
{
112+
// PT-Scotch doesn't support refinements like ParMETIS
113+
// Silently ignore this parameter
114+
}
115+
106116
/**
107117
* @brief Set the partitioning strategy
108118
* @param strategy Strategy string (e.g., "default", "quality", "speed")

src/coreComponents/mesh/mpiCommunications/ParMetisEngine.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ class ParMetisEngine : public GraphPartitionEngine
128128
* @brief Set the number of refinement iterations
129129
* @param numRefinements Number of refinement iterations
130130
*/
131-
void setNumRefinements( int const numRefinements )
131+
void setNumRefinements( int const numRefinements ) override
132132
{
133133
GEOS_ERROR_IF( numRefinements < 0, "Number of refinements must be non-negative" );
134134
m_numRefinements = numRefinements;

0 commit comments

Comments
 (0)