diff --git a/src/conversion/Make/files b/src/conversion/Make/files index 563d177682..7c5a0aa91c 100644 --- a/src/conversion/Make/files +++ b/src/conversion/Make/files @@ -4,7 +4,6 @@ ensight/part/ensightPart.C ensight/part/ensightPartIO.C ensight/part/ensightPartCells.C ensight/part/ensightPartFaces.C -ensight/part/ensightPartNonMeshFaces.C ensight/part/ensightParts.C meshTables/boundaryRegion.C diff --git a/src/conversion/ensight/file/ensightFile.C b/src/conversion/ensight/file/ensightFile.C index e5f1b18f9c..23ae7a1e37 100644 --- a/src/conversion/ensight/file/ensightFile.C +++ b/src/conversion/ensight/file/ensightFile.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd. + \\ / A nd | Copyright (C) 2008-2011 OpenCFD Ltd. \\/ M anipulation | ------------------------------------------------------------------------------- License diff --git a/src/conversion/ensight/file/ensightFile.H b/src/conversion/ensight/file/ensightFile.H index 46e10ce61f..59b28ebb9e 100644 --- a/src/conversion/ensight/file/ensightFile.H +++ b/src/conversion/ensight/file/ensightFile.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd. + \\ / A nd | Copyright (C) 2008-2011 OpenCFD Ltd. \\/ M anipulation | ------------------------------------------------------------------------------- License diff --git a/src/conversion/ensight/file/ensightGeoFile.C b/src/conversion/ensight/file/ensightGeoFile.C index f7a7adceb8..dffcd07891 100644 --- a/src/conversion/ensight/file/ensightGeoFile.C +++ b/src/conversion/ensight/file/ensightGeoFile.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd. + \\ / A nd | Copyright (C) 2008-2011 OpenCFD Ltd. \\/ M anipulation | ------------------------------------------------------------------------------- License diff --git a/src/conversion/ensight/file/ensightGeoFile.H b/src/conversion/ensight/file/ensightGeoFile.H index 7b59b111a9..eae4a0b4d5 100644 --- a/src/conversion/ensight/file/ensightGeoFile.H +++ b/src/conversion/ensight/file/ensightGeoFile.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd. + \\ / A nd | Copyright (C) 2008-2011 OpenCFD Ltd. \\/ M anipulation | ------------------------------------------------------------------------------- License diff --git a/src/conversion/ensight/part/ensightPart.C b/src/conversion/ensight/part/ensightPart.C index 4c071a4220..d87eb239bb 100644 --- a/src/conversion/ensight/part/ensightPart.C +++ b/src/conversion/ensight/part/ensightPart.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd. + \\ / A nd | Copyright (C) 2008-2011 OpenCFD Ltd. \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -24,21 +24,22 @@ License \*----------------------------------------------------------------------------*/ #include "ensightPart.H" -#include "addToRunTimeSelectionTable.H" #include "dictionary.H" #include "ListOps.H" +#include "addToRunTimeSelectionTable.H" // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // namespace Foam { - defineTypeNameAndDebug(ensightPart, 0); - defineTemplateTypeNameAndDebug(IOPtrList, 0); - defineRunTimeSelectionTable(ensightPart, istream); + defineTypeNameAndDebug(ensightPart, 0); + defineTemplateTypeNameAndDebug(IOPtrList, 0); + defineRunTimeSelectionTable(ensightPart, istream); } -Foam::List Foam::ensightPart::elemTypes_(0); +const Foam::List Foam::ensightPart::elemTypes_(0); -// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // + +// * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * // bool Foam::ensightPart::isFieldDefined(const List& field) const { @@ -72,7 +73,7 @@ Foam::ensightPart::ensightPart size_(0), isCellData_(true), matId_(0), - meshPtr_(0) + points_(pointField::null()) {} @@ -89,7 +90,7 @@ Foam::ensightPart::ensightPart size_(0), isCellData_(true), matId_(0), - meshPtr_(0) + points_(pointField::null()) {} @@ -97,7 +98,7 @@ Foam::ensightPart::ensightPart ( label partNumber, const string& partDescription, - const polyMesh& pMesh + const pointField& points ) : number_(partNumber), @@ -107,7 +108,7 @@ Foam::ensightPart::ensightPart size_(0), isCellData_(true), matId_(0), - meshPtr_(&pMesh) + points_(points) {} @@ -120,7 +121,7 @@ Foam::ensightPart::ensightPart(const ensightPart& part) size_(part.size_), isCellData_(part.isCellData_), matId_(part.matId_), - meshPtr_(part.meshPtr_) + points_(part.points_) {} @@ -158,31 +159,7 @@ Foam::ensightPart::~ensightPart() // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // -void Foam::ensightPart::reconstruct(Istream& is) -{ - dictionary dict(is); - dict.lookup("id") >> number_; - dict.lookup("name") >> name_; - dict.readIfPresent("offset", offset_); - - // populate elemLists_ - elemLists_.setSize(elementTypes().size()); - - forAll(elementTypes(), elemI) - { - word key(elementTypes()[elemI]); - - elemLists_[elemI].clear(); - dict.readIfPresent(key, elemLists_[elemI]); - - size_ += elemLists_[elemI].size(); - } - - is.check("ensightPart::reconstruct(Istream&)"); -} - - -void Foam::ensightPart::renumber(labelList const& origId) +void Foam::ensightPart::renumber(const labelList& origId) { // transform to global values first if (offset_) diff --git a/src/conversion/ensight/part/ensightPart.H b/src/conversion/ensight/part/ensightPart.H index b335ef8632..b2074f55b9 100644 --- a/src/conversion/ensight/part/ensightPart.H +++ b/src/conversion/ensight/part/ensightPart.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd. + \\ / A nd | Copyright (C) 2008-2011 OpenCFD Ltd. \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -30,7 +30,7 @@ Description SourceFiles ensightPart.C ensightPartIO.C - ensightPartI.H + ensightPartTemplates.C \*---------------------------------------------------------------------------*/ @@ -52,7 +52,7 @@ namespace Foam { /*---------------------------------------------------------------------------*\ - Class ensightPart Declaration + Class ensightPart Declaration \*---------------------------------------------------------------------------*/ class ensightPart @@ -60,7 +60,7 @@ class ensightPart // Private data // Static data members - static List elemTypes_; + static const List elemTypes_; protected: @@ -88,8 +88,8 @@ protected: //- material id (numeric) label matId_; - //- mesh reference used - const polyMesh* meshPtr_; + //- pointField referenced + const pointField& points_; // Protected Classes @@ -104,25 +104,27 @@ protected: //- map global to local indices labelList list; - // null constructor + //- null constructor localPoints() : nPoints(0), list(0) {} - // construct for mesh points - localPoints(const polyMesh& pMesh) + //- construct for mesh points + localPoints(const pointField& pts) : nPoints(0), - list(pMesh.points().size(), -1) + list(pts.size(), -1) {} }; // Protected Member Functions - //- reconstruct contents from Istream + //- Reconstruct part characteristics (eg, element types) from Istream + // A part reconstructed in this manner can be used when writing fields, + // but cannot be used to write a new geometry void reconstruct(Istream&); //- check for fully defined fields @@ -170,12 +172,12 @@ public: //- Construct empty part with number and description ensightPart(label partNumber, const string& partDescription); - //- Construct empty part with number and description + //- Construct part with number, description and points reference ensightPart ( label partNumber, const string& partDescription, - const polyMesh& pMesh + const pointField& points ); //- Construct as copy @@ -202,8 +204,9 @@ public: return autoPtr(new ensightPart(*this)); }; - //- Construct on freestore from Istream - static autoPtr New(Istream& is); + //- Reconstruct part characteristics on freestore from Istream + // @sa reconstruct + static autoPtr New(Istream&); //- Destructor @@ -212,7 +215,7 @@ public: // Static members - virtual List const& elementTypes() const + virtual const List& elementTypes() const { return elemTypes_; } @@ -256,12 +259,13 @@ public: return matId_; } - //- non-const access + //- non-const access to part name or description void name(const string& value) { name_ = value; } + //- non-const access to material id void materialId(const label value) { matId_ = value; @@ -283,7 +287,7 @@ public: // Edit //- renumber elements - void renumber(labelList const&); + void renumber(const labelList&); //- write summary information about the object bool writeSummary(Ostream&) const; @@ -296,7 +300,7 @@ public: {} //- Helper: write geometry given the pointField - void writeGeometry(ensightGeoFile&, const pointField& points) const; + void writeGeometry(ensightGeoFile&, const pointField&) const; //- write scalar field void writeScalarField @@ -316,7 +320,7 @@ public: //- write generalized field components - template + template void writeField ( ensightFile&, @@ -339,11 +343,8 @@ public: friend Ostream& operator<<(Ostream&, const ensightPart&); //- write geometry - friend ensightGeoFile& operator<< - ( - ensightGeoFile&, - const ensightPart& - ); + friend ensightGeoFile& operator<<(ensightGeoFile&, const ensightPart&); + }; @@ -354,7 +355,7 @@ public: // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // #ifdef NoRepository -# include "ensightPartI.H" +# include "ensightPartTemplates.C" #endif // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/src/conversion/ensight/part/ensightPartCells.C b/src/conversion/ensight/part/ensightPartCells.C index d00e9b6f4b..8bd8465c41 100644 --- a/src/conversion/ensight/part/ensightPartCells.C +++ b/src/conversion/ensight/part/ensightPartCells.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd. + \\ / A nd | Copyright (C) 2008-2011 OpenCFD Ltd. \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -24,22 +24,21 @@ License \*----------------------------------------------------------------------------*/ #include "ensightPartCells.H" -#include "addToRunTimeSelectionTable.H" #include "IOstream.H" #include "IStringStream.H" #include "dictionary.H" #include "cellModeller.H" - +#include "addToRunTimeSelectionTable.H" // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // namespace Foam { - defineTypeNameAndDebug(ensightPartCells, 0); - addToRunTimeSelectionTable(ensightPart, ensightPartCells, istream); + defineTypeNameAndDebug(ensightPartCells, 0); + addToRunTimeSelectionTable(ensightPart, ensightPartCells, istream); } -Foam::List Foam::ensightPartCells::elemTypes_ +const Foam::List Foam::ensightPartCells::elemTypes_ ( IStringStream ( @@ -50,7 +49,11 @@ Foam::List Foam::ensightPartCells::elemTypes_ // * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // -void Foam::ensightPartCells::classify(const labelList& idList) +void Foam::ensightPartCells::classify +( + const polyMesh& mesh, + const labelList& idList +) { // References to cell shape models const cellModel& tet = *(cellModeller::lookup("tet")); @@ -58,7 +61,6 @@ void Foam::ensightPartCells::classify(const labelList& idList) const cellModel& prism = *(cellModeller::lookup("prism")); const cellModel& hex = *(cellModeller::lookup("hex")); - const polyMesh& mesh = *meshPtr_; const cellShapeList& cellShapes = mesh.cellShapes(); offset_ = 0; @@ -78,13 +80,6 @@ void Foam::ensightPartCells::classify(const labelList& idList) label nHex = 0; label nPoly = 0; - - // TODO: allow tet-decomposition of polyhedral cells -#if 0 - label nTetDecomp = 0; - label nPyrDecomp = 0; -#endif - for (label listI = 0; listI < size_; ++listI) { label cellId = listI; @@ -115,26 +110,6 @@ void Foam::ensightPartCells::classify(const labelList& idList) else { nPoly++; - - // TODO: allow tet-decomposition of polyhedral cells -#if 0 - const cell& cFaces = mesh.cells()[cellI]; - - forAll(cFaces, cFaceI) - { - const face& f = mesh.faces()[cFaces[cFaceI]]; - - label nQuads = 0; - label nTris = 0; - f.nTrianglesQuads(mesh.points(), nTris, nQuads); - - nTetDecomp += nTris; - nPyrDecomp += nQuads; - } - - nAddCells--; - nAddPoints++; -#endif } } @@ -183,29 +158,6 @@ void Foam::ensightPartCells::classify(const labelList& idList) else { polyCells[nPoly++] = cellId; - - // TODO: allow tet-decomposition of polyhedral cells -#if 0 - // Mapping from additional point to cell - addPointCellLabels_[api] = cellId; - - const cell& cFaces = mesh.cells()[cellId]; - - forAll(cFaces, cFaceI) - { - const face& f = mesh.faces()[cFaces[cFaceI]]; - - label nQuads = 0; - label nTris = 0; - f.nTrianglesQuads(mesh.points(), nTris, nQuads); - - nTetDecomp += nTris; - nPyrDecomp += nQuads; - } - - nAddCells--; - nAddPoints++; -#endif } } @@ -213,11 +165,11 @@ void Foam::ensightPartCells::classify(const labelList& idList) // MUST match with elementTypes elemLists_.setSize(elementTypes().size()); - elemLists_[tetra4Elements].transfer( tetCells ); - elemLists_[pyramid5Elements].transfer( pyramidCells ); - elemLists_[penta6Elements].transfer( prismCells ); - elemLists_[hexa8Elements].transfer( hexCells ); - elemLists_[nfacedElements].transfer( polyCells ); + elemLists_[tetra4Elements].transfer(tetCells); + elemLists_[pyramid5Elements].transfer(pyramidCells); + elemLists_[penta6Elements].transfer(prismCells); + elemLists_[hexa8Elements].transfer(hexCells); + elemLists_[nfacedElements].transfer(polyCells); } @@ -229,57 +181,63 @@ Foam::ensightPartCells::ensightPartCells const string& partDescription ) : - ensightPart(partNumber, partDescription) + ensightPart(partNumber, partDescription), + mesh_(*reinterpret_cast(0)) {} Foam::ensightPartCells::ensightPartCells ( label partNumber, - const polyMesh& pMesh + const polyMesh& mesh ) : - ensightPart(partNumber, "cells", pMesh) + ensightPart(partNumber, "cells", mesh.points()), + mesh_(mesh) { - classify(); + classify(mesh); } Foam::ensightPartCells::ensightPartCells ( label partNumber, - const polyMesh& pMesh, + const polyMesh& mesh, const labelList& idList ) : - ensightPart(partNumber, "cells", pMesh) + ensightPart(partNumber, "cells", mesh.points()), + mesh_(mesh) { - classify(idList); + classify(mesh, idList); } Foam::ensightPartCells::ensightPartCells ( label partNumber, - const polyMesh& pMesh, + const polyMesh& mesh, const cellZone& cZone ) : - ensightPart(partNumber, cZone.name(), pMesh) + ensightPart(partNumber, cZone.name(), mesh.points()), + mesh_(mesh) { - classify(cZone); + classify(mesh, cZone); } Foam::ensightPartCells::ensightPartCells(const ensightPartCells& part) : - ensightPart(part) + ensightPart(part), + mesh_(part.mesh_) {} Foam::ensightPartCells::ensightPartCells(Istream& is) : - ensightPart() + ensightPart(), + mesh_(*reinterpret_cast(0)) { reconstruct(is); } @@ -295,9 +253,7 @@ Foam::ensightPartCells::~ensightPartCells() Foam::ensightPart::localPoints Foam::ensightPartCells::calcLocalPoints() const { - const polyMesh& mesh = *meshPtr_; - - localPoints ptList(mesh); + localPoints ptList(points_); labelList& usedPoints = ptList.list; label nPoints = 0; @@ -309,11 +265,11 @@ Foam::ensightPart::localPoints Foam::ensightPartCells::calcLocalPoints() const forAll(idList, i) { label id = idList[i] + offset_; - const labelList& cFaces = mesh.cells()[id]; + const labelList& cFaces = mesh_.cells()[id]; forAll(cFaces, cFaceI) { - const face& f = mesh.faces()[cFaces[cFaceI]]; + const face& f = mesh_.faces()[cFaces[cFaceI]]; forAll(f, fp) { @@ -353,20 +309,18 @@ void Foam::ensightPartCells::writeConnectivity os.write(idList.size()); os.newline(); - const polyMesh& mesh = *meshPtr_; - // write polyhedral if (key == "nfaced") { - const faceList& meshFaces = mesh.faces(); + const faceList& meshFaces = mesh_.faces(); // write the number of faces per element forAll(idList, i) { label id = idList[i] + offset_; - const labelList& cFace = mesh.cells()[id]; + const labelList& cFace = mesh_.cells()[id]; - os.write( cFace.size() ); + os.write(cFace.size()); os.newline(); } @@ -374,13 +328,13 @@ void Foam::ensightPartCells::writeConnectivity forAll(idList, i) { label id = idList[i] + offset_; - const labelList& cFace = mesh.cells()[id]; + const labelList& cFace = mesh_.cells()[id]; forAll(cFace, faceI) { const face& cf = meshFaces[cFace[faceI]]; - os.write( cf.size() ); + os.write(cf.size()); os.newline(); } } @@ -389,7 +343,7 @@ void Foam::ensightPartCells::writeConnectivity forAll(idList, i) { label id = idList[i] + offset_; - const labelList& cFace = mesh.cells()[id]; + const labelList& cFace = mesh_.cells()[id]; forAll(cFace, faceI) { @@ -399,7 +353,7 @@ void Foam::ensightPartCells::writeConnectivity { // convert global -> local index // (note: Ensight indices start with 1) - os.write( pointMap[cf[ptI]] + 1); + os.write(pointMap[cf[ptI]] + 1); } os.newline(); } @@ -408,7 +362,7 @@ void Foam::ensightPartCells::writeConnectivity else { // write primitive - const cellShapeList& cellShapes = mesh.cellShapes(); + const cellShapeList& cellShapes = mesh_.cellShapes(); forAll(idList, i) { @@ -419,7 +373,7 @@ void Foam::ensightPartCells::writeConnectivity // (note: Ensight indices start with 1) forAll(cellPoints, ptI) { - os.write( pointMap[cellPoints[ptI]] + 1 ); + os.write(pointMap[cellPoints[ptI]] + 1); } os.newline(); } @@ -429,8 +383,7 @@ void Foam::ensightPartCells::writeConnectivity void Foam::ensightPartCells::writeGeometry(ensightGeoFile& os) const { - const polyMesh& mesh = *meshPtr_; - ensightPart::writeGeometry(os, mesh.points()); + ensightPart::writeGeometry(os, points_); } diff --git a/src/conversion/ensight/part/ensightPartCells.H b/src/conversion/ensight/part/ensightPartCells.H index 82b0f80d89..bf6bf951a7 100644 --- a/src/conversion/ensight/part/ensightPartCells.H +++ b/src/conversion/ensight/part/ensightPartCells.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd. + \\ / A nd | Copyright (C) 2008-2011 OpenCFD Ltd. \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -56,8 +56,12 @@ class ensightPartCells //- Disallow default bitwise assignment void operator=(const ensightPartCells&); - //- classify the cell types - void classify(const labelList& idLabels = labelList::null()); + //- Classify the cell types, set elemLists. + void classify + ( + const polyMesh&, + const labelList& idLabels = labelList::null() + ); //- track points used virtual localPoints calcLocalPoints() const; @@ -74,24 +78,29 @@ class ensightPartCells const labelList& pointMap ) const; - //- write geometry - virtual void writeGeometry(ensightGeoFile& os) const; - protected: - //- addressable Ensight element types - enum elemType - { - tetra4Elements, - pyramid5Elements, - penta6Elements, - hexa8Elements, - nfacedElements - }; + //- addressable ensight element types + enum elemType + { + tetra4Elements, + pyramid5Elements, + penta6Elements, + hexa8Elements, + nfacedElements + }; + // Static data members - static List elemTypes_; + + static const List elemTypes_; + + + // Protected data + + //- mesh referenced + const polyMesh& mesh_; public: @@ -126,10 +135,13 @@ public: //- Construct as copy ensightPartCells(const ensightPartCells&); - //- Construct from Istream + //- Reconstruct part characteristics (eg, element types) from Istream + // A part reconstructed in this manner can be used when writing fields, + // but cannot be used to write a new geometry + // @sa Foam::ensightPart::reconstruct ensightPartCells(Istream&); - //- Construct on freestore from Istream + //- Reconstruct part characteristics on freestore from Istream static autoPtr New(Istream& is) { return autoPtr(new ensightPartCells(is)); @@ -142,8 +154,11 @@ public: // Member Functions + //- write geometry + virtual void writeGeometry(ensightGeoFile&) const; + //- static listing of the element types - virtual List const& elementTypes() const + virtual const List& elementTypes() const { return elemTypes_; } diff --git a/src/conversion/ensight/part/ensightPartFaces.C b/src/conversion/ensight/part/ensightPartFaces.C index 46169cd90f..250be573c6 100644 --- a/src/conversion/ensight/part/ensightPartFaces.C +++ b/src/conversion/ensight/part/ensightPartFaces.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd. + \\ / A nd | Copyright (C) 2008-2011 OpenCFD Ltd. \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -24,21 +24,21 @@ License \*----------------------------------------------------------------------------*/ #include "ensightPartFaces.H" -#include "addToRunTimeSelectionTable.H" #include "IOstreams.H" #include "IStringStream.H" #include "dictionary.H" +#include "addToRunTimeSelectionTable.H" // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // namespace Foam { - defineTypeNameAndDebug(ensightPartFaces, 0); - addToRunTimeSelectionTable(ensightPart, ensightPartFaces, istream); + defineTypeNameAndDebug(ensightPartFaces, 0); + addToRunTimeSelectionTable(ensightPart, ensightPartFaces, istream); } -Foam::List Foam::ensightPartFaces::elemTypes_ +const Foam::List Foam::ensightPartFaces::elemTypes_ ( IStringStream ( @@ -49,7 +49,7 @@ Foam::List Foam::ensightPartFaces::elemTypes_ // * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * // -void Foam::ensightPartFaces::binShapes(const faceList& faces) +void Foam::ensightPartFaces::classify(const faceList& faces) { // count the shapes label nTri = 0; @@ -107,9 +107,9 @@ void Foam::ensightPartFaces::binShapes(const faceList& faces) // MUST match with elementTypes elemLists_.setSize(elementTypes().size()); - elemLists_[tria3Elements].transfer( triCells ); - elemLists_[quad4Elements].transfer( quadCells ); - elemLists_[nsidedElements].transfer( polygonCells ); + elemLists_[tria3Elements].transfer(triCells); + elemLists_[quad4Elements].transfer(quadCells); + elemLists_[nsidedElements].transfer(polygonCells); size_ = faces.size(); } @@ -123,7 +123,9 @@ Foam::ensightPartFaces::ensightPartFaces const string& partDescription ) : - ensightPart(partNumber, partDescription) + ensightPart(partNumber, partDescription), + faces_(faceList::null()), + contiguousPoints_(false) { isCellData_ = false; offset_ = 0; @@ -134,29 +136,57 @@ Foam::ensightPartFaces::ensightPartFaces Foam::ensightPartFaces::ensightPartFaces ( label partNumber, - const polyMesh& pMesh, - const polyPatch& pPatch + const string& partDescription, + const pointField& points, + const faceList& faces, + const bool contiguousPoints ) : - ensightPart(partNumber, pPatch.name(), pMesh) + ensightPart(partNumber, partDescription, points), + faces_(faces), + contiguousPoints_(contiguousPoints) { isCellData_ = false; - offset_ = pPatch.start(); + offset_ = 0; + size_ = 0; - // count the shapes - binShapes(pPatch); + // classify the face shapes + classify(faces); +} + + +Foam::ensightPartFaces::ensightPartFaces +( + label partNumber, + const polyMesh& mesh, + const polyPatch& patch +) +: + ensightPart(partNumber, patch.name(), mesh.points()), + faces_(mesh.faces()), + contiguousPoints_(false) +{ + isCellData_ = false; + offset_ = patch.start(); + + // classify the face shapes + classify(patch); } Foam::ensightPartFaces::ensightPartFaces(const ensightPartFaces& part) : - ensightPart(part) + ensightPart(part), + faces_(part.faces_), + contiguousPoints_(part.contiguousPoints_) {} Foam::ensightPartFaces::ensightPartFaces(Istream& is) : - ensightPart() + ensightPart(), + faces_(faceList::null()), + contiguousPoints_(false) { isCellData_ = false; reconstruct(is); @@ -173,9 +203,15 @@ Foam::ensightPartFaces::~ensightPartFaces() Foam::ensightPart::localPoints Foam::ensightPartFaces::calcLocalPoints() const { - const polyMesh& mesh = *meshPtr_; + if (contiguousPoints_) + { + localPoints ptList; + ptList.list = identity(points_.size()); + ptList.nPoints = points_.size(); + return ptList; + } - localPoints ptList(mesh); + localPoints ptList(points_); labelList& usedPoints = ptList.list; label nPoints = 0; @@ -187,7 +223,7 @@ Foam::ensightPart::localPoints Foam::ensightPartFaces::calcLocalPoints() const forAll(idList, i) { label id = idList[i] + offset_; - const face& f = mesh.faces()[id]; + const face& f = faces_[id]; forAll(f, fp) { @@ -236,7 +272,7 @@ void Foam::ensightPartFaces::writeConnectivity label id = idList[i] + offset_; const face& f = faces[id]; - os.write( f.size() ); + os.write(f.size()); os.newline(); } } @@ -251,7 +287,7 @@ void Foam::ensightPartFaces::writeConnectivity // (note: Ensight indices start with 1) forAll(f, fp) { - os.write( pointMap[f[fp]] + 1 ); + os.write(pointMap[f[fp]] + 1); } os.newline(); } @@ -270,7 +306,7 @@ void Foam::ensightPartFaces::writeConnectivity ( os, key, - meshPtr_->faces(), + faces_, idList, pointMap ); @@ -279,9 +315,7 @@ void Foam::ensightPartFaces::writeConnectivity void Foam::ensightPartFaces::writeGeometry(ensightGeoFile& os) const { - const polyMesh& mesh = *meshPtr_; - const pointField& points = mesh.points(); - ensightPart::writeGeometry(os, points); + ensightPart::writeGeometry(os, points_); } diff --git a/src/conversion/ensight/part/ensightPartFaces.H b/src/conversion/ensight/part/ensightPartFaces.H index 3871300b5c..78d5cf6d16 100644 --- a/src/conversion/ensight/part/ensightPartFaces.H +++ b/src/conversion/ensight/part/ensightPartFaces.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd. + \\ / A nd | Copyright (C) 2008-2011 OpenCFD Ltd. \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -61,41 +61,52 @@ class ensightPartFaces //- element connectivity virtual void writeConnectivity ( - ensightGeoFile& os, + ensightGeoFile&, const word& key, const labelList& idList, const labelList& pointMap ) const; - //- write geometry - virtual void writeGeometry(ensightGeoFile& os) const; - protected: - //- addressable ensight element types - enum elemType - { - tria3Elements, - quad4Elements, - nsidedElements - }; + //- addressable ensight element types + enum elemType + { + tria3Elements, + quad4Elements, + nsidedElements + }; + // Static data members - static List elemTypes_; - //- Divide the shapes, set elemLists. - void binShapes(const faceList& faces); + static const List elemTypes_; - //- Helper: write connectivity - void writeConnectivity - ( - ensightGeoFile& os, - const word& key, - const faceList& faces, - const labelList& idList, - const labelList& pointMap - ) const; + + // Protected data + + //- faces referenced + const faceList& faces_; + + //- Can skip local point renumbering when points are contiguous + const bool contiguousPoints_; + + + // Protected Member Functions + + //- Classify the face shapes, set elemLists. + void classify(const faceList&); + + //- Helper: write connectivity + void writeConnectivity + ( + ensightGeoFile&, + const word& key, + const faceList&, + const labelList& idList, + const labelList& pointMap + ) const; public: @@ -108,6 +119,17 @@ public: //- Construct empty part with number and description ensightPartFaces(label partNumber, const string& partDescription); + //- Construct part with number, description, points and faces + // Can skip local point renumbering when points are contiguous + ensightPartFaces + ( + label partNumber, + const string& partDescription, + const pointField&, + const faceList&, + const bool contiguousPoints = false + ); + //- Construct from polyMesh and polyPatch ensightPartFaces ( @@ -119,10 +141,13 @@ public: //- Construct as copy ensightPartFaces(const ensightPartFaces&); - //- Construct from Istream + //- Reconstruct part characteristics (eg, element types) from Istream + // A part reconstructed in this manner can be used when writing fields, + // but cannot be used to write a new geometry + // @sa Foam::ensightPart::reconstruct ensightPartFaces(Istream&); - //- Construct on freestore from Istream + //- Reconstruct part characteristics on freestore from Istream static autoPtr New(Istream& is) { return autoPtr(new ensightPartFaces(is)); @@ -135,8 +160,11 @@ public: // Member Functions + //- write geometry + virtual void writeGeometry(ensightGeoFile&) const; + //- static listing of the element types - virtual List const& elementTypes() const + virtual const List& elementTypes() const { return elemTypes_; } diff --git a/src/conversion/ensight/part/ensightPartIO.C b/src/conversion/ensight/part/ensightPartIO.C index ac903bdf99..7760b7b07f 100644 --- a/src/conversion/ensight/part/ensightPartIO.C +++ b/src/conversion/ensight/part/ensightPartIO.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd. + \\ / A nd | Copyright (C) 2008-2011 OpenCFD Ltd. \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -77,6 +77,32 @@ void Foam::ensightPart::writeFieldList // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // +void Foam::ensightPart::reconstruct(Istream& is) +{ + dictionary dict(is); + dict.lookup("id") >> number_; + dict.lookup("name") >> name_; + + offset_ = 0; + dict.readIfPresent("offset", offset_); + + // populate elemLists_ + elemLists_.setSize(elementTypes().size()); + + forAll(elementTypes(), elemI) + { + word key(elementTypes()[elemI]); + + elemLists_[elemI].clear(); + dict.readIfPresent(key, elemLists_[elemI]); + + size_ += elemLists_[elemI].size(); + } + + is.check("ensightPart::reconstruct(Istream&)"); +} + + bool Foam::ensightPart::writeSummary(Ostream& os) const { os << indent << type() << nl @@ -88,7 +114,7 @@ bool Foam::ensightPart::writeSummary(Ostream& os) const os.writeKeyword("offset") << offset() << token::END_STATEMENT << nl; os.writeKeyword("size") << size() << token::END_STATEMENT << nl; - os << decrIndent << indent << token::END_BLOCK << nl << endl; + os << decrIndent << indent << token::END_BLOCK << nl << endl; return true; } @@ -112,7 +138,7 @@ bool Foam::ensightPart::writeData(Ostream& os) const } } - os << decrIndent << indent << token::END_BLOCK << nl << endl; + os << decrIndent << indent << token::END_BLOCK << nl << endl; return true; } @@ -136,13 +162,13 @@ void Foam::ensightPart::writeGeometry os.write(ptList.nPoints); os.newline(); - for (direction cmpt=0; cmpt < vector::nComponents; cmpt++) + for (direction cmpt=0; cmpt < point::nComponents; ++cmpt) { forAll(pointMap, ptI) { if (pointMap[ptI] > -1) { - os.write( points[ptI].component(cmpt) ); + os.write(points[ptI].component(cmpt)); os.newline(); } } @@ -182,7 +208,7 @@ void Foam::ensightPart::writeScalarField if (idList.size()) { - os.writeKeyword( elementTypes()[elemI] ); + os.writeKeyword(elementTypes()[elemI]); writeFieldList(os, field, idList); } } @@ -208,7 +234,7 @@ void Foam::ensightPart::writeVectorField if (idList.size()) { - os.writeKeyword( elementTypes()[elemI] ); + os.writeKeyword(elementTypes()[elemI]); writeFieldList(os, field0, idList); writeFieldList(os, field1, idList); writeFieldList(os, field2, idList); diff --git a/src/conversion/ensight/part/ensightPartNonMeshFaces.C b/src/conversion/ensight/part/ensightPartNonMeshFaces.C deleted file mode 100644 index e991844bf0..0000000000 --- a/src/conversion/ensight/part/ensightPartNonMeshFaces.C +++ /dev/null @@ -1,122 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd. - \\/ 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 . - -\*---------------------------------------------------------------------------*/ - -#include "ensightPartNonMeshFaces.H" -#include "addToRunTimeSelectionTable.H" - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -namespace Foam -{ - defineTypeNameAndDebug(ensightPartNonMeshFaces, 0); - addToRunTimeSelectionTable(ensightPart, ensightPartNonMeshFaces, istream); -} - - -// * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * // - -Foam::ensightPart::localPoints -Foam::ensightPartNonMeshFaces::calcLocalPoints() const -{ - localPoints ptList; - ptList.list = identity(points_.size()); - ptList.nPoints = points_.size(); - return ptList; -} - - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -Foam::ensightPartNonMeshFaces::ensightPartNonMeshFaces -( - label partNumber, - const string& partDescription, - const faceList& faces, - const pointField& points -) -: - ensightPartFaces(partNumber, partDescription), - faces_(faces), - points_(points) -{ - binShapes(faces); -} - - -//- Construct as copy -Foam::ensightPartNonMeshFaces::ensightPartNonMeshFaces -( - const ensightPartNonMeshFaces& part -) -: - ensightPartFaces(part), - faces_(part.faces_), - points_(part.points_) -{} - - -//- Construct from Istream -Foam::ensightPartNonMeshFaces::ensightPartNonMeshFaces(Istream& is) -: - ensightPartFaces(is), - faces_(is), - points_(is) -{} - - -// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // - -Foam::ensightPartNonMeshFaces::~ensightPartNonMeshFaces() -{} - - -// * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * // - -void Foam::ensightPartNonMeshFaces::writeConnectivity -( - ensightGeoFile& os, - const word& key, - const labelList& idList, - const labelList& pointMap -) const -{ - ensightPartFaces::writeConnectivity - ( - os, - key, - faces_, - idList, - pointMap - ); -} - - -void Foam::ensightPartNonMeshFaces::writeGeometry(ensightGeoFile& os) const -{ - ensightPart::writeGeometry(os, points_); -} - - -// ************************************************************************* // diff --git a/src/conversion/ensight/part/ensightPartNonMeshFaces.H b/src/conversion/ensight/part/ensightPartNonMeshFaces.H deleted file mode 100644 index ab7f4a782a..0000000000 --- a/src/conversion/ensight/part/ensightPartNonMeshFaces.H +++ /dev/null @@ -1,131 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd. - \\/ 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 . - -Class - Foam::ensightPartNonMeshFaces - -Description - An implementation of ensightPart to work on self-contained faces and points - (without a mesh). - -SourceFiles - ensightPartNonMeshFaces.C - -\*---------------------------------------------------------------------------*/ - -#ifndef ensightPartNonMeshFaces_H -#define ensightPartNonMeshFaces_H - -#include "ensightPartFaces.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - -/*---------------------------------------------------------------------------*\ - Class ensightPartNonMeshFaces Declaration -\*---------------------------------------------------------------------------*/ - -class ensightPartNonMeshFaces -: - public ensightPartFaces -{ - // Private data - - //- faces (reference) - const faceList& faces_; - - //- points (reference) - const pointField& points_; - - - // Private Member Functions - - //- Disallow default bitwise assignment - void operator=(const ensightPartNonMeshFaces&); - - //- track points used - virtual localPoints calcLocalPoints() const; - -public: - - //- Runtime type information - TypeName("ensightNonMeshFaces"); - - // Constructors - - //- Construct from faces and points - ensightPartNonMeshFaces - ( - label partNumber, - const string& partDescription, - const faceList& faces, - const pointField& points - ); - - //- Construct as copy - ensightPartNonMeshFaces(const ensightPartNonMeshFaces& part); - - //- Construct from Istream - ensightPartNonMeshFaces(Istream& is); - - //- Construct on freestore from Istream - static autoPtr New(Istream& is) - { - return autoPtr - ( - new ensightPartNonMeshFaces(is) - ); - } - - - //- Destructor - virtual ~ensightPartNonMeshFaces(); - - - // Member Functions - - //- element connectivity - virtual void writeConnectivity - ( - ensightGeoFile& os, - const word& key, - const labelList& idList, - const labelList& pointMap - ) const; - - virtual void writeGeometry(ensightGeoFile& os) const; - -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/src/conversion/ensight/part/ensightPartI.H b/src/conversion/ensight/part/ensightPartTemplates.C similarity index 90% rename from src/conversion/ensight/part/ensightPartI.H rename to src/conversion/ensight/part/ensightPartTemplates.C index 9286273276..5bb80f9622 100644 --- a/src/conversion/ensight/part/ensightPartI.H +++ b/src/conversion/ensight/part/ensightPartTemplates.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd. + \\ / A nd | Copyright (C) 2008-2011 OpenCFD Ltd. \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -30,14 +30,14 @@ Description // * * * * * * * * * * * * * * * Global Functions * * * * * * * * * * * * * // -template +template void Foam::ensightPart::writeField ( ensightFile& os, const Field& field ) const { - if (size() && field.size()) + if (this->size() && field.size()) { writeHeader(os); @@ -47,13 +47,13 @@ void Foam::ensightPart::writeField if (idList.size()) { - os.writeKeyword( elementTypes()[elemI] ); + os.writeKeyword(elementTypes()[elemI]); for ( direction cmpt=0; cmpt < pTraits::nComponents; - cmpt++ + ++cmpt ) { writeFieldList(os, field.component(cmpt), idList); diff --git a/src/conversion/ensight/part/ensightParts.C b/src/conversion/ensight/part/ensightParts.C index 76179b4a11..658f41b74c 100644 --- a/src/conversion/ensight/part/ensightParts.C +++ b/src/conversion/ensight/part/ensightParts.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd. + \\ / A nd | Copyright (C) 2008-2011 OpenCFD Ltd. \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -27,11 +27,11 @@ License // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // -Foam::ensightParts::ensightParts(const polyMesh& pMesh) +Foam::ensightParts::ensightParts(const polyMesh& mesh) : partsList_() { - recalculate(pMesh); + recalculate(mesh); } @@ -52,15 +52,15 @@ Foam::ensightParts::~ensightParts() // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // -void Foam::ensightParts::recalculate(const polyMesh& pMesh) +void Foam::ensightParts::recalculate(const polyMesh& mesh) { partsList_.clear(); // extra space for unzoned cells label nPart = ( - pMesh.cellZones().size() - + pMesh.boundaryMesh().size() + mesh.cellZones().size() + + mesh.boundaryMesh().size() + 1 ); @@ -70,9 +70,9 @@ void Foam::ensightParts::recalculate(const polyMesh& pMesh) label nZoneCells = 0; // do cell zones - forAll(pMesh.cellZones(), zoneI) + forAll(mesh.cellZones(), zoneI) { - const cellZone& cZone = pMesh.cellZones()[zoneI]; + const cellZone& cZone = mesh.cellZones()[zoneI]; nZoneCells += cZone.size(); if (cZone.size()) @@ -80,12 +80,7 @@ void Foam::ensightParts::recalculate(const polyMesh& pMesh) partsList_.set ( nPart, - new ensightPartCells - ( - nPart, - pMesh, - cZone - ) + new ensightPartCells(nPart, mesh, cZone) ); nPart++; @@ -100,23 +95,19 @@ void Foam::ensightParts::recalculate(const polyMesh& pMesh) partsList_.set ( nPart, - new ensightPartCells - ( - nPart, - pMesh - ) + new ensightPartCells(nPart, mesh) ); nPart++; } - else if (pMesh.nCells() > nZoneCells) + else if (mesh.nCells() > nZoneCells) { // determine which cells are not in a cellZone - labelList unzoned(pMesh.nCells(), -1); + labelList unzoned(mesh.nCells(), -1); - forAll(pMesh.cellZones(), zoneI) + forAll(mesh.cellZones(), zoneI) { - const labelList& idList = pMesh.cellZones()[zoneI]; + const labelList& idList = mesh.cellZones()[zoneI]; forAll(idList, i) { @@ -140,12 +131,7 @@ void Foam::ensightParts::recalculate(const polyMesh& pMesh) partsList_.set ( nPart, - new ensightPartCells - ( - nPart, - pMesh, - unzoned - ) + new ensightPartCells(nPart, mesh, unzoned) ); nPart++; @@ -154,20 +140,15 @@ void Foam::ensightParts::recalculate(const polyMesh& pMesh) // do boundaries, skipping empty and processor patches - forAll(pMesh.boundaryMesh(), patchI) + forAll(mesh.boundaryMesh(), patchI) { - const polyPatch& pPatch = pMesh.boundaryMesh()[patchI]; - if (pPatch.size() && !isA(pPatch)) + const polyPatch& patch = mesh.boundaryMesh()[patchI]; + if (patch.size() && !isA(patch)) { partsList_.set ( nPart, - new ensightPartFaces - ( - nPart, - pMesh, - pPatch - ) + new ensightPartFaces(nPart, mesh, patch) ); nPart++; @@ -199,7 +180,7 @@ void Foam::ensightParts::renumber } -void Foam::ensightParts::writeGeometry( ensightGeoFile& os) const +void Foam::ensightParts::writeGeometry(ensightGeoFile& os) const { // with some feedback Info<< "write geometry part:" << nl << flush; @@ -225,23 +206,21 @@ bool Foam::ensightParts::writeSummary(Ostream& os) const void Foam::ensightParts::writeData(Ostream& os) const { - // Write size of list - os << nl << partsList_.size(); - - // Write beginning of contents - os << nl << token::BEGIN_LIST; + // Begin write list + os << nl << partsList_.size() + << nl << token::BEGIN_LIST; // Write list contents forAll(partsList_, i) { - os << nl << partsList_[i]; + os << nl << partsList_[i]; } - // Write end of contents - os << nl << token::END_LIST << nl; + // End write list + os << nl << token::END_LIST << nl; // Check state of IOstream - os.check("Ostream& operator<<(Ostream&, const PtrList&)"); + os.check("ensightParts::writeData(Ostream&)"); } diff --git a/src/conversion/ensight/part/ensightParts.H b/src/conversion/ensight/part/ensightParts.H index 3d620192b5..7ef4094259 100644 --- a/src/conversion/ensight/part/ensightParts.H +++ b/src/conversion/ensight/part/ensightParts.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd. + \\ / A nd | Copyright (C) 2008-2011 OpenCFD Ltd. \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -29,7 +29,7 @@ Description SourceFiles ensightParts.C - ensightPartsI.H + ensightPartsTemplates.C \*---------------------------------------------------------------------------*/ @@ -128,7 +128,7 @@ public: //- write generalized field components - template + template void writeField ( ensightFile&, @@ -138,11 +138,8 @@ public: // Friend Operators - friend ensightGeoFile& operator<< - ( - ensightGeoFile&, - const ensightParts& - ); + //- write geometry + friend ensightGeoFile& operator<<(ensightGeoFile&, const ensightParts&); }; @@ -153,7 +150,7 @@ public: // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // #ifdef NoRepository -# include "ensightPartsI.H" +# include "ensightPartsTemplates.C" #endif #endif diff --git a/src/conversion/ensight/part/ensightPartsI.H b/src/conversion/ensight/part/ensightPartsTemplates.C similarity index 96% rename from src/conversion/ensight/part/ensightPartsI.H rename to src/conversion/ensight/part/ensightPartsTemplates.C index c4848faf2a..5eb8a7aec8 100644 --- a/src/conversion/ensight/part/ensightPartsI.H +++ b/src/conversion/ensight/part/ensightPartsTemplates.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd. + \\ / A nd | Copyright (C) 2008-2011 OpenCFD Ltd. \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -30,7 +30,7 @@ Description // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -template +template void Foam::ensightParts::writeField ( ensightFile& os, diff --git a/src/sampling/sampledSurface/writers/ensight/ensightSurfaceWriter.C b/src/sampling/sampledSurface/writers/ensight/ensightSurfaceWriter.C index d705525ebc..641e6a19b2 100644 --- a/src/sampling/sampledSurface/writers/ensight/ensightSurfaceWriter.C +++ b/src/sampling/sampledSurface/writers/ensight/ensightSurfaceWriter.C @@ -28,8 +28,7 @@ License #include "OFstream.H" #include "OSspecific.H" #include "IOmanip.H" -#include "ensightGeoFile.H" -#include "ensightPartNonMeshFaces.H" +#include "ensightPartFaces.H" #include "makeSurfaceWriterMethods.H" @@ -153,7 +152,7 @@ void Foam::ensightSurfaceWriter::writeTemplate << timeValue << nl << nl; - ensightPartNonMeshFaces ensPart(0, geomStr.name().name(), faces, points); + ensightPartFaces ensPart(0, geomStr.name().name(), points, faces, true); geomStr << ensPart; // Write field @@ -252,7 +251,7 @@ void Foam::ensightSurfaceWriter::write << timeValue << nl << nl; - ensightPartNonMeshFaces ensPart(0, geomStr.name().name(), faces, points); + ensightPartFaces ensPart(0, geomStr.name().name(), points, faces, true); geomStr << ensPart; }