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::interactionLists
35 \*---------------------------------------------------------------------------*/
37 #ifndef interactionLists_H
38 #define interactionLists_H
42 #include "directInteractionList.H"
43 #include "referredCell.H"
44 #include "referredCellList.H"
45 #include "sendingReferralList.H"
46 #include "receivingReferralList.H"
49 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
54 /*---------------------------------------------------------------------------*\
55 Class interactionLists Declaration
56 \*---------------------------------------------------------------------------*/
58 class interactionLists
62 const polyMesh& mesh_;
66 directInteractionList dil_;
68 referredCellList ril_;
70 List<sendingReferralList> cellSendingReferralLists_;
72 List<receivingReferralList> cellReceivingReferralLists_;
75 // Private Member Functions
77 //- Build referralLists which define how to send information
78 // to referredCells to source cells
79 void buildCellReferralLists();
81 //- Disallow default bitwise copy construct
82 interactionLists(const interactionLists&);
84 //- Disallow default bitwise assignment
85 void operator=(const interactionLists&);
90 // Static data members
92 //- Tolerance for checking that faces on a patch segment
93 static scalar transTol;
98 //- Construct and create all information from the mesh
101 const polyMesh& mesh,
103 bool pointPointListBuild = false
106 //- Construct from file
107 interactionLists(const polyMesh& mesh);
117 bool testPointPointDistance
123 bool testPointFaceDistance
129 bool testPointFaceDistance
132 const referredCell& refCell
135 bool testPointFaceDistance
137 const vectorList& pointsToTest,
141 bool testPointFaceDistance
147 bool testPointFaceDistance
150 const labelList& faceToTest,
151 const vectorList& points,
156 bool testEdgeEdgeDistance
162 bool testEdgeEdgeDistance
169 const labelList realCellsInRangeOfSegment
171 const labelList& segmentFaces,
172 const labelList& segmentEdges,
173 const labelList& segmentPoints
176 const labelList referredCellsInRangeOfSegment
178 const List<referredCell>& referredInteractionList,
179 const labelList& segmentFaces,
180 const labelList& segmentEdges,
181 const labelList& segmentPoints
187 inline const polyMesh& mesh() const;
189 inline const directInteractionList& dil() const;
191 inline const referredCellList& ril() const;
192 inline referredCellList& ril();
194 inline const List<sendingReferralList>&
195 cellSendingReferralLists() const;
197 inline const List<receivingReferralList>&
198 cellReceivingReferralLists() const;
200 inline label nInteractingProcs() const;
204 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
206 } // End namespace Foam
208 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
210 #include "interactionListsI.H"
212 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
216 // ************************************************************************* //