From 1e02a4ae929a54def08fd988a28f8da9c9b02241 Mon Sep 17 00:00:00 2001
From: mattijs <mattijs>
Date: Thu, 11 Aug 2022 11:11:29 +0100
Subject: [PATCH] ENH: faceAgglomerate: read patch-based agglomeration. Fixes
 #2558.

Read from optional subdictionary.
---
 .../faceAgglomerate/faceAgglomerate.C              | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/applications/utilities/preProcessing/faceAgglomerate/faceAgglomerate.C b/applications/utilities/preProcessing/faceAgglomerate/faceAgglomerate.C
index c6e498f4bc2..bf18cdaae8c 100644
--- a/applications/utilities/preProcessing/faceAgglomerate/faceAgglomerate.C
+++ b/applications/utilities/preProcessing/faceAgglomerate/faceAgglomerate.C
@@ -6,7 +6,7 @@
      \\/     M anipulation  |
 -------------------------------------------------------------------------------
     Copyright (C) 2011-2016 OpenFOAM Foundation
-    Copyright (C) 2016-2020 OpenCFD Ltd.
+    Copyright (C) 2016-2020,2022 OpenCFD Ltd.
 -------------------------------------------------------------------------------
 License
     This file is part of OpenFOAM.
@@ -96,7 +96,15 @@ int main(int argc, char *argv[])
 
     label nCoarseFaces = 0;
 
-    for (const entry& dEntry : agglomDict)
+
+    const auto& patchesDict =
+        agglomDict.optionalSubDict
+        (
+            "patchAgglomeration",
+            keyType::LITERAL
+        );
+
+    for (const entry& dEntry : patchesDict)
     {
         labelList patchids = boundary.indices(dEntry.keyword());
 
@@ -112,7 +120,7 @@ int main(int argc, char *argv[])
                 (
                     pp.localFaces(),
                     pp.localPoints(),
-                    agglomDict.subDict(pp.name())
+                    dEntry.dict()
                 );
 
                 agglomObject.agglomerate();
-- 
GitLab