Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #include "calculatedFvsPatchField.H"
00027 #include <finiteVolume/fvPatchFieldMapper.H>
00028
00029
00030
00031 namespace Foam
00032 {
00033
00034 template<class Type>
00035 const word& fvsPatchField<Type>::calculatedType()
00036 {
00037 return calculatedFvsPatchField<Type>::typeName;
00038 }
00039
00040
00041
00042 template<class Type>
00043 calculatedFvsPatchField<Type>::calculatedFvsPatchField
00044 (
00045 const fvPatch& p,
00046 const DimensionedField<Type, surfaceMesh>& iF
00047 )
00048 :
00049 fvsPatchField<Type>(p, iF)
00050 {}
00051
00052
00053 template<class Type>
00054 calculatedFvsPatchField<Type>::calculatedFvsPatchField
00055 (
00056 const calculatedFvsPatchField<Type>& ptf,
00057 const fvPatch& p,
00058 const DimensionedField<Type, surfaceMesh>& iF,
00059 const fvPatchFieldMapper& mapper
00060 )
00061 :
00062 fvsPatchField<Type>(ptf, p, iF, mapper)
00063 {}
00064
00065
00066 template<class Type>
00067 calculatedFvsPatchField<Type>::calculatedFvsPatchField
00068 (
00069 const fvPatch& p,
00070 const DimensionedField<Type, surfaceMesh>& iF,
00071 const dictionary& dict
00072 )
00073 :
00074 fvsPatchField<Type>(p, iF, Field<Type>("value", dict, p.size()))
00075 {}
00076
00077
00078 template<class Type>
00079 calculatedFvsPatchField<Type>::calculatedFvsPatchField
00080 (
00081 const calculatedFvsPatchField<Type>& ptf
00082 )
00083 :
00084 fvsPatchField<Type>(ptf)
00085 {}
00086
00087
00088 template<class Type>
00089 calculatedFvsPatchField<Type>::calculatedFvsPatchField
00090 (
00091 const calculatedFvsPatchField<Type>& ptf,
00092 const DimensionedField<Type, surfaceMesh>& iF
00093 )
00094 :
00095 fvsPatchField<Type>(ptf, iF)
00096 {}
00097
00098
00099 template<class Type>
00100 template<class Type2>
00101 tmp<fvsPatchField<Type> > fvsPatchField<Type>::NewCalculatedType
00102 (
00103 const fvsPatchField<Type2>& pf
00104 )
00105 {
00106 typename patchConstructorTable::iterator patchTypeCstrIter =
00107 patchConstructorTablePtr_->find(pf.patch().type());
00108
00109 if (patchTypeCstrIter != patchConstructorTablePtr_->end())
00110 {
00111 return patchTypeCstrIter()
00112 (
00113 pf.patch(),
00114 Field<Type>::null()
00115 );
00116 }
00117 else
00118 {
00119 return tmp<fvsPatchField<Type> >
00120 (
00121 new calculatedFvsPatchField<Type>
00122 (
00123 pf.patch(),
00124 Field<Type>::null()
00125 )
00126 );
00127 }
00128 }
00129
00130
00131
00132
00133
00134 template<class Type>
00135 void calculatedFvsPatchField<Type>::write(Ostream& os) const
00136 {
00137 fvsPatchField<Type>::write(os);
00138 this->writeEntry("value", os);
00139 }
00140
00141
00142
00143
00144 }
00145
00146