patchWriter.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 | Copyright (C) 2011-2015 OpenFOAM Foundation
6  \\/ M anipulation |
7 -------------------------------------------------------------------------------
8 License
9  This file is part of OpenFOAM.
10 
11  OpenFOAM is free software: you can redistribute it and/or modify it
12  under the terms of the GNU General Public License as published by
13  the Free Software Foundation, either version 3 of the License, or
14  (at your option) any later version.
15 
16  OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
17  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
18  FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
19  for more details.
20 
21  You should have received a copy of the GNU General Public License
22  along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
23 
24 Class
25  Foam::patchWriter
26 
27 Description
28  Write patch fields
29 
30 SourceFiles
31  patchWriter.C
32  patchWriterTemplates.C
33 
34 \*---------------------------------------------------------------------------*/
35 
36 #ifndef patchWriter_H
37 #define patchWriter_H
38 
39 #include "pointMesh.H"
40 #include "OFstream.H"
41 #include "volFields.H"
42 #include "pointFields.H"
43 #include "vtkMesh.H"
44 #include "indirectPrimitivePatch.H"
46 
47 using namespace Foam;
48 
49 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
50 
51 namespace Foam
52 {
53 
55 
56 /*---------------------------------------------------------------------------*\
57  Class patchWriter Declaration
58 \*---------------------------------------------------------------------------*/
59 
60 class patchWriter
61 {
62  const vtkMesh& vMesh_;
63 
64  const bool binary_;
65 
66  const bool nearCellValue_;
67 
68  const fileName fName_;
69 
70  const labelList patchIDs_;
71 
72  std::ofstream os_;
73 
75 
76  label nFaces_;
77 
78 public:
79 
80  // Constructors
81 
82  //- Construct from components
84  (
85  const vtkMesh&,
86  const bool binary,
87  const bool nearCellValue,
88  const fileName&,
89  const labelList& patchIDs
90  );
91 
92 
93  // Member Functions
94 
95  std::ofstream& os()
96  {
97  return os_;
98  }
99 
100  label nPoints() const
101  {
102  return nPoints_;
103  }
104 
105  label nFaces() const
106  {
107  return nFaces_;
108  }
109 
110  //- Write cellIDs
111  void writePatchIDs();
112 
113  //- Write volFields
114  template<class Type>
115  void write
116  (
118  );
119 
120  //- Write pointFields
121  template<class Type>
122  void write
123  (
125  );
126 
127  //- Interpolate and write volFields
128  template<class Type>
129  void write
130  (
133  );
134 };
135 
136 
137 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
138 
139 } // End namespace Foam
140 
141 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
142 
143 #ifdef NoRepository
144  #include "patchWriterTemplates.C"
145 #endif
146 
147 
148 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
149 
150 #endif
151 
152 // ************************************************************************* //
volFields.H
Foam::patchWriter::nPoints
label nPoints() const
Definition: patchWriter.H:99
Foam::fileName
A class for handling file names.
Definition: fileName.H:69
PrimitivePatchInterpolation.H
Foam::vtkMesh
Encapsulation of VTK mesh data. Holds mesh or meshsubset and polyhedral-cell decomposition on it.
Definition: vtkMesh.H:52
vtkMesh.H
OFstream.H
Foam::patchWriter
Write patch fields.
Definition: patchWriter.H:59
Foam::patchWriter::writePatchIDs
void writePatchIDs()
Write cellIDs.
Definition: patchWriter.C:119
Foam::label
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
Definition: label.H:59
Foam::patchWriter::nFaces_
label nFaces_
Definition: patchWriter.H:75
Foam::PtrList
A templated 1D list of pointers to objects of type <T>, where the size of the array is known and used...
Definition: List.H:61
Foam::patchWriter::patchIDs_
const labelList patchIDs_
Definition: patchWriter.H:69
Foam::patchWriter::fName_
const fileName fName_
Definition: patchWriter.H:67
Foam
Namespace for OpenFOAM.
Definition: combustionModel.C:30
Foam::patchWriter::nFaces
label nFaces() const
Definition: patchWriter.H:104
Foam::patchWriter::os
std::ofstream & os()
Definition: patchWriter.H:94
Foam::PrimitivePatchInterpolation
Interpolation class within a primitive patch. Allows interpolation from points to faces and vice vers...
Definition: PrimitivePatchInterpolation.H:51
Foam::List
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
Definition: HashTable.H:59
Foam::patchWriter::nPoints_
label nPoints_
Definition: patchWriter.H:73
Foam::patchWriter::nearCellValue_
const bool nearCellValue_
Definition: patchWriter.H:65
Foam::patchWriter::vMesh_
const vtkMesh & vMesh_
Definition: patchWriter.H:61
Foam::GeometricField
Generic GeometricField class.
Definition: surfaceFieldsFwd.H:52
Foam::volPointInterpolation
Interpolate from cell centres to points (vertices) using inverse distance weighting.
Definition: volPointInterpolation.H:56
Foam::patchWriter::write
void write(const PtrList< GeometricField< Type, fvPatchField, volMesh > > &)
Write volFields.
Definition: patchWriterTemplates.C:33
pointFields.H
pointMesh.H
Foam::patchWriter::binary_
const bool binary_
Definition: patchWriter.H:63
Foam::patchWriter::patchWriter
patchWriter(const vtkMesh &, const bool binary, const bool nearCellValue, const fileName &, const labelList &patchIDs)
Construct from components.
Definition: patchWriter.C:32
Foam::patchWriter::os_
std::ofstream os_
Definition: patchWriter.H:71