BUGFIX: Illegal use of uninitialised value (backport)
[foam-extend-3.2.git] / src / dynamicMesh / dynamicFvMesh / turboFvMesh / turboFvMesh.H
blob2d0026950e2b8f2d9c4812509c5e36266cb51ea1
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4    \\    /   O peration     |
5     \\  /    A nd           | Copyright (C) 2006-7 H. Jasak All rights reserved
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 the
13     Free Software Foundation; either version 2 of the License, or (at your
14     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, write to the Free Software Foundation,
23     Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
25 Class
26     turboFvMesh
28 Description
29     Simple mixer mesh using an ggi interfaces
31     This tool is used to have multiple rotating regions around the same origin
32     with different rpms. Creating the cellZones is not implemented
33     in this tool.
34     The steps to obtain the cellZones and faceZones are:
36     1) use regionCellSets utility. With this command you can have different
37        cellSets for each region.
39     2) run command "setsToZones -noFlipMap".  After this command the
40        cellSets are transformed to cellZones.
42     4) for each rotating cellZone add an entry in rpm subDict of
43        constant/dynamicMeshDict
45     5) in parallel you need to create from all rotating coupled-interface
46        patches faceZones (if you use a ggi interface between you have already
47        created these faceZones), Then you need to specify these faceZones with
48        the corresponding rpm in the additional "slider" subDict in
49        constant/dynamicMeshDict
51 Author
52     Hrvoje Jasak, Wikki Ltd.  All rights reserved.
53     Fethi Tekin, All rights reserved.
54     Oliver Borm, All rights reserved.
56 SourceFiles
57     turboFvMesh.C
59 \*---------------------------------------------------------------------------*/
61 #ifndef turboFvMesh_H
62 #define turboFvMesh_H
64 #include "dynamicFvMesh.H"
65 #include "cylindricalCS.H"
67 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
69 namespace Foam
72 /*---------------------------------------------------------------------------*\
73                         Class turboFvMesh Declaration
74 \*---------------------------------------------------------------------------*/
76 class turboFvMesh
78     public dynamicFvMesh
80     // Private data
82         //- Motion dictionary
83         dictionary dict_;
85         //- Coordinate system
86         cylindricalCS cs_;
88         //- Markup field for points.
89         mutable vectorField* movingPointsPtr_;
92     // Private Member Functions
94         //- Disallow default bitwise copy construct
95         turboFvMesh(const turboFvMesh&);
97         //- Disallow default bitwise assignment
98         void operator=(const turboFvMesh&);
100         //- Calculate moving Points
101         void calcMovingPoints() const;
103         //- Return moving points
104         const vectorField& movingPoints() const;
107 public:
109     //- Runtime type information
110     TypeName("turboFvMesh");
113     // Constructors
115         //- Construct from IOobject
116         explicit turboFvMesh(const IOobject& io);
119     // Destructor
121         virtual ~turboFvMesh();
124     // Member Functions
126         //- Return coordinate system
127         const cylindricalCS& cs() const
128         {
129             return cs_;
130         }
132         //- Update the mesh for both mesh motion
133         virtual bool update();
137 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
139 } // End namespace Foam
141 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
143 #endif
145 // ************************************************************************* //