diff --git a/applications/utilities/mesh/generation/blockMesh/blockMeshApp.C b/applications/utilities/mesh/generation/blockMesh/blockMeshApp.C index 9e0fe6d8..b8a22dd2 100644 --- a/applications/utilities/mesh/generation/blockMesh/blockMeshApp.C +++ b/applications/utilities/mesh/generation/blockMesh/blockMeshApp.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -28,8 +28,10 @@ Description A multi-block mesh generator. Uses the block mesh description found in - \a constant/polyMesh/blockMeshDict - (or \a constant/\/polyMesh/blockMeshDict). + \a system/blockMeshDict + or \a system/\/blockMeshDict + or \a constant/polyMesh/blockMeshDict + or \a constant/\/polyMesh/blockMeshDict Usage @@ -81,57 +83,67 @@ int main(int argc, char *argv[]) "specify alternative dictionary for the blockMesh description" ); -# include "addRegionOption.H" -# include "setRootCase.H" -# include "createTime.H" + #include "addRegionOption.H" + #include "setRootCase.H" + #include "createTime.H" const word dictName("blockMeshDict"); word regionName; - fileName polyMeshDir; + word regionPath; + // Check if the region is specified otherwise mesh the default region if (args.optionReadIfPresent("region", regionName, polyMesh::defaultRegion)) { - // constant//polyMesh/blockMeshDict - polyMeshDir = regionName/polyMesh::meshSubDir; - Info<< nl << "Generating mesh for region " << regionName << endl; + regionPath = regionName; } + + // Search for the appropriate blockMesh dictionary.... + + fileName dictPath; + + // Check if the dictionary is specified on the command-line + if (args.optionFound("dict")) + { + dictPath = args["dict"]; + + dictPath = + ( + isDir(dictPath) + ? dictPath/dictName + : dictPath + ); + } + // Check if dictionary is present in the constant directory + else if + ( + exists + ( + runTime.path()/runTime.constant() + /regionPath/polyMesh::meshSubDir/dictName + ) + ) + { + dictPath = + runTime.path()/runTime.constant() + /regionPath/polyMesh::meshSubDir/dictName; + } + // Otherwise assume the dictionary is present in the system directory else { - // constant/polyMesh/blockMeshDict - polyMeshDir = polyMesh::meshSubDir; + dictPath = runTime.path()/runTime.system()/regionPath/dictName; } IOobject meshDictIO ( - dictName, - runTime.constant(), - polyMeshDir, + dictPath, runTime, IOobject::MUST_READ, IOobject::NO_WRITE, false ); - if (args.optionFound("dict")) - { - const fileName dictPath = args["dict"]; - - meshDictIO = IOobject - ( - ( - isDir(dictPath) - ? dictPath/dictName - : dictPath - ), - runTime, - IOobject::MUST_READ, - IOobject::NO_WRITE, - false - ); - } - if (!meshDictIO.headerOk()) { FatalErrorIn(args.executable()) @@ -222,7 +234,7 @@ int main(int argc, char *argv[]) meshDict.lookup("mergePatchPairs") ); -# include "mergePatchPairs.H" + #include "mergePatchPairs.H" } else {