mappedPatchBaseI.H
Go to the documentation of this file.
1 /*---------------------------------------------------------------------------*\
2  ========= |
3  \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4  \\ / O peration | Website: https://openfoam.org
5  \\ / A nd | Copyright (C) 2011-2023 OpenFOAM Foundation
6  \\/ M anipulation |
7 -------------------------------------------------------------------------------
8 License
9  This file is part of OpenFOAM.
10 
11  OpenFOAM is free software: you can redistribute it and/or modify it
12  under the terms of the GNU General Public License as published by
13  the Free Software Foundation, either version 3 of the License, or
14  (at your option) any later version.
15 
16  OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
17  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
18  FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
19  for more details.
20 
21  You should have received a copy of the GNU General Public License
22  along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
23 
24 \*---------------------------------------------------------------------------*/
25 
26 #include "mappedPatchBase.H"
27 
28 // * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * //
29 
31 {
32  return isA<mappedPatchBase>(nbrPolyPatch());
33 }
34 
35 
36 inline const Foam::mappedPatchBase&
38 {
39  return refCast<const mappedPatchBase>(nbrPolyPatch());
40 }
41 
42 
44 {
45  return
46  nbrPatchIsMapped()
47  && nbrMappedPatch().nbrRegionName_ == patch_.boundaryMesh().mesh().name()
48  && nbrMappedPatch().nbrPatchName_ == patch_.name()
49  && !usingTree_
50  && !nbrMappedPatch().usingTree_
51  && nbrMappedPatch().patchToPatchPtr_->type() == patchToPatchPtr_->type();
52 }
53 
54 
55 // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
56 
58 {
59  if (coupleGroup_.valid() && nbrRegionName_.empty())
60  {
61  // Try and use the couple group to find nbrPatch and nbrRegion. Note:
62  // This call sets nbrRegionName_.
63  const label nbrPatchID =
64  coupleGroup_.findOtherPatchID(patch_, nbrRegionName_);
65 
66  nbrPatchName_ = nbrMesh().boundaryMesh()[nbrPatchID].name();
67  }
68 
69  return nbrRegionName_;
70 }
71 
72 
74 {
75  if (nbrPatchName_.empty())
76  {
77  nbrRegionName();
78  }
79 
80  return nbrPatchName_;
81 }
82 
83 
85 {
86  return nbrRegionName() == patch_.boundaryMesh().mesh().name();
87 }
88 
89 
91 {
92  return sameRegion() && nbrPatchName() == patch_.name();
93 }
94 
95 
97 {
98  return
99  samePatch()
100  && (
101  !transform_.transformComplete()
102  || !transform_.transform().transformsPosition()
103  );
104 }
105 
106 
107 // ************************************************************************* //
Engine which provides mapping between two patches.
bool symmetric() const
Determine whether the neighbouring patch maps from this patch in.
const polyPatch & nbrPolyPatch() const
Get the patch to map from.
bool samePatch() const
Is the neighbour patch the same as this patch?
const word & nbrPatchName() const
Name of the patch to map from.
const word & nbrRegionName() const
Name of the region to map from.
bool sameUntransformedPatch() const
Is the neighbour patch the same as this patch with no transform?
bool sameRegion() const
Is the neighbour region the same as for this patch?
const mappedPatchBase & nbrMappedPatch() const
Get the mapped neighbouring patch.
bool nbrPatchIsMapped() const
Return whether or not the neighbour patch is of mapped type.
A class for handling words, derived from string.
Definition: word.H:62
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
Definition: label.H:59