ENH: autoLayerDriver: better layering information message
[OpenFOAM-2.0.x.git] / src / lagrangian / intermediate / submodels / CloudFunctionObjects / CloudFunctionObjectList / CloudFunctionObjectList.H
blobb8b296fe2117000acdf9dee7e1491add68554cd0
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4    \\    /   O peration     |
5     \\  /    A nd           | Copyright (C) 2011 OpenFOAM Foundation
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
13     the Free Software Foundation, either version 3 of the License, or
14     (at your 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, see <http://www.gnu.org/licenses/>.
24 Class
25     Foam::CloudFunctionObjectList
27 Description
28     List of cloud function objects
30 SourceFiles
31     CloudFunctionObjectListI.H
32     CloudFunctionObjectList.C
34 \*---------------------------------------------------------------------------*/
36 #ifndef CloudFunctionObjectList_H
37 #define CloudFunctionObjectList_H
39 #include "PtrList.H"
40 #include "CloudFunctionObject.H"
42 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
44 namespace Foam
47 /*---------------------------------------------------------------------------*\
48                    Class CloudFunctionObjectList Declaration
49 \*---------------------------------------------------------------------------*/
51 template<class CloudType>
52 class CloudFunctionObjectList
54     public PtrList<CloudFunctionObject<CloudType> >
56 protected:
58     // Protected Data
60         //- Reference to the owner cloud
61         const CloudType& owner_;
63         //- Dictionary
64         const dictionary dict_;
67 public:
69     // Constructors
71         //- Null constructor
72         CloudFunctionObjectList(CloudType& owner);
74         //- Construct from mesh
75         CloudFunctionObjectList
76         (
77             CloudType& owner,
78             const dictionary& dict,
79             const bool readFields
80         );
82         //- Construct copy
83         CloudFunctionObjectList(const CloudFunctionObjectList& ppml);
86     //- Destructor
87     virtual ~CloudFunctionObjectList();
90     // Member Functions
92         // Access
94             //- Return const access to the cloud owner
95             inline const CloudType& owner() const;
97             //- Return refernce to the cloud owner
98             inline CloudType& owner();
100             //- Return the forces dictionary
101             inline const dictionary& dict() const;
104         // Evaluation
106             //- Pre-evolve hook
107             virtual void preEvolve();
109             //- Post-evolve hook
110             virtual void postEvolve();
112             //- Post-move hook
113             virtual void postMove
114             (
115                 const typename CloudType::parcelType& p,
116                 const label cellI,
117                 const scalar dt
118             );
120             //- Post-patch hook
121             virtual void postPatch
122             (
123                 const typename CloudType::parcelType& p,
124                 const label patchI,
125                 const label patchFaceI
126             );
128             //- Post-face hook
129             virtual void postFace
130             (
131                 const typename CloudType::parcelType& p,
132                 const label faceI
133             );
137 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
139 } // End namespace Foam
141 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
143 #include "CloudFunctionObjectListI.H"
145 #ifdef NoRepository
146     #include "CloudFunctionObjectList.C"
147 #endif
149 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
151 #endif
153 // ************************************************************************* //