From 6021bbd3efcc44b9edb2750d314c4a78aca49402 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Simonis?= Date: Tue, 28 Jan 2025 10:37:50 +0100 Subject: [PATCH] Add configurable partitioning algorithm --- changelog-entries/214.md | 1 + examples/mapping_tester/setup-test.json | 1 + tools/mapping-tester/preparemeshes.py | 8 +++++--- 3 files changed, 7 insertions(+), 3 deletions(-) create mode 100644 changelog-entries/214.md diff --git a/changelog-entries/214.md b/changelog-entries/214.md new file mode 100644 index 00000000..e7c3c601 --- /dev/null +++ b/changelog-entries/214.md @@ -0,0 +1 @@ +- Added configurable partitioning algorithm to mapping tester. diff --git a/examples/mapping_tester/setup-test.json b/examples/mapping_tester/setup-test.json index b61943d1..dd4f538e 100644 --- a/examples/mapping_tester/setup-test.json +++ b/examples/mapping_tester/setup-test.json @@ -1,6 +1,7 @@ { "general": { "function": "0.78 + cos(10*(x+y+z))", + "partitioning": "topology", "ranks": { "A": [ 2 diff --git a/tools/mapping-tester/preparemeshes.py b/tools/mapping-tester/preparemeshes.py index 44d7800f..99e637cc 100755 --- a/tools/mapping-tester/preparemeshes.py +++ b/tools/mapping-tester/preparemeshes.py @@ -64,7 +64,7 @@ def prepareMainMesh(meshdir, name, file, function, force=False): ) -def preparePartMesh(meshdir, name, p, force=False): +def preparePartMesh(meshdir, name, p, force, algorithm): if p == 1: return @@ -91,7 +91,7 @@ def preparePartMesh(meshdir, name, p, force=False): "--mesh", mainMesh, "--algorithm", - "topology", + algorithm, "-o", partMesh, "--directory", @@ -111,6 +111,8 @@ def main(argv): print('Warning: outdir "{}" already exisits.'.format(outdir)) meshdir = os.path.join(outdir, "meshes") function = setup["general"]["function"] + algorithm = setup["general"].get("partitioning", "meshfree") + print(f"Using partitioning algorithm {algorithm}") partitions = set( [int(rank) for pranks in setup["general"]["ranks"].values() for rank in pranks] @@ -128,7 +130,7 @@ def main(argv): prepareMainMesh(meshdir, name, file, function, args.force) for p in partitions: - preparePartMesh(meshdir, name, p, args.force) + preparePartMesh(meshdir, name, p, args.force, algorithm) return 0