diff --git a/applications/utilities/mesh/generation/blockMesh/blockMeshApp.C b/applications/utilities/mesh/generation/blockMesh/blockMeshApp.C index fbfbaa289cd0b2996ca45e9b77e83141811e45aa..de4fc8bce313a03dc3973e0640bf5cf309190b4a 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());