Loading...
Searching...
No Matches
indirectCS.C
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) 2018-2022 OpenCFD Ltd.
9-------------------------------------------------------------------------------
10License
11 This file is part of OpenFOAM.
12
13 OpenFOAM is free software: you can redistribute it and/or modify it
14 under the terms of the GNU General Public License as published by
15 the Free Software Foundation, either version 3 of the License, or
16 (at your option) any later version.
17
18 OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
19 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
20 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
21 for more details.
22
23 You should have received a copy of the GNU General Public License
24 along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
25
26\*---------------------------------------------------------------------------*/
27
28#include "indirectCS.H"
29#include "coordinateSystems.H"
32// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
33
34namespace Foam
35{
36namespace coordSystem
37{
44// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
45
47:
49 backend_(csys.backend_)
50{}
51
52
56 backend_(std::move(csys.backend_))
57{}
58
59
60// Use lookup() instead of cfind() to trigger FatalError on any problems
62(
63 const objectRegistry& obr,
64 const word& name
66:
68 backend_(&(coordinateSystems::New(obr).lookup(name)))
69{}
70
71
73(
74 const objectRegistry& obr,
75 const dictionary& dict,
76 IOobjectOption::readOption /* (unused) */
77)
79 indirect(obr, dict.get<word>("name"))
80{}
81
82
83// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
86{
87 writeEntry(coordinateSystem::typeName, os);
88}
89
92{
93 writeEntry(coordinateSystem::typeName, os);
94}
95
96
98(
99 const word& keyword,
100 Ostream& os
101) const
102{
103 if (!good())
104 {
105 return;
106 }
107
108 const bool subDict = !keyword.empty();
109
110 if (subDict)
111 {
112 os.beginBlock(keyword);
113
114 os.writeEntry("type", type());
115 os.writeEntry("name", name());
116
117 os.endBlock();
118 }
119}
120
121
122// ************************************************************************* //
Macros for easy insertion into run-time selection tables.
#define addToRunTimeSelectionTable(baseType, thisType, argNames)
Add to construction table with typeName as the key.
readOption
Enumeration defining read preferences.
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
Definition Ostream.H:59
A coordinate system forward to a global coordinate system that is normally provided by the constant/c...
Definition indirectCS.H:74
virtual const word & name() const
Return the name.
Definition indirectCS.H:249
indirect()=delete
Default construct is disallowed.
virtual void write(Ostream &os) const
Write.
Definition indirectCS.C:78
virtual bool good() const
Is coordinate system good/valid?
Definition indirectCS.H:204
virtual void writeEntry(Ostream &os) const
Write 'coordinateSystem' dictionary entry.
Definition indirectCS.C:84
Base class for coordinate system specification, the default coordinate system type is cartesian .
coordinateSystem(std::nullptr_t)
Construct null, without allocating a coordinateRotation specification.
A centralized collection of named coordinate systems.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Definition dictionary.H:133
Registry of regIOobjects.
Lookup type of boundary radiation properties.
Definition lookup.H:60
A class for handling words, derived from Foam::string.
Definition word.H:66
#define defineTypeNameAndDebug(Type, DebugSwitch)
Define the typeName and debug information.
Definition className.H:142
OBJstream os(runTime.globalPath()/outputName)
auto & name
Namespace for coordinate systems.
Definition cartesianCS.C:30
Namespace for OpenFOAM.
fileName::Type type(const fileName &name, const bool followLink=true)
Return the file type: DIRECTORY or FILE, normally following symbolic links.
Definition POSIX.C:801
word name(const expressions::valueTypeCode typeCode)
A word representation of a valueTypeCode. Empty for expressions::valueTypeCode::INVALID.
Definition exprTraits.C:127
dictionary dict