1 /*---------------------------------------------------------------------------*\
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 -------------------------------------------------------------------------------
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/>.
28 Single rotating region
31 Hrvoje Jasak, Wikki Ltd. All rights reserved.
36 \*---------------------------------------------------------------------------*/
41 #include "cylindricalCS.H"
45 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
50 // Forward declaration of classes
52 class polyTopoChanger;
54 /*---------------------------------------------------------------------------*\
55 Class mixerRotor Declaration
56 \*---------------------------------------------------------------------------*/
66 const polyMesh& mesh_;
71 // - Rotational speed in rotations per minute (rpm)
74 //- Name of moving slider patch
75 const word movingSliderName_;
77 //- Name of static slider patch
78 const word staticSliderName_;
80 //- Rotating region marker point
81 point rotatingRegionMarker_;
83 //- Invert motion mask: marked region is stationary and the rest
84 // of the domain is moving
85 const Switch invertMotionMask_;
87 //- Use topological sliding. Other option is GGI
88 const Switch useTopoSliding_;
90 //- Attach-detach action
93 //- Markup field for points. Moving points marked with 1
94 mutable scalarField* movingPointsMaskPtr_;
97 // Private Member Functions
99 //- Disallow default bitwise copy construct
100 mixerRotor(const mixerRotor&);
102 //- Disallow default bitwise assignment
103 void operator=(const mixerRotor&);
106 //- Return coordinate system
107 const cylindricalCS& cs() const
112 //- Calculate moving mask
113 void calcMovingMask() const;
115 //- Return moving points mask
116 const scalarField& movingPointsMask() const;
118 //- Clear moving points mask
119 void clearPointMask();
126 //- Construct from dictionary
130 const polyMesh& mesh,
131 const dictionary& dict
137 virtual ~mixerRotor();
142 //- Return true if topological sliding is used
143 bool useTopoSliding() const
145 return useTopoSliding_;
148 //- Return true if attach-detach action is used
149 bool attachDetach() const
151 return attachDetach_;
154 //- Return accumulative point motion
155 virtual tmp<vectorField> pointMotion() const;
157 //- Add mixer rotor zones
160 DynamicList<pointZone*>& pz,
161 DynamicList<faceZone*>& fz,
162 DynamicList<cellZone*>& cz,
163 const regionSplit& rs
166 //- Add mixer rotor modifiers
174 void updateTopology();
178 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
180 } // End namespace Foam
182 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
186 // ************************************************************************* //