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 namespace Foam
00027 {
00028
00029
00030
00031 template<class Type>
00032 inline void component
00033 (
00034 pointPatchField<typename Field<Type>::cmptType>& sf,
00035 const pointPatchField<Type>& f,
00036 const direction d
00037 )
00038 {}
00039
00040
00041 template<class Type>
00042 inline void T
00043 (
00044 pointPatchField<Type>& f1,
00045 const pointPatchField<Type>& f2
00046 )
00047 {}
00048
00049
00050 template<class Type, int r>
00051 inline void pow
00052 (
00053 Field<typename powProduct<Type, r>::type>& f,
00054 const pointPatchField<Type>& vf
00055 )
00056 {}
00057
00058
00059 template<class Type>
00060 inline void sqr
00061 (
00062 Field<typename outerProduct<Type, Type>::type>& f,
00063 const pointPatchField<Type>& vf
00064 )
00065 {}
00066
00067
00068 template<class Type>
00069 inline void magSqr
00070 (
00071 pointPatchField<scalar>& sf,
00072 const pointPatchField<Type>& f
00073 )
00074 {}
00075
00076
00077 template<class Type>
00078 inline void mag
00079 (
00080 pointPatchField<scalar>& sf,
00081 const pointPatchField<Type>& f
00082 )
00083 {}
00084
00085
00086 template<class Type>
00087 inline void cmptAv
00088 (
00089 pointPatchField<typename Field<Type>::cmptType>& cf,
00090 const pointPatchField<Type>& f
00091 )
00092 {}
00093
00094
00095 template<class Type>
00096 inline void cmptMag
00097 (
00098 pointPatchField<Type>& cf,
00099 const pointPatchField<Type>& f
00100 )
00101 {}
00102
00103
00104 #define BINARY_FUNCTION(func) \
00105 \
00106 template<class Type> \
00107 inline void func \
00108 ( \
00109 pointPatchField<Type>& f, \
00110 const pointPatchField<Type>& f1, \
00111 const pointPatchField<Type>& f2 \
00112 ) \
00113 {} \
00114 \
00115 template<class Type> \
00116 inline void func \
00117 ( \
00118 pointPatchField<Type>& f, \
00119 const pointPatchField<Type>& f1, \
00120 const Type& s \
00121 ) \
00122 {}
00123
00124 BINARY_FUNCTION(max)
00125 BINARY_FUNCTION(min)
00126 BINARY_FUNCTION(cmptMultiply)
00127 BINARY_FUNCTION(cmptDivide)
00128
00129
00130
00131
00132 #define UNARY_OPERATOR(op, opFunc) \
00133 \
00134 template<class Type> \
00135 inline void opFunc \
00136 ( \
00137 pointPatchField<Type>& f, \
00138 const pointPatchField<Type>& f1 \
00139 ) \
00140 {}
00141
00142 UNARY_OPERATOR(-, negate)
00143
00144 #define BINARY_OPERATOR(Type1, Type2, op, opFunc) \
00145 \
00146 template<class Type> \
00147 inline void opFunc \
00148 ( \
00149 pointPatchField<Type>& f, \
00150 const pointPatchField<Type1>& f1, \
00151 const pointPatchField<Type2>& f2 \
00152 ) \
00153 {}
00154
00155 BINARY_OPERATOR(scalar, Type, *, multiply)
00156 BINARY_OPERATOR(Type, scalar, *, multiply)
00157 BINARY_OPERATOR(Type, scalar, /, divide)
00158
00159 #define BINARY_TYPE_OPERATOR_SF(TYPE, op, opFunc) \
00160 \
00161 template<class Type> \
00162 inline void opFunc \
00163 ( \
00164 pointPatchField<Type>& f, \
00165 const TYPE& s, \
00166 const pointPatchField<Type>& f1 \
00167 ) \
00168 {}
00169
00170
00171 #define BINARY_TYPE_OPERATOR_FS(TYPE, op, opFunc) \
00172 \
00173 template<class Type> \
00174 inline void opFunc \
00175 ( \
00176 pointPatchField<Type>& f, \
00177 const pointPatchField<Type>& f1, \
00178 const TYPE& s \
00179 ) \
00180 {}
00181
00182
00183 BINARY_TYPE_OPERATOR_SF(scalar, *, multiply)
00184 BINARY_TYPE_OPERATOR_FS(scalar, *, multiply)
00185 BINARY_TYPE_OPERATOR_FS(scalar, /, divide)
00186
00187
00188 #define PRODUCT_OPERATOR(product, op, opFunc) \
00189 \
00190 template \
00191 < \
00192 class Type1, \
00193 class Type2 \
00194 > \
00195 inline void opFunc \
00196 ( \
00197 pointPatchField \
00198 <typename product<Type1, Type2>::type>& f, \
00199 const pointPatchField<Type1>& f1, \
00200 const pointPatchField<Type2>& f2 \
00201 ) \
00202 {} \
00203 \
00204 template \
00205 < \
00206 class Type, \
00207 class Form, \
00208 class Cmpt, \
00209 int nCmpt \
00210 > \
00211 inline void opFunc \
00212 ( \
00213 pointPatchField \
00214 <typename product<Type, Form>::type>& f, \
00215 const pointPatchField<Type>& f1, \
00216 const VectorSpace<Form,Cmpt,nCmpt>& vs \
00217 ) \
00218 {} \
00219 \
00220 template \
00221 < \
00222 class Form, \
00223 class Cmpt, \
00224 int nCmpt, \
00225 class Type \
00226 > \
00227 inline void opFunc \
00228 ( \
00229 pointPatchField \
00230 <typename product<Form, Type>::type>& f, \
00231 const VectorSpace<Form,Cmpt,nCmpt>& vs, \
00232 const pointPatchField<Type>& f1 \
00233 ) \
00234 {}
00235
00236 PRODUCT_OPERATOR(typeOfSum, +, add)
00237 PRODUCT_OPERATOR(typeOfSum, -, subtract)
00238
00239 PRODUCT_OPERATOR(outerProduct, *, outer)
00240 PRODUCT_OPERATOR(crossProduct, ^, cross)
00241 PRODUCT_OPERATOR(innerProduct, &, dot)
00242 PRODUCT_OPERATOR(scalarProduct, &&, dotdot)
00243
00244 #undef PRODUCT_OPERATOR
00245
00246
00247 inline void hdual
00248 (
00249 pointPatchField<vector>&,
00250 const pointPatchField<tensor>&
00251 )
00252 {}
00253
00254 inline void hdual
00255 (
00256 pointPatchField<tensor>&,
00257 const pointPatchField<vector>&
00258 )
00259 {}
00260
00261 inline void diag
00262 (
00263 pointPatchField<vector>&,
00264 const pointPatchField<tensor>&
00265 )
00266 {}
00267
00268 inline void tr
00269 (
00270 pointPatchField<scalar>&,
00271 const pointPatchField<tensor>&
00272 )
00273 {}
00274
00275 inline void dev
00276 (
00277 pointPatchField<tensor>&,
00278 const pointPatchField<tensor>&
00279 )
00280 {}
00281
00282 inline void dev2
00283 (
00284 pointPatchField<tensor>&,
00285 const pointPatchField<tensor>&
00286 )
00287 {}
00288
00289 inline void det
00290 (
00291 pointPatchField<scalar>&,
00292 const pointPatchField<tensor>&
00293 )
00294 {}
00295
00296 inline void inv
00297 (
00298 pointPatchField<tensor>&,
00299 const pointPatchField<tensor>&
00300 )
00301 {}
00302
00303 inline void symm
00304 (
00305 pointPatchField<tensor>&,
00306 const pointPatchField<tensor>&
00307 )
00308 {}
00309
00310 inline void twoSymm
00311 (
00312 pointPatchField<tensor>&,
00313 const pointPatchField<tensor>&
00314 )
00315 {}
00316
00317 inline void skew
00318 (
00319 pointPatchField<tensor>&,
00320 const pointPatchField<tensor>&
00321 )
00322 {}
00323
00324 inline void eigenValues
00325 (
00326 pointPatchField<vector>&,
00327 const pointPatchField<tensor>&
00328 )
00329 {}
00330
00331 inline void eigenVectors
00332 (
00333 pointPatchField<tensor>&,
00334 const pointPatchField<tensor>&
00335 )
00336 {}
00337
00338
00339
00340
00341 }
00342
00343
00344
00345 #include <OpenFOAM/undefFieldFunctionsM.H>
00346
00347