mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
ENH: Added finiteArea support to foamToVTK
This commit is contained in:
committed by
Andrew Heather
parent
a14eb71160
commit
c2ff8ea99e
@ -26,6 +26,7 @@ License
|
||||
#include "vtkWrite.H"
|
||||
#include "dictionary.H"
|
||||
#include "Time.H"
|
||||
#include "areaFields.H"
|
||||
#include "foamVtkInternalWriter.H"
|
||||
#include "addToRunTimeSelectionTable.H"
|
||||
|
||||
@ -59,12 +60,6 @@ Foam::functionObjects::vtkWrite::vtkWrite
|
||||
}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::functionObjects::vtkWrite::~vtkWrite()
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||
|
||||
bool Foam::functionObjects::vtkWrite::read(const dictionary& dict)
|
||||
@ -125,21 +120,6 @@ bool Foam::functionObjects::vtkWrite::execute()
|
||||
|
||||
bool Foam::functionObjects::vtkWrite::write()
|
||||
{
|
||||
// Count number of fields to be written: only needed for legacy vtk format
|
||||
label nFields = 0;
|
||||
if (writeOpts_.legacy())
|
||||
{
|
||||
nFields =
|
||||
(
|
||||
(writeIds_ ? 1 : 0)
|
||||
+ countFields<volScalarField>()
|
||||
+ countFields<volVectorField>()
|
||||
+ countFields<volSphericalTensorField>()
|
||||
+ countFields<volSymmTensorField>()
|
||||
+ countFields<volTensorField>()
|
||||
);
|
||||
}
|
||||
|
||||
// const word timeDesc =
|
||||
// useTimeName ? time_.timeName() : Foam::name(time_.timeIndex());
|
||||
|
||||
@ -165,55 +145,72 @@ bool Foam::functionObjects::vtkWrite::write()
|
||||
}
|
||||
}
|
||||
|
||||
// Create file and write header
|
||||
const fileName outputName
|
||||
(
|
||||
vtkDir/vtkName
|
||||
+ "_"
|
||||
+ timeDesc
|
||||
);
|
||||
|
||||
Info<< name() << " output Time: " << time_.timeName() << nl
|
||||
<< " Internal : " << outputName << endl;
|
||||
|
||||
vtk::vtuCells vtuMeshCells
|
||||
(
|
||||
mesh_,
|
||||
writeOpts_,
|
||||
true // decompose
|
||||
);
|
||||
|
||||
// Write mesh
|
||||
vtk::internalWriter writer
|
||||
(
|
||||
mesh_,
|
||||
vtuMeshCells,
|
||||
outputName,
|
||||
writeOpts_
|
||||
);
|
||||
|
||||
// CellData
|
||||
// internal mesh
|
||||
{
|
||||
writer.beginCellData(nFields);
|
||||
const fileName outputName
|
||||
(
|
||||
vtkDir/vtkName
|
||||
+ "_"
|
||||
+ timeDesc
|
||||
);
|
||||
|
||||
// Write cellID field
|
||||
if (writeIds_)
|
||||
Info<< name() << " output Time: " << time_.timeName() << nl
|
||||
<< " Internal : " << outputName << endl;
|
||||
|
||||
// Number of fields to be written: only needed for legacy vtk format
|
||||
label nVolFields = 0;
|
||||
if (writeOpts_.legacy())
|
||||
{
|
||||
writer.writeCellIDs();
|
||||
nVolFields =
|
||||
(
|
||||
(writeIds_ ? 1 : 0)
|
||||
+ countFields<volScalarField>()
|
||||
+ countFields<volVectorField>()
|
||||
+ countFields<volSphericalTensorField>()
|
||||
+ countFields<volSymmTensorField>()
|
||||
+ countFields<volTensorField>()
|
||||
);
|
||||
}
|
||||
|
||||
// Write volFields
|
||||
writeFields<volScalarField>(writer);
|
||||
writeFields<volVectorField>(writer);
|
||||
writeFields<volSphericalTensorField>(writer);
|
||||
writeFields<volSymmTensorField>(writer);
|
||||
writeFields<volTensorField>(writer);
|
||||
vtk::vtuCells vtuMeshCells
|
||||
(
|
||||
mesh_,
|
||||
writeOpts_,
|
||||
true // decompose
|
||||
);
|
||||
|
||||
writer.endCellData();
|
||||
// Write mesh
|
||||
vtk::internalWriter writer
|
||||
(
|
||||
mesh_,
|
||||
vtuMeshCells,
|
||||
outputName,
|
||||
writeOpts_
|
||||
);
|
||||
|
||||
// CellData
|
||||
{
|
||||
writer.beginCellData(nVolFields);
|
||||
|
||||
// Write cellID field
|
||||
if (writeIds_)
|
||||
{
|
||||
writer.writeCellIDs();
|
||||
}
|
||||
|
||||
// Write volFields
|
||||
writeFields<volScalarField>(writer);
|
||||
writeFields<volVectorField>(writer);
|
||||
writeFields<volSphericalTensorField>(writer);
|
||||
writeFields<volSymmTensorField>(writer);
|
||||
writeFields<volTensorField>(writer);
|
||||
|
||||
writer.endCellData();
|
||||
}
|
||||
|
||||
writer.writeFooter();
|
||||
}
|
||||
|
||||
writer.writeFooter();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user