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
00036 #ifndef GeometricScalarField_H
00037 #define GeometricScalarField_H
00038
00039 #include "GeometricField.H"
00040 #include "scalar.H"
00041
00042
00043
00044 namespace Foam
00045 {
00046
00047
00048
00049 template<template<class> class PatchField, class GeoMesh>
00050 void stabilise
00051 (
00052 GeometricField<scalar, PatchField, GeoMesh>&,
00053 const GeometricField<scalar, PatchField, GeoMesh>&,
00054 const dimensioned<scalar>&
00055 );
00056
00057 template<template<class> class PatchField, class GeoMesh>
00058 tmp<GeometricField<scalar, PatchField, GeoMesh> > stabilise
00059 (
00060 const GeometricField<scalar, PatchField, GeoMesh>&,
00061 const dimensioned<scalar>&
00062 );
00063
00064 template<template<class> class PatchField, class GeoMesh>
00065 tmp<GeometricField<scalar, PatchField, GeoMesh> > stabilise
00066 (
00067 const tmp<GeometricField<scalar, PatchField, GeoMesh> >&,
00068 const dimensioned<scalar>&
00069 );
00070
00071
00072 template<template<class> class PatchField, class GeoMesh>
00073 void divide
00074 (
00075 GeometricField<scalar, PatchField, GeoMesh>&,
00076 const dimensioned<scalar>&,
00077 const GeometricField<scalar, PatchField, GeoMesh>&
00078 );
00079
00080 template<template<class> class PatchField, class GeoMesh>
00081 tmp<GeometricField<scalar, PatchField, GeoMesh> > operator/
00082 (
00083 const dimensioned<scalar>&,
00084 const GeometricField<scalar, PatchField, GeoMesh>&
00085 );
00086
00087 template<template<class> class PatchField, class GeoMesh>
00088 tmp<GeometricField<scalar, PatchField, GeoMesh> > operator/
00089 (
00090 const dimensioned<scalar>&,
00091 const tmp<GeometricField<scalar, PatchField, GeoMesh> >&
00092 );
00093
00094 template<template<class> class PatchField, class GeoMesh>
00095 tmp<GeometricField<scalar, PatchField, GeoMesh> > operator/
00096 (
00097 const scalar&,
00098 const GeometricField<scalar, PatchField, GeoMesh>&
00099 );
00100
00101 template<template<class> class PatchField, class GeoMesh>
00102 tmp<GeometricField<scalar, PatchField, GeoMesh> > operator/
00103 (
00104 const scalar&,
00105 const tmp<GeometricField<scalar, PatchField, GeoMesh> >&
00106 );
00107
00108
00109
00110
00111 template<template<class> class PatchField, class GeoMesh>
00112 void pow
00113 (
00114 GeometricField<scalar, PatchField, GeoMesh>&,
00115 const GeometricField<scalar, PatchField, GeoMesh>&,
00116 const GeometricField<scalar, PatchField, GeoMesh>&
00117 );
00118
00119 template<template<class> class PatchField, class GeoMesh>
00120 tmp<GeometricField<scalar, PatchField, GeoMesh> > pow
00121 (
00122 const GeometricField<scalar, PatchField, GeoMesh>&,
00123 const GeometricField<scalar, PatchField, GeoMesh>&
00124 );
00125
00126 template<template<class> class PatchField, class GeoMesh>
00127 tmp<GeometricField<scalar, PatchField, GeoMesh> > pow
00128 (
00129 const tmp<GeometricField<scalar, PatchField, GeoMesh> >&,
00130 const GeometricField<scalar, PatchField, GeoMesh>&
00131 );
00132
00133 template<template<class> class PatchField, class GeoMesh>
00134 tmp<GeometricField<scalar, PatchField, GeoMesh> > pow
00135 (
00136 const GeometricField<scalar, PatchField, GeoMesh>&,
00137 const tmp<GeometricField<scalar, PatchField, GeoMesh> >&
00138 );
00139
00140 template<template<class> class PatchField, class GeoMesh>
00141 tmp<GeometricField<scalar, PatchField, GeoMesh> > pow
00142 (
00143 const tmp<GeometricField<scalar, PatchField, GeoMesh> >&,
00144 const tmp<GeometricField<scalar, PatchField, GeoMesh> >&
00145 );
00146
00147
00148 template<template<class> class PatchField, class GeoMesh>
00149 void pow
00150 (
00151 GeometricField<scalar, PatchField, GeoMesh>&,
00152 const GeometricField<scalar, PatchField, GeoMesh>&,
00153 const dimensioned<scalar>&
00154 );
00155
00156 template<template<class> class PatchField, class GeoMesh>
00157 tmp<GeometricField<scalar, PatchField, GeoMesh> > pow
00158 (
00159 const GeometricField<scalar, PatchField, GeoMesh>&,
00160 const dimensioned<scalar>&
00161 );
00162
00163 template<template<class> class PatchField, class GeoMesh>
00164 tmp<GeometricField<scalar, PatchField, GeoMesh> > pow
00165 (
00166 const tmp<GeometricField<scalar, PatchField, GeoMesh> >&,
00167 const dimensioned<scalar>&
00168 );
00169
00170 template<template<class> class PatchField, class GeoMesh>
00171 tmp<GeometricField<scalar, PatchField, GeoMesh> > pow
00172 (
00173 const GeometricField<scalar, PatchField, GeoMesh>&,
00174 const scalar&
00175 );
00176
00177 template<template<class> class PatchField, class GeoMesh>
00178 tmp<GeometricField<scalar, PatchField, GeoMesh> > pow
00179 (
00180 const tmp<GeometricField<scalar, PatchField, GeoMesh> >&,
00181 const scalar&
00182 );
00183
00184
00185 template<template<class> class PatchField, class GeoMesh>
00186 void pow
00187 (
00188 GeometricField<scalar, PatchField, GeoMesh>&,
00189 const dimensioned<scalar>&,
00190 const GeometricField<scalar, PatchField, GeoMesh>&
00191 );
00192
00193 template<template<class> class PatchField, class GeoMesh>
00194 tmp<GeometricField<scalar, PatchField, GeoMesh> > pow
00195 (
00196 const dimensioned<scalar>&,
00197 const GeometricField<scalar, PatchField, GeoMesh>&
00198 );
00199
00200 template<template<class> class PatchField, class GeoMesh>
00201 tmp<GeometricField<scalar, PatchField, GeoMesh> > pow
00202 (
00203 const dimensioned<scalar>&,
00204 const tmp<GeometricField<scalar, PatchField, GeoMesh> >&
00205 );
00206
00207 template<template<class> class PatchField, class GeoMesh>
00208 tmp<GeometricField<scalar, PatchField, GeoMesh> > pow
00209 (
00210 const scalar&,
00211 const GeometricField<scalar, PatchField, GeoMesh>&
00212 );
00213
00214 template<template<class> class PatchField, class GeoMesh>
00215 tmp<GeometricField<scalar, PatchField, GeoMesh> > pow
00216 (
00217 const scalar&,
00218 const tmp<GeometricField<scalar, PatchField, GeoMesh> >&
00219 );
00220
00221
00222 #define transFunc(func) \
00223 template<template<class> class PatchField, class GeoMesh> \
00224 void func \
00225 ( \
00226 GeometricField<scalar, PatchField, GeoMesh>& Res, \
00227 const GeometricField<scalar, PatchField, GeoMesh>& sf \
00228 ); \
00229 \
00230 template<template<class> class PatchField, class GeoMesh> \
00231 tmp<GeometricField<scalar, PatchField, GeoMesh> > func \
00232 ( \
00233 const GeometricField<scalar, PatchField, GeoMesh>& \
00234 ); \
00235 \
00236 template<template<class> class PatchField, class GeoMesh> \
00237 tmp<GeometricField<scalar, PatchField, GeoMesh> > func \
00238 ( \
00239 const tmp<GeometricField<scalar, PatchField, GeoMesh> >& \
00240 );
00241
00242 transFunc(pow3)
00243 transFunc(pow4)
00244 transFunc(sqrt)
00245 transFunc(sign)
00246 transFunc(pos)
00247 transFunc(neg)
00248 transFunc(exp)
00249 transFunc(log)
00250 transFunc(log10)
00251 transFunc(sin)
00252 transFunc(cos)
00253 transFunc(tan)
00254 transFunc(asin)
00255 transFunc(acos)
00256 transFunc(atan)
00257 transFunc(sinh)
00258 transFunc(cosh)
00259 transFunc(tanh)
00260 transFunc(asinh)
00261 transFunc(acosh)
00262 transFunc(atanh)
00263 transFunc(erf)
00264 transFunc(erfc)
00265 transFunc(lgamma)
00266 transFunc(j0)
00267 transFunc(j1)
00268 transFunc(y0)
00269 transFunc(y1)
00270
00271 #undef transFunc
00272
00273
00274 #define transFunc(func) \
00275 template<template<class> class PatchField, class GeoMesh> \
00276 void func \
00277 ( \
00278 GeometricField<scalar, PatchField, GeoMesh>& Res, \
00279 const int n, \
00280 const GeometricField<scalar, PatchField, GeoMesh>& sf \
00281 ); \
00282 \
00283 template<template<class> class PatchField, class GeoMesh> \
00284 tmp<GeometricField<scalar, PatchField, GeoMesh> > func \
00285 ( \
00286 const int n, \
00287 const GeometricField<scalar, PatchField, GeoMesh>& \
00288 ); \
00289 \
00290 template<template<class> class PatchField, class GeoMesh> \
00291 tmp<GeometricField<scalar, PatchField, GeoMesh> > func \
00292 ( \
00293 const int n, \
00294 const tmp<GeometricField<scalar, PatchField, GeoMesh> >& \
00295 );
00296
00297 transFunc(jn)
00298 transFunc(yn)
00299
00300 #undef transFunc
00301
00302
00303
00304
00305 }
00306
00307
00308
00309 #ifdef NoRepository
00310 # include "GeometricScalarField.C"
00311 #endif
00312
00313
00314
00315
00316 #endif
00317
00318