FreeFOAM The Cross-Platform CFD Toolkit
pointBoundaryMesh.C
Go to the documentation of this file.
1 /*---------------------------------------------------------------------------*\
2  ========= |
3  \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4  \\ / O peration |
5  \\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
6  \\/ M anipulation |
7 -------------------------------------------------------------------------------
8 License
9  This file is part of OpenFOAM.
10 
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.
15 
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.
20 
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/>.
23 
24 \*---------------------------------------------------------------------------*/
25 
26 #include "pointBoundaryMesh.H"
30 
31 // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
32 
33 Foam::pointBoundaryMesh::pointBoundaryMesh
34 (
35  const pointMesh& m,
36  const polyBoundaryMesh& basicBdry
37 )
38 :
39  pointPatchList(basicBdry.size()),
40  mesh_(m)
41 {
42  // Set boundary patches
43  pointPatchList& Patches = *this;
44 
45  forAll(Patches, patchI)
46  {
47  Patches.set
48  (
49  patchI,
50  facePointPatch::New(basicBdry[patchI], *this).ptr()
51  );
52  }
53 }
54 
55 
56 // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
57 
58 void Foam::pointBoundaryMesh::calcGeometry()
59 {
60  forAll(*this, patchi)
61  {
62  operator[](patchi).initGeometry();
63  }
64 
65  forAll(*this, patchi)
66  {
67  operator[](patchi).calcGeometry();
68  }
69 }
70 
71 
74 {
75  const pointPatchList& patches = *this;
76 
77  forAll (patches, patchI)
78  {
79  if (isType<globalPointPatch>(patches[patchI]))
80  {
81  return refCast<const globalPointPatch>(patches[patchI]);
82  }
83  }
84 
86  (
87  "const pointBoundaryMesh::"
88  "globalPointPatch& globalPatch() const"
89  ) << "patch not found."
90  << abort(FatalError);
91 
92  // Dummy return
93  return refCast<const globalPointPatch>(patches[0]);
94 }
95 
96 
98 {
99  pointPatchList& patches = *this;
100 
101  forAll(patches, patchi)
102  {
103  patches[patchi].initMovePoints(p);
104  }
105 
106  forAll(patches, patchi)
107  {
108  patches[patchi].movePoints(p);
109  }
110 }
111 
112 
114 {
115  pointPatchList& patches = *this;
116 
117  forAll(patches, patchi)
118  {
119  patches[patchi].initUpdateMesh();
120  }
121 
122  forAll(patches, patchi)
123  {
124  patches[patchi].updateMesh();
125  }
126 }
127 
128 
129 // ************************ vim: set sw=4 sts=4 et: ************************ //