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 scalarFieldField_H
00036 #define scalarFieldField_H
00037
00038 #include <OpenFOAM/FieldField.H>
00039 #include <OpenFOAM/scalar.H>
00040
00041 #define TEMPLATE template<template<class> class Field>
00042 #include <OpenFOAM/FieldFieldFunctionsM.H>
00043
00044
00045
00046 namespace Foam
00047 {
00048
00049
00050
00051 template<template<class> class Field>
00052 void stabilise
00053 (
00054 FieldField<Field, scalar>& Res,
00055 const FieldField<Field, scalar>& sf,
00056 const scalar s
00057 );
00058
00059 template<template<class> class Field>
00060 tmp<FieldField<Field, scalar> > stabilise
00061 (
00062 const FieldField<Field, scalar>&,
00063 const scalar s
00064 );
00065
00066 template<template<class> class Field>
00067 tmp<FieldField<Field, scalar> > stabilise
00068 (
00069 const tmp<FieldField<Field, scalar> >&,
00070 const scalar s
00071 );
00072
00073
00074
00075
00076 BINARY_TYPE_OPERATOR(scalar, scalar, scalar, +, add)
00077 BINARY_TYPE_OPERATOR(scalar, scalar, scalar, -, subtract)
00078
00079 BINARY_OPERATOR(scalar, scalar, scalar, *, multiply)
00080 BINARY_OPERATOR(scalar, scalar, scalar, /, divide)
00081
00082 BINARY_TYPE_OPERATOR_SF(scalar, scalar, scalar, /, divide)
00083
00084 BINARY_FUNCTION(scalar, scalar, scalar, pow)
00085 BINARY_TYPE_FUNCTION(scalar, scalar, scalar, pow)
00086
00087 BINARY_FUNCTION(scalar, scalar, scalar, atan2)
00088 BINARY_TYPE_FUNCTION(scalar, scalar, scalar, atan2)
00089
00090
00091
00092
00093 UNARY_FUNCTION(scalar, scalar, pow3)
00094 UNARY_FUNCTION(scalar, scalar, pow4)
00095 UNARY_FUNCTION(scalar, scalar, pow5)
00096 UNARY_FUNCTION(scalar, scalar, pow6)
00097 UNARY_FUNCTION(scalar, scalar, sqrt)
00098 UNARY_FUNCTION(scalar, scalar, sign)
00099 UNARY_FUNCTION(scalar, scalar, pos)
00100 UNARY_FUNCTION(scalar, scalar, neg)
00101 UNARY_FUNCTION(scalar, scalar, exp)
00102 UNARY_FUNCTION(scalar, scalar, log)
00103 UNARY_FUNCTION(scalar, scalar, log10)
00104 UNARY_FUNCTION(scalar, scalar, sin)
00105 UNARY_FUNCTION(scalar, scalar, cos)
00106 UNARY_FUNCTION(scalar, scalar, tan)
00107 UNARY_FUNCTION(scalar, scalar, asin)
00108 UNARY_FUNCTION(scalar, scalar, acos)
00109 UNARY_FUNCTION(scalar, scalar, atan)
00110 UNARY_FUNCTION(scalar, scalar, sinh)
00111 UNARY_FUNCTION(scalar, scalar, cosh)
00112 UNARY_FUNCTION(scalar, scalar, tanh)
00113 UNARY_FUNCTION(scalar, scalar, asinh)
00114 UNARY_FUNCTION(scalar, scalar, acosh)
00115 UNARY_FUNCTION(scalar, scalar, atanh)
00116 UNARY_FUNCTION(scalar, scalar, erf)
00117 UNARY_FUNCTION(scalar, scalar, erfc)
00118 UNARY_FUNCTION(scalar, scalar, lgamma)
00119 UNARY_FUNCTION(scalar, scalar, j0)
00120 UNARY_FUNCTION(scalar, scalar, j1)
00121 UNARY_FUNCTION(scalar, scalar, y0)
00122 UNARY_FUNCTION(scalar, scalar, y1)
00123
00124
00125 #define BesselFunc(func) \
00126 void func \
00127 ( \
00128 FieldField<Field, scalar>& Res, \
00129 const int n, \
00130 const FieldField<Field, scalar>& sf \
00131 ); \
00132 tmp<scalarField> func(const int n, const FieldField<Field, scalar>&); \
00133 tmp<scalarField> func(const int n, const tmp<FieldField<Field, scalar> >&);
00134
00135 BesselFunc(jn)
00136 BesselFunc(yn)
00137
00138 #undef BesselFunc
00139
00140
00141
00142
00143 }
00144
00145
00146
00147 #include <OpenFOAM/undefFieldFunctionsM.H>
00148
00149 #ifdef NoRepository
00150 # include <OpenFOAM/scalarFieldField.C>
00151 #endif
00152
00153
00154
00155 #endif
00156
00157