OpenFOAM logo
Open Source CFD Toolkit

WedgeTetPointPatchField.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     WedgeTetPointPatchField
00027 
00028 Description
00029     Wedge front and back plane patch field
00030 
00031 SourceFiles
00032     WedgeTetPointPatchField.C
00033 
00034 \*---------------------------------------------------------------------------*/
00035 
00036 #ifndef WedgeTetPointPatchField_H
00037 #define WedgeTetPointPatchField_H
00038 
00039 #include "ZeroGradientTetPointPatchField.H"
00040 
00041 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
00042 
00043 namespace Foam
00044 {
00045 
00046 /*---------------------------------------------------------------------------*\
00047                     Class WedgeTetPointPatchField Declaration
00048 \*---------------------------------------------------------------------------*/
00049 
00050 template
00051 <
00052     template<class> class PatchField,
00053     class PointPatch,
00054     class WedgePointPatch,
00055     class Type
00056 >
00057 class WedgeTetPointPatchField
00058 :
00059     public PatchField<Type>
00060 {
00061 
00062 public:
00063 
00064     //- Runtime type information
00065     TypeName(WedgePointPatch::typeName_());
00066 
00067 
00068     // Constructors
00069 
00070         //- Construct from patch and internal field
00071         WedgeTetPointPatchField
00072         (
00073             const PointPatch&,
00074             const Field<Type>&
00075         );
00076 
00077         //- Construct from patch and internal field and patch field
00078         WedgeTetPointPatchField
00079         (
00080             const PointPatch&,
00081             const Field<Type>&,
00082             const Field<Type>&
00083         );
00084 
00085         //- Construct from patch, internal field and dictionary
00086         WedgeTetPointPatchField
00087         (
00088             const PointPatch&,
00089             const Field<Type>&,
00090             const dictionary&
00091         );
00092 
00093         //- Construct by mapping given patchField<Type> onto a new patch
00094         WedgeTetPointPatchField
00095         (
00096             const WedgeTetPointPatchField
00097                 <PatchField, PointPatch, WedgePointPatch, Type>&,
00098             const PointPatch&,
00099             const Field<Type>&,
00100             const TetPointPatchFieldMapper&
00101         );
00102 
00103         //- Construct and return a clone
00104         virtual autoPtr<PatchField<Type> > clone() const
00105         {
00106             return autoPtr<PatchField<Type> >
00107             (
00108                 new WedgeTetPointPatchField
00109                 <PatchField, PointPatch, WedgePointPatch, Type>
00110                 (
00111                     *this
00112                 )
00113             );
00114         }
00115 
00116         //- Construct as copy setting internal field reference
00117         WedgeTetPointPatchField
00118         (
00119             const WedgeTetPointPatchField
00120                 <PatchField, PointPatch, WedgePointPatch, Type>&,
00121             const Field<Type>&
00122         );
00123 
00124         //- Construct and return a clone setting internal field reference
00125         virtual autoPtr<PatchField<Type> > clone
00126         (
00127             const Field<Type>& iF
00128         ) const
00129         {
00130             return autoPtr<PatchField<Type> >
00131             (
00132                 new WedgeTetPointPatchField
00133                 <PatchField,PointPatch, WedgePointPatch, Type>
00134                 (
00135                     *this, iF
00136                 )
00137             );
00138         }
00139 
00140 
00141     // Member functions
00142 
00143         //- Update the patch field
00144         virtual void evaluate();
00145 };
00146 
00147 
00148 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
00149 
00150 } // End namespace Foam
00151 
00152 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
00153 
00154 #ifdef NoRepository
00155 #    include "WedgeTetPointPatchField.C"
00156 #endif
00157 
00158 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
00159 
00160 #endif
00161 
00162 // ************************************************************************* //
For further information go to www.openfoam.org