00001 /*---------------------------------------------------------------------------*\ 00002 ========= | 00003 \\ / F ield | OpenFOAM: The Open Source CFD Toolbox 00004 \\ / O peration | 00005 \\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd. 00006 \\/ M anipulation | 00007 ------------------------------------------------------------------------------- 00008 License 00009 This file is part of OpenFOAM. 00010 00011 OpenFOAM is free software: you can redistribute it and/or modify it 00012 under the terms of the GNU General Public License as published by 00013 the Free Software Foundation, either version 3 of the License, or 00014 (at your option) any later version. 00015 00016 OpenFOAM is distributed in the hope that it will be useful, but WITHOUT 00017 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 00018 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 00019 for more details. 00020 00021 You should have received a copy of the GNU General Public License 00022 along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. 00023 00024 Class 00025 Foam::attachPolyTopoChanger 00026 00027 Description 00028 This class is derived from polyMesh and serves as a tool for 00029 statically connecting pieces of a mesh by executing the mesh 00030 modifiers and cleaning the mesh. 00031 00032 The idea is that a mesh can be built from pieces and put together 00033 using various mesh modifiers (mainly sliding interfaces) which are 00034 not needed during the run. Therefore, once the mesh is assembled 00035 and mesh modification triggered, the newly created point, face and 00036 cell zones can be cleared together with the mesh modifiers thus 00037 creating a singly connected static mesh. 00038 00039 Note: 00040 All point, face and cell zoning will be lost! Do it after 00041 attaching the parts of the mesh, as the point, face and cell 00042 numbering changes. 00043 00044 \*---------------------------------------------------------------------------*/ 00045 00046 #ifndef attachPolyTopoChanger_H 00047 #define attachPolyTopoChanger_H 00048 00049 #include <dynamicMesh/polyTopoChanger.H> 00050 00051 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // 00052 00053 namespace Foam 00054 { 00055 00056 /*---------------------------------------------------------------------------*\ 00057 Class attachPolyTopoChanger Declaration 00058 \*---------------------------------------------------------------------------*/ 00059 00060 class attachPolyTopoChanger 00061 : 00062 public polyTopoChanger 00063 { 00064 // Private data 00065 00066 // Private Member Functions 00067 00068 //- Disallow default bitwise copy construct 00069 attachPolyTopoChanger(const attachPolyTopoChanger&); 00070 00071 //- Disallow default bitwise assignment 00072 void operator=(const attachPolyTopoChanger&); 00073 00074 00075 public: 00076 00077 // Constructors 00078 00079 //- Read constructor from IOobject and a polyMesh 00080 attachPolyTopoChanger(const IOobject& io, polyMesh&); 00081 00082 //- Read constructor for given polyMesh 00083 explicit attachPolyTopoChanger(polyMesh&); 00084 00085 00086 // Destructor 00087 00088 virtual ~attachPolyTopoChanger() 00089 {} 00090 00091 00092 // Member Functions 00093 00094 //- Attach mesh. By default filter out empty patches. 00095 void attach(const bool removeEmptyPatches = true); 00096 }; 00097 00098 00099 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // 00100 00101 } // End namespace Foam 00102 00103 00104 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // 00105 00106 #endif 00107 00108 // ************************ vim: set sw=4 sts=4 et: ************************ //