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-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 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
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  //- Reference to the polyPatch
96 
97  //- Original patch name
98  const word& origPatchName() const;
99 
100  //- Original patch ID
101  label origPatchIndex() const;
102 
103  //- Original patch
104  const fvPatch& origPatch() const;
105 
106  //- Return face face-poly-faces
107  const labelList& polyFaces() const;
108 
109  //- Return the face-poly-faces patch field type
110  virtual word polyFacesType() const = 0;
111 
112  //- Return the start label of this patch in the polyMesh face list.
113  // Raises an error unless the patch is empty.
114  virtual label start() const;
115 
116  //- Return the size
117  virtual label size() const;
118 
119  //- Return the face-cells
120  virtual const labelUList& faceCells() const;
121 };
122 
123 
124 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
125 
126 } // End namespace Foam
127 
128 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
129 
130 #endif
131 
132 // ************************************************************************* //
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 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.
const nonConformalPolyPatch & nonConformalPatch() const
Reference to the polyPatch.
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: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