diff --git a/applications/utilities/mesh/manipulation/subsetMesh/subsetMesh.C b/applications/utilities/mesh/manipulation/subsetMesh/subsetMesh.C index c7ad881527ae51d82f42eedbe579412fc80abd7e..63d91ac1788608a0e09c3813511dd664e3579d75 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(); }