Memosa-FVM  0.2
NcDataReader.h
Go to the documentation of this file.
1 // This file os part of FVM
2 // Copyright (c) 2012 FVM Authors
3 // See LICENSE file for terms.
4 
5 #ifndef NCDATAREADER_H
6 #define NCDATAREADER_H
7 
8 #include <string>
9 #include <vector>
10 
11 #include "Mesh.h"
12 
13 
14 using namespace std;
15 
16 class NcFile;
17 class NcDim;
18 class NcVar;
19 
20 
21 typedef shared_ptr< StorageSite > StorageSitePtr;
22 typedef shared_ptr< CRConnectivity > CRConnectivityPtr;
23 
24 
25 class NcDataReader {
26 
27 public :
28  typedef shared_ptr< Array<int> > ArrayIntPtr;
29 
30  NcDataReader( const string& fname );
31 
32  MeshList getMeshList();
33 
34  static void destroyMeshList( MeshList meshList );
35  ~NcDataReader();
36 
37  void createMappers( const MeshList& );
38 
39 private :
40 
41  void init();
42  void setNcFile();
43  void getDims();
44  void getVars();
45 
46  void get_var_values();
47  void allocate_vars();
48  void get_bndry_vals();
49  void get_interface_vals();
50  void get_coord_vals();
51  void get_connectivity_vals();
52  void get_mapper_vals();
53 
54  MeshList meshList();
55  void storage_sites ( int id, const MeshList& meshList );
56  void boundary_faces( int id, const MeshList& meshList );
57  void interfaces ( int id, const MeshList& meshList );
58  void coords ( int id, const MeshList& meshList );
59  void face_cells ( int id, const MeshList& meshList );
60  void face_nodes ( int id, const MeshList& meshList );
61 
62  string _fname;
63 
64 
65  //netcdf variables
66  NcFile *_ncFile;
67  int _nmesh;
68  int _nBoun;
69  int _charSize;
71  int _nnodes;
72 
73  int _nfaceRow;
77 
78 
79 
80  NcVar *_dimension;
81  NcVar *_meshID;
82  NcVar *_facesCount;
83  NcVar *_cellsCount;
85  NcVar *_nodesCount;
86  NcVar *_mapCount;
88 
90  NcVar* _boundarySize;
92  NcVar* _boundaryID;
93  NcVar* _boundaryType;
94 
95 
99  NcVar* _interfaceID;
100 
101  NcVar* _x;
102  NcVar* _y;
103  NcVar* _z;
104 
109 
114 
117 
120 
127 
128 
133  vector<char*> _boundaryTypeVals;
134 
139 
140  double *_xVals;
141  double *_yVals;
142  double *_zVals;
143 
148 
153 
156 
157 
158 
159 };
160 
161 #endif
NcVar * _interiorFacesGroup
Definition: NcDataReader.h:87
int * _mapCountVals
Definition: NcDataReader.h:125
int * _cellsCountVals
Definition: NcDataReader.h:122
shared_ptr< CRConnectivity > CRConnectivityPtr
Definition: NcDataReader.h:22
NcVar * _boundaryOffset
Definition: NcDataReader.h:91
NcVar * _mapCount
Definition: NcDataReader.h:86
vector< char * > _boundaryTypeVals
Definition: NcDataReader.h:133
NcVar * _boundaryGroup
Definition: NcDataReader.h:89
NcVar * _interfaceOffset
Definition: NcDataReader.h:98
int * _faceCellsColCountVals
Definition: NcDataReader.h:145
NcVar * _cellsCount
Definition: NcDataReader.h:83
NcVar * _dimension
Definition: NcDataReader.h:80
string _fname
Definition: NcDataReader.h:62
shared_ptr< StorageSite > StorageSitePtr
Definition: NcDataReader.h:18
int * _boundaryOffsetVals
Definition: NcDataReader.h:131
int * _faceNodesRowVals
Definition: NcDataReader.h:151
int * _boundaryIDVals
Definition: NcDataReader.h:132
int * _interfaceOffsetVals
Definition: NcDataReader.h:137
NcVar * _faceNodesRowCount
Definition: NcDataReader.h:107
int * _interfaceGroupVals
Definition: NcDataReader.h:135
double * _yVals
Definition: NcDataReader.h:141
int * _faceCellsColVals
Definition: NcDataReader.h:150
int * _interiorFacesGroupVals
Definition: NcDataReader.h:126
int * _faceNodesColVals
Definition: NcDataReader.h:152
int * _facesCountVals
Definition: NcDataReader.h:121
int * _interfaceSizeVals
Definition: NcDataReader.h:136
double * _xVals
Definition: NcDataReader.h:140
NcVar * _faceCellsRow
Definition: NcDataReader.h:110
int * _scatterIndicesVals
Definition: NcDataReader.h:155
NcVar * _faceCellsCol
Definition: NcDataReader.h:111
NcVar * _faceCellsColCount
Definition: NcDataReader.h:106
int * _meshIDVals
Definition: NcDataReader.h:119
NcVar * _boundaryID
Definition: NcDataReader.h:92
int * _nodesCountVals
Definition: NcDataReader.h:124
int _nfaceNodesCol
Definition: NcDataReader.h:75
int * _dimensionVals
Definition: NcDataReader.h:118
NcVar * _gatherIndices
Definition: NcDataReader.h:115
shared_ptr< Array< int > > ArrayIntPtr
Definition: NcDataReader.h:28
int * _boundaryGroupVals
Definition: NcDataReader.h:129
int * _gatherIndicesVals
Definition: NcDataReader.h:154
NcVar * _faceNodesRow
Definition: NcDataReader.h:112
NcVar * _interfaceGroup
Definition: NcDataReader.h:96
int * _faceNodesRowCountVals
Definition: NcDataReader.h:146
NcVar * _meshID
Definition: NcDataReader.h:81
NcVar * _nodesCount
Definition: NcDataReader.h:85
NcVar * _ghostCellsCount
Definition: NcDataReader.h:84
NcVar * _faceNodesCol
Definition: NcDataReader.h:113
NcVar * _facesCount
Definition: NcDataReader.h:82
int * _faceNodesColCountVals
Definition: NcDataReader.h:147
NcVar * _boundaryType
Definition: NcDataReader.h:93
int _nfaceCellsCol
Definition: NcDataReader.h:74
NcFile * _ncFile
Definition: NcDataReader.h:66
double * _zVals
Definition: NcDataReader.h:142
NcVar * _faceCellsRowCount
Definition: NcDataReader.h:105
int * _ghostCellsCountVals
Definition: NcDataReader.h:123
NcVar * _interfaceID
Definition: NcDataReader.h:99
NcVar * _boundarySize
Definition: NcDataReader.h:90
int * _interfaceIDVals
Definition: NcDataReader.h:138
int * _boundarySizeVals
Definition: NcDataReader.h:130
vector< Mesh * > MeshList
Definition: Mesh.h:439
int * _faceCellsRowVals
Definition: NcDataReader.h:149
NcVar * _faceNodesColCount
Definition: NcDataReader.h:108
NcVar * _interfaceSize
Definition: NcDataReader.h:97
int * _faceCellsRowCountVals
Definition: NcDataReader.h:144
NcVar * _scatterIndices
Definition: NcDataReader.h:116