diff --git a/src/postProcessing/functionObjects/utilities/DESModelRegions/DESModelRegions.C b/src/postProcessing/functionObjects/utilities/DESModelRegions/DESModelRegions.C
index 9ba1319e222cdd567de073ad3a8c84e4eacbb9d1..3303b90b567470560e9c2f2eddcd2f414c8d1ff6 100644
--- a/src/postProcessing/functionObjects/utilities/DESModelRegions/DESModelRegions.C
+++ b/src/postProcessing/functionObjects/utilities/DESModelRegions/DESModelRegions.C
@@ -81,6 +81,30 @@ Foam::DESModelRegions::DESModelRegions
             << endl;
     }
 
+    if (active_)
+    {
+        const fvMesh& mesh = refCast<const fvMesh>(obr_);
+
+        volScalarField* DESModelRegionsPtr
+        (
+            new volScalarField
+            (
+                IOobject
+                (
+                    type(),
+                    mesh.time().timeName(),
+                    mesh,
+                    IOobject::NO_READ,
+                    IOobject::NO_WRITE
+                ),
+                mesh,
+                dimensionedScalar("0", dimless, 0.0)
+            )
+        );
+
+        mesh.objectRegistry::store(DESModelRegionsPtr);
+    }
+
     read(dict);
 }
 
@@ -139,7 +163,12 @@ void Foam::DESModelRegions::write()
             Info<< type() << " " << name_ << " output:" << nl;
         }
 
-        tmp<volScalarField> tresult;
+        volScalarField& DESModelRegions =
+            const_cast<volScalarField&>
+            (
+                mesh.lookupObject<volScalarField>(type())
+            );
+
 
         label DESpresent = false;
         if (mesh.foundObject<icoModel>("turbulenceModel"))
@@ -151,7 +180,7 @@ void Foam::DESModelRegions::write()
             {
                 const icoDESModel& des =
                     dynamic_cast<const icoDESModel&>(model);
-                tresult = des.LESRegion();
+                DESModelRegions == des.LESRegion();
                 DESpresent = true;
             }
         }
@@ -164,17 +193,16 @@ void Foam::DESModelRegions::write()
             {
                 const cmpDESModel& des =
                     dynamic_cast<const cmpDESModel&>(model);
-                tresult = des.LESRegion();
+                DESModelRegions == des.LESRegion();
                 DESpresent = true;
             }
         }
 
         if (DESpresent)
         {
-            const volScalarField& result = tresult();
-
             scalar prc =
-                gSum(result.internalField()*mesh.V())/gSum(mesh.V())*100.0;
+                gSum(DESModelRegions.internalField()*mesh.V())
+               /gSum(mesh.V())*100.0;
 
             if (Pstream::master())
             {
@@ -186,11 +214,11 @@ void Foam::DESModelRegions::write()
             {
                 Info<< "    LES = " << prc << " % (volume)" << nl
                     << "    RAS = " << 100.0 - prc << " % (volume)" << nl
-                    << "    writing field " << result.name() << nl
+                    << "    writing field " << DESModelRegions.name() << nl
                     << endl;
             }
 
-            result.write();
+            DESModelRegions.write();
         }
         else
         {