BUG: UListIO: byteSize overflowing on really big faceLists
[OpenFOAM-2.0.x.git] / src / dynamicMesh / slidingInterface / enrichedPatch / enrichedPatchPointMap.C
blob27f2ef4e527326460f70bf2ed0ad631f86267ec3
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 \*---------------------------------------------------------------------------*/
26 #include "enrichedPatch.H"
28 // * * * * * * * * * * * * * Private Member Functions  * * * * * * * * * * * //
30 void Foam::enrichedPatch::completePointMap() const
32     if (pointMapComplete_)
33     {
34         FatalErrorIn("void enrichedPatch::completePointMap() const")
35             << "Point map already completed"
36             << abort(FatalError);
37     }
39     pointMapComplete_ = true;
41     const Map<label>& pmm = pointMergeMap();
43     // Get the mesh points for both patches.  If the point has not been
44     // merged away, add it to the map
46     // Do master patch
47     const labelList& masterMeshPoints = masterPatch_.meshPoints();
48     const pointField& masterLocalPoints = masterPatch_.localPoints();
50     forAll(masterMeshPoints, pointI)
51     {
52         if (!pmm.found(masterMeshPoints[pointI]))
53         {
54             pointMap_.insert
55             (
56                 masterMeshPoints[pointI],
57                 masterLocalPoints[pointI]
58             );
59         }
60     }
62     // Do slave patch
63     const labelList& slaveMeshPoints = slavePatch_.meshPoints();
64     const pointField& slaveLocalPoints = slavePatch_.localPoints();
66     forAll(slaveMeshPoints, pointI)
67     {
68         if (!pmm.found(slaveMeshPoints[pointI]))
69         {
70             pointMap_.insert
71             (
72                 slaveMeshPoints[pointI],
73                 slaveLocalPoints[pointI]
74             );
75         }
76     }
80 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
83 Foam::Map<Foam::point>& Foam::enrichedPatch::pointMap()
85     if (!pointMapComplete_)
86     {
87         completePointMap();
88     }
90     return pointMap_;
94 const Foam::Map<Foam::point>& Foam::enrichedPatch::pointMap() const
96     if (!pointMapComplete_)
97     {
98         completePointMap();
99     }
101     return pointMap_;
105 // ************************************************************************* //