28 #define TEMPLATE template<class Type, class GeoMesh>
38 template<
class Type,
class GeoMesh,
int r>
42 const DimensionedField<Type, GeoMesh>& df,
46 template<
class Type,
class GeoMesh,
int r>
50 const tmp<DimensionedField<Type, GeoMesh> >& tdf,
54 template<
class Type,
class GeoMesh>
56 sqr(
const DimensionedField<Type, GeoMesh>& df);
58 template<
class Type,
class GeoMesh>
60 sqr(
const tmp<DimensionedField<Type, GeoMesh> >& tdf);
62 template<
class Type,
class GeoMesh>
63 tmp<DimensionedField<scalar, GeoMesh> >
magSqr
65 const DimensionedField<Type, GeoMesh>& df
68 template<
class Type,
class GeoMesh>
69 tmp<DimensionedField<scalar, GeoMesh> >
magSqr
71 const tmp<DimensionedField<Type, GeoMesh> >& tdf
74 template<
class Type,
class GeoMesh>
75 tmp<DimensionedField<scalar, GeoMesh> >
mag
77 const DimensionedField<Type, GeoMesh>& df
80 template<
class Type,
class GeoMesh>
81 tmp<DimensionedField<scalar, GeoMesh> >
mag
83 const tmp<DimensionedField<Type, GeoMesh> >& tdf
86 template<
class Type,
class GeoMesh>
90 <
typename DimensionedField<Type, GeoMesh>::cmptType, GeoMesh>
92 cmptAv(
const DimensionedField<Type, GeoMesh>& df);
94 template<
class Type,
class GeoMesh>
98 <
typename DimensionedField<Type, GeoMesh>::cmptType, GeoMesh>
100 cmptAv(
const tmp<DimensionedField<Type, GeoMesh> >& tdf);
103 #define UNARY_REDUCTION_FUNCTION(returnType, func, dfunc) \
105 template<class Type, class GeoMesh> \
106 dimensioned<returnType> func \
108 const DimensionedField<Type, GeoMesh>& df \
110 template<class Type, class GeoMesh> \
111 dimensioned<returnType> func \
113 const tmp<DimensionedField<Type, GeoMesh> >& tdf1 \
122 #undef UNARY_REDUCTION_FUNCTION
152 #define PRODUCT_OPERATOR(product, op, opFunc) \
154 template<class Type1, class Type2, class GeoMesh> \
155 tmp<DimensionedField<typename product<Type1, Type2>::type, GeoMesh> > \
158 const DimensionedField<Type1, GeoMesh>& df1, \
159 const DimensionedField<Type2, GeoMesh>& df2 \
162 template<class Type1, class Type2, class GeoMesh> \
163 tmp<DimensionedField<typename product<Type1, Type2>::type, GeoMesh> > \
166 const DimensionedField<Type1, GeoMesh>& df1, \
167 const tmp<DimensionedField<Type2, GeoMesh> >& tdf2 \
170 template<class Type1, class Type2, class GeoMesh> \
171 tmp<DimensionedField<typename product<Type1, Type2>::type, GeoMesh> > \
174 const tmp<DimensionedField<Type1, GeoMesh> >& tdf1, \
175 const DimensionedField<Type2, GeoMesh>& df2 \
178 template<class Type1, class Type2, class GeoMesh> \
179 tmp<DimensionedField<typename product<Type1, Type2>::type, GeoMesh> > \
182 const tmp<DimensionedField<Type1, GeoMesh> >& tdf1, \
183 const tmp<DimensionedField<Type2, GeoMesh> >& tdf2 \
186 template<class Form, class Type, class GeoMesh> \
187 tmp<DimensionedField<typename product<Type, Form>::type, GeoMesh> > \
190 const DimensionedField<Type, GeoMesh>& df1, \
191 const dimensioned<Form>& dvs \
194 template<class Form, class Cmpt, int nCmpt, class Type, class GeoMesh> \
195 tmp<DimensionedField<typename product<Form, Type>::type, GeoMesh> > \
198 const DimensionedField<Type, GeoMesh>& df1, \
199 const VectorSpace<Form,Cmpt,nCmpt>& vs \
202 template<class Form, class Type, class GeoMesh> \
203 tmp<DimensionedField<typename product<Type, Form>::type, GeoMesh> > \
206 const tmp<DimensionedField<Type, GeoMesh> >& tdf1, \
207 const dimensioned<Form>& dvs \
210 template<class Form, class Cmpt, int nCmpt, class Type, class GeoMesh> \
211 tmp<DimensionedField<typename product<Form, Type>::type, GeoMesh> > \
214 const tmp<DimensionedField<Type, GeoMesh> >& tdf1, \
215 const VectorSpace<Form,Cmpt,nCmpt>& vs \
218 template<class Form, class Type, class GeoMesh> \
219 tmp<DimensionedField<typename product<Form, Type>::type, GeoMesh> > \
222 const dimensioned<Form>& dvs, \
223 const DimensionedField<Type, GeoMesh>& df1 \
226 template<class Form, class Cmpt, int nCmpt, class Type, class GeoMesh> \
227 tmp<DimensionedField<typename product<Form, Type>::type, GeoMesh> > \
230 const VectorSpace<Form,Cmpt,nCmpt>& vs, \
231 const DimensionedField<Type, GeoMesh>& df1 \
234 template<class Form, class Type, class GeoMesh> \
235 tmp<DimensionedField<typename product<Form, Type>::type, GeoMesh> > \
238 const dimensioned<Form>& dvs, \
239 const tmp<DimensionedField<Type, GeoMesh> >& tdf1 \
242 template<class Form, class Cmpt, int nCmpt, class Type, class GeoMesh> \
243 tmp<DimensionedField<typename product<Form, Type>::type, GeoMesh> > \
246 const VectorSpace<Form,Cmpt,nCmpt>& vs, \
247 const tmp<DimensionedField<Type, GeoMesh> >& tdf1 \
258 #undef PRODUCT_OPERATOR