ENH: use meshedSurf API for surface writers (issue #104)

- Allows passing of additional information (per-face zone ids) or possibly
  other things, while reducing the number of arguments to pass.

- In sampledTriSurfaceMesh, preserve the region information that was
  read in, passing it onwards via the UnsortedMeshSurface content.

  The Nastran surface writer is currently the only writer making use
  of this per-face zone information.
  Passing it through as a PSHELL attribute, which should retain the
  distinction for parts. (issue #204)
This commit is contained in:
Mark Olesen
2016-08-10 15:41:24 +02:00
parent eee0dd02c5
commit 1fc2a73213
58 changed files with 456 additions and 399 deletions

View File

@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2012-2016 OpenFOAM Foundation \\ / A nd | Copyright (C) 2012-2016 OpenFOAM Foundation
\\/ M anipulation | \\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
This file is part of OpenFOAM. This file is part of OpenFOAM.
@ -289,8 +289,11 @@ Foam::tmp<Foam::triSurfacePointScalarField> Foam::automatic::load()
( (
surface_.searchableSurface::time().constant()/"triSurface", surface_.searchableSurface::time().constant()/"triSurface",
surfaceName_.lessExt().name(), surfaceName_.lessExt().name(),
surface_.points(), meshedSurfRef
faces, (
surface_.points(),
faces
),
"cellSize", "cellSize",
pointCellSize, pointCellSize,
true, true,

View File

@ -9,5 +9,4 @@ EXE_INC = \
EXE_LIBS = \ EXE_LIBS = \
-lmeshTools \ -lmeshTools \
-lsampling \ -lsampling \
-lsurfMesh \
-ldynamicMesh -ldynamicMesh

View File

@ -1019,8 +1019,11 @@ Foam::label Foam::checkGeometry
( (
"postProcessing", "postProcessing",
"src_" + tmName, "src_" + tmName,
mergedPoints, meshedSurfRef
mergedFaces, (
mergedPoints,
mergedFaces
),
"weightsSum", "weightsSum",
mergedWeights, mergedWeights,
false false
@ -1066,8 +1069,11 @@ Foam::label Foam::checkGeometry
( (
"postProcessing", "postProcessing",
"tgt_" + tmName, "tgt_" + tmName,
mergedPoints, meshedSurfRef
mergedFaces, (
mergedPoints,
mergedFaces
),
"weightsSum", "weightsSum",
mergedWeights, mergedWeights,
false false

View File

@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2015-2016 OpenFOAM Foundation \\ / A nd | Copyright (C) 2015-2016 OpenFOAM Foundation
\\/ M anipulation | Copyright (C) 2015 OpenCFD Ltd. \\/ M anipulation | Copyright (C) 2015-2016 OpenCFD Ltd.
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
This file is part of OpenFOAM. This file is part of OpenFOAM.
@ -42,6 +42,7 @@ License
#include "globalIndex.H" #include "globalIndex.H"
#include "PatchTools.H" #include "PatchTools.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
void Foam::printMeshStats(const polyMesh& mesh, const bool allTopology) void Foam::printMeshStats(const polyMesh& mesh, const bool allTopology)
{ {
@ -238,7 +239,16 @@ void Foam::mergeAndWrite
// Write // Write
if (Pstream::master()) if (Pstream::master())
{ {
writer.write(outputDir, name, mergedPoints, mergedFaces); writer.write
(
outputDir,
name,
meshedSurfRef
(
mergedPoints,
mergedFaces
)
);
} }
} }
else else
@ -247,8 +257,11 @@ void Foam::mergeAndWrite
( (
outputDir, outputDir,
name, name,
setPatch.localPoints(), meshedSurfRef
setPatch.localFaces() (
setPatch.localPoints(),
setPatch.localFaces()
)
); );
} }
} }

View File

@ -2,6 +2,7 @@ EXE_INC = \
-I$(LIB_SRC)/dynamicFvMesh/lnInclude \ -I$(LIB_SRC)/dynamicFvMesh/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \ -I$(LIB_SRC)/meshTools/lnInclude \
-I$(LIB_SRC)/sampling/lnInclude \ -I$(LIB_SRC)/sampling/lnInclude \
-I$(LIB_SRC)/surfMesh/lnInclude \
-I$(LIB_SRC)/finiteVolume/lnInclude -I$(LIB_SRC)/finiteVolume/lnInclude
EXE_LIBS = \ EXE_LIBS = \

View File

@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\/ M anipulation | \\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
This file is part of OpenFOAM. This file is part of OpenFOAM.
@ -95,8 +95,11 @@ void writeWeights
( (
directory, directory,
prefix + "_" + timeName, prefix + "_" + timeName,
mergedPoints, meshedSurfRef
mergedFaces, (
mergedPoints,
mergedFaces
),
"weightsSum", "weightsSum",
mergedWeights, mergedWeights,
false false

View File

@ -7,5 +7,4 @@ EXE_INC = \
EXE_LIBS = \ EXE_LIBS = \
-lsampling \ -lsampling \
-ltriSurface \ -ltriSurface \
-lsurfMesh \
-lmeshTools -lmeshTools

View File

@ -228,8 +228,11 @@ void writeZoning
( (
surfFilePath, surfFilePath,
surfFileNameBase, surfFileNameBase,
surf.points(), meshedSurfRef
faces, (
surf.points(),
faces
),
fieldName, fieldName,
scalarFaceZone, scalarFaceZone,
false // face based data false // face based data

View File

@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\/ M anipulation | Copyright (C) 2015 OpenCFD Ltd. \\/ M anipulation | Copyright (C) 2015-2016 OpenCFD Ltd.
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
This file is part of OpenFOAM. This file is part of OpenFOAM.
@ -1643,8 +1643,11 @@ int main(int argc, char *argv[])
( (
runTime.constantPath()/"triSurface",// outputDir runTime.constantPath()/"triSurface",// outputDir
sFeatFileName, // surfaceName sFeatFileName, // surfaceName
surf.points(), meshedSurfRef
faces, (
surf.points(),
faces
),
"internalCloseness", // fieldName "internalCloseness", // fieldName
internalCloseness, internalCloseness,
false, // isNodeValues false, // isNodeValues
@ -1655,8 +1658,11 @@ int main(int argc, char *argv[])
( (
runTime.constantPath()/"triSurface",// outputDir runTime.constantPath()/"triSurface",// outputDir
sFeatFileName, // surfaceName sFeatFileName, // surfaceName
surf.points(), meshedSurfRef
faces, (
surf.points(),
faces
),
"externalCloseness", // fieldName "externalCloseness", // fieldName
externalCloseness, externalCloseness,
false, // isNodeValues false, // isNodeValues
@ -1691,8 +1697,11 @@ int main(int argc, char *argv[])
( (
runTime.constantPath()/"triSurface",// outputDir runTime.constantPath()/"triSurface",// outputDir
sFeatFileName, // surfaceName sFeatFileName, // surfaceName
surf.points(), meshedSurfRef
faces, (
surf.points(),
faces
),
"curvature", // fieldName "curvature", // fieldName
k, k,
true, // isNodeValues true, // isNodeValues
@ -1769,8 +1778,11 @@ int main(int argc, char *argv[])
( (
runTime.constantPath()/"triSurface",// outputDir runTime.constantPath()/"triSurface",// outputDir
sFeatFileName, // surfaceName sFeatFileName, // surfaceName
surf.points(), meshedSurfRef
faces, (
surf.points(),
faces
),
"featureProximity", // fieldName "featureProximity", // fieldName
featureProximity, featureProximity,
false, // isNodeValues false, // isNodeValues

View File

@ -328,8 +328,11 @@ bool Foam::functionObjects::fieldValues::surfaceFieldValue::writeValues
( (
outputDir(), outputDir(),
regionTypeNames_[regionType_] + ("_" + regionName_), regionTypeNames_[regionType_] + ("_" + regionName_),
points, meshedSurfRef
faces, (
points,
faces
),
fieldName, fieldName,
allValues, allValues,
false false

View File

@ -17,6 +17,7 @@ EXE_INC = \
-I$(LIB_SRC)/dynamicMesh/lnInclude \ -I$(LIB_SRC)/dynamicMesh/lnInclude \
-I$(LIB_SRC)/dynamicFvMesh/lnInclude \ -I$(LIB_SRC)/dynamicFvMesh/lnInclude \
-I$(LIB_SRC)/sampling/lnInclude \ -I$(LIB_SRC)/sampling/lnInclude \
-I$(LIB_SRC)/surfMesh/lnInclude \
-I$(LIB_SRC)/finiteVolume/lnInclude \ -I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude -I$(LIB_SRC)/meshTools/lnInclude

View File

@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\/ M anipulation | \\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
This file is part of OpenFOAM. This file is part of OpenFOAM.
@ -204,8 +204,7 @@ void Foam::FacePostProcessing<CloudType>::write()
( (
this->writeTimeDir(), this->writeTimeDir(),
fZone.name(), fZone.name(),
allPoints, meshedSurfRef(allPoints, allFaces),
allFaces,
"massTotal", "massTotal",
zoneMassTotal[zoneI], zoneMassTotal[zoneI],
false false
@ -215,8 +214,7 @@ void Foam::FacePostProcessing<CloudType>::write()
( (
this->writeTimeDir(), this->writeTimeDir(),
fZone.name(), fZone.name(),
allPoints, meshedSurfRef(allPoints, allFaces),
allFaces,
"massFlowRate", "massFlowRate",
zoneMassFlowRate[zoneI], zoneMassFlowRate[zoneI],
false false

View File

@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2012-2016 OpenFOAM Foundation \\ / A nd | Copyright (C) 2012-2016 OpenFOAM Foundation
\\/ M anipulation | Copyright (C) 2015 OpenCFD Ltd. \\/ M anipulation | Copyright (C) 2015-2016 OpenCFD Ltd.
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
This file is part of OpenFOAM. This file is part of OpenFOAM.
@ -409,10 +409,10 @@ void Foam::ParticleCollector<CloudType>::write()
Info<< type() << " output:" << nl; Info<< type() << " output:" << nl;
Field<scalar> faceMassTotal(mass_.size(), 0.0); Field<scalar> faceMassTotal(mass_.size(), Zero);
this->getModelProperty("massTotal", faceMassTotal); this->getModelProperty("massTotal", faceMassTotal);
Field<scalar> faceMassFlowRate(massFlowRate_.size(), 0.0); Field<scalar> faceMassFlowRate(massFlowRate_.size(), Zero);
this->getModelProperty("massFlowRate", faceMassFlowRate); this->getModelProperty("massFlowRate", faceMassFlowRate);
@ -467,8 +467,7 @@ void Foam::ParticleCollector<CloudType>::write()
( (
this->writeTimeDir(), this->writeTimeDir(),
"collector", "collector",
points_, meshedSurfRef(points_, faces_),
faces_,
"massTotal", "massTotal",
faceMassTotal, faceMassTotal,
false false
@ -478,8 +477,7 @@ void Foam::ParticleCollector<CloudType>::write()
( (
this->writeTimeDir(), this->writeTimeDir(),
"collector", "collector",
points_, meshedSurfRef(points_, faces_),
faces_,
"massFlowRate", "massFlowRate",
faceMassFlowRate, faceMassFlowRate,
false false
@ -490,7 +488,7 @@ void Foam::ParticleCollector<CloudType>::write()
if (resetOnWrite_) if (resetOnWrite_)
{ {
Field<scalar> dummy(faceMassTotal.size(), 0.0); Field<scalar> dummy(faceMassTotal.size(), Zero);
this->setModelProperty("massTotal", dummy); this->setModelProperty("massTotal", dummy);
this->setModelProperty("massFlowRate", dummy); this->setModelProperty("massFlowRate", dummy);

View File

@ -22,6 +22,7 @@ EXE_INC = \
-I$(LIB_SRC)/dynamicMesh/lnInclude \ -I$(LIB_SRC)/dynamicMesh/lnInclude \
-I$(LIB_SRC)/dynamicFvMesh/lnInclude \ -I$(LIB_SRC)/dynamicFvMesh/lnInclude \
-I$(LIB_SRC)/sampling/lnInclude \ -I$(LIB_SRC)/sampling/lnInclude \
-I$(LIB_SRC)/surfMesh/lnInclude \
-I$(LIB_SRC)/finiteVolume/lnInclude \ -I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude -I$(LIB_SRC)/meshTools/lnInclude

View File

@ -290,12 +290,16 @@ Foam::scalar surfaceNoise::writeSurfaceData
} }
} }
// could also have meshedSurface implement meshedSurf
fileName outFileName = writerPtr_->write fileName outFileName = writerPtr_->write
( (
outDir, outDir,
fName, fName,
surf.points(), meshedSurfRef
surf.surfFaces(), (
surf.points(),
surf.surfFaces()
),
title, title,
allData, allData,
false false
@ -313,12 +317,16 @@ Foam::scalar surfaceNoise::writeSurfaceData
{ {
const meshedSurface& surf = readerPtr_->geometry(); const meshedSurface& surf = readerPtr_->geometry();
// could also have meshedSurface implement meshedSurf
writerPtr_->write writerPtr_->write
( (
outDir, outDir,
fName, fName,
surf.points(), meshedSurfRef
surf.surfFaces(), (
surf.points(),
surf.surfFaces()
),
title, title,
data, data,
false false

View File

@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\/ M anipulation | \\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
This file is part of OpenFOAM. This file is part of OpenFOAM.
@ -193,6 +193,12 @@ public:
return facesPtr_; return facesPtr_;
} }
//- Const access to per-face zone/region information
virtual const labelList& zoneIds() const
{
return Foam::emptyLabelList;
}
//- Face area vectors //- Face area vectors
virtual const vectorField& Sf() const virtual const vectorField& Sf() const
{ {
@ -212,6 +218,7 @@ public:
} }
//- The underlying surface
const triSurface& surface() const const triSurface& surface() const
{ {
if (cell_) if (cell_)

View File

@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\/ M anipulation | \\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
This file is part of OpenFOAM. This file is part of OpenFOAM.
@ -199,6 +199,12 @@ public:
return facesPtr_; return facesPtr_;
} }
//- Const access to per-face zone/region information
virtual const labelList& zoneIds() const
{
return Foam::emptyLabelList;
}
//- Face area magnitudes //- Face area magnitudes
virtual const vectorField& Sf() const virtual const vectorField& Sf() const
{ {

View File

@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\/ M anipulation | \\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
This file is part of OpenFOAM. This file is part of OpenFOAM.
@ -168,6 +168,12 @@ public:
return facesPtr_; return facesPtr_;
} }
//- Const access to per-face zone/region information
virtual const labelList& zoneIds() const
{
return Foam::emptyLabelList;
}
//- Face area magnitudes //- Face area magnitudes
virtual const vectorField& Sf() const virtual const vectorField& Sf() const
{ {

View File

@ -333,7 +333,7 @@ const Foam::meshedSurface& Foam::ensightSurfaceReader::geometry()
Info<< "binary" << endl; Info<< "binary" << endl;
} }
} }
ensightReadFile is(baseDir_/meshFileName_, streamFormat_); ensightReadFile is(baseDir_/meshFileName_, streamFormat_);
@ -343,7 +343,7 @@ const Foam::meshedSurface& Foam::ensightSurfaceReader::geometry()
} }
readGeometryHeader(is); readGeometryHeader(is);
label nPoints; label nPoints;
is.read(nPoints); is.read(nPoints);

View File

@ -88,7 +88,7 @@ Foam::tmp<Foam::Field<Type> > Foam::ensightSurfaceReader::readField
const word indexStr = oss.str(); const word indexStr = oss.str();
fieldFileName.replace(maskStr, indexStr); fieldFileName.replace(maskStr, indexStr);
ensightReadFile is(baseDir_/fieldFileName, streamFormat_); ensightReadFile is(baseDir_/fieldFileName, streamFormat_);
if (!is.good()) if (!is.good())
@ -102,7 +102,7 @@ Foam::tmp<Foam::Field<Type> > Foam::ensightSurfaceReader::readField
// Check that data type is as expected // Check that data type is as expected
string primitiveType; string primitiveType;
is.read(primitiveType); is.read(primitiveType);
if (debug) if (debug)
{ {

View File

@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\/ M anipulation | \\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
This file is part of OpenFOAM. This file is part of OpenFOAM.
@ -182,6 +182,12 @@ public:
return facesPtr_; return facesPtr_;
} }
//- Const access to per-face zone/region information
virtual const labelList& zoneIds() const
{
return Foam::emptyLabelList;
}
//- Face area magnitudes //- Face area magnitudes
virtual const vectorField& Sf() const virtual const vectorField& Sf() const
{ {

View File

@ -180,6 +180,12 @@ public:
return MeshStorage::surfFaces(); return MeshStorage::surfFaces();
} }
//- Const access to per-face zone/region information
virtual const labelList& zoneIds() const
{
return Foam::emptyLabelList;
}
//- Face area vectors //- Face area vectors
virtual const vectorField& Sf() const virtual const vectorField& Sf() const
{ {

View File

@ -140,6 +140,13 @@ public:
return cuttingPlane::surfFaces(); return cuttingPlane::surfFaces();
} }
//- Const access to per-face zone/region information
// Could instead return meshCells or cellZoneId of the meshCells.
virtual const labelList& zoneIds() const
{
return Foam::emptyLabelList;
}
//- Face area magnitudes //- Face area magnitudes
virtual const vectorField& Sf() const virtual const vectorField& Sf() const
{ {

View File

@ -52,7 +52,7 @@ SourceFiles
#ifndef sampledSurface_H #ifndef sampledSurface_H
#define sampledSurface_H #define sampledSurface_H
#include "pointField.H" #include "meshedSurf.H"
#include "word.H" #include "word.H"
#include "labelList.H" #include "labelList.H"
#include "faceList.H" #include "faceList.H"
@ -83,6 +83,8 @@ Ostream& operator<<(Ostream&, const sampledSurface&);
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
class sampledSurface class sampledSurface
:
public meshedSurf
{ {
// Private data // Private data

View File

@ -72,20 +72,17 @@ void Foam::sampledSurfaces::writeGeometry() const
( (
outputDir, outputDir,
s.name(), s.name(),
mergeList_[surfI].points, meshedSurfRef
mergeList_[surfI].faces (
mergeList_[surfI].points,
mergeList_[surfI].faces
)
); );
} }
} }
else if (s.faces().size()) else if (s.faces().size())
{ {
formatter_->write formatter_->write(outputDir, s.name(), s);
(
outputDir,
s.name(),
s.points(),
s.faces()
);
} }
} }
} }

View File

@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\/ M anipulation | Copyright (C) 2015 OpenCFD Ltd. \\/ M anipulation | Copyright (C) 2015-2016 OpenCFD Ltd.
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
This file is part of OpenFOAM. This file is part of OpenFOAM.

View File

@ -79,8 +79,11 @@ void Foam::sampledSurfaces::writeSurface
( (
outputDir, outputDir,
s.name(), s.name(),
mergeList_[surfI].points, meshedSurfRef
mergeList_[surfI].faces, (
mergeList_[surfI].points,
mergeList_[surfI].faces
),
fieldName, fieldName,
allValues, allValues,
s.interpolate() s.interpolate()
@ -106,8 +109,7 @@ void Foam::sampledSurfaces::writeSurface
( (
outputDir, outputDir,
s.name(), s.name(),
s.points(), s,
s.faces(),
fieldName, fieldName,
values, values,
s.interpolate() s.interpolate()

View File

@ -305,16 +305,21 @@ bool Foam::sampledTriSurfaceMesh::update(const meshSearch& meshSearcher)
// Create faces and points for subsetted surface // Create faces and points for subsetted surface
faceList& faces = this->storedFaces(); faceList& faces = this->storedFaces();
faces.setSize(faceMap.size()); faces.setSize(faceMap.size());
labelList& zoneIds = this->storedZoneIds();
zoneIds.setSize(faceMap.size());
forAll(faceMap, i) forAll(faceMap, i)
{ {
const triFace& f = s[faceMap[i]]; const labelledTri& f = s[faceMap[i]];
triFace newF triFace newF
( (
reversePointMap[f[0]], reversePointMap[f[0]],
reversePointMap[f[1]], reversePointMap[f[1]],
reversePointMap[f[2]] reversePointMap[f[2]]
); );
faces[i] = newF.triFaceFace(); faces[i] = newF.triFaceFace();
zoneIds[i] = f.region(); // preserve zone information
forAll(newF, fp) forAll(newF, fp)
{ {
@ -773,9 +778,10 @@ Foam::tmp<Foam::tensorField> Foam::sampledTriSurfaceMesh::interpolate
void Foam::sampledTriSurfaceMesh::print(Ostream& os) const void Foam::sampledTriSurfaceMesh::print(Ostream& os) const
{ {
os << "sampledTriSurfaceMesh: " << name() << " :" os << "sampledTriSurfaceMesh: " << name() << " :"
<< " surface:" << surface_.objectRegistry::name() << " surface:" << surface_.objectRegistry::name()
<< " faces:" << faces().size() << " faces:" << faces().size()
<< " points:" << points().size(); << " points:" << points().size()
<< " zoneids:" << zoneIds().size();
} }

View File

@ -87,7 +87,7 @@ class meshSearch;
class sampledTriSurfaceMesh class sampledTriSurfaceMesh
: :
public sampledSurface, public sampledSurface,
public MeshedSurface<face> public UnsortedMeshedSurface<face>
{ {
public: public:
//- Types of communications //- Types of communications
@ -101,7 +101,7 @@ public:
private: private:
//- Private typedefs for convenience //- Private typedefs for convenience
typedef MeshedSurface<face> MeshStorage; typedef UnsortedMeshedSurface<face> MeshStorage;
// Private data // Private data
@ -216,6 +216,12 @@ public:
return MeshStorage::surfFaces(); return MeshStorage::surfFaces();
} }
//- Const access to per-face zone/region information
virtual const labelList& zoneIds() const
{
return MeshStorage::zoneIds();
}
//- Face area vectors //- Face area vectors
virtual const vectorField& Sf() const virtual const vectorField& Sf() const
{ {

View File

@ -148,6 +148,12 @@ public:
return MeshStorage::surfFaces(); return MeshStorage::surfFaces();
} }
//- Const access to per-face zone/region information
virtual const labelList& zoneIds() const
{
return Foam::emptyLabelList;
}
//- Face area vectors (normals) //- Face area vectors (normals)
virtual const vectorField& Sf() const virtual const vectorField& Sf() const
{ {

View File

@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2015 OpenFOAM Foundation \\ / A nd | Copyright (C) 2015 OpenFOAM Foundation
\\/ M anipulation | \\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
This file is part of OpenFOAM. This file is part of OpenFOAM.
@ -53,14 +53,14 @@ Foam::fileName Foam::boundaryDataSurfaceWriter::write
( (
const fileName& outputDir, const fileName& outputDir,
const fileName& surfaceName, const fileName& surfaceName,
const pointField& points, const meshedSurf& surf,
const faceList& faces,
const bool verbose const bool verbose
) const ) const
{ {
const fileName baseDir(outputDir.path()/surfaceName); const fileName baseDir(outputDir.path()/surfaceName);
const fileName timeName(outputDir.name()); const fileName timeName(outputDir.name());
const pointField& points = surf.points();
// Construct dummy time to use as an objectRegistry // Construct dummy time to use as an objectRegistry
const fileName caseDir(getEnv("FOAM_CASE")); const fileName caseDir(getEnv("FOAM_CASE"));
@ -110,6 +110,8 @@ Foam::fileName Foam::boundaryDataSurfaceWriter::write
} }
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// create write methods // create write methods
defineSurfaceWriterWriteFields(Foam::boundaryDataSurfaceWriter); defineSurfaceWriterWriteFields(Foam::boundaryDataSurfaceWriter);

View File

@ -2,8 +2,8 @@
========= | ========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2015 OpenCFD Ltd. \\ / A nd | Copyright (C) 2015-2016 OpenCFD Ltd.
\\/ M anipulation | \\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
This file is part of OpenFOAM. This file is part of OpenFOAM.
@ -98,8 +98,7 @@ class boundaryDataSurfaceWriter
( (
const fileName& outputDir, const fileName& outputDir,
const fileName& surfaceName, const fileName& surfaceName,
const pointField& points, const meshedSurf& surf,
const faceList& faces,
const word& fieldName, const word& fieldName,
const Field<Type>& values, const Field<Type>& values,
const bool isNodeValues, const bool isNodeValues,
@ -130,10 +129,9 @@ public:
( (
const fileName& outputDir, const fileName& outputDir,
const fileName& surfaceName, const fileName& surfaceName,
const pointField& points, const meshedSurf& surf,
const faceList& faces,
const bool verbose = false const bool verbose = false
) const; ) const; // override
//- Write scalarField for a single surface to file. //- Write scalarField for a single surface to file.
@ -142,13 +140,12 @@ public:
( (
const fileName& outputDir, // <case>/surface/TIME const fileName& outputDir, // <case>/surface/TIME
const fileName& surfaceName, // name of surface const fileName& surfaceName, // name of surface
const pointField& points, const meshedSurf& surf,
const faceList& faces,
const word& fieldName, // name of field const word& fieldName, // name of field
const Field<scalar>& values, const Field<scalar>& values,
const bool isNodeValues, const bool isNodeValues,
const bool verbose = false const bool verbose = false
) const; ) const; // override
//- Write vectorField for a single surface to file. //- Write vectorField for a single surface to file.
// One value per face or vertex (isNodeValues = true) // One value per face or vertex (isNodeValues = true)
@ -156,13 +153,12 @@ public:
( (
const fileName& outputDir, // <case>/surface/TIME const fileName& outputDir, // <case>/surface/TIME
const fileName& surfaceName, // name of surface const fileName& surfaceName, // name of surface
const pointField& points, const meshedSurf& surf,
const faceList& faces,
const word& fieldName, // name of field const word& fieldName, // name of field
const Field<vector>& values, const Field<vector>& values,
const bool isNodeValues, const bool isNodeValues,
const bool verbose = false const bool verbose = false
) const; ) const; // override
//- Write sphericalTensorField for a single surface to file. //- Write sphericalTensorField for a single surface to file.
// One value per face or vertex (isNodeValues = true) // One value per face or vertex (isNodeValues = true)
@ -170,13 +166,12 @@ public:
( (
const fileName& outputDir, // <case>/surface/TIME const fileName& outputDir, // <case>/surface/TIME
const fileName& surfaceName, // name of surface const fileName& surfaceName, // name of surface
const pointField& points, const meshedSurf& surf,
const faceList& faces,
const word& fieldName, // name of field const word& fieldName, // name of field
const Field<sphericalTensor>& values, const Field<sphericalTensor>& values,
const bool isNodeValues, const bool isNodeValues,
const bool verbose = false const bool verbose = false
) const; ) const; // override
//- Write symmTensorField for a single surface to file. //- Write symmTensorField for a single surface to file.
// One value per face or vertex (isNodeValues = true) // One value per face or vertex (isNodeValues = true)
@ -184,13 +179,12 @@ public:
( (
const fileName& outputDir, // <case>/surface/TIME const fileName& outputDir, // <case>/surface/TIME
const fileName& surfaceName, // name of surface const fileName& surfaceName, // name of surface
const pointField& points, const meshedSurf& surf,
const faceList& faces,
const word& fieldName, // name of field const word& fieldName, // name of field
const Field<symmTensor>& values, const Field<symmTensor>& values,
const bool isNodeValues, const bool isNodeValues,
const bool verbose = false const bool verbose = false
) const; ) const; // override
//- Write tensorField for a single surface to file. //- Write tensorField for a single surface to file.
// One value per face or vertex (isNodeValues = true) // One value per face or vertex (isNodeValues = true)
@ -198,13 +192,12 @@ public:
( (
const fileName& outputDir, // <case>/surface/TIME const fileName& outputDir, // <case>/surface/TIME
const fileName& surfaceName, // name of surface const fileName& surfaceName, // name of surface
const pointField& points, const meshedSurf& surf,
const faceList& faces,
const word& fieldName, // name of field const word& fieldName, // name of field
const Field<tensor>& values, const Field<tensor>& values,
const bool isNodeValues, const bool isNodeValues,
const bool verbose = false const bool verbose = false
) const; ) const; // override
}; };

View File

@ -37,8 +37,7 @@ Foam::fileName Foam::boundaryDataSurfaceWriter::writeTemplate
( (
const fileName& outputDir, const fileName& outputDir,
const fileName& surfaceName, const fileName& surfaceName,
const pointField& points, const meshedSurf& surf,
const faceList& faces,
const word& fieldName, const word& fieldName,
const Field<Type>& values, const Field<Type>& values,
const bool isNodeValues, const bool isNodeValues,
@ -48,6 +47,9 @@ Foam::fileName Foam::boundaryDataSurfaceWriter::writeTemplate
const fileName baseDir(outputDir.path()/surfaceName); const fileName baseDir(outputDir.path()/surfaceName);
const fileName timeName(outputDir.name()); const fileName timeName(outputDir.name());
const pointField& points = surf.points();
const faceList& faces = surf.faces();
// Construct dummy time to use as an objectRegistry // Construct dummy time to use as an objectRegistry
const fileName caseDir(getEnv("FOAM_CASE")); const fileName caseDir(getEnv("FOAM_CASE"));

View File

@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\/ M anipulation | Copyright (C) 2015 OpenCFD Ltd. \\/ M anipulation | Copyright (C) 2015-2016 OpenCFD Ltd.
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
This file is part of OpenFOAM. This file is part of OpenFOAM.
@ -39,10 +39,12 @@ namespace Foam
void Foam::dxSurfaceWriter::writeGeometry void Foam::dxSurfaceWriter::writeGeometry
( (
Ostream& os, Ostream& os,
const pointField& points, const meshedSurf& surf
const faceList& faces
) )
{ {
const pointField& points = surf.points();
const faceList& faces = surf.faces();
// Write vertex coordinates // Write vertex coordinates
os << "# The irregular positions" << nl os << "# The irregular positions" << nl

View File

@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2011 OpenFOAM Foundation \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation
\\/ M anipulation | Copyright (C) 2015 OpenCFD Ltd. \\/ M anipulation | Copyright (C) 2015-2016 OpenCFD Ltd.
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
This file is part of OpenFOAM. This file is part of OpenFOAM.
@ -53,7 +53,7 @@ class dxSurfaceWriter
// Private Member Functions // Private Member Functions
static void writeGeometry(Ostream&, const pointField&, const faceList&); static void writeGeometry(Ostream&, const meshedSurf&);
static void writeTrailer(Ostream&, const bool isNodeValues); static void writeTrailer(Ostream&, const bool isNodeValues);
template<class Type> template<class Type>
@ -65,8 +65,7 @@ class dxSurfaceWriter
( (
const fileName& outputDir, const fileName& outputDir,
const fileName& surfaceName, const fileName& surfaceName,
const pointField& points, const meshedSurf& surf,
const faceList& faces,
const word& fieldName, const word& fieldName,
const Field<Type>& values, const Field<Type>& values,
const bool isNodeValues, const bool isNodeValues,
@ -98,13 +97,12 @@ public:
( (
const fileName& outputDir, // <case>/surface/TIME const fileName& outputDir, // <case>/surface/TIME
const fileName& surfaceName, // name of surface const fileName& surfaceName, // name of surface
const pointField& points, const meshedSurf& surf,
const faceList& faces,
const word& fieldName, // name of field const word& fieldName, // name of field
const Field<scalar>& values, const Field<scalar>& values,
const bool isNodeValues, const bool isNodeValues,
const bool verbose = false const bool verbose = false
) const; ) const; // override
//- Write vectorField for a single surface to file. //- Write vectorField for a single surface to file.
// One value per face or vertex (isNodeValues = true) // One value per face or vertex (isNodeValues = true)
@ -112,13 +110,12 @@ public:
( (
const fileName& outputDir, // <case>/surface/TIME const fileName& outputDir, // <case>/surface/TIME
const fileName& surfaceName, // name of surface const fileName& surfaceName, // name of surface
const pointField& points, const meshedSurf& surf,
const faceList& faces,
const word& fieldName, // name of field const word& fieldName, // name of field
const Field<vector>& values, const Field<vector>& values,
const bool isNodeValues, const bool isNodeValues,
const bool verbose = false const bool verbose = false
) const; ) const; // override
//- Write sphericalTensorField for a single surface to file. //- Write sphericalTensorField for a single surface to file.
// One value per face or vertex (isNodeValues = true) // One value per face or vertex (isNodeValues = true)
@ -126,13 +123,12 @@ public:
( (
const fileName& outputDir, // <case>/surface/TIME const fileName& outputDir, // <case>/surface/TIME
const fileName& surfaceName, // name of surface const fileName& surfaceName, // name of surface
const pointField& points, const meshedSurf& surf,
const faceList& faces,
const word& fieldName, // name of field const word& fieldName, // name of field
const Field<sphericalTensor>& values, const Field<sphericalTensor>& values,
const bool isNodeValues, const bool isNodeValues,
const bool verbose = false const bool verbose = false
) const; ) const; // override
//- Write symmTensorField for a single surface to file. //- Write symmTensorField for a single surface to file.
// One value per face or vertex (isNodeValues = true) // One value per face or vertex (isNodeValues = true)
@ -140,13 +136,12 @@ public:
( (
const fileName& outputDir, // <case>/surface/TIME const fileName& outputDir, // <case>/surface/TIME
const fileName& surfaceName, // name of surface const fileName& surfaceName, // name of surface
const pointField& points, const meshedSurf& surf,
const faceList& faces,
const word& fieldName, // name of field const word& fieldName, // name of field
const Field<symmTensor>& values, const Field<symmTensor>& values,
const bool isNodeValues, const bool isNodeValues,
const bool verbose = false const bool verbose = false
) const; ) const; // override
//- Write tensorField for a single surface to file. //- Write tensorField for a single surface to file.
// One value per face or vertex (isNodeValues = true) // One value per face or vertex (isNodeValues = true)
@ -154,13 +149,12 @@ public:
( (
const fileName& outputDir, // <case>/surface/TIME const fileName& outputDir, // <case>/surface/TIME
const fileName& surfaceName, // name of surface const fileName& surfaceName, // name of surface
const pointField& points, const meshedSurf& surf,
const faceList& faces,
const word& fieldName, // name of field const word& fieldName, // name of field
const Field<tensor>& values, const Field<tensor>& values,
const bool isNodeValues, const bool isNodeValues,
const bool verbose = false const bool verbose = false
) const; ) const; // override
}; };

View File

@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
\\/ M anipulation | Copyright (C) 2015 OpenCFD Ltd. \\/ M anipulation | Copyright (C) 2015-2016 OpenCFD Ltd.
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
This file is part of OpenFOAM. This file is part of OpenFOAM.
@ -50,8 +50,7 @@ Foam::fileName Foam::dxSurfaceWriter::writeTemplate
( (
const fileName& outputDir, const fileName& outputDir,
const fileName& surfaceName, const fileName& surfaceName,
const pointField& points, const meshedSurf& surf,
const faceList& faces,
const word& fieldName, const word& fieldName,
const Field<Type>& values, const Field<Type>& values,
const bool isNodeValues, const bool isNodeValues,
@ -70,7 +69,7 @@ Foam::fileName Foam::dxSurfaceWriter::writeTemplate
Info<< "Writing field " << fieldName << " to " << os.name() << endl; Info<< "Writing field " << fieldName << " to " << os.name() << endl;
} }
writeGeometry(os, points, faces); writeGeometry(os, surf);
writeData(os, values); writeData(os, values);
writeTrailer(os, isNodeValues); writeTrailer(os, isNodeValues);

View File

@ -84,11 +84,12 @@ Foam::fileName Foam::ensightSurfaceWriter::write
( (
const fileName& outputDir, const fileName& outputDir,
const fileName& surfaceName, const fileName& surfaceName,
const pointField& points, const meshedSurf& surf,
const faceList& faces,
const bool verbose const bool verbose
) const ) const
{ {
const pointField& points = surf.points();
const faceList& faces = surf.faces();
const ensight::FileName surfName(surfaceName); const ensight::FileName surfName(surfaceName);
if (!isDir(outputDir)) if (!isDir(outputDir))

View File

@ -67,8 +67,7 @@ class ensightSurfaceWriter
( (
const fileName& outputDir, const fileName& outputDir,
const fileName& surfaceName, const fileName& surfaceName,
const pointField& points, const meshedSurf& surf,
const faceList& faces,
const word& fieldName, const word& fieldName,
const Field<Type>& values, const Field<Type>& values,
const bool isNodeValues, const bool isNodeValues,
@ -81,8 +80,7 @@ class ensightSurfaceWriter
( (
const fileName& outputDir, const fileName& outputDir,
const fileName& surfaceName, const fileName& surfaceName,
const pointField& points, const meshedSurf& surf,
const faceList& faces,
const word& fieldName, const word& fieldName,
const Field<Type>& values, const Field<Type>& values,
const bool isNodeValues, const bool isNodeValues,
@ -95,8 +93,7 @@ class ensightSurfaceWriter
( (
const fileName& outputDir, const fileName& outputDir,
const fileName& surfaceName, const fileName& surfaceName,
const pointField& points, const meshedSurf& surf,
const faceList& faces,
const word& fieldName, const word& fieldName,
const Field<Type>& values, const Field<Type>& values,
const bool isNodeValues, const bool isNodeValues,
@ -135,10 +132,9 @@ public:
( (
const fileName& outputDir, const fileName& outputDir,
const fileName& surfaceName, const fileName& surfaceName,
const pointField& points, const meshedSurf& surf,
const faceList& faces,
const bool verbose = false const bool verbose = false
) const; ) const; // override
//- Write scalarField for a single surface to file. //- Write scalarField for a single surface to file.
@ -147,13 +143,12 @@ public:
( (
const fileName& outputDir, // <case>/surface/TIME const fileName& outputDir, // <case>/surface/TIME
const fileName& surfaceName, // name of surface const fileName& surfaceName, // name of surface
const pointField& points, const meshedSurf& surf,
const faceList& faces,
const word& fieldName, // name of field const word& fieldName, // name of field
const Field<scalar>& values, const Field<scalar>& values,
const bool isNodeValues, const bool isNodeValues,
const bool verbose = false const bool verbose = false
) const; ) const; // override
//- Write vectorField for a single surface to file. //- Write vectorField for a single surface to file.
// One value per face or vertex (isNodeValues = true) // One value per face or vertex (isNodeValues = true)
@ -161,13 +156,12 @@ public:
( (
const fileName& outputDir, // <case>/surface/TIME const fileName& outputDir, // <case>/surface/TIME
const fileName& surfaceName, // name of surface const fileName& surfaceName, // name of surface
const pointField& points, const meshedSurf& surf,
const faceList& faces,
const word& fieldName, // name of field const word& fieldName, // name of field
const Field<vector>& values, const Field<vector>& values,
const bool isNodeValues, const bool isNodeValues,
const bool verbose = false const bool verbose = false
) const; ) const; // override
//- Write sphericalTensorField for a single surface to file. //- Write sphericalTensorField for a single surface to file.
// One value per face or vertex (isNodeValues = true) // One value per face or vertex (isNodeValues = true)
@ -175,13 +169,12 @@ public:
( (
const fileName& outputDir, // <case>/surface/TIME const fileName& outputDir, // <case>/surface/TIME
const fileName& surfaceName, // name of surface const fileName& surfaceName, // name of surface
const pointField& points, const meshedSurf& surf,
const faceList& faces,
const word& fieldName, // name of field const word& fieldName, // name of field
const Field<sphericalTensor>& values, const Field<sphericalTensor>& values,
const bool isNodeValues, const bool isNodeValues,
const bool verbose = false const bool verbose = false
) const; ) const; // override
//- Write symmTensorField for a single surface to file. //- Write symmTensorField for a single surface to file.
// One value per face or vertex (isNodeValues = true) // One value per face or vertex (isNodeValues = true)
@ -189,13 +182,12 @@ public:
( (
const fileName& outputDir, // <case>/surface/TIME const fileName& outputDir, // <case>/surface/TIME
const fileName& surfaceName, // name of surface const fileName& surfaceName, // name of surface
const pointField& points, const meshedSurf& surf,
const faceList& faces,
const word& fieldName, // name of field const word& fieldName, // name of field
const Field<symmTensor>& values, const Field<symmTensor>& values,
const bool isNodeValues, const bool isNodeValues,
const bool verbose = false const bool verbose = false
) const; ) const; // override
//- Write tensorField for a single surface to file. //- Write tensorField for a single surface to file.
// One value per face or vertex (isNodeValues = true) // One value per face or vertex (isNodeValues = true)
@ -203,13 +195,12 @@ public:
( (
const fileName& outputDir, // <case>/surface/TIME const fileName& outputDir, // <case>/surface/TIME
const fileName& surfaceName, // name of surface const fileName& surfaceName, // name of surface
const pointField& points, const meshedSurf& surf,
const faceList& faces,
const word& fieldName, // name of field const word& fieldName, // name of field
const Field<tensor>& values, const Field<tensor>& values,
const bool isNodeValues, const bool isNodeValues,
const bool verbose = false const bool verbose = false
) const; ) const; // override
}; };

View File

@ -40,8 +40,7 @@ Foam::fileName Foam::ensightSurfaceWriter::writeUncollated
( (
const fileName& outputDir, const fileName& outputDir,
const fileName& surfaceName, const fileName& surfaceName,
const pointField& points, const meshedSurf& surf,
const faceList& faces,
const word& fieldName, const word& fieldName,
const Field<Type>& values, const Field<Type>& values,
const bool isNodeValues, const bool isNodeValues,
@ -117,7 +116,14 @@ Foam::fileName Foam::ensightSurfaceWriter::writeUncollated
<< " " << timeValue << " " << timeValue
<< nl << nl << "# end" << nl; << nl << nl << "# end" << nl;
ensightPartFaces ensPart(0, osGeom.name().name(), points, faces, true); ensightPartFaces ensPart
(
0,
osGeom.name().name(),
surf.points(),
surf.faces(),
true // contiguous points
);
osGeom << ensPart; osGeom << ensPart;
// Write field // Write field
@ -139,8 +145,7 @@ Foam::fileName Foam::ensightSurfaceWriter::writeCollated
( (
const fileName& outputDir, const fileName& outputDir,
const fileName& surfaceName, const fileName& surfaceName,
const pointField& points, const meshedSurf& surf,
const faceList& faces,
const word& fieldName, const word& fieldName,
const Field<Type>& values, const Field<Type>& values,
const bool isNodeValues, const bool isNodeValues,
@ -310,7 +315,14 @@ Foam::fileName Foam::ensightSurfaceWriter::writeCollated
// Write geometry // Write geometry
ensightPartFaces ensPart(0, meshFile.name(), points, faces, true); ensightPartFaces ensPart
(
0,
meshFile.name(),
surf.points(),
surf.faces(),
true // contiguous points
);
if (!exists(meshFile)) if (!exists(meshFile))
{ {
if (verbose) if (verbose)
@ -377,8 +389,7 @@ Foam::fileName Foam::ensightSurfaceWriter::writeTemplate
( (
const fileName& outputDir, const fileName& outputDir,
const fileName& surfaceName, const fileName& surfaceName,
const pointField& points, const meshedSurf& surf,
const faceList& faces,
const word& fieldName, const word& fieldName,
const Field<Type>& values, const Field<Type>& values,
const bool isNodeValues, const bool isNodeValues,
@ -391,8 +402,7 @@ Foam::fileName Foam::ensightSurfaceWriter::writeTemplate
( (
outputDir, outputDir,
surfaceName, surfaceName,
points, surf,
faces,
fieldName, fieldName,
values, values,
isNodeValues, isNodeValues,
@ -405,8 +415,7 @@ Foam::fileName Foam::ensightSurfaceWriter::writeTemplate
( (
outputDir, outputDir,
surfaceName, surfaceName,
points, surf,
faces,
fieldName, fieldName,
values, values,
isNodeValues, isNodeValues,

View File

@ -24,10 +24,7 @@ License
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
#include "foamSurfaceWriter.H" #include "foamSurfaceWriter.H"
#include "OFstream.H" #include "OFstream.H"
#include "OSspecific.H"
#include "makeSurfaceWriterMethods.H" #include "makeSurfaceWriterMethods.H"
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
@ -58,11 +55,13 @@ Foam::fileName Foam::foamSurfaceWriter::write
( (
const fileName& outputDir, const fileName& outputDir,
const fileName& surfaceName, const fileName& surfaceName,
const pointField& points, const meshedSurf& surf,
const faceList& faces,
const bool verbose const bool verbose
) const ) const
{ {
const pointField& points = surf.points();
const faceList& faces = surf.faces();
fileName surfaceDir(outputDir/surfaceName); fileName surfaceDir(outputDir/surfaceName);
if (!isDir(surfaceDir)) if (!isDir(surfaceDir))

View File

@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\/ M anipulation | Copyright (C) 2015 OpenCFD Ltd. \\/ M anipulation | Copyright (C) 2015-2016 OpenCFD Ltd.
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
This file is part of OpenFOAM. This file is part of OpenFOAM.
@ -43,7 +43,7 @@ namespace Foam
{ {
/*---------------------------------------------------------------------------*\ /*---------------------------------------------------------------------------*\
Class foamSurfaceWriter Declaration Class foamSurfaceWriter Declaration
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
class foamSurfaceWriter class foamSurfaceWriter
@ -58,8 +58,7 @@ class foamSurfaceWriter
( (
const fileName& outputDir, const fileName& outputDir,
const fileName& surfaceName, const fileName& surfaceName,
const pointField& points, const meshedSurf& surf,
const faceList& faces,
const word& fieldName, const word& fieldName,
const Field<Type>& values, const Field<Type>& values,
const bool isNodeValues, const bool isNodeValues,
@ -97,10 +96,9 @@ public:
( (
const fileName& outputDir, const fileName& outputDir,
const fileName& surfaceName, const fileName& surfaceName,
const pointField& points, const meshedSurf& surf,
const faceList& faces,
const bool verbose = false const bool verbose = false
) const; ) const; // override
//- Write scalarField for a single surface to file. //- Write scalarField for a single surface to file.
@ -109,13 +107,12 @@ public:
( (
const fileName& outputDir, // <case>/surface/TIME const fileName& outputDir, // <case>/surface/TIME
const fileName& surfaceName, // name of surface const fileName& surfaceName, // name of surface
const pointField& points, const meshedSurf& surf,
const faceList& faces,
const word& fieldName, // name of field const word& fieldName, // name of field
const Field<scalar>& values, const Field<scalar>& values,
const bool isNodeValues, const bool isNodeValues,
const bool verbose = false const bool verbose = false
) const; ) const; // override
//- Write vectorField for a single surface to file. //- Write vectorField for a single surface to file.
// One value per face or vertex (isNodeValues = true) // One value per face or vertex (isNodeValues = true)
@ -123,13 +120,12 @@ public:
( (
const fileName& outputDir, // <case>/surface/TIME const fileName& outputDir, // <case>/surface/TIME
const fileName& surfaceName, // name of surface const fileName& surfaceName, // name of surface
const pointField& points, const meshedSurf& surf,
const faceList& faces,
const word& fieldName, // name of field const word& fieldName, // name of field
const Field<vector>& values, const Field<vector>& values,
const bool isNodeValues, const bool isNodeValues,
const bool verbose = false const bool verbose = false
) const; ) const; // override
//- Write sphericalTensorField for a single surface to file. //- Write sphericalTensorField for a single surface to file.
// One value per face or vertex (isNodeValues = true) // One value per face or vertex (isNodeValues = true)
@ -137,13 +133,12 @@ public:
( (
const fileName& outputDir, // <case>/surface/TIME const fileName& outputDir, // <case>/surface/TIME
const fileName& surfaceName, // name of surface const fileName& surfaceName, // name of surface
const pointField& points, const meshedSurf& surf,
const faceList& faces,
const word& fieldName, // name of field const word& fieldName, // name of field
const Field<sphericalTensor>& values, const Field<sphericalTensor>& values,
const bool isNodeValues, const bool isNodeValues,
const bool verbose = false const bool verbose = false
) const; ) const; // override
//- Write symmTensorField for a single surface to file. //- Write symmTensorField for a single surface to file.
// One value per face or vertex (isNodeValues = true) // One value per face or vertex (isNodeValues = true)
@ -151,13 +146,12 @@ public:
( (
const fileName& outputDir, // <case>/surface/TIME const fileName& outputDir, // <case>/surface/TIME
const fileName& surfaceName, // name of surface const fileName& surfaceName, // name of surface
const pointField& points, const meshedSurf& surf,
const faceList& faces,
const word& fieldName, // name of field const word& fieldName, // name of field
const Field<symmTensor>& values, const Field<symmTensor>& values,
const bool isNodeValues, const bool isNodeValues,
const bool verbose = false const bool verbose = false
) const; ) const; // override
//- Write tensorField for a single surface to file. //- Write tensorField for a single surface to file.
// One value per face or vertex (isNodeValues = true) // One value per face or vertex (isNodeValues = true)
@ -165,13 +159,12 @@ public:
( (
const fileName& outputDir, // <case>/surface/TIME const fileName& outputDir, // <case>/surface/TIME
const fileName& surfaceName, // name of surface const fileName& surfaceName, // name of surface
const pointField& points, const meshedSurf& surf,
const faceList& faces,
const word& fieldName, // name of field const word& fieldName, // name of field
const Field<tensor>& values, const Field<tensor>& values,
const bool isNodeValues, const bool isNodeValues,
const bool verbose = false const bool verbose = false
) const; ) const; // override
}; };

View File

@ -33,8 +33,7 @@ Foam::fileName Foam::foamSurfaceWriter::writeTemplate
( (
const fileName& outputDir, const fileName& outputDir,
const fileName& surfaceName, const fileName& surfaceName,
const pointField& points, const meshedSurf& surf,
const faceList& faces,
const word& fieldName, const word& fieldName,
const Field<Type>& values, const Field<Type>& values,
const bool isNodeValues, const bool isNodeValues,

View File

@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\/ M anipulation | Copyright (C) 2015 OpenCFD Ltd. \\/ M anipulation | Copyright (C) 2015-2016 OpenCFD Ltd.
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
This file is part of OpenFOAM. This file is part of OpenFOAM.
@ -51,20 +51,18 @@ namespace Foam
( \ ( \
const fileName& outputDir, \ const fileName& outputDir, \
const fileName& surfaceName, \ const fileName& surfaceName, \
const pointField& points, \ const meshedSurf& surf, \
const faceList& faces, \
const word& fieldName, \ const word& fieldName, \
const Field<FieldType>& values, \ const Field<FieldType>& values, \
const bool isNodeValues, \ const bool isNodeValues, \
const bool verbose \ const bool verbose \
) const \ ) const \
{ \ { \
return writeTemplate \ return writeTemplate \
( \ ( \
outputDir, \ outputDir, \
surfaceName, \ surfaceName, \
points, \ surf, \
faces, \
fieldName, \ fieldName, \
values, \ values, \
isNodeValues, \ isNodeValues, \

View File

@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2012-2016 OpenFOAM Foundation \\ / A nd | Copyright (C) 2012-2016 OpenFOAM Foundation
\\/ M anipulation | Copyright (C) 2015 OpenCFD Ltd. \\/ M anipulation | Copyright (C) 2015-2016 OpenCFD Ltd.
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
This file is part of OpenFOAM. This file is part of OpenFOAM.
@ -27,6 +27,7 @@ License
#include "IOmanip.H" #include "IOmanip.H"
#include "Tuple2.H" #include "Tuple2.H"
#include "makeSurfaceWriterMethods.H" #include "makeSurfaceWriterMethods.H"
#include "HashSet.H"
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
@ -204,6 +205,7 @@ void Foam::nastranSurfaceWriter::writeFace
const word& faceType, const word& faceType,
const labelList& facePts, const labelList& facePts,
label& nFace, label& nFace,
const label PID,
OFstream& os OFstream& os
) const ) const
{ {
@ -221,16 +223,12 @@ void Foam::nastranSurfaceWriter::writeFace
// For CTRIA3 elements, cols 7 onwards are not used // For CTRIA3 elements, cols 7 onwards are not used
label PID = 1;
writeKeyword(faceType, os); writeKeyword(faceType, os);
os << separator_; os << separator_;
os.setf(ios_base::right); os.setf(ios_base::right);
writeValue(nFace++, os); writeValue(nFace++, os);
os << separator_; os << separator_;
writeValue(PID, os); writeValue(PID, os);
@ -286,12 +284,15 @@ void Foam::nastranSurfaceWriter::writeFace
void Foam::nastranSurfaceWriter::writeGeometry void Foam::nastranSurfaceWriter::writeGeometry
( (
const pointField& points, const meshedSurf& surf,
const faceList& faces,
List<DynamicList<face>>& decomposedFaces, List<DynamicList<face>>& decomposedFaces,
OFstream& os OFstream& os
) const ) const
{ {
const pointField& points = surf.points();
const faceList& faces = surf.faces();
const labelList& zones = surf.zoneIds();
// Write points // Write points
os << "$" << nl os << "$" << nl
@ -303,28 +304,31 @@ void Foam::nastranSurfaceWriter::writeGeometry
writeCoord(points[pointi], pointi, os); writeCoord(points[pointi], pointi, os);
} }
// Write faces // Write faces
decomposedFaces.clear();
decomposedFaces.setSize(faces.size());
os << "$" << nl os << "$" << nl
<< "$ Faces" << nl << "$ Faces" << nl
<< "$" << nl; << "$" << nl;
label nFace = 1; label nFace = 1; // the element-id
forAll(faces, facei) forAll(faces, facei)
{ {
const face& f = faces[facei]; const face& f = faces[facei];
// 1-offset for PID
const label PID = 1 + (facei < zones.size() ? zones[facei] : 0);
if (f.size() == 3) if (f.size() == 3)
{ {
writeFace("CTRIA3", faces[facei], nFace, os); writeFace("CTRIA3", f, nFace, PID, os);
decomposedFaces[facei].append(faces[facei]); decomposedFaces[facei].append(f);
} }
else if (f.size() == 4) else if (f.size() == 4)
{ {
writeFace("CQUAD4", faces[facei], nFace, os); writeFace("CQUAD4", f, nFace, PID, os);
decomposedFaces[facei].append(faces[facei]); decomposedFaces[facei].append(f);
} }
else else
{ {
@ -335,7 +339,7 @@ void Foam::nastranSurfaceWriter::writeGeometry
forAll(triFaces, trii) forAll(triFaces, trii)
{ {
writeFace("CTRIA3", triFaces[trii], nFace, os); writeFace("CTRIA3", triFaces[trii], nFace, PID, os);
decomposedFaces[facei].append(triFaces[trii]); decomposedFaces[facei].append(triFaces[trii]);
} }
} }
@ -343,29 +347,42 @@ void Foam::nastranSurfaceWriter::writeGeometry
} }
void Foam::nastranSurfaceWriter::writeFooter(Ostream& os) const void Foam::nastranSurfaceWriter::writeFooter
(
Ostream& os,
const meshedSurf& surf
) const
{ {
label PID = 1; // zone id have been used for the PID. Find unique values.
writeKeyword("PSHELL", os); labelList pidsUsed = labelHashSet(surf.zoneIds()).sortedToc();
if (pidsUsed.empty())
os << separator_;
writeValue(PID, os);
for (label i = 0; i < 7; i++)
{ {
// Dummy values pidsUsed.setSize(1, Zero); // fallback
os << separator_;
writeValue(1, os);
} }
os << nl; for (auto pid : pidsUsed)
writeKeyword("MAT1", os); {
os << separator_; writeKeyword("PSHELL", os);
os << separator_;
writeValue(pid+1, os); // 1-offset for PID
for (label i = 0; i < 7; i++)
{
// Dummy values
os << separator_;
writeValue(1, os);
}
os << nl;
}
// use single material ID
label MID = 1; label MID = 1;
writeKeyword("MAT1", os);
os << separator_;
writeValue(MID, os); writeValue(MID, os);
for (label i = 0; i < 7; i++) for (label i = 0; i < 7; i++)
@ -374,7 +391,6 @@ void Foam::nastranSurfaceWriter::writeFooter(Ostream& os) const
os << separator_; os << separator_;
writeValue("", os); writeValue("", os);
} }
os << nl; os << nl;
} }
@ -431,8 +447,7 @@ Foam::fileName Foam::nastranSurfaceWriter::write
( (
const fileName& outputDir, const fileName& outputDir,
const fileName& surfaceName, const fileName& surfaceName,
const pointField& points, const meshedSurf& surf,
const faceList& faces,
const bool verbose const bool verbose
) const ) const
{ {
@ -453,16 +468,15 @@ Foam::fileName Foam::nastranSurfaceWriter::write
<< "$" << nl << "$" << nl
<< "BEGIN BULK" << nl; << "BEGIN BULK" << nl;
List<DynamicList<face>> decomposedFaces(faces.size()); List<DynamicList<face>> decomposedFaces;
writeGeometry(surf, decomposedFaces, os);
writeGeometry(points, faces, decomposedFaces, os);
if (!isDir(outputDir)) if (!isDir(outputDir))
{ {
mkDir(outputDir); mkDir(outputDir);
} }
writeFooter(os); writeFooter(os, surf);
os << "ENDDATA" << endl; os << "ENDDATA" << endl;

View File

@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2012-2016 OpenFOAM Foundation \\ / A nd | Copyright (C) 2012-2016 OpenFOAM Foundation
\\/ M anipulation | Copyright (C) 2015 OpenCFD Ltd. \\/ M anipulation | Copyright (C) 2015-2016 OpenCFD Ltd.
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
This file is part of OpenFOAM. This file is part of OpenFOAM.
@ -27,6 +27,7 @@ Class
Description Description
A surface writer for the Nastran file format - both surface mesh and fields A surface writer for the Nastran file format - both surface mesh and fields
\verbatim
formatOptions formatOptions
{ {
nastran nastran
@ -43,6 +44,7 @@ Description
format free; //short, long, free format free; //short, long, free
} }
}; };
\endverbatim
SourceFiles SourceFiles
nastranSurfaceWriter.C nastranSurfaceWriter.C
@ -80,21 +82,20 @@ public:
wfFree wfFree
}; };
static const NamedEnum<writeFormat, 3> writeFormatNames_;
enum dataFormat enum dataFormat
{ {
dfPLOAD2, dfPLOAD2,
dfPLOAD4 dfPLOAD4
}; };
static const NamedEnum<dataFormat, 2> dataFormatNames_;
private: private:
// Private data // Private data
static const NamedEnum<writeFormat, 3> writeFormatNames_;
static const NamedEnum<dataFormat, 2> dataFormatNames_;
//- Write option //- Write option
writeFormat writeFormat_; writeFormat writeFormat_;
@ -127,14 +128,14 @@ private:
const word& faceType, const word& faceType,
const labelList& facePts, const labelList& facePts,
label& nFace, label& nFace,
const label PID,
OFstream& os OFstream& os
) const; ) const;
//- Main driver to write the surface mesh geometry //- Main driver to write the surface mesh geometry
void writeGeometry void writeGeometry
( (
const pointField& points, const meshedSurf& surf,
const faceList& faces,
List<DynamicList<face>>& decomposedFaces, List<DynamicList<face>>& decomposedFaces,
OFstream& os OFstream& os
) const; ) const;
@ -147,7 +148,7 @@ private:
) const; ) const;
//- Write the footer information //- Write the footer information
void writeFooter(Ostream& os) const; void writeFooter(Ostream& os, const meshedSurf& surf) const;
//- Write a formatted value to the output stream //- Write a formatted value to the output stream
template<class Type> template<class Type>
@ -173,8 +174,7 @@ private:
( (
const fileName& outputDir, const fileName& outputDir,
const fileName& surfaceName, const fileName& surfaceName,
const pointField& points, const meshedSurf& surf,
const faceList& faces,
const word& fieldName, const word& fieldName,
const Field<Type>& values, const Field<Type>& values,
const bool isNodeValues, const bool isNodeValues,
@ -215,10 +215,9 @@ public:
( (
const fileName& outputDir, const fileName& outputDir,
const fileName& surfaceName, const fileName& surfaceName,
const pointField& points, const meshedSurf& surf,
const faceList& faces,
const bool verbose = false const bool verbose = false
) const; ) const; // override
//- Write scalarField for a single surface to file. //- Write scalarField for a single surface to file.
// One value per face or vertex (isNodeValues = true) // One value per face or vertex (isNodeValues = true)
@ -226,13 +225,12 @@ public:
( (
const fileName& outputDir, const fileName& outputDir,
const fileName& surfaceName, const fileName& surfaceName,
const pointField& points, const meshedSurf& surf,
const faceList& faces,
const word& fieldName, const word& fieldName,
const Field<scalar>& values, const Field<scalar>& values,
const bool isNodeValues, const bool isNodeValues,
const bool verbose = false const bool verbose = false
) const; ) const; // override
//- Write vectorField for a single surface to file. //- Write vectorField for a single surface to file.
// One value per face or vertex (isNodeValues = true) // One value per face or vertex (isNodeValues = true)
@ -240,13 +238,12 @@ public:
( (
const fileName& outputDir, const fileName& outputDir,
const fileName& surfaceName, const fileName& surfaceName,
const pointField& points, const meshedSurf& surf,
const faceList& faces,
const word& fieldName, const word& fieldName,
const Field<vector>& values, const Field<vector>& values,
const bool isNodeValues, const bool isNodeValues,
const bool verbose = false const bool verbose = false
) const; ) const; // override
//- Write sphericalTensorField for a single surface to file. //- Write sphericalTensorField for a single surface to file.
// One value per face or vertex (isNodeValues = true) // One value per face or vertex (isNodeValues = true)
@ -254,13 +251,12 @@ public:
( (
const fileName& outputDir, const fileName& outputDir,
const fileName& surfaceName, const fileName& surfaceName,
const pointField& points, const meshedSurf& surf,
const faceList& faces,
const word& fieldName, const word& fieldName,
const Field<sphericalTensor>& values, const Field<sphericalTensor>& values,
const bool isNodeValues, const bool isNodeValues,
const bool verbose = false const bool verbose = false
) const; ) const; // override
//- Write symmTensorField for a single surface to file. //- Write symmTensorField for a single surface to file.
// One value per face or vertex (isNodeValues = true) // One value per face or vertex (isNodeValues = true)
@ -268,13 +264,12 @@ public:
( (
const fileName& outputDir, const fileName& outputDir,
const fileName& surfaceName, const fileName& surfaceName,
const pointField& points, const meshedSurf& surf,
const faceList& faces,
const word& fieldName, const word& fieldName,
const Field<symmTensor>& values, const Field<symmTensor>& values,
const bool isNodeValues, const bool isNodeValues,
const bool verbose = false const bool verbose = false
) const; ) const; // override
//- Write tensorField for a single surface to file. //- Write tensorField for a single surface to file.
// One value per face or vertex (isNodeValues = true) // One value per face or vertex (isNodeValues = true)
@ -282,13 +277,12 @@ public:
( (
const fileName& outputDir, const fileName& outputDir,
const fileName& surfaceName, const fileName& surfaceName,
const pointField& points, const meshedSurf& surf,
const faceList& faces,
const word& fieldName, const word& fieldName,
const Field<tensor>& values, const Field<tensor>& values,
const bool isNodeValues, const bool isNodeValues,
const bool verbose = false const bool verbose = false
) const; ) const; // override
}; };

View File

@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2012-2016 OpenFOAM Foundation \\ / A nd | Copyright (C) 2012-2016 OpenFOAM Foundation
\\/ M anipulation | Copyright (C) 2015 OpenCFD Ltd. \\/ M anipulation | Copyright (C) 2015-2016 OpenCFD Ltd.
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
This file is part of OpenFOAM. This file is part of OpenFOAM.
@ -115,9 +115,9 @@ void Foam::nastranSurfaceWriter::writeFaceValue
os << separator_; os << separator_;
writeValue(EID, os); writeValue(EID, os);
break; break;
} }
case dfPLOAD4: case dfPLOAD4:
{ {
writeValue(EID, os); writeValue(EID, os);
@ -129,6 +129,7 @@ void Foam::nastranSurfaceWriter::writeFaceValue
} }
break; break;
} }
default: default:
{ {
FatalErrorInFunction FatalErrorInFunction
@ -148,8 +149,7 @@ Foam::fileName Foam::nastranSurfaceWriter::writeTemplate
( (
const fileName& outputDir, const fileName& outputDir,
const fileName& surfaceName, const fileName& surfaceName,
const pointField& points, const meshedSurf& surf,
const faceList& faces,
const word& fieldName, const word& fieldName,
const Field<Type>& values, const Field<Type>& values,
const bool isNodeValues, const bool isNodeValues,
@ -192,10 +192,8 @@ Foam::fileName Foam::nastranSurfaceWriter::writeTemplate
<< "$" << nl << "$" << nl
<< "BEGIN BULK" << nl; << "BEGIN BULK" << nl;
List<DynamicList<face>> decomposedFaces(faces.size()); List<DynamicList<face>> decomposedFaces;
writeGeometry(surf, decomposedFaces, os);
writeGeometry(points, faces, decomposedFaces, os);
os << "$" << nl os << "$" << nl
<< "$ Field data" << nl << "$ Field data" << nl
@ -238,7 +236,7 @@ Foam::fileName Foam::nastranSurfaceWriter::writeTemplate
} }
} }
writeFooter(os); writeFooter(os, surf);
os << "ENDDATA" << endl; os << "ENDDATA" << endl;

View File

@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2011 OpenFOAM Foundation \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation
\\/ M anipulation | Copyright (C) 2015 OpenCFD Ltd. \\/ M anipulation | Copyright (C) 2015-2016 OpenCFD Ltd.
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
This file is part of OpenFOAM. This file is part of OpenFOAM.
@ -60,8 +60,7 @@ Foam::fileName Foam::proxySurfaceWriter::write
( (
const fileName& outputDir, const fileName& outputDir,
const fileName& surfaceName, const fileName& surfaceName,
const pointField& points, const meshedSurf& surf,
const faceList& faces,
const bool verbose const bool verbose
) const ) const
{ {
@ -83,7 +82,7 @@ Foam::fileName Foam::proxySurfaceWriter::write
Info<< "Writing geometry to " << outName << endl; Info<< "Writing geometry to " << outName << endl;
} }
MeshedSurfaceProxy<face>(points, faces).write(outName); MeshedSurfaceProxy<face>(surf.points(), surf.faces()).write(outName);
return outName; return outName;
} }

View File

@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2011 OpenFOAM Foundation \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation
\\/ M anipulation | Copyright (C) 2015 OpenCFD Ltd. \\/ M anipulation | Copyright (C) 2015-2016 OpenCFD Ltd.
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
This file is part of OpenFOAM. This file is part of OpenFOAM.
@ -89,10 +89,9 @@ public:
( (
const fileName& outputDir, const fileName& outputDir,
const fileName& surfaceName, const fileName& surfaceName,
const pointField& points, const meshedSurf& surf,
const faceList& faces,
const bool verbose = false const bool verbose = false
) const; ) const; // override
}; };

View File

@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\/ M anipulation | Copyright (C) 2015 OpenCFD Ltd. \\/ M anipulation | Copyright (C) 2015-2016 OpenCFD Ltd.
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
This file is part of OpenFOAM. This file is part of OpenFOAM.
@ -40,11 +40,9 @@ namespace Foam
inline void Foam::rawSurfaceWriter::writeLocation inline void Foam::rawSurfaceWriter::writeLocation
( (
Ostream& os, Ostream& os,
const pointField& points, const point& pt
const label pointi
) )
{ {
const point& pt = points[pointi];
os << pt.x() << ' ' << pt.y() << ' ' << pt.z() << ' '; os << pt.x() << ' ' << pt.y() << ' ' << pt.z() << ' ';
} }
@ -53,12 +51,10 @@ inline void Foam::rawSurfaceWriter::writeLocation
( (
Ostream& os, Ostream& os,
const pointField& points, const pointField& points,
const faceList& faces, const face& f
const label facei
) )
{ {
const point& ct = faces[facei].centre(points); writeLocation(os, f.centre(points));
os << ct.x() << ' ' << ct.y() << ' ' << ct.z() << ' ';
} }
@ -238,11 +234,13 @@ Foam::fileName Foam::rawSurfaceWriter::write
( (
const fileName& outputDir, const fileName& outputDir,
const fileName& surfaceName, const fileName& surfaceName,
const pointField& points, const meshedSurf& surf,
const faceList& faces,
const bool verbose const bool verbose
) const ) const
{ {
const pointField& points = surf.points();
const faceList& faces = surf.faces();
if (!isDir(outputDir)) if (!isDir(outputDir))
{ {
mkDir(outputDir); mkDir(outputDir);
@ -269,7 +267,7 @@ Foam::fileName Foam::rawSurfaceWriter::write
// Write faces centres // Write faces centres
forAll(faces, elemI) forAll(faces, elemI)
{ {
writeLocation(os, points, faces, elemI); writeLocation(os, points, faces[elemI]);
os << nl; os << nl;
} }

View File

@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\/ M anipulation | Copyright (C) 2015 OpenCFD Ltd. \\/ M anipulation | Copyright (C) 2015-2016 OpenCFD Ltd.
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
This file is part of OpenFOAM. This file is part of OpenFOAM.
@ -59,19 +59,13 @@ class rawSurfaceWriter
// Private Member Functions // Private Member Functions
static inline void writeLocation static inline void writeLocation(Ostream&, const point&);
(
Ostream&,
const pointField&,
const label pointi
);
static inline void writeLocation static inline void writeLocation
( (
Ostream&, Ostream&,
const pointField&, const pointField&,
const faceList&, const face&
const label facei
); );
template<class Type> template<class Type>
@ -92,8 +86,7 @@ class rawSurfaceWriter
( (
const fileName& outputDir, const fileName& outputDir,
const fileName& surfaceName, const fileName& surfaceName,
const pointField& points, const meshedSurf& surf,
const faceList& faces,
const word& fieldName, const word& fieldName,
const Field<Type>& values, const Field<Type>& values,
const bool isNodeValues, const bool isNodeValues,
@ -127,10 +120,9 @@ public:
( (
const fileName& outputDir, const fileName& outputDir,
const fileName& surfaceName, const fileName& surfaceName,
const pointField& points, const meshedSurf& surf,
const faceList& faces,
const bool verbose = false const bool verbose = false
) const; ) const; // override
//- Write scalarField for a single surface to file. //- Write scalarField for a single surface to file.
@ -139,13 +131,12 @@ public:
( (
const fileName& outputDir, // <case>/surface/TIME const fileName& outputDir, // <case>/surface/TIME
const fileName& surfaceName, // name of surface const fileName& surfaceName, // name of surface
const pointField& points, const meshedSurf& surf,
const faceList& faces,
const word& fieldName, // name of field const word& fieldName, // name of field
const Field<scalar>& values, const Field<scalar>& values,
const bool isNodeValues, const bool isNodeValues,
const bool verbose = false const bool verbose = false
) const; ) const; // override
//- Write vectorField for a single surface to file. //- Write vectorField for a single surface to file.
// One value per face or vertex (isNodeValues = true) // One value per face or vertex (isNodeValues = true)
@ -153,13 +144,12 @@ public:
( (
const fileName& outputDir, // <case>/surface/TIME const fileName& outputDir, // <case>/surface/TIME
const fileName& surfaceName, // name of surface const fileName& surfaceName, // name of surface
const pointField& points, const meshedSurf& surf,
const faceList& faces,
const word& fieldName, // name of field const word& fieldName, // name of field
const Field<vector>& values, const Field<vector>& values,
const bool isNodeValues, const bool isNodeValues,
const bool verbose = false const bool verbose = false
) const; ) const; // override
//- Write sphericalTensorField for a single surface to file. //- Write sphericalTensorField for a single surface to file.
// One value per face or vertex (isNodeValues = true) // One value per face or vertex (isNodeValues = true)
@ -167,13 +157,12 @@ public:
( (
const fileName& outputDir, // <case>/surface/TIME const fileName& outputDir, // <case>/surface/TIME
const fileName& surfaceName, // name of surface const fileName& surfaceName, // name of surface
const pointField& points, const meshedSurf& surf,
const faceList& faces,
const word& fieldName, // name of field const word& fieldName, // name of field
const Field<sphericalTensor>& values, const Field<sphericalTensor>& values,
const bool isNodeValues, const bool isNodeValues,
const bool verbose = false const bool verbose = false
) const; ) const; // override
//- Write symmTensorField for a single surface to file. //- Write symmTensorField for a single surface to file.
// One value per face or vertex (isNodeValues = true) // One value per face or vertex (isNodeValues = true)
@ -181,13 +170,12 @@ public:
( (
const fileName& outputDir, // <case>/surface/TIME const fileName& outputDir, // <case>/surface/TIME
const fileName& surfaceName, // name of surface const fileName& surfaceName, // name of surface
const pointField& points, const meshedSurf& surf,
const faceList& faces,
const word& fieldName, // name of field const word& fieldName, // name of field
const Field<symmTensor>& values, const Field<symmTensor>& values,
const bool isNodeValues, const bool isNodeValues,
const bool verbose = false const bool verbose = false
) const; ) const; // override
//- Write tensorField for a single surface to file. //- Write tensorField for a single surface to file.
// One value per face or vertex (isNodeValues = true) // One value per face or vertex (isNodeValues = true)
@ -195,13 +183,12 @@ public:
( (
const fileName& outputDir, // <case>/surface/TIME const fileName& outputDir, // <case>/surface/TIME
const fileName& surfaceName, // name of surface const fileName& surfaceName, // name of surface
const pointField& points, const meshedSurf& surf,
const faceList& faces,
const word& fieldName, // name of field const word& fieldName, // name of field
const Field<tensor>& values, const Field<tensor>& values,
const bool isNodeValues, const bool isNodeValues,
const bool verbose = false const bool verbose = false
) const; ) const; // override
}; };

View File

@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
\\/ M anipulation | Copyright (C) 2015 OpenCFD Ltd. \\/ M anipulation | Copyright (C) 2015-2016 OpenCFD Ltd.
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
This file is part of OpenFOAM. This file is part of OpenFOAM.
@ -34,14 +34,16 @@ Foam::fileName Foam::rawSurfaceWriter::writeTemplate
( (
const fileName& outputDir, const fileName& outputDir,
const fileName& surfaceName, const fileName& surfaceName,
const pointField& points, const meshedSurf& surf,
const faceList& faces,
const word& fieldName, const word& fieldName,
const Field<Type>& values, const Field<Type>& values,
const bool isNodeValues, const bool isNodeValues,
const bool verbose const bool verbose
) const ) const
{ {
const pointField& points = surf.points();
const faceList& faces = surf.faces();
if (!isDir(outputDir)) if (!isDir(outputDir))
{ {
mkDir(outputDir); mkDir(outputDir);
@ -73,7 +75,7 @@ Foam::fileName Foam::rawSurfaceWriter::writeTemplate
{ {
forAll(values, elemI) forAll(values, elemI)
{ {
writeLocation(os, points, elemI); writeLocation(os, points[elemI]);
writeData(os, values[elemI]); writeData(os, values[elemI]);
} }
} }
@ -81,7 +83,7 @@ Foam::fileName Foam::rawSurfaceWriter::writeTemplate
{ {
forAll(values, elemI) forAll(values, elemI)
{ {
writeLocation(os, points, faces, elemI); writeLocation(os, points, faces[elemI]);
writeData(os, values[elemI]); writeData(os, values[elemI]);
} }
} }

View File

@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2011 OpenFOAM Foundation \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation
\\/ M anipulation | Copyright (C) 2015 OpenCFD Ltd. \\/ M anipulation | Copyright (C) 2015-2016 OpenCFD Ltd.
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
This file is part of OpenFOAM. This file is part of OpenFOAM.
@ -94,8 +94,7 @@ Foam::fileName Foam::starcdSurfaceWriter::write
( (
const fileName& outputDir, const fileName& outputDir,
const fileName& surfaceName, const fileName& surfaceName,
const pointField& points, const meshedSurf& surf,
const faceList& faces,
const bool verbose const bool verbose
) const ) const
{ {
@ -111,7 +110,7 @@ Foam::fileName Foam::starcdSurfaceWriter::write
Info<< "Writing geometry to " << outName << endl; Info<< "Writing geometry to " << outName << endl;
} }
MeshedSurfaceProxy<face>(points, faces).write(outName); MeshedSurfaceProxy<face>(surf.points(), surf.faces()).write(outName);
return outName; return outName;
} }

View File

@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2011 OpenFOAM Foundation \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation
\\/ M anipulation | Copyright (C) 2015 OpenCFD Ltd. \\/ M anipulation | Copyright (C) 2015-2016 OpenCFD Ltd.
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
This file is part of OpenFOAM. This file is part of OpenFOAM.
@ -81,8 +81,7 @@ class starcdSurfaceWriter
( (
const fileName& outputDir, const fileName& outputDir,
const fileName& surfaceName, const fileName& surfaceName,
const pointField& points, const meshedSurf& surf,
const faceList& faces,
const word& fieldName, const word& fieldName,
const Field<Type>& values, const Field<Type>& values,
const bool isNodeValues, const bool isNodeValues,
@ -119,11 +118,10 @@ public:
virtual fileName write virtual fileName write
( (
const fileName& outputDir, const fileName& outputDir,
const fileName& surfaceName, const fileName& surfaceName, // name of surface
const pointField& points, const meshedSurf& surf,
const faceList& faces,
const bool verbose = false const bool verbose = false
) const; ) const; // override
//- Write scalarField for a single surface to file. //- Write scalarField for a single surface to file.
// One value per face or vertex (isNodeValues = true) // One value per face or vertex (isNodeValues = true)
@ -131,13 +129,12 @@ public:
( (
const fileName& outputDir, // <case>/surface/TIME const fileName& outputDir, // <case>/surface/TIME
const fileName& surfaceName, // name of surface const fileName& surfaceName, // name of surface
const pointField& points, const meshedSurf& surf,
const faceList& faces,
const word& fieldName, // name of field const word& fieldName, // name of field
const Field<scalar>& values, const Field<scalar>& values,
const bool isNodeValues, const bool isNodeValues,
const bool verbose = false const bool verbose = false
) const; ) const; // override
//- Write vectorField for a single surface to file. //- Write vectorField for a single surface to file.
// One value per face or vertex (isNodeValues = true) // One value per face or vertex (isNodeValues = true)
@ -145,13 +142,12 @@ public:
( (
const fileName& outputDir, // <case>/surface/TIME const fileName& outputDir, // <case>/surface/TIME
const fileName& surfaceName, // name of surface const fileName& surfaceName, // name of surface
const pointField& points, const meshedSurf& surf,
const faceList& faces,
const word& fieldName, // name of field const word& fieldName, // name of field
const Field<vector>& values, const Field<vector>& values,
const bool isNodeValues, const bool isNodeValues,
const bool verbose = false const bool verbose = false
) const; ) const; // override
//- Write sphericalTensorField for a single surface to file. //- Write sphericalTensorField for a single surface to file.
// One value per face or vertex (isNodeValues = true) // One value per face or vertex (isNodeValues = true)
@ -159,13 +155,12 @@ public:
( (
const fileName& outputDir, // <case>/surface/TIME const fileName& outputDir, // <case>/surface/TIME
const fileName& surfaceName, // name of surface const fileName& surfaceName, // name of surface
const pointField& points, const meshedSurf& surf,
const faceList& faces,
const word& fieldName, // name of field const word& fieldName, // name of field
const Field<sphericalTensor>& values, const Field<sphericalTensor>& values,
const bool isNodeValues, const bool isNodeValues,
const bool verbose = false const bool verbose = false
) const; ) const; // override
}; };

View File

@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
\\/ M anipulation | Copyright (C) 2015 OpenCFD Ltd. \\/ M anipulation | Copyright (C) 2015-2016 OpenCFD Ltd.
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
This file is part of OpenFOAM. This file is part of OpenFOAM.
@ -42,8 +42,7 @@ Foam::fileName Foam::starcdSurfaceWriter::writeTemplate
( (
const fileName& outputDir, const fileName& outputDir,
const fileName& surfaceName, const fileName& surfaceName,
const pointField& points, const meshedSurf&,
const faceList& faces,
const word& fieldName, const word& fieldName,
const Field<Type>& values, const Field<Type>& values,
const bool isNodeValues, const bool isNodeValues,

View File

@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation \\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation
\\/ M anipulation | Copyright (C) 2015 OpenCFD Ltd. \\/ M anipulation | Copyright (C) 2015-2016 OpenCFD Ltd.
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
This file is part of OpenFOAM. This file is part of OpenFOAM.
@ -37,10 +37,8 @@ SourceFiles
#include "typeInfo.H" #include "typeInfo.H"
#include "autoPtr.H" #include "autoPtr.H"
#include "pointField.H"
#include "faceList.H"
#include "fileName.H" #include "fileName.H"
#include "meshedSurfRef.H"
#include "runTimeSelectionTables.H" #include "runTimeSelectionTables.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -120,8 +118,7 @@ public:
( (
const fileName& outputDir, // <case>/surface/TIME const fileName& outputDir, // <case>/surface/TIME
const fileName& surfaceName, // name of surface const fileName& surfaceName, // name of surface
const pointField& points, const meshedSurf& surf,
const faceList& faces,
const bool verbose = false const bool verbose = false
) const ) const
{ {
@ -134,8 +131,7 @@ public:
( (
const fileName& outputDir, // <case>/surface/TIME const fileName& outputDir, // <case>/surface/TIME
const fileName& surfaceName, // name of surface const fileName& surfaceName, // name of surface
const pointField& points, const meshedSurf& surf,
const faceList& faces,
const word& fieldName, // name of field const word& fieldName, // name of field
const Field<scalar>& values, const Field<scalar>& values,
const bool isNodeValues, const bool isNodeValues,
@ -151,8 +147,7 @@ public:
( (
const fileName& outputDir, // <case>/surface/TIME const fileName& outputDir, // <case>/surface/TIME
const fileName& surfaceName, // name of surface const fileName& surfaceName, // name of surface
const pointField& points, const meshedSurf& surf,
const faceList& faces,
const word& fieldName, // name of field const word& fieldName, // name of field
const Field<vector>& values, const Field<vector>& values,
const bool isNodeValues, const bool isNodeValues,
@ -168,8 +163,7 @@ public:
( (
const fileName& outputDir, // <case>/surface/TIME const fileName& outputDir, // <case>/surface/TIME
const fileName& surfaceName, // name of surface const fileName& surfaceName, // name of surface
const pointField& points, const meshedSurf& surf,
const faceList& faces,
const word& fieldName, // name of field const word& fieldName, // name of field
const Field<sphericalTensor>& values, const Field<sphericalTensor>& values,
const bool isNodeValues, const bool isNodeValues,
@ -185,8 +179,7 @@ public:
( (
const fileName& outputDir, // <case>/surface/TIME const fileName& outputDir, // <case>/surface/TIME
const fileName& surfaceName, // name of surface const fileName& surfaceName, // name of surface
const pointField& points, const meshedSurf& surf,
const faceList& faces,
const word& fieldName, // name of field const word& fieldName, // name of field
const Field<symmTensor>& values, const Field<symmTensor>& values,
const bool isNodeValues, const bool isNodeValues,
@ -202,8 +195,7 @@ public:
( (
const fileName& outputDir, // <case>/surface/TIME const fileName& outputDir, // <case>/surface/TIME
const fileName& surfaceName, // name of surface const fileName& surfaceName, // name of surface
const pointField& points, const meshedSurf& surf,
const faceList& faces,
const word& fieldName, // name of field const word& fieldName, // name of field
const Field<tensor>& values, const Field<tensor>& values,
const bool isNodeValues, const bool isNodeValues,

View File

@ -40,10 +40,12 @@ namespace Foam
void Foam::vtkSurfaceWriter::writeGeometry void Foam::vtkSurfaceWriter::writeGeometry
( (
Ostream& os, Ostream& os,
const pointField& points, const meshedSurf& surf
const faceList& faces
) )
{ {
const pointField& points = surf.points();
const faceList& faces = surf.faces();
// header // header
os os
<< "# vtk DataFile Version 2.0" << nl << "# vtk DataFile Version 2.0" << nl
@ -131,8 +133,9 @@ namespace Foam
forAll(values, elemI) forAll(values, elemI)
{ {
const vector& v = values[elemI]; const vector& v = values[elemI];
os << float(v[0]) << ' ' << float(v[1]) << ' ' << float(v[2]) os << float(v[0]) << ' '
<< nl; << float(v[1]) << ' '
<< float(v[2]) << nl;
} }
} }
@ -234,8 +237,7 @@ Foam::fileName Foam::vtkSurfaceWriter::write
( (
const fileName& outputDir, const fileName& outputDir,
const fileName& surfaceName, const fileName& surfaceName,
const pointField& points, const meshedSurf& surf,
const faceList& faces,
const bool verbose const bool verbose
) const ) const
{ {
@ -252,7 +254,7 @@ Foam::fileName Foam::vtkSurfaceWriter::write
Info<< "Writing geometry to " << os.name() << endl; Info<< "Writing geometry to " << os.name() << endl;
} }
writeGeometry(os, points, faces); writeGeometry(os, surf);
return os.name(); return os.name();
} }

View File

@ -57,7 +57,7 @@ class vtkSurfaceWriter
// Private Member Functions // Private Member Functions
static void writeGeometry(Ostream&, const pointField&, const faceList&); static void writeGeometry(Ostream&, const meshedSurf&);
template<class Type> template<class Type>
static void writeData(Ostream&, const Field<Type>&); static void writeData(Ostream&, const Field<Type>&);
@ -69,8 +69,7 @@ class vtkSurfaceWriter
( (
const fileName& outputDir, const fileName& outputDir,
const fileName& surfaceName, const fileName& surfaceName,
const pointField& points, const meshedSurf& surf,
const faceList& faces,
const word& fieldName, const word& fieldName,
const Field<Type>& values, const Field<Type>& values,
const bool isNodeValues, const bool isNodeValues,
@ -104,10 +103,9 @@ public:
( (
const fileName& outputDir, const fileName& outputDir,
const fileName& surfaceName, const fileName& surfaceName,
const pointField& points, const meshedSurf& surf,
const faceList& faces,
const bool verbose = false const bool verbose = false
) const; ) const; // override
//- Write scalarField for a single surface to file. //- Write scalarField for a single surface to file.
@ -116,13 +114,12 @@ public:
( (
const fileName& outputDir, // <case>/surface/TIME const fileName& outputDir, // <case>/surface/TIME
const fileName& surfaceName, // name of surface const fileName& surfaceName, // name of surface
const pointField& points, const meshedSurf& surf,
const faceList& faces,
const word& fieldName, // name of field const word& fieldName, // name of field
const Field<scalar>& values, const Field<scalar>& values,
const bool isNodeValues, const bool isNodeValues,
const bool verbose = false const bool verbose = false
) const; ) const; // override
//- Write vectorField for a single surface to file. //- Write vectorField for a single surface to file.
// One value per face or vertex (isNodeValues = true) // One value per face or vertex (isNodeValues = true)
@ -130,13 +127,12 @@ public:
( (
const fileName& outputDir, // <case>/surface/TIME const fileName& outputDir, // <case>/surface/TIME
const fileName& surfaceName, // name of surface const fileName& surfaceName, // name of surface
const pointField& points, const meshedSurf& surf,
const faceList& faces,
const word& fieldName, // name of field const word& fieldName, // name of field
const Field<vector>& values, const Field<vector>& values,
const bool isNodeValues, const bool isNodeValues,
const bool verbose = false const bool verbose = false
) const; ) const; // override
//- Write sphericalTensorField for a single surface to file. //- Write sphericalTensorField for a single surface to file.
// One value per face or vertex (isNodeValues = true) // One value per face or vertex (isNodeValues = true)
@ -144,13 +140,12 @@ public:
( (
const fileName& outputDir, // <case>/surface/TIME const fileName& outputDir, // <case>/surface/TIME
const fileName& surfaceName, // name of surface const fileName& surfaceName, // name of surface
const pointField& points, const meshedSurf& surf,
const faceList& faces,
const word& fieldName, // name of field const word& fieldName, // name of field
const Field<sphericalTensor>& values, const Field<sphericalTensor>& values,
const bool isNodeValues, const bool isNodeValues,
const bool verbose = false const bool verbose = false
) const; ) const; // override
//- Write symmTensorField for a single surface to file. //- Write symmTensorField for a single surface to file.
// One value per face or vertex (isNodeValues = true) // One value per face or vertex (isNodeValues = true)
@ -158,13 +153,12 @@ public:
( (
const fileName& outputDir, // <case>/surface/TIME const fileName& outputDir, // <case>/surface/TIME
const fileName& surfaceName, // name of surface const fileName& surfaceName, // name of surface
const pointField& points, const meshedSurf& surf,
const faceList& faces,
const word& fieldName, // name of field const word& fieldName, // name of field
const Field<symmTensor>& values, const Field<symmTensor>& values,
const bool isNodeValues, const bool isNodeValues,
const bool verbose = false const bool verbose = false
) const; ) const; // override
//- Write tensorField for a single surface to file. //- Write tensorField for a single surface to file.
// One value per face or vertex (isNodeValues = true) // One value per face or vertex (isNodeValues = true)
@ -172,13 +166,12 @@ public:
( (
const fileName& outputDir, // <case>/surface/TIME const fileName& outputDir, // <case>/surface/TIME
const fileName& surfaceName, // name of surface const fileName& surfaceName, // name of surface
const pointField& points, const meshedSurf& surf,
const faceList& faces,
const word& fieldName, // name of field const word& fieldName, // name of field
const Field<tensor>& values, const Field<tensor>& values,
const bool isNodeValues, const bool isNodeValues,
const bool verbose = false const bool verbose = false
) const; ) const; // override
}; };

View File

@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation
\\/ M anipulation | Copyright (C) 2015 OpenCFD Ltd. \\/ M anipulation | Copyright (C) 2015-2016 OpenCFD Ltd.
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
This file is part of OpenFOAM. This file is part of OpenFOAM.
@ -49,8 +49,7 @@ Foam::fileName Foam::vtkSurfaceWriter::writeTemplate
( (
const fileName& outputDir, const fileName& outputDir,
const fileName& surfaceName, const fileName& surfaceName,
const pointField& points, const meshedSurf& surf,
const faceList& faces,
const word& fieldName, const word& fieldName,
const Field<Type>& values, const Field<Type>& values,
const bool isNodeValues, const bool isNodeValues,
@ -70,7 +69,7 @@ Foam::fileName Foam::vtkSurfaceWriter::writeTemplate
Info<< "Writing field " << fieldName << " to " << os.name() << endl; Info<< "Writing field " << fieldName << " to " << os.name() << endl;
} }
writeGeometry(os, points, faces); writeGeometry(os, surf);
// start writing data // start writing data
if (isNodeValues) if (isNodeValues)