Initial commit for version 2.0.x patch release
[OpenFOAM-2.0.x.git] / src / OpenFOAM / meshes / pointMesh / pointPatches / constraint / processorCyclic / processorCyclicPointPatch.H
blobd29805e701ababba0fe65d9ee2056ab796683da0
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4    \\    /   O peration     |
5     \\  /    A nd           | Copyright (C) 2010-2011 OpenCFD Ltd.
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
13     the Free Software Foundation, either version 3 of the License, or
14     (at your 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, see <http://www.gnu.org/licenses/>.
24 Class
25     Foam::processorCyclicPointPatch
27 Description
28     Processor patch boundary needs to be such that the ordering of
29     points in the patch is the same on both sides.
31     Looking at the creation of the faces on both sides of the processor
32     patch they need to be identical on both sides with the normals pointing
33     in opposite directions.  This is achieved by calling the reverseFace
34     function in the decomposition.  It is therefore possible to re-create
35     the ordering of patch points on the slave side by reversing all the
36     patch faces of the owner.
38 SourceFiles
39     processorCyclicPointPatch.C
41 \*---------------------------------------------------------------------------*/
43 #ifndef processorCyclicPointPatch_H
44 #define processorCyclicPointPatch_H
46 #include "processorPointPatch.H"
47 #include "processorCyclicPolyPatch.H"
49 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
51 namespace Foam
54 /*---------------------------------------------------------------------------*\
55                       Class processorCyclicPointPatch Declaration
56 \*---------------------------------------------------------------------------*/
58 class processorCyclicPointPatch
60     public processorPointPatch
62     // Private data
64         const processorCyclicPolyPatch& procCycPolyPatch_;
66         //- Disallow default construct as copy
67         processorCyclicPointPatch(const processorCyclicPointPatch&);
69         //- Disallow default assignment
70         void operator=(const processorCyclicPointPatch&);
72 public:
74     //- Runtime type information
75     TypeName(processorCyclicPolyPatch::typeName_());
78     // Constructors
80         //- Construct from components
81         processorCyclicPointPatch
82         (
83             const polyPatch& patch,
84             const pointBoundaryMesh& bm
85         );
88     // Destructor
90         virtual ~processorCyclicPointPatch();
93     // Member functions
96         //- Return message tag to use for communication
97         virtual int tag() const
98         {
99             return procCycPolyPatch_.tag();
100         }
102         //- Return the underlying processorCyclicPolyPatch
103         const processorCyclicPolyPatch& procCyclicPolyPatch() const
104         {
105             return procCycPolyPatch_;
106         }
110 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
112 } // End namespace Foam
114 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
116 #endif
118 // ************************************************************************* //