-
Notifications
You must be signed in to change notification settings - Fork 97
feat: refactor partitioners #3847
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: develop
Are you sure you want to change the base?
Conversation
45ad26f to
5ce56de
Compare
|
@bd713 why did you change some tests inputs? defaults should be fine, no? |
For external meshes, the default remains unchanged: ParMetis is run once with no additional refinement iteration. Matrix conversion: We also have 1 test using |
Description
This PR introduces a complete refactoring of GEOS's mesh partitioning system with a new architecture that separates partitioning algorithms (
engines) from domain decomposition strategies (partitioners).In practice, a new
DomainPartitionerabstract base class is introduced with two main specialized branches:The mesh partitioners leverage low-level graph partitioner engines that are independent from MPI communication:
A
PartitionerManageris introduced for creating and managing partitioner instances.XML Changes
Partitioning configuration moved from mesh-embedded to dedicated
<Partitioner>section.Before:
After:
Default behavior
If no
partitioneris prescribed, an appropriate default is selected based on mesh type:CartesianPartitionerCellGraphPartitionerwith ParMetisTo skip graph partition optimization, explicitly use
engine="noop".Testing & Rebaseline
Due to XML schema changes a rebaseline is required.
However no numerical impact is expected.
All currently failing integrated tests are due to structural changes such as: