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::rawTopoChangerFvMesh 00026 00027 Description 00028 topoChangerFvMesh without any added functionality. 00029 00030 Note: run without FOAM_SETNAN. Temporary has unitialised patch 00031 data when faces get created out of nothing. 00032 00033 SourceFiles 00034 rawTopoChangerFvMesh.C 00035 00036 \*---------------------------------------------------------------------------*/ 00037 00038 #ifndef rawTopoChangerFvMesh_H 00039 #define rawTopoChangerFvMesh_H 00040 00041 #include <topoChangerFvMesh/topoChangerFvMesh.H> 00042 #include <OpenFOAM/PackedList.H> 00043 00044 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // 00045 00046 namespace Foam 00047 { 00048 00049 // Forward declaration of classes 00050 00051 /*---------------------------------------------------------------------------*\ 00052 Class rawTopoChangerFvMesh Declaration 00053 \*---------------------------------------------------------------------------*/ 00054 00055 class rawTopoChangerFvMesh 00056 : 00057 public topoChangerFvMesh 00058 { 00059 // Private Member Functions 00060 00061 //- Set unmapped values 00062 template<class Type, template<class> class PatchField, class GeoMesh> 00063 static void setUnmappedValues 00064 ( 00065 GeometricField<Type, PatchField, GeoMesh>& fld, 00066 const PackedList<1>& mappedFace, 00067 const GeometricField<Type, PatchField, GeoMesh>& baseFld 00068 ); 00069 00070 template<class Type, template<class> class PatchField, class GeoMesh> 00071 void zeroUnmappedValues(const PackedList<1>&) const; 00072 00073 //- Disallow default bitwise copy construct 00074 rawTopoChangerFvMesh(const rawTopoChangerFvMesh&); 00075 00076 //- Disallow default bitwise assignment 00077 void operator=(const rawTopoChangerFvMesh&); 00078 00079 public: 00080 00081 //- Runtime type information 00082 TypeName("rawTopoChangerFvMesh"); 00083 00084 00085 // Constructors 00086 00087 //- Construct from database 00088 explicit rawTopoChangerFvMesh(const IOobject& io); 00089 00090 // Destructor 00091 00092 virtual ~rawTopoChangerFvMesh(); 00093 00094 00095 // Member Functions 00096 00097 //- Update the mesh for both mesh motion and topology change 00098 virtual bool update(); 00099 }; 00100 00101 00102 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // 00103 00104 } // End namespace Foam 00105 00106 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // 00107 00108 #ifdef NoRepository 00109 # include "rawTopoChangerFvMeshTemplates.C" 00110 #endif 00111 00112 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // 00113 00114 #endif 00115 00116 // ************************ vim: set sw=4 sts=4 et: ************************ //