1 /*---------------------------------------------------------------------------*\
3 \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
5 \\ / A nd | Copyright (C) 2010-2011 OpenCFD Ltd.
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 the
13 Free Software Foundation; either version 3 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
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
26 Foam::actuationDiskSource
29 Actuation disk zone definition.
30 Constant values for momentum source for actuation disk
32 T = 2*rho*A*sqr(Uo)*a*(1-a)
38 U1: velocity at the disk
42 actuationDiskSourceTemplates.C
44 \*---------------------------------------------------------------------------*/
46 #ifndef actuationDiskSource_H
47 #define actuationDiskSource_H
49 #include "IOdictionary.H"
50 #include "coordinateSystem.H"
51 #include "coordinateSystems.H"
53 #include "labelList.H"
54 #include "DimensionedField.H"
55 #include "volFieldsFwd.H"
56 #include "fvMatricesFwd.H"
57 #include "basicSource.H"
59 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
64 /*---------------------------------------------------------------------------*\
65 Class actuationDiskSource Declaration
66 \*---------------------------------------------------------------------------*/
68 class actuationDiskSource
74 //- Sub dictionary with actuationDisk information
75 const dictionary& dict_;
83 //- Thrust coefficient
90 // Private Member Functions
93 void checkData() const;
95 //- Add resistance to the UEqn
96 template<class RhoFieldType>
97 void addActuationDiskAxialInertialResistance
100 const labelList& cells,
101 const scalarField& V,
102 const RhoFieldType& rho,
106 //- Disallow default bitwise copy construct
107 actuationDiskSource(const actuationDiskSource&);
109 //- Disallow default bitwise assignment
110 void operator=(const actuationDiskSource&);
115 //- Runtime type information
116 TypeName("actuationDiskSource");
121 //- Construct from components
125 const dictionary& dict,
131 virtual ~actuationDiskSource()
151 //- Normal disk direction
152 const vector& diskDir() const
158 scalar diskArea() const
166 //-Source term to fvMatrix<vector>
167 virtual void addSu(fvMatrix<vector>& UEqn);
169 //-Source term to fvMatrix<scalar>
170 virtual void addSu(fvMatrix<scalar>& UEqn){}
176 virtual void writeData(Ostream&) const;
179 virtual bool read(const dictionary& dict);
183 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
185 } // End namespace Foam
187 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
190 # include "actuationDiskSourceTemplates.C"
193 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
197 // ************************************************************************* //