meshWriter.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 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 Namespace
25  Foam::meshWriters
26 
27 Description
28  A namespace for holding various types of mesh writers.
29 
30 
31 Class
32  Foam::meshWriter
33 
34 Description
35  write OpenFOAM meshes and/or results to another CFD format
36  - currently just STAR-CD
37 
38 \par Files
39 
40  "constant/boundaryRegion" is an IOMap<dictionary> that contains
41  the boundary type and names. eg,
42  \verbatim
43  (
44  0
45  {
46  BoundaryType wall;
47  Label Default_Boundary_Region;
48  }
49 
50  1
51  {
52  BoundaryType inlet;
53  Label inlet_1;
54  }
55 
56  ...
57 
58  4
59  {
60  BoundaryType pressure;
61  Label outlet;
62  }
63  )
64  \endverbatim
65 
66 
67 SourceFiles
68  meshWriterI.H
69  meshWriter.C
70  meshWriterIO.C
71 
72 \*---------------------------------------------------------------------------*/
73 
74 #ifndef meshWriter_H
75 #define meshWriter_H
76 
77 #include "polyMesh.H"
78 #include "boundaryRegion.H"
79 #include "cellTable.H"
80 
81 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
82 
83 namespace Foam
84 {
85 
86 /*---------------------------------------------------------------------------*\
87  Class meshWriter Declaration
88 \*---------------------------------------------------------------------------*/
89 
90 class meshWriter
91 {
92  // Private Member Functions
93 
94  //- Disallow default bitwise copy construct
95  meshWriter(const meshWriter&);
96 
97  //- Disallow default bitwise assignment
98  void operator=(const meshWriter&);
99 
100 
101 protected:
102 
103  // Protected data
104 
105  //- Mesh reference
106  const polyMesh& mesh_;
107 
108  //- Scaling factor for points (eg, [m] -> [mm])
109  scalar scaleFactor_;
110 
111  //- Write bnd file
112  bool writeBoundary_;
113 
114  //- boundaryRegion persistent data saved as a dictionary
116 
117  //- cellTable persistent data saved as a dictionary
119 
120  //- cellTable IDs for each cell
122 
123  //- Pointers to cell shape models
124  static const cellModel* unknownModel;
125  static const cellModel* tetModel;
126  static const cellModel* pyrModel;
127  static const cellModel* prismModel;
128  static const cellModel* hexModel;
129 
130 
131 public:
132 
133  // Static data members
134 
135  //- Specify a default mesh name
136  static string defaultMeshName;
137 
138  // Constructors
139 
140  //- Create a writer obejct
141  meshWriter
142  (
143  const polyMesh&,
144  const scalar scaleFactor = 1.0
145  );
146 
147 
148  //- Destructor
149  virtual ~meshWriter();
150 
151 
152  // Member Functions
153 
154  // Edit
155 
156  //- Set points scaling
157  void scaleFactor(const scalar scaling)
158  {
159  scaleFactor_ = scaling;
160  }
161 
162  //- Suppress writing bnd file
163  void noBoundary()
164  {
165  writeBoundary_ = false;
166  }
167 
168  // Write
169 
170  //- Write volume mesh. Subclass must supply this method
171  virtual bool write
172  (
174  ) const = 0;
175 
176 };
177 
178 
179 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
180 
181 } // End namespace Foam
182 
183 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
184 
185 #endif
186 
187 // ************************************************************************* //
write OpenFOAM meshes and/or results to another CFD format
Definition: meshWriter.H:89
static string defaultMeshName
Specify a default mesh name.
Definition: meshWriter.H:135
A class for handling file names.
Definition: fileName.H:69
static const cellModel * tetModel
Definition: meshWriter.H:124
static const cellModel * prismModel
Definition: meshWriter.H:126
bool writeBoundary_
Write bnd file.
Definition: meshWriter.H:111
boundaryRegion boundaryRegion_
boundaryRegion persistent data saved as a dictionary
Definition: meshWriter.H:114
static const fileName null
An empty fileName.
Definition: fileName.H:97
virtual bool write(const fileName &timeName=fileName::null) const =0
Write volume mesh. Subclass must supply this method.
static const cellModel * pyrModel
Definition: meshWriter.H:125
static const cellModel * unknownModel
Pointers to cell shape models.
Definition: meshWriter.H:123
void scaleFactor(const scalar scaling)
Set points scaling.
Definition: meshWriter.H:156
word timeName
Definition: getTimeIndex.H:3
void noBoundary()
Suppress writing bnd file.
Definition: meshWriter.H:162
scalar scaleFactor_
Scaling factor for points (eg, [m] -> [mm])
Definition: meshWriter.H:108
The cellTable persistent data saved as a Map<dictionary>.
Definition: cellTable.H:77
labelList cellTableId_
cellTable IDs for each cell
Definition: meshWriter.H:120
Maps a geometry to a set of cell primitives, which enables geometric cell data to be calculated witho...
Definition: cellModel.H:64
static const cellModel * hexModel
Definition: meshWriter.H:127
Mesh consisting of general polyhedral cells.
Definition: polyMesh.H:74
The boundaryRegion persistent data saved as a Map<dictionary>.
cellTable cellTable_
cellTable persistent data saved as a dictionary
Definition: meshWriter.H:117
const polyMesh & mesh_
Mesh reference.
Definition: meshWriter.H:105
Namespace for OpenFOAM.
virtual ~meshWriter()
Destructor.
Definition: meshWriter.C:84