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::radialActuationDiskSource
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
41 The thrust is distributed by a radial function:
42 thrust(r) = T*(C0 + C1*r^2 + C2*r^4)
46 radialActuationDiskSource.C
47 radialActuationDiskSourceTemplates.C
49 \*---------------------------------------------------------------------------*/
51 #ifndef radialActuationDiskSource_H
52 #define radialActuationDiskSource_H
54 #include "DimensionedField.H"
55 #include "volFieldsFwd.H"
56 #include "FixedList.H"
57 #include "actuationDiskSource.H"
59 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
64 /*---------------------------------------------------------------------------*\
65 Class radialActuationDiskSource Declaration
66 \*---------------------------------------------------------------------------*/
68 class radialActuationDiskSource
70 public actuationDiskSource
74 //- Sub dictionary with model information
75 const dictionary& dict_;
77 //- Coeffcients for the radial distribution
78 FixedList<scalar, 3> coeffs_;
81 // Private Member Functions
83 //- Add resistance to the UEqn
84 template<class RhoFieldType>
85 void addRadialActuationDiskAxialInertialResistance
88 const labelList& cells,
90 const RhoFieldType& rho,
94 //- Disallow default bitwise copy construct
95 radialActuationDiskSource(const radialActuationDiskSource&);
97 //- Disallow default bitwise assignment
98 void operator=(const radialActuationDiskSource&);
103 //- Runtime type information
104 TypeName("radialActuationDiskSource");
109 //- Construct from components
110 radialActuationDiskSource
113 const word& modelType,
114 const dictionary& dict,
120 virtual ~radialActuationDiskSource()
126 //-Source term to fvMatrix<vector>
127 virtual void addSu(fvMatrix<vector>& UEqn);
133 virtual void writeData(Ostream&) const;
136 virtual bool read(const dictionary& dict);
140 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
142 } // End namespace Foam
144 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
147 # include "radialActuationDiskSourceTemplates.C"
150 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
154 // ************************************************************************* //