diff --git a/applications/utilities/postProcessing/dataConversion/foamToEnsight/Make/files b/applications/utilities/postProcessing/dataConversion/foamToEnsight/Make/files index 44c513a079..421e8392b8 100644 --- a/applications/utilities/postProcessing/dataConversion/foamToEnsight/Make/files +++ b/applications/utilities/postProcessing/dataConversion/foamToEnsight/Make/files @@ -1,6 +1,5 @@ -itoa.C ensightMesh.C -ensightParticlePositions.C +ensightCloud.C foamToEnsight.C EXE = $(FOAM_APPBIN)/foamToEnsight diff --git a/applications/utilities/postProcessing/dataConversion/foamToEnsight/Make/options b/applications/utilities/postProcessing/dataConversion/foamToEnsight/Make/options index c818403451..1424ecc536 100644 --- a/applications/utilities/postProcessing/dataConversion/foamToEnsight/Make/options +++ b/applications/utilities/postProcessing/dataConversion/foamToEnsight/Make/options @@ -5,7 +5,8 @@ EXE_INC = \ -I$(LIB_SRC)/dynamicMesh/lnInclude \ -I$(LIB_SRC)/fileFormats/lnInclude \ -I$(LIB_SRC)/sampling/lnInclude \ - -I$(LIB_SRC)/lagrangian/basic/lnInclude + -I$(LIB_SRC)/lagrangian/basic/lnInclude \ + -I$(LIB_SRC)/conversion/lnInclude EXE_LIBS = \ -lfiniteVolume \ @@ -13,5 +14,5 @@ EXE_LIBS = \ -lfileFormats \ -lsampling \ -lgenericPatchFields \ - -llagrangian - + -llagrangian \ + -lconversion diff --git a/applications/utilities/postProcessing/dataConversion/foamToEnsight/checkData.H b/applications/utilities/postProcessing/dataConversion/foamToEnsight/checkData.H index 47a3540da7..dcc3ddd4ea 100644 --- a/applications/utilities/postProcessing/dataConversion/foamToEnsight/checkData.H +++ b/applications/utilities/postProcessing/dataConversion/foamToEnsight/checkData.H @@ -1,7 +1,7 @@ // ignore special fields or fields that we don't handle // bool variableGood = true; -for (label n1=0; n1 2 && fieldName(fieldName.size() - 2, 2) == "_0") @@ -13,7 +13,7 @@ for (label n1=0; n1(false); diff --git a/applications/utilities/postProcessing/dataConversion/foamToEnsight/checkMeshMoving.H b/applications/utilities/postProcessing/dataConversion/foamToEnsight/checkMeshMoving.H index d4027ad1c5..a1b23a53a9 100644 --- a/applications/utilities/postProcessing/dataConversion/foamToEnsight/checkMeshMoving.H +++ b/applications/utilities/postProcessing/dataConversion/foamToEnsight/checkMeshMoving.H @@ -1,25 +1,25 @@ // check for "points" in any of the result directories bool meshMoving = false; -if (Times.size() > 1) +if (timeDirs.size() > 1) { // We already loaded a mesh (usually from constant). See if any other // points files - forAll(Times, timeI) + forAll(timeDirs, timeI) { - if (Times[timeI].name() != mesh.pointsInstance()) + if (timeDirs[timeI].name() != mesh.pointsInstance()) { - IOobject io + meshMoving = IOobject ( "points", - Times[timeI].name(), + timeDirs[timeI].name(), polyMesh::meshSubDir, mesh, IOobject::NO_READ - ); - if (io.typeHeaderOk(true)) + ).typeHeaderOk(true); + + if (meshMoving) { - meshMoving = true; break; } } diff --git a/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightAsciiStream.H b/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightAsciiStream.H index 68eb88e158..ceccc987ae 100644 --- a/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightAsciiStream.H +++ b/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightAsciiStream.H @@ -3,7 +3,7 @@ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation - \\/ M anipulation | + \\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -52,17 +52,17 @@ class ensightAsciiStream { // Private data - //- Description of data_ + //- Output file stream OFstream str_; // Private Member Functions //- Disallow default bitwise copy construct - ensightAsciiStream(const ensightAsciiStream&); + ensightAsciiStream(const ensightAsciiStream&) = delete; //- Disallow default bitwise assignment - void operator=(const ensightAsciiStream&); + void operator=(const ensightAsciiStream&) = delete; public: @@ -70,14 +70,14 @@ public: // Constructors //- Construct from components - ensightAsciiStream(const fileName& f, const Time& runTime) + ensightAsciiStream(const fileName& f) : ensightStream(f), str_ ( f, - runTime.writeFormat(), - runTime.writeVersion(), + IOstream::ASCII, + IOstream::currentVersion, IOstream::UNCOMPRESSED ) { @@ -139,14 +139,6 @@ public: << setw(10) << partI << nl; } - // Member Operators - - // Friend Functions - - // Friend Operators - - // IOstream Operators - }; diff --git a/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightBinaryStream.H b/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightBinaryStream.H index d343567722..d1c3d6e3b3 100644 --- a/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightBinaryStream.H +++ b/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightBinaryStream.H @@ -51,17 +51,17 @@ class ensightBinaryStream { // Private data - //- Description of data_ + //- Output file stream autoPtr str_; // Private Member Functions //- Disallow default bitwise copy construct - ensightBinaryStream(const ensightBinaryStream&); + ensightBinaryStream(const ensightBinaryStream&) = delete; //- Disallow default bitwise assignment - void operator=(const ensightBinaryStream&); + void operator=(const ensightBinaryStream&) = delete; public: @@ -69,7 +69,7 @@ public: // Constructors //- Construct from components - ensightBinaryStream(const fileName& f, const Time&) + ensightBinaryStream(const fileName& f) : ensightStream(f), str_ @@ -90,11 +90,6 @@ public: // Member Functions - virtual bool ascii() const - { - return false; - } - virtual void write(const char* val) { char buffer[80]; @@ -141,14 +136,6 @@ public: write(partI); } - // Member Operators - - // Friend Functions - - // Friend Operators - - // IOstream Operators - }; diff --git a/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightCaseTail.H b/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightCaseTail.H index 6ec8373fcf..5a18a953c7 100644 --- a/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightCaseTail.H +++ b/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightCaseTail.H @@ -1,5 +1,8 @@ if (Pstream::master()) { + ensightCaseFile.setf(ios_base::scientific, ios_base::floatfield); + ensightCaseFile.precision(5); + ensightCaseFile << nl << "TIME" << nl << "time set: " << 1 << nl << "number of steps: " << nTimeSteps << nl @@ -8,20 +11,17 @@ if (Pstream::master()) ensightCaseFile << "time values:" << nl; - ensightCaseFile.setf(ios_base::scientific, ios_base::floatfield); - ensightCaseFile.precision(5); - label count = 0; scalar Tcorr = 0.0; - if (Times[0].value() < 0) + if (timeDirs[0].value() < 0) { - Tcorr = - Times[0].value(); + Tcorr = -timeDirs[0].value(); Info<< "Correcting time values. Adding " << Tcorr << endl; } - forAll(Times, n) + forAll(timeDirs, n) { - ensightCaseFile << setw(12) << Times[n].value() + Tcorr << " "; + ensightCaseFile << setw(12) << timeDirs[n].value() + Tcorr << " "; if (++count % 6 == 0) { diff --git a/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightCloud.C b/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightCloud.C new file mode 100644 index 0000000000..08779ff0a8 --- /dev/null +++ b/applications/utilities/postProcessing/dataConversion/foamToEnsight/ensightCloud.C @@ -0,0 +1,180 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation + \\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd. +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see . + +\*---------------------------------------------------------------------------*/ + +#include "ensightCloud.H" +#include "ensightFile.H" +#include "fvMesh.H" +#include "passiveParticle.H" +#include "Cloud.H" +#include "pointList.H" + +// * * * * * * * * * * * * * * * Global Functions * * * * * * * * * * * * * // + +void Foam::ensightParticlePositions +( + const fvMesh& mesh, + const fileName& dataDir, + const label timeIndex, + const word& cloudName, + const bool dataExists, + IOstream::streamFormat format +) +{ + if (dataExists) + { + Info<< " positions"; + } + else + { + Info<< " positions{0}"; + } + + // Total number of parcels on all processes + label nTotParcels = 0; + autoPtr> cloudPtr; + + if (dataExists) + { + cloudPtr.reset(new Cloud(mesh, cloudName, false)); + nTotParcels = cloudPtr().size(); + } + reduce(nTotParcels, sumOp