functionObjects/fvTools/calcFvcGrad: Avoid clash with cached gradient field

Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1828
This commit is contained in:
Henry Weller
2015-08-18 12:13:09 +01:00
parent 3ce1bdb63d
commit 47185ee830

View File

@ -2,7 +2,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) 2012-2013 OpenFOAM Foundation \\ / A nd | Copyright (C) 2012-2015 OpenFOAM Foundation
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
@ -26,6 +26,8 @@ License
#include "fvMesh.H" #include "fvMesh.H"
#include "fvcGrad.H" #include "fvcGrad.H"
// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * //
template<class Type> template<class Type>
Foam::GeometricField Foam::GeometricField
< <
@ -35,6 +37,8 @@ Foam::GeometricField
>& >&
Foam::calcFvcGrad::gradField(const word& gradName, const dimensionSet& dims) Foam::calcFvcGrad::gradField(const word& gradName, const dimensionSet& dims)
{ {
Info<< "gradField" << endl;
typedef typename outerProduct<vector, Type>::type gradType; typedef typename outerProduct<vector, Type>::type gradType;
typedef GeometricField<gradType, fvPatchField, volMesh> vfGradType; typedef GeometricField<gradType, fvPatchField, volMesh> vfGradType;
@ -73,8 +77,6 @@ Foam::calcFvcGrad::gradField(const word& gradName, const dimensionSet& dims)
} }
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
template<class Type> template<class Type>
void Foam::calcFvcGrad::calcGrad void Foam::calcFvcGrad::calcGrad
( (
@ -98,7 +100,8 @@ void Foam::calcFvcGrad::calcGrad
vfGradType& field = gradField<Type>(resultName, vf.dimensions()); vfGradType& field = gradField<Type>(resultName, vf.dimensions());
field = fvc::grad(vf); // De-reference the tmp to avoid a clash with the cached grad field
field = fvc::grad(vf)();
processed = true; processed = true;
} }
@ -108,7 +111,8 @@ void Foam::calcFvcGrad::calcGrad
vfGradType& field = gradField<Type>(resultName, sf.dimensions()); vfGradType& field = gradField<Type>(resultName, sf.dimensions());
field = fvc::grad(sf); // De-reference the tmp to avoid a clash with the cached grad field
field = fvc::grad(sf)();
processed = true; processed = true;
} }