FreeFOAM The Cross-Platform CFD Toolkit
Hosted by SourceForge:
Get FreeFOAM at SourceForge.net.
            Fast, secure and Free Open Source software downloads

outletMappedUniformInletFvPatchField.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-2010 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
00013     the Free Software Foundation, either version 3 of the License, or
00014     (at your 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, see <http://www.gnu.org/licenses/>.
00023 
00024 Class
00025     Foam::outletMappedUniformInletFvPatchField
00026 
00027 Description
00028     Averages the field over the "outlet" patch specified by name
00029     "outletPatchName" and applies this as the uniform value of the field
00030     over this patch.
00031 
00032 SourceFiles
00033     outletMappedUniformInletFvPatchField.C
00034 
00035 \*---------------------------------------------------------------------------*/
00036 
00037 #ifndef outletMappedUniformInletFvPatchField_H
00038 #define outletMappedUniformInletFvPatchField_H
00039 
00040 #include <finiteVolume/fixedValueFvPatchFields.H>
00041 
00042 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
00043 
00044 namespace Foam
00045 {
00046 
00047 /*---------------------------------------------------------------------------*\
00048               Class outletMappedUniformInletFvPatch Declaration
00049 \*---------------------------------------------------------------------------*/
00050 
00051 template<class Type>
00052 class outletMappedUniformInletFvPatchField
00053 :
00054     public fixedValueFvPatchField<Type>
00055 {
00056     // Private data
00057 
00058         //- Name of the outlet patch to be mapped
00059         word outletPatchName_;
00060 
00061        //- Name of the flux transporting the field
00062         word phiName_;
00063 
00064 
00065 public:
00066 
00067     //- Runtime type information
00068     TypeName("outletMappedUniformInlet");
00069 
00070 
00071     // Constructors
00072 
00073         //- Construct from patch and internal field
00074         outletMappedUniformInletFvPatchField
00075         (
00076             const fvPatch&,
00077             const DimensionedField<Type, volMesh>&
00078         );
00079 
00080         //- Construct from patch, internal field and dictionary
00081         outletMappedUniformInletFvPatchField
00082         (
00083             const fvPatch&,
00084             const DimensionedField<Type, volMesh>&,
00085             const dictionary&
00086         );
00087 
00088         //- Construct by mapping given outletMappedUniformInletFvPatchField
00089         //  onto a new patch
00090         outletMappedUniformInletFvPatchField
00091         (
00092             const outletMappedUniformInletFvPatchField<Type>&,
00093             const fvPatch&,
00094             const DimensionedField<Type, volMesh>&,
00095             const fvPatchFieldMapper&
00096         );
00097 
00098         //- Construct as copy
00099         outletMappedUniformInletFvPatchField
00100         (
00101             const outletMappedUniformInletFvPatchField<Type>&
00102         );
00103 
00104         //- Construct and return a clone
00105         virtual tmp<fvPatchField<Type> > clone() const
00106         {
00107             return tmp<fvPatchField<Type> >
00108             (
00109                 new outletMappedUniformInletFvPatchField<Type>(*this)
00110             );
00111         }
00112 
00113         //- Construct as copy setting internal field reference
00114         outletMappedUniformInletFvPatchField
00115         (
00116             const outletMappedUniformInletFvPatchField<Type>&,
00117             const DimensionedField<Type, volMesh>&
00118         );
00119 
00120         //- Construct and return a clone setting internal field reference
00121         virtual tmp<fvPatchField<Type> > clone
00122         (
00123             const DimensionedField<Type, volMesh>& iF
00124         ) const
00125         {
00126             return tmp<fvPatchField<Type> >
00127             (
00128                 new outletMappedUniformInletFvPatchField<Type>(*this, iF)
00129             );
00130         }
00131 
00132 
00133     // Member functions
00134 
00135         // Access
00136 
00137             //- Name of the outlet patch to be mapped
00138             const word& outletPatchName() const
00139             {
00140                 return outletPatchName_;
00141             }
00142 
00143 
00144         // Evaluation functions
00145 
00146             //- Update the coefficients associated with the patch field
00147             virtual void updateCoeffs();
00148 
00149 
00150         //- Write
00151         virtual void write(Ostream&) const;
00152 };
00153 
00154 
00155 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
00156 
00157 } // End namespace Foam
00158 
00159 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
00160 
00161 #ifdef NoRepository
00162 #   include "outletMappedUniformInletFvPatchField.C"
00163 #endif
00164 
00165 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
00166 
00167 #endif
00168 
00169 // ************************************************************************* //
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines