OpenFOAM logo
Open Source CFD Toolkit

shapeToCell.H

Go to the documentation of this file.
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 // ************************************************************************* //
For further information go to www.openfoam.org