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-------------------------------------------------------------------------------
10License
11 This file is part of OpenFOAM, distributed under GPL-3.0-or-later.
12
13Description
14 Search for the appropriate faMeshDefinition dictionary...
15
16\*---------------------------------------------------------------------------*/
17
18const word dictName("faMeshDefinition");
19
20autoPtr<IOdictionary> meshDictPtr;
21
22{
23 fileName dictPath;
24 const word& regionDir = polyMesh::regionName(regionName);
25
26 if (args.readIfPresent("dict", dictPath))
27 {
28 // Dictionary specified on the command-line ...
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 );
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;
91 meshDictPtr = autoPtr<IOdictionary>::New(meshDictIO);
92}
93
94IOdictionary& meshDefDict = *meshDictPtr;
95
96
97// ************************************************************************* //
bool readIfPresent(const word &optName, T &val) const
Read a value from the named option if present.
Definition: argListI.H:323
const word & executable() const noexcept
Name of executable without the path.
Definition: argListI.H:51
engineTime & runTime
Foam::word regionName(Foam::polyMesh::defaultRegion)
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
Definition: error.H:453
const word dictName("faMeshDefinition")
const word & regionDir
IOdictionary & meshDefDict
IOobject meshDictIO(dictPath, runTime, IOobject::MUST_READ, IOobject::NO_WRITE, false, true)
autoPtr< IOdictionary > meshDictPtr
#define WarningIn(functionName)
Report a warning using Foam::Warning.
messageStream Info
Information stream (stdout output on master, null elsewhere)
Ostream & endl(Ostream &os)
Add newline and flush stream.
Definition: Ostream.H:372
Foam::argList args(argc, argv)