From 63655609568f0edad0665006537f42ee121e4ec5 Mon Sep 17 00:00:00 2001 From: Mark Olesen Date: Thu, 10 Jan 2019 17:06:04 +0100 Subject: [PATCH] STYLE: modernize code for DimensionedFieldFunctions (#1160) - use forwarding tmp factory methods, auto types --- .../DimensionedFieldFunctions.C | 194 ++++++----- .../DimensionedFieldFunctionsM.C | 305 ++++++++---------- 2 files changed, 219 insertions(+), 280 deletions(-) diff --git a/src/OpenFOAM/fields/DimensionedFields/DimensionedField/DimensionedFieldFunctions.C b/src/OpenFOAM/fields/DimensionedFields/DimensionedField/DimensionedFieldFunctions.C index 90fa1ac28d..f8435e19a3 100644 --- a/src/OpenFOAM/fields/DimensionedFields/DimensionedField/DimensionedFieldFunctions.C +++ b/src/OpenFOAM/fields/DimensionedFields/DimensionedField/DimensionedFieldFunctions.C @@ -3,7 +3,7 @@ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation - \\/ M anipulation | + \\/ M anipulation | Copyright (C) 2019 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -45,9 +45,8 @@ pow { typedef typename powProduct::type powProductType; - tmp> tPow - ( - new DimensionedField + auto tres = + tmp>::New ( IOobject ( @@ -57,12 +56,11 @@ pow ), df.mesh(), pow(df.dimensions(), r) - ) - ); + ); - pow(tPow.ref().field(), df.field()); + pow(tres.ref().field(), df.field()); - return tPow; + return tres; } @@ -78,7 +76,7 @@ pow const DimensionedField& df = tdf(); - tmp> tPow = + auto tres = reuseTmpDimensionedField::New ( tdf, @@ -86,22 +84,21 @@ pow pow(df.dimensions(), r) ); - pow(tPow.ref().field(), df.field()); + pow(tres.ref().field(), df.field()); tdf.clear(); - - return tPow; + return tres; } + template tmp::type, GeoMesh>> sqr(const DimensionedField& df) { typedef typename outerProduct::type outerProductType; - tmp> tSqr - ( - new DimensionedField + auto tres = + tmp>::New ( IOobject ( @@ -111,12 +108,11 @@ sqr(const DimensionedField& df) ), df.mesh(), sqr(df.dimensions()) - ) - ); + ); - sqr(tSqr.ref().field(), df.field()); + sqr(tres.ref().field(), df.field()); - return tSqr; + return tres; } template @@ -127,7 +123,7 @@ sqr(const tmp>& tdf) const DimensionedField& df = tdf(); - tmp> tSqr = + auto tres = reuseTmpDimensionedField::New ( tdf, @@ -135,11 +131,10 @@ sqr(const tmp>& tdf) sqr(df.dimensions()) ); - sqr(tSqr.ref().field(), df.field()); + sqr(tres.ref().field(), df.field()); tdf.clear(); - - return tSqr; + return tres; } @@ -149,9 +144,8 @@ tmp> magSqr const DimensionedField& df ) { - tmp> tMagSqr - ( - new DimensionedField + auto tres = + tmp>::New ( IOobject ( @@ -161,12 +155,11 @@ tmp> magSqr ), df.mesh(), sqr(df.dimensions()) - ) - ); + ); - magSqr(tMagSqr.ref().field(), df.field()); + magSqr(tres.ref().field(), df.field()); - return tMagSqr; + return tres; } template @@ -177,7 +170,7 @@ tmp> magSqr { const DimensionedField& df = tdf(); - tmp> tMagSqr = + auto tres = reuseTmpDimensionedField::New ( tdf, @@ -185,11 +178,10 @@ tmp> magSqr sqr(df.dimensions()) ); - magSqr(tMagSqr.ref().field(), df.field()); + magSqr(tres.ref().field(), df.field()); tdf.clear(); - - return tMagSqr; + return tres; } @@ -199,9 +191,8 @@ tmp> mag const DimensionedField& df ) { - tmp> tMag - ( - new DimensionedField + auto tres = + tmp>::New ( IOobject ( @@ -211,12 +202,11 @@ tmp> mag ), df.mesh(), df.dimensions() - ) - ); + ); - mag(tMag.ref().field(), df.field()); + mag(tres.ref().field(), df.field()); - return tMag; + return tres; } template @@ -227,7 +217,7 @@ tmp> mag { const DimensionedField& df = tdf(); - tmp> tMag = + auto tres = reuseTmpDimensionedField::New ( tdf, @@ -235,11 +225,10 @@ tmp> mag df.dimensions() ); - mag(tMag.ref().field(), df.field()); + mag(tres.ref().field(), df.field()); tdf.clear(); - - return tMag; + return tres; } @@ -247,15 +236,16 @@ template tmp < DimensionedField - ::cmptType, GeoMesh> + < + typename DimensionedField::cmptType, GeoMesh + > > cmptAv(const DimensionedField& df) { typedef typename DimensionedField::cmptType cmptType; - tmp> CmptAv - ( - new DimensionedField + auto tres = + tmp>::New ( IOobject ( @@ -265,28 +255,29 @@ cmptAv(const DimensionedField& df) ), df.mesh(), df.dimensions() - ) - ); + ); - cmptAv(CmptAv.ref().field(), df.field()); + cmptAv(tres.ref().field(), df.field()); - return CmptAv; + return tres; } + template tmp < DimensionedField - ::cmptType, GeoMesh> + < + typename DimensionedField::cmptType, GeoMesh + > > cmptAv(const tmp>& tdf) { - typedef typename DimensionedField::cmptType - cmptType; + typedef typename DimensionedField::cmptType cmptType; const DimensionedField& df = tdf(); - tmp> CmptAv = + auto tres = reuseTmpDimensionedField::New ( tdf, @@ -294,13 +285,13 @@ cmptAv(const tmp>& tdf) df.dimensions() ); - cmptAv(CmptAv.ref().field(), df.field()); + cmptAv(tres.ref().field(), df.field()); tdf.clear(); - - return CmptAv; + return tres; } + #define UNARY_REDUCTION_FUNCTION(returnType, func, dfunc) \ \ template \ @@ -375,9 +366,9 @@ operator op \ ) \ { \ typedef typename product::type productType; \ - tmp> tRes \ - ( \ - new DimensionedField \ + \ + auto tres = \ + tmp>::New \ ( \ IOobject \ ( \ @@ -387,14 +378,14 @@ operator op \ ), \ df1.mesh(), \ 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 \ tmp::type, GeoMesh>> \ operator op \ @@ -407,7 +398,7 @@ operator op \ \ const DimensionedField& df2 = tdf2(); \ \ - tmp> tRes = \ + auto tres = \ reuseTmpDimensionedField::New \ ( \ tdf2, \ @@ -415,13 +406,13 @@ operator op \ 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(); \ - \ - return tRes; \ + return tres; \ } \ \ + \ template \ tmp::type, GeoMesh>> \ operator op \ @@ -434,7 +425,7 @@ operator op \ \ const DimensionedField& df1 = tdf1(); \ \ - tmp> tRes = \ + auto tres = \ reuseTmpDimensionedField::New \ ( \ tdf1, \ @@ -442,13 +433,13 @@ operator op \ 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(); \ - \ - return tRes; \ + return tres; \ } \ \ + \ template \ tmp::type, GeoMesh>> \ operator op \ @@ -462,7 +453,7 @@ operator op \ const DimensionedField& df1 = tdf1(); \ const DimensionedField& df2 = tdf2(); \ \ - tmp> tRes = \ + auto tres = \ reuseTmpTmpDimensionedField \ ::New \ ( \ @@ -472,14 +463,14 @@ operator op \ 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(); \ tdf2.clear(); \ - \ - return tRes; \ + return tres; \ } \ \ + \ template \ tmp::type, GeoMesh>> \ operator op \ @@ -490,9 +481,8 @@ operator op \ { \ typedef typename product::type productType; \ \ - tmp> tRes \ - ( \ - new DimensionedField \ + auto tres = \ + tmp>::New \ ( \ IOobject \ ( \ @@ -502,14 +492,14 @@ operator op \ ), \ df1.mesh(), \ 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 \ tmp::type, GeoMesh>> \ operator op \ @@ -534,7 +524,7 @@ operator op \ \ const DimensionedField& df1 = tdf1(); \ \ - tmp> tRes = \ + auto tres = \ reuseTmpDimensionedField::New \ ( \ tdf1, \ @@ -542,13 +532,13 @@ operator op \ 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(); \ - \ - return tRes; \ + return tres; \ } \ \ + \ template \ tmp::type, GeoMesh>> \ operator op \ @@ -570,9 +560,9 @@ operator op \ ) \ { \ typedef typename product::type productType; \ - tmp> tRes \ - ( \ - new DimensionedField \ + \ + auto tres = \ + tmp>::New \ ( \ IOobject \ ( \ @@ -582,14 +572,14 @@ operator op \ ), \ df1.mesh(), \ 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 \ tmp::type, GeoMesh>> \ operator op \ @@ -601,6 +591,7 @@ operator op \ return dimensioned
(static_cast(vs)) op df1; \ } \ \ + \ template \ tmp::type, GeoMesh>> \ operator op \ @@ -613,7 +604,7 @@ operator op \ \ const DimensionedField& df1 = tdf1(); \ \ - tmp> tRes = \ + auto tres = \ reuseTmpDimensionedField::New \ ( \ tdf1, \ @@ -621,13 +612,13 @@ operator op \ 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(); \ - \ - return tRes; \ + return tres; \ } \ \ + \ template \ tmp::type, GeoMesh>> \ operator op \ @@ -639,6 +630,7 @@ operator op \ return dimensioned(static_cast(vs)) op tdf1; \ } + PRODUCT_OPERATOR(typeOfSum, +, add) PRODUCT_OPERATOR(typeOfSum, -, subtract) diff --git a/src/OpenFOAM/fields/DimensionedFields/DimensionedField/DimensionedFieldFunctionsM.C b/src/OpenFOAM/fields/DimensionedFields/DimensionedField/DimensionedFieldFunctionsM.C index 8e69d61745..9aac916071 100644 --- a/src/OpenFOAM/fields/DimensionedFields/DimensionedField/DimensionedFieldFunctionsM.C +++ b/src/OpenFOAM/fields/DimensionedFields/DimensionedField/DimensionedFieldFunctionsM.C @@ -3,7 +3,7 @@ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation - \\/ M anipulation | + \\/ M anipulation | Copyright (C) 2019 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -35,9 +35,8 @@ tmp> Func \ const DimensionedField& df1 \ ) \ { \ - tmp> tRes \ - ( \ - new DimensionedField \ + auto tres = \ + tmp>::New \ ( \ IOobject \ ( \ @@ -47,16 +46,15 @@ tmp> Func \ ), \ df1.mesh(), \ 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 \ tmp> Func \ ( \ @@ -65,23 +63,19 @@ tmp> Func \ { \ const DimensionedField& df1 = tdf1(); \ \ - tmp> tRes \ - ( \ + auto tres = \ reuseTmpDimensionedField::New \ ( \ tdf1, \ #Func "(" + df1.name() + ')', \ Dfunc(df1.dimensions()) \ - ) \ - ); \ + ); \ \ - Func(tRes.ref().field(), df1.field()); \ - \ - tRes.ref().oriented() = Dfunc(df1.oriented()); \ + Func(tres.ref().field(), df1.field()); \ + tres.ref().oriented() = Dfunc(df1.oriented()); \ \ tdf1.clear(); \ - \ - return tRes; \ + return tres; \ } @@ -95,9 +89,8 @@ tmp> operator Op \ const DimensionedField& df1 \ ) \ { \ - tmp> tRes \ - ( \ - new DimensionedField \ + auto tres = \ + tmp>::New \ ( \ IOobject \ ( \ @@ -107,16 +100,15 @@ tmp> operator Op \ ), \ df1.mesh(), \ 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 \ tmp> operator Op \ ( \ @@ -125,23 +117,19 @@ tmp> operator Op \ { \ const DimensionedField& df1 = tdf1(); \ \ - tmp> tRes \ - ( \ + auto tres = \ reuseTmpDimensionedField::New \ ( \ tdf1, \ #Op + df1.name(), \ Dfunc(df1.dimensions()) \ - ) \ - ); \ + ); \ \ - Foam::OpFunc(tRes.ref().field(), df1.field()); \ - \ - tRes.ref().oriented() = Dfunc(df1.oriented()); \ + Foam::OpFunc(tres.ref().field(), df1.field()); \ + tres.ref().oriented() = Dfunc(df1.oriented()); \ \ tdf1.clear(); \ - \ - return tRes; \ + return tres; \ } @@ -156,9 +144,8 @@ tmp> Func \ const DimensionedField& df2 \ ) \ { \ - tmp> tRes \ - ( \ - new DimensionedField \ + auto tres = \ + tmp>::New \ ( \ IOobject \ ( \ @@ -168,16 +155,15 @@ tmp> Func \ ), \ df1.mesh(), \ 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 \ tmp> Func \ ( \ @@ -187,25 +173,22 @@ tmp> Func \ { \ const DimensionedField& df2 = tdf2(); \ \ - tmp> tRes \ - ( \ + auto tres = \ reuseTmpDimensionedField::New \ ( \ tdf2, \ #Func "(" + df1.name() + ',' + df2.name() + ')', \ Func(df1.dimensions(), df2.dimensions()) \ - ) \ - ); \ + ); \ \ - Func(tRes.ref().field(), df1.field(), df2.field()); \ - \ - tRes.ref().oriented() = Func(df1.oriented(), df2.oriented()); \ + Func(tres.ref().field(), df1.field(), df2.field()); \ + tres.ref().oriented() = Func(df1.oriented(), df2.oriented()); \ \ tdf2.clear(); \ - \ - return tRes; \ + return tres; \ } \ \ + \ TEMPLATE \ tmp> Func \ ( \ @@ -215,7 +198,7 @@ tmp> Func \ { \ const DimensionedField& df1 = tdf1(); \ \ - tmp> tRes \ + tmp> tres \ ( \ reuseTmpDimensionedField::New \ ( \ @@ -225,15 +208,14 @@ tmp> Func \ ) \ ); \ \ - Func(tRes.ref().field(), df1.field(), df2.field()); \ - \ - tRes.ref().oriented() = Func(df1.oriented(), df2.oriented()); \ + Func(tres.ref().field(), df1.field(), df2.field()); \ + tres.ref().oriented() = Func(df1.oriented(), df2.oriented()); \ \ tdf1.clear(); \ - \ - return tRes; \ + return tres; \ } \ \ + \ TEMPLATE \ tmp> Func \ ( \ @@ -244,26 +226,22 @@ tmp> Func \ const DimensionedField& df1 = tdf1(); \ const DimensionedField& df2 = tdf2(); \ \ - tmp> tRes \ - ( \ + auto tres = \ reuseTmpTmpDimensionedField \ - ::New \ + ::New \ ( \ tdf1, \ tdf2, \ #Func "(" + df1.name() + ',' + df2.name() + ')', \ Func(df1.dimensions(), df2.dimensions()) \ - ) \ - ); \ + ); \ \ - Func(tRes.ref().field(), df1.field(), df2.field()); \ - \ - tRes.ref().oriented() = Func(df1.oriented(), df2.oriented()); \ + Func(tres.ref().field(), df1.field(), df2.field()); \ + tres.ref().oriented() = Func(df1.oriented(), df2.oriented()); \ \ tdf1.clear(); \ tdf2.clear(); \ - \ - return tRes; \ + return tres; \ } @@ -278,9 +256,8 @@ tmp> Func \ const DimensionedField& df2 \ ) \ { \ - tmp> tRes \ - ( \ - new DimensionedField \ + auto tres = \ + tmp>::New \ ( \ IOobject \ ( \ @@ -290,16 +267,15 @@ tmp> Func \ ), \ df2.mesh(), \ 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 \ tmp> Func \ ( \ @@ -320,25 +296,22 @@ tmp> Func \ { \ const DimensionedField& df2 = tdf2(); \ \ - tmp> tRes \ - ( \ + auto tres = \ reuseTmpDimensionedField::New \ ( \ tdf2, \ #Func "(" + dt1.name() + ',' + df2.name() + ')', \ Func(dt1.dimensions(), df2.dimensions()) \ - ) \ - ); \ + ); \ \ - Func(tRes.ref().field(), dt1.value(), df2.field()); \ - \ - tRes.ref().oriented() = df2.oriented(); \ + Func(tres.ref().field(), dt1.value(), df2.field()); \ + tres.ref().oriented() = df2.oriented(); \ \ tdf2.clear(); \ - \ - return tRes; \ + return tres; \ } \ \ + \ TEMPLATE \ tmp> Func \ ( \ @@ -359,9 +332,8 @@ tmp> Func \ const dimensioned& dt2 \ ) \ { \ - tmp> tRes \ - ( \ - new DimensionedField \ + auto tres = \ + tmp>::New \ ( \ IOobject \ ( \ @@ -371,16 +343,15 @@ tmp> Func \ ), \ df1.mesh(), \ 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 \ tmp> Func \ ( \ @@ -401,25 +372,22 @@ tmp> Func \ { \ const DimensionedField& df1 = tdf1(); \ \ - tmp> tRes \ - ( \ + auto tres = \ reuseTmpDimensionedField::New \ ( \ tdf1, \ #Func "(" + df1.name() + ',' + dt2.name() + ')', \ Func(df1.dimensions(), dt2.dimensions()) \ - ) \ - ); \ + ); \ \ - Func(tRes.ref().field(), df1.field(), dt2.value()); \ - \ - tRes.ref().oriented() = df1.oriented(); \ + Func(tres.ref().field(), df1.field(), dt2.value()); \ + tres.ref().oriented() = df1.oriented(); \ \ tdf1.clear(); \ - \ - return tRes; \ + return tres; \ } \ \ + \ TEMPLATE \ tmp> Func \ ( \ @@ -447,9 +415,8 @@ tmp> operator Op \ const DimensionedField& df2 \ ) \ { \ - tmp> tRes \ - ( \ - new DimensionedField \ + auto tres = \ + tmp>::New \ ( \ IOobject \ ( \ @@ -459,16 +426,15 @@ tmp> operator Op \ ), \ df1.mesh(), \ 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 \ tmp> operator Op \ ( \ @@ -478,25 +444,22 @@ tmp> operator Op \ { \ const DimensionedField& df2 = tdf2(); \ \ - tmp> tRes \ - ( \ + auto tres = \ reuseTmpDimensionedField::New \ ( \ tdf2, \ '(' + df1.name() + OpName + df2.name() + ')', \ df1.dimensions() Op df2.dimensions() \ - ) \ - ); \ + ); \ \ - Foam::OpFunc(tRes.ref().field(), df1.field(), df2.field()); \ - \ - tRes.ref().oriented() = df1.oriented() Op df2.oriented(); \ + Foam::OpFunc(tres.ref().field(), df1.field(), df2.field()); \ + tres.ref().oriented() = df1.oriented() Op df2.oriented(); \ \ tdf2.clear(); \ - \ - return tRes; \ + return tres; \ } \ \ + \ TEMPLATE \ tmp> operator Op \ ( \ @@ -506,25 +469,22 @@ tmp> operator Op \ { \ const DimensionedField& df1 = tdf1(); \ \ - tmp> tRes \ - ( \ + auto tres = \ reuseTmpDimensionedField::New \ ( \ tdf1, \ '(' + df1.name() + OpName + df2.name() + ')', \ df1.dimensions() Op df2.dimensions() \ - ) \ - ); \ + ); \ \ - Foam::OpFunc(tRes.ref().field(), df1.field(), df2.field()); \ - \ - tRes.ref().oriented() = df1.oriented() Op df2.oriented(); \ + Foam::OpFunc(tres.ref().field(), df1.field(), df2.field()); \ + tres.ref().oriented() = df1.oriented() Op df2.oriented(); \ \ tdf1.clear(); \ - \ - return tRes; \ + return tres; \ } \ \ + \ TEMPLATE \ tmp> operator Op \ ( \ @@ -535,26 +495,22 @@ tmp> operator Op \ const DimensionedField& df1 = tdf1(); \ const DimensionedField& df2 = tdf2(); \ \ - tmp> tRes \ - ( \ + auto tres = \ reuseTmpTmpDimensionedField \ - ::New \ + ::New \ ( \ tdf1, \ tdf2, \ '(' + df1.name() + OpName + df2.name() + ')', \ df1.dimensions() Op df2.dimensions() \ - ) \ - ); \ + ); \ \ - Foam::OpFunc(tRes.ref().field(), df1.field(), df2.field()); \ - \ - tRes.ref().oriented() = df1.oriented() Op df2.oriented(); \ + Foam::OpFunc(tres.ref().field(), df1.field(), df2.field()); \ + tres.ref().oriented() = df1.oriented() Op df2.oriented(); \ \ tdf1.clear(); \ tdf2.clear(); \ - \ - return tRes; \ + return tres; \ } @@ -569,9 +525,8 @@ tmp> operator Op \ const DimensionedField& df2 \ ) \ { \ - tmp> tRes \ - ( \ - new DimensionedField \ + auto tres = \ + tmp>::New \ ( \ IOobject \ ( \ @@ -581,16 +536,16 @@ tmp> operator Op \ ), \ df2.mesh(), \ 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 \ tmp> operator Op \ ( \ @@ -611,25 +566,22 @@ tmp> operator Op \ { \ const DimensionedField& df2 = tdf2(); \ \ - tmp> tRes \ - ( \ + auto tres = \ reuseTmpDimensionedField::New \ ( \ tdf2, \ '(' + dt1.name() + OpName + df2.name() + ')', \ dt1.dimensions() Op df2.dimensions() \ - ) \ - ); \ + ); \ \ - Foam::OpFunc(tRes.ref().field(), dt1.value(), tdf2().field()); \ - \ - tRes.ref().oriented() = df2.oriented(); \ + Foam::OpFunc(tres.ref().field(), dt1.value(), tdf2().field()); \ + tres.ref().oriented() = df2.oriented(); \ \ tdf2.clear(); \ - \ - return tRes; \ + return tres; \ } \ \ + \ TEMPLATE \ tmp> operator Op \ ( \ @@ -650,9 +602,8 @@ tmp> operator Op \ const dimensioned& dt2 \ ) \ { \ - tmp> tRes \ - ( \ - new DimensionedField \ + auto tres = \ + tmp>::New \ ( \ IOobject \ ( \ @@ -662,16 +613,15 @@ tmp> operator Op \ ), \ df1.mesh(), \ 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 \ tmp> operator Op \ ( \ @@ -692,25 +642,22 @@ tmp> operator Op \ { \ const DimensionedField& df1 = tdf1(); \ \ - tmp> tRes \ - ( \ + auto tres = \ reuseTmpDimensionedField::New \ ( \ tdf1, \ '(' + df1.name() + OpName + dt2.name() + ')', \ df1.dimensions() Op dt2.dimensions() \ - ) \ - ); \ + ); \ \ - Foam::OpFunc(tRes.ref().field(), tdf1().field(), dt2.value()); \ - \ - tRes.ref().oriented() = df1.oriented(); \ + Foam::OpFunc(tres.ref().field(), tdf1().field(), dt2.value()); \ + tres.ref().oriented() = df1.oriented(); \ \ tdf1.clear(); \ - \ - return tRes; \ + return tres; \ } \ \ + \ TEMPLATE \ tmp> operator Op \ ( \