STARCDMeshReader.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-2016 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::meshReaders::STARCD
26 
27 Description
28  Read pro-STAR vrt/cel/bnd files.
29  The protected data in meshReader are filled.
30 
31  Starting with pro-STAR version 4, the files have become easier to read.
32  - vertices are space-delimited.
33  - the cell format is logical.
34  - trimmed and degenerate cells are saved as polyhedral.
35  - the boundaries corresponds to cells and their faces.
36 
37 SourceFiles
38  STARCDMeshReader.C
39 
40 \*---------------------------------------------------------------------------*/
41 
42 #ifndef STARCDMeshReader_H
43 #define STARCDMeshReader_H
44 
45 #include "meshReader.H"
46 #include "boundaryRegion.H"
47 #include "cellShape.H"
48 #include "IFstream.H"
49 
50 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
51 
52 namespace Foam
53 {
54 
55 namespace meshReaders
56 {
57 
58 /*---------------------------------------------------------------------------*\
59  Class meshReaders::STARCD Declaration
60 \*---------------------------------------------------------------------------*/
61 
62 class STARCD
63 :
64  public meshReader
65 {
66 
67 protected:
68 
69  // Protected Data
70 
71  static const char* const defaultBoundaryName;
72  static const char* const defaultSolidBoundaryName;
73 
74  //- Face addressing from pro-STAR faces -> OpenFOAM faces
75  static const int starToFoamFaceAddr[4][6];
76 
77  //- Cell shapes
79 
80  //- Point labels (imported Point numbering not necessarily contiguous)
82 
83  //- Cell labels (imported Cell numbering not necessarily contiguous)
85 
86  //- Boundary region data
88 
89 
90  // Protected Member Functions
91 
92  //- Read the mesh from the file(s)
93  virtual bool readGeometry(const scalar scaleFactor = 1.0);
94 
95  //- Read points from file
96  void readPoints(const fileName&, const scalar scaleFactor);
97 
98  //- Read cell connectivities from file
99  virtual void readCells(const fileName&);
100 
101  //- Remove unused points
102  void cullPoints();
103 
104  //- Read boundary (cell/face) definitions
105  void readBoundary(const fileName&);
106 
107  //- Read auxiliary data from constant/{boundaryRegion,cellTable}
108  void readAux(const objectRegistry&);
109 
110  //- Read and discard to newline
111  static void readToNewline(IFstream&);
112 
113  //- Read header
114  static bool readHeader(IFstream&, word fileSignature);
115 
116 
117 private:
118 
119  // Private member functions
120 
121  //- Disallow default bitwise copy construct
122  STARCD(const STARCD&);
123 
124  //- Disallow default bitwise assignment
125  void operator=(const STARCD&);
126 
127 
128 protected:
130  enum cellType
131  {
137  starcdPointType = 6
138  };
140  enum shapeType
141  {
145  starcdHex = 11,
147  starcdTet = 13,
148  starcdPyr = 14,
149  starcdPoly = 255
150  };
151 
152 
153 public:
154 
155  // Static data
156 
157  //- Keep solids (default false)
158  static bool keepSolids;
159 
160 
161  // Constructors
162 
163  //- Construct from case name
164  STARCD
165  (
166  const fileName& prefix,
167  const objectRegistry&,
168  const scalar scaleFactor = 1.0
169  );
170 
171 
172  //- Destructor
173  virtual ~STARCD();
174 };
175 
176 
177 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
178 
179 } // End namespace meshReaders
180 } // End namespace Foam
181 
182 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
183 
184 #endif
185 
186 // ************************************************************************* //
static const char *const defaultSolidBoundaryName
static const char *const defaultBoundaryName
A class for handling file names.
Definition: fileName.H:69
void readAux(const objectRegistry &)
Read auxiliary data from constant/{boundaryRegion,cellTable}.
virtual ~STARCD()
Destructor.
labelList mapToFoamCellId_
Cell labels (imported Cell numbering not necessarily contiguous)
static const int starToFoamFaceAddr[4][6]
Face addressing from pro-STAR faces -> OpenFOAM faces.
virtual bool readGeometry(const scalar scaleFactor=1.0)
Read the mesh from the file(s)
static void readToNewline(IFstream &)
Read and discard to newline.
virtual void readCells(const fileName &)
Read cell connectivities from file.
Read pro-STAR vrt/cel/bnd files. The protected data in meshReader are filled.
A class for handling words, derived from string.
Definition: word.H:59
boundaryRegion boundaryRegion_
Boundary region data.
static bool readHeader(IFstream &, word fileSignature)
Read header.
Input from file stream.
Definition: IFstream.H:81
void readPoints(const fileName &, const scalar scaleFactor)
Read points from file.
labelList mapToFoamPointId_
Point labels (imported Point numbering not necessarily contiguous)
cellShapeList cellShapes_
Cell shapes.
Registry of regIOobjects.
The boundaryRegion persistent data saved as a Map<dictionary>.
void readBoundary(const fileName &)
Read boundary (cell/face) definitions.
static bool keepSolids
Keep solids (default false)
This class supports creating polyMeshes with baffles.
Definition: meshReader.H:73
Namespace for OpenFOAM.
void cullPoints()
Remove unused points.