mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
Field: Simplified tmp reuse and cleanup
This commit is contained in:
@ -102,7 +102,7 @@ pow
|
||||
typedef typename powProduct<Type, r>::type powProductType;
|
||||
tmp<Field<powProductType>> tRes = reuseTmp<powProductType, Type>::New(tf);
|
||||
pow<Type, r>(tRes.ref(), tf());
|
||||
reuseTmp<powProductType, Type>::clear(tf);
|
||||
tf.clear();
|
||||
return tRes;
|
||||
}
|
||||
|
||||
@ -139,7 +139,7 @@ sqr(const tmp<Field<Type>>& tf)
|
||||
tmp<Field<outerProductType>> tRes =
|
||||
reuseTmp<outerProductType, Type>::New(tf);
|
||||
sqr(tRes.ref(), tf());
|
||||
reuseTmp<outerProductType, Type>::clear(tf);
|
||||
tf.clear();
|
||||
return tRes;
|
||||
}
|
||||
|
||||
@ -163,7 +163,7 @@ tmp<Field<scalar>> magSqr(const tmp<Field<Type>>& tf)
|
||||
{
|
||||
tmp<Field<scalar>> tRes = reuseTmp<scalar, Type>::New(tf);
|
||||
magSqr(tRes.ref(), tf());
|
||||
reuseTmp<scalar, Type>::clear(tf);
|
||||
tf.clear();
|
||||
return tRes;
|
||||
}
|
||||
|
||||
@ -187,7 +187,7 @@ tmp<Field<scalar>> mag(const tmp<Field<Type>>& tf)
|
||||
{
|
||||
tmp<Field<scalar>> tRes = reuseTmp<scalar, Type>::New(tf);
|
||||
mag(tRes.ref(), tf());
|
||||
reuseTmp<scalar, Type>::clear(tf);
|
||||
tf.clear();
|
||||
return tRes;
|
||||
}
|
||||
|
||||
@ -214,7 +214,7 @@ tmp<Field<typename Field<Type>::cmptType>> cmptMax(const tmp<Field<Type>>& tf)
|
||||
typedef typename Field<Type>::cmptType cmptType;
|
||||
tmp<Field<cmptType>> tRes = reuseTmp<cmptType, Type>::New(tf);
|
||||
cmptMax(tRes.ref(), tf());
|
||||
reuseTmp<cmptType, Type>::clear(tf);
|
||||
tf.clear();
|
||||
return tRes;
|
||||
}
|
||||
|
||||
@ -241,7 +241,7 @@ tmp<Field<typename Field<Type>::cmptType>> cmptMin(const tmp<Field<Type>>& tf)
|
||||
typedef typename Field<Type>::cmptType cmptType;
|
||||
tmp<Field<cmptType>> tRes = reuseTmp<cmptType, Type>::New(tf);
|
||||
cmptMin(tRes.ref(), tf());
|
||||
reuseTmp<cmptType, Type>::clear(tf);
|
||||
tf.clear();
|
||||
return tRes;
|
||||
}
|
||||
|
||||
@ -268,7 +268,7 @@ tmp<Field<typename Field<Type>::cmptType>> cmptAv(const tmp<Field<Type>>& tf)
|
||||
typedef typename Field<Type>::cmptType cmptType;
|
||||
tmp<Field<cmptType>> tRes = reuseTmp<cmptType, Type>::New(tf);
|
||||
cmptAv(tRes.ref(), tf());
|
||||
reuseTmp<cmptType, Type>::clear(tf);
|
||||
tf.clear();
|
||||
return tRes;
|
||||
}
|
||||
|
||||
@ -290,9 +290,9 @@ tmp<Field<Type>> cmptMag(const UList<Type>& f)
|
||||
template<class Type>
|
||||
tmp<Field<Type>> cmptMag(const tmp<Field<Type>>& tf)
|
||||
{
|
||||
tmp<Field<Type>> tRes = reuseTmp<Type, Type>::New(tf);
|
||||
tmp<Field<Type>> tRes = New(tf);
|
||||
cmptMag(tRes.ref(), tf());
|
||||
reuseTmp<Type, Type>::clear(tf);
|
||||
tf.clear();
|
||||
return tRes;
|
||||
}
|
||||
|
||||
@ -664,7 +664,7 @@ operator Op(const UList<Type1>& f1, const tmp<Field<Type2>>& tf2) \
|
||||
typedef typename product<Type1, Type2>::type productType; \
|
||||
tmp<Field<productType>> tRes = reuseTmp<productType, Type2>::New(tf2); \
|
||||
OpFunc(tRes.ref(), f1, tf2()); \
|
||||
reuseTmp<productType, Type2>::clear(tf2); \
|
||||
tf2.clear(); \
|
||||
return tRes; \
|
||||
} \
|
||||
\
|
||||
@ -675,7 +675,7 @@ operator Op(const tmp<Field<Type1>>& tf1, const UList<Type2>& f2) \
|
||||
typedef typename product<Type1, Type2>::type productType; \
|
||||
tmp<Field<productType>> tRes = reuseTmp<productType, Type1>::New(tf1); \
|
||||
OpFunc(tRes.ref(), tf1(), f2); \
|
||||
reuseTmp<productType, Type1>::clear(tf1); \
|
||||
tf1.clear(); \
|
||||
return tRes; \
|
||||
} \
|
||||
\
|
||||
@ -687,7 +687,8 @@ operator Op(const tmp<Field<Type1>>& tf1, const tmp<Field<Type2>>& tf2) \
|
||||
tmp<Field<productType>> tRes = \
|
||||
reuseTmpTmp<productType, Type1, Type1, Type2>::New(tf1, tf2); \
|
||||
OpFunc(tRes.ref(), tf1(), tf2()); \
|
||||
reuseTmpTmp<productType, Type1, Type1, Type2>::clear(tf1, tf2); \
|
||||
tf1.clear(); \
|
||||
tf2.clear(); \
|
||||
return tRes; \
|
||||
} \
|
||||
\
|
||||
@ -725,7 +726,7 @@ operator Op \
|
||||
typedef typename product<Type, Form>::type productType; \
|
||||
tmp<Field<productType>> tRes = reuseTmp<productType, Type>::New(tf1); \
|
||||
OpFunc(tRes.ref(), tf1(), static_cast<const Form&>(vs)); \
|
||||
reuseTmp<productType, Type>::clear(tf1); \
|
||||
tf1.clear(); \
|
||||
return tRes; \
|
||||
} \
|
||||
\
|
||||
@ -762,7 +763,7 @@ operator Op \
|
||||
typedef typename product<Form, Type>::type productType; \
|
||||
tmp<Field<productType>> tRes = reuseTmp<productType, Type>::New(tf1); \
|
||||
OpFunc(tRes.ref(), static_cast<const Form&>(vs), tf1()); \
|
||||
reuseTmp<productType, Type>::clear(tf1); \
|
||||
tf1.clear(); \
|
||||
return tRes; \
|
||||
}
|
||||
|
||||
|
||||
@ -49,7 +49,7 @@ tmp<Field<ReturnType>> Func(const tmp<Field<Type>>& tf) \
|
||||
{ \
|
||||
tmp<Field<ReturnType>> tRes = reuseTmp<ReturnType, Type>::New(tf); \
|
||||
Func(tRes.ref(), tf()); \
|
||||
reuseTmp<ReturnType, Type>::clear(tf); \
|
||||
tf.clear(); \
|
||||
return tRes; \
|
||||
}
|
||||
|
||||
@ -77,7 +77,7 @@ tmp<Field<ReturnType>> operator Op(const tmp<Field<Type>>& tf) \
|
||||
{ \
|
||||
tmp<Field<ReturnType>> tRes = reuseTmp<ReturnType, Type>::New(tf); \
|
||||
OpFunc(tRes.ref(), tf()); \
|
||||
reuseTmp<ReturnType, Type>::clear(tf); \
|
||||
tf.clear(); \
|
||||
return tRes; \
|
||||
}
|
||||
|
||||
@ -121,7 +121,7 @@ tmp<Field<ReturnType>> Func \
|
||||
{ \
|
||||
tmp<Field<ReturnType>> tRes = reuseTmp<ReturnType, Type2>::New(tf2); \
|
||||
Func(tRes.ref(), f1, tf2()); \
|
||||
reuseTmp<ReturnType, Type2>::clear(tf2); \
|
||||
tf2.clear(); \
|
||||
return tRes; \
|
||||
} \
|
||||
\
|
||||
@ -134,7 +134,7 @@ tmp<Field<ReturnType>> Func \
|
||||
{ \
|
||||
tmp<Field<ReturnType>> tRes = reuseTmp<ReturnType, Type1>::New(tf1); \
|
||||
Func(tRes.ref(), tf1(), f2); \
|
||||
reuseTmp<ReturnType, Type1>::clear(tf1); \
|
||||
tf1.clear(); \
|
||||
return tRes; \
|
||||
} \
|
||||
\
|
||||
@ -148,7 +148,8 @@ tmp<Field<ReturnType>> Func \
|
||||
tmp<Field<ReturnType>> tRes = \
|
||||
reuseTmpTmp<ReturnType, Type1, Type1, Type2>::New(tf1, tf2); \
|
||||
Func(tRes.ref(), tf1(), tf2()); \
|
||||
reuseTmpTmp<ReturnType, Type1, Type1, Type2>::clear(tf1, tf2); \
|
||||
tf1.clear(); \
|
||||
tf2.clear(); \
|
||||
return tRes; \
|
||||
}
|
||||
|
||||
@ -192,7 +193,7 @@ tmp<Field<ReturnType>> Func \
|
||||
{ \
|
||||
tmp<Field<ReturnType>> tRes = reuseTmp<ReturnType, Type2>::New(tf2); \
|
||||
Func(tRes.ref(), s1, tf2()); \
|
||||
reuseTmp<ReturnType, Type2>::clear(tf2); \
|
||||
tf2.clear(); \
|
||||
return tRes; \
|
||||
}
|
||||
|
||||
@ -234,7 +235,7 @@ tmp<Field<ReturnType>> Func \
|
||||
{ \
|
||||
tmp<Field<ReturnType>> tRes = reuseTmp<ReturnType, Type1>::New(tf1); \
|
||||
Func(tRes.ref(), tf1(), s2); \
|
||||
reuseTmp<ReturnType, Type1>::clear(tf1); \
|
||||
tf1.clear(); \
|
||||
return tRes; \
|
||||
}
|
||||
|
||||
@ -280,7 +281,7 @@ tmp<Field<ReturnType>> operator Op \
|
||||
{ \
|
||||
tmp<Field<ReturnType>> tRes = reuseTmp<ReturnType, Type2>::New(tf2); \
|
||||
OpFunc(tRes.ref(), f1, tf2()); \
|
||||
reuseTmp<ReturnType, Type2>::clear(tf2); \
|
||||
tf2.clear(); \
|
||||
return tRes; \
|
||||
} \
|
||||
\
|
||||
@ -293,7 +294,7 @@ tmp<Field<ReturnType>> operator Op \
|
||||
{ \
|
||||
tmp<Field<ReturnType>> tRes = reuseTmp<ReturnType, Type1>::New(tf1); \
|
||||
OpFunc(tRes.ref(), tf1(), f2); \
|
||||
reuseTmp<ReturnType, Type1>::clear(tf1); \
|
||||
tf1.clear(); \
|
||||
return tRes; \
|
||||
} \
|
||||
\
|
||||
@ -307,7 +308,8 @@ tmp<Field<ReturnType>> operator Op \
|
||||
tmp<Field<ReturnType>> tRes = \
|
||||
reuseTmpTmp<ReturnType, Type1, Type1, Type2>::New(tf1, tf2); \
|
||||
OpFunc(tRes.ref(), tf1(), tf2()); \
|
||||
reuseTmpTmp<ReturnType, Type1, Type1, Type2>::clear(tf1, tf2); \
|
||||
tf1.clear(); \
|
||||
tf2.clear(); \
|
||||
return tRes; \
|
||||
}
|
||||
|
||||
@ -348,7 +350,7 @@ tmp<Field<ReturnType>> operator Op \
|
||||
{ \
|
||||
tmp<Field<ReturnType>> tRes = reuseTmp<ReturnType, Type2>::New(tf2); \
|
||||
OpFunc(tRes.ref(), s1, tf2()); \
|
||||
reuseTmp<ReturnType, Type2>::clear(tf2); \
|
||||
tf2.clear(); \
|
||||
return tRes; \
|
||||
}
|
||||
|
||||
@ -387,7 +389,7 @@ tmp<Field<ReturnType>> operator Op \
|
||||
{ \
|
||||
tmp<Field<ReturnType>> tRes = reuseTmp<ReturnType, Type1>::New(tf1); \
|
||||
OpFunc(tRes.ref(), tf1(), s2); \
|
||||
reuseTmp<ReturnType, Type1>::clear(tf1); \
|
||||
tf1.clear(); \
|
||||
return tRes; \
|
||||
}
|
||||
|
||||
|
||||
@ -33,34 +33,13 @@ namespace Foam
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
template<class TypeR, class Type1>
|
||||
class reuseTmp
|
||||
{
|
||||
public:
|
||||
|
||||
static tmp<Field<TypeR>> New(const tmp<Field<Type1>>& tf1)
|
||||
{
|
||||
return tmp<Field<TypeR>>(new Field<TypeR>(tf1().size()));
|
||||
}
|
||||
|
||||
static void clear(const tmp<Field<Type1>>& tf1)
|
||||
{
|
||||
tf1.clear();
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
template<class TypeR>
|
||||
class reuseTmp<TypeR, TypeR>
|
||||
{
|
||||
public:
|
||||
|
||||
static tmp<Field<TypeR>> New
|
||||
(
|
||||
tmp<Field<TypeR>> New
|
||||
(
|
||||
const tmp<Field<TypeR>>& tf1,
|
||||
const bool initRet = false
|
||||
)
|
||||
{
|
||||
)
|
||||
{
|
||||
if (tf1.isTmp())
|
||||
{
|
||||
return tf1;
|
||||
@ -76,11 +55,36 @@ public:
|
||||
|
||||
return rtf;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void clear(const tmp<Field<TypeR>>& tf1)
|
||||
|
||||
template<class TypeR, class Type1>
|
||||
class reuseTmp
|
||||
{
|
||||
public:
|
||||
|
||||
static tmp<Field<TypeR>> New(const tmp<Field<Type1>>& tf1)
|
||||
{
|
||||
tf1.clear();
|
||||
return tmp<Field<TypeR>>(new Field<TypeR>(tf1().size()));
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
template<class TypeR>
|
||||
class reuseTmp<TypeR, TypeR>
|
||||
{
|
||||
public:
|
||||
|
||||
static tmp<Field<TypeR>> New(const tmp<Field<TypeR>>& tf1)
|
||||
{
|
||||
if (tf1.isTmp())
|
||||
{
|
||||
return tf1;
|
||||
}
|
||||
else
|
||||
{
|
||||
return tmp<Field<TypeR>>(new Field<TypeR>(tf1().size()));
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
@ -98,16 +102,6 @@ public:
|
||||
{
|
||||
return tmp<Field<TypeR>>(new Field<TypeR>(tf1().size()));
|
||||
}
|
||||
|
||||
static void clear
|
||||
(
|
||||
const tmp<Field<Type1>>& tf1,
|
||||
const tmp<Field<Type2>>& tf2
|
||||
)
|
||||
{
|
||||
tf1.clear();
|
||||
tf2.clear();
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@ -131,16 +125,6 @@ public:
|
||||
return tmp<Field<TypeR>>(new Field<TypeR>(tf1().size()));
|
||||
}
|
||||
}
|
||||
|
||||
static void clear
|
||||
(
|
||||
const tmp<Field<Type1>>& tf1,
|
||||
const tmp<Field<TypeR>>& tf2
|
||||
)
|
||||
{
|
||||
tf1.clear();
|
||||
tf2.clear();
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@ -164,16 +148,6 @@ public:
|
||||
return tmp<Field<TypeR>>(new Field<TypeR>(tf1().size()));
|
||||
}
|
||||
}
|
||||
|
||||
static void clear
|
||||
(
|
||||
const tmp<Field<TypeR>>& tf1,
|
||||
const tmp<Field<Type2>>& tf2
|
||||
)
|
||||
{
|
||||
tf1.clear();
|
||||
tf2.clear();
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@ -201,16 +175,6 @@ public:
|
||||
return tmp<Field<TypeR>>(new Field<TypeR>(tf1().size()));
|
||||
}
|
||||
}
|
||||
|
||||
static void clear
|
||||
(
|
||||
const tmp<Field<TypeR>>& tf1,
|
||||
const tmp<Field<TypeR>>& tf2
|
||||
)
|
||||
{
|
||||
tf1.clear();
|
||||
tf2.clear();
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
||||
@ -80,9 +80,9 @@ tmp<scalarField> stabilise(const UList<scalar>& sf, const scalar s)
|
||||
|
||||
tmp<scalarField> stabilise(const tmp<scalarField>& tsf, const scalar s)
|
||||
{
|
||||
tmp<scalarField> tRes = reuseTmp<scalar, scalar>::New(tsf);
|
||||
tmp<scalarField> tRes = New(tsf);
|
||||
stabilise(tRes.ref(), tsf(), s);
|
||||
reuseTmp<scalar, scalar>::clear(tsf);
|
||||
tsf.clear();
|
||||
return tRes;
|
||||
}
|
||||
|
||||
@ -179,9 +179,9 @@ tmp<scalarField> func(const int n, const UList<scalar>& sf) \
|
||||
\
|
||||
tmp<scalarField> func(const int n, const tmp<scalarField>& tsf) \
|
||||
{ \
|
||||
tmp<scalarField> tRes = reuseTmp<scalar, scalar>::New(tsf); \
|
||||
tmp<scalarField> tRes = New(tsf); \
|
||||
func(tRes.ref(), n, tsf()); \
|
||||
reuseTmp<scalar, scalar>::clear(tsf); \
|
||||
tsf.clear(); \
|
||||
return tRes; \
|
||||
}
|
||||
|
||||
|
||||
@ -114,9 +114,9 @@ tmp<symmTensorField> inv(const UList<symmTensor>& tf)
|
||||
|
||||
tmp<symmTensorField> inv(const tmp<symmTensorField>& tf)
|
||||
{
|
||||
tmp<symmTensorField> tRes = reuseTmp<symmTensor, symmTensor>::New(tf);
|
||||
tmp<symmTensorField> tRes = New(tf);
|
||||
inv(tRes.ref(), tf());
|
||||
reuseTmp<symmTensor, symmTensor>::clear(tf);
|
||||
tf.clear();
|
||||
return tRes;
|
||||
}
|
||||
|
||||
|
||||
@ -75,9 +75,9 @@ tmp<Field<Type>> transform
|
||||
const tmp<Field<Type>>& ttf
|
||||
)
|
||||
{
|
||||
tmp<Field<Type>> tranf = reuseTmp<Type, Type>::New(ttf);
|
||||
tmp<Field<Type>> tranf = New(ttf);
|
||||
transform(tranf.ref(), trf, ttf());
|
||||
reuseTmp<Type, Type>::clear(ttf);
|
||||
ttf.clear();
|
||||
return tranf;
|
||||
}
|
||||
|
||||
@ -103,9 +103,9 @@ tmp<Field<Type>> transform
|
||||
const tmp<Field<Type>>& ttf
|
||||
)
|
||||
{
|
||||
tmp<Field<Type>> tranf = reuseTmp<Type, Type>::New(ttf);
|
||||
tmp<Field<Type>> tranf = New(ttf);
|
||||
transform(tranf.ref(), ttrf(), ttf());
|
||||
reuseTmp<Type, Type>::clear(ttf);
|
||||
ttf.clear();
|
||||
ttrf.clear();
|
||||
return tranf;
|
||||
}
|
||||
@ -143,9 +143,9 @@ tmp<Field<Type>> transform
|
||||
const tmp<Field<Type>>& ttf
|
||||
)
|
||||
{
|
||||
tmp<Field<Type>> tranf = reuseTmp<Type, Type>::New(ttf);
|
||||
tmp<Field<Type>> tranf = New(ttf);
|
||||
transform(tranf.ref(), t, ttf());
|
||||
reuseTmp<Type, Type>::clear(ttf);
|
||||
ttf.clear();
|
||||
return tranf;
|
||||
}
|
||||
|
||||
|
||||
@ -112,9 +112,9 @@ tmp<tensorField> inv(const UList<tensor>& tf)
|
||||
|
||||
tmp<tensorField> inv(const tmp<tensorField>& tf)
|
||||
{
|
||||
tmp<tensorField> tRes = reuseTmp<tensor, tensor>::New(tf);
|
||||
tmp<tensorField> tRes = New(tf);
|
||||
inv(tRes.ref(), tf());
|
||||
reuseTmp<tensor, tensor>::clear(tf);
|
||||
tf.clear();
|
||||
return tRes;
|
||||
}
|
||||
|
||||
|
||||
@ -59,9 +59,9 @@ Foam::tmp<Foam::vectorField> Foam::transform
|
||||
const tmp<vectorField>& ttf
|
||||
)
|
||||
{
|
||||
tmp<vectorField > tranf = reuseTmp<vector, vector>::New(ttf);
|
||||
tmp<vectorField > tranf = New(ttf);
|
||||
transform(tranf.ref(), q, ttf());
|
||||
reuseTmp<vector, vector>::clear(ttf);
|
||||
ttf.clear();
|
||||
return tranf;
|
||||
}
|
||||
|
||||
@ -117,9 +117,9 @@ Foam::tmp<Foam::vectorField> Foam::transform
|
||||
const tmp<vectorField>& ttf
|
||||
)
|
||||
{
|
||||
tmp<vectorField > tranf = reuseTmp<vector, vector>::New(ttf);
|
||||
tmp<vectorField > tranf = New(ttf);
|
||||
transform(tranf.ref(), tr, ttf());
|
||||
reuseTmp<vector, vector>::clear(ttf);
|
||||
ttf.clear();
|
||||
return tranf;
|
||||
}
|
||||
|
||||
|
||||
@ -75,9 +75,9 @@ tmp<Field<Type>> transform
|
||||
const tmp<Field<Type>>& ttf
|
||||
)
|
||||
{
|
||||
tmp<Field<Type>> tranf = reuseTmp<Type, Type>::New(ttf);
|
||||
tmp<Field<Type>> tranf = New(ttf);
|
||||
transform(tranf.ref(), trf, ttf());
|
||||
reuseTmp<Type, Type>::clear(ttf);
|
||||
ttf.clear();
|
||||
return tranf;
|
||||
}
|
||||
|
||||
@ -103,9 +103,9 @@ tmp<Field<Type>> transform
|
||||
const tmp<Field<Type>>& ttf
|
||||
)
|
||||
{
|
||||
tmp<Field<Type>> tranf = reuseTmp<Type, Type>::New(ttf);
|
||||
tmp<Field<Type>> tranf = New(ttf);
|
||||
transform(tranf.ref(), ttrf(), ttf());
|
||||
reuseTmp<Type, Type>::clear(ttf);
|
||||
ttf.clear();
|
||||
ttrf.clear();
|
||||
return tranf;
|
||||
}
|
||||
@ -143,9 +143,9 @@ tmp<Field<Type>> transform
|
||||
const tmp<Field<Type>>& ttf
|
||||
)
|
||||
{
|
||||
tmp<Field<Type>> tranf = reuseTmp<Type, Type>::New(ttf);
|
||||
tmp<Field<Type>> tranf = New(ttf);
|
||||
transform(tranf.ref(), t, ttf());
|
||||
reuseTmp<Type, Type>::clear(ttf);
|
||||
ttf.clear();
|
||||
return tranf;
|
||||
}
|
||||
|
||||
|
||||
@ -290,17 +290,14 @@ Foam::MRFZoneList::relative
|
||||
{
|
||||
if (size())
|
||||
{
|
||||
tmp<Field<scalar>> rphi
|
||||
(
|
||||
reuseTmp<scalar, scalar>::New(tphi, true)
|
||||
);
|
||||
tmp<Field<scalar>> rphi(New(tphi, true));
|
||||
|
||||
forAll(*this, i)
|
||||
{
|
||||
operator[](i).makeRelative(rphi.ref(), patchi);
|
||||
}
|
||||
|
||||
reuseTmp<scalar, scalar>::clear(tphi);
|
||||
tphi.clear();
|
||||
|
||||
return rphi;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user