ENH: cylinderAnnulusToCell: new cellSource for cellSets
[OpenFOAM-1.7.x.git] / src / meshTools / sets / cellSources / cylinderAnnulusToCell / cylinderAnnulusToCell.H
blob96a9e6d950c03d0e84a79e98f808b3acfa1f5da1
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4    \\    /   O peration     |
5     \\  /    A nd           | Copyright (C) 1991-2010 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
13     the Free Software Foundation, either version 3 of the License, or
14     (at your 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, see <http://www.gnu.org/licenses/>.
24 Class
25     Foam::cylinderAnnulusToCell
27 Description
28     A topoSetSource to select cells based on cell centres inside a
29     cylinder annulus.
31 SourceFiles
32     cylinderAnnulusToCell.C
34 \*---------------------------------------------------------------------------*/
36 #ifndef cylinderAnnulusToCell_H
37 #define cylinderAnnulusToCell_H
39 #include "topoSetSource.H"
41 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
43 namespace Foam
46 /*---------------------------------------------------------------------------*\
47                        Class cylinderAnnulusToCell Declaration
48 \*---------------------------------------------------------------------------*/
50 class cylinderAnnulusToCell
52     public topoSetSource
55     // Private data
57         //- Add usage string
58         static addToUsageTable usage_;
60         //- First point on cylinder axis
61         vector p1_;
63         //- Second point on cylinder axis
64         vector p2_;
66         //- Outer Radius
67         scalar outerRadius_;
69         //- Inner Radius
70         scalar innerRadius_;
73     // Private Member Functions
75         void combine(topoSet& set, const bool add) const;
78 public:
80     //- Runtime type information
81     TypeName("cylinderAnnulusToCell");
84     // Constructors
86         //- Construct from components
87         cylinderAnnulusToCell
88         (
89             const polyMesh& mesh,
90             const vector& p1,
91             const vector& p2,
92             const scalar outerRadius,
93             const scalar innerRadius
94         );
96         //- Construct from dictionary
97         cylinderAnnulusToCell
98         (
99             const polyMesh& mesh,
100             const dictionary& dict
101         );
103         //- Construct from Istream
104         cylinderAnnulusToCell
105         (
106             const polyMesh& mesh,
107             Istream&
108         );
111     // Destructor
113         virtual ~cylinderAnnulusToCell();
116     // Member Functions
118         virtual void applyToSet
119         (
120             const topoSetSource::setAction action,
121             topoSet&
122         ) const;
127 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
129 } // End namespace Foam
131 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
133 #endif
135 // ************************************************************************* //