initial commit for version 1.6.x patch release
[OpenFOAM-1.6.x.git] / src / finiteVolume / fvMesh / fvBoundaryMesh / fvBoundaryMesh.C
blobc8930e4ab4524427108fa14a713df53f4cf027bf
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 "fvMesh.H"
28 #include "fvBoundaryMesh.H"
31 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
33 namespace Foam
36 // * * * * * * * * * * * * * Private Member Functions  * * * * * * * * * * * //
38 void fvBoundaryMesh::addPatches(const polyBoundaryMesh& basicBdry)
40     setSize(basicBdry.size());
42     // Set boundary patches
43     fvPatchList& Patches = *this;
45     forAll(Patches, patchI)
46     {
47         Patches.set(patchI, fvPatch::New(basicBdry[patchI], *this));
48     }
51     
52 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
54 fvBoundaryMesh::fvBoundaryMesh
56     const fvMesh& m
59     fvPatchList(0),
60     mesh_(m)
64 fvBoundaryMesh::fvBoundaryMesh
66     const fvMesh& m,
67     const polyBoundaryMesh& basicBdry
70     fvPatchList(basicBdry.size()),
71     mesh_(m)
73     addPatches(basicBdry);
77 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
79 void fvBoundaryMesh::movePoints()
81     forAll(*this, patchi)
82     {
83         operator[](patchi).initMovePoints();
84     }
86     forAll(*this, patchi)
87     {
88         operator[](patchi).movePoints();
89     }
93 lduInterfacePtrsList fvBoundaryMesh::interfaces() const
95     lduInterfacePtrsList interfaces(size());
97     forAll (interfaces, patchi)
98     {
99         if (isA<lduInterface>(this->operator[](patchi)))
100         {
101             interfaces.set
102             (
103                 patchi,
104                &refCast<const lduInterface>(this->operator[](patchi))
105             );
106         }
107     }
109     return interfaces;
113 void fvBoundaryMesh::readUpdate(const polyBoundaryMesh& basicBdry)
115     clear();
116     addPatches(basicBdry);
120 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
122 } // End namespace Foam
124 // ************************************************************************* //