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 <finiteVolume/outletInletFvPatchField.H>
00027
00028
00029
00030 namespace Foam
00031 {
00032
00033
00034
00035 template<class Type>
00036 outletInletFvPatchField<Type>::outletInletFvPatchField
00037 (
00038 const fvPatch& p,
00039 const DimensionedField<Type, volMesh>& iF
00040 )
00041 :
00042 mixedFvPatchField<Type>(p, iF)
00043 {
00044 this->refValue() = *this;
00045 this->refGrad() = pTraits<Type>::zero;
00046 this->valueFraction() = 0.0;
00047 }
00048
00049
00050 template<class Type>
00051 outletInletFvPatchField<Type>::outletInletFvPatchField
00052 (
00053 const outletInletFvPatchField<Type>& ptf,
00054 const fvPatch& p,
00055 const DimensionedField<Type, volMesh>& iF,
00056 const fvPatchFieldMapper& mapper
00057 )
00058 :
00059 mixedFvPatchField<Type>(ptf, p, iF, mapper)
00060 {}
00061
00062
00063 template<class Type>
00064 outletInletFvPatchField<Type>::outletInletFvPatchField
00065 (
00066 const fvPatch& p,
00067 const DimensionedField<Type, volMesh>& iF,
00068 const dictionary& dict
00069 )
00070 :
00071 mixedFvPatchField<Type>(p, iF)
00072 {
00073 this->refValue() = Field<Type>("outletValue", dict, p.size());
00074
00075 if (dict.found("value"))
00076 {
00077 fvPatchField<Type>::operator=
00078 (
00079 Field<Type>("value", dict, p.size())
00080 );
00081 }
00082 else
00083 {
00084 fvPatchField<Type>::operator=(this->refValue());
00085 }
00086
00087 this->refGrad() = pTraits<Type>::zero;
00088 this->valueFraction() = 0.0;
00089 }
00090
00091
00092 template<class Type>
00093 outletInletFvPatchField<Type>::outletInletFvPatchField
00094 (
00095 const outletInletFvPatchField<Type>& ptf
00096 )
00097 :
00098 mixedFvPatchField<Type>(ptf)
00099 {}
00100
00101
00102 template<class Type>
00103 outletInletFvPatchField<Type>::outletInletFvPatchField
00104 (
00105 const outletInletFvPatchField<Type>& ptf,
00106 const DimensionedField<Type, volMesh>& iF
00107 )
00108 :
00109 mixedFvPatchField<Type>(ptf, iF)
00110 {}
00111
00112
00113
00114
00115 template<class Type>
00116 void outletInletFvPatchField<Type>::updateCoeffs()
00117 {
00118 if (this->updated())
00119 {
00120 return;
00121 }
00122
00123 const fvsPatchField<scalar>& phip = this->patch().lookupPatchField
00124 (
00125 "phi",
00126 reinterpret_cast<const surfaceScalarField*>(0),
00127 reinterpret_cast<const scalar*>(0)
00128 );
00129
00130 this->valueFraction() = pos(phip);
00131
00132 mixedFvPatchField<Type>::updateCoeffs();
00133 }
00134
00135
00136 template<class Type>
00137 void outletInletFvPatchField<Type>::write(Ostream& os) const
00138 {
00139 fvPatchField<Type>::write(os);
00140 this->refValue().writeEntry("outletValue", os);
00141 this->writeEntry("value", os);
00142 }
00143
00144
00145
00146
00147 }
00148
00149