nonConformalFvPatch.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) 2021-2022 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 Class
25  Foam::nonConformalFvPatch
26 
27 Description
28  Non-conformal FV patch. Provides the necessary interface for a FV patch
29  which does not conform to the underlying poly mesh. The non-conformal
30  geometry and topology are held in the fvMesh, and are generated by the
31  fvMeshStitcher. This class just provides access to this data.
32 
33 See also
34  Foam::fvMesh
35  Foam::fvMeshStitcher
36 
37 SourceFiles
38  nonConformalFvPatch.C
39 
40 \*---------------------------------------------------------------------------*/
41 
42 #ifndef nonConformalFvPatch_H
43 #define nonConformalFvPatch_H
44 
45 #include "fvPatch.H"
46 #include "nonConformalPolyPatch.H"
47 
48 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
49 
50 namespace Foam
51 {
52 
53 /*---------------------------------------------------------------------------*\
54  Class nonConformalFvPatch Declaration
55 \*---------------------------------------------------------------------------*/
56 
58 {
59  // Private Data
60 
61  //- Reference to the fvPatch
62  const fvPatch& patch_;
63 
64  //- Reference to the polyPatch
65  const nonConformalPolyPatch& nonConformalPolyPatch_;
66 
67  //- Face-cells
68  mutable labelList faceCells_;
69 
70 
71 public:
72 
73  //- Runtime type information
74  TypeName(nonConformalPolyPatch::typeName_());
75 
76 
77  // Constructors
78 
79  //- Construct from a patch
80  nonConformalFvPatch(const fvPatch& patch);
81 
82 
83  //- Destructor
84  virtual ~nonConformalFvPatch();
85 
86 
87  // Member Functions
88 
89  // Access
90 
91  //- Return the reference to the polyPatch
93 
94  //- Original patch name
95  const word& origPatchName() const;
96 
97  //- Original patch ID
98  label origPatchID() const;
99 
100  //- Original patch
101  const fvPatch& origPatch() const;
102 
103  //- Return face face-poly-faces
104  const labelList& polyFaces() const;
105 
106  //- Return the start label of this patch in the polyMesh face list.
107  // Raises an error unless the patch is empty.
108  virtual label start() const;
109 
110  //- Return the size
111  virtual label size() const;
112 
113  //- Return the face-cells
114  virtual const labelUList& faceCells() const;
115 };
116 
117 
118 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
119 
120 } // End namespace Foam
121 
122 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
123 
124 #endif
125 
126 // ************************************************************************* //
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
Definition: fvPatch.H:64
Non-conformal FV patch. Provides the necessary interface for a FV patch which does not conform to the...
const labelList & polyFaces() const
Return face face-poly-faces.
const fvPatch & origPatch() const
Original patch.
virtual label size() const
Return the size.
label origPatchID() const
Original patch ID.
const word & origPatchName() const
Original patch name.
virtual ~nonConformalFvPatch()
Destructor.
const nonConformalPolyPatch & nonConformalPatch() const
Return the reference to the polyPatch.
TypeName(nonConformalPolyPatch::typeName_())
Runtime type information.
virtual const labelUList & faceCells() const
Return the face-cells.
nonConformalFvPatch(const fvPatch &patch)
Construct from a patch.
virtual label start() const
Return the start label of this patch in the polyMesh face list.
Non-conformal poly patch. This patch is a placeholder and must have no faces. This patch is linked to...
A class for handling words, derived from string.
Definition: word.H:62
Namespace for OpenFOAM.
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