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 "transformFvPatchField.H"
00027 #include <OpenFOAM/IOstreams.H>
00028 #include <OpenFOAM/transformField.H>
00029
00030
00031
00032 namespace Foam
00033 {
00034
00035
00036
00037 template<class Type>
00038 transformFvPatchField<Type>::transformFvPatchField
00039 (
00040 const fvPatch& p,
00041 const DimensionedField<Type, volMesh>& iF
00042 )
00043 :
00044 fvPatchField<Type>(p, iF)
00045 {}
00046
00047
00048 template<class Type>
00049 transformFvPatchField<Type>::transformFvPatchField
00050 (
00051 const transformFvPatchField<Type>& ptf,
00052 const fvPatch& p,
00053 const DimensionedField<Type, volMesh>& iF,
00054 const fvPatchFieldMapper& mapper
00055 )
00056 :
00057 fvPatchField<Type>(ptf, p, iF, mapper)
00058 {}
00059
00060
00061 template<class Type>
00062 transformFvPatchField<Type>::transformFvPatchField
00063 (
00064 const fvPatch& p,
00065 const DimensionedField<Type, volMesh>& iF,
00066 const dictionary& dict
00067 )
00068 :
00069 fvPatchField<Type>(p, iF, dict)
00070 {}
00071
00072
00073 template<class Type>
00074 transformFvPatchField<Type>::transformFvPatchField
00075 (
00076 const transformFvPatchField<Type>& ptf
00077 )
00078 :
00079 fvPatchField<Type>(ptf)
00080 {}
00081
00082
00083 template<class Type>
00084 transformFvPatchField<Type>::transformFvPatchField
00085 (
00086 const transformFvPatchField<Type>& ptf,
00087 const DimensionedField<Type, volMesh>& iF
00088 )
00089 :
00090 fvPatchField<Type>(ptf, iF)
00091 {}
00092
00093
00094
00095
00096 template<class Type>
00097 tmp<Field<Type> > transformFvPatchField<Type>::valueInternalCoeffs
00098 (
00099 const tmp<scalarField>&
00100 ) const
00101 {
00102 return pTraits<Type>::one - snGradTransformDiag();
00103 }
00104
00105
00106 template<class Type>
00107 tmp<Field<Type> > transformFvPatchField<Type>::valueBoundaryCoeffs
00108 (
00109 const tmp<scalarField>&
00110 ) const
00111 {
00112 return
00113 *this
00114 - cmptMultiply
00115 (
00116 valueInternalCoeffs(this->patch().weights()),
00117 this->patchInternalField()
00118 );
00119 }
00120
00121
00122 template<class Type>
00123 tmp<Field<Type> > transformFvPatchField<Type>::gradientInternalCoeffs() const
00124 {
00125 return -this->patch().deltaCoeffs()*snGradTransformDiag();
00126 }
00127
00128
00129 template<class Type>
00130 tmp<Field<Type> > transformFvPatchField<Type>::gradientBoundaryCoeffs() const
00131 {
00132 return
00133 snGrad()
00134 - cmptMultiply(gradientInternalCoeffs(), this->patchInternalField());
00135 }
00136
00137
00138
00139
00140 template<class Type>
00141 void transformFvPatchField<Type>::operator=
00142 (
00143 const fvPatchField<Type>& ptf
00144 )
00145 {
00146 this->evaluate();
00147 }
00148
00149
00150
00151
00152 }
00153
00154