mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
STYLE: modernize code for DimensionedFieldFunctions (#1160)
- use forwarding tmp factory methods, auto types
This commit is contained in:
@ -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)
|
||||||
|
|
||||||
|
|||||||
@ -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,8 +226,7 @@ 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 \
|
||||||
( \
|
( \
|
||||||
@ -253,17 +234,14 @@ tmp<DimensionedField<ReturnType, GeoMesh>> Func \
|
|||||||
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,8 +495,7 @@ 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 \
|
||||||
( \
|
( \
|
||||||
@ -544,17 +503,14 @@ tmp<DimensionedField<ReturnType, GeoMesh>> operator Op \
|
|||||||
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 \
|
||||||
( \
|
( \
|
||||||
|
|||||||
Reference in New Issue
Block a user