From 05692bab9b971b2bdbc7a7938ca25b345ceb27f0 Mon Sep 17 00:00:00 2001 From: mark <mark@opencfd> Date: Wed, 25 Jan 2017 11:51:14 +0100 Subject: [PATCH] DEFEATURE: remove writers for OpenDX format (issue #294) - last OpenDX release/news was from 2007. Cannot maintain or verify if the writers are correct. --- src/sampling/Make/files | 1 - .../writers/dx/dxSurfaceWriter.C | 234 ---------------- .../writers/dx/dxSurfaceWriter.H | 175 ------------ .../writers/dx/dxSurfaceWriterTemplates.C | 80 ------ src/triSurface/Make/files | 1 - .../triSurface/interfaces/DX/writeDX.C | 257 ------------------ src/triSurface/triSurface/triSurface.C | 6 +- src/triSurface/triSurface/triSurface.H | 5 - 8 files changed, 1 insertion(+), 758 deletions(-) delete mode 100644 src/sampling/sampledSurface/writers/dx/dxSurfaceWriter.C delete mode 100644 src/sampling/sampledSurface/writers/dx/dxSurfaceWriter.H delete mode 100644 src/sampling/sampledSurface/writers/dx/dxSurfaceWriterTemplates.C delete mode 100644 src/triSurface/triSurface/interfaces/DX/writeDX.C diff --git a/src/sampling/Make/files b/src/sampling/Make/files index 8dbf6e9394..01cce60496 100644 --- a/src/sampling/Make/files +++ b/src/sampling/Make/files @@ -48,7 +48,6 @@ sampledSurface/thresholdCellFaces/sampledThresholdCellFaces.C surfWriters = sampledSurface/writers $(surfWriters)/surfaceWriter.C -$(surfWriters)/dx/dxSurfaceWriter.C $(surfWriters)/ensight/ensightSurfaceWriter.C $(surfWriters)/foam/foamSurfaceWriter.C $(surfWriters)/nastran/nastranSurfaceWriter.C diff --git a/src/sampling/sampledSurface/writers/dx/dxSurfaceWriter.C b/src/sampling/sampledSurface/writers/dx/dxSurfaceWriter.C deleted file mode 100644 index 6f06073257..0000000000 --- a/src/sampling/sampledSurface/writers/dx/dxSurfaceWriter.C +++ /dev/null @@ -1,234 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation - \\/ M anipulation | Copyright (C) 2015-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 <http://www.gnu.org/licenses/>. - -\*---------------------------------------------------------------------------*/ - -#include "dxSurfaceWriter.H" -#include "makeSurfaceWriterMethods.H" - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -namespace Foam -{ - makeSurfaceWriterType(dxSurfaceWriter); -} - - -// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // - -void Foam::dxSurfaceWriter::writeGeometry -( - Ostream& os, - const meshedSurf& surf -) -{ - const pointField& points = surf.points(); - const faceList& faces = surf.faces(); - - // Write vertex coordinates - - os << "# The irregular positions" << nl - << "object 1 class array type float rank 1 shape 3 items " - << points.size() << " data follows" << nl; - - forAll(points, pointi) - { - const point& pt = points[pointi]; - - os << float(pt.x()) << ' ' << float(pt.y()) << ' ' << float(pt.z()) - << nl; - } - os << nl; - - // Write triangles - os << "# The irregular connections (triangles)" << nl - << "object 2 class array type int rank 1 shape 3 items " - << faces.size() << " data follows" << nl; - - forAll(faces, facei) - { - const face& f = faces[facei]; - - if (f.size() != 3) - { - FatalErrorInFunction - << "Face " << facei << " vertices " << f - << " is not a triangle." - << exit(FatalError); - } - - os << f[0] << ' ' << f[1] << ' ' << f[2] << nl; - } - os << "attribute \"element type\" string \"triangles\"" << nl - << "attribute \"ref\" string \"positions\"" << nl << nl; -} - - -void Foam::dxSurfaceWriter::writeTrailer(Ostream& os, const bool isNodeValues) -{ - if (isNodeValues) - { - os << nl << "attribute \"dep\" string \"positions\"" - << nl << nl; - } - else - { - os << nl << "attribute \"dep\" string \"connections\"" - << nl << nl; - } - - os << "# the field, with three components: \"positions\"," - << " \"connections\", and \"data\"" << nl - << "object \"irregular positions irregular " - << "connections\" class field" - << nl - << "component \"positions\" value 1" << nl - << "component \"connections\" value 2" << nl - << "component \"data\" value 3" << nl; - - os << "end" << endl; -} - - -namespace Foam -{ - template<> - void Foam::dxSurfaceWriter::writeData - ( - Ostream& os, - const Field<scalar>& values - ) - { - os << "object 3 class array type float rank 0 items " - << values.size() << " data follows" << nl; - - forAll(values, elemI) - { - os << float(values[elemI]) << nl; - } - } - - - template<> - void Foam::dxSurfaceWriter::writeData - ( - Ostream& os, - const Field<vector>& values - ) - { - os << "object 3 class array type float rank 1 shape 3 items " - << values.size() << " data follows" << nl; - - forAll(values, elemI) - { - os << float(values[elemI].x()) << ' ' - << float(values[elemI].y()) << ' ' - << float(values[elemI].z()) << nl; - } - } - - - template<> - void Foam::dxSurfaceWriter::writeData - ( - Ostream& os, - const Field<sphericalTensor>& values - ) - { - os << "object 3 class array type float rank 0 items " - << values.size() << " data follows" << nl; - - forAll(values, elemI) - { - os << float(values[elemI][0]) << nl; - } - } - - - template<> - void Foam::dxSurfaceWriter::writeData - ( - Ostream& os, - const Field<symmTensor>& values - ) - { - os << "object 3 class array type float rank 2 shape 3 items " - << values.size() << " data follows" << nl; - - forAll(values, elemI) - { - const symmTensor& t = values[elemI]; - - os << float(t.xx()) << ' ' << float(t.xy()) << ' ' << float(t.xz()) - << float(t.xy()) << ' ' << float(t.yy()) << ' ' << float(t.yz()) - << float(t.xz()) << ' ' << float(t.yz()) << ' ' << float(t.zz()) - << nl; - } - } - - - // Write Field<tensor> in DX format - template<> - inline void Foam::dxSurfaceWriter::writeData - ( - Ostream& os, - const Field<tensor>& values - ) - { - os << "object 3 class array type float rank 2 shape 3 items " - << values.size() << " data follows" << nl; - - forAll(values, elemI) - { - const tensor& t = values[elemI]; - - os << float(t.xx()) << ' ' << float(t.xy()) << ' ' << float(t.xz()) - << float(t.yx()) << ' ' << float(t.yy()) << ' ' << float(t.yz()) - << float(t.zx()) << ' ' << float(t.zy()) << ' ' << float(t.zz()) - << nl; - } - } -} - - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -Foam::dxSurfaceWriter::dxSurfaceWriter() -: - surfaceWriter() -{} - - -// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // - -Foam::dxSurfaceWriter::~dxSurfaceWriter() -{} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -// create write methods -defineSurfaceWriterWriteFields(Foam::dxSurfaceWriter); - - -// ************************************************************************* // diff --git a/src/sampling/sampledSurface/writers/dx/dxSurfaceWriter.H b/src/sampling/sampledSurface/writers/dx/dxSurfaceWriter.H deleted file mode 100644 index 8a169d3beb..0000000000 --- a/src/sampling/sampledSurface/writers/dx/dxSurfaceWriter.H +++ /dev/null @@ -1,175 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation - \\/ M anipulation | Copyright (C) 2015-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 <http://www.gnu.org/licenses/>. - -Class - Foam::dxSurfaceWriter - -Description - A surfaceWriter for OpenDX format. - -SourceFiles - dxSurfaceWriter.C - -\*---------------------------------------------------------------------------*/ - -#ifndef dxSurfaceWriter_H -#define dxSurfaceWriter_H - -#include "surfaceWriter.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - -/*---------------------------------------------------------------------------*\ - Class dxSurfaceWriter Declaration -\*---------------------------------------------------------------------------*/ - -class dxSurfaceWriter -: - public surfaceWriter -{ - - // Private Member Functions - - static void writeGeometry(Ostream&, const meshedSurf&); - static void writeTrailer(Ostream&, const bool isNodeValues); - - template<class Type> - static void writeData(Ostream&, const Field<Type>&); - - //- Templated write operation - template<class Type> - fileName writeTemplate - ( - const fileName& outputDir, - const fileName& surfaceName, - const meshedSurf& surf, - const word& fieldName, - const Field<Type>& values, - const bool isNodeValues, - const bool verbose - ) const; - - -public: - - //- Runtime type information - TypeName("dx"); - - - // Constructors - - //- Construct null - dxSurfaceWriter(); - - - //- Destructor - virtual ~dxSurfaceWriter(); - - - // Member Functions - - //- Write scalarField for a single surface to file. - // One value per face or vertex (isNodeValues = true) - virtual fileName write - ( - const fileName& outputDir, // <case>/surface/TIME - const fileName& surfaceName, // name of surface - const meshedSurf& surf, - const word& fieldName, // name of field - const Field<scalar>& values, - const bool isNodeValues, - const bool verbose = false - ) const; // override - - //- Write vectorField for a single surface to file. - // One value per face or vertex (isNodeValues = true) - virtual fileName write - ( - const fileName& outputDir, // <case>/surface/TIME - const fileName& surfaceName, // name of surface - const meshedSurf& surf, - const word& fieldName, // name of field - const Field<vector>& values, - const bool isNodeValues, - const bool verbose = false - ) const; // override - - //- Write sphericalTensorField for a single surface to file. - // One value per face or vertex (isNodeValues = true) - virtual fileName write - ( - const fileName& outputDir, // <case>/surface/TIME - const fileName& surfaceName, // name of surface - const meshedSurf& surf, - const word& fieldName, // name of field - const Field<sphericalTensor>& values, - const bool isNodeValues, - const bool verbose = false - ) const; // override - - //- Write symmTensorField for a single surface to file. - // One value per face or vertex (isNodeValues = true) - virtual fileName write - ( - const fileName& outputDir, // <case>/surface/TIME - const fileName& surfaceName, // name of surface - const meshedSurf& surf, - const word& fieldName, // name of field - const Field<symmTensor>& values, - const bool isNodeValues, - const bool verbose = false - ) const; // override - - //- Write tensorField for a single surface to file. - // One value per face or vertex (isNodeValues = true) - virtual fileName write - ( - const fileName& outputDir, // <case>/surface/TIME - const fileName& surfaceName, // name of surface - const meshedSurf& surf, - const word& fieldName, // name of field - const Field<tensor>& values, - const bool isNodeValues, - const bool verbose = false - ) const; // override -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#ifdef NoRepository - #include "dxSurfaceWriterTemplates.C" -#endif - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/src/sampling/sampledSurface/writers/dx/dxSurfaceWriterTemplates.C b/src/sampling/sampledSurface/writers/dx/dxSurfaceWriterTemplates.C deleted file mode 100644 index f9bb67c99a..0000000000 --- a/src/sampling/sampledSurface/writers/dx/dxSurfaceWriterTemplates.C +++ /dev/null @@ -1,80 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation - \\/ M anipulation | Copyright (C) 2015-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 <http://www.gnu.org/licenses/>. - -\*---------------------------------------------------------------------------*/ - -#include "OFstream.H" -#include "OSspecific.H" - -// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // - -template<class Type> -inline void Foam::dxSurfaceWriter::writeData -( - Ostream& os, - const Field<Type>& values -) -{ - os << "object 3 class array type float rank 0 items " - << values.size() << " data follows" << nl; - - forAll(values, elemI) - { - os << float(0.0) << nl; - } -} - - -template<class Type> -Foam::fileName Foam::dxSurfaceWriter::writeTemplate -( - const fileName& outputDir, - const fileName& surfaceName, - const meshedSurf& surf, - const word& fieldName, - const Field<Type>& values, - const bool isNodeValues, - const bool verbose -) const -{ - if (!isDir(outputDir)) - { - mkDir(outputDir); - } - - OFstream os(outputDir/fieldName + '_' + surfaceName + ".dx"); - - if (verbose) - { - Info<< "Writing field " << fieldName << " to " << os.name() << endl; - } - - writeGeometry(os, surf); - writeData(os, values); - writeTrailer(os, isNodeValues); - - return os.name(); -} - - -// ************************************************************************* // diff --git a/src/triSurface/Make/files b/src/triSurface/Make/files index fab067d63e..337ccbac83 100644 --- a/src/triSurface/Make/files +++ b/src/triSurface/Make/files @@ -16,7 +16,6 @@ $(interfaces)/OFF/readOFF.C $(interfaces)/OFF/writeOFF.C $(interfaces)/TRI/writeTRI.C $(interfaces)/TRI/readTRI.C -$(interfaces)/DX/writeDX.C $(interfaces)/AC3D/readAC.C $(interfaces)/AC3D/writeAC.C $(interfaces)/VTK/readVTK.C diff --git a/src/triSurface/triSurface/interfaces/DX/writeDX.C b/src/triSurface/triSurface/interfaces/DX/writeDX.C deleted file mode 100644 index 9e28c0f5cb..0000000000 --- a/src/triSurface/triSurface/interfaces/DX/writeDX.C +++ /dev/null @@ -1,257 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation - \\/ M anipulation | -------------------------------------------------------------------------------- -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 <http://www.gnu.org/licenses/>. - -Description - OpenDX format. Both data-only and scalar/vector data. - -\*---------------------------------------------------------------------------*/ - -#include "triSurface.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -// Geometry (positions + connections) -// writeSorted: sort acc. to patch -void triSurface::writeDXGeometry -( - const bool writeSorted, - Ostream& os -) const -{ - labelList faceMap; - surfacePatchList patches(calcPatches(faceMap)); - - // Print patch names as comment - os << "# Patches:" << endl; - forAll(patches, patchi) - { - os << "# " << patchi << " " - << patches[patchi].name() << endl; - } - os << nl << endl; - - // Write vertex coordinates - - os << "# The irregular positions" << endl - << "object 1 class array type float rank 1 shape 3 items " - << nPoints() << " data follows" << endl; - forAll(localPoints(), pointi) - { - const point& pt = localPoints()[pointi]; - os << pt.x() << ' ' << pt.y() << ' ' << pt.z() << endl; - } - os << endl; - - os << "# The irregular connections (triangles)" << endl - << "object 2 class array type int rank 1 shape 3 items " - << size() << " data follows" << endl; - - if (writeSorted) - { - label faceIndex = 0; - - forAll(patches, patchi) - { - // Print all faces belonging to this patch - - for - ( - label patchFacei = 0; - patchFacei < patches[patchi].size(); - patchFacei++ - ) - { - const label facei = faceMap[faceIndex++]; - const labelledTri& f = localFaces()[facei]; - - os << f[0] << ' ' << f[1] << ' ' << f[2] << endl; - } - } - } - else - { - forAll(*this, facei) - { - const labelledTri& f = localFaces()[facei]; - - os << f[0] << ' ' << f[1] << ' ' << f[2] << endl; - } - } - os << "attribute \"element type\" string \"triangles\"" << endl - << "attribute \"ref\" string \"positions\"" << endl << endl; -} - - -// Standard trailer -void triSurface::writeDXTrailer(Ostream& os) const -{ - os << "# the field, with three components: \"positions\", \"connections\"" - << ", and \"data\"" << endl - << "object \"irregular positions irregular connections\" class field" - << endl - << "component \"positions\" value 1" << endl - << "component \"connections\" value 2" << endl - << "component \"data\" value 3" << endl; -} - - -// Geometry only (data field is either faceIndex or patchIndex) -void triSurface::writeDX(const bool writeSorted, Ostream& os) const -{ - writeDXGeometry(writeSorted, os); - - os << "object 3 class array type float rank 0 items " << size() - << " data follows" << endl; - if (writeSorted) - { - // Write patch number as data - - labelList faceMap; - surfacePatchList patches(calcPatches(faceMap)); - - forAll(patches, patchi) - { - forAll(patches[patchi], patchFacei) - { - os << patchi << endl; - } - } - } - else - { - // Write face number as data - - forAll(*this, facei) - { - os << facei << endl; - } - } - - os << endl << "attribute \"dep\" string \"connections\"" << endl << endl; - - writeDXTrailer(os); - - os << "end" << endl; -} - - -// Geometry + scalar data -void triSurface::writeDX(const scalarField& field, Ostream& os) const -{ - writeDXGeometry(false, os); - - if (field.size() == size()) - { - // Connections dependent data - os << "object 3 class array type float rank 0 items " << field.size() - << " data follows" << endl; - forAll(field, facei) - { - os << field[facei] << endl; - } - os << endl - << "attribute \"dep\" string \"connections\"" << endl << endl; - } - else if (field.size() == nPoints()) - { - // Positions dependent data - os << "object 3 class array type float rank 0 items " << field.size() - << " data follows" << endl; - forAll(field, pointi) - { - os << field[pointi] << endl; - } - os << endl - << "attribute \"dep\" string \"positions\"" << endl << endl; - } - else - { - FatalErrorInFunction - << "Illegal field size " << field.size() << " is not equal " - << " to number of faces " << size() << " or to number " - << " of points " << nPoints() << exit(FatalError); - } - - writeDXTrailer(os); - - os << "end" << endl; -} - - -// Geometry + vector data -void triSurface::writeDX(const vectorField& field, Ostream& os) const -{ - writeDXGeometry(false, os); - - if (field.size() == size()) - { - // Connections dependent data - os << "object 3 class array type float rank 1 shape 3 items " - << field.size() << " data follows" << endl; - forAll(field, facei) - { - os << field[facei].x() << ' ' - << field[facei].y() << ' ' - << field[facei].z() << endl; - } - os << endl - << "attribute \"dep\" string \"connections\"" << endl << endl; - } - else if (field.size() == nPoints()) - { - // Positions dependent data - os << "object 3 class array type float rank 1 shape 3 items " - << field.size() << " data follows" << endl; - forAll(field, pointi) - { - os << field[pointi].x() << ' ' - << field[pointi].y() << ' ' - << field[pointi].z() << endl; - } - os << endl - << "attribute \"dep\" string \"positions\"" << endl << endl; - } - else - { - FatalErrorInFunction - << "Illegal field size " << field.size() << " is not equal " - << " to number of faces " << size() << " or to number " - << " of points " << nPoints() << exit(FatalError); - } - - writeDXTrailer(os); - - os << "end" << endl; -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// ************************************************************************* // diff --git a/src/triSurface/triSurface/triSurface.C b/src/triSurface/triSurface/triSurface.C index 6bc2e9d64b..a5478fcf3e 100644 --- a/src/triSurface/triSurface/triSurface.C +++ b/src/triSurface/triSurface/triSurface.C @@ -464,10 +464,6 @@ void Foam::triSurface::write { writeTRI(sort, OFstream(name)()); } - else if (ext == "dx") - { - writeDX(sort, OFstream(name)()); - } else if (ext == "ac") { writeAC(OFstream(name)()); @@ -483,7 +479,7 @@ void Foam::triSurface::write << " for file " << name << ". Supported extensions are '.ftr', '.stl', '.stlb', " << "'.gts', '.obj', '.vtk'" - << ", '.off', '.dx', '.smesh', '.ac' and '.tri'" + << ", '.off', '.smesh', '.ac' and '.tri'" << exit(FatalError); } } diff --git a/src/triSurface/triSurface/triSurface.H b/src/triSurface/triSurface/triSurface.H index ccf47c713e..4c05e8d1a8 100644 --- a/src/triSurface/triSurface/triSurface.H +++ b/src/triSurface/triSurface/triSurface.H @@ -178,11 +178,6 @@ class triSurface //- Write to Ostream in AC3D format. Always sorted by patch. void writeAC(Ostream&) const; - //- For DX writing. - void writeDX(const bool, Ostream&) const; - void writeDXGeometry(const bool, Ostream&) const; - void writeDXTrailer(Ostream&) const; - // Static private functions -- GitLab