![]() |
|
00001 /*---------------------------------------------------------------------------*\ 00002 ========= | 00003 \\ / F ield | OpenFOAM: The Open Source CFD Toolbox 00004 \\ / O peration | 00005 \\ / A nd | Copyright (C) 1991-2005 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 the 00013 Free Software Foundation; either version 2 of the License, or (at your 00014 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, write to the Free Software Foundation, 00023 Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 00024 00025 Class 00026 shapeToCell 00027 00028 Description 00029 TopoSetSource. Select cells based on cell shape. Handles all ones from 00030 cellModeller and splitHex with 10 degrees feature angle. 00031 00032 SourceFiles 00033 shapeToCell.C 00034 00035 \*---------------------------------------------------------------------------*/ 00036 00037 #ifndef shapeToCell_H 00038 #define shapeToCell_H 00039 00040 #include "topoSetSource.H" 00041 00042 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // 00043 00044 namespace Foam 00045 { 00046 00047 /*---------------------------------------------------------------------------*\ 00048 Class shapeToCell Declaration 00049 \*---------------------------------------------------------------------------*/ 00050 00051 class shapeToCell 00052 : 00053 public topoSetSource 00054 { 00055 00056 // Private data 00057 00058 //- Add usage string 00059 static addToUsageTable usage_; 00060 00061 //- Name of cell type 00062 word type_; 00063 00064 // Private Member Functions 00065 00066 //- Depending on cell type add to or delete from cellSet. 00067 void combine(topoSet& set, const bool add) const; 00068 00069 00070 public: 00071 00072 //- Runtime type information 00073 TypeName("shapeToCell"); 00074 00075 00076 // Static data 00077 00078 //- cos of feature angle for polyHedral to be splitHex 00079 static scalar featureCos; 00080 00081 // Constructors 00082 00083 //- Construct from components 00084 shapeToCell 00085 ( 00086 const polyMesh& mesh, 00087 const word& type 00088 ); 00089 00090 //- Construct from dictionary 00091 shapeToCell 00092 ( 00093 const polyMesh& mesh, 00094 const dictionary& dict 00095 ); 00096 00097 //- Construct from Istream 00098 shapeToCell 00099 ( 00100 const polyMesh& mesh, 00101 Istream& 00102 ); 00103 00104 00105 // Destructor 00106 00107 virtual ~shapeToCell(); 00108 00109 00110 // Member Functions 00111 00112 virtual void applyToSet(const topoSetSource::setAction action, topoSet&) 00113 const; 00114 00115 }; 00116 00117 00118 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // 00119 00120 } // End namespace Foam 00121 00122 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // 00123 00124 #endif 00125 00126 // ************************************************************************* //