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 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
77 //- Sub dictionary with actuationDisk information
78 const dictionary& dict_;
86 //- Thrust coefficient
95 // Private Member Functions
98 void checkData() const;
100 //- Add resistance to the UEqn
101 template<class RhoFieldType>
102 void addActuationDiskAxialInertialResistance
104 vectorField& Usource,
105 const labelList& cells,
106 const scalarField& V,
107 const RhoFieldType& rho,
111 //- Disallow default bitwise copy construct
112 actuationDiskSource(const actuationDiskSource&);
114 //- Disallow default bitwise assignment
115 void operator=(const actuationDiskSource&);
120 //- Runtime type information
121 TypeName("actuationDiskSource");
126 //- Construct from components
130 const word& modelType,
131 const dictionary& dict,
137 virtual ~actuationDiskSource()
157 //- Normal disk direction
158 const vector& diskDir() const
164 scalar diskArea() const
172 //-Source term to fvMatrix<vector>
173 virtual void addSu(fvMatrix<vector>& UEqn);
175 //-Source term to fvMatrix<scalar>
176 virtual void addSu(fvMatrix<scalar>& UEqn){}
182 virtual void writeData(Ostream&) const;
185 virtual bool read(const dictionary& dict);
189 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
191 } // End namespace Foam
193 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
196 # include "actuationDiskSourceTemplates.C"
199 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
203 // ************************************************************************* //