1 /*---------------------------------------------------------------------------*\
3 \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
5 \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation
7 -------------------------------------------------------------------------------
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
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/>.
28 Container class for a set of MRFZones with the MRFZone member functions
29 implemented to loop over the functions for each MRFZone.
34 \*---------------------------------------------------------------------------*/
40 #include "IOPtrList.H"
42 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
47 /*---------------------------------------------------------------------------*\
48 Class MRFZones Declaration
49 \*---------------------------------------------------------------------------*/
53 public IOPtrList<MRFZone>
56 // Private Member Functions
58 //- Disallow default bitwise copy construct
59 MRFZones(const MRFZones&);
61 //- Disallow default bitwise assignment
62 void operator=(const MRFZones&);
69 //- Construct from fvMesh
70 MRFZones(const fvMesh& mesh);
75 //- Add the Coriolis force contribution to the momentum equation
76 void addCoriolis(fvVectorMatrix& UEqn) const;
78 //- Add the Coriolis force contribution to the momentum equation
79 void addCoriolis(const volScalarField& rho, fvVectorMatrix& UEqn) const;
81 //- Make the given absolute velocity relative within the MRF region
82 void relativeVelocity(volVectorField& U) const;
84 //- Make the given relative velocity absolute within the MRF region
85 void absoluteVelocity(volVectorField& U) const;
87 //- Make the given absolute flux relative within the MRF region
88 void relativeFlux(surfaceScalarField& phi) const;
90 //- Make the given absolute mass-flux relative within the MRF region
93 const surfaceScalarField& rho,
94 surfaceScalarField& phi
97 //- Make the given relative flux absolute within the MRF region
98 void absoluteFlux(surfaceScalarField& phi) const;
100 //- Make the given relative mass-flux absolute within the MRF region
103 const surfaceScalarField& rho,
104 surfaceScalarField& phi
107 //- Correct the boundary velocity for the roation of the MRF region
108 void correctBoundaryVelocity(volVectorField& U) const;
112 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
114 } // End namespace Foam
116 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
120 // ************************************************************************* //