1 /*---------------------------------------------------------------------------*\
3 \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
5 \\ / A nd | Copyright held by original author
7 -------------------------------------------------------------------------------
9 This file is part of OpenFOAM.
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 the
13 Free Software Foundation; either version 2 of the License, or (at your
14 option) any later version.
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
21 You should have received a copy of the GNU General Public License
22 along with OpenFOAM; if not, write to the Free Software Foundation,
23 Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
26 coupledFaceTetPolyPatchCellDecomp
29 Coupled patch. Used as the base class for processor
30 and cyclic tetPolyPatches
33 coupledFaceTetPolyPatchCellDecomp.C
35 \*---------------------------------------------------------------------------*/
37 #ifndef coupledFaceTetPolyPatchCellDecomp_H
38 #define coupledFaceTetPolyPatchCellDecomp_H
40 #include "lduInterface.H"
41 #include "faceTetPolyPatchCellDecomp.H"
42 #include "coupledPolyPatch.H"
44 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
49 class tetPolyBoundaryMeshCellDecomp;
51 /*---------------------------------------------------------------------------*\
52 Class coupledFaceTetPolyPatchCellDecomp Declaration
53 \*---------------------------------------------------------------------------*/
55 class coupledFaceTetPolyPatchCellDecomp
58 public faceTetPolyPatchCellDecomp
62 const coupledPolyPatch& coupledPolyPatch_;
65 // Private Member Functions
67 //- Disallow default construct as copy
68 coupledFaceTetPolyPatchCellDecomp
70 const coupledFaceTetPolyPatchCellDecomp&
73 //- Disallow default assignment
74 void operator=(const coupledFaceTetPolyPatchCellDecomp&);
79 // Demand driven private data
81 //- The set of labels of the tetPolyPatch points which are
82 // non-global, i.e. present in this coupled
83 mutable labelList* nonGlobalPatchPointsPtr_;
86 mutable labelList* meshPointsPtr_;
89 // Construction of demand-driven data
91 //- Calculate mesh points
92 virtual void calcMeshPoints() const = 0;
97 typedef tetPolyBoundaryMeshCellDecomp BoundaryMesh;
100 //- Runtime type information
101 TypeName(coupledPolyPatch::typeName_());
106 //- Construct from components
107 coupledFaceTetPolyPatchCellDecomp
109 const polyPatch& patch,
110 const tetPolyBoundaryMeshCellDecomp& bm
116 virtual ~coupledFaceTetPolyPatchCellDecomp();
124 virtual label size() const
126 return meshPoints().size();
129 //- Return true because this patch is coupled
130 virtual bool coupled() const
136 // Access functions for demand driven data
138 //- Return the set of labels of the tetPolyPatch points which are
139 // non-global, i.e. present in this coupled
140 virtual const labelList& nonGlobalPatchPoints() const;
142 //- Return mesh points
143 virtual const labelList& meshPoints() const;
145 //- Return pointField of points in patch. Not impelemented.
146 virtual const pointField& localPoints() const;
148 //- Return point unit normals. Not impelemented.
149 virtual const vectorField& pointNormals() const;
153 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
155 } // End namespace Foam
157 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
161 // ************************************************************************* //