Merge branch 'master' of ssh://git.code.sf.net/p/foam-extend/foam-extend-3.2
[foam-extend-3.2.git] / src / dynamicMesh / dynamicFvMesh / mixerGgiFvMesh / mixerGgiFvMesh.H
blob524e50c8b1d366d57c05d5f77884792455cbe0e0
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     mixerGgiFvMesh
27 Description
28     Simple mixer mesh using a GGI interface
30 Author
31     Hrvoje Jasak, Wikki Ltd.  All rights reserved.
33 SourceFiles
34     mixerGgiFvMesh.C
36 \*---------------------------------------------------------------------------*/
38 #ifndef mixerGgiFvMesh_H
39 #define mixerGgiFvMesh_H
41 #include "dynamicFvMesh.H"
42 #include "cylindricalCS.H"
44 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
46 namespace Foam
49 /*---------------------------------------------------------------------------*\
50                         Class mixerGgiFvMesh Declaration
51 \*---------------------------------------------------------------------------*/
53 class mixerGgiFvMesh
55     public dynamicFvMesh
57     // Private data
59         //- Motion dictionary
60         dictionary dict_;
62         //- Coordinate system
63         cylindricalCS cs_;
65         // - Rotational speed in rotations per minute (rpm)
66         scalar rpm_;
68         //- Markup field for points.  Moving points marked with 1
69         mutable scalarField* movingPointsMaskPtr_;
72     // Private Member Functions
74         //- Disallow default bitwise copy construct
75         mixerGgiFvMesh(const mixerGgiFvMesh&);
77         //- Disallow default bitwise assignment
78         void operator=(const mixerGgiFvMesh&);
81         //- Add mixer zones
82         void addZonesAndModifiers();
84         //- Calculate moving masks
85         void calcMovingMasks() const;
87         //- Return moving points mask
88         const scalarField& movingPointsMask() const;
91 public:
93     //- Runtime type information
94     TypeName("mixerGgiFvMesh");
97     // Constructors
99         //- Construct from IOobject
100         explicit mixerGgiFvMesh(const IOobject& io);
103     // Destructor
105         virtual ~mixerGgiFvMesh();
108     // Member Functions
110         //- Return coordinate system
111         const cylindricalCS& cs() const
112         {
113             return cs_;
114         }
116         //- Update the mesh for both mesh motion
117         virtual bool update();
121 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
123 } // End namespace Foam
125 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
127 #endif
129 // ************************************************************************* //