OpenFOAM logo
Open Source CFD Toolkit

LagrangianField.H

Go to the documentation of this file.
00001 /*---------------------------------------------------------------------------*\
00002   =========                 |
00003   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
00004    \\    /   O peration     |
00005     \\  /    A nd           | Copyright (C) 1991-2005 OpenCFD Ltd.
00006      \\/     M anipulation  |
00007 -------------------------------------------------------------------------------
00008 License
00009     This file is part of OpenFOAM.
00010 
00011     OpenFOAM is free software; you can redistribute it and/or modify it
00012     under the terms of the GNU General Public License as published by the
00013     Free Software Foundation; either version 2 of the License, or (at your
00014     option) any later version.
00015 
00016     OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
00017     ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
00018     FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
00019     for more details.
00020 
00021     You should have received a copy of the GNU General Public License
00022     along with OpenFOAM; if not, write to the Free Software Foundation,
00023     Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
00024 
00025 Class
00026     LagrangianField
00027 
00028 Description
00029 
00030 SourceFiles
00031     LagrangianFieldI.H
00032     LagrangianField.C
00033     LagrangianFieldIO.C
00034 
00035 \*---------------------------------------------------------------------------*/
00036 
00037 #ifndef LagrangianField_H
00038 #define LagrangianField_H
00039 
00040 #include "DimensionedField.H"
00041 
00042 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
00043 
00044 namespace Foam
00045 {
00046 
00047 /*---------------------------------------------------------------------------*\
00048                            Class LagrangianField Declaration
00049 \*---------------------------------------------------------------------------*/
00050 
00051 template<class Type, class Cloud>
00052 class LagrangianField
00053 :
00054     public DimensionedField<Type>
00055 {
00056     // Private data
00057 
00058         //- Reference to lagrangian cloud this field is part of
00059         const Cloud& cloud_;
00060 
00061 
00062 public:
00063 
00064     //- Runtime type information
00065     TypeName("LagrangianField");
00066 
00067 
00068     // Constructors
00069 
00070         //- Construct from components
00071         LagrangianField
00072         (
00073             const IOobject& ioObject,
00074             const Cloud& cloud,
00075             const dimensions& dims,
00076             const Field<Type> field
00077         );
00078 
00079         //- Construct from IOobject
00080         LagrangianField
00081         (
00082             const IOobject& ioObject,
00083             const Cloud& cloud
00084         );
00085 
00086         //- Construct from Cloud data
00087         LagrangianField(const Cloud& cloud, const int typeFieldIndex);
00088 
00089         //- Construct as copy
00090         LagrangianField(const LagrangianField<Type>&);
00091 
00092 
00093     // Destructor
00094 
00095         ~LagrangianField();
00096 
00097 
00098     // Member Functions
00099 
00100         // Access
00101 
00102             //- Map field back into Cloud
00103             void map(Cloud& cloud, const int typeFieldIndex);
00104 
00105 
00106         // Check
00107 
00108         // Edit
00109 
00110         // Write
00111 
00112 
00113     // Member Operators
00114 
00115         void operator=(const LagrangianField&);
00116 
00117 
00118     // Friend Functions
00119 
00120     // Friend Operators
00121 
00122     // IOstream Operators
00123 
00124         friend Ostream& operator<<(Ostream&, const LagrangianField&);
00125 };
00126 
00127 
00128 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
00129 
00130 } // End namespace Foam
00131 
00132 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
00133 
00134 #include "LagrangianFieldI.H"
00135 
00136 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
00137 
00138 #endif
00139 
00140 // ************************************************************************* //
For further information go to www.openfoam.org