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