Home
Downloads
Documentation
Installation
User Guide
man-pages
API Documentation
README
Release Notes
Changes
License
Support
SourceForge Project
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Pages
src
conversion
meshReader
starcd
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) 1991-2010 OpenCFD Ltd.
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 <
conversion/meshReader.H
>
46
# include <
conversion/boundaryRegion.H
>
47
# include <
OpenFOAM/cellShape.H
>
48
# include <
OpenFOAM/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
*
defaultBoundaryName
;
72
static
const
char
*
defaultSolidBoundaryName
;
73
74
//- Face addressing from pro-STAR faces -> OpenFOAM faces
75
static
const
int
starToFoamFaceAddr
[4][6];
76
77
//- Cell shapes
78
cellShapeList
cellShapes_
;
79
80
//- Point labels (imported Point numbering not necessarily contiguous)
81
labelList
mapToFoamPointId_
;
82
83
//- Cell labels (imported Cell numbering not necessarily contiguous)
84
labelList
mapToFoamCellId_
;
85
86
//- Boundary region data
87
boundaryRegion
boundaryRegion_
;
88
89
90
// Protected Member Functions
91
92
//- Disallow default bitwise copy construct
93
STARCD
(
const
STARCD
&);
94
95
//- Disallow default bitwise assignment
96
void
operator=
(
const
STARCD
&);
97
98
//- Read the mesh from the file(s)
99
virtual
bool
readGeometry
(
const
scalar scaleFactor = 1.0);
100
101
//- Read points from file
102
void
readPoints
(
const
fileName
&,
const
scalar scaleFactor);
103
104
//- Read cell connectivities from file
105
virtual
void
readCells
(
const
fileName
&);
106
107
//- Remove unused points
108
void
cullPoints
();
109
110
//- Read boundary (cell/face) definitions
111
void
readBoundary
(
const
fileName
&);
112
113
//- Read auxiliary data from constant/{boundaryRegion,cellTable}
114
void
readAux
(
const
objectRegistry
&);
115
116
//- Read and discard to newline
117
static
void
readToNewline
(
IFstream
&);
118
119
//- Read header
120
static
bool
readHeader
(
IFstream
&,
word
fileSignature);
121
122
123
protected
:
124
125
enum
cellType
126
{
127
starcdFluidType
= 1,
128
starcdSolidType
= 2,
129
starcdBaffleType
= 3,
130
starcdShellType
= 4,
131
starcdLineType
= 5,
132
starcdPointType
= 6
133
};
134
135
enum
shapeType
136
{
137
starcdPoint
= 1,
138
starcdLine
= 2,
139
starcdShell
= 3,
140
starcdHex
= 11,
141
starcdPrism
= 12,
142
starcdTet
= 13,
143
starcdPyr
= 14,
144
starcdPoly
= 255
145
};
146
147
148
public
:
149
150
// Static data
151
152
//- Keep solids (default false)
153
static
bool
keepSolids
;
154
155
156
// Constructors
157
158
//- Construct from case name
159
STARCD
160
(
161
const
fileName
& prefix,
162
const
objectRegistry
&,
163
const
scalar scaleFactor = 1.0
164
);
165
166
167
//- Destructor
168
virtual
~STARCD
();
169
};
170
171
172
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
173
174
}
// End namespace meshReaders
175
}
// End namespace Foam
176
177
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
178
179
#endif
180
181
// ************************ vim: set sw=4 sts=4 et: ************************ //