BUG: UListIO: byteSize overflowing on really big faceLists
[OpenFOAM-2.0.x.git] / src / surfMesh / surfaceFormats / nas / NASsurfaceFormat.H
blob45425dcfef6992e63c97864e64dafe4221145b03
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.
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.
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.
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/>.
24 Class
25     Foam::fileFormats::NASsurfaceFormat
27 Description
28     Nastran surface reader.
30     - Uses the Ansa "$ANSA_NAME" or the Hypermesh "$HMNAME COMP" extensions
31       to obtain zone names.
32     - Handles Nastran short and long formats, but not free format.
33     - Properly handles the Nastran compact floating point notation: \n
34     \verbatim
35         GRID          28        10.20269-.030265-2.358-8
36     \endverbatim
38 SourceFiles
39     NASsurfaceFormat.C
41 \*---------------------------------------------------------------------------*/
43 #ifndef NASsurfaceFormat_H
44 #define NASsurfaceFormat_H
46 #include "MeshedSurface.H"
47 #include "MeshedSurfaceProxy.H"
48 #include "UnsortedMeshedSurface.H"
49 #include "NASCore.H"
51 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
53 namespace Foam
55 namespace fileFormats
58 /*---------------------------------------------------------------------------*\
59                       Class NASsurfaceFormat Declaration
60 \*---------------------------------------------------------------------------*/
62 template<class Face>
63 class NASsurfaceFormat
65     public MeshedSurface<Face>,
66     public NASCore
68     // Private Member Functions
70         //- Disallow default bitwise copy construct
71         NASsurfaceFormat(const NASsurfaceFormat<Face>&);
73         //- Disallow default bitwise assignment
74         void operator=(const NASsurfaceFormat<Face>&);
77 public:
79     // Constructors
81         //- Construct from file name
82         NASsurfaceFormat(const fileName&);
85     // Selectors
87         //- Read file and return surface
88         static autoPtr<MeshedSurface<Face> > New(const fileName& name)
89         {
90             return autoPtr<MeshedSurface<Face> >
91             (
92                 new NASsurfaceFormat<Face>(name)
93             );
94         }
97     //- Destructor
98     virtual ~NASsurfaceFormat()
99     {}
102     // Member Functions
104         //- Read from a file
105         virtual bool read(const fileName&);
109 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
111 } // End namespace fileFormats
112 } // End namespace Foam
114 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
116 #ifdef NoRepository
117 #   include "NASsurfaceFormat.C"
118 #endif
120 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
122 #endif
124 // ************************************************************************* //