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 Foam::ProcessorTopology
29 Determines processor-processor connection. After instantiation contains
30 on all processors the processor-processor connection table.
32 *this[procI] gives the list of neighbouring processors.
37 \*---------------------------------------------------------------------------*/
39 #ifndef ProcessorTopology_H
40 #define ProcessorTopology_H
42 #include "labelList.H"
43 #include "lduSchedule.H"
45 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
50 /*---------------------------------------------------------------------------*\
51 Class ProcessorTopology Declaration
52 \*---------------------------------------------------------------------------*/
54 template<class Patch, class ProcPatch>
55 class ProcessorTopology
64 //- Local map from neighbour proc to patchI. Different per processor!
65 // -1 or patchI for connection to procID
66 labelList procPatchMap_;
68 //- Order in which the patches should be initialised/evaluated
69 // corresponding to the schedule
70 lduSchedule patchSchedule_;
73 // Private Member Functions
75 //- Return all neighbouring processors of this processor. Set
77 labelList procNeighbours(const PtrList<Patch>&);
83 //- Construct from boundaryMesh
84 ProcessorTopology(const PtrList<Patch>& patches);
89 //- from neighbour processor to index in boundaryMesh. Local information
90 // (so not same over all processors)
91 const labelList& procPatchMap() const
96 //- Order in which the patches should be initialised/evaluated
97 // corresponding to the schedule
98 const lduSchedule& patchSchedule() const
100 return patchSchedule_;
105 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
107 } // End namespace Foam
109 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
112 # include "ProcessorTopology.C"
115 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
119 // ************************************************************************* //