Initial commit for version 2.0.x patch release
[OpenFOAM-2.0.x.git] / src / OpenFOAM / meshes / primitiveMesh / PrimitivePatch / PrimitivePatchClear.C
blob0aa1f910fe6799af307428be0dcb804805ead573
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 \*---------------------------------------------------------------------------*/
26 #include "PrimitivePatch.H"
27 #include "demandDrivenData.H"
30 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
32 template
34     class Face,
35     template<class> class FaceList,
36     class PointField,
37     class PointType
39 void
40 Foam::PrimitivePatch<Face, FaceList, PointField, PointType>::
41 clearGeom()
43     if (debug)
44     {
45         Info<< "PrimitivePatch<Face, FaceList, PointField, PointType>::"
46             << "clearGeom() : clearing geometric data"
47             << endl;
48     }
50     deleteDemandDrivenData(localPointsPtr_);
51     deleteDemandDrivenData(faceCentresPtr_);
52     deleteDemandDrivenData(faceNormalsPtr_);
53     deleteDemandDrivenData(pointNormalsPtr_);
57 template
59     class Face,
60     template<class> class FaceList,
61     class PointField,
62     class PointType
64 void
65 Foam::PrimitivePatch<Face, FaceList, PointField, PointType>::
66 clearTopology()
68     if (debug)
69     {
70         Info<< "PrimitivePatch<Face, FaceList, PointField, PointType>::"
71             << "clearTopology() : clearing patch addressing"
72             << endl;
73     }
75     // group created and destroyed together
76     if (edgesPtr_ && faceFacesPtr_ && edgeFacesPtr_ && faceEdgesPtr_)
77     {
78         delete edgesPtr_;
79         edgesPtr_ = NULL;
81         delete faceFacesPtr_;
82         faceFacesPtr_ = NULL;
84         delete edgeFacesPtr_;
85         edgeFacesPtr_ = NULL;
87         delete faceEdgesPtr_;
88         faceEdgesPtr_ = NULL;
89     }
91     deleteDemandDrivenData(boundaryPointsPtr_);
92     deleteDemandDrivenData(pointEdgesPtr_);
93     deleteDemandDrivenData(pointFacesPtr_);
94     deleteDemandDrivenData(edgeLoopsPtr_);
98 template
100     class Face,
101     template<class> class FaceList,
102     class PointField,
103     class PointType
105 void
106 Foam::PrimitivePatch<Face, FaceList, PointField, PointType>::
107 clearPatchMeshAddr()
109     if (debug)
110     {
111         Info<< "PrimitivePatch<Face, FaceList, PointField, PointType>::"
112             << "clearPatchMeshAddr() : "
113             << "clearing patch-mesh addressing"
114             << endl;
115     }
117     deleteDemandDrivenData(meshPointsPtr_);
118     deleteDemandDrivenData(meshPointMapPtr_);
119     deleteDemandDrivenData(localFacesPtr_);
123 template
125     class Face,
126     template<class> class FaceList,
127     class PointField,
128     class PointType
130 void
131 Foam::PrimitivePatch<Face, FaceList, PointField, PointType>::
132 clearOut()
134     clearGeom();
135     clearTopology();
136     clearPatchMeshAddr();
140 // ************************************************************************* //