fixed writing out entries in advective bc
[OpenFOAM-1.6-ext.git] / src / tetDecompositionFiniteElement / tetPolyMeshCellDecomp / tetPolyPatches / basic / coupledFace / coupledFaceTetPolyPatchCellDecomp.H
blob80811288a2561001f71719e89ade3fab83f8c109
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4    \\    /   O peration     |
5     \\  /    A nd           | Copyright held by original author
6      \\/     M anipulation  |
7 -------------------------------------------------------------------------------
8 License
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
19     for more details.
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
25 Class
26     coupledFaceTetPolyPatchCellDecomp
28 Description
29     Coupled patch.  Used as the base class for processor
30     and cyclic tetPolyPatches
32 SourceFiles
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 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
46 namespace Foam
49 class tetPolyBoundaryMeshCellDecomp;
51 /*---------------------------------------------------------------------------*\
52                Class coupledFaceTetPolyPatchCellDecomp Declaration
53 \*---------------------------------------------------------------------------*/
55 class coupledFaceTetPolyPatchCellDecomp
57     public lduInterface,
58     public faceTetPolyPatchCellDecomp
60     // Private data
62         const coupledPolyPatch& coupledPolyPatch_;
65     // Private Member Functions
67         //- Disallow default construct as copy
68         coupledFaceTetPolyPatchCellDecomp
69         (
70             const coupledFaceTetPolyPatchCellDecomp&
71         );
73         //- Disallow default assignment
74         void operator=(const coupledFaceTetPolyPatchCellDecomp&);
77 protected:
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_;
85         //- Mesh points
86         mutable labelList* meshPointsPtr_;
89         // Construction of demand-driven data
91             //- Calculate mesh points
92             virtual void calcMeshPoints() const = 0;
95 public:
97     typedef tetPolyBoundaryMeshCellDecomp BoundaryMesh;
100     //- Runtime type information
101     TypeName(coupledPolyPatch::typeName_());
104     // Constructors
106         //- Construct from components
107         coupledFaceTetPolyPatchCellDecomp
108         (
109             const polyPatch& patch,
110             const tetPolyBoundaryMeshCellDecomp& bm
111         );
114     // Destructor
116         virtual ~coupledFaceTetPolyPatchCellDecomp();
119     // Member Functions
121         // Access
123             //- Return size
124             virtual label size() const
125             {
126                 return meshPoints().size();
127             }
129             //- Return true because this patch is coupled
130             virtual bool coupled() const
131             {
132                 return true;
133             }
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 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
159 #endif
161 // ************************************************************************* //