31 #define TEMPLATE template<class GeoMesh>
41 template<
class GeoMesh>
53 "stabilise(" + dsf.name() +
',' + ds.
name() +
')',
67 template<
class GeoMesh>
68 tmp<DimensionedField<scalar, GeoMesh>>
stabilise
70 const tmp<DimensionedField<scalar, GeoMesh>>& tdsf,
71 const dimensioned<scalar>& ds
74 const DimensionedField<scalar, GeoMesh>& dsf = tdsf();
76 tmp<DimensionedField<scalar, GeoMesh>> tres =
New
79 "stabilise(" + dsf.name() +
',' + ds.name() +
')',
80 dsf.dimensions() + ds.dimensions()
83 stabilise(tres.ref().field(), dsf.field(), ds.value());
110 if (!dsf1.dimensions().dimensionless())
113 <<
"Base field is not dimensionless: " << dsf1.dimensions()
117 if (!dsf2.dimensions().dimensionless())
120 <<
"Exponent field is not dimensionless: " << dsf2.dimensions()
129 "pow(" + dsf1.name() +
',' + dsf2.name() +
')',
137 pow(tres.ref().field(), dsf1.field(), dsf2.field());
143 template<
class GeoMesh>
144 tmp<DimensionedField<scalar, GeoMesh>>
pow
146 const tmp<DimensionedField<scalar, GeoMesh>>& tdsf1,
147 const DimensionedField<scalar, GeoMesh>& dsf2
150 const DimensionedField<scalar, GeoMesh>& dsf1 = tdsf1();
152 if (!dsf1.dimensions().dimensionless())
155 <<
"Base field is not dimensionless: " << dsf1.dimensions()
159 if (!dsf2.dimensions().dimensionless())
162 <<
"Exponent field is not dimensionless: " << dsf2.dimensions()
166 tmp<DimensionedField<scalar, GeoMesh>> tres =
New
169 "pow(" + dsf1.name() +
',' + dsf2.name() +
')',
173 pow(tres.ref().field(), dsf1.field(), dsf2.field());
181 template<
class GeoMesh>
182 tmp<DimensionedField<scalar, GeoMesh>>
pow
184 const DimensionedField<scalar, GeoMesh>& dsf1,
185 const tmp<DimensionedField<scalar, GeoMesh>>& tdsf2
188 const DimensionedField<scalar, GeoMesh>& dsf2 = tdsf2();
190 if (!dsf1.dimensions().dimensionless())
193 <<
"Base field is not dimensionless: " << dsf1.dimensions()
197 if (!dsf2.dimensions().dimensionless())
200 <<
"Exponent field is not dimensionless: " << dsf2.dimensions()
204 tmp<DimensionedField<scalar, GeoMesh>> tres =
New
207 "pow(" + dsf1.name() +
',' + dsf2.name() +
')',
211 pow(tres.ref().field(), dsf1.field(), dsf2.field());
219 template<
class GeoMesh>
220 tmp<DimensionedField<scalar, GeoMesh>>
pow
222 const tmp<DimensionedField<scalar, GeoMesh>>& tdsf1,
223 const tmp<DimensionedField<scalar, GeoMesh>>& tdsf2
226 const DimensionedField<scalar, GeoMesh>& dsf1 = tdsf1();
227 const DimensionedField<scalar, GeoMesh>& dsf2 = tdsf2();
229 if (!dsf1.dimensions().dimensionless())
232 <<
"Base field is not dimensionless: " << dsf1.dimensions()
236 if (!dsf2.dimensions().dimensionless())
239 <<
"Exponent field is not dimensionless: " << dsf2.dimensions()
249 "pow(" + dsf1.name() +
',' + dsf2.name() +
')',
253 pow(tres.ref().field(), dsf1.field(), dsf2.field());
262 template<
class GeoMesh>
263 tmp<DimensionedField<scalar, GeoMesh>>
pow
265 const DimensionedField<scalar, GeoMesh>& dsf,
269 if (!ds.dimensions().dimensionless())
272 <<
"Exponent is not dimensionless: " << ds.dimensions()
277 tmp<DimensionedField<scalar, GeoMesh>>
::New
281 "pow(" + dsf.name() +
',' + ds.name() +
')',
286 pow(dsf.dimensions(), ds)
289 pow(tres.ref().field(), dsf.field(), ds.value());
295 template<
class GeoMesh>
296 tmp<DimensionedField<scalar, GeoMesh>>
pow
298 const tmp<DimensionedField<scalar, GeoMesh>>& tdsf,
302 if (!ds.dimensions().dimensionless())
305 <<
"Exponent is not dimensionless: " << ds.dimensions()
309 const DimensionedField<scalar, GeoMesh>& dsf = tdsf();
311 tmp<DimensionedField<scalar, GeoMesh>> tres =
New
314 "pow(" + dsf.name() +
',' + ds.name() +
')',
315 pow(dsf.dimensions(), ds)
318 pow(tres.ref().field(), dsf.field(), ds.value());
326 template<
class GeoMesh>
327 tmp<DimensionedField<scalar, GeoMesh>>
pow
329 const DimensionedField<scalar, GeoMesh>& dsf,
337 template<
class GeoMesh>
338 tmp<DimensionedField<scalar, GeoMesh>>
pow
340 const tmp<DimensionedField<scalar, GeoMesh>>& tdsf,
348 template<
class GeoMesh>
349 tmp<DimensionedField<scalar, GeoMesh>>
pow
352 const DimensionedField<scalar, GeoMesh>& dsf
355 if (!ds.dimensions().dimensionless())
358 <<
"Base scalar is not dimensionless: " << ds.dimensions()
362 if (!dsf.dimensions().dimensionless())
365 <<
"Exponent field is not dimensionless: " << dsf.dimensions()
370 tmp<DimensionedField<scalar, GeoMesh>>
::New
374 "pow(" + ds.name() +
',' + dsf.name() +
')',
382 pow(tres.ref().field(), ds.value(), dsf.field());
388 template<
class GeoMesh>
389 tmp<DimensionedField<scalar, GeoMesh>>
pow
392 const tmp<DimensionedField<scalar, GeoMesh>>& tdsf
395 const DimensionedField<scalar, GeoMesh>& dsf = tdsf();
397 if (!ds.dimensions().dimensionless())
400 <<
"Base scalar is not dimensionless: " << ds.dimensions()
404 if (!dsf.dimensions().dimensionless())
407 <<
"Exponent field is not dimensionless: " << dsf.dimensions()
411 tmp<DimensionedField<scalar, GeoMesh>> tres =
New
414 "pow(" + ds.name() +
',' + dsf.name() +
')',
418 pow(tres.ref().field(), ds.value(), dsf.field());
425 template<
class GeoMesh>
426 tmp<DimensionedField<scalar, GeoMesh>>
pow
429 const DimensionedField<scalar, GeoMesh>& dsf
435 template<
class GeoMesh>
436 tmp<DimensionedField<scalar, GeoMesh>>
pow
439 const tmp<DimensionedField<scalar, GeoMesh>>& tdsf
448 template<
class GeoMesh>
449 tmp<DimensionedField<scalar, GeoMesh>>
atan2
451 const DimensionedField<scalar, GeoMesh>& dsf1,
452 const DimensionedField<scalar, GeoMesh>& dsf2
456 tmp<DimensionedField<scalar, GeoMesh>>
::New
460 "atan2(" + dsf1.name() +
',' + dsf2.name() +
')',
465 atan2(dsf1.dimensions(), dsf2.dimensions())
468 atan2(tres.ref().field(), dsf1.field(), dsf2.field());
474 template<
class GeoMesh>
475 tmp<DimensionedField<scalar, GeoMesh>>
atan2
477 const tmp<DimensionedField<scalar, GeoMesh>>& tdsf1,
478 const DimensionedField<scalar, GeoMesh>& dsf2
481 const DimensionedField<scalar, GeoMesh>& dsf1 = tdsf1();
483 tmp<DimensionedField<scalar, GeoMesh>> tres =
New
486 "atan2(" + dsf1.name() +
',' + dsf2.name() +
')',
487 atan2(dsf1.dimensions(), dsf2.dimensions())
490 atan2(tres.ref().field(), dsf1.field(), dsf2.field());
498 template<
class GeoMesh>
499 tmp<DimensionedField<scalar, GeoMesh>>
atan2
501 const DimensionedField<scalar, GeoMesh>& dsf1,
502 const tmp<DimensionedField<scalar, GeoMesh>>& tdsf2
505 const DimensionedField<scalar, GeoMesh>& dsf2 = tdsf2();
507 tmp<DimensionedField<scalar, GeoMesh>> tres =
New
510 "atan2(" + dsf1.name() +
',' + dsf2.name() +
')',
511 atan2(dsf1.dimensions(), dsf2.dimensions())
514 atan2(tres.ref().field(), dsf1.field(), dsf2.field());
521 template<
class GeoMesh>
522 tmp<DimensionedField<scalar, GeoMesh>>
atan2
524 const tmp<DimensionedField<scalar, GeoMesh>>& tdsf1,
525 const tmp<DimensionedField<scalar, GeoMesh>>& tdsf2
528 const DimensionedField<scalar, GeoMesh>& dsf1 = tdsf1();
529 const DimensionedField<scalar, GeoMesh>& dsf2 = tdsf2();
537 "atan2(" + dsf1.name() +
',' + dsf2.name() +
')',
538 atan2(dsf1.dimensions(), dsf2.dimensions())
541 atan2(tres.ref().field(), dsf1.field(), dsf2.field());
550 template<
class GeoMesh>
551 tmp<DimensionedField<scalar, GeoMesh>>
atan2
553 const DimensionedField<scalar, GeoMesh>& dsf,
558 tmp<DimensionedField<scalar, GeoMesh>>
::New
562 "atan2(" + dsf.name() +
',' + ds.name() +
')',
567 atan2(dsf.dimensions(), ds)
570 atan2(tres.ref().field(), dsf.field(), ds.value());
575 template<
class GeoMesh>
576 tmp<DimensionedField<scalar, GeoMesh>>
atan2
578 const tmp<DimensionedField<scalar, GeoMesh>>& tdsf,
582 const DimensionedField<scalar, GeoMesh>& dsf = tdsf();
584 tmp<DimensionedField<scalar, GeoMesh>> tres =
New
587 "atan2(" + dsf.name() +
',' + ds.name() +
')',
588 atan2(dsf.dimensions(), ds)
591 atan2(tres.ref().field(), dsf.field(), ds.value());
598 template<
class GeoMesh>
599 tmp<DimensionedField<scalar, GeoMesh>>
atan2
601 const DimensionedField<scalar, GeoMesh>& dsf,
608 template<
class GeoMesh>
609 tmp<DimensionedField<scalar, GeoMesh>>
atan2
611 const tmp<DimensionedField<scalar, GeoMesh>>& tdsf,
619 template<
class GeoMesh>
620 tmp<DimensionedField<scalar, GeoMesh>>
atan2
623 const DimensionedField<scalar, GeoMesh>& dsf
627 tmp<DimensionedField<scalar, GeoMesh>>
::New
631 "atan2(" + ds.name() +
',' + dsf.name() +
')',
636 atan2(ds, dsf.dimensions())
639 atan2(tres.ref().field(), ds.value(), dsf.field());
645 template<
class GeoMesh>
646 tmp<DimensionedField<scalar, GeoMesh>>
atan2
649 const tmp<DimensionedField<scalar, GeoMesh>>& tdsf
652 const DimensionedField<scalar, GeoMesh>& dsf = tdsf();
654 tmp<DimensionedField<scalar, GeoMesh>> tres =
New
657 "atan2(" + ds.name() +
',' + dsf.name() +
')',
658 atan2(ds, dsf.dimensions())
661 atan2(tres.ref().field(), ds.value(), dsf.field());
668 template<
class GeoMesh>
669 tmp<DimensionedField<scalar, GeoMesh>>
atan2
672 const DimensionedField<scalar, GeoMesh>& dsf
678 template<
class GeoMesh>
679 tmp<DimensionedField<scalar, GeoMesh>>
atan2
682 const tmp<DimensionedField<scalar, GeoMesh>>& tdsf
732 #define BesselFunc(func) \
734 template<class GeoMesh> \
735 tmp<DimensionedField<scalar, GeoMesh>> func \
738 const DimensionedField<scalar, GeoMesh>& dsf \
741 if (!dsf.dimensions().dimensionless()) \
743 FatalErrorInFunction \
744 << "dsf not dimensionless" \
745 << abort(FatalError); \
749 tmp<DimensionedField<scalar, GeoMesh>>::New \
753 #func "(" + name(n) + ',' + dsf.name() + ')', \
761 func(tres.ref().field(), n, dsf.field()); \
767 template<class GeoMesh> \
768 tmp<DimensionedField<scalar, GeoMesh>> func \
771 const tmp<DimensionedField<scalar, GeoMesh>>& tdsf \
774 const DimensionedField<scalar, GeoMesh>& dsf = tdsf(); \
776 if (!dsf.dimensions().dimensionless()) \
778 FatalErrorInFunction \
779 << " : dsf not dimensionless" \
780 << abort(FatalError); \
783 tmp<DimensionedField<scalar, GeoMesh>> tres \
788 #func "(" + name(n) + ',' + dsf.name() + ')', \
793 func(tres.ref().field(), n, dsf.field()); \