29 template<class Type, template<class> class PatchField, class GeoMesh>
39 template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
44 typename GeometricField<Type, PatchField, GeoMesh>::cmptType,
48 const GeometricField<Type, PatchField, GeoMesh>& gf,
52 template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
55 GeometricField<Type, PatchField, GeoMesh>& gf,
56 const GeometricField<Type, PatchField, GeoMesh>& gf1
59 template<
class Type,
template<
class>
class PatchField,
class GeoMesh,
int r>
63 const GeometricField<Type, PatchField, GeoMesh>& gf1
66 template<
class Type,
template<
class>
class PatchField,
class GeoMesh,
int r>
74 const GeometricField<Type, PatchField, GeoMesh>& gf,
78 template<
class Type,
template<
class>
class PatchField,
class GeoMesh,
int r>
86 const tmp<GeometricField<Type, PatchField, GeoMesh> >& tgf,
90 template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
95 const GeometricField<Type, PatchField, GeoMesh>& gf1
98 template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
108 sqr(
const GeometricField<Type, PatchField, GeoMesh>& gf);
110 template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
120 sqr(
const tmp<GeometricField<Type, PatchField, GeoMesh> >& tgf);
122 template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
125 GeometricField<scalar, PatchField, GeoMesh>& gsf,
126 const GeometricField<Type, PatchField, GeoMesh>& gf
129 template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
130 tmp<GeometricField<scalar, PatchField, GeoMesh> >
magSqr
132 const GeometricField<Type, PatchField, GeoMesh>& gf
135 template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
136 tmp<GeometricField<scalar, PatchField, GeoMesh> >
magSqr
138 const tmp<GeometricField<Type, PatchField, GeoMesh> >& tgf
141 template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
144 GeometricField<scalar, PatchField, GeoMesh>& gsf,
145 const GeometricField<Type, PatchField, GeoMesh>& gf
148 template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
149 tmp<GeometricField<scalar, PatchField, GeoMesh> >
mag
151 const GeometricField<Type, PatchField, GeoMesh>& gf
154 template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
155 tmp<GeometricField<scalar, PatchField, GeoMesh> >
mag
157 const tmp<GeometricField<Type, PatchField, GeoMesh> >& tgf
160 template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
165 typename GeometricField<Type, PatchField, GeoMesh>::cmptType,
169 const GeometricField<Type, PatchField, GeoMesh>& gf
172 template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
177 typename GeometricField<Type, PatchField, GeoMesh>::cmptType,
182 cmptAv(
const GeometricField<Type, PatchField, GeoMesh>& gf);
184 template<
class Type,
template<
class>
class PatchField,
class GeoMesh>
189 typename GeometricField<Type, PatchField, GeoMesh>::cmptType,
194 cmptAv(
const tmp<GeometricField<Type, PatchField, GeoMesh> >& tgf);
197 #define UNARY_REDUCTION_FUNCTION_WITH_BOUNDARY(returnType, func, gFunc) \
199 template<class Type, template<class> class PatchField, class GeoMesh> \
200 dimensioned<returnType> func \
202 const GeometricField<Type, PatchField, GeoMesh>& gf \
205 template<class Type, template<class> class PatchField, class GeoMesh> \
206 dimensioned<returnType> func \
208 const tmp<GeometricField<Type, PatchField, GeoMesh> >& tgf1 \
214 #undef UNARY_REDUCTION_FUNCTION_WITH_BOUNDARY
217 #define UNARY_REDUCTION_FUNCTION(returnType, func, gFunc) \
219 template<class Type, template<class> class PatchField, class GeoMesh> \
220 dimensioned<returnType> func \
222 const GeometricField<Type, PatchField, GeoMesh>& gf \
225 template<class Type, template<class> class PatchField, class GeoMesh> \
226 dimensioned<returnType> func \
228 const tmp<GeometricField<Type, PatchField, GeoMesh> >& tgf1 \
235 #undef UNARY_REDUCTION_FUNCTION
253 #ifndef __INTEL_COMPILER
267 #define PRODUCT_OPERATOR(product, op, opFunc) \
270 <class Type1, class Type2, template<class> class PatchField, class GeoMesh> \
274 <typename product<Type1, Type2>::type, PatchField, GeoMesh>& gf, \
275 const GeometricField<Type1, PatchField, GeoMesh>& gf1, \
276 const GeometricField<Type2, PatchField, GeoMesh>& gf2 \
280 <class Type1, class Type2, template<class> class PatchField, class GeoMesh> \
284 <typename product<Type1, Type2>::type, PatchField, GeoMesh> \
288 const GeometricField<Type1, PatchField, GeoMesh>& gf1, \
289 const GeometricField<Type2, PatchField, GeoMesh>& gf2 \
293 <class Type1, class Type2, template<class> class PatchField, class GeoMesh> \
297 <typename product<Type1, Type2>::type, PatchField, GeoMesh> \
301 const GeometricField<Type1, PatchField, GeoMesh>& gf1, \
302 const tmp<GeometricField<Type2, PatchField, GeoMesh> >& tgf2 \
306 <class Type1, class Type2, template<class> class PatchField, class GeoMesh> \
310 <typename product<Type1, Type2>::type, PatchField, GeoMesh> \
314 const tmp<GeometricField<Type1, PatchField, GeoMesh> >& tgf1, \
315 const GeometricField<Type2, PatchField, GeoMesh>& gf2 \
319 <class Type1, class Type2, template<class> class PatchField, class GeoMesh> \
323 <typename product<Type1, Type2>::type, PatchField, GeoMesh> \
327 const tmp<GeometricField<Type1, PatchField, GeoMesh> >& tgf1, \
328 const tmp<GeometricField<Type2, PatchField, GeoMesh> >& tgf2 \
332 <class Form, class Type, template<class> class PatchField, class GeoMesh> \
336 <typename product<Type, Form>::type, PatchField, GeoMesh>& gf, \
337 const GeometricField<Type, PatchField, GeoMesh>& gf1, \
338 const dimensioned<Form>& dvs \
342 <class Form, class Type, template<class> class PatchField, class GeoMesh> \
346 <typename product<Type, Form>::type, PatchField, GeoMesh> \
350 const GeometricField<Type, PatchField, GeoMesh>& gf1, \
351 const dimensioned<Form>& dvs \
359 class Type, template<class> class PatchField, \
365 <typename product<Form, Type>::type, PatchField, GeoMesh> \
369 const GeometricField<Type, PatchField, GeoMesh>& gf1, \
370 const VectorSpace<Form,Cmpt,nCmpt>& vs \
374 <class Form, class Type, template<class> class PatchField, class GeoMesh> \
378 <typename product<Type, Form>::type, PatchField, GeoMesh> \
382 const tmp<GeometricField<Type, PatchField, GeoMesh> >& tgf1, \
383 const dimensioned<Form>& dvs \
391 class Type, template<class> class PatchField, \
397 <typename product<Form, Type>::type, PatchField, GeoMesh> \
401 const tmp<GeometricField<Type, PatchField, GeoMesh> >& tgf1, \
402 const VectorSpace<Form,Cmpt,nCmpt>& vs \
406 <class Form, class Type, template<class> class PatchField, class GeoMesh> \
410 <typename product<Form, Type>::type, PatchField, GeoMesh>& gf, \
411 const dimensioned<Form>& dvs, \
412 const GeometricField<Type, PatchField, GeoMesh>& gf1 \
416 <class Form, class Type, template<class> class PatchField, class GeoMesh> \
420 <typename product<Form, Type>::type, PatchField, GeoMesh> \
424 const dimensioned<Form>& dvs, \
425 const GeometricField<Type, PatchField, GeoMesh>& gf1 \
433 class Type, template<class> class PatchField, \
439 <typename product<Form, Type>::type, PatchField, GeoMesh> \
443 const VectorSpace<Form,Cmpt,nCmpt>& vs, \
444 const GeometricField<Type, PatchField, GeoMesh>& gf1 \
448 <class Form, class Type, template<class> class PatchField, class GeoMesh> \
452 <typename product<Form, Type>::type, PatchField, GeoMesh> \
456 const dimensioned<Form>& dvs, \
457 const tmp<GeometricField<Type, PatchField, GeoMesh> >& tgf1 \
465 class Type, template<class> class PatchField, \
471 <typename product<Form, Type>::type, PatchField, GeoMesh> \
475 const VectorSpace<Form,Cmpt,nCmpt>& vs, \
476 const tmp<GeometricField<Type, PatchField, GeoMesh> >& tgf1 \
487 #undef PRODUCT_OPERATOR