fixed writing out entries in advective bc
[OpenFOAM-1.6-ext.git] / src / OpenFOAM / meshes / pointMesh / pointMesh.H
blob2ab1ecb92fe66bf96b23cdcb1b6c9330e48cd4e6
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4    \\    /   O peration     |
5     \\  /    A nd           | Copyright held by original author
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 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
19     for more details.
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
25 Class
26     Foam::pointMesh
28 Description
29     Mesh representing a set of points created from polyMesh.
31 \*---------------------------------------------------------------------------*/
33 #ifndef pointMesh_H
34 #define pointMesh_H
36 #include "GeoMesh.H"
37 #include "MeshObject.H"
38 #include "polyMesh.H"
39 #include "pointBoundaryMesh.H"
41 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
43 namespace Foam
46 /*---------------------------------------------------------------------------*\
47                            Class pointMesh Declaration
48 \*---------------------------------------------------------------------------*/
50 class pointMesh
52     public MeshObject<polyMesh, pointMesh>,
53     public GeoMesh<polyMesh>
55     // Permanent data
57         //- Boundary mesh
58         pointBoundaryMesh boundary_;
61     // Private Member Functions
63         //- Disallow default bitwise copy construct
64         pointMesh(const pointMesh&);
66         //- Disallow default bitwise assignment
67         void operator=(const pointMesh&);
69         //- Map all fields
70         void mapFields(const mapPolyMesh&) const;
73 public:
75     // Declare name of the class and its debug switch
76     TypeName("pointMesh");
78     typedef pointMesh Mesh;
79     typedef pointBoundaryMesh BoundaryMesh;
82     // Constructors
84         //- Construct from polyMesh
85         explicit pointMesh
86         (
87             const polyMesh& pMesh,
88             bool alwaysConstructGlobalPatch = false
89         );
92     // Member Functions
94         //- Return number of points
95         label size() const
96         {
97             return size(*this);
98         }
100         //- Return number of points
101         static label size(const Mesh& mesh)
102         {
103             return mesh.GeoMesh<polyMesh>::mesh_.nPoints();
104         }
106         //- Return number of points
107         //  Needed because point and elemant fields in FEM share
108         //  templated patch field type(checking of patch size).
109         //  HJ, 16/Oct/2008
110         label nPoints() const
111         {
112             return GeoMesh<polyMesh>::mesh_.nPoints();
113         }
115         //- Return number of points
116         //  Needed because point and elemant fields in FEM share
117         //  templated patch field type(checking of patch size).
118         //  HJ, 16/Oct/2008
119         label nCells() const
120         {
121             return GeoMesh<polyMesh>::mesh_.nCells();
122         }
124         //- Return reference to boundary mesh
125         const pointBoundaryMesh& boundary() const
126         {
127             return boundary_;
128         }
130         //- Return parallel info
131         const globalMeshData& globalData() const
132         {
133             return GeoMesh<polyMesh>::mesh_.globalData();
134         }
136         //- Return database. For now is its polyMesh.
137         const objectRegistry& thisDb() const
138         {
139             return GeoMesh<polyMesh>::mesh_.thisDb();
140         }
143         // Mesh motion
145             //- Move points, returns volumes swept by faces in motion
146             virtual bool movePoints() const;
148             //- Update the mesh corresponding to given map
149             virtual bool updateMesh(const mapPolyMesh& mpm) const;
152     // Member Operators
154         bool operator!=(const pointMesh& pm) const
155         {
156             return &pm != this;
157         }
159         bool operator==(const pointMesh& pm) const
160         {
161             return &pm == this;
162         }
166 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
168 } // End namespace Foam
170 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
172 #endif
174 // ************************************************************************* //