findBlockMeshDict.H
Go to the documentation of this file.
1 /*---------------------------------------------------------------------------*\
2  ========= |
3  \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4  \\ / O peration |
5  \\ / A nd | www.openfoam.com
6  \\/ M anipulation |
7 -------------------------------------------------------------------------------
8  Copyright (C) 2021-2022 OpenCFD Ltd.
9 -------------------------------------------------------------------------------
10 License
11  This file is part of OpenFOAM, distributed under GPL-3.0-or-later.
12 
13 Description
14  Search for the appropriate blockMeshDict dictionary...
15 
16 \*---------------------------------------------------------------------------*/
17 
18 // Search for the appropriate blockMesh dictionary....
19 const word dictName("blockMeshDict");
20 
21 autoPtr<IOdictionary> meshDictPtr;
22 
23 {
24  fileName dictPath;
26 
27  if (args.readIfPresent("dict", dictPath))
28  {
29  // Dictionary specified on the command-line ...
30 
31  if (isDir(dictPath))
32  {
33  dictPath /= dictName;
34  }
35  }
36  else if
37  (
38  exists
39  (
40  runTime.path()/runTime.constant()
41  / regionDir/polyMesh::meshSubDir/dictName
42  )
43  )
44  {
45  // Dictionary present in constant polyMesh directory (old-style)
46 
47  dictPath =
48  (
49  runTime.constant()
50  / regionDir/polyMesh::meshSubDir/dictName
51  );
52 
53 
54  // Warn that constant/polyMesh/blockMeshDict was used
55  // instead of system/blockMeshDict
57  << "Using the old blockMeshDict location: "
58  << dictPath << nl
59  << " instead of the default location: "
60  << runTime.system()/regionDir/dictName << nl
61  << endl;
62  }
63  else
64  {
65  // Assume dictionary is to be found in the system directory
66 
67  dictPath = runTime.system()/regionDir/dictName;
68  }
69 
70  IOobject meshDictIO
71  (
72  dictPath,
73  runTime,
74  IOobject::MUST_READ,
75  IOobject::NO_WRITE,
76  false
77  );
78 
79  if (!meshDictIO.typeHeaderOk<IOdictionary>(true))
80  {
82  << meshDictIO.objectPath() << nl
83  << exit(FatalError);
84  }
85 
86  Info<< "Creating block mesh from "
87  << meshDictIO.objectRelPath() << endl;
88 
90 }
91 
92 const IOdictionary& meshDict = *meshDictPtr;
93 
94 
95 // ************************************************************************* //
const IOdictionary & meshDict
#define WarningIn(functionName)
Report a warning using Foam::Warning.
errorManipArg< error, int > exit(error &err, const int errNo=1)
Definition: errorManip.H:125
error FatalError
Error stream (stdout output on all processes), with additional &#39;FOAM FATAL ERROR&#39; header text and sta...
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
Definition: error.H:578
constexpr char nl
The newline &#39;\n&#39; character (0x0a)
Definition: Ostream.H:49
engineTime & runTime
Ostream & endl(Ostream &os)
Add newline and flush stream.
Definition: Ostream.H:487
autoPtr< IOdictionary > meshDictPtr
tmp< DimensionedField< TypeR, GeoMesh > > New(const tmp< DimensionedField< TypeR, GeoMesh >> &tdf1, const word &name, const dimensionSet &dimensions, const bool initCopy=false)
Global function forwards to reuseTmpDimensionedField::New.
bool isDir(const fileName &name, const bool followLink=true)
Does the name exist as a DIRECTORY in the file system?
Definition: POSIX.C:813
Foam::word regionName(Foam::polyMesh::defaultRegion)
const word & regionDir
const word & executable() const noexcept
Name of executable without the path.
Definition: argListI.H:44
const word dictName("blockMeshDict")
bool exists(const fileName &name, const bool checkGzip=true, const bool followLink=true)
Does the name exist (as DIRECTORY or FILE) in the file system?
Definition: POSIX.C:788
messageStream Info
Information stream (stdout output on master, null elsewhere)
bool readIfPresent(const word &optName, T &val) const
Read a value from the named option if present.
Definition: argListI.H:316
Foam::argList args(argc, argv)
IOobject meshDictIO(dictPath, runTime, IOobject::MUST_READ, IOobject::NO_WRITE, false)