Initial commit for version 2.0.x patch release
[OpenFOAM-2.0.x.git] / src / parallel / decompose / decompositionMethods / geomDecomp / geomDecomp.H
blob32cbb6a0e3fd5c3d5ca7212f47383b79de59106c
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4    \\    /   O peration     |
5     \\  /    A nd           | Copyright (C) 2004-2010 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::geomDecomp
27 Description
28     Geometrical domain decomposition
30 SourceFiles
31     geomDecomp.C
33 \*---------------------------------------------------------------------------*/
35 #ifndef geomDecomp_H
36 #define geomDecomp_H
38 #include "decompositionMethod.H"
39 #include "Vector.H"
41 namespace Foam
44 /*---------------------------------------------------------------------------*\
45                            Class geomDecomp Declaration
46 \*---------------------------------------------------------------------------*/
48 class geomDecomp
50     public decompositionMethod
53 protected:
55     // Protected data
57         const dictionary& geomDecomDict_;
59         Vector<label> n_;
60         scalar delta_;
61         tensor rotDelta_;
63 public:
65     // Constructors
67         //- Construct given the decomposition dictionary
68         //  and the derived type name
69         geomDecomp
70         (
71             const dictionary& decompositionDict,
72             const word& derivedType
73         );
75         //- Return for every coordinate the wanted processor number.
76         virtual labelList decompose
77         (
78             const pointField& points,
79             const scalarField& pointWeights
80         ) = 0;
82         //- Like decompose but with uniform weights on the points
83         virtual labelList decompose(const pointField&) = 0;
88 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
90 } // End namespace Foam
92 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
94 #endif
96 // ************************************************************************* //