nonConformalCoupledFvPatch.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::nonConformalCoupledFvPatch
26 
27 Description
28  Non-conformal coupled FV patch. As nonConformalFvPatch, but is also coupled
29  to another non-conformal patch.
30 
31 See also
32  Foam::nonConformalCoupledPolyPatch
33  Foam::nonConformalFvPatch
34 
35 SourceFiles
36  nonConformalCoupledFvPatch.C
37 
38 \*---------------------------------------------------------------------------*/
39 
40 #ifndef nonConformalCoupledFvPatch_H
41 #define nonConformalCoupledFvPatch_H
42 
43 #include "cyclicFvPatch.H"
45 #include "nonConformalFvPatch.H"
46 
47 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
48 
49 namespace Foam
50 {
51 
52 class nonConformalErrorFvPatch;
53 
54 /*---------------------------------------------------------------------------*\
55  Class nonConformalCoupledFvPatch Declaration
56 \*---------------------------------------------------------------------------*/
57 
59 :
60  public nonConformalFvPatch
61 {
62  // Private Data
63 
64  //- Reference to the fvPatch
65  const coupledFvPatch& patch_;
66 
67  //- Reference to the polyPatch
68  const nonConformalCoupledPolyPatch& nonConformalCoupledPolyPatch_;
69 
70 
71 protected:
72 
73  // Protected Member functions
74 
75  //- Make patch weighting factors
76  void makeWeights
77  (
78  scalarField& w,
79  const vectorField& nbrSf,
80  const vectorField& nbrDelta
81  ) const;
82 
83 
84 public:
85 
86  //- Runtime type information
87  TypeName(nonConformalCoupledPolyPatch::typeName_());
88 
89 
90  // Constructors
91 
92  //- Construct from a patch
93  nonConformalCoupledFvPatch(const fvPatch& patch);
94 
95 
96  //- Destructor
98 
99 
100  // Member Functions
101 
102  // Access
103 
104  //- Return the reference to the polyPatch
106  nonConformalCoupledPatch() const;
107 
108  //- Does this side own the patch?
109  bool owner() const;
110 
111  //- Does the coupled side own the patch?
112  bool neighbour() const;
113 
114  //- Return transformation between the coupled patches
115  const transformer& transform() const;
116 
117  //- Error patch name
118  const word& errorPatchName() const;
119 
120  //- Error patch ID
121  label errorPatchID() const;
122 
123  //- Error patch
124  const nonConformalErrorFvPatch& errorPatch() const;
125 };
126 
127 
128 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
129 
130 } // End namespace Foam
131 
132 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
133 
134 #endif
135 
136 // ************************************************************************* //
An abstract base class for patches that couple regions of the computational domain e....
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
Definition: fvPatch.H:64
Non-conformal coupled FV patch. As nonConformalFvPatch, but is also coupled to another non-conformal ...
const transformer & transform() const
Return transformation between the coupled patches.
nonConformalCoupledFvPatch(const fvPatch &patch)
Construct from a patch.
bool owner() const
Does this side own the patch?
const nonConformalCoupledPolyPatch & nonConformalCoupledPatch() const
Return the reference to the polyPatch.
const nonConformalErrorFvPatch & errorPatch() const
Error patch.
label errorPatchID() const
Error patch ID.
const word & errorPatchName() const
Error patch name.
bool neighbour() const
Does the coupled side own the patch?
void makeWeights(scalarField &w, const vectorField &nbrSf, const vectorField &nbrDelta) const
Make patch weighting factors.
TypeName(nonConformalCoupledPolyPatch::typeName_())
Runtime type information.
Non-conformal coupled poly patch. As nonConformalPolyPatch, but this patch is coupled to another non-...
Non-conformal error FV patch. As nonConformalFvPatch. This patch is a non-coupled non-conformal patch...
Non-conformal FV patch. Provides the necessary interface for a FV patch which does not conform to the...
Vector-tensor class used to perform translations, rotations and scaling operations in 3D space.
Definition: transformer.H:84
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