faMeshWriteVTK.H
Go to the documentation of this file.
1/*---------------------------------------------------------------------------*\
2 ========= |
3 \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4 \\ / O peration |
5 \\ / A nd | www.openfoam.com
6 \\/ M anipulation |
7-------------------------------------------------------------------------------
8 Copyright (C) 2021-2022 OpenCFD Ltd.
9-------------------------------------------------------------------------------
10License
11 This file is part of OpenFOAM, distributed under GPL-3.0-or-later.
12
13Description
14 VTK output of faMesh with some geometric or debug fields
15
16\*---------------------------------------------------------------------------*/
17
18{
19 // finiteArea - faces
20 vtk::uindirectPatchWriter writer
21 (
22 aMesh.patch(),
23 // vtk::formatType::INLINE_ASCII,
24 fileName
25 (
26 aMesh.mesh().time().globalPath() / "finiteArea"
27 )
28 );
29
30 writer.writeGeometry();
31
32 globalIndex procAddr(aMesh.nFaces());
34
35 if (Pstream::master())
36 {
37 cellIDs.resize(procAddr.totalSize());
38 for (const labelRange& range : procAddr.ranges())
39 {
40 auto slice = cellIDs.slice(range);
41 slice = identity(range);
42 }
43 }
45 // CellData
46 writer.beginCellData(4);
47 writer.writeProcIDs();
48 writer.write("cellID", cellIDs);
49 writer.write("area", aMesh.S().field());
50 writer.write("normal", aMesh.faceAreaNormals());
51
52 // PointData
53 writer.beginPointData(1);
54 writer.write("normal", aMesh.pointAreaNormals());
56 Info<< nl
57 << "Wrote faMesh in vtk format: " << writer.output().name() << nl;
60{
61 // finiteArea - edges
62 vtk::lineWriter writer
63 (
64 aMesh.points(),
65 aMesh.edges(),
66 // vtk::formatType::INLINE_ASCII,
67 fileName
68 (
69 aMesh.mesh().time().globalPath() / "finiteArea-edges"
70 )
71 );
72
73 writer.writeGeometry();
74
75 // CellData
76 writer.beginCellData(4);
77 writer.writeProcIDs();
78 {
79 // Use primitive patch order
80 Field<scalar> fld
81 (
82 faMeshTools::flattenEdgeField(aMesh.magLe(), true)
83 );
84 writer.write("magLe", fld);
85 }
86
87 // PointData
88 writer.beginPointData(1);
89 writer.write("normal", aMesh.pointAreaNormals());
90
91 Info<< nl
92 << "Wrote faMesh in vtk format: " << writer.output().name() << nl;
94
95{
96 // finiteArea - edgeCentres
97 // (no other convenient way to display vectors on the edges)
98 vtk::lineWriter writer
99 (
100 aMesh.edgeCentres(),
101 edgeList::null(),
102 // vtk::formatType::INLINE_ASCII,
103 fileName
104 (
105 aMesh.mesh().time().globalPath() / "finiteArea-edgesCentres"
106 )
107 );
108
109 writer.writeGeometry();
110
111 // PointData
112 writer.beginPointData(4);
113 {
114 // Use primitive patch order
115 Field<vector> fld
116 (
117 faMeshTools::flattenEdgeField(aMesh.Le(), true)
118 );
119 writer.write("Le", fld);
120 }
121 {
122 // Use primitive patch order
123 Field<vector> fld
125 faMeshTools::flattenEdgeField(aMesh.edgeAreaNormals(), true)
126 );
127 writer.write("normal", fld);
129
130 Info<< nl
131 << "Wrote faMesh in vtk format: " << writer.output().name() << nl;
132}
133
134
135// ************************************************************************* //
scalar range
vtk::internalMeshWriter writer(topoMesh, topoCells, vtk::formatType::INLINE_ASCII, runTime.path()/"blockTopology")
Info<< nl<< "Wrote faMesh in vtk format: "<< writer.output().name()<< nl;}{ vtk::lineWriter writer(aMesh.points(), aMesh.edges(), fileName(aMesh.mesh().time().globalPath()/"finiteArea-edges"));writer.writeGeometry();writer.beginCellData(4);writer.writeProcIDs();{ Field< scalar > fld(faMeshTools::flattenEdgeField(aMesh.magLe(), true))
labelList cellIDs
globalIndex procAddr(aMesh.nFaces())
List< label > labelList
A List of labels.
Definition: List.H:66
messageStream Info
Information stream (stdout output on master, null elsewhere)
constexpr char nl
The newline '\n' character (0x0a)
Definition: Ostream.H:53
faMesh aMesh(mesh)