initial commit for version 1.6.x patch release
[OpenFOAM-1.6.x.git] / src / OpenFOAM / meshes / pointMesh / pointBoundaryMesh / pointBoundaryMesh.C
blob11be3c3b86282655666d4a52e7dac4aacd7c1490
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4    \\    /   O peration     |
5     \\  /    A nd           | Copyright (C) 1991-2009 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 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 \*---------------------------------------------------------------------------*/
27 #include "pointBoundaryMesh.H"
28 #include "polyBoundaryMesh.H"
29 #include "facePointPatch.H"
30 #include "globalPointPatch.H"
32 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
34 Foam::pointBoundaryMesh::pointBoundaryMesh
36     const pointMesh& m,
37     const polyBoundaryMesh& basicBdry
40     pointPatchList(basicBdry.size()),
41     mesh_(m)
43     // Set boundary patches
44     pointPatchList& Patches = *this;
46     forAll(Patches, patchI)
47     {
48         Patches.set
49         (
50             patchI,
51             facePointPatch::New(basicBdry[patchI], *this).ptr()
52         );
53     }
57 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
59 void Foam::pointBoundaryMesh::calcGeometry()
61     forAll(*this, patchi)
62     {
63         operator[](patchi).initGeometry();
64     }
66     forAll(*this, patchi)
67     {
68         operator[](patchi).calcGeometry();
69     }
73 const Foam::globalPointPatch&
74 Foam::pointBoundaryMesh::globalPatch() const
76     const pointPatchList& patches = *this;
78     forAll (patches, patchI)
79     {
80         if (isType<globalPointPatch>(patches[patchI]))
81         {
82             return refCast<const globalPointPatch>(patches[patchI]);
83         }
84     }
86     FatalErrorIn
87     (
88         "const pointBoundaryMesh::"
89         "globalPointPatch& globalPatch() const"
90     )   << "patch not found."
91         << abort(FatalError);
93     // Dummy return
94     return refCast<const globalPointPatch>(patches[0]);
98 void Foam::pointBoundaryMesh::movePoints(const pointField& p)
100     pointPatchList& patches = *this;
102     forAll(patches, patchi)
103     {
104         patches[patchi].initMovePoints(p);
105     }
107     forAll(patches, patchi)
108     {
109         patches[patchi].movePoints(p);
110     }
114 void Foam::pointBoundaryMesh::updateMesh()
116     pointPatchList& patches = *this;
118     forAll(patches, patchi)
119     {
120         patches[patchi].initUpdateMesh();
121     }
123     forAll(patches, patchi)
124     {
125         patches[patchi].updateMesh();
126     }
130 // ************************************************************************* //