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-2026 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& nonConformalPoly_;
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
81 
82 
83  //- Destructor
84  virtual ~nonConformalFvPatch();
85 
86 
87  // Member Functions
88 
89  // Access
90 
91  //- Reference to the fvPatch
92  const fvPatch& patch() const;
93 
94  //- Original patch name
95  const word& origPatchName() const;
96 
97  //- Original patch ID
98  label origPatchIndex() 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 face-poly-faces patch field type
107  virtual word polyFacesType() const = 0;
108 
109  //- Return the start label of this patch in the polyMesh face list.
110  // Raises an error unless the patch is empty.
111  virtual label start() const;
112 
113  //- Return the size
114  virtual label size() const;
115 
116  //- Return the face-cells
117  virtual const labelUList& faceCells() const;
118 };
119 
120 
121 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
122 
123 } // End namespace Foam
124 
125 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
126 
127 #endif
128 
129 // ************************************************************************* //
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
Definition: fvPatch.H:58
Non-conformal FV patch. Provides the necessary interface for a FV patch which does not conform to the...
const fvPatch & patch() const
Reference to the fvPatch.
const labelList & polyFaces() const
Return face face-poly-faces.
const fvPatch & origPatch() const
Original patch.
label origPatchIndex() const
Original patch ID.
virtual label size() const
Return the size.
const word & origPatchName() const
Original patch name.
virtual ~nonConformalFvPatch()
Destructor.
virtual word polyFacesType() const =0
Return the face-poly-faces patch field type.
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:63
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