mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
FieldField, DimensionedField, GeometricField: Simplified tmp reuse and cleanup
This commit is contained in:
@ -88,7 +88,7 @@ pow
|
||||
|
||||
pow<Type, r, GeoMesh>(tPow().field(), df.field());
|
||||
|
||||
reuseTmpDimensionedField<powProductType, Type, GeoMesh>::clear(tdf);
|
||||
tdf.clear();
|
||||
|
||||
return tPow;
|
||||
}
|
||||
@ -137,7 +137,7 @@ sqr(const tmp<DimensionedField<Type, GeoMesh>>& tdf)
|
||||
|
||||
sqr(tSqr().field(), df.field());
|
||||
|
||||
reuseTmpDimensionedField<outerProductType, Type, GeoMesh>::clear(tdf);
|
||||
tdf.clear();
|
||||
|
||||
return tSqr;
|
||||
}
|
||||
@ -187,7 +187,7 @@ tmp<DimensionedField<scalar, GeoMesh>> magSqr
|
||||
|
||||
magSqr(tMagSqr().field(), df.field());
|
||||
|
||||
reuseTmpDimensionedField<scalar, Type, GeoMesh>::clear(tdf);
|
||||
tdf.clear();
|
||||
|
||||
return tMagSqr;
|
||||
}
|
||||
@ -237,7 +237,7 @@ tmp<DimensionedField<scalar, GeoMesh>> mag
|
||||
|
||||
mag(tMag().field(), df.field());
|
||||
|
||||
reuseTmpDimensionedField<scalar, Type, GeoMesh>::clear(tdf);
|
||||
tdf.clear();
|
||||
|
||||
return tMag;
|
||||
}
|
||||
@ -296,7 +296,7 @@ cmptAv(const tmp<DimensionedField<Type, GeoMesh>>& tdf)
|
||||
|
||||
cmptAv(CmptAv().field(), df.field());
|
||||
|
||||
reuseTmpDimensionedField<cmptType, Type, GeoMesh>::clear(tdf);
|
||||
tdf.clear();
|
||||
|
||||
return CmptAv;
|
||||
}
|
||||
@ -417,7 +417,7 @@ operator op \
|
||||
\
|
||||
Foam::opFunc(tRes.ref().field(), df1.field(), df2.field()); \
|
||||
\
|
||||
reuseTmpDimensionedField<productType, Type2, GeoMesh>::clear(tdf2); \
|
||||
tdf2.clear(); \
|
||||
\
|
||||
return tRes; \
|
||||
} \
|
||||
@ -444,7 +444,7 @@ operator op \
|
||||
\
|
||||
Foam::opFunc(tRes.ref().field(), df1.field(), df2.field()); \
|
||||
\
|
||||
reuseTmpDimensionedField<productType, Type1, GeoMesh>::clear(tdf1); \
|
||||
tdf1.clear(); \
|
||||
\
|
||||
return tRes; \
|
||||
} \
|
||||
@ -474,8 +474,8 @@ operator op \
|
||||
\
|
||||
Foam::opFunc(tRes.ref().field(), df1.field(), df2.field()); \
|
||||
\
|
||||
reuseTmpTmpDimensionedField \
|
||||
<productType, Type1, Type1, Type2, GeoMesh>::clear(tdf1, tdf2); \
|
||||
tdf1.clear(); \
|
||||
tdf2.clear(); \
|
||||
\
|
||||
return tRes; \
|
||||
} \
|
||||
@ -544,7 +544,7 @@ operator op \
|
||||
\
|
||||
Foam::opFunc(tRes.ref().field(), df1.field(), dvs.value()); \
|
||||
\
|
||||
reuseTmpDimensionedField<productType, Type, GeoMesh>::clear(tdf1); \
|
||||
tdf1.clear(); \
|
||||
\
|
||||
return tRes; \
|
||||
} \
|
||||
@ -623,7 +623,7 @@ operator op \
|
||||
\
|
||||
Foam::opFunc(tRes.ref().field(), dvs.value(), df1.field()); \
|
||||
\
|
||||
reuseTmpDimensionedField<productType, Type, GeoMesh>::clear(tdf1); \
|
||||
tdf1.clear(); \
|
||||
\
|
||||
return tRes; \
|
||||
} \
|
||||
|
||||
@ -75,7 +75,7 @@ tmp<DimensionedField<ReturnType, GeoMesh>> Func \
|
||||
\
|
||||
Func(tRes.ref().field(), df1.field()); \
|
||||
\
|
||||
reuseTmpDimensionedField<ReturnType, Type1, GeoMesh>::clear(tdf1); \
|
||||
tdf1.clear(); \
|
||||
\
|
||||
return tRes; \
|
||||
}
|
||||
@ -131,7 +131,7 @@ tmp<DimensionedField<ReturnType, GeoMesh>> operator Op \
|
||||
\
|
||||
Foam::OpFunc(tRes.ref().field(), df1.field()); \
|
||||
\
|
||||
reuseTmpDimensionedField<ReturnType, Type1, GeoMesh>::clear(tdf1); \
|
||||
tdf1.clear(); \
|
||||
\
|
||||
return tRes; \
|
||||
}
|
||||
@ -189,7 +189,7 @@ tmp<DimensionedField<ReturnType, GeoMesh>> Func \
|
||||
\
|
||||
Func(tRes.ref().field(), df1.field(), df2.field()); \
|
||||
\
|
||||
reuseTmpDimensionedField<ReturnType, Type2, GeoMesh>::clear(tdf2); \
|
||||
tdf2.clear(); \
|
||||
\
|
||||
return tRes; \
|
||||
} \
|
||||
@ -215,7 +215,7 @@ tmp<DimensionedField<ReturnType, GeoMesh>> Func \
|
||||
\
|
||||
Func(tRes.ref().field(), df1.field(), df2.field()); \
|
||||
\
|
||||
reuseTmpDimensionedField<ReturnType, Type1, GeoMesh>::clear(tdf1); \
|
||||
tdf1.clear(); \
|
||||
\
|
||||
return tRes; \
|
||||
} \
|
||||
@ -244,8 +244,8 @@ tmp<DimensionedField<ReturnType, GeoMesh>> Func \
|
||||
\
|
||||
Func(tRes.ref().field(), df1.field(), df2.field()); \
|
||||
\
|
||||
reuseTmpTmpDimensionedField<ReturnType, Type1, Type1, Type2, GeoMesh> \
|
||||
::clear(tdf1, tdf2); \
|
||||
tdf1.clear(); \
|
||||
tdf2.clear(); \
|
||||
\
|
||||
return tRes; \
|
||||
}
|
||||
@ -314,7 +314,7 @@ tmp<DimensionedField<ReturnType, GeoMesh>> Func \
|
||||
\
|
||||
Func(tRes.ref().field(), dt1.value(), df2.field()); \
|
||||
\
|
||||
reuseTmpDimensionedField<ReturnType, Type2, GeoMesh>::clear(tdf2); \
|
||||
tdf2.clear(); \
|
||||
\
|
||||
return tRes; \
|
||||
} \
|
||||
@ -391,7 +391,7 @@ tmp<DimensionedField<ReturnType, GeoMesh>> Func \
|
||||
\
|
||||
Func(tRes.ref().field(), df1.field(), dt2.value()); \
|
||||
\
|
||||
reuseTmpDimensionedField<ReturnType, Type1, GeoMesh>::clear(tdf1); \
|
||||
tdf1.clear(); \
|
||||
\
|
||||
return tRes; \
|
||||
} \
|
||||
@ -464,7 +464,7 @@ tmp<DimensionedField<ReturnType, GeoMesh>> operator Op \
|
||||
\
|
||||
Foam::OpFunc(tRes.ref().field(), df1.field(), df2.field()); \
|
||||
\
|
||||
reuseTmpDimensionedField<ReturnType, Type2, GeoMesh>::clear(tdf2); \
|
||||
tdf2.clear(); \
|
||||
\
|
||||
return tRes; \
|
||||
} \
|
||||
@ -490,7 +490,7 @@ tmp<DimensionedField<ReturnType, GeoMesh>> operator Op \
|
||||
\
|
||||
Foam::OpFunc(tRes.ref().field(), df1.field(), df2.field()); \
|
||||
\
|
||||
reuseTmpDimensionedField<ReturnType, Type1, GeoMesh>::clear(tdf1); \
|
||||
tdf1.clear(); \
|
||||
\
|
||||
return tRes; \
|
||||
} \
|
||||
@ -519,8 +519,8 @@ tmp<DimensionedField<ReturnType, GeoMesh>> operator Op \
|
||||
\
|
||||
Foam::OpFunc(tRes.ref().field(), df1.field(), df2.field()); \
|
||||
\
|
||||
reuseTmpTmpDimensionedField<ReturnType, Type1, Type1, Type2, GeoMesh>:: \
|
||||
clear(tdf1, tdf2); \
|
||||
tdf1.clear(); \
|
||||
tdf2.clear(); \
|
||||
\
|
||||
return tRes; \
|
||||
}
|
||||
@ -589,7 +589,7 @@ tmp<DimensionedField<ReturnType, GeoMesh>> operator Op \
|
||||
\
|
||||
Foam::OpFunc(tRes.ref().field(), dt1.value(), tdf2().field()); \
|
||||
\
|
||||
reuseTmpDimensionedField<ReturnType, Type2, GeoMesh>::clear(tdf2); \
|
||||
tdf2.clear(); \
|
||||
\
|
||||
return tRes; \
|
||||
} \
|
||||
@ -666,7 +666,7 @@ tmp<DimensionedField<ReturnType, GeoMesh>> operator Op \
|
||||
\
|
||||
Foam::OpFunc(tRes.ref().field(), tdf1().field(), dt2.value()); \
|
||||
\
|
||||
reuseTmpDimensionedField<ReturnType, Type1, GeoMesh>::clear(tdf1); \
|
||||
tdf1.clear(); \
|
||||
\
|
||||
return tRes; \
|
||||
} \
|
||||
|
||||
@ -33,6 +33,43 @@ namespace Foam
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
template<class TypeR, class GeoMesh>
|
||||
tmp<DimensionedField<TypeR, GeoMesh>> New
|
||||
(
|
||||
const tmp<DimensionedField<TypeR, GeoMesh>>& tdf1,
|
||||
const word& name,
|
||||
const dimensionSet& dimensions
|
||||
)
|
||||
{
|
||||
DimensionedField<TypeR, GeoMesh>& df1 =
|
||||
const_cast<DimensionedField<TypeR, GeoMesh>& >(tdf1());
|
||||
|
||||
if (tdf1.isTmp())
|
||||
{
|
||||
df1.rename(name);
|
||||
df1.dimensions().reset(dimensions);
|
||||
return tdf1;
|
||||
}
|
||||
else
|
||||
{
|
||||
return tmp<DimensionedField<TypeR, GeoMesh>>
|
||||
(
|
||||
new DimensionedField<TypeR, GeoMesh>
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
name,
|
||||
df1.instance(),
|
||||
df1.db()
|
||||
),
|
||||
df1.mesh(),
|
||||
dimensions
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
template<class TypeR, class Type1, class GeoMesh>
|
||||
class reuseTmpDimensionedField
|
||||
{
|
||||
@ -62,11 +99,6 @@ public:
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
static void clear(const tmp<DimensionedField<Type1, GeoMesh>>& tdf1)
|
||||
{
|
||||
tdf1.clear();
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@ -109,11 +141,6 @@ public:
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
static void clear(const tmp<DimensionedField<TypeR, GeoMesh>>& tdf1)
|
||||
{
|
||||
tdf1.clear();
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@ -147,16 +174,6 @@ public:
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
static void clear
|
||||
(
|
||||
const tmp<DimensionedField<Type1, GeoMesh>>& tdf1,
|
||||
const tmp<DimensionedField<Type2, GeoMesh>>& tdf2
|
||||
)
|
||||
{
|
||||
tdf1.clear();
|
||||
tdf2.clear();
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@ -201,16 +218,6 @@ public:
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
static void clear
|
||||
(
|
||||
const tmp<DimensionedField<Type1, GeoMesh>>& tdf1,
|
||||
const tmp<DimensionedField<TypeR, GeoMesh>>& tdf2
|
||||
)
|
||||
{
|
||||
tdf1.clear();
|
||||
tdf2.clear();
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@ -254,16 +261,6 @@ public:
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
static void clear
|
||||
(
|
||||
const tmp<DimensionedField<TypeR, GeoMesh>>& tdf1,
|
||||
const tmp<DimensionedField<Type2, GeoMesh>>& tdf2
|
||||
)
|
||||
{
|
||||
tdf1.clear();
|
||||
tdf2.clear();
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@ -315,16 +312,6 @@ public:
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
static void clear
|
||||
(
|
||||
const tmp<DimensionedField<TypeR, GeoMesh>>& tdf1,
|
||||
const tmp<DimensionedField<TypeR, GeoMesh>>& tdf2
|
||||
)
|
||||
{
|
||||
tdf1.clear();
|
||||
tdf2.clear();
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
||||
@ -72,17 +72,16 @@ tmp<DimensionedField<scalar, GeoMesh>> stabilise
|
||||
{
|
||||
const DimensionedField<scalar, GeoMesh>& dsf = tdsf();
|
||||
|
||||
tmp<DimensionedField<scalar, GeoMesh>> tRes =
|
||||
reuseTmpDimensionedField<scalar, scalar, GeoMesh>::New
|
||||
(
|
||||
tdsf,
|
||||
"stabilise(" + dsf.name() + ',' + ds.name() + ')',
|
||||
dsf.dimensions() + ds.dimensions()
|
||||
);
|
||||
tmp<DimensionedField<scalar, GeoMesh>> tRes = New
|
||||
(
|
||||
tdsf,
|
||||
"stabilise(" + dsf.name() + ',' + ds.name() + ')',
|
||||
dsf.dimensions() + ds.dimensions()
|
||||
);
|
||||
|
||||
stabilise(tRes.ref().field(), dsf.field(), ds.value());
|
||||
|
||||
reuseTmpDimensionedField<scalar, scalar, GeoMesh>::clear(tdsf);
|
||||
tdsf.clear();
|
||||
|
||||
return tRes;
|
||||
}
|
||||
@ -141,21 +140,20 @@ tmp<DimensionedField<scalar, GeoMesh>> pow
|
||||
{
|
||||
const DimensionedField<scalar, GeoMesh>& dsf1 = tdsf1();
|
||||
|
||||
tmp<DimensionedField<scalar, GeoMesh>> tPow =
|
||||
reuseTmpDimensionedField<scalar, scalar, GeoMesh>::New
|
||||
tmp<DimensionedField<scalar, GeoMesh>> tPow = New
|
||||
(
|
||||
tdsf1,
|
||||
"pow(" + dsf1.name() + ',' + dsf2.name() + ')',
|
||||
pow
|
||||
(
|
||||
tdsf1,
|
||||
"pow(" + dsf1.name() + ',' + dsf2.name() + ')',
|
||||
pow
|
||||
(
|
||||
dsf1.dimensions(),
|
||||
dimensionedScalar("1", 1.0, dsf2.dimensions())
|
||||
)
|
||||
);
|
||||
dsf1.dimensions(),
|
||||
dimensionedScalar("1", 1.0, dsf2.dimensions())
|
||||
)
|
||||
);
|
||||
|
||||
pow(tPow.ref().field(), dsf1.field(), dsf2.field());
|
||||
|
||||
reuseTmpDimensionedField<scalar, scalar, GeoMesh>::clear(tdsf1);
|
||||
tdsf1.clear();
|
||||
|
||||
return tPow;
|
||||
}
|
||||
@ -170,21 +168,20 @@ tmp<DimensionedField<scalar, GeoMesh>> pow
|
||||
{
|
||||
const DimensionedField<scalar, GeoMesh>& dsf2 = tdsf2();
|
||||
|
||||
tmp<DimensionedField<scalar, GeoMesh>> tPow =
|
||||
reuseTmpDimensionedField<scalar, scalar, GeoMesh>::New
|
||||
tmp<DimensionedField<scalar, GeoMesh>> tPow = New
|
||||
(
|
||||
tdsf2,
|
||||
"pow(" + dsf1.name() + ',' + dsf2.name() + ')',
|
||||
pow
|
||||
(
|
||||
tdsf2,
|
||||
"pow(" + dsf1.name() + ',' + dsf2.name() + ')',
|
||||
pow
|
||||
(
|
||||
dsf1.dimensions(),
|
||||
dimensionedScalar("1", 1.0, dsf2.dimensions())
|
||||
)
|
||||
);
|
||||
dsf1.dimensions(),
|
||||
dimensionedScalar("1", 1.0, dsf2.dimensions())
|
||||
)
|
||||
);
|
||||
|
||||
pow(tPow.ref().field(), dsf1.field(), dsf2.field());
|
||||
|
||||
reuseTmpDimensionedField<scalar, scalar, GeoMesh>::clear(tdsf2);
|
||||
tdsf2.clear();
|
||||
|
||||
return tPow;
|
||||
}
|
||||
@ -215,11 +212,8 @@ tmp<DimensionedField<scalar, GeoMesh>> pow
|
||||
|
||||
pow(tPow.ref().field(), dsf1.field(), dsf2.field());
|
||||
|
||||
reuseTmpTmpDimensionedField<scalar, scalar, scalar, scalar, GeoMesh>::clear
|
||||
(
|
||||
tdsf1,
|
||||
tdsf2
|
||||
);
|
||||
tdsf1.clear();
|
||||
tdsf2.clear();
|
||||
|
||||
return tPow;
|
||||
}
|
||||
@ -261,17 +255,16 @@ tmp<DimensionedField<scalar, GeoMesh>> pow
|
||||
{
|
||||
const DimensionedField<scalar, GeoMesh>& dsf = tdsf();
|
||||
|
||||
tmp<DimensionedField<scalar, GeoMesh>> tPow =
|
||||
reuseTmpDimensionedField<scalar, scalar, GeoMesh>::New
|
||||
(
|
||||
tdsf,
|
||||
"pow(" + dsf.name() + ',' + ds.name() + ')',
|
||||
pow(dsf.dimensions(), ds)
|
||||
);
|
||||
tmp<DimensionedField<scalar, GeoMesh>> tPow = New
|
||||
(
|
||||
tdsf,
|
||||
"pow(" + dsf.name() + ',' + ds.name() + ')',
|
||||
pow(dsf.dimensions(), ds)
|
||||
);
|
||||
|
||||
pow(tPow.ref().field(), dsf.field(), ds.value());
|
||||
|
||||
reuseTmpDimensionedField<scalar, scalar, GeoMesh>::clear(tdsf);
|
||||
tdsf.clear();
|
||||
|
||||
return tPow;
|
||||
}
|
||||
@ -334,17 +327,16 @@ tmp<DimensionedField<scalar, GeoMesh>> pow
|
||||
{
|
||||
const DimensionedField<scalar, GeoMesh>& dsf = tdsf();
|
||||
|
||||
tmp<DimensionedField<scalar, GeoMesh>> tPow =
|
||||
reuseTmpDimensionedField<scalar, scalar, GeoMesh>::New
|
||||
(
|
||||
tdsf,
|
||||
"pow(" + ds.name() + ',' + dsf.name() + ')',
|
||||
pow(ds, dsf.dimensions())
|
||||
);
|
||||
tmp<DimensionedField<scalar, GeoMesh>> tPow = New
|
||||
(
|
||||
tdsf,
|
||||
"pow(" + ds.name() + ',' + dsf.name() + ')',
|
||||
pow(ds, dsf.dimensions())
|
||||
);
|
||||
|
||||
pow(tPow.ref().field(), ds.value(), dsf.field());
|
||||
|
||||
reuseTmpDimensionedField<scalar, scalar, GeoMesh>::clear(tdsf);
|
||||
tdsf.clear();
|
||||
|
||||
return tPow;
|
||||
}
|
||||
@ -409,17 +401,16 @@ tmp<DimensionedField<scalar, GeoMesh>> atan2
|
||||
{
|
||||
const DimensionedField<scalar, GeoMesh>& dsf1 = tdsf1();
|
||||
|
||||
tmp<DimensionedField<scalar, GeoMesh>> tAtan2 =
|
||||
reuseTmpDimensionedField<scalar, scalar, GeoMesh>::New
|
||||
(
|
||||
tdsf1,
|
||||
"atan2(" + dsf1.name() + ',' + dsf2.name() + ')',
|
||||
atan2(dsf1.dimensions(), dsf2.dimensions())
|
||||
);
|
||||
tmp<DimensionedField<scalar, GeoMesh>> tAtan2 = New
|
||||
(
|
||||
tdsf1,
|
||||
"atan2(" + dsf1.name() + ',' + dsf2.name() + ')',
|
||||
atan2(dsf1.dimensions(), dsf2.dimensions())
|
||||
);
|
||||
|
||||
atan2(tAtan2.ref().field(), dsf1.field(), dsf2.field());
|
||||
|
||||
reuseTmpDimensionedField<scalar, scalar, GeoMesh>::clear(tdsf1);
|
||||
tdsf1.clear();
|
||||
|
||||
return tAtan2;
|
||||
}
|
||||
@ -434,17 +425,16 @@ tmp<DimensionedField<scalar, GeoMesh>> atan2
|
||||
{
|
||||
const DimensionedField<scalar, GeoMesh>& dsf2 = tdsf2();
|
||||
|
||||
tmp<DimensionedField<scalar, GeoMesh>> tAtan2 =
|
||||
reuseTmpDimensionedField<scalar, scalar, GeoMesh>::New
|
||||
(
|
||||
tdsf2,
|
||||
"atan2(" + dsf1.name() + ',' + dsf2.name() + ')',
|
||||
atan2(dsf1.dimensions(), dsf2.dimensions())
|
||||
);
|
||||
tmp<DimensionedField<scalar, GeoMesh>> tAtan2 = New
|
||||
(
|
||||
tdsf2,
|
||||
"atan2(" + dsf1.name() + ',' + dsf2.name() + ')',
|
||||
atan2(dsf1.dimensions(), dsf2.dimensions())
|
||||
);
|
||||
|
||||
atan2(tAtan2.ref().field(), dsf1.field(), dsf2.field());
|
||||
|
||||
reuseTmpDimensionedField<scalar, scalar, GeoMesh>::clear(tdsf2);
|
||||
tdsf2.clear();
|
||||
|
||||
return tAtan2;
|
||||
}
|
||||
@ -471,11 +461,8 @@ tmp<DimensionedField<scalar, GeoMesh>> atan2
|
||||
|
||||
atan2(tAtan2.ref().field(), dsf1.field(), dsf2.field());
|
||||
|
||||
reuseTmpTmpDimensionedField<scalar, scalar, scalar, scalar, GeoMesh>::clear
|
||||
(
|
||||
tdsf1,
|
||||
tdsf2
|
||||
);
|
||||
tdsf1.clear();
|
||||
tdsf2.clear();
|
||||
|
||||
return tAtan2;
|
||||
}
|
||||
@ -517,17 +504,16 @@ tmp<DimensionedField<scalar, GeoMesh>> atan2
|
||||
{
|
||||
const DimensionedField<scalar, GeoMesh>& dsf = tdsf();
|
||||
|
||||
tmp<DimensionedField<scalar, GeoMesh>> tAtan2 =
|
||||
reuseTmpDimensionedField<scalar, scalar, GeoMesh>::New
|
||||
(
|
||||
tdsf,
|
||||
"atan2(" + dsf.name() + ',' + ds.name() + ')',
|
||||
atan2(dsf.dimensions(), ds)
|
||||
);
|
||||
tmp<DimensionedField<scalar, GeoMesh>> tAtan2 = New
|
||||
(
|
||||
tdsf,
|
||||
"atan2(" + dsf.name() + ',' + ds.name() + ')',
|
||||
atan2(dsf.dimensions(), ds)
|
||||
);
|
||||
|
||||
atan2(tAtan2.ref().field(), dsf.field(), ds.value());
|
||||
|
||||
reuseTmpDimensionedField<scalar, scalar, GeoMesh>::clear(tdsf);
|
||||
tdsf.clear();
|
||||
|
||||
return tAtan2;
|
||||
}
|
||||
@ -590,17 +576,16 @@ tmp<DimensionedField<scalar, GeoMesh>> atan2
|
||||
{
|
||||
const DimensionedField<scalar, GeoMesh>& dsf = tdsf();
|
||||
|
||||
tmp<DimensionedField<scalar, GeoMesh>> tAtan2 =
|
||||
reuseTmpDimensionedField<scalar, scalar, GeoMesh>::New
|
||||
(
|
||||
tdsf,
|
||||
"atan2(" + ds.name() + ',' + dsf.name() + ')',
|
||||
atan2(ds, dsf.dimensions())
|
||||
);
|
||||
tmp<DimensionedField<scalar, GeoMesh>> tAtan2 = New
|
||||
(
|
||||
tdsf,
|
||||
"atan2(" + ds.name() + ',' + dsf.name() + ')',
|
||||
atan2(ds, dsf.dimensions())
|
||||
);
|
||||
|
||||
atan2(tAtan2.ref().field(), ds.value(), dsf.field());
|
||||
|
||||
reuseTmpDimensionedField<scalar, scalar, GeoMesh>::clear(tdsf);
|
||||
tdsf.clear();
|
||||
|
||||
return tAtan2;
|
||||
}
|
||||
@ -721,7 +706,7 @@ tmp<DimensionedField<scalar, GeoMesh>> func \
|
||||
\
|
||||
tmp<DimensionedField<scalar, GeoMesh>> tFunc \
|
||||
( \
|
||||
reuseTmpDimensionedField<scalar, scalar, GeoMesh>::New \
|
||||
New \
|
||||
( \
|
||||
tdsf, \
|
||||
#func "(" + name(n) + ',' + dsf.name() + ')', \
|
||||
@ -731,7 +716,7 @@ tmp<DimensionedField<scalar, GeoMesh>> func \
|
||||
\
|
||||
func(tFunc.ref().field(), n, dsf.field()); \
|
||||
\
|
||||
reuseTmpDimensionedField<scalar, scalar, GeoMesh>::clear(tdsf); \
|
||||
tdsf.clear(); \
|
||||
\
|
||||
return tFunc; \
|
||||
}
|
||||
|
||||
@ -103,7 +103,7 @@ pow
|
||||
reuseTmpFieldField<Field, powProductType, Type>::New(tf)
|
||||
);
|
||||
pow<Type, r>(tRes.ref(), tf());
|
||||
reuseTmpFieldField<Field, powProductType, Type>::clear(tf);
|
||||
tf.clear();
|
||||
return tRes;
|
||||
}
|
||||
|
||||
@ -144,7 +144,7 @@ sqr(const tmp<FieldField<Field, Type>>& tf)
|
||||
reuseTmpFieldField<Field, outerProductType, Type>::New(tf)
|
||||
);
|
||||
sqr(tRes.ref(), tf());
|
||||
reuseTmpFieldField<Field, outerProductType, Type>::clear(tf);
|
||||
tf.clear();
|
||||
return tRes;
|
||||
}
|
||||
|
||||
@ -179,7 +179,7 @@ tmp<FieldField<Field, scalar>> magSqr(const tmp<FieldField<Field, Type>>& tf)
|
||||
);
|
||||
|
||||
magSqr(tRes.ref(), tf());
|
||||
reuseTmpFieldField<Field, scalar, Type>::clear(tf);
|
||||
tf.clear();
|
||||
return tRes;
|
||||
}
|
||||
|
||||
@ -214,7 +214,7 @@ tmp<FieldField<Field, scalar>> mag(const tmp<FieldField<Field, Type>>& tf)
|
||||
);
|
||||
|
||||
mag(tRes.ref(), tf());
|
||||
reuseTmpFieldField<Field, scalar, Type>::clear(tf);
|
||||
tf.clear();
|
||||
return tRes;
|
||||
}
|
||||
|
||||
@ -259,7 +259,7 @@ tmp<FieldField<Field, typename FieldField<Field, Type>::cmptType>> cmptMax
|
||||
reuseTmpFieldField<Field, cmptType, Type>::New(tf)
|
||||
);
|
||||
cmptMax(tRes.ref(), tf());
|
||||
reuseTmpFieldField<Field, cmptType, Type>::clear(tf);
|
||||
tf.clear();
|
||||
return tRes;
|
||||
}
|
||||
|
||||
@ -304,7 +304,7 @@ tmp<FieldField<Field, typename FieldField<Field, Type>::cmptType>> cmptMin
|
||||
reuseTmpFieldField<Field, cmptType, Type>::New(tf)
|
||||
);
|
||||
cmptMin(tRes.ref(), tf());
|
||||
reuseTmpFieldField<Field, cmptType, Type>::clear(tf);
|
||||
tf.clear();
|
||||
return tRes;
|
||||
}
|
||||
|
||||
@ -349,7 +349,7 @@ tmp<FieldField<Field, typename FieldField<Field, Type>::cmptType>> cmptAv
|
||||
reuseTmpFieldField<Field, cmptType, Type>::New(tf)
|
||||
);
|
||||
cmptAv(tRes.ref(), tf());
|
||||
reuseTmpFieldField<Field, cmptType, Type>::clear(tf);
|
||||
tf.clear();
|
||||
return tRes;
|
||||
}
|
||||
|
||||
@ -387,12 +387,9 @@ tmp<FieldField<Field, Type>> cmptMag
|
||||
const tmp<FieldField<Field, Type>>& tf
|
||||
)
|
||||
{
|
||||
tmp<FieldField<Field, Type>> tRes
|
||||
(
|
||||
reuseTmpFieldField<Field, Type, Type>::New(tf)
|
||||
);
|
||||
tmp<FieldField<Field, Type>> tRes(New(tf));
|
||||
cmptMag(tRes.ref(), tf());
|
||||
reuseTmpFieldField<Field, Type, Type>::clear(tf);
|
||||
tf.clear();
|
||||
return tRes;
|
||||
}
|
||||
|
||||
@ -685,7 +682,7 @@ operator op \
|
||||
reuseTmpFieldField<Field, productType, Type2>::New(tf2) \
|
||||
); \
|
||||
opFunc(tRes.ref(), f1, tf2()); \
|
||||
reuseTmpFieldField<Field, productType, Type2>::clear(tf2); \
|
||||
tf2.clear(); \
|
||||
return tRes; \
|
||||
} \
|
||||
\
|
||||
@ -733,7 +730,7 @@ operator op \
|
||||
reuseTmpFieldField<Field1, productType, Type1>::New(tf1) \
|
||||
); \
|
||||
opFunc(tRes.ref(), tf1(), f2); \
|
||||
reuseTmpFieldField<Field1, productType, Type1>::clear(tf1); \
|
||||
tf1.clear(); \
|
||||
return tRes; \
|
||||
} \
|
||||
\
|
||||
@ -758,8 +755,8 @@ operator op \
|
||||
(tf1, tf2) \
|
||||
); \
|
||||
opFunc(tRes.ref(), tf1(), tf2()); \
|
||||
reuseTmpTmpFieldField<Field1, productType, Type1, Type1, Type2>::clear \
|
||||
(tf1, tf2); \
|
||||
tf1.clear(); \
|
||||
tf2.clear(); \
|
||||
return tRes; \
|
||||
} \
|
||||
\
|
||||
@ -811,7 +808,7 @@ operator op \
|
||||
reuseTmpFieldField<Field, productType, Type>::New(tf1) \
|
||||
); \
|
||||
opFunc(tRes.ref(), tf1(), static_cast<const Form&>(vs)); \
|
||||
reuseTmpFieldField<Field, productType, Type>::clear(tf1); \
|
||||
tf1.clear(); \
|
||||
return tRes; \
|
||||
} \
|
||||
\
|
||||
@ -863,7 +860,7 @@ operator op \
|
||||
reuseTmpFieldField<Field, productType, Type>::New(tf1) \
|
||||
); \
|
||||
opFunc(tRes.ref(), static_cast<const Form&>(vs), tf1()); \
|
||||
reuseTmpFieldField<Field, productType, Type>::clear(tf1); \
|
||||
tf1.clear(); \
|
||||
return tRes; \
|
||||
}
|
||||
|
||||
|
||||
@ -63,12 +63,9 @@ tmp<FieldField<Field, ReturnType>> Func \
|
||||
const tmp<FieldField<Field, Type>>& tf \
|
||||
) \
|
||||
{ \
|
||||
tmp<FieldField<Field, ReturnType>> tRes \
|
||||
( \
|
||||
reuseTmpFieldField<Field, Type, Type>::New(tf) \
|
||||
); \
|
||||
tmp<FieldField<Field, ReturnType>> tRes(New(tf)); \
|
||||
Func(tRes.ref(), tf()); \
|
||||
reuseTmpFieldField<Field, Type, Type>::clear(tf); \
|
||||
tf.clear(); \
|
||||
return tRes; \
|
||||
}
|
||||
|
||||
@ -110,12 +107,9 @@ tmp<FieldField<Field, ReturnType>> operator Op \
|
||||
const tmp<FieldField<Field, Type>>& tf \
|
||||
) \
|
||||
{ \
|
||||
tmp<FieldField<Field, ReturnType>> tRes \
|
||||
( \
|
||||
reuseTmpFieldField<Field, Type, Type>::New(tf) \
|
||||
); \
|
||||
tmp<FieldField<Field, ReturnType>> tRes(New(tf)); \
|
||||
OpFunc(tRes.ref(), tf()); \
|
||||
reuseTmpFieldField<Field, Type, Type>::clear(tf); \
|
||||
tf.clear(); \
|
||||
return tRes; \
|
||||
}
|
||||
|
||||
@ -165,7 +159,7 @@ tmp<FieldField<Field, ReturnType>> Func \
|
||||
reuseTmpFieldField<Field, ReturnType, Type2>::New(tf2) \
|
||||
); \
|
||||
Func(tRes.ref(), f1, tf2()); \
|
||||
reuseTmpFieldField<Field, ReturnType, Type2>::clear(tf2); \
|
||||
tf2.clear(); \
|
||||
return tRes; \
|
||||
} \
|
||||
\
|
||||
@ -181,7 +175,7 @@ tmp<FieldField<Field, ReturnType>> Func \
|
||||
reuseTmpFieldField<Field, ReturnType, Type1>::New(tf1) \
|
||||
); \
|
||||
Func(tRes.ref(), tf1(), f2); \
|
||||
reuseTmpFieldField<Field, ReturnType, Type1>::clear(tf1); \
|
||||
tf1.clear(); \
|
||||
return tRes; \
|
||||
} \
|
||||
\
|
||||
@ -198,8 +192,8 @@ tmp<FieldField<Field, ReturnType>> Func \
|
||||
New(tf1, tf2) \
|
||||
); \
|
||||
Func(tRes.ref(), tf1(), tf2()); \
|
||||
reuseTmpTmpFieldField<Field, ReturnType, Type1, Type1, Type2>:: \
|
||||
clear(tf1, tf2); \
|
||||
tf1.clear(); \
|
||||
tf2.clear(); \
|
||||
return tRes; \
|
||||
}
|
||||
|
||||
@ -249,7 +243,7 @@ tmp<FieldField<Field, ReturnType>> Func \
|
||||
reuseTmpFieldField<Field, ReturnType, Type1>::New(tf1) \
|
||||
); \
|
||||
Func(tRes.ref(), tf1(), s); \
|
||||
reuseTmpFieldField<Field, ReturnType, Type1>::clear(tf1); \
|
||||
tf1.clear(); \
|
||||
return tRes; \
|
||||
}
|
||||
|
||||
@ -297,7 +291,7 @@ tmp<FieldField<Field, ReturnType>> Func \
|
||||
reuseTmpFieldField<Field, ReturnType, Type2>::New(tf2) \
|
||||
); \
|
||||
Func(tRes.ref(), s, tf2()); \
|
||||
reuseTmpFieldField<Field, ReturnType, Type2>::clear(tf2); \
|
||||
tf2.clear(); \
|
||||
return tRes; \
|
||||
}
|
||||
|
||||
@ -352,7 +346,7 @@ tmp<FieldField<Field, ReturnType>> operator Op \
|
||||
reuseTmpFieldField<Field, ReturnType, Type2>::New(tf2) \
|
||||
); \
|
||||
OpFunc(tRes.ref(), f1, tf2()); \
|
||||
reuseTmpFieldField<Field, ReturnType, Type2>::clear(tf2); \
|
||||
tf2.clear(); \
|
||||
return tRes; \
|
||||
} \
|
||||
\
|
||||
@ -368,7 +362,7 @@ tmp<FieldField<Field, ReturnType>> operator Op \
|
||||
reuseTmpFieldField<Field, ReturnType, Type1>::New(tf1) \
|
||||
); \
|
||||
OpFunc(tRes.ref(), tf1(), f2); \
|
||||
reuseTmpFieldField<Field, ReturnType, Type1>::clear(tf1); \
|
||||
tf1.clear(); \
|
||||
return tRes; \
|
||||
} \
|
||||
\
|
||||
@ -385,8 +379,8 @@ tmp<FieldField<Field, ReturnType>> operator Op \
|
||||
New(tf1, tf2) \
|
||||
); \
|
||||
OpFunc(tRes.ref(), tf1(), tf2()); \
|
||||
reuseTmpTmpFieldField<Field, ReturnType, Type1, Type1, Type2>:: \
|
||||
clear(tf1, tf2); \
|
||||
tf1.clear(); \
|
||||
tf2.clear(); \
|
||||
return tRes; \
|
||||
}
|
||||
|
||||
@ -436,7 +430,7 @@ tmp<FieldField<Field, ReturnType>> operator Op \
|
||||
reuseTmpFieldField<Field, ReturnType, Type2>::New(tf2) \
|
||||
); \
|
||||
OpFunc(tRes.ref(), s, tf2()); \
|
||||
reuseTmpFieldField<Field, ReturnType, Type2>::clear(tf2); \
|
||||
tf2.clear(); \
|
||||
return tRes; \
|
||||
}
|
||||
|
||||
@ -484,7 +478,7 @@ tmp<FieldField<Field, ReturnType>> operator Op \
|
||||
reuseTmpFieldField<Field, ReturnType, Type1>::New(tf1) \
|
||||
); \
|
||||
OpFunc(tRes.ref(), tf1(), s); \
|
||||
reuseTmpFieldField<Field, ReturnType, Type1>::clear(tf1); \
|
||||
tf1.clear(); \
|
||||
return tRes; \
|
||||
}
|
||||
|
||||
|
||||
@ -33,6 +33,34 @@ namespace Foam
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
template<template<class> class Field, class TypeR>
|
||||
tmp<FieldField<Field, TypeR>> New
|
||||
(
|
||||
const tmp<FieldField<Field, TypeR>>& tf1,
|
||||
const bool initRet = false
|
||||
)
|
||||
{
|
||||
if (tf1.isTmp())
|
||||
{
|
||||
return tf1;
|
||||
}
|
||||
else
|
||||
{
|
||||
tmp<FieldField<Field, TypeR>> rtf
|
||||
(
|
||||
FieldField<Field, TypeR>::NewCalculatedType(tf1())
|
||||
);
|
||||
|
||||
if (initRet)
|
||||
{
|
||||
rtf.ref() = tf1();
|
||||
}
|
||||
|
||||
return rtf;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
template<template<class> class Field, class TypeR, class Type1>
|
||||
class reuseTmpFieldField
|
||||
{
|
||||
@ -48,11 +76,6 @@ public:
|
||||
FieldField<Field, TypeR>::NewCalculatedType(tf1())
|
||||
);
|
||||
}
|
||||
|
||||
static void clear(const tmp<FieldField<Field, Type1>>& tf1)
|
||||
{
|
||||
tf1.clear();
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@ -63,8 +86,7 @@ public:
|
||||
|
||||
static tmp<FieldField<Field, TypeR>> New
|
||||
(
|
||||
const tmp<FieldField<Field, TypeR>>& tf1,
|
||||
const bool initRet = false
|
||||
const tmp<FieldField<Field, TypeR>>& tf1
|
||||
)
|
||||
{
|
||||
if (tf1.isTmp())
|
||||
@ -73,24 +95,12 @@ public:
|
||||
}
|
||||
else
|
||||
{
|
||||
tmp<FieldField<Field, TypeR>> rtf
|
||||
return tmp<FieldField<Field, TypeR>>
|
||||
(
|
||||
FieldField<Field, TypeR>::NewCalculatedType(tf1())
|
||||
);
|
||||
|
||||
if (initRet)
|
||||
{
|
||||
rtf.ref() = tf1();
|
||||
}
|
||||
|
||||
return rtf;
|
||||
}
|
||||
}
|
||||
|
||||
static void clear(const tmp<FieldField<Field, TypeR>>& tf1)
|
||||
{
|
||||
tf1.clear();
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@ -117,16 +127,6 @@ public:
|
||||
FieldField<Field, TypeR>::NewCalculatedType(tf1())
|
||||
);
|
||||
}
|
||||
|
||||
static void clear
|
||||
(
|
||||
const tmp<FieldField<Field, Type1>>& tf1,
|
||||
const tmp<FieldField<Field, Type2>>& tf2
|
||||
)
|
||||
{
|
||||
tf1.clear();
|
||||
tf2.clear();
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@ -153,16 +153,6 @@ public:
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
static void clear
|
||||
(
|
||||
const tmp<FieldField<Field, Type1>>& tf1,
|
||||
const tmp<FieldField<Field, TypeR>>& tf2
|
||||
)
|
||||
{
|
||||
tf1.clear();
|
||||
tf2.clear();
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@ -189,16 +179,6 @@ public:
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
static void clear
|
||||
(
|
||||
const tmp<FieldField<Field, TypeR>>& tf1,
|
||||
const tmp<FieldField<Field, Type2>>& tf2
|
||||
)
|
||||
{
|
||||
tf1.clear();
|
||||
tf2.clear();
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@ -229,16 +209,6 @@ public:
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
static void clear
|
||||
(
|
||||
const tmp<FieldField<Field, TypeR>>& tf1,
|
||||
const tmp<FieldField<Field, TypeR>>& tf2
|
||||
)
|
||||
{
|
||||
tf1.clear();
|
||||
tf2.clear();
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
||||
@ -173,12 +173,9 @@ tmp<FieldField<Field, scalar>> func \
|
||||
const tmp<FieldField<Field, scalar>>& tsf \
|
||||
) \
|
||||
{ \
|
||||
tmp<FieldField<Field, scalar>> tRes \
|
||||
( \
|
||||
reuseTmpFieldField<Field, scalar, scalar>::New(tsf) \
|
||||
); \
|
||||
tmp<FieldField<Field, scalar>> tRes(New(tsf)); \
|
||||
func(tRes(), n, tsf()); \
|
||||
reuseTmpFieldField<Field, scalar, scalar>::clear(tsf); \
|
||||
tsf.clear(); \
|
||||
return tRes; \
|
||||
}
|
||||
|
||||
|
||||
@ -624,7 +624,7 @@ template \
|
||||
<class Type1, class Type2, template<class> class PatchField, class GeoMesh> \
|
||||
tmp \
|
||||
< \
|
||||
GeometricField<typename product<Type1, Type2>::type, PatchField, GeoMesh> \
|
||||
GeometricField<typename product<Type1, Type2>::type, PatchField, GeoMesh> \
|
||||
> \
|
||||
operator op \
|
||||
( \
|
||||
@ -646,8 +646,7 @@ operator op \
|
||||
\
|
||||
Foam::opFunc(tRes.ref(), gf1, gf2); \
|
||||
\
|
||||
reuseTmpGeometricField<productType, Type2, PatchField, GeoMesh> \
|
||||
::clear(tgf2); \
|
||||
tgf2.clear(); \
|
||||
\
|
||||
return tRes; \
|
||||
} \
|
||||
@ -656,7 +655,7 @@ template \
|
||||
<class Type1, class Type2, template<class> class PatchField, class GeoMesh> \
|
||||
tmp \
|
||||
< \
|
||||
GeometricField<typename product<Type1, Type2>::type, PatchField, GeoMesh> \
|
||||
GeometricField<typename product<Type1, Type2>::type, PatchField, GeoMesh> \
|
||||
> \
|
||||
operator op \
|
||||
( \
|
||||
@ -678,8 +677,7 @@ operator op \
|
||||
\
|
||||
Foam::opFunc(tRes.ref(), gf1, gf2); \
|
||||
\
|
||||
reuseTmpGeometricField<productType, Type1, PatchField, GeoMesh> \
|
||||
::clear(tgf1); \
|
||||
tgf1.clear(); \
|
||||
\
|
||||
return tRes; \
|
||||
} \
|
||||
@ -688,7 +686,7 @@ template \
|
||||
<class Type1, class Type2, template<class> class PatchField, class GeoMesh> \
|
||||
tmp \
|
||||
< \
|
||||
GeometricField<typename product<Type1, Type2>::type, PatchField, GeoMesh> \
|
||||
GeometricField<typename product<Type1, Type2>::type, PatchField, GeoMesh> \
|
||||
> \
|
||||
operator op \
|
||||
( \
|
||||
@ -713,9 +711,8 @@ operator op \
|
||||
\
|
||||
Foam::opFunc(tRes.ref(), gf1, gf2); \
|
||||
\
|
||||
reuseTmpTmpGeometricField \
|
||||
<productType, Type1, Type1, Type2, PatchField, GeoMesh> \
|
||||
::clear(tgf1, tgf2); \
|
||||
tgf1.clear(); \
|
||||
tgf2.clear(); \
|
||||
\
|
||||
return tRes; \
|
||||
} \
|
||||
@ -736,7 +733,7 @@ void opFunc \
|
||||
\
|
||||
template \
|
||||
<class Form, class Type, template<class> class PatchField, class GeoMesh> \
|
||||
tmp<GeometricField<typename product<Type, Form>::type, PatchField, GeoMesh>> \
|
||||
tmp<GeometricField<typename product<Type, Form>::type, PatchField, GeoMesh>> \
|
||||
operator op \
|
||||
( \
|
||||
const GeometricField<Type, PatchField, GeoMesh>& gf1, \
|
||||
@ -775,7 +772,7 @@ template \
|
||||
class Type, template<class> class PatchField, \
|
||||
class GeoMesh \
|
||||
> \
|
||||
tmp<GeometricField<typename product<Form, Type>::type, PatchField, GeoMesh>> \
|
||||
tmp<GeometricField<typename product<Form, Type>::type, PatchField, GeoMesh>> \
|
||||
operator op \
|
||||
( \
|
||||
const GeometricField<Type, PatchField, GeoMesh>& gf1, \
|
||||
@ -788,7 +785,7 @@ operator op \
|
||||
\
|
||||
template \
|
||||
<class Form, class Type, template<class> class PatchField, class GeoMesh> \
|
||||
tmp<GeometricField<typename product<Type, Form>::type, PatchField, GeoMesh>> \
|
||||
tmp<GeometricField<typename product<Type, Form>::type, PatchField, GeoMesh>> \
|
||||
operator op \
|
||||
( \
|
||||
const tmp<GeometricField<Type, PatchField, GeoMesh>>& tgf1, \
|
||||
@ -809,8 +806,7 @@ operator op \
|
||||
\
|
||||
Foam::opFunc(tRes.ref(), gf1, dvs); \
|
||||
\
|
||||
reuseTmpGeometricField<productType, Type, PatchField, GeoMesh> \
|
||||
::clear(tgf1); \
|
||||
tgf1.clear(); \
|
||||
\
|
||||
return tRes; \
|
||||
} \
|
||||
@ -823,7 +819,7 @@ template \
|
||||
class Type, template<class> class PatchField, \
|
||||
class GeoMesh \
|
||||
> \
|
||||
tmp<GeometricField<typename product<Form, Type>::type, PatchField, GeoMesh>> \
|
||||
tmp<GeometricField<typename product<Form, Type>::type, PatchField, GeoMesh>> \
|
||||
operator op \
|
||||
( \
|
||||
const tmp<GeometricField<Type, PatchField, GeoMesh>>& tgf1, \
|
||||
@ -850,7 +846,7 @@ void opFunc \
|
||||
\
|
||||
template \
|
||||
<class Form, class Type, template<class> class PatchField, class GeoMesh> \
|
||||
tmp<GeometricField<typename product<Form, Type>::type, PatchField, GeoMesh>> \
|
||||
tmp<GeometricField<typename product<Form, Type>::type, PatchField, GeoMesh>> \
|
||||
operator op \
|
||||
( \
|
||||
const dimensioned<Form>& dvs, \
|
||||
@ -888,7 +884,7 @@ template \
|
||||
class Type, template<class> class PatchField, \
|
||||
class GeoMesh \
|
||||
> \
|
||||
tmp<GeometricField<typename product<Form, Type>::type, PatchField, GeoMesh>> \
|
||||
tmp<GeometricField<typename product<Form, Type>::type, PatchField, GeoMesh>> \
|
||||
operator op \
|
||||
( \
|
||||
const VectorSpace<Form,Cmpt,nCmpt>& vs, \
|
||||
@ -900,7 +896,7 @@ operator op \
|
||||
\
|
||||
template \
|
||||
<class Form, class Type, template<class> class PatchField, class GeoMesh> \
|
||||
tmp<GeometricField<typename product<Form, Type>::type, PatchField, GeoMesh>> \
|
||||
tmp<GeometricField<typename product<Form, Type>::type, PatchField, GeoMesh>> \
|
||||
operator op \
|
||||
( \
|
||||
const dimensioned<Form>& dvs, \
|
||||
@ -921,8 +917,7 @@ operator op \
|
||||
\
|
||||
Foam::opFunc(tRes.ref(), dvs, gf1); \
|
||||
\
|
||||
reuseTmpGeometricField<productType, Type, PatchField, GeoMesh> \
|
||||
::clear(tgf1); \
|
||||
tgf1.clear(); \
|
||||
\
|
||||
return tRes; \
|
||||
} \
|
||||
@ -935,7 +930,7 @@ template \
|
||||
class Type, template<class> class PatchField, \
|
||||
class GeoMesh \
|
||||
> \
|
||||
tmp<GeometricField<typename product<Form, Type>::type, PatchField, GeoMesh>> \
|
||||
tmp<GeometricField<typename product<Form, Type>::type, PatchField, GeoMesh>> \
|
||||
operator op \
|
||||
( \
|
||||
const VectorSpace<Form,Cmpt,nCmpt>& vs, \
|
||||
|
||||
@ -93,8 +93,7 @@ tmp<GeometricField<ReturnType, PatchField, GeoMesh>> Func \
|
||||
\
|
||||
Foam::Func(tRes.ref(), gf1); \
|
||||
\
|
||||
reuseTmpGeometricField \
|
||||
<ReturnType, Type1, PatchField, GeoMesh>::clear(tgf1); \
|
||||
tgf1.clear(); \
|
||||
\
|
||||
return tRes; \
|
||||
}
|
||||
@ -163,8 +162,7 @@ tmp<GeometricField<ReturnType, PatchField, GeoMesh>> operator Op \
|
||||
\
|
||||
Foam::OpFunc(tRes.ref(), gf1); \
|
||||
\
|
||||
reuseTmpGeometricField \
|
||||
<ReturnType, Type1, PatchField, GeoMesh>::clear(tgf1); \
|
||||
tgf1.clear(); \
|
||||
\
|
||||
return tRes; \
|
||||
}
|
||||
@ -236,8 +234,7 @@ tmp<GeometricField<ReturnType, PatchField, GeoMesh>> Func \
|
||||
\
|
||||
Foam::Func(tRes.ref(), gf1, gf2); \
|
||||
\
|
||||
reuseTmpGeometricField \
|
||||
<ReturnType, Type2, PatchField, GeoMesh>::clear(tgf2); \
|
||||
tgf2.clear(); \
|
||||
\
|
||||
return tRes; \
|
||||
} \
|
||||
@ -263,8 +260,7 @@ tmp<GeometricField<ReturnType, PatchField, GeoMesh>> Func \
|
||||
\
|
||||
Foam::Func(tRes.ref(), gf1, gf2); \
|
||||
\
|
||||
reuseTmpGeometricField \
|
||||
<ReturnType, Type1, PatchField, GeoMesh>::clear(tgf1); \
|
||||
tgf1.clear(); \
|
||||
\
|
||||
return tRes; \
|
||||
} \
|
||||
@ -294,9 +290,8 @@ tmp<GeometricField<ReturnType, PatchField, GeoMesh>> Func \
|
||||
\
|
||||
Foam::Func(tRes.ref(), gf1, gf2); \
|
||||
\
|
||||
reuseTmpTmpGeometricField \
|
||||
<ReturnType, Type1, Type1, Type2, PatchField, GeoMesh> \
|
||||
::clear(tgf1, tgf2); \
|
||||
tgf1.clear(); \
|
||||
tgf2.clear(); \
|
||||
\
|
||||
return tRes; \
|
||||
}
|
||||
@ -378,8 +373,7 @@ tmp<GeometricField<ReturnType, PatchField, GeoMesh>> Func \
|
||||
\
|
||||
Foam::Func(tRes.ref(), dt1, gf2); \
|
||||
\
|
||||
reuseTmpGeometricField \
|
||||
<ReturnType, Type2, PatchField, GeoMesh>::clear(tgf2); \
|
||||
tgf2.clear(); \
|
||||
\
|
||||
return tRes; \
|
||||
} \
|
||||
@ -470,8 +464,7 @@ tmp<GeometricField<ReturnType, PatchField, GeoMesh>> Func \
|
||||
\
|
||||
Foam::Func(tRes.ref(), gf1, dt2); \
|
||||
\
|
||||
reuseTmpGeometricField \
|
||||
<ReturnType, Type1, PatchField, GeoMesh>::clear(tgf1); \
|
||||
tgf1.clear(); \
|
||||
\
|
||||
return tRes; \
|
||||
} \
|
||||
@ -560,8 +553,7 @@ tmp<GeometricField<ReturnType, PatchField, GeoMesh>> operator Op \
|
||||
\
|
||||
Foam::OpFunc(tRes.ref(), gf1, gf2); \
|
||||
\
|
||||
reuseTmpGeometricField \
|
||||
<ReturnType, Type2, PatchField, GeoMesh>::clear(tgf2); \
|
||||
tgf2.clear(); \
|
||||
\
|
||||
return tRes; \
|
||||
} \
|
||||
@ -587,8 +579,7 @@ tmp<GeometricField<ReturnType, PatchField, GeoMesh>> operator Op \
|
||||
\
|
||||
Foam::OpFunc(tRes.ref(), gf1, gf2); \
|
||||
\
|
||||
reuseTmpGeometricField \
|
||||
<ReturnType, Type1, PatchField, GeoMesh>::clear(tgf1); \
|
||||
tgf1.clear(); \
|
||||
\
|
||||
return tRes; \
|
||||
} \
|
||||
@ -617,9 +608,8 @@ tmp<GeometricField<ReturnType, PatchField, GeoMesh>> operator Op \
|
||||
\
|
||||
Foam::OpFunc(tRes.ref(), gf1, gf2); \
|
||||
\
|
||||
reuseTmpTmpGeometricField \
|
||||
<ReturnType, Type1, Type1, Type2, PatchField, GeoMesh> \
|
||||
::clear(tgf1, tgf2); \
|
||||
tgf1.clear(); \
|
||||
tgf2.clear(); \
|
||||
\
|
||||
return tRes; \
|
||||
}
|
||||
@ -702,8 +692,7 @@ tmp<GeometricField<ReturnType, PatchField, GeoMesh>> operator Op \
|
||||
\
|
||||
Foam::OpFunc(tRes.ref(), dt1, gf2); \
|
||||
\
|
||||
reuseTmpGeometricField<ReturnType, Type2, PatchField, GeoMesh> \
|
||||
::clear(tgf2); \
|
||||
tgf2.clear(); \
|
||||
\
|
||||
return tRes; \
|
||||
} \
|
||||
@ -794,8 +783,7 @@ tmp<GeometricField<ReturnType, PatchField, GeoMesh>> operator Op \
|
||||
\
|
||||
Foam::OpFunc(tRes.ref(), gf1, dt2); \
|
||||
\
|
||||
reuseTmpGeometricField<ReturnType, Type1, PatchField, GeoMesh> \
|
||||
::clear(tgf1); \
|
||||
tgf1.clear(); \
|
||||
\
|
||||
return tRes; \
|
||||
} \
|
||||
|
||||
@ -75,6 +75,51 @@ bool reusable(const tmp<GeometricField<Type, PatchField, GeoMesh>>& tgf)
|
||||
}
|
||||
|
||||
|
||||
template<class TypeR, template<class> class PatchField, class GeoMesh>
|
||||
tmp<GeometricField<TypeR, PatchField, GeoMesh>> New
|
||||
(
|
||||
const tmp<GeometricField<TypeR, PatchField, GeoMesh>>& tgf1,
|
||||
const word& name,
|
||||
const dimensionSet& dimensions,
|
||||
const bool initRet = false
|
||||
)
|
||||
{
|
||||
GeometricField<TypeR, PatchField, GeoMesh>& gf1 =
|
||||
const_cast<GeometricField<TypeR, PatchField, GeoMesh>& >(tgf1());
|
||||
|
||||
if (reusable(tgf1))
|
||||
{
|
||||
gf1.rename(name);
|
||||
gf1.dimensions().reset(dimensions);
|
||||
return tgf1;
|
||||
}
|
||||
else
|
||||
{
|
||||
tmp<GeometricField<TypeR, PatchField, GeoMesh>> rtgf
|
||||
(
|
||||
new GeometricField<TypeR, PatchField, GeoMesh>
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
name,
|
||||
gf1.instance(),
|
||||
gf1.db()
|
||||
),
|
||||
gf1.mesh(),
|
||||
dimensions
|
||||
)
|
||||
);
|
||||
|
||||
if (initRet)
|
||||
{
|
||||
rtgf.ref() == tgf1();
|
||||
}
|
||||
|
||||
return rtgf;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
template
|
||||
<
|
||||
class TypeR,
|
||||
@ -110,14 +155,6 @@ public:
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
static void clear
|
||||
(
|
||||
const tmp<GeometricField<Type1, PatchField, GeoMesh>>& tgf1
|
||||
)
|
||||
{
|
||||
tgf1.clear();
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@ -130,8 +167,7 @@ public:
|
||||
(
|
||||
const tmp<GeometricField<TypeR, PatchField, GeoMesh>>& tgf1,
|
||||
const word& name,
|
||||
const dimensionSet& dimensions,
|
||||
const bool initRet = false
|
||||
const dimensionSet& dimensions
|
||||
)
|
||||
{
|
||||
GeometricField<TypeR, PatchField, GeoMesh>& gf1 =
|
||||
@ -145,7 +181,7 @@ public:
|
||||
}
|
||||
else
|
||||
{
|
||||
tmp<GeometricField<TypeR, PatchField, GeoMesh>> rtgf
|
||||
return tmp<GeometricField<TypeR, PatchField, GeoMesh>>
|
||||
(
|
||||
new GeometricField<TypeR, PatchField, GeoMesh>
|
||||
(
|
||||
@ -159,23 +195,8 @@ public:
|
||||
dimensions
|
||||
)
|
||||
);
|
||||
|
||||
if (initRet)
|
||||
{
|
||||
rtgf.ref() == tgf1();
|
||||
}
|
||||
|
||||
return rtgf;
|
||||
}
|
||||
}
|
||||
|
||||
static void clear
|
||||
(
|
||||
const tmp<GeometricField<TypeR, PatchField, GeoMesh>>& tgf1
|
||||
)
|
||||
{
|
||||
tgf1.clear();
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@ -217,16 +238,6 @@ public:
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
static void clear
|
||||
(
|
||||
const tmp<GeometricField<Type1, PatchField, GeoMesh>>& tgf1,
|
||||
const tmp<GeometricField<Type2, PatchField, GeoMesh>>& tgf2
|
||||
)
|
||||
{
|
||||
tgf1.clear();
|
||||
tgf2.clear();
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@ -279,16 +290,6 @@ public:
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
static void clear
|
||||
(
|
||||
const tmp<GeometricField<Type1, PatchField, GeoMesh>>& tgf1,
|
||||
const tmp<GeometricField<TypeR, PatchField, GeoMesh>>& tgf2
|
||||
)
|
||||
{
|
||||
tgf1.clear();
|
||||
tgf2.clear();
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@ -338,16 +339,6 @@ public:
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
static void clear
|
||||
(
|
||||
const tmp<GeometricField<TypeR, PatchField, GeoMesh>>& tgf1,
|
||||
const tmp<GeometricField<Type2, PatchField, GeoMesh>>& tgf2
|
||||
)
|
||||
{
|
||||
tgf1.clear();
|
||||
tgf2.clear();
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@ -399,16 +390,6 @@ public:
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
static void clear
|
||||
(
|
||||
const tmp<GeometricField<TypeR, PatchField, GeoMesh>>& tgf1,
|
||||
const tmp<GeometricField<TypeR, PatchField, GeoMesh>>& tgf2
|
||||
)
|
||||
{
|
||||
tgf1.clear();
|
||||
tgf2.clear();
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
||||
@ -89,7 +89,7 @@ tmp<GeometricField<scalar, PatchField, GeoMesh>> stabilise
|
||||
|
||||
tmp<GeometricField<scalar, PatchField, GeoMesh>> tRes
|
||||
(
|
||||
reuseTmpGeometricField<scalar, scalar, PatchField, GeoMesh>::New
|
||||
New
|
||||
(
|
||||
tgsf,
|
||||
"stabilise(" + gsf.name() + ',' + ds.name() + ')',
|
||||
@ -99,7 +99,7 @@ tmp<GeometricField<scalar, PatchField, GeoMesh>> stabilise
|
||||
|
||||
stabilise(tRes.ref(), gsf, ds);
|
||||
|
||||
reuseTmpGeometricField<scalar, scalar, PatchField, GeoMesh>::clear(tgsf);
|
||||
tgsf.clear();
|
||||
|
||||
return tRes;
|
||||
}
|
||||
@ -176,7 +176,7 @@ tmp<GeometricField<scalar, PatchField, GeoMesh>> pow
|
||||
|
||||
tmp<GeometricField<scalar, PatchField, GeoMesh>> tPow
|
||||
(
|
||||
reuseTmpGeometricField<scalar, scalar, PatchField, GeoMesh>::New
|
||||
New
|
||||
(
|
||||
tgsf1,
|
||||
"pow(" + gsf1.name() + ',' + gsf2.name() + ')',
|
||||
@ -190,7 +190,7 @@ tmp<GeometricField<scalar, PatchField, GeoMesh>> pow
|
||||
|
||||
pow(tPow.ref(), gsf1, gsf2);
|
||||
|
||||
reuseTmpGeometricField<scalar, scalar, PatchField, GeoMesh>::clear(tgsf1);
|
||||
tgsf1.clear();
|
||||
|
||||
return tPow;
|
||||
}
|
||||
@ -207,7 +207,7 @@ tmp<GeometricField<scalar, PatchField, GeoMesh>> pow
|
||||
|
||||
tmp<GeometricField<scalar, PatchField, GeoMesh>> tPow
|
||||
(
|
||||
reuseTmpGeometricField<scalar, scalar, PatchField, GeoMesh>::New
|
||||
New
|
||||
(
|
||||
tgsf2,
|
||||
"pow(" + gsf1.name() + ',' + gsf2.name() + ')',
|
||||
@ -221,7 +221,7 @@ tmp<GeometricField<scalar, PatchField, GeoMesh>> pow
|
||||
|
||||
pow(tPow.ref(), gsf1, gsf2);
|
||||
|
||||
reuseTmpGeometricField<scalar, scalar, PatchField, GeoMesh>::clear(tgsf2);
|
||||
tgsf2.clear();
|
||||
|
||||
return tPow;
|
||||
}
|
||||
@ -254,9 +254,8 @@ tmp<GeometricField<scalar, PatchField, GeoMesh>> pow
|
||||
|
||||
pow(tPow.ref(), gsf1, gsf2);
|
||||
|
||||
reuseTmpTmpGeometricField
|
||||
<scalar, scalar, scalar, scalar, PatchField, GeoMesh>
|
||||
::clear(tgsf1, tgsf2);
|
||||
tgsf1.clear();
|
||||
tgsf2.clear();
|
||||
|
||||
return tPow;
|
||||
}
|
||||
@ -315,7 +314,7 @@ tmp<GeometricField<scalar, PatchField, GeoMesh>> pow
|
||||
|
||||
tmp<GeometricField<scalar, PatchField, GeoMesh>> tPow
|
||||
(
|
||||
reuseTmpGeometricField<scalar, scalar, PatchField, GeoMesh>::New
|
||||
New
|
||||
(
|
||||
tgsf,
|
||||
"pow(" + gsf.name() + ',' + ds.name() + ')',
|
||||
@ -325,7 +324,7 @@ tmp<GeometricField<scalar, PatchField, GeoMesh>> pow
|
||||
|
||||
pow(tPow.ref(), gsf, ds);
|
||||
|
||||
reuseTmpGeometricField<scalar, scalar, PatchField, GeoMesh>::clear(tgsf);
|
||||
tgsf.clear();
|
||||
|
||||
return tPow;
|
||||
}
|
||||
@ -405,7 +404,7 @@ tmp<GeometricField<scalar, PatchField, GeoMesh>> pow
|
||||
|
||||
tmp<GeometricField<scalar, PatchField, GeoMesh>> tPow
|
||||
(
|
||||
reuseTmpGeometricField<scalar, scalar, PatchField, GeoMesh>::New
|
||||
New
|
||||
(
|
||||
tgsf,
|
||||
"pow(" + ds.name() + ',' + gsf.name() + ')',
|
||||
@ -415,7 +414,7 @@ tmp<GeometricField<scalar, PatchField, GeoMesh>> pow
|
||||
|
||||
pow(tPow.ref(), ds, gsf);
|
||||
|
||||
reuseTmpGeometricField<scalar, scalar, PatchField, GeoMesh>::clear(tgsf);
|
||||
tgsf.clear();
|
||||
|
||||
return tPow;
|
||||
}
|
||||
@ -497,7 +496,7 @@ tmp<GeometricField<scalar, PatchField, GeoMesh>> atan2
|
||||
|
||||
tmp<GeometricField<scalar, PatchField, GeoMesh>> tAtan2
|
||||
(
|
||||
reuseTmpGeometricField<scalar, scalar, PatchField, GeoMesh>::New
|
||||
New
|
||||
(
|
||||
tgsf1,
|
||||
"atan2(" + gsf1.name() + ',' + gsf2.name() + ')',
|
||||
@ -507,7 +506,7 @@ tmp<GeometricField<scalar, PatchField, GeoMesh>> atan2
|
||||
|
||||
atan2(tAtan2.ref(), gsf1, gsf2);
|
||||
|
||||
reuseTmpGeometricField<scalar, scalar, PatchField, GeoMesh>::clear(tgsf1);
|
||||
tgsf1.clear();
|
||||
|
||||
return tAtan2;
|
||||
}
|
||||
@ -524,7 +523,7 @@ tmp<GeometricField<scalar, PatchField, GeoMesh>> atan2
|
||||
|
||||
tmp<GeometricField<scalar, PatchField, GeoMesh>> tAtan2
|
||||
(
|
||||
reuseTmpGeometricField<scalar, scalar, PatchField, GeoMesh>::New
|
||||
New
|
||||
(
|
||||
tgsf2,
|
||||
"atan2(" + gsf1.name() + ',' + gsf2.name() + ')',
|
||||
@ -534,7 +533,7 @@ tmp<GeometricField<scalar, PatchField, GeoMesh>> atan2
|
||||
|
||||
atan2(tAtan2.ref(), gsf1, gsf2);
|
||||
|
||||
reuseTmpGeometricField<scalar, scalar, PatchField, GeoMesh>::clear(tgsf2);
|
||||
tgsf2.clear();
|
||||
|
||||
return tAtan2;
|
||||
}
|
||||
@ -563,9 +562,8 @@ tmp<GeometricField<scalar, PatchField, GeoMesh>> atan2
|
||||
|
||||
atan2(tAtan2.ref(), gsf1, gsf2);
|
||||
|
||||
reuseTmpTmpGeometricField
|
||||
<scalar, scalar, scalar, scalar, PatchField, GeoMesh>
|
||||
::clear(tgsf1, tgsf2);
|
||||
tgsf1.clear();
|
||||
tgsf2.clear();
|
||||
|
||||
return tAtan2;
|
||||
}
|
||||
@ -624,7 +622,7 @@ tmp<GeometricField<scalar, PatchField, GeoMesh>> atan2
|
||||
|
||||
tmp<GeometricField<scalar, PatchField, GeoMesh>> tAtan2
|
||||
(
|
||||
reuseTmpGeometricField<scalar, scalar, PatchField, GeoMesh>::New
|
||||
New
|
||||
(
|
||||
tgsf,
|
||||
"atan2(" + gsf.name() + ',' + ds.name() + ')',
|
||||
@ -634,7 +632,7 @@ tmp<GeometricField<scalar, PatchField, GeoMesh>> atan2
|
||||
|
||||
atan2(tAtan2.ref(), gsf, ds);
|
||||
|
||||
reuseTmpGeometricField<scalar, scalar, PatchField, GeoMesh>::clear(tgsf);
|
||||
tgsf.clear();
|
||||
|
||||
return tAtan2;
|
||||
}
|
||||
@ -714,7 +712,7 @@ tmp<GeometricField<scalar, PatchField, GeoMesh>> atan2
|
||||
|
||||
tmp<GeometricField<scalar, PatchField, GeoMesh>> tAtan2
|
||||
(
|
||||
reuseTmpGeometricField<scalar, scalar, PatchField, GeoMesh>::New
|
||||
New
|
||||
(
|
||||
tgsf,
|
||||
"atan2(" + ds.name() + ',' + gsf.name() + ')',
|
||||
@ -724,7 +722,7 @@ tmp<GeometricField<scalar, PatchField, GeoMesh>> atan2
|
||||
|
||||
atan2(tAtan2.ref(), ds, gsf);
|
||||
|
||||
reuseTmpGeometricField<scalar, scalar, PatchField, GeoMesh>::clear(tgsf);
|
||||
tgsf.clear();
|
||||
|
||||
return tAtan2;
|
||||
}
|
||||
@ -859,7 +857,7 @@ tmp<GeometricField<scalar, PatchField, GeoMesh>> func \
|
||||
\
|
||||
tmp<GeometricField<scalar, PatchField, GeoMesh>> tFunc \
|
||||
( \
|
||||
reuseTmpGeometricField<scalar, scalar, PatchField, GeoMesh>::New \
|
||||
New \
|
||||
( \
|
||||
tgsf, \
|
||||
#func "(" + gsf.name() + ')', \
|
||||
@ -869,8 +867,7 @@ tmp<GeometricField<scalar, PatchField, GeoMesh>> func \
|
||||
\
|
||||
func(tFunc.ref(), n, gsf); \
|
||||
\
|
||||
reuseTmpGeometricField<scalar, scalar, PatchField, GeoMesh> \
|
||||
::clear(tgsf); \
|
||||
tgsf.clear(); \
|
||||
\
|
||||
return tFunc; \
|
||||
}
|
||||
|
||||
@ -82,23 +82,23 @@ inline Foam::tmp<T>::tmp(const tmp<T>& t, bool allowTransfer)
|
||||
{
|
||||
if (isTmp())
|
||||
{
|
||||
if (allowTransfer)
|
||||
if (ptr_)
|
||||
{
|
||||
const_cast<tmp<T>&>(t).ptr_ = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (ptr_)
|
||||
if (allowTransfer)
|
||||
{
|
||||
ptr_->operator++();
|
||||
t.ptr_ = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
FatalErrorInFunction
|
||||
<< "Attempted copy of a deallocated " << typeName()
|
||||
<< abort(FatalError);
|
||||
ptr_->operator++();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
FatalErrorInFunction
|
||||
<< "Attempted copy of a deallocated " << typeName()
|
||||
<< abort(FatalError);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -228,8 +228,7 @@ Foam::tmp<Foam::surfaceScalarField> Foam::MRFZoneList::relative
|
||||
{
|
||||
tmp<surfaceScalarField> rphi
|
||||
(
|
||||
reuseTmpGeometricField<scalar, scalar, fvsPatchField, surfaceMesh>
|
||||
::New
|
||||
New
|
||||
(
|
||||
tphi,
|
||||
"relative(" + tphi().name() + ')',
|
||||
@ -240,8 +239,7 @@ Foam::tmp<Foam::surfaceScalarField> Foam::MRFZoneList::relative
|
||||
|
||||
makeRelative(rphi.ref());
|
||||
|
||||
reuseTmpGeometricField<scalar, scalar, fvsPatchField, surfaceMesh>
|
||||
::clear(tphi);
|
||||
tphi.clear();
|
||||
|
||||
return rphi;
|
||||
}
|
||||
@ -260,17 +258,14 @@ Foam::MRFZoneList::relative
|
||||
{
|
||||
if (size())
|
||||
{
|
||||
tmp<FieldField<fvsPatchField, scalar>> rphi
|
||||
(
|
||||
reuseTmpFieldField<fvsPatchField, scalar, scalar>::New(tphi, true)
|
||||
);
|
||||
tmp<FieldField<fvsPatchField, scalar>> rphi(New(tphi, true));
|
||||
|
||||
forAll(*this, i)
|
||||
{
|
||||
operator[](i).makeRelative(rphi.ref());
|
||||
}
|
||||
|
||||
reuseTmpFieldField<fvsPatchField, scalar, scalar>::clear(tphi);
|
||||
tphi.clear();
|
||||
|
||||
return rphi;
|
||||
}
|
||||
@ -348,8 +343,7 @@ Foam::tmp<Foam::surfaceScalarField> Foam::MRFZoneList::absolute
|
||||
{
|
||||
tmp<surfaceScalarField> rphi
|
||||
(
|
||||
reuseTmpGeometricField<scalar, scalar, fvsPatchField, surfaceMesh>
|
||||
::New
|
||||
New
|
||||
(
|
||||
tphi,
|
||||
"absolute(" + tphi().name() + ')',
|
||||
@ -360,8 +354,7 @@ Foam::tmp<Foam::surfaceScalarField> Foam::MRFZoneList::absolute
|
||||
|
||||
makeAbsolute(rphi.ref());
|
||||
|
||||
reuseTmpGeometricField<scalar, scalar, fvsPatchField, surfaceMesh>
|
||||
::clear(tphi);
|
||||
tphi.clear();
|
||||
|
||||
return rphi;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user