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
00027
00028
00029
00030
00031
00032
00033
00034
00035 #ifndef genericFvPatchField_H
00036 #define genericFvPatchField_H
00037
00038 #include <finiteVolume/calculatedFvPatchField.H>
00039 #include <OpenFOAM/HashPtrTable.H>
00040
00041
00042
00043 namespace Foam
00044 {
00045
00046
00047
00048
00049
00050 template<class Type>
00051 class genericFvPatchField
00052 :
00053 public calculatedFvPatchField<Type>
00054 {
00055
00056
00057 word actualTypeName_;
00058 dictionary dict_;
00059
00060 HashPtrTable<scalarField> scalarFields_;
00061 HashPtrTable<vectorField> vectorFields_;
00062 HashPtrTable<sphericalTensorField> sphericalTensorFields_;
00063 HashPtrTable<symmTensorField> symmTensorFields_;
00064 HashPtrTable<tensorField> tensorFields_;
00065
00066
00067 public:
00068
00069
00070 TypeName("generic");
00071
00072
00073
00074
00075
00076 genericFvPatchField
00077 (
00078 const fvPatch&,
00079 const DimensionedField<Type, volMesh>&
00080 );
00081
00082
00083 genericFvPatchField
00084 (
00085 const fvPatch&,
00086 const DimensionedField<Type, volMesh>&,
00087 const dictionary&
00088 );
00089
00090
00091 genericFvPatchField
00092 (
00093 const genericFvPatchField<Type>&,
00094 const fvPatch&,
00095 const DimensionedField<Type, volMesh>&,
00096 const fvPatchFieldMapper&
00097 );
00098
00099
00100 genericFvPatchField
00101 (
00102 const genericFvPatchField<Type>&
00103 );
00104
00105
00106 virtual tmp<fvPatchField<Type> > clone() const
00107 {
00108 return tmp<fvPatchField<Type> >
00109 (
00110 new genericFvPatchField<Type>(*this)
00111 );
00112 }
00113
00114
00115 genericFvPatchField
00116 (
00117 const genericFvPatchField<Type>&,
00118 const DimensionedField<Type, volMesh>&
00119 );
00120
00121
00122 virtual tmp<fvPatchField<Type> > clone
00123 (
00124 const DimensionedField<Type, volMesh>& iF
00125 ) const
00126 {
00127 return tmp<fvPatchField<Type> >
00128 (
00129 new genericFvPatchField<Type>(*this, iF)
00130 );
00131 }
00132
00133
00134
00135
00136
00137
00138
00139 virtual void autoMap
00140 (
00141 const fvPatchFieldMapper&
00142 );
00143
00144
00145 virtual void rmap
00146 (
00147 const fvPatchField<Type>&,
00148 const labelList&
00149 );
00150
00151
00152
00153
00154
00155
00156 virtual tmp<Field<Type> > valueInternalCoeffs
00157 (
00158 const tmp<scalarField>&
00159 ) const;
00160
00161
00162
00163 virtual tmp<Field<Type> > valueBoundaryCoeffs
00164 (
00165 const tmp<scalarField>&
00166 ) const;
00167
00168
00169
00170 tmp<Field<Type> > gradientInternalCoeffs() const;
00171
00172
00173
00174 tmp<Field<Type> > gradientBoundaryCoeffs() const;
00175
00176
00177
00178 virtual void write(Ostream&) const;
00179 };
00180
00181
00182
00183
00184 }
00185
00186
00187
00188 #ifdef NoRepository
00189 # include "genericFvPatchField.C"
00190 #endif
00191
00192
00193
00194 #endif
00195
00196