STYLE: modernize code for DimensionedFieldFunctions (#1160)

- use forwarding tmp factory methods, auto types
This commit is contained in:
Mark Olesen
2019-01-10 17:06:04 +01:00
parent 3019f30b12
commit 6365560956
2 changed files with 219 additions and 280 deletions

View File

@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\/ M anipulation | \\/ M anipulation | Copyright (C) 2019 OpenCFD Ltd.
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
This file is part of OpenFOAM. This file is part of OpenFOAM.
@ -45,9 +45,8 @@ pow
{ {
typedef typename powProduct<Type, r>::type powProductType; typedef typename powProduct<Type, r>::type powProductType;
tmp<DimensionedField<powProductType, GeoMesh>> tPow auto tres =
( tmp<DimensionedField<powProductType, GeoMesh>>::New
new DimensionedField<powProductType, GeoMesh>
( (
IOobject IOobject
( (
@ -57,12 +56,11 @@ pow
), ),
df.mesh(), df.mesh(),
pow(df.dimensions(), r) pow(df.dimensions(), r)
) );
);
pow<Type, r, GeoMesh>(tPow.ref().field(), df.field()); pow<Type, r, GeoMesh>(tres.ref().field(), df.field());
return tPow; return tres;
} }
@ -78,7 +76,7 @@ pow
const DimensionedField<Type, GeoMesh>& df = tdf(); const DimensionedField<Type, GeoMesh>& df = tdf();
tmp<DimensionedField<powProductType, GeoMesh>> tPow = auto tres =
reuseTmpDimensionedField<powProductType, Type, GeoMesh>::New reuseTmpDimensionedField<powProductType, Type, GeoMesh>::New
( (
tdf, tdf,
@ -86,22 +84,21 @@ pow
pow(df.dimensions(), r) pow(df.dimensions(), r)
); );
pow<Type, r, GeoMesh>(tPow.ref().field(), df.field()); pow<Type, r, GeoMesh>(tres.ref().field(), df.field());
tdf.clear(); tdf.clear();
return tres;
return tPow;
} }
template<class Type, class GeoMesh> template<class Type, class GeoMesh>
tmp<DimensionedField<typename outerProduct<Type, Type>::type, GeoMesh>> tmp<DimensionedField<typename outerProduct<Type, Type>::type, GeoMesh>>
sqr(const DimensionedField<Type, GeoMesh>& df) sqr(const DimensionedField<Type, GeoMesh>& df)
{ {
typedef typename outerProduct<Type, Type>::type outerProductType; typedef typename outerProduct<Type, Type>::type outerProductType;
tmp<DimensionedField<outerProductType, GeoMesh>> tSqr auto tres =
( tmp<DimensionedField<outerProductType, GeoMesh>>::New
new DimensionedField<outerProductType, GeoMesh>
( (
IOobject IOobject
( (
@ -111,12 +108,11 @@ sqr(const DimensionedField<Type, GeoMesh>& df)
), ),
df.mesh(), df.mesh(),
sqr(df.dimensions()) sqr(df.dimensions())
) );
);
sqr(tSqr.ref().field(), df.field()); sqr(tres.ref().field(), df.field());
return tSqr; return tres;
} }
template<class Type, class GeoMesh> template<class Type, class GeoMesh>
@ -127,7 +123,7 @@ sqr(const tmp<DimensionedField<Type, GeoMesh>>& tdf)
const DimensionedField<Type, GeoMesh>& df = tdf(); const DimensionedField<Type, GeoMesh>& df = tdf();
tmp<DimensionedField<outerProductType, GeoMesh>> tSqr = auto tres =
reuseTmpDimensionedField<outerProductType, Type, GeoMesh>::New reuseTmpDimensionedField<outerProductType, Type, GeoMesh>::New
( (
tdf, tdf,
@ -135,11 +131,10 @@ sqr(const tmp<DimensionedField<Type, GeoMesh>>& tdf)
sqr(df.dimensions()) sqr(df.dimensions())
); );
sqr(tSqr.ref().field(), df.field()); sqr(tres.ref().field(), df.field());
tdf.clear(); tdf.clear();
return tres;
return tSqr;
} }
@ -149,9 +144,8 @@ tmp<DimensionedField<scalar, GeoMesh>> magSqr
const DimensionedField<Type, GeoMesh>& df const DimensionedField<Type, GeoMesh>& df
) )
{ {
tmp<DimensionedField<scalar, GeoMesh>> tMagSqr auto tres =
( tmp<DimensionedField<scalar, GeoMesh>>::New
new DimensionedField<scalar, GeoMesh>
( (
IOobject IOobject
( (
@ -161,12 +155,11 @@ tmp<DimensionedField<scalar, GeoMesh>> magSqr
), ),
df.mesh(), df.mesh(),
sqr(df.dimensions()) sqr(df.dimensions())
) );
);
magSqr(tMagSqr.ref().field(), df.field()); magSqr(tres.ref().field(), df.field());
return tMagSqr; return tres;
} }
template<class Type, class GeoMesh> template<class Type, class GeoMesh>
@ -177,7 +170,7 @@ tmp<DimensionedField<scalar, GeoMesh>> magSqr
{ {
const DimensionedField<Type, GeoMesh>& df = tdf(); const DimensionedField<Type, GeoMesh>& df = tdf();
tmp<DimensionedField<scalar, GeoMesh>> tMagSqr = auto tres =
reuseTmpDimensionedField<scalar, Type, GeoMesh>::New reuseTmpDimensionedField<scalar, Type, GeoMesh>::New
( (
tdf, tdf,
@ -185,11 +178,10 @@ tmp<DimensionedField<scalar, GeoMesh>> magSqr
sqr(df.dimensions()) sqr(df.dimensions())
); );
magSqr(tMagSqr.ref().field(), df.field()); magSqr(tres.ref().field(), df.field());
tdf.clear(); tdf.clear();
return tres;
return tMagSqr;
} }
@ -199,9 +191,8 @@ tmp<DimensionedField<scalar, GeoMesh>> mag
const DimensionedField<Type, GeoMesh>& df const DimensionedField<Type, GeoMesh>& df
) )
{ {
tmp<DimensionedField<scalar, GeoMesh>> tMag auto tres =
( tmp<DimensionedField<scalar, GeoMesh>>::New
new DimensionedField<scalar, GeoMesh>
( (
IOobject IOobject
( (
@ -211,12 +202,11 @@ tmp<DimensionedField<scalar, GeoMesh>> mag
), ),
df.mesh(), df.mesh(),
df.dimensions() df.dimensions()
) );
);
mag(tMag.ref().field(), df.field()); mag(tres.ref().field(), df.field());
return tMag; return tres;
} }
template<class Type, class GeoMesh> template<class Type, class GeoMesh>
@ -227,7 +217,7 @@ tmp<DimensionedField<scalar, GeoMesh>> mag
{ {
const DimensionedField<Type, GeoMesh>& df = tdf(); const DimensionedField<Type, GeoMesh>& df = tdf();
tmp<DimensionedField<scalar, GeoMesh>> tMag = auto tres =
reuseTmpDimensionedField<scalar, Type, GeoMesh>::New reuseTmpDimensionedField<scalar, Type, GeoMesh>::New
( (
tdf, tdf,
@ -235,11 +225,10 @@ tmp<DimensionedField<scalar, GeoMesh>> mag
df.dimensions() df.dimensions()
); );
mag(tMag.ref().field(), df.field()); mag(tres.ref().field(), df.field());
tdf.clear(); tdf.clear();
return tres;
return tMag;
} }
@ -247,15 +236,16 @@ template<class Type, class GeoMesh>
tmp tmp
< <
DimensionedField DimensionedField
<typename DimensionedField<Type, GeoMesh>::cmptType, GeoMesh> <
typename DimensionedField<Type, GeoMesh>::cmptType, GeoMesh
>
> >
cmptAv(const DimensionedField<Type, GeoMesh>& df) cmptAv(const DimensionedField<Type, GeoMesh>& df)
{ {
typedef typename DimensionedField<Type, GeoMesh>::cmptType cmptType; typedef typename DimensionedField<Type, GeoMesh>::cmptType cmptType;
tmp<DimensionedField<cmptType, GeoMesh>> CmptAv auto tres =
( tmp<DimensionedField<cmptType, GeoMesh>>::New
new DimensionedField<scalar, GeoMesh>
( (
IOobject IOobject
( (
@ -265,28 +255,29 @@ cmptAv(const DimensionedField<Type, GeoMesh>& df)
), ),
df.mesh(), df.mesh(),
df.dimensions() df.dimensions()
) );
);
cmptAv(CmptAv.ref().field(), df.field()); cmptAv(tres.ref().field(), df.field());
return CmptAv; return tres;
} }
template<class Type, class GeoMesh> template<class Type, class GeoMesh>
tmp tmp
< <
DimensionedField DimensionedField
<typename DimensionedField<Type, GeoMesh>::cmptType, GeoMesh> <
typename DimensionedField<Type, GeoMesh>::cmptType, GeoMesh
>
> >
cmptAv(const tmp<DimensionedField<Type, GeoMesh>>& tdf) cmptAv(const tmp<DimensionedField<Type, GeoMesh>>& tdf)
{ {
typedef typename DimensionedField<Type, GeoMesh>::cmptType typedef typename DimensionedField<Type, GeoMesh>::cmptType cmptType;
cmptType;
const DimensionedField<Type, GeoMesh>& df = tdf(); const DimensionedField<Type, GeoMesh>& df = tdf();
tmp<DimensionedField<cmptType, GeoMesh>> CmptAv = auto tres =
reuseTmpDimensionedField<cmptType, Type, GeoMesh>::New reuseTmpDimensionedField<cmptType, Type, GeoMesh>::New
( (
tdf, tdf,
@ -294,13 +285,13 @@ cmptAv(const tmp<DimensionedField<Type, GeoMesh>>& tdf)
df.dimensions() df.dimensions()
); );
cmptAv(CmptAv.ref().field(), df.field()); cmptAv(tres.ref().field(), df.field());
tdf.clear(); tdf.clear();
return tres;
return CmptAv;
} }
#define UNARY_REDUCTION_FUNCTION(returnType, func, dfunc) \ #define UNARY_REDUCTION_FUNCTION(returnType, func, dfunc) \
\ \
template<class Type, class GeoMesh> \ template<class Type, class GeoMesh> \
@ -375,9 +366,9 @@ operator op \
) \ ) \
{ \ { \
typedef typename product<Type1, Type2>::type productType; \ typedef typename product<Type1, Type2>::type productType; \
tmp<DimensionedField<productType, GeoMesh>> tRes \ \
( \ auto tres = \
new DimensionedField<productType, GeoMesh> \ tmp<DimensionedField<productType, GeoMesh>>::New \
( \ ( \
IOobject \ IOobject \
( \ ( \
@ -387,14 +378,14 @@ operator op \
), \ ), \
df1.mesh(), \ df1.mesh(), \
df1.dimensions() op df2.dimensions() \ df1.dimensions() op df2.dimensions() \
) \ ); \
); \
\ \
Foam::opFunc(tRes.ref().field(), df1.field(), df2.field()); \ Foam::opFunc(tres.ref().field(), df1.field(), df2.field()); \
\ \
return tRes; \ return tres; \
} \ } \
\ \
\
template<class Type1, class Type2, class GeoMesh> \ template<class Type1, class Type2, class GeoMesh> \
tmp<DimensionedField<typename product<Type1, Type2>::type, GeoMesh>> \ tmp<DimensionedField<typename product<Type1, Type2>::type, GeoMesh>> \
operator op \ operator op \
@ -407,7 +398,7 @@ operator op \
\ \
const DimensionedField<Type2, GeoMesh>& df2 = tdf2(); \ const DimensionedField<Type2, GeoMesh>& df2 = tdf2(); \
\ \
tmp<DimensionedField<productType, GeoMesh>> tRes = \ auto tres = \
reuseTmpDimensionedField<productType, Type2, GeoMesh>::New \ reuseTmpDimensionedField<productType, Type2, GeoMesh>::New \
( \ ( \
tdf2, \ tdf2, \
@ -415,13 +406,13 @@ operator op \
df1.dimensions() op df2.dimensions() \ df1.dimensions() op df2.dimensions() \
); \ ); \
\ \
Foam::opFunc(tRes.ref().field(), df1.field(), df2.field()); \ Foam::opFunc(tres.ref().field(), df1.field(), df2.field()); \
\ \
tdf2.clear(); \ tdf2.clear(); \
\ return tres; \
return tRes; \
} \ } \
\ \
\
template<class Type1, class Type2, class GeoMesh> \ template<class Type1, class Type2, class GeoMesh> \
tmp<DimensionedField<typename product<Type1, Type2>::type, GeoMesh>> \ tmp<DimensionedField<typename product<Type1, Type2>::type, GeoMesh>> \
operator op \ operator op \
@ -434,7 +425,7 @@ operator op \
\ \
const DimensionedField<Type1, GeoMesh>& df1 = tdf1(); \ const DimensionedField<Type1, GeoMesh>& df1 = tdf1(); \
\ \
tmp<DimensionedField<productType, GeoMesh>> tRes = \ auto tres = \
reuseTmpDimensionedField<productType, Type1, GeoMesh>::New \ reuseTmpDimensionedField<productType, Type1, GeoMesh>::New \
( \ ( \
tdf1, \ tdf1, \
@ -442,13 +433,13 @@ operator op \
df1.dimensions() op df2.dimensions() \ df1.dimensions() op df2.dimensions() \
); \ ); \
\ \
Foam::opFunc(tRes.ref().field(), df1.field(), df2.field()); \ Foam::opFunc(tres.ref().field(), df1.field(), df2.field()); \
\ \
tdf1.clear(); \ tdf1.clear(); \
\ return tres; \
return tRes; \
} \ } \
\ \
\
template<class Type1, class Type2, class GeoMesh> \ template<class Type1, class Type2, class GeoMesh> \
tmp<DimensionedField<typename product<Type1, Type2>::type, GeoMesh>> \ tmp<DimensionedField<typename product<Type1, Type2>::type, GeoMesh>> \
operator op \ operator op \
@ -462,7 +453,7 @@ operator op \
const DimensionedField<Type1, GeoMesh>& df1 = tdf1(); \ const DimensionedField<Type1, GeoMesh>& df1 = tdf1(); \
const DimensionedField<Type2, GeoMesh>& df2 = tdf2(); \ const DimensionedField<Type2, GeoMesh>& df2 = tdf2(); \
\ \
tmp<DimensionedField<productType, GeoMesh>> tRes = \ auto tres = \
reuseTmpTmpDimensionedField \ reuseTmpTmpDimensionedField \
<productType, Type1, Type1, Type2, GeoMesh>::New \ <productType, Type1, Type1, Type2, GeoMesh>::New \
( \ ( \
@ -472,14 +463,14 @@ operator op \
df1.dimensions() op df2.dimensions() \ df1.dimensions() op df2.dimensions() \
); \ ); \
\ \
Foam::opFunc(tRes.ref().field(), df1.field(), df2.field()); \ Foam::opFunc(tres.ref().field(), df1.field(), df2.field()); \
\ \
tdf1.clear(); \ tdf1.clear(); \
tdf2.clear(); \ tdf2.clear(); \
\ return tres; \
return tRes; \
} \ } \
\ \
\
template<class Form, class Type, class GeoMesh> \ template<class Form, class Type, class GeoMesh> \
tmp<DimensionedField<typename product<Type, Form>::type, GeoMesh>> \ tmp<DimensionedField<typename product<Type, Form>::type, GeoMesh>> \
operator op \ operator op \
@ -490,9 +481,8 @@ operator op \
{ \ { \
typedef typename product<Type, Form>::type productType; \ typedef typename product<Type, Form>::type productType; \
\ \
tmp<DimensionedField<productType, GeoMesh>> tRes \ auto tres = \
( \ tmp<DimensionedField<productType, GeoMesh>>::New \
new DimensionedField<productType, GeoMesh> \
( \ ( \
IOobject \ IOobject \
( \ ( \
@ -502,14 +492,14 @@ operator op \
), \ ), \
df1.mesh(), \ df1.mesh(), \
df1.dimensions() op dvs.dimensions() \ df1.dimensions() op dvs.dimensions() \
) \ ); \
); \
\ \
Foam::opFunc(tRes.ref().field(), df1.field(), dvs.value()); \ Foam::opFunc(tres.ref().field(), df1.field(), dvs.value()); \
\ \
return tRes; \ return tres; \
} \ } \
\ \
\
template<class Form, class Cmpt, direction nCmpt, class Type, class GeoMesh> \ template<class Form, class Cmpt, direction nCmpt, class Type, class GeoMesh> \
tmp<DimensionedField<typename product<Form, Type>::type, GeoMesh>> \ tmp<DimensionedField<typename product<Form, Type>::type, GeoMesh>> \
operator op \ operator op \
@ -534,7 +524,7 @@ operator op \
\ \
const DimensionedField<Type, GeoMesh>& df1 = tdf1(); \ const DimensionedField<Type, GeoMesh>& df1 = tdf1(); \
\ \
tmp<DimensionedField<productType, GeoMesh>> tRes = \ auto tres = \
reuseTmpDimensionedField<productType, Type, GeoMesh>::New \ reuseTmpDimensionedField<productType, Type, GeoMesh>::New \
( \ ( \
tdf1, \ tdf1, \
@ -542,13 +532,13 @@ operator op \
df1.dimensions() op dvs.dimensions() \ df1.dimensions() op dvs.dimensions() \
); \ ); \
\ \
Foam::opFunc(tRes.ref().field(), df1.field(), dvs.value()); \ Foam::opFunc(tres.ref().field(), df1.field(), dvs.value()); \
\ \
tdf1.clear(); \ tdf1.clear(); \
\ return tres; \
return tRes; \
} \ } \
\ \
\
template<class Form, class Cmpt, direction nCmpt, class Type, class GeoMesh> \ template<class Form, class Cmpt, direction nCmpt, class Type, class GeoMesh> \
tmp<DimensionedField<typename product<Form, Type>::type, GeoMesh>> \ tmp<DimensionedField<typename product<Form, Type>::type, GeoMesh>> \
operator op \ operator op \
@ -570,9 +560,9 @@ operator op \
) \ ) \
{ \ { \
typedef typename product<Form, Type>::type productType; \ typedef typename product<Form, Type>::type productType; \
tmp<DimensionedField<productType, GeoMesh>> tRes \ \
( \ auto tres = \
new DimensionedField<productType, GeoMesh> \ tmp<DimensionedField<productType, GeoMesh>>::New \
( \ ( \
IOobject \ IOobject \
( \ ( \
@ -582,14 +572,14 @@ operator op \
), \ ), \
df1.mesh(), \ df1.mesh(), \
dvs.dimensions() op df1.dimensions() \ dvs.dimensions() op df1.dimensions() \
) \ ); \
); \
\ \
Foam::opFunc(tRes.ref().field(), dvs.value(), df1.field()); \ Foam::opFunc(tres.ref().field(), dvs.value(), df1.field()); \
\ \
return tRes; \ return tres; \
} \ } \
\ \
\
template<class Form, class Cmpt, direction nCmpt, class Type, class GeoMesh> \ template<class Form, class Cmpt, direction nCmpt, class Type, class GeoMesh> \
tmp<DimensionedField<typename product<Form, Type>::type, GeoMesh>> \ tmp<DimensionedField<typename product<Form, Type>::type, GeoMesh>> \
operator op \ operator op \
@ -601,6 +591,7 @@ operator op \
return dimensioned<Form>(static_cast<const Form&>(vs)) op df1; \ return dimensioned<Form>(static_cast<const Form&>(vs)) op df1; \
} \ } \
\ \
\
template<class Form, class Type, class GeoMesh> \ template<class Form, class Type, class GeoMesh> \
tmp<DimensionedField<typename product<Form, Type>::type, GeoMesh>> \ tmp<DimensionedField<typename product<Form, Type>::type, GeoMesh>> \
operator op \ operator op \
@ -613,7 +604,7 @@ operator op \
\ \
const DimensionedField<Type, GeoMesh>& df1 = tdf1(); \ const DimensionedField<Type, GeoMesh>& df1 = tdf1(); \
\ \
tmp<DimensionedField<productType, GeoMesh>> tRes = \ auto tres = \
reuseTmpDimensionedField<productType, Type, GeoMesh>::New \ reuseTmpDimensionedField<productType, Type, GeoMesh>::New \
( \ ( \
tdf1, \ tdf1, \
@ -621,13 +612,13 @@ operator op \
dvs.dimensions() op df1.dimensions() \ dvs.dimensions() op df1.dimensions() \
); \ ); \
\ \
Foam::opFunc(tRes.ref().field(), dvs.value(), df1.field()); \ Foam::opFunc(tres.ref().field(), dvs.value(), df1.field()); \
\ \
tdf1.clear(); \ tdf1.clear(); \
\ return tres; \
return tRes; \
} \ } \
\ \
\
template<class Form, class Cmpt, direction nCmpt, class Type, class GeoMesh> \ template<class Form, class Cmpt, direction nCmpt, class Type, class GeoMesh> \
tmp<DimensionedField<typename product<Form, Type>::type, GeoMesh>> \ tmp<DimensionedField<typename product<Form, Type>::type, GeoMesh>> \
operator op \ operator op \
@ -639,6 +630,7 @@ operator op \
return dimensioned<Form>(static_cast<const Form&>(vs)) op tdf1; \ return dimensioned<Form>(static_cast<const Form&>(vs)) op tdf1; \
} }
PRODUCT_OPERATOR(typeOfSum, +, add) PRODUCT_OPERATOR(typeOfSum, +, add)
PRODUCT_OPERATOR(typeOfSum, -, subtract) PRODUCT_OPERATOR(typeOfSum, -, subtract)

View File

@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\/ M anipulation | \\/ M anipulation | Copyright (C) 2019 OpenCFD Ltd.
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
This file is part of OpenFOAM. This file is part of OpenFOAM.
@ -35,9 +35,8 @@ tmp<DimensionedField<ReturnType, GeoMesh>> Func \
const DimensionedField<Type1, GeoMesh>& df1 \ const DimensionedField<Type1, GeoMesh>& df1 \
) \ ) \
{ \ { \
tmp<DimensionedField<ReturnType, GeoMesh>> tRes \ auto tres = \
( \ tmp<DimensionedField<ReturnType, GeoMesh>>::New \
new DimensionedField<ReturnType, GeoMesh> \
( \ ( \
IOobject \ IOobject \
( \ ( \
@ -47,16 +46,15 @@ tmp<DimensionedField<ReturnType, GeoMesh>> Func \
), \ ), \
df1.mesh(), \ df1.mesh(), \
Dfunc(df1.dimensions()) \ Dfunc(df1.dimensions()) \
) \ ); \
); \
\ \
Func(tRes.ref().field(), df1.field()); \ Func(tres.ref().field(), df1.field()); \
tres.ref().oriented() = Dfunc(df1.oriented()); \
\ \
tRes.ref().oriented() = Dfunc(df1.oriented()); \ return tres; \
\
return tRes; \
} \ } \
\ \
\
TEMPLATE \ TEMPLATE \
tmp<DimensionedField<ReturnType, GeoMesh>> Func \ tmp<DimensionedField<ReturnType, GeoMesh>> Func \
( \ ( \
@ -65,23 +63,19 @@ tmp<DimensionedField<ReturnType, GeoMesh>> Func \
{ \ { \
const DimensionedField<Type1, GeoMesh>& df1 = tdf1(); \ const DimensionedField<Type1, GeoMesh>& df1 = tdf1(); \
\ \
tmp<DimensionedField<ReturnType, GeoMesh>> tRes \ auto tres = \
( \
reuseTmpDimensionedField<ReturnType, Type1, GeoMesh>::New \ reuseTmpDimensionedField<ReturnType, Type1, GeoMesh>::New \
( \ ( \
tdf1, \ tdf1, \
#Func "(" + df1.name() + ')', \ #Func "(" + df1.name() + ')', \
Dfunc(df1.dimensions()) \ Dfunc(df1.dimensions()) \
) \ ); \
); \
\ \
Func(tRes.ref().field(), df1.field()); \ Func(tres.ref().field(), df1.field()); \
\ tres.ref().oriented() = Dfunc(df1.oriented()); \
tRes.ref().oriented() = Dfunc(df1.oriented()); \
\ \
tdf1.clear(); \ tdf1.clear(); \
\ return tres; \
return tRes; \
} }
@ -95,9 +89,8 @@ tmp<DimensionedField<ReturnType, GeoMesh>> operator Op \
const DimensionedField<Type1, GeoMesh>& df1 \ const DimensionedField<Type1, GeoMesh>& df1 \
) \ ) \
{ \ { \
tmp<DimensionedField<ReturnType, GeoMesh>> tRes \ auto tres = \
( \ tmp<DimensionedField<ReturnType, GeoMesh>>::New \
new DimensionedField<ReturnType, GeoMesh> \
( \ ( \
IOobject \ IOobject \
( \ ( \
@ -107,16 +100,15 @@ tmp<DimensionedField<ReturnType, GeoMesh>> operator Op \
), \ ), \
df1.mesh(), \ df1.mesh(), \
Dfunc(df1.dimensions()) \ Dfunc(df1.dimensions()) \
) \ ); \
); \
\ \
Foam::OpFunc(tRes.ref().field(), df1.field()); \ Foam::OpFunc(tres.ref().field(), df1.field()); \
tres.ref().oriented() = Dfunc(df1.oriented()); \
\ \
tRes.ref().oriented() = Dfunc(df1.oriented()); \ return tres; \
\
return tRes; \
} \ } \
\ \
\
TEMPLATE \ TEMPLATE \
tmp<DimensionedField<ReturnType, GeoMesh>> operator Op \ tmp<DimensionedField<ReturnType, GeoMesh>> operator Op \
( \ ( \
@ -125,23 +117,19 @@ tmp<DimensionedField<ReturnType, GeoMesh>> operator Op \
{ \ { \
const DimensionedField<Type1, GeoMesh>& df1 = tdf1(); \ const DimensionedField<Type1, GeoMesh>& df1 = tdf1(); \
\ \
tmp<DimensionedField<ReturnType, GeoMesh>> tRes \ auto tres = \
( \
reuseTmpDimensionedField<ReturnType, Type1, GeoMesh>::New \ reuseTmpDimensionedField<ReturnType, Type1, GeoMesh>::New \
( \ ( \
tdf1, \ tdf1, \
#Op + df1.name(), \ #Op + df1.name(), \
Dfunc(df1.dimensions()) \ Dfunc(df1.dimensions()) \
) \ ); \
); \
\ \
Foam::OpFunc(tRes.ref().field(), df1.field()); \ Foam::OpFunc(tres.ref().field(), df1.field()); \
\ tres.ref().oriented() = Dfunc(df1.oriented()); \
tRes.ref().oriented() = Dfunc(df1.oriented()); \
\ \
tdf1.clear(); \ tdf1.clear(); \
\ return tres; \
return tRes; \
} }
@ -156,9 +144,8 @@ tmp<DimensionedField<ReturnType, GeoMesh>> Func \
const DimensionedField<Type2, GeoMesh>& df2 \ const DimensionedField<Type2, GeoMesh>& df2 \
) \ ) \
{ \ { \
tmp<DimensionedField<ReturnType, GeoMesh>> tRes \ auto tres = \
( \ tmp<DimensionedField<ReturnType, GeoMesh>>::New \
new DimensionedField<ReturnType, GeoMesh> \
( \ ( \
IOobject \ IOobject \
( \ ( \
@ -168,16 +155,15 @@ tmp<DimensionedField<ReturnType, GeoMesh>> Func \
), \ ), \
df1.mesh(), \ df1.mesh(), \
Func(df1.dimensions(), df2.dimensions()) \ Func(df1.dimensions(), df2.dimensions()) \
) \ ); \
); \
\ \
Func(tRes.ref().field(), df1.field(), df2.field()); \ Func(tres.ref().field(), df1.field(), df2.field()); \
tres.ref().oriented() = Func(df1.oriented(), df2.oriented()); \
\ \
tRes.ref().oriented() = Func(df1.oriented(), df2.oriented()); \ return tres; \
\
return tRes; \
} \ } \
\ \
\
TEMPLATE \ TEMPLATE \
tmp<DimensionedField<ReturnType, GeoMesh>> Func \ tmp<DimensionedField<ReturnType, GeoMesh>> Func \
( \ ( \
@ -187,25 +173,22 @@ tmp<DimensionedField<ReturnType, GeoMesh>> Func \
{ \ { \
const DimensionedField<Type2, GeoMesh>& df2 = tdf2(); \ const DimensionedField<Type2, GeoMesh>& df2 = tdf2(); \
\ \
tmp<DimensionedField<ReturnType, GeoMesh>> tRes \ auto tres = \
( \
reuseTmpDimensionedField<ReturnType, Type2, GeoMesh>::New \ reuseTmpDimensionedField<ReturnType, Type2, GeoMesh>::New \
( \ ( \
tdf2, \ tdf2, \
#Func "(" + df1.name() + ',' + df2.name() + ')', \ #Func "(" + df1.name() + ',' + df2.name() + ')', \
Func(df1.dimensions(), df2.dimensions()) \ Func(df1.dimensions(), df2.dimensions()) \
) \ ); \
); \
\ \
Func(tRes.ref().field(), df1.field(), df2.field()); \ Func(tres.ref().field(), df1.field(), df2.field()); \
\ tres.ref().oriented() = Func(df1.oriented(), df2.oriented()); \
tRes.ref().oriented() = Func(df1.oriented(), df2.oriented()); \
\ \
tdf2.clear(); \ tdf2.clear(); \
\ return tres; \
return tRes; \
} \ } \
\ \
\
TEMPLATE \ TEMPLATE \
tmp<DimensionedField<ReturnType, GeoMesh>> Func \ tmp<DimensionedField<ReturnType, GeoMesh>> Func \
( \ ( \
@ -215,7 +198,7 @@ tmp<DimensionedField<ReturnType, GeoMesh>> Func \
{ \ { \
const DimensionedField<Type1, GeoMesh>& df1 = tdf1(); \ const DimensionedField<Type1, GeoMesh>& df1 = tdf1(); \
\ \
tmp<DimensionedField<ReturnType, GeoMesh>> tRes \ tmp<DimensionedField<ReturnType, GeoMesh>> tres \
( \ ( \
reuseTmpDimensionedField<ReturnType, Type1, GeoMesh>::New \ reuseTmpDimensionedField<ReturnType, Type1, GeoMesh>::New \
( \ ( \
@ -225,15 +208,14 @@ tmp<DimensionedField<ReturnType, GeoMesh>> Func \
) \ ) \
); \ ); \
\ \
Func(tRes.ref().field(), df1.field(), df2.field()); \ Func(tres.ref().field(), df1.field(), df2.field()); \
\ tres.ref().oriented() = Func(df1.oriented(), df2.oriented()); \
tRes.ref().oriented() = Func(df1.oriented(), df2.oriented()); \
\ \
tdf1.clear(); \ tdf1.clear(); \
\ return tres; \
return tRes; \
} \ } \
\ \
\
TEMPLATE \ TEMPLATE \
tmp<DimensionedField<ReturnType, GeoMesh>> Func \ tmp<DimensionedField<ReturnType, GeoMesh>> Func \
( \ ( \
@ -244,26 +226,22 @@ tmp<DimensionedField<ReturnType, GeoMesh>> Func \
const DimensionedField<Type1, GeoMesh>& df1 = tdf1(); \ const DimensionedField<Type1, GeoMesh>& df1 = tdf1(); \
const DimensionedField<Type2, GeoMesh>& df2 = tdf2(); \ const DimensionedField<Type2, GeoMesh>& df2 = tdf2(); \
\ \
tmp<DimensionedField<ReturnType, GeoMesh>> tRes \ auto tres = \
( \
reuseTmpTmpDimensionedField \ reuseTmpTmpDimensionedField \
<ReturnType, Type1, Type1, Type2, GeoMesh>::New \ <ReturnType, Type1, Type1, Type2, GeoMesh>::New \
( \ ( \
tdf1, \ tdf1, \
tdf2, \ tdf2, \
#Func "(" + df1.name() + ',' + df2.name() + ')', \ #Func "(" + df1.name() + ',' + df2.name() + ')', \
Func(df1.dimensions(), df2.dimensions()) \ Func(df1.dimensions(), df2.dimensions()) \
) \ ); \
); \
\ \
Func(tRes.ref().field(), df1.field(), df2.field()); \ Func(tres.ref().field(), df1.field(), df2.field()); \
\ tres.ref().oriented() = Func(df1.oriented(), df2.oriented()); \
tRes.ref().oriented() = Func(df1.oriented(), df2.oriented()); \
\ \
tdf1.clear(); \ tdf1.clear(); \
tdf2.clear(); \ tdf2.clear(); \
\ return tres; \
return tRes; \
} }
@ -278,9 +256,8 @@ tmp<DimensionedField<ReturnType, GeoMesh>> Func \
const DimensionedField<Type2, GeoMesh>& df2 \ const DimensionedField<Type2, GeoMesh>& df2 \
) \ ) \
{ \ { \
tmp<DimensionedField<ReturnType, GeoMesh>> tRes \ auto tres = \
( \ tmp<DimensionedField<ReturnType, GeoMesh>>::New \
new DimensionedField<ReturnType, GeoMesh> \
( \ ( \
IOobject \ IOobject \
( \ ( \
@ -290,16 +267,15 @@ tmp<DimensionedField<ReturnType, GeoMesh>> Func \
), \ ), \
df2.mesh(), \ df2.mesh(), \
Func(dt1.dimensions(), df2.dimensions()) \ Func(dt1.dimensions(), df2.dimensions()) \
) \ ); \
); \
\ \
Func(tRes.ref().field(), dt1.value(), df2.field()); \ Func(tres.ref().field(), dt1.value(), df2.field()); \
tres.ref().oriented() = df2.oriented(); \
\ \
tRes.ref().oriented() = df2.oriented(); \ return tres; \
\
return tRes; \
} \ } \
\ \
\
TEMPLATE \ TEMPLATE \
tmp<DimensionedField<ReturnType, GeoMesh>> Func \ tmp<DimensionedField<ReturnType, GeoMesh>> Func \
( \ ( \
@ -320,25 +296,22 @@ tmp<DimensionedField<ReturnType, GeoMesh>> Func \
{ \ { \
const DimensionedField<Type2, GeoMesh>& df2 = tdf2(); \ const DimensionedField<Type2, GeoMesh>& df2 = tdf2(); \
\ \
tmp<DimensionedField<ReturnType, GeoMesh>> tRes \ auto tres = \
( \
reuseTmpDimensionedField<ReturnType, Type2, GeoMesh>::New \ reuseTmpDimensionedField<ReturnType, Type2, GeoMesh>::New \
( \ ( \
tdf2, \ tdf2, \
#Func "(" + dt1.name() + ',' + df2.name() + ')', \ #Func "(" + dt1.name() + ',' + df2.name() + ')', \
Func(dt1.dimensions(), df2.dimensions()) \ Func(dt1.dimensions(), df2.dimensions()) \
) \ ); \
); \
\ \
Func(tRes.ref().field(), dt1.value(), df2.field()); \ Func(tres.ref().field(), dt1.value(), df2.field()); \
\ tres.ref().oriented() = df2.oriented(); \
tRes.ref().oriented() = df2.oriented(); \
\ \
tdf2.clear(); \ tdf2.clear(); \
\ return tres; \
return tRes; \
} \ } \
\ \
\
TEMPLATE \ TEMPLATE \
tmp<DimensionedField<ReturnType, GeoMesh>> Func \ tmp<DimensionedField<ReturnType, GeoMesh>> Func \
( \ ( \
@ -359,9 +332,8 @@ tmp<DimensionedField<ReturnType, GeoMesh>> Func \
const dimensioned<Type2>& dt2 \ const dimensioned<Type2>& dt2 \
) \ ) \
{ \ { \
tmp<DimensionedField<ReturnType, GeoMesh>> tRes \ auto tres = \
( \ tmp<DimensionedField<ReturnType, GeoMesh>>::New \
new DimensionedField<ReturnType, GeoMesh> \
( \ ( \
IOobject \ IOobject \
( \ ( \
@ -371,16 +343,15 @@ tmp<DimensionedField<ReturnType, GeoMesh>> Func \
), \ ), \
df1.mesh(), \ df1.mesh(), \
Func(df1.dimensions(), dt2.dimensions()) \ Func(df1.dimensions(), dt2.dimensions()) \
) \ ); \
); \
\ \
Func(tRes.ref().field(), df1.field(), dt2.value()); \ Func(tres.ref().field(), df1.field(), dt2.value()); \
tres.ref().oriented() = df1.oriented(); \
\ \
tRes.ref().oriented() = df1.oriented(); \ return tres; \
\
return tRes; \
} \ } \
\ \
\
TEMPLATE \ TEMPLATE \
tmp<DimensionedField<ReturnType, GeoMesh>> Func \ tmp<DimensionedField<ReturnType, GeoMesh>> Func \
( \ ( \
@ -401,25 +372,22 @@ tmp<DimensionedField<ReturnType, GeoMesh>> Func \
{ \ { \
const DimensionedField<Type1, GeoMesh>& df1 = tdf1(); \ const DimensionedField<Type1, GeoMesh>& df1 = tdf1(); \
\ \
tmp<DimensionedField<ReturnType, GeoMesh>> tRes \ auto tres = \
( \
reuseTmpDimensionedField<ReturnType, Type1, GeoMesh>::New \ reuseTmpDimensionedField<ReturnType, Type1, GeoMesh>::New \
( \ ( \
tdf1, \ tdf1, \
#Func "(" + df1.name() + ',' + dt2.name() + ')', \ #Func "(" + df1.name() + ',' + dt2.name() + ')', \
Func(df1.dimensions(), dt2.dimensions()) \ Func(df1.dimensions(), dt2.dimensions()) \
) \ ); \
); \
\ \
Func(tRes.ref().field(), df1.field(), dt2.value()); \ Func(tres.ref().field(), df1.field(), dt2.value()); \
\ tres.ref().oriented() = df1.oriented(); \
tRes.ref().oriented() = df1.oriented(); \
\ \
tdf1.clear(); \ tdf1.clear(); \
\ return tres; \
return tRes; \
} \ } \
\ \
\
TEMPLATE \ TEMPLATE \
tmp<DimensionedField<ReturnType, GeoMesh>> Func \ tmp<DimensionedField<ReturnType, GeoMesh>> Func \
( \ ( \
@ -447,9 +415,8 @@ tmp<DimensionedField<ReturnType, GeoMesh>> operator Op \
const DimensionedField<Type2, GeoMesh>& df2 \ const DimensionedField<Type2, GeoMesh>& df2 \
) \ ) \
{ \ { \
tmp<DimensionedField<ReturnType, GeoMesh>> tRes \ auto tres = \
( \ tmp<DimensionedField<ReturnType, GeoMesh>>::New \
new DimensionedField<ReturnType, GeoMesh> \
( \ ( \
IOobject \ IOobject \
( \ ( \
@ -459,16 +426,15 @@ tmp<DimensionedField<ReturnType, GeoMesh>> operator Op \
), \ ), \
df1.mesh(), \ df1.mesh(), \
df1.dimensions() Op df2.dimensions() \ df1.dimensions() Op df2.dimensions() \
) \ ); \
); \
\ \
Foam::OpFunc(tRes.ref().field(), df1.field(), df2.field()); \ Foam::OpFunc(tres.ref().field(), df1.field(), df2.field()); \
tres.ref().oriented() = df1.oriented() Op df2.oriented(); \
\ \
tRes.ref().oriented() = df1.oriented() Op df2.oriented(); \ return tres; \
\
return tRes; \
} \ } \
\ \
\
TEMPLATE \ TEMPLATE \
tmp<DimensionedField<ReturnType, GeoMesh>> operator Op \ tmp<DimensionedField<ReturnType, GeoMesh>> operator Op \
( \ ( \
@ -478,25 +444,22 @@ tmp<DimensionedField<ReturnType, GeoMesh>> operator Op \
{ \ { \
const DimensionedField<Type2, GeoMesh>& df2 = tdf2(); \ const DimensionedField<Type2, GeoMesh>& df2 = tdf2(); \
\ \
tmp<DimensionedField<ReturnType, GeoMesh>> tRes \ auto tres = \
( \
reuseTmpDimensionedField<ReturnType, Type2, GeoMesh>::New \ reuseTmpDimensionedField<ReturnType, Type2, GeoMesh>::New \
( \ ( \
tdf2, \ tdf2, \
'(' + df1.name() + OpName + df2.name() + ')', \ '(' + df1.name() + OpName + df2.name() + ')', \
df1.dimensions() Op df2.dimensions() \ df1.dimensions() Op df2.dimensions() \
) \ ); \
); \
\ \
Foam::OpFunc(tRes.ref().field(), df1.field(), df2.field()); \ Foam::OpFunc(tres.ref().field(), df1.field(), df2.field()); \
\ tres.ref().oriented() = df1.oriented() Op df2.oriented(); \
tRes.ref().oriented() = df1.oriented() Op df2.oriented(); \
\ \
tdf2.clear(); \ tdf2.clear(); \
\ return tres; \
return tRes; \
} \ } \
\ \
\
TEMPLATE \ TEMPLATE \
tmp<DimensionedField<ReturnType, GeoMesh>> operator Op \ tmp<DimensionedField<ReturnType, GeoMesh>> operator Op \
( \ ( \
@ -506,25 +469,22 @@ tmp<DimensionedField<ReturnType, GeoMesh>> operator Op \
{ \ { \
const DimensionedField<Type1, GeoMesh>& df1 = tdf1(); \ const DimensionedField<Type1, GeoMesh>& df1 = tdf1(); \
\ \
tmp<DimensionedField<ReturnType, GeoMesh>> tRes \ auto tres = \
( \
reuseTmpDimensionedField<ReturnType, Type1, GeoMesh>::New \ reuseTmpDimensionedField<ReturnType, Type1, GeoMesh>::New \
( \ ( \
tdf1, \ tdf1, \
'(' + df1.name() + OpName + df2.name() + ')', \ '(' + df1.name() + OpName + df2.name() + ')', \
df1.dimensions() Op df2.dimensions() \ df1.dimensions() Op df2.dimensions() \
) \ ); \
); \
\ \
Foam::OpFunc(tRes.ref().field(), df1.field(), df2.field()); \ Foam::OpFunc(tres.ref().field(), df1.field(), df2.field()); \
\ tres.ref().oriented() = df1.oriented() Op df2.oriented(); \
tRes.ref().oriented() = df1.oriented() Op df2.oriented(); \
\ \
tdf1.clear(); \ tdf1.clear(); \
\ return tres; \
return tRes; \
} \ } \
\ \
\
TEMPLATE \ TEMPLATE \
tmp<DimensionedField<ReturnType, GeoMesh>> operator Op \ tmp<DimensionedField<ReturnType, GeoMesh>> operator Op \
( \ ( \
@ -535,26 +495,22 @@ tmp<DimensionedField<ReturnType, GeoMesh>> operator Op \
const DimensionedField<Type1, GeoMesh>& df1 = tdf1(); \ const DimensionedField<Type1, GeoMesh>& df1 = tdf1(); \
const DimensionedField<Type2, GeoMesh>& df2 = tdf2(); \ const DimensionedField<Type2, GeoMesh>& df2 = tdf2(); \
\ \
tmp<DimensionedField<ReturnType, GeoMesh>> tRes \ auto tres = \
( \
reuseTmpTmpDimensionedField \ reuseTmpTmpDimensionedField \
<ReturnType, Type1, Type1, Type2, GeoMesh>::New \ <ReturnType, Type1, Type1, Type2, GeoMesh>::New \
( \ ( \
tdf1, \ tdf1, \
tdf2, \ tdf2, \
'(' + df1.name() + OpName + df2.name() + ')', \ '(' + df1.name() + OpName + df2.name() + ')', \
df1.dimensions() Op df2.dimensions() \ df1.dimensions() Op df2.dimensions() \
) \ ); \
); \
\ \
Foam::OpFunc(tRes.ref().field(), df1.field(), df2.field()); \ Foam::OpFunc(tres.ref().field(), df1.field(), df2.field()); \
\ tres.ref().oriented() = df1.oriented() Op df2.oriented(); \
tRes.ref().oriented() = df1.oriented() Op df2.oriented(); \
\ \
tdf1.clear(); \ tdf1.clear(); \
tdf2.clear(); \ tdf2.clear(); \
\ return tres; \
return tRes; \
} }
@ -569,9 +525,8 @@ tmp<DimensionedField<ReturnType, GeoMesh>> operator Op \
const DimensionedField<Type2, GeoMesh>& df2 \ const DimensionedField<Type2, GeoMesh>& df2 \
) \ ) \
{ \ { \
tmp<DimensionedField<ReturnType, GeoMesh>> tRes \ auto tres = \
( \ tmp<DimensionedField<ReturnType, GeoMesh>>::New \
new DimensionedField<ReturnType, GeoMesh> \
( \ ( \
IOobject \ IOobject \
( \ ( \
@ -581,16 +536,16 @@ tmp<DimensionedField<ReturnType, GeoMesh>> operator Op \
), \ ), \
df2.mesh(), \ df2.mesh(), \
dt1.dimensions() Op df2.dimensions() \ dt1.dimensions() Op df2.dimensions() \
) \ ); \
); \
\ \
tRes.ref().oriented() = df2.oriented(); \ tres.ref().oriented() = df2.oriented(); \
\ \
Foam::OpFunc(tRes.ref().field(), dt1.value(), df2.field()); \ Foam::OpFunc(tres.ref().field(), dt1.value(), df2.field()); \
\ \
return tRes; \ return tres; \
} \ } \
\ \
\
TEMPLATE \ TEMPLATE \
tmp<DimensionedField<ReturnType, GeoMesh>> operator Op \ tmp<DimensionedField<ReturnType, GeoMesh>> operator Op \
( \ ( \
@ -611,25 +566,22 @@ tmp<DimensionedField<ReturnType, GeoMesh>> operator Op \
{ \ { \
const DimensionedField<Type2, GeoMesh>& df2 = tdf2(); \ const DimensionedField<Type2, GeoMesh>& df2 = tdf2(); \
\ \
tmp<DimensionedField<ReturnType, GeoMesh>> tRes \ auto tres = \
( \
reuseTmpDimensionedField<ReturnType, Type2, GeoMesh>::New \ reuseTmpDimensionedField<ReturnType, Type2, GeoMesh>::New \
( \ ( \
tdf2, \ tdf2, \
'(' + dt1.name() + OpName + df2.name() + ')', \ '(' + dt1.name() + OpName + df2.name() + ')', \
dt1.dimensions() Op df2.dimensions() \ dt1.dimensions() Op df2.dimensions() \
) \ ); \
); \
\ \
Foam::OpFunc(tRes.ref().field(), dt1.value(), tdf2().field()); \ Foam::OpFunc(tres.ref().field(), dt1.value(), tdf2().field()); \
\ tres.ref().oriented() = df2.oriented(); \
tRes.ref().oriented() = df2.oriented(); \
\ \
tdf2.clear(); \ tdf2.clear(); \
\ return tres; \
return tRes; \
} \ } \
\ \
\
TEMPLATE \ TEMPLATE \
tmp<DimensionedField<ReturnType, GeoMesh>> operator Op \ tmp<DimensionedField<ReturnType, GeoMesh>> operator Op \
( \ ( \
@ -650,9 +602,8 @@ tmp<DimensionedField<ReturnType, GeoMesh>> operator Op \
const dimensioned<Type2>& dt2 \ const dimensioned<Type2>& dt2 \
) \ ) \
{ \ { \
tmp<DimensionedField<ReturnType, GeoMesh>> tRes \ auto tres = \
( \ tmp<DimensionedField<ReturnType, GeoMesh>>::New \
new DimensionedField<ReturnType, GeoMesh> \
( \ ( \
IOobject \ IOobject \
( \ ( \
@ -662,16 +613,15 @@ tmp<DimensionedField<ReturnType, GeoMesh>> operator Op \
), \ ), \
df1.mesh(), \ df1.mesh(), \
df1.dimensions() Op dt2.dimensions() \ df1.dimensions() Op dt2.dimensions() \
) \ ); \
); \
\ \
Foam::OpFunc(tRes.ref().field(), df1.field(), dt2.value()); \ Foam::OpFunc(tres.ref().field(), df1.field(), dt2.value()); \
tres.ref().oriented() = df1.oriented(); \
\ \
tRes.ref().oriented() = df1.oriented(); \ return tres; \
\
return tRes; \
} \ } \
\ \
\
TEMPLATE \ TEMPLATE \
tmp<DimensionedField<ReturnType, GeoMesh>> operator Op \ tmp<DimensionedField<ReturnType, GeoMesh>> operator Op \
( \ ( \
@ -692,25 +642,22 @@ tmp<DimensionedField<ReturnType, GeoMesh>> operator Op \
{ \ { \
const DimensionedField<Type1, GeoMesh>& df1 = tdf1(); \ const DimensionedField<Type1, GeoMesh>& df1 = tdf1(); \
\ \
tmp<DimensionedField<ReturnType, GeoMesh>> tRes \ auto tres = \
( \
reuseTmpDimensionedField<ReturnType, Type1, GeoMesh>::New \ reuseTmpDimensionedField<ReturnType, Type1, GeoMesh>::New \
( \ ( \
tdf1, \ tdf1, \
'(' + df1.name() + OpName + dt2.name() + ')', \ '(' + df1.name() + OpName + dt2.name() + ')', \
df1.dimensions() Op dt2.dimensions() \ df1.dimensions() Op dt2.dimensions() \
) \ ); \
); \
\ \
Foam::OpFunc(tRes.ref().field(), tdf1().field(), dt2.value()); \ Foam::OpFunc(tres.ref().field(), tdf1().field(), dt2.value()); \
\ tres.ref().oriented() = df1.oriented(); \
tRes.ref().oriented() = df1.oriented(); \
\ \
tdf1.clear(); \ tdf1.clear(); \
\ return tres; \
return tRes; \
} \ } \
\ \
\
TEMPLATE \ TEMPLATE \
tmp<DimensionedField<ReturnType, GeoMesh>> operator Op \ tmp<DimensionedField<ReturnType, GeoMesh>> operator Op \
( \ ( \