oversetPolyPatch.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) 2016-2021 OpenCFD Ltd.
9 -------------------------------------------------------------------------------
10 License
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 "oversetPolyPatch.H"
30 #include "polyBoundaryMesh.H"
31 #include "processorPolyPatch.H"
32 
33 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
34 
35 namespace Foam
36 {
37  defineTypeNameAndDebug(oversetPolyPatch, 0);
38 
39  addToRunTimeSelectionTable(polyPatch, oversetPolyPatch, word);
40  addToRunTimeSelectionTable(polyPatch, oversetPolyPatch, dictionary);
41 }
42 
43 // * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * * * * * //
44 
46 (
47  const word& name,
48  const label size,
49  const label start,
50  const label index,
51  const polyBoundaryMesh& bm,
52  const word& patchType
53 )
54 :
55  polyPatch(name, size, start, index, bm, patchType),
56  masterPatchID_(-1)
57 {
58  // 'overset' is not constraint type so add to group explicitly
59  inGroups().appendUniq(typeName);
60 }
61 
62 
64 (
65  const word& name,
66  const dictionary& dict,
67  const label index,
68  const polyBoundaryMesh& bm,
69  const word& patchType
70 )
71 :
72  polyPatch(name, dict, index, bm, patchType),
73  masterPatchID_(-1)
74 {
75  // 'overset' is not constraint type so add to group explicitly
76  inGroups().appendUniq(typeName);
77 }
78 
79 
81 (
82  const oversetPolyPatch& pp,
83  const polyBoundaryMesh& bm
84 )
85 :
86  polyPatch(pp, bm),
87  masterPatchID_(-1)
88 {}
89 
90 
92 (
93  const oversetPolyPatch& pp,
94  const polyBoundaryMesh& bm,
95  const label index,
96  const label newSize,
97  const label newStart
98 )
99 :
100  polyPatch(pp, bm, index, newSize, newStart),
101  masterPatchID_(-1)
102 {}
103 
104 
106 (
107  const oversetPolyPatch& pp,
108  const polyBoundaryMesh& bm,
109  const label index,
110  const labelUList& mapAddressing,
111  const label newStart
112 )
113 :
114  polyPatch(pp, bm, index, mapAddressing, newStart),
115  masterPatchID_(-1)
116 {}
117 
118 
119 // * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
120 
122 {}
123 
124 
125 // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
126 
128 {
129  if (masterPatchID_ == -1)
130  {
131  // Find lowest numbered overset patch
132  const polyBoundaryMesh& pbm = boundaryMesh();
133 
134  forAll(pbm, patchi)
135  {
136  if (isA<oversetPolyPatch>(pbm[patchi]))
137  {
138  masterPatchID_ = patchi;
139  break;
140  }
141  }
142 
143  if (masterPatchID_ != -1 && masterPatchID_ > 0)
144  {
145  WarningInFunction<< "The master overset patch is not the"
146  << " first patch. Generally the first patch should be an"
147  << " overset patch to guarantee consistent operation." << endl;
148  }
149  }
150 
151  return index() == masterPatchID_;
152 }
153 
154 
155 // ************************************************************************* //
Foam::addToRunTimeSelectionTable
addToRunTimeSelectionTable(decompositionMethod, kahipDecomp, dictionary)
Foam::word
A class for handling words, derived from Foam::string.
Definition: word.H:65
Foam::polyBoundaryMesh
A polyBoundaryMesh is a polyPatch list with additional search methods and registered IO.
Definition: polyBoundaryMesh.H:63
Foam::endl
Ostream & endl(Ostream &os)
Add newline and flush stream.
Definition: Ostream.H:369
Foam::oversetPolyPatch::master
bool master() const
Am I master patch? The master is responsible for doing all.
Definition: oversetPolyPatch.C:127
forAll
#define forAll(list, i)
Loop across all elements in list.
Definition: stdFoam.H:296
Foam::oversetPolyPatch
Patch for indicating interpolated boundaries (in overset meshes).
Definition: oversetPolyPatch.H:52
Foam::polyPatch
A patch is a list of labels that address the faces in the global face list.
Definition: polyPatch.H:68
oversetPolyPatch.H
dict
dictionary dict
Definition: searchingEngine.H:14
Foam::dictionary
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
Definition: dictionary.H:123
processorPolyPatch.H
addToRunTimeSelectionTable.H
Macros for easy insertion into run-time selection tables.
Foam
Namespace for OpenFOAM.
Definition: atmBoundaryLayer.C:33
Foam::UList< label >
polyBoundaryMesh.H
Foam::name
word name(const expressions::valueTypeCode typeCode)
A word representation of a valueTypeCode. Empty for INVALID.
Definition: exprTraits.C:59
Foam::boundaryMesh
Addressing for all faces on surface of mesh. Can either be read from polyMesh or from triSurface....
Definition: boundaryMesh.H:62
Foam::defineTypeNameAndDebug
defineTypeNameAndDebug(combustionModel, 0)
WarningInFunction
#define WarningInFunction
Report a warning using Foam::Warning.
Definition: messageStream.H:328
Foam::oversetPolyPatch::~oversetPolyPatch
virtual ~oversetPolyPatch()
Destructor.
Definition: oversetPolyPatch.C:121
Foam::oversetPolyPatch::oversetPolyPatch
oversetPolyPatch(const word &name, const label size, const label start, const label index, const polyBoundaryMesh &bm, const word &patchType)
Construct from components.
Definition: oversetPolyPatch.C:46