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

calculatedPointPatchField.C

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 \*---------------------------------------------------------------------------*/
00025 
00026 #include <OpenFOAM/calculatedPointPatchField.H>
00027 
00028 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
00029 
00030 namespace Foam
00031 {
00032 
00033 template<class Type>
00034 const word& pointPatchField<Type>::calculatedType()
00035 {
00036     return calculatedPointPatchField<Type>::typeName;
00037 }
00038 
00039 
00040 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
00041 
00042 template<class Type>
00043 calculatedPointPatchField<Type>::calculatedPointPatchField
00044 (
00045     const pointPatch& p,
00046     const DimensionedField<Type, pointMesh>& iF
00047 )
00048 :
00049     pointPatchField<Type>(p, iF)
00050 {}
00051 
00052 
00053 template<class Type>
00054 calculatedPointPatchField<Type>::calculatedPointPatchField
00055 (
00056     const pointPatch& p,
00057     const DimensionedField<Type, pointMesh>& iF,
00058     const dictionary& dict
00059 )
00060 :
00061     pointPatchField<Type>(p, iF, dict)
00062 {}
00063 
00064 
00065 template<class Type>
00066 calculatedPointPatchField<Type>::calculatedPointPatchField
00067 (
00068     const calculatedPointPatchField<Type>& ptf,
00069     const pointPatch& p,
00070     const DimensionedField<Type, pointMesh>& iF,
00071     const pointPatchFieldMapper&
00072 )
00073 :
00074     pointPatchField<Type>(p, iF)
00075 {}
00076 
00077 
00078 template<class Type>
00079 calculatedPointPatchField<Type>::calculatedPointPatchField
00080 (
00081     const calculatedPointPatchField<Type>& ptf,
00082     const DimensionedField<Type, pointMesh>& iF
00083 )
00084 :
00085     pointPatchField<Type>(ptf, iF)
00086 {}
00087 
00088 
00089 template<class Type>
00090 template<class Type2>
00091 autoPtr<pointPatchField<Type> >
00092 pointPatchField<Type>::NewCalculatedType
00093 (
00094     const pointPatchField<Type2>& pf
00095 )
00096 {
00097     typename pointPatchConstructorTable::iterator patchTypeCstrIter =
00098         pointPatchConstructorTablePtr_->find(pf.patch().type());
00099 
00100     if (patchTypeCstrIter != pointPatchConstructorTablePtr_->end())
00101     {
00102         return autoPtr<pointPatchField<Type> >
00103         (
00104             patchTypeCstrIter()
00105             (
00106                 pf.patch(),
00107                 Field<Type>::null()
00108             )
00109         );
00110     }
00111     else
00112     {
00113         return autoPtr<pointPatchField<Type> >
00114         (
00115             new calculatedPointPatchField<Type>
00116             (
00117                 pf.patch(),
00118                 Field<Type>::null()
00119             )
00120         );
00121     }
00122 }
00123 
00124 
00125 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
00126 
00127 } // End namespace Foam
00128 
00129 // ************************ vim: set sw=4 sts=4 et: ************************ //
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines