STYLE: modernize code for concrete Fields (#1160)

- use forwarding tmp factory methods, auto types
This commit is contained in:
Mark Olesen
2019-01-10 17:06:04 +01:00
parent 7e48f2c6b3
commit ac7a88034e
7 changed files with 134 additions and 149 deletions

View File

@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2017 OpenFOAM Foundation
\\/ M anipulation |
\\/ M anipulation | Copyright (C) 2019 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -42,9 +42,8 @@ tmp<DimensionedField<scalar, GeoMesh>> stabilise
const dimensioned<scalar>& ds
)
{
tmp<DimensionedField<scalar, GeoMesh>> tRes
(
new DimensionedField<scalar, GeoMesh>
auto tres =
tmp<DimensionedField<scalar, GeoMesh>>::New
(
IOobject
(
@ -54,12 +53,11 @@ tmp<DimensionedField<scalar, GeoMesh>> stabilise
),
dsf.mesh(),
dsf.dimensions() + ds.dimensions()
)
);
stabilise(tRes.ref().field(), dsf.field(), ds.value());
stabilise(tres.ref().field(), dsf.field(), ds.value());
return tRes;
return tres;
}
@ -72,18 +70,18 @@ tmp<DimensionedField<scalar, GeoMesh>> stabilise
{
const DimensionedField<scalar, GeoMesh>& dsf = tdsf();
tmp<DimensionedField<scalar, GeoMesh>> tRes = New
tmp<DimensionedField<scalar, GeoMesh>> tres = New
(
tdsf,
"stabilise(" + dsf.name() + ',' + ds.name() + ')',
dsf.dimensions() + ds.dimensions()
);
stabilise(tRes.ref().field(), dsf.field(), ds.value());
stabilise(tres.ref().field(), dsf.field(), ds.value());
tdsf.clear();
return tRes;
return tres;
}
@ -120,9 +118,8 @@ tmp<DimensionedField<scalar, GeoMesh>> pow
<< exit(FatalError);
}
tmp<DimensionedField<scalar, GeoMesh>> tPow
(
new DimensionedField<scalar, GeoMesh>
auto tres =
tmp<DimensionedField<scalar, GeoMesh>>::New
(
IOobject
(
@ -132,12 +129,11 @@ tmp<DimensionedField<scalar, GeoMesh>> pow
),
dsf1.mesh(),
dimless
)
);
pow(tPow.ref().field(), dsf1.field(), dsf2.field());
pow(tres.ref().field(), dsf1.field(), dsf2.field());
return tPow;
return tres;
}
@ -164,18 +160,18 @@ tmp<DimensionedField<scalar, GeoMesh>> pow
<< exit(FatalError);
}
tmp<DimensionedField<scalar, GeoMesh>> tPow = New
tmp<DimensionedField<scalar, GeoMesh>> tres = New
(
tdsf1,
"pow(" + dsf1.name() + ',' + dsf2.name() + ')',
dimless
);
pow(tPow.ref().field(), dsf1.field(), dsf2.field());
pow(tres.ref().field(), dsf1.field(), dsf2.field());
tdsf1.clear();
return tPow;
return tres;
}
@ -202,18 +198,18 @@ tmp<DimensionedField<scalar, GeoMesh>> pow
<< exit(FatalError);
}
tmp<DimensionedField<scalar, GeoMesh>> tPow = New
tmp<DimensionedField<scalar, GeoMesh>> tres = New
(
tdsf2,
"pow(" + dsf1.name() + ',' + dsf2.name() + ')',
dimless
);
pow(tPow.ref().field(), dsf1.field(), dsf2.field());
pow(tres.ref().field(), dsf1.field(), dsf2.field());
tdsf2.clear();
return tPow;
return tres;
}
@ -241,7 +237,7 @@ tmp<DimensionedField<scalar, GeoMesh>> pow
<< exit(FatalError);
}
tmp<DimensionedField<scalar, GeoMesh>> tPow =
auto tres =
reuseTmpTmpDimensionedField<scalar, scalar, scalar, scalar, GeoMesh>::
New
(
@ -251,12 +247,12 @@ tmp<DimensionedField<scalar, GeoMesh>> pow
dimless
);
pow(tPow.ref().field(), dsf1.field(), dsf2.field());
pow(tres.ref().field(), dsf1.field(), dsf2.field());
tdsf1.clear();
tdsf2.clear();
return tPow;
return tres;
}
@ -274,9 +270,8 @@ tmp<DimensionedField<scalar, GeoMesh>> pow
<< exit(FatalError);
}
tmp<DimensionedField<scalar, GeoMesh>> tPow
(
new DimensionedField<scalar, GeoMesh>
auto tres =
tmp<DimensionedField<scalar, GeoMesh>>::New
(
IOobject
(
@ -286,12 +281,11 @@ tmp<DimensionedField<scalar, GeoMesh>> pow
),
dsf.mesh(),
pow(dsf.dimensions(), ds)
)
);
pow(tPow.ref().field(), dsf.field(), ds.value());
pow(tres.ref().field(), dsf.field(), ds.value());
return tPow;
return tres;
}
@ -311,18 +305,18 @@ tmp<DimensionedField<scalar, GeoMesh>> pow
const DimensionedField<scalar, GeoMesh>& dsf = tdsf();
tmp<DimensionedField<scalar, GeoMesh>> tPow = New
tmp<DimensionedField<scalar, GeoMesh>> tres = New
(
tdsf,
"pow(" + dsf.name() + ',' + ds.name() + ')',
pow(dsf.dimensions(), ds)
);
pow(tPow.ref().field(), dsf.field(), ds.value());
pow(tres.ref().field(), dsf.field(), ds.value());
tdsf.clear();
return tPow;
return tres;
}
@ -369,9 +363,8 @@ tmp<DimensionedField<scalar, GeoMesh>> pow
<< exit(FatalError);
}
tmp<DimensionedField<scalar, GeoMesh>> tPow
(
new DimensionedField<scalar, GeoMesh>
auto tres =
tmp<DimensionedField<scalar, GeoMesh>>::New
(
IOobject
(
@ -381,12 +374,11 @@ tmp<DimensionedField<scalar, GeoMesh>> pow
),
dsf.mesh(),
dimless
)
);
pow(tPow.ref().field(), ds.value(), dsf.field());
pow(tres.ref().field(), ds.value(), dsf.field());
return tPow;
return tres;
}
@ -413,18 +405,18 @@ tmp<DimensionedField<scalar, GeoMesh>> pow
<< exit(FatalError);
}
tmp<DimensionedField<scalar, GeoMesh>> tPow = New
tmp<DimensionedField<scalar, GeoMesh>> tres = New
(
tdsf,
"pow(" + ds.name() + ',' + dsf.name() + ')',
dimless
);
pow(tPow.ref().field(), ds.value(), dsf.field());
pow(tres.ref().field(), ds.value(), dsf.field());
tdsf.clear();
return tPow;
return tres;
}
template<class GeoMesh>
@ -457,9 +449,8 @@ tmp<DimensionedField<scalar, GeoMesh>> atan2
const DimensionedField<scalar, GeoMesh>& dsf2
)
{
tmp<DimensionedField<scalar, GeoMesh>> tAtan2
(
new DimensionedField<scalar, GeoMesh>
auto tres =
tmp<DimensionedField<scalar, GeoMesh>>::New
(
IOobject
(
@ -469,12 +460,11 @@ tmp<DimensionedField<scalar, GeoMesh>> atan2
),
dsf1.mesh(),
atan2(dsf1.dimensions(), dsf2.dimensions())
)
);
atan2(tAtan2.ref().field(), dsf1.field(), dsf2.field());
atan2(tres.ref().field(), dsf1.field(), dsf2.field());
return tAtan2;
return tres;
}
@ -487,18 +477,18 @@ tmp<DimensionedField<scalar, GeoMesh>> atan2
{
const DimensionedField<scalar, GeoMesh>& dsf1 = tdsf1();
tmp<DimensionedField<scalar, GeoMesh>> tAtan2 = New
tmp<DimensionedField<scalar, GeoMesh>> tres = New
(
tdsf1,
"atan2(" + dsf1.name() + ',' + dsf2.name() + ')',
atan2(dsf1.dimensions(), dsf2.dimensions())
);
atan2(tAtan2.ref().field(), dsf1.field(), dsf2.field());
atan2(tres.ref().field(), dsf1.field(), dsf2.field());
tdsf1.clear();
return tAtan2;
return tres;
}
@ -511,18 +501,18 @@ tmp<DimensionedField<scalar, GeoMesh>> atan2
{
const DimensionedField<scalar, GeoMesh>& dsf2 = tdsf2();
tmp<DimensionedField<scalar, GeoMesh>> tAtan2 = New
tmp<DimensionedField<scalar, GeoMesh>> tres = New
(
tdsf2,
"atan2(" + dsf1.name() + ',' + dsf2.name() + ')',
atan2(dsf1.dimensions(), dsf2.dimensions())
);
atan2(tAtan2.ref().field(), dsf1.field(), dsf2.field());
atan2(tres.ref().field(), dsf1.field(), dsf2.field());
tdsf2.clear();
return tAtan2;
return tres;
}
template<class GeoMesh>
@ -535,7 +525,7 @@ tmp<DimensionedField<scalar, GeoMesh>> atan2
const DimensionedField<scalar, GeoMesh>& dsf1 = tdsf1();
const DimensionedField<scalar, GeoMesh>& dsf2 = tdsf2();
tmp<DimensionedField<scalar, GeoMesh>> tAtan2 =
auto tres =
reuseTmpTmpDimensionedField<scalar, scalar, scalar, scalar, GeoMesh>::
New
(
@ -545,12 +535,12 @@ tmp<DimensionedField<scalar, GeoMesh>> atan2
atan2(dsf1.dimensions(), dsf2.dimensions())
);
atan2(tAtan2.ref().field(), dsf1.field(), dsf2.field());
atan2(tres.ref().field(), dsf1.field(), dsf2.field());
tdsf1.clear();
tdsf2.clear();
return tAtan2;
return tres;
}
@ -561,9 +551,8 @@ tmp<DimensionedField<scalar, GeoMesh>> atan2
const dimensionedScalar& ds
)
{
tmp<DimensionedField<scalar, GeoMesh>> tAtan2
(
new DimensionedField<scalar, GeoMesh>
auto tres =
tmp<DimensionedField<scalar, GeoMesh>>::New
(
IOobject
(
@ -573,12 +562,11 @@ tmp<DimensionedField<scalar, GeoMesh>> atan2
),
dsf.mesh(),
atan2(dsf.dimensions(), ds)
)
);
atan2(tAtan2.ref().field(), dsf.field(), ds.value());
atan2(tres.ref().field(), dsf.field(), ds.value());
return tAtan2;
return tres;
}
template<class GeoMesh>
@ -590,18 +578,18 @@ tmp<DimensionedField<scalar, GeoMesh>> atan2
{
const DimensionedField<scalar, GeoMesh>& dsf = tdsf();
tmp<DimensionedField<scalar, GeoMesh>> tAtan2 = New
tmp<DimensionedField<scalar, GeoMesh>> tres = New
(
tdsf,
"atan2(" + dsf.name() + ',' + ds.name() + ')',
atan2(dsf.dimensions(), ds)
);
atan2(tAtan2.ref().field(), dsf.field(), ds.value());
atan2(tres.ref().field(), dsf.field(), ds.value());
tdsf.clear();
return tAtan2;
return tres;
}
template<class GeoMesh>
@ -632,9 +620,8 @@ tmp<DimensionedField<scalar, GeoMesh>> atan2
const DimensionedField<scalar, GeoMesh>& dsf
)
{
tmp<DimensionedField<scalar, GeoMesh>> tAtan2
(
new DimensionedField<scalar, GeoMesh>
auto tres =
tmp<DimensionedField<scalar, GeoMesh>>::New
(
IOobject
(
@ -644,12 +631,11 @@ tmp<DimensionedField<scalar, GeoMesh>> atan2
),
dsf.mesh(),
atan2(ds, dsf.dimensions())
)
);
atan2(tAtan2.ref().field(), ds.value(), dsf.field());
atan2(tres.ref().field(), ds.value(), dsf.field());
return tAtan2;
return tres;
}
@ -662,18 +648,18 @@ tmp<DimensionedField<scalar, GeoMesh>> atan2
{
const DimensionedField<scalar, GeoMesh>& dsf = tdsf();
tmp<DimensionedField<scalar, GeoMesh>> tAtan2 = New
tmp<DimensionedField<scalar, GeoMesh>> tres = New
(
tdsf,
"atan2(" + ds.name() + ',' + dsf.name() + ')',
atan2(ds, dsf.dimensions())
);
atan2(tAtan2.ref().field(), ds.value(), dsf.field());
atan2(tres.ref().field(), ds.value(), dsf.field());
tdsf.clear();
return tAtan2;
return tres;
}
template<class GeoMesh>
@ -756,9 +742,8 @@ tmp<DimensionedField<scalar, GeoMesh>> func \
<< abort(FatalError); \
} \
\
tmp<DimensionedField<scalar, GeoMesh>> tFunc \
( \
new DimensionedField<scalar, GeoMesh> \
auto tres = \
tmp<DimensionedField<scalar, GeoMesh>>::New \
( \
IOobject \
( \
@ -768,14 +753,14 @@ tmp<DimensionedField<scalar, GeoMesh>> func \
), \
dsf.mesh(), \
dimless \
) \
); \
\
func(tFunc.ref().field(), n, dsf.field()); \
func(tres.ref().field(), n, dsf.field()); \
\
return tFunc; \
return tres; \
} \
\
\
template<class GeoMesh> \
tmp<DimensionedField<scalar, GeoMesh>> func \
( \
@ -792,7 +777,7 @@ tmp<DimensionedField<scalar, GeoMesh>> func \
<< abort(FatalError); \
} \
\
tmp<DimensionedField<scalar, GeoMesh>> tFunc \
tmp<DimensionedField<scalar, GeoMesh>> tres \
( \
New \
( \
@ -802,11 +787,11 @@ tmp<DimensionedField<scalar, GeoMesh>> func \
) \
); \
\
func(tFunc.ref().field(), n, dsf.field()); \
func(tres.ref().field(), n, dsf.field()); \
\
tdsf.clear(); \
\
return tFunc; \
return tres; \
}
BesselFunc(jn)

View File

@ -73,17 +73,17 @@ void stabilise(scalarField& res, const UList<scalar>& sf, const scalar s)
tmp<scalarField> stabilise(const UList<scalar>& sf, const scalar s)
{
tmp<scalarField> tRes(new scalarField(sf.size()));
stabilise(tRes.ref(), sf, s);
return tRes;
auto tresult = tmp<scalarField>::New(sf.size());
stabilise(tresult.ref(), sf, s);
return tresult;
}
tmp<scalarField> stabilise(const tmp<scalarField>& tsf, const scalar s)
{
tmp<scalarField> tRes = New(tsf);
stabilise(tRes.ref(), tsf(), s);
tmp<scalarField> tresult = New(tsf);
stabilise(tresult.ref(), tsf(), s);
tsf.clear();
return tRes;
return tresult;
}
@ -92,16 +92,12 @@ tmp<scalarField> stabilise(const tmp<scalarField>& tsf, const scalar s)
template<>
scalar sumProd(const UList<scalar>& f1, const UList<scalar>& f2)
{
scalar SumProd = 0.0;
if (f1.size() && (f1.size() == f2.size()))
{
scalar SumProd = 0.0;
TFOR_ALL_S_OP_F_OP_F(scalar, SumProd, +=, scalar, f1, *, scalar, f2)
}
return SumProd;
}
else
{
return 0.0;
}
}
@ -174,17 +170,17 @@ void func(scalarField& res, const int n, const UList<scalar>& sf) \
\
tmp<scalarField> func(const int n, const UList<scalar>& sf) \
{ \
tmp<scalarField> tRes(new scalarField(sf.size())); \
func(tRes.ref(), n, sf); \
return tRes; \
auto tresult = tmp<scalarField>::New(sf.size()); \
func(tresult.ref(), n, sf); \
return tresult; \
} \
\
tmp<scalarField> func(const int n, const tmp<scalarField>& tsf) \
{ \
tmp<scalarField> tRes = New(tsf); \
func(tRes.ref(), n, tsf()); \
tmp<scalarField> tresult = New(tsf); \
func(tresult.ref(), n, tsf()); \
tsf.clear(); \
return tRes; \
return tresult; \
}
BesselFunc(jn)

View File

@ -107,17 +107,17 @@ void inv(Field<symmTensor>& tf, const UList<symmTensor>& tf1)
tmp<symmTensorField> inv(const UList<symmTensor>& tf)
{
tmp<symmTensorField> result(new symmTensorField(tf.size()));
inv(result.ref(), tf);
return result;
auto tresult = tmp<symmTensorField>::New(tf.size());
inv(tresult.ref(), tf);
return tresult;
}
tmp<symmTensorField> inv(const tmp<symmTensorField>& tf)
{
tmp<symmTensorField> tRes = New(tf);
inv(tRes.ref(), tf());
tmp<symmTensorField> tresult = New(tf);
inv(tresult.ref(), tf());
tf.clear();
return tRes;
return tresult;
}

View File

@ -31,7 +31,7 @@ License
namespace Foam
{
// * * * * * * * * * * * * * * * global functions * * * * * * * * * * * * * //
// * * * * * * * * * * * * * * * Global Functions * * * * * * * * * * * * * //
template<class Type>
void transform
@ -62,9 +62,9 @@ tmp<Field<Type>> transform
const Field<Type>& tf
)
{
tmp<Field<Type>> tranf(new Field<Type> (tf.size()));
transform(tranf.ref(), trf, tf);
return tranf;
auto tresult = tmp<Field<Type>>::New(tf.size());
transform(tresult.ref(), trf, tf);
return tresult;
}
@ -75,10 +75,10 @@ tmp<Field<Type>> transform
const tmp<Field<Type>>& ttf
)
{
tmp<Field<Type>> tranf = New(ttf);
transform(tranf.ref(), trf, ttf());
tmp<Field<Type>> tresult = New(ttf);
transform(tresult.ref(), trf, ttf());
ttf.clear();
return tranf;
return tresult;
}
@ -89,10 +89,10 @@ tmp<Field<Type>> transform
const Field<Type>& tf
)
{
tmp<Field<Type>> tranf(new Field<Type> (tf.size()));
transform(tranf.ref(), ttrf(), tf);
auto tresult = tmp<Field<Type>>::New(tf.size());
transform(tresult.ref(), ttrf(), tf);
ttrf.clear();
return tranf;
return tresult;
}
@ -103,11 +103,11 @@ tmp<Field<Type>> transform
const tmp<Field<Type>>& ttf
)
{
tmp<Field<Type>> tranf = New(ttf);
transform(tranf.ref(), ttrf(), ttf());
tmp<Field<Type>> tresult = New(ttf);
transform(tresult.ref(), ttrf(), ttf());
ttf.clear();
ttrf.clear();
return tranf;
return tresult;
}
@ -130,9 +130,9 @@ tmp<Field<Type>> transform
const Field<Type>& tf
)
{
tmp<Field<Type>> tranf(new Field<Type>(tf.size()));
transform(tranf.ref(), t, tf);
return tranf;
auto tresult = tmp<Field<Type>>::New(tf.size());
transform(tresult.ref(), t, tf);
return tresult;
}
@ -143,10 +143,10 @@ tmp<Field<Type>> transform
const tmp<Field<Type>>& ttf
)
{
tmp<Field<Type>> tranf = New(ttf);
transform(tranf.ref(), t, ttf());
tmp<Field<Type>> tresult = New(ttf);
transform(tresult.ref(), t, ttf());
ttf.clear();
return tranf;
return tresult;
}

View File

@ -105,17 +105,17 @@ void inv(Field<tensor>& tf, const UList<tensor>& tf1)
tmp<tensorField> inv(const UList<tensor>& tf)
{
tmp<tensorField> result(new tensorField(tf.size()));
inv(result.ref(), tf);
return result;
auto tres = tmp<tensorField>::New(tf.size());
inv(tres.ref(), tf);
return tres;
}
tmp<tensorField> inv(const tmp<tensorField>& tf)
{
tmp<tensorField> tRes = New(tf);
inv(tRes.ref(), tf());
auto tres = New(tf);
inv(tres.ref(), tf());
tf.clear();
return tRes;
return tres;
}
UNARY_FUNCTION(vector, tensor, eigenValues)
@ -131,10 +131,10 @@ tmp<Field<tensor>> transformFieldMask<tensor>
const symmTensorField& stf
)
{
tmp<tensorField> tRes(new tensorField(stf.size()));
tensorField& res = tRes.ref();
auto tres = tmp<tensorField>::New(stf.size());
auto& res = tres.ref();
TFOR_ALL_F_OP_F(tensor, res, =, symmTensor, stf)
return tRes;
return tres;
}
template<>

View File

@ -33,10 +33,12 @@ Foam::tmp<Foam::vector2DField> Foam::zip
const tmp<scalarField>& y
)
{
tmp<vector2DField> txy(new vector2DField(x->size()));
vector2DField& xy = txy.ref();
auto txy = tmp<vector2DField>::New(x->size());
auto& xy = txy.ref();
xy.replace(0, x);
xy.replace(1, y);
return txy;
}

View File

@ -34,11 +34,13 @@ Foam::tmp<Foam::vectorField> Foam::zip
const tmp<scalarField>& z
)
{
tmp<vectorField> txyz(new vectorField(x->size()));
vectorField& xyz = txyz.ref();
auto txyz = tmp<vectorField>::New(x->size());
auto& xyz = txyz.ref();
xyz.replace(0, x);
xyz.replace(1, y);
xyz.replace(2, z);
return txyz;
}