diff --git a/src/OpenFOAM/memory/autoPtr/autoPtr.H b/src/OpenFOAM/memory/autoPtr/autoPtr.H index a8802f23a9..00b8ed7809 100644 --- a/src/OpenFOAM/memory/autoPtr/autoPtr.H +++ b/src/OpenFOAM/memory/autoPtr/autoPtr.H @@ -106,11 +106,19 @@ public: // Access - //- Return reference, without checking pointer validity. - inline T& refOrNull(); + //- Return the pointer, without nullptr checking. + // Pointer remains under autoPtr management. + inline T* rawPtr(); - //- Return const reference, without checking pointer validity. - inline const T& refOrNull() const; + //- Const access to the pointer, without nullptr checking. + // Pointer remains under autoPtr management. + inline const T* rawPtr() const; + + //- Return the reference, without nullptr checking. + inline T& rawRef(); + + //- Return the const reference, without nullptr checking. + inline const T& rawRef() const; // Member operators diff --git a/src/OpenFOAM/memory/autoPtr/autoPtrI.H b/src/OpenFOAM/memory/autoPtr/autoPtrI.H index 7440bdce69..c1e6b14464 100644 --- a/src/OpenFOAM/memory/autoPtr/autoPtrI.H +++ b/src/OpenFOAM/memory/autoPtr/autoPtrI.H @@ -130,14 +130,28 @@ inline void Foam::autoPtr::clear() template -inline T& Foam::autoPtr::refOrNull() +inline T* Foam::autoPtr::rawPtr() +{ + return ptr_; +} + + +template +inline const T* Foam::autoPtr::rawPtr() const +{ + return ptr_; +} + + +template +inline T& Foam::autoPtr::rawRef() { return *ptr_; } template -inline const T& Foam::autoPtr::refOrNull() const +inline const T& Foam::autoPtr::rawRef() const { return *ptr_; } diff --git a/src/finiteVolume/fvMesh/wallDist/wallDist/wallDist.C b/src/finiteVolume/fvMesh/wallDist/wallDist/wallDist.C index ae5be722b1..d13c2bed1a 100644 --- a/src/finiteVolume/fvMesh/wallDist/wallDist/wallDist.C +++ b/src/finiteVolume/fvMesh/wallDist/wallDist/wallDist.C @@ -3,7 +3,7 @@ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | \\ / A nd | Copyright (C) 2015-2016 OpenFOAM Foundation - \\/ M anipulation | + \\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -98,7 +98,13 @@ Foam::wallDist::wallDist(const fvMesh& mesh, const word& patchTypeName) static_cast(mesh).subDict(patchTypeName_ & "Dist") .lookupOrDefault("nRequired", false) ), - n_(volVectorField::null()) + n_(volVectorField::null()), + updateInterval_ + ( + static_cast(mesh).subDict(patchTypeName_ & "Dist") + .lookupOrDefault