Initial commit for version 2.0.x patch release
[OpenFOAM-2.0.x.git] / src / finiteVolume / fields / fvsPatchFields / basic / calculated / calculatedFvsPatchField.C
bloba43a8e934cdf974ce56a44c2113f882fe4603a4a
1 /*---------------------------------------------------------------------------*\
2   =========                 |
3   \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
4    \\    /   O peration     |
5     \\  /    A nd           | Copyright (C) 2004-2010 OpenCFD Ltd.
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 \*---------------------------------------------------------------------------*/
26 #include "calculatedFvsPatchField.H"
27 #include "fvPatchFieldMapper.H"
29 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
31 namespace Foam
34 template<class Type>
35 const word& fvsPatchField<Type>::calculatedType()
37     return calculatedFvsPatchField<Type>::typeName;
40 // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
42 template<class Type>
43 calculatedFvsPatchField<Type>::calculatedFvsPatchField
45     const fvPatch& p,
46     const DimensionedField<Type, surfaceMesh>& iF
49     fvsPatchField<Type>(p, iF)
53 template<class Type>
54 calculatedFvsPatchField<Type>::calculatedFvsPatchField
56     const calculatedFvsPatchField<Type>& ptf,
57     const fvPatch& p,
58     const DimensionedField<Type, surfaceMesh>& iF,
59     const fvPatchFieldMapper& mapper
62     fvsPatchField<Type>(ptf, p, iF, mapper)
66 template<class Type>
67 calculatedFvsPatchField<Type>::calculatedFvsPatchField
69     const fvPatch& p,
70     const DimensionedField<Type, surfaceMesh>& iF,
71     const dictionary& dict
74     fvsPatchField<Type>(p, iF, Field<Type>("value", dict, p.size()))
78 template<class Type>
79 calculatedFvsPatchField<Type>::calculatedFvsPatchField
81     const calculatedFvsPatchField<Type>& ptf
84     fvsPatchField<Type>(ptf)
88 template<class Type>
89 calculatedFvsPatchField<Type>::calculatedFvsPatchField
91     const calculatedFvsPatchField<Type>& ptf,
92     const DimensionedField<Type, surfaceMesh>& iF
95     fvsPatchField<Type>(ptf, iF)
99 template<class Type>
100 template<class Type2>
101 tmp<fvsPatchField<Type> > fvsPatchField<Type>::NewCalculatedType
103     const fvsPatchField<Type2>& pf
106     typename patchConstructorTable::iterator patchTypeCstrIter =
107         patchConstructorTablePtr_->find(pf.patch().type());
109     if (patchTypeCstrIter != patchConstructorTablePtr_->end())
110     {
111         return patchTypeCstrIter()
112         (
113             pf.patch(),
114             Field<Type>::null()
115         );
116     }
117     else
118     {
119         return tmp<fvsPatchField<Type> >
120         (
121             new calculatedFvsPatchField<Type>
122             (
123                 pf.patch(),
124                 Field<Type>::null()
125             )
126         );
127     }
131 // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
133 // Write
134 template<class Type>
135 void calculatedFvsPatchField<Type>::write(Ostream& os) const
137     fvsPatchField<Type>::write(os);
138     this->writeEntry("value", os);
142 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
144 } // End namespace Foam
146 // ************************************************************************* //