findMeshDefinitionDict.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 faMeshDefinition dictionary...
15 
16 \*---------------------------------------------------------------------------*/
17 
18 const word dictName("faMeshDefinition");
19 
20 autoPtr<IOdictionary> meshDictPtr;
21 
22 {
23  fileName dictPath;
25 
26  if (args.readIfPresent("dict", dictPath))
27  {
28  // Dictionary specified on the command-line ...
29 
30  if (isDir(dictPath))
31  {
32  dictPath /= dictName;
33  }
34  }
35  else if
36  (
37  // Check global location
38  exists
39  (
40  runTime.path()/runTime.caseConstant()
41  / regionDir/faMesh::meshSubDir/dictName
42  )
43  )
44  {
45  // Dictionary present in constant faMesh directory (old-style)
46 
47  dictPath =
48  (
49  runTime.constant()
50  / regionDir/faMesh::meshSubDir/dictName
51  );
52 
53  // Warn that constant/faMesh/faMeshDefinition was used
54  // instead of system/faMeshDefinition
55  #if 0
57  << "Using the old faMeshDefinition location: "
58  << dictPath << nl
59  << " instead of default location: "
60  << runTime.system()/regionDir/dictName << nl
61  << endl;
62  #endif
63  }
64  else
65  {
66  // Assume dictionary is in the system directory
67 
68  dictPath = runTime.system()/regionDir/dictName;
69  }
70 
71  IOobject meshDictIO
72  (
73  dictPath,
74  runTime,
75  IOobject::MUST_READ,
76  IOobject::NO_WRITE,
77  false, // no registerObject
78  true // is globalObject
79  );
80 
81  if (!meshDictIO.typeHeaderOk<IOdictionary>(true))
82  {
84  << meshDictIO.objectPath() << nl
85  << exit(FatalError);
86  }
87 
88  Info<< "Creating faMesh from definition: "
89  << meshDictIO.objectRelPath() << endl;
90 
92 }
93 
94 IOdictionary& meshDefDict = *meshDictPtr;
95 
96 
97 // ************************************************************************* //
#define WarningIn(functionName)
Report a warning using Foam::Warning.
IOdictionary & meshDefDict
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
const word dictName("faMeshDefinition")
engineTime & runTime
Ostream & endl(Ostream &os)
Add newline and flush stream.
Definition: Ostream.H:487
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 & executable() const noexcept
Name of executable without the path.
Definition: argListI.H:44
autoPtr< IOdictionary > meshDictPtr
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
IOobject meshDictIO(dictPath, runTime, IOobject::MUST_READ, IOobject::NO_WRITE, false, true)
const word & regionDir
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)