Merge branch 'master' of ssh://git.code.sf.net/p/foam-extend/foam-extend-3.2
[foam-extend-3.2.git] / src / dynamicMesh / dynamicFvMesh / turboFvMesh / turboFvMesh.H
blobc782f5f2af2413b9de403057e8f3b8edd4782485
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | foam-extend: Open Source CFD
4    \\    /   O peration     | Version:     3.2
5     \\  /    A nd           | Web:         http://www.foam-extend.org
6      \\/     M anipulation  | For copyright notice see file Copyright
7 -------------------------------------------------------------------------------
8 License
9     This file is part of foam-extend.
11     foam-extend is free software: you can redistribute it and/or modify it
12     under the terms of the GNU General Public License as published by the
13     Free Software Foundation, either version 3 of the License, or (at your
14     option) any later version.
16     foam-extend is distributed in the hope that it will be useful, but
17     WITHOUT ANY WARRANTY; without even the implied warranty of
18     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
19     General Public License for more details.
21     You should have received a copy of the GNU General Public License
22     along with foam-extend.  If not, see <http://www.gnu.org/licenses/>.
24 Class
25     turboFvMesh
27 Description
28     Simple mixer mesh using an ggi interfaces
30     This tool is used to have multiple rotating regions around the same origin
31     with different rpms. Creating the cellZones is not implemented
32     in this tool.
33     The steps to obtain the cellZones and faceZones are:
35     1) use regionCellSets utility. With this command you can have different
36        cellSets for each region.
38     2) run command "setsToZones -noFlipMap".  After this command the
39        cellSets are transformed to cellZones.
41     4) for each rotating cellZone add an entry in rpm subDict of
42        constant/dynamicMeshDict
44     5) in parallel you need to create from all rotating coupled-interface
45        patches faceZones (if you use a ggi interface between you have already
46        created these faceZones), Then you need to specify these faceZones with
47        the corresponding rpm in the additional "slider" subDict in
48        constant/dynamicMeshDict
50 Author
51     Hrvoje Jasak, Wikki Ltd.  All rights reserved.
52     Fethi Tekin, All rights reserved.
53     Oliver Borm, All rights reserved.
55 SourceFiles
56     turboFvMesh.C
58 \*---------------------------------------------------------------------------*/
60 #ifndef turboFvMesh_H
61 #define turboFvMesh_H
63 #include "dynamicFvMesh.H"
64 #include "cylindricalCS.H"
66 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
68 namespace Foam
71 /*---------------------------------------------------------------------------*\
72                         Class turboFvMesh Declaration
73 \*---------------------------------------------------------------------------*/
75 class turboFvMesh
77     public dynamicFvMesh
79     // Private data
81         //- Motion dictionary
82         dictionary dict_;
84         //- Coordinate system
85         cylindricalCS cs_;
87         //- Markup field for points.
88         mutable vectorField* movingPointsPtr_;
91     // Private Member Functions
93         //- Disallow default bitwise copy construct
94         turboFvMesh(const turboFvMesh&);
96         //- Disallow default bitwise assignment
97         void operator=(const turboFvMesh&);
99         //- Calculate moving Points
100         void calcMovingPoints() const;
102         //- Return moving points
103         const vectorField& movingPoints() const;
106 public:
108     //- Runtime type information
109     TypeName("turboFvMesh");
112     // Constructors
114         //- Construct from IOobject
115         explicit turboFvMesh(const IOobject& io);
118     // Destructor
120         virtual ~turboFvMesh();
123     // Member Functions
125         //- Return coordinate system
126         const cylindricalCS& cs() const
127         {
128             return cs_;
129         }
131         //- Update the mesh for both mesh motion
132         virtual bool update();
136 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
138 } // End namespace Foam
140 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
142 #endif
144 // ************************************************************************* //