diff --git a/src/meshTools/coordSet/writers/ensight/ensightCoordSetWriterCollated.C b/src/meshTools/coordSet/writers/ensight/ensightCoordSetWriterCollated.C index 3a0cafb27f7633b892d616842047ba9605947cd0..759544e15a618f3a3323422fde44876fbb808671 100644 --- a/src/meshTools/coordSet/writers/ensight/ensightCoordSetWriterCollated.C +++ b/src/meshTools/coordSet/writers/ensight/ensightCoordSetWriterCollated.C @@ -122,7 +122,53 @@ Foam::fileName Foam::coordSetWriters::ensightWriter::writeCollated ); - // Do case file + // Location for data (and possibly the geometry as well) + fileName dataDir = baseDir/"data"/word::printf(fmt, timeIndex); + + // As per mkdir -p "data/00000000" + mkDir(dataDir); + + + const fileName geomFile(baseDir/geometryName); + + if (!exists(geomFile)) + { + if (verbose_) + { + Info<< "Writing geometry to " << geomFile.name() << endl; + } + + // Two-argument form for path-name to avoid validating base-dir + ensightGeoFile osGeom + ( + geomFile.path(), + geomFile.name(), + writeFormat_ + ); + + writeGeometry(osGeom, elemOutput); + } + + + // Write field + ensightFile osField + ( + dataDir, + varName, + writeFormat_ + ); + + if (verbose_) + { + Info<< "Writing field file to " << osField.name() << endl; + } + + + // Write field (serial only) + writeTrackField<Type>(osField, fieldPtrs); + + + // Update case file if (stateChanged) { OFstream osCase(outputFile, IOstream::ASCII); @@ -216,53 +262,6 @@ Foam::fileName Foam::coordSetWriters::ensightWriter::writeCollated osCase << "# end" << nl; } - - // Location for data (and possibly the geometry as well) - fileName dataDir = baseDir/"data"/word::printf(fmt, timeIndex); - - // As per mkdir -p "data/00000000" - mkDir(dataDir); - - - const fileName geomFile(baseDir/geometryName); - - if (!exists(geomFile)) - { - if (verbose_) - { - Info<< "Writing geometry to " << geomFile.name() << endl; - } - - // Two-argument form for path-name to avoid validating base-dir - ensightGeoFile osGeom - ( - geomFile.path(), - geomFile.name(), - writeFormat_ - ); - - writeGeometry(osGeom, elemOutput); - } - - - // Write field - ensightFile osField - ( - dataDir, - varName, - writeFormat_ - ); - - if (verbose_) - { - Info<< "Writing field file to " << osField.name() << endl; - } - - - // Write field (serial only) - writeTrackField<Type>(osField, fieldPtrs); - - // Timestamp in the directory for future reference { OFstream timeStamp(dataDir/"time"); diff --git a/src/meshTools/coordSet/writers/ensight/ensightCoordSetWriterUncollated.C b/src/meshTools/coordSet/writers/ensight/ensightCoordSetWriterUncollated.C index f0f89997ede57796e69be72d4ab8f89966c2b3b0..4849dc1ff9f9bc4da0e576be2232e2fe3b49c370 100644 --- a/src/meshTools/coordSet/writers/ensight/ensightCoordSetWriterUncollated.C +++ b/src/meshTools/coordSet/writers/ensight/ensightCoordSetWriterUncollated.C @@ -97,13 +97,6 @@ Foam::fileName Foam::coordSetWriters::ensightWriter::writeUncollated mkDir(outputFile.path()); } - OFstream osCase(outputFile, IOstream::ASCII); - - // Format options - osCase.setf(ios_base::left); - osCase.setf(ios_base::scientific, ios_base::floatfield); - osCase.precision(5); - // Two-argument form for path-name to avoid validating base-dir ensightGeoFile osGeom ( @@ -118,36 +111,46 @@ Foam::fileName Foam::coordSetWriters::ensightWriter::writeUncollated writeFormat_ ); - osCase - << "FORMAT" << nl - << "type: ensight gold" << nl - << nl - << "GEOMETRY" << nl - << "model: 1 " << osGeom.name().name() << nl - << nl - << "VARIABLE" << nl - << ensightPTraits<Type>::typeName - << - ( - true // this->isPointData() - ? " per node: 1 " // time-set 1 - : " per element: 1 " // time-set 1 - ) - << setw(15) << varName << ' ' - << baseName.c_str() << ".********." << varName << nl; - - osCase - << nl - << "TIME" << nl; - - ensightCase::printTimeset(osCase, 1, timeValue); - osCase << "# end" << nl; - - writeGeometry(osGeom, elemOutput); // Write field (serial only) writeTrackField<Type>(osField, fieldPtrs); + + + // Update case file + { + OFstream osCase(outputFile, IOstream::ASCII); + + // Format options + osCase.setf(ios_base::left); + osCase.setf(ios_base::scientific, ios_base::floatfield); + osCase.precision(5); + + osCase + << "FORMAT" << nl + << "type: ensight gold" << nl + << nl + << "GEOMETRY" << nl + << "model: 1 " << osGeom.name().name() << nl + << nl + << "VARIABLE" << nl + << ensightPTraits<Type>::typeName + << + ( + true // this->isPointData() + ? " per node: 1 " // time-set 1 + : " per element: 1 " // time-set 1 + ) + << setw(15) << varName << ' ' + << baseName.c_str() << ".********." << varName << nl; + + osCase + << nl + << "TIME" << nl; + + ensightCase::printTimeset(osCase, 1, timeValue); + osCase << "# end" << nl; + } } wroteGeom_ = true; diff --git a/src/surfMesh/writers/ensight/ensightSurfaceWriterCollated.C b/src/surfMesh/writers/ensight/ensightSurfaceWriterCollated.C index 511df9159a8106f7ef124139fa4bd5a4c6b6ddef..18da18709658b30d575ce31ee1c1334cf6d85031 100644 --- a/src/surfMesh/writers/ensight/ensightSurfaceWriterCollated.C +++ b/src/surfMesh/writers/ensight/ensightSurfaceWriterCollated.C @@ -129,7 +129,59 @@ Foam::fileName Foam::surfaceWriters::ensightWriter::writeCollated ); - // Do case file + // Location for data (and possibly the geometry as well) + fileName dataDir = baseDir/"data"/word::printf(fmt, timeIndex); + + // As per mkdir -p "data/00000000" + mkDir(dataDir); + + + const fileName geomFile(baseDir/geometryName); + + // Ensight Geometry + ensightOutputSurface part + ( + surf.points(), + surf.faces(), + geomFile.name() + ); + + if (!exists(geomFile)) + { + if (verbose_) + { + Info<< "Writing geometry to " << geomFile.name() << endl; + } + + // Two-argument form for path-name to avoid validating base-dir + ensightGeoFile osGeom + ( + geomFile.path(), + geomFile.name(), + writeFormat_ + ); + part.write(osGeom); // serial + } + + // Write field + ensightFile osField + ( + dataDir, + varName, + writeFormat_ + ); + + if (verbose_) + { + Info<< "Writing field file to " << osField.name() << endl; + } + + // Write field (serial only) + osField.writeKeyword(ensightPTraits<Type>::typeName); + part.writeData(osField, tfield(), this->isPointData()); + + + // Update case file if (stateChanged) { OFstream osCase(outputFile, IOstream::ASCII); @@ -223,58 +275,6 @@ Foam::fileName Foam::surfaceWriters::ensightWriter::writeCollated osCase << "# end" << nl; } - - // Location for data (and possibly the geometry as well) - fileName dataDir = baseDir/"data"/word::printf(fmt, timeIndex); - - // As per mkdir -p "data/00000000" - mkDir(dataDir); - - - const fileName geomFile(baseDir/geometryName); - - // Ensight Geometry - ensightOutputSurface part - ( - surf.points(), - surf.faces(), - geomFile.name() - ); - - if (!exists(geomFile)) - { - if (verbose_) - { - Info<< "Writing geometry to " << geomFile.name() << endl; - } - - // Two-argument form for path-name to avoid validating base-dir - ensightGeoFile osGeom - ( - geomFile.path(), - geomFile.name(), - writeFormat_ - ); - part.write(osGeom); // serial - } - - // Write field - ensightFile osField - ( - dataDir, - varName, - writeFormat_ - ); - - if (verbose_) - { - Info<< "Writing field file to " << osField.name() << endl; - } - - // Write field (serial only) - osField.writeKeyword(ensightPTraits<Type>::typeName); - part.writeData(osField, tfield(), this->isPointData()); - // Timestamp in the directory for future reference { OFstream timeStamp(dataDir/"time"); diff --git a/src/surfMesh/writers/ensight/ensightSurfaceWriterUncollated.C b/src/surfMesh/writers/ensight/ensightSurfaceWriterUncollated.C index fde360edc0c1ccc465464547c6d62df689cedac4..9d73cc06f79043774040e734b0091ed816e700d4 100644 --- a/src/surfMesh/writers/ensight/ensightSurfaceWriterUncollated.C +++ b/src/surfMesh/writers/ensight/ensightSurfaceWriterUncollated.C @@ -69,7 +69,6 @@ Foam::fileName Foam::surfaceWriters::ensightWriter::writeUncollated() mkDir(outputDir); } - OFstream osCase(outputFile); ensightGeoFile osGeom ( outputDir, @@ -77,6 +76,16 @@ Foam::fileName Foam::surfaceWriters::ensightWriter::writeUncollated() writeFormat_ ); + ensightOutputSurface part + ( + surf.points(), + surf.faces(), + osGeom.name().name() + ); + part.write(osGeom); // serial + + // Update case file + OFstream osCase(outputFile); osCase << "FORMAT" << nl << "type: ensight gold" << nl @@ -87,14 +96,6 @@ Foam::fileName Foam::surfaceWriters::ensightWriter::writeUncollated() << "TIME" << nl; ensightCase::printTimeset(osCase, 1, scalar(0)); - - ensightOutputSurface part - ( - surf.points(), - surf.faces(), - osGeom.name().name() - ); - part.write(osGeom); // serial } wroteGeom_ = true; @@ -170,13 +171,6 @@ Foam::fileName Foam::surfaceWriters::ensightWriter::writeUncollated mkDir(outputFile.path()); } - OFstream osCase(outputFile, IOstream::ASCII); - - // Format options - osCase.setf(ios_base::left); - osCase.setf(ios_base::scientific, ios_base::floatfield); - osCase.precision(5); - // Two-argument form for path-name to avoid validating base-dir ensightGeoFile osGeom ( @@ -191,32 +185,6 @@ Foam::fileName Foam::surfaceWriters::ensightWriter::writeUncollated writeFormat_ ); - osCase - << "FORMAT" << nl - << "type: ensight gold" << nl - << nl - << "GEOMETRY" << nl - << "model: 1 " << osGeom.name().name() << nl - << nl - << "VARIABLE" << nl - << ensightPTraits<Type>::typeName - << - ( - this->isPointData() - ? " per node: 1 " // time-set 1 - : " per element: 1 " // time-set 1 - ) - << setw(15) << varName << ' ' - << baseName.c_str() << ".********." << varName << nl; - - osCase - << nl - << "TIME" << nl; - - ensightCase::printTimeset(osCase, 1, timeValue); - osCase << "# end" << nl; - - // Ensight Geometry ensightOutputSurface part ( @@ -229,6 +197,42 @@ Foam::fileName Foam::surfaceWriters::ensightWriter::writeUncollated // Write field (serial) osField.writeKeyword(ensightPTraits<Type>::typeName); part.writeData(osField, tfield(), this->isPointData()); + + + // Update case file + { + OFstream osCase(outputFile, IOstream::ASCII); + + // Format options + osCase.setf(ios_base::left); + osCase.setf(ios_base::scientific, ios_base::floatfield); + osCase.precision(5); + + osCase + << "FORMAT" << nl + << "type: ensight gold" << nl + << nl + << "GEOMETRY" << nl + << "model: 1 " << osGeom.name().name() << nl + << nl + << "VARIABLE" << nl + << ensightPTraits<Type>::typeName + << + ( + this->isPointData() + ? " per node: 1 " // time-set 1 + : " per element: 1 " // time-set 1 + ) + << setw(15) << varName << ' ' + << baseName.c_str() << ".********." << varName << nl; + + osCase + << nl + << "TIME" << nl; + + ensightCase::printTimeset(osCase, 1, timeValue); + osCase << "# end" << nl; + } } wroteGeom_ = true;