initial commit for version 1.6.x patch release
[OpenFOAM-1.6.x.git] / src / lagrangian / intermediate / parcels / derived / BasicReactingMultiphaseParcel / BasicReactingMultiphaseParcel.H
blobf216f8f54780b9b87ac2d928dd9ab4e2f9fbf4c9
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4    \\    /   O peration     |
5     \\  /    A nd           | Copyright (C) 2008-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::BasicReactingMultiphaseParcel
28 Description
31 SourceFiles
32     BasicReactingMultiphaseParcel.C
33     BasicReactingMultiphaseParcelIO.C
35 \*---------------------------------------------------------------------------*/
37 #ifndef BasicReactingMultiphaseParcel_H
38 #define BasicReactingMultiphaseParcel_H
40 #include "ReactingMultiphaseParcel.H"
42 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
45 namespace Foam
48 // Forward declaration of classes
49 template<class ThermoType>
50 class BasicReactingMultiphaseParcel;
52 /*---------------------------------------------------------------------------*\
53                Class BasicReactingMultiphaseParcel Declaration
54 \*---------------------------------------------------------------------------*/
56 template<class ThermoType>
57 class BasicReactingMultiphaseParcel
59     public ReactingMultiphaseParcel<BasicReactingMultiphaseParcel<ThermoType> >
62 public:
64     //- The type of thermodynamics this parcel was instantiated for
65     typedef ThermoType thermoType;
67     //- Run-time type information
68     TypeName("BasicReactingMultiphaseParcel");
70     // Constructors
72         //- Construct from owner, position, and cloud owner
73         //  Other properties initialised as null
74         BasicReactingMultiphaseParcel
75         (
76              ReactingMultiphaseCloud<BasicReactingMultiphaseParcel>& owner,
77              const vector& position,
78              const label cellI
79         );
81         //- Construct from components
82         BasicReactingMultiphaseParcel
83         (
84              ReactingMultiphaseCloud<BasicReactingMultiphaseParcel>& owner,
85              const vector& position,
86              const label cellI,
87              const label typeId,
88              const scalar nParticle0,
89              const scalar d0,
90              const vector& U0,
91              const scalarField& YGas0,
92              const scalarField& YLiquid0,
93              const scalarField& YSolid0,
94              const scalarField& Y0,
95              const typename
96                 ReactingMultiphaseParcel<BasicReactingMultiphaseParcel>::
97                 constantProperties& constProps
98         );
100         //- Construct from Istream
101         BasicReactingMultiphaseParcel
102         (
103             const Cloud<BasicReactingMultiphaseParcel>& c,
104             Istream& is,
105             bool readFields = true
106         );
108         //- Construct as a copy
109         BasicReactingMultiphaseParcel(const BasicReactingMultiphaseParcel& p);
111         //- Construct and return a clone
112         autoPtr<BasicReactingMultiphaseParcel> clone() const
113         {
114             return
115                 autoPtr<BasicReactingMultiphaseParcel>
116                 (
117                     new BasicReactingMultiphaseParcel(*this)
118                 );
119         }
122     //- Destructor
123     virtual ~BasicReactingMultiphaseParcel();
127 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
129 } // End namespace Foam
131 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
133 #ifdef NoRepository
134     #include "BasicReactingMultiphaseParcel.C"
135 #endif
137 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
139 #endif
141 // ************************************************************************* //