BUG: UListIO: byteSize overflowing on really big faceLists
[OpenFOAM-2.0.x.git] / src / parallel / decompose / decompositionMethods / simpleGeomDecomp / simpleGeomDecomp.H
blob9b32d1c50844a25df92786746a36e7b7c45aaf16
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4    \\    /   O peration     |
5     \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
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::simpleGeomDecomp
27 Description
29 SourceFiles
30     simpleGeomDecomp.C
32 \*---------------------------------------------------------------------------*/
34 #ifndef simpleGeomDecomp_H
35 #define simpleGeomDecomp_H
37 #include "geomDecomp.H"
39 namespace Foam
42 /*---------------------------------------------------------------------------*\
43                            Class simpleGeomDecomp Declaration
44 \*---------------------------------------------------------------------------*/
46 class simpleGeomDecomp
48     public geomDecomp
50     // Private Member Functions
52         void assignToProcessorGroup(labelList&, const label) const;
54         void assignToProcessorGroup
55         (
56             labelList& processorGroup,
57             const label nProcGroup,
58             const labelList& indices,
59             const scalarField& weights,
60             const scalar summedWeights
61         ) const;
63         labelList decomposeOneProc(const pointField& points) const;
65         labelList decomposeOneProc
66         (
67             const pointField& points,
68             const scalarField& weights
69         ) const;
71         //- Disallow default bitwise copy construct and assignment
72         void operator=(const simpleGeomDecomp&);
73         simpleGeomDecomp(const simpleGeomDecomp&);
76 public:
78     //- Runtime type information
79     TypeName("simple");
82     // Constructors
84         //- Construct given the decomposition dictionary
85         simpleGeomDecomp(const dictionary& decompositionDict);
88     //- Destructor
89     virtual ~simpleGeomDecomp()
90     {}
93     // Member Functions
95         virtual bool parallelAware() const
96         {
97             // simpleDecomp sends all points to the master which does
98             // the decomposition.
99             return true;
100         }
102         virtual labelList decompose(const pointField&);
104         virtual labelList decompose(const pointField&, const scalarField&);
106         virtual labelList decompose(const polyMesh&, const pointField& points)
107         {
108             return decompose(points);
109         }
111         virtual labelList decompose
112         (
113             const polyMesh&,
114             const pointField& points,
115             const scalarField& pointWeights
116         )
117         {
118             return decompose(points, pointWeights);
119         }
121         //- Explicitly provided connectivity
122         virtual labelList decompose
123         (
124             const labelListList& globalCellCells,
125             const pointField& cc,
126             const scalarField& cWeights
127         )
128         {
129             return decompose(cc, cWeights);
130         }
134 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
136 } // End namespace Foam
138 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
140 #endif
142 // ************************************************************************* //