From eb604fdb880698f226204ec89690d45158a16b99 Mon Sep 17 00:00:00 2001
From: Mark Olesen <Mark.Olesen@Germany>
Date: Wed, 23 Jul 2008 15:12:44 +0200
Subject: [PATCH] revert to previous search order -
 constant/polyMesh/blockMeshDict

  - retain failsafe check (constant/blockMeshDict)
---
 .../mesh/generation/blockMesh/blockMeshApp.C  | 122 +++++++++---------
 1 file changed, 64 insertions(+), 58 deletions(-)

diff --git a/applications/utilities/mesh/generation/blockMesh/blockMeshApp.C b/applications/utilities/mesh/generation/blockMesh/blockMeshApp.C
index fbfbaa289cd..de4fc8bce31 100644
--- a/applications/utilities/mesh/generation/blockMesh/blockMeshApp.C
+++ b/applications/utilities/mesh/generation/blockMesh/blockMeshApp.C
@@ -28,12 +28,12 @@ Application
 Description
     A multi-block mesh generator.
 
-    The @a constant/blockMeshDict (or @a constant/\<region\>/blockMeshDict)
-    is used.
+    A @a constant/polyMesh/blockMeshDict
+    (or @a constant/\<region\>/polyMesh/blockMeshDict) is used.
 
-    For backwards compatibility, @a constant/polyMesh/blockMeshDict
-    (or @a constant/\<region\>/polyMesh/blockMeshDict) can also be used
-    if the previous search failed.
+    For people who like to accidentally remove their entire
+    @a constant/polyMesh/, the path @a constant/blockMeshDict
+    (or @a constant/\<region\>/blockMeshDict) will also be checked.
 
 Usage
 
@@ -86,77 +86,83 @@ int main(int argc, char *argv[])
 
     if (args.options().found("region"))
     {
-        regionName = args.options()["region"];
+        regionName  = args.options()["region"];
         polyMeshDir = regionName/polyMesh::meshSubDir;
         constantDir = runTime.constant()/regionName;
 
         Info<< nl << "Generating mesh for region " << regionName << endl;
-
-        // try constant/<region>/blockMeshDict
-        meshDictPtr.reset
-        (
-            new IOobject
-            (
-                "blockMeshDict",
-                runTime.constant(),
-                regionName,
-                runTime,
-                IOobject::MUST_READ,
-                IOobject::NO_WRITE,
-                false
-            )
-        );
     }
     else
     {
-        regionName = polyMesh::defaultRegion;
+        regionName  = polyMesh::defaultRegion;
         polyMeshDir = polyMesh::meshSubDir;
         constantDir = runTime.constant();
+    }
 
-        // try constant/blockMeshDict
-        meshDictPtr.reset
+    // check constant/polyMesh or constant/polyMesh/<region>/
+    meshDictPtr.reset
+    (
+        new IOobject
         (
-            new IOobject
-            (
-                "blockMeshDict",
-                runTime.constant(),
-                runTime,
-                IOobject::MUST_READ,
-                IOobject::NO_WRITE,
-                false
-            )
-        );
-    }
+            "blockMeshDict",
+            runTime.constant(),
+            polyMeshDir,
+            runTime,
+            IOobject::MUST_READ,
+            IOobject::NO_WRITE,
+            false
+        )
+    );
 
-    // not found, fallback to polyMesh directory
     if (!meshDictPtr->headerOk())
     {
-        meshDictPtr.reset
-        (
-            new IOobject
+        // not found, failsafe checks
+        if (args.options().found("region"))
+        {
+            // try constant/<region>/blockMeshDict
+            meshDictPtr.reset
             (
-                "blockMeshDict",
-                runTime.constant(),
-                polyMeshDir,
-                runTime,
-                IOobject::MUST_READ,
-                IOobject::NO_WRITE,
-                false
-            )
-        );
-    }
+                new IOobject
+                (
+                    "blockMeshDict",
+                    runTime.constant(),
+                    regionName,
+                    runTime,
+                    IOobject::MUST_READ,
+                    IOobject::NO_WRITE,
+                    false
+                )
+            );
+        }
+        else
+        {
+            // try constant/blockMeshDict
+            meshDictPtr.reset
+            (
+                new IOobject
+                (
+                    "blockMeshDict",
+                    runTime.constant(),
+                    runTime,
+                    IOobject::MUST_READ,
+                    IOobject::NO_WRITE,
+                    false
+                )
+            );
+        }
 
-    if (!meshDictPtr->headerOk())
-    {
-        FatalErrorIn(args.executable())
-            << "Cannot open mesh description file " << nl
-            << constantDir/"blockMeshDict" << nl
-            << "or "<< nl
-            << constantDir/polyMeshDir/polyMesh::meshSubDir/"blockMeshDict"
-            << nl
-            << exit(FatalError);
+        if (!meshDictPtr->headerOk())
+        {
+            FatalErrorIn(args.executable())
+                << "Cannot open mesh description file\n    "
+                << constantDir/polyMeshDir/"blockMeshDict"
+                << "\n    (or " << constantDir/"blockMeshDict" << ")" << nl
+                << nl
+                << exit(FatalError);
+        }
     }
 
+
     Info<< nl << "Reading mesh description file" << endl;
 
     IOdictionary blockMeshDict(meshDictPtr());
-- 
GitLab