From f6673d4bb54243cd7126c245791b156bfc8f4f6f Mon Sep 17 00:00:00 2001
From: mattijs <mattijs>
Date: Wed, 11 Sep 2013 12:57:42 +0100
Subject: [PATCH] BUG: subsetMesh: consistent instance setting

---
 .../mesh/manipulation/subsetMesh/subsetMesh.C | 41 ++++++++-----------
 1 file changed, 18 insertions(+), 23 deletions(-)

diff --git a/applications/utilities/mesh/manipulation/subsetMesh/subsetMesh.C b/applications/utilities/mesh/manipulation/subsetMesh/subsetMesh.C
index c7ad881527a..63d91ac1788 100644
--- a/applications/utilities/mesh/manipulation/subsetMesh/subsetMesh.C
+++ b/applications/utilities/mesh/manipulation/subsetMesh/subsetMesh.C
@@ -186,10 +186,20 @@ int main(int argc, char *argv[])
 
     const word setName = args[1];
 
-    word resultInstance = mesh.pointsInstance();
-    const bool specifiedInstance =
-        args.optionFound("overwrite")
-     || args.optionReadIfPresent("resultTime", resultInstance);
+    word meshInstance = mesh.pointsInstance();
+    word fieldsInstance = runTime.timeName();
+
+    const bool overwrite = args.optionFound("overwrite");
+    const bool specifiedInstance = args.optionReadIfPresent
+    (
+        "resultTime",
+        fieldsInstance
+    );
+    if (specifiedInstance)
+    {
+        // Set both mesh and field to this time
+        meshInstance = fieldsInstance;
+    }
 
 
     Info<< "Reading cell set from " << setName << endl << endl;
@@ -355,14 +365,14 @@ int main(int argc, char *argv[])
     // Write mesh and fields to new time
     // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
-    if (!specifiedInstance)
+    if (overwrite || specifiedInstance)
     {
-        runTime++;
+        runTime.setTime(instant(fieldsInstance), 0);
+        subsetter.subMesh().setInstance(meshInstance);
     }
     else
     {
-        runTime.setTime(instant(resultInstance), 0);
-        subsetter.subMesh().setInstance(runTime.timeName());
+        runTime++;
     }
 
     Info<< "Writing subsetted mesh and fields to time " << runTime.timeName()
@@ -374,31 +384,26 @@ int main(int argc, char *argv[])
     forAll(scalarFlds, i)
     {
         scalarFlds[i].rename(scalarNames[i]);
-
         scalarFlds[i].write();
     }
     forAll(vectorFlds, i)
     {
         vectorFlds[i].rename(vectorNames[i]);
-
         vectorFlds[i].write();
     }
     forAll(sphericalTensorFlds, i)
     {
         sphericalTensorFlds[i].rename(sphericalTensorNames[i]);
-
         sphericalTensorFlds[i].write();
     }
     forAll(symmTensorFlds, i)
     {
         symmTensorFlds[i].rename(symmTensorNames[i]);
-
         symmTensorFlds[i].write();
     }
     forAll(tensorFlds, i)
     {
         tensorFlds[i].rename(tensorNames[i]);
-
         tensorFlds[i].write();
     }
 
@@ -406,31 +411,26 @@ int main(int argc, char *argv[])
     forAll(surfScalarFlds, i)
     {
         surfScalarFlds[i].rename(surfScalarNames[i]);
-
         surfScalarFlds[i].write();
     }
     forAll(surfVectorFlds, i)
     {
         surfVectorFlds[i].rename(surfVectorNames[i]);
-
         surfVectorFlds[i].write();
     }
     forAll(surfSphericalTensorFlds, i)
     {
         surfSphericalTensorFlds[i].rename(surfSphericalTensorNames[i]);
-
         surfSphericalTensorFlds[i].write();
     }
     forAll(surfSymmTensorFlds, i)
     {
         surfSymmTensorFlds[i].rename(surfSymmTensorNames[i]);
-
         surfSymmTensorFlds[i].write();
     }
     forAll(surfTensorNames, i)
     {
         surfTensorFlds[i].rename(surfTensorNames[i]);
-
         surfTensorFlds[i].write();
     }
 
@@ -438,31 +438,26 @@ int main(int argc, char *argv[])
     forAll(pointScalarFlds, i)
     {
         pointScalarFlds[i].rename(pointScalarNames[i]);
-
         pointScalarFlds[i].write();
     }
     forAll(pointVectorFlds, i)
     {
         pointVectorFlds[i].rename(pointVectorNames[i]);
-
         pointVectorFlds[i].write();
     }
     forAll(pointSphericalTensorFlds, i)
     {
         pointSphericalTensorFlds[i].rename(pointSphericalTensorNames[i]);
-
         pointSphericalTensorFlds[i].write();
     }
     forAll(pointSymmTensorFlds, i)
     {
         pointSymmTensorFlds[i].rename(pointSymmTensorNames[i]);
-
         pointSymmTensorFlds[i].write();
     }
     forAll(pointTensorNames, i)
     {
         pointTensorFlds[i].rename(pointTensorNames[i]);
-
         pointTensorFlds[i].write();
     }
 
-- 
GitLab