initial commit for version 1.6.x patch release
[OpenFOAM-1.6.x.git] / src / lagrangian / dieselSpray / spraySubModels / injectorModel / injectorModel / injectorModel.H
blob17c3e62f2265596929fb220db1606b3d1ec8c547
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4    \\    /   O peration     |
5     \\  /    A nd           | Copyright (C) 1991-2009 OpenCFD Ltd.
6      \\/     M anipulation  |
7 -------------------------------------------------------------------------------
8 License
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 2 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
19     for more details.
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
25 Class
26     Foam::injectorModel
29 Description
30     The injectormodel is used to set initial droplet size and the
31     velocity direction 
33 \*---------------------------------------------------------------------------*/
35 #ifndef injectorModel_H
36 #define injectorModel_H
38 #include "liquid.H"
39 #include "injector.H"
40 #include "PtrList.H"
41 #include "IOdictionary.H"
42 #include "volFieldsFwd.H"
43 #include "autoPtr.H"
44 #include "spray.H"
46 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
48 namespace Foam
51 /*---------------------------------------------------------------------------*\
52                            Class injectorModel Declaration
53 \*---------------------------------------------------------------------------*/
55 class injectorModel
58 protected:
60     // Protected data
62         const dictionary& dict_;
63         spray& sm_;
65         const PtrList<injector>& injectors_;    
66         Random& rndGen_;
68 public:
70     //-Runtime type information
71         TypeName("injectorModel");
73     // Declare runtime constructor selection table
75         declareRunTimeSelectionTable
76         (
77             autoPtr,
78             injectorModel,
79             dictionary,
80             (
81                 const dictionary& dict,
82                 spray& sm
83             ),
84             (dict, sm)
85         );
88     // Constructors
90         //- Construct from components
91         injectorModel
92         (
93             const dictionary& dict,
94             spray& sm
95         );
98     // Destructor
100         virtual ~injectorModel();
103     // Selector
105         static autoPtr<injectorModel> New
106         (
107             const dictionary& dict,
108             spray& sm
109         );
112     // Member Functions
114         //- Return the initial droplet diameter
115         virtual scalar d0(const label injector, const scalar time) const = 0;
117         //- Return the spray angle of the injector
118         virtual vector direction
119         (
120             const label injector, 
121             const label hole,
122             const scalar time,
123             const scalar d
124         ) const = 0;
126         virtual scalar velocity
127         (
128             const label i,
129             const scalar time
130         ) const = 0;
131         
132         virtual scalar averageVelocity
133         (
134             const label i
135         ) const = 0;
139 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
141 } // End namespace Foam
143 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
145 #endif
147 // ************************************************************************* //