Memosa-FVM  0.2
NcDataReader.cpp
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 #include <iostream>
6 #include <cassert>
7 #include <algorithm>
8 #include <numeric>
9 
10 
11 #include "NcDataReader.h"
12 #include "netcdfcpp.h"
13 #include "OneToOneIndexMap.h"
14 #include "CRConnectivity.h"
15 
16 
17 NcDataReader::NcDataReader( const string& fname )
18 :_fname( fname )
19 {
20  init();
21 }
22 
23 
25 {
26 
27  if ( _dimensionVals ) delete [] _dimensionVals;
28  if ( _meshIDVals ) delete [] _meshIDVals;
29 
30  if ( _facesCountVals ) delete [] _facesCountVals;
31  if ( _cellsCountVals ) delete [] _cellsCountVals;
33  if (_nodesCountVals ) delete [] _nodesCountVals;
34  if ( _mapCountVals ) delete [] _mapCountVals;
36 
37  if ( _boundaryGroupVals ) delete [] _boundaryGroupVals;
38  if ( _boundarySizeVals ) delete [] _boundarySizeVals;
40  if ( _boundaryIDVals ) delete [] _boundaryIDVals;
41 
42  vector< char* >::iterator it_char;
43  for ( it_char = _boundaryTypeVals.begin(); it_char != _boundaryTypeVals.end(); it_char++ )
44  delete [] *it_char;
45 
46 
48  if ( _interfaceSizeVals ) delete [] _interfaceSizeVals;
50  if ( _interfaceIDVals ) delete [] _interfaceIDVals;
51 
52  if ( _xVals ) delete [] _xVals;
53  if ( _yVals ) delete [] _yVals;
54  if ( _zVals ) delete [] _zVals;
55 
56  if ( _faceCellsRowVals ) delete [] _faceCellsRowVals;
57  if ( _faceNodesRowVals ) delete [] _faceNodesRowVals;
58  if ( _faceCellsColVals ) delete [] _faceCellsColVals;
59  if ( _faceNodesColVals ) delete [] _faceNodesColVals;
60 
61 
62  if ( _gatherIndicesVals ) delete [] _gatherIndicesVals;
64 
65  if ( _ncFile ) delete _ncFile;
66 
67 }
68 
69 void
71 
72  MeshList::iterator it_mesh;
73  for ( it_mesh = meshList.begin(); it_mesh != meshList.end(); it_mesh++)
74  delete *it_mesh;
75 
76 }
77 
80 {
81  setNcFile();
82  getDims();
83  getVars();
85 
86  return meshList();
87 
88 }
89 
90 
91  //PRIVATE FUNCTIONS
92 void
94 {
95  _ncFile = NULL;
96  _dimensionVals = NULL;
97  _meshIDVals = NULL;
98  _facesCountVals = NULL;
99  _cellsCountVals = NULL;
100  _ghostCellsCountVals = NULL;
101  _nodesCountVals = NULL;
102  _mapCountVals = NULL;
104 
105  _boundaryGroupVals = NULL;
106  _boundarySizeVals = NULL;
107  _boundaryOffsetVals= NULL;
108  _boundaryIDVals = NULL;
109 
110  _interfaceGroupVals = NULL;
111  _interfaceSizeVals = NULL;
112  _interfaceOffsetVals = NULL;
113  _interfaceIDVals = NULL;
114 
115  _xVals = NULL;
116  _yVals = NULL;
117  _zVals = NULL;
118 
119  _faceCellsRowCountVals = NULL;
120  _faceNodesRowCountVals = NULL;
121  _faceCellsColCountVals = NULL;
122  _faceNodesColCountVals = NULL;
123 
124  _faceCellsRowVals = NULL;
125  _faceNodesRowVals = NULL;
126  _faceCellsColVals = NULL;
127  _faceNodesColVals = NULL;
128 
129  _gatherIndicesVals = NULL;
130  _scatterIndicesVals = NULL;
131 }
132 
133 //Setting NcFile
134 void
136 {
137  assert( !_ncFile );
138  _ncFile = new NcFile( _fname.c_str(), NcFile::ReadOnly );
139  assert ( _ncFile->is_valid() );
140 
141 }
142 
143 
144 //Getting dimension from NcFile
145 void
147 {
148  _nmesh = _ncFile->get_dim("nmesh")->size();
149  if ( _ncFile->get_var("is_bounTypeDim_Valid")->as_int(0) == 1 ){
150  _nBoun = _ncFile->get_dim("boun_type_dim")->size();
151  } else {
152  _nBoun = 0;
153  }
154 
155  _charSize = _ncFile->get_dim("char_dim")->size();
156  if ( _ncFile->get_var("is_neighMesh_Valid")->as_int(0) == 1 ){
157  _nNeighMesh = _ncFile->get_dim("nNeighMesh")->size();
158  } else {
159  _nNeighMesh = 0;
160  }
161 
162  _nnodes = _ncFile->get_dim("nnodes")->size();
163  _nfaceRow = _ncFile->get_dim("nface_row")->size();
164  _nfaceCellsCol = _ncFile->get_dim("nfaceCells_col")->size();
165  _nfaceNodesCol = _ncFile->get_dim("nfaceNodes_col")->size();
166  if ( _ncFile->get_var("is_interface_Valid")->as_int(0) == 1 ){
167  _nInterface = _ncFile->get_dim("nInterface")->size();
168  } else {
169  _nInterface = 0;
170  }
171 
172 
173 
174 }
175 
176 //getting NCVar-s
177 void
179 {
180  _dimension = _ncFile->get_var("dimension");
181  _meshID = _ncFile->get_var("mesh_id" );
182  _facesCount = _ncFile->get_var("faces_count");
183  _cellsCount = _ncFile->get_var("cells_count");
184  _ghostCellsCount = _ncFile->get_var("ghost_cells_count");
185  _nodesCount = _ncFile->get_var("nodes_count");
186  _mapCount = _ncFile->get_var("map_count");
187  _interiorFacesGroup = _ncFile->get_var("interior_faces_group");
188 
189  _boundaryGroup = _ncFile->get_var("boundary_group");
190  if ( _nBoun > 0 ) {
191  _boundarySize = _ncFile->get_var("boundary_size");
192  _boundaryOffset = _ncFile->get_var("boundary_offset");
193  _boundaryID = _ncFile->get_var("boundary_id");
194  _boundaryType = _ncFile->get_var("boundary_type");
195  }
196 
197 
198  _interfaceGroup = _ncFile->get_var("interface_group");
199  if ( _nNeighMesh > 0 ){
200  _interfaceSize = _ncFile->get_var("interface_size");
201  _interfaceOffset = _ncFile->get_var("interface_offset");
202  _interfaceID = _ncFile->get_var("interface_id");
203  }
204 
205  _x = _ncFile->get_var("x");
206  _y = _ncFile->get_var("y");
207  _z = _ncFile->get_var("z");
208 
209  _faceCellsRowCount = _ncFile->get_var("face_cells_row_count");
210  _faceCellsColCount = _ncFile->get_var("face_cells_col_count");
211  _faceNodesRowCount = _ncFile->get_var("face_nodes_row_count");
212  _faceNodesColCount = _ncFile->get_var("face_nodes_col_count");
213 
214 
215  _faceCellsRow = _ncFile->get_var("face_cells_row");
216  _faceCellsCol = _ncFile->get_var("face_cells_col");
217  _faceNodesRow = _ncFile->get_var("face_nodes_row");
218  _faceNodesCol = _ncFile->get_var("face_nodes_col");
219 
220  if ( _nInterface > 0 ) {
221  _gatherIndices = _ncFile->get_var("gather_indices");
222  _scatterIndices = _ncFile->get_var("scatter_indices");
223  }
224 
225 
226 
227 }
228 
229 //getting values
230 void
232 {
233 
234  allocate_vars();
235 
237  _meshID->get( _meshIDVals , _nmesh );
242  _mapCount->get ( _mapCountVals , _nmesh );
244 
245  get_bndry_vals();
247  get_coord_vals();
249  get_mapper_vals();
250 
251 }
252 
253 void
255 {
256  _dimensionVals = new int[ _nmesh ];
257  _meshIDVals = new int[ _nmesh ];
258 
259  _facesCountVals = new int[ _nmesh ];
260  _cellsCountVals = new int[ _nmesh ];
261  _ghostCellsCountVals = new int[ _nmesh ];
262  _nodesCountVals = new int[ _nmesh ];
263  _mapCountVals = new int[ _nmesh ];
264  _interiorFacesGroupVals = new int [ _nmesh ];
265 
266  _boundaryGroupVals = new int [ _nmesh ];
267  _boundarySizeVals = new int [ _nBoun ];
268  _boundaryOffsetVals = new int [ _nBoun ];
269  _boundaryIDVals = new int [ _nBoun ];
270  _boundaryTypeVals.reserve(_nBoun);
271  for ( int n = 0; n < _nBoun; n++)
272  _boundaryTypeVals.push_back( new char[ _charSize ] );
273 
274  _interfaceGroupVals = new int [ _nmesh ];
275  _interfaceSizeVals = new int [ _nNeighMesh ];
276  _interfaceOffsetVals = new int [ _nNeighMesh ];
277  _interfaceIDVals = new int [ _nNeighMesh ];
278 
279  _xVals = new double [ _nnodes ];
280  _yVals = new double [ _nnodes ];
281  _zVals = new double [ _nnodes ];
282 
283  _faceCellsRowCountVals = new int [ _nmesh ];
284  _faceCellsColCountVals = new int [ _nmesh ];
285  _faceNodesRowCountVals = new int [ _nmesh ];
286  _faceNodesColCountVals = new int [ _nmesh ];
287 
288  _faceCellsRowVals = new int [ _nfaceRow ];
289  _faceCellsColVals = new int [ _nfaceCellsCol ];
290  _faceNodesRowVals = new int [ _nfaceRow ];
291  _faceNodesColVals = new int [ _nfaceNodesCol ];
292 
293  _gatherIndicesVals = new int [ _nInterface ];
294  _scatterIndicesVals = new int [ _nInterface ];
295 
296 }
297 
298 //get boundary values
299 void
301 {
302 
303  if ( _nBoun > 0 ){
308  for ( int n = 0; n < _nBoun; n++){
309  _boundaryType->set_cur(n);
310  _boundaryType->get( _boundaryTypeVals.at(n), 1, _charSize );
311  }
312  }
313 }
314 
315 
316 
317 void
319 {
320  if ( _nNeighMesh > 0 ){
325  }
326 
327 
328 }
329 
330 //get coordinates of nodes
331 void
333 {
334 
335  _x->get( _xVals, _nnodes );
336  _y->get( _yVals, _nnodes );
337  _z->get( _zVals, _nnodes );
338 
339 
340 }
341 
342 //get coordinates of nodes
343 void
345 {
350 
355 
356 
357 }
358 
359 //get mapper values
360 void
362 {
363  if ( _nInterface > 0 ){
366  }
367 
368 }
369 
370 
371 
372 //forming MeshList
373 MeshList
375 {
376 
378 
379  for ( int id = 0; id < _nmesh; id++ ){
380 
381  meshList.push_back( new Mesh( _dimensionVals[id] ) );
382  //storage sites
383  storage_sites( id, meshList);
384  //interior faces
385  meshList.at(id)->createInteriorFaceGroup( _interiorFacesGroupVals[id] );
386  //boundary faces
387  if ( _nBoun > 0 )
388  boundary_faces( id, meshList );
389 
390  if ( _nNeighMesh > 0 )
391  interfaces( id, meshList );
392 
393  coords ( id, meshList );
394  face_cells( id, meshList );
395  face_nodes( id, meshList );
396 
397  }
398 
399 
400 
401  return meshList;
402 }
403 
404 
405 void
406 NcDataReader::storage_sites( int id, const MeshList& meshList )
407 {
408  StorageSite& faces = meshList.at(id)->getFaces();
409  StorageSite& cells = meshList.at(id)->getCells();
410  StorageSite& nodes = meshList.at(id)->getNodes();
411 
412  faces.setCount( _facesCountVals[id] );
414  nodes.setCount( _nodesCountVals[id] );
415 }
416 
417 
418 
419 void
420 NcDataReader::boundary_faces( int id, const MeshList& meshList )
421 {
422  //boundary faces
423  int indx = accumulate( _boundaryGroupVals, _boundaryGroupVals+id, 0 );
424  int nboun = _boundaryGroupVals[id];
425  for ( int boun = 0; boun < nboun; boun++){
426  int bndryID = _boundaryIDVals[indx];
427  int size = _boundarySizeVals[indx];
428  int offset = _boundaryOffsetVals[indx] ;
429  string boundaryType (_boundaryTypeVals.at(indx) );
430  meshList.at(id)->createBoundaryFaceGroup( size, offset, bndryID, boundaryType);
431  indx++;
432  }
433 
434 }
435 
436 void
437 NcDataReader::interfaces( int id, const MeshList& meshList )
438 {
439  //then interface faces
440  int indx = accumulate( _interfaceGroupVals, _interfaceGroupVals+id,0);
441  int ninterfaces = _interfaceGroupVals[id];
442  for ( int interface = 0; interface < ninterfaces; interface++ ){
443  int interfaceID = _interfaceIDVals[indx];
444  int size = _interfaceSizeVals[indx];
445  int offset = _interfaceOffsetVals[indx];
446  Mesh::PartIDMeshIDPair pairID = make_pair<int,int>(interfaceID,0);
447  meshList.at(id)->createInterfaceGroup( size, offset, interfaceID );
448  meshList.at(id)->createGhostCellSiteScatter( pairID, shared_ptr<StorageSite>( new StorageSite(size) ) );
449  meshList.at(id)->createGhostCellSiteGather ( pairID, shared_ptr<StorageSite>( new StorageSite(size) ) );
450  indx++;
451  }
452 
453 
454 
455 }
456 
457 void
458 NcDataReader::coords( int id, const MeshList& meshList )
459 {
460  int nnodes = _nodesCountVals[id];
461  int indx = accumulate(_nodesCountVals, _nodesCountVals+id,0);
462  shared_ptr< Array<Mesh::VecD3> > coord( new Array<Mesh::VecD3>( nnodes ) );
463 
464  for ( int n = 0; n < nnodes; n++ ){
465  (*coord)[n][0] = _xVals[indx];
466  (*coord)[n][1] = _yVals[indx];
467  (*coord)[n][2] = _zVals[indx];
468  indx++;
469  }
470 
471  meshList.at(id)->setCoordinates( coord );
472 
473 
474 }
475 
476 //connectivities
477 void
478 NcDataReader::face_cells( int id, const MeshList& meshList )
479 {
480  //faceCells
481  int nfaces = _facesCountVals[id];
482  CRConnectivityPtr faceCells ( new CRConnectivity( meshList.at(id)->getFaces(), meshList.at(id)->getCells() ) );
483 
484  faceCells->initCount();
485 
486  for ( int n = 0; n < nfaces; n++ )
487  faceCells->addCount(n,2); // two cells around a face
488 
489  faceCells->finishCount();
490 
491  int indx = accumulate(_faceCellsColCountVals, _faceCellsColCountVals+id, 0);
492  for ( int n = 0; n < nfaces; n++ ){
493  for ( int cell = 0; cell < 2; cell++){ //two cells around a face always
494  faceCells->add( n, _faceCellsColVals[indx] );
495  indx++;
496  }
497  }
498 
499  faceCells->finishAdd();
500  meshList.at(id)->setFaceCells( faceCells );
501 }
502 
503 //connectivities
504 void
505 NcDataReader::face_nodes( int id, const MeshList& meshList )
506 {
507  //faceNodes
508  int nfaces = _facesCountVals[id];
509  CRConnectivityPtr faceNodes ( new CRConnectivity( meshList.at(id)->getFaces(), meshList.at(id)->getNodes() ) );
510 
511  faceNodes->initCount();
512  int node_count = _faceNodesRowVals[1] - _faceNodesRowVals[0];
513  for ( int n = 0; n < nfaces; n++ )
514  faceNodes->addCount(n, node_count);
515 
516  faceNodes->finishCount();
517 
518  int indx = accumulate(_faceNodesColCountVals, _faceNodesColCountVals+id, 0);
519  for ( int n = 0; n < nfaces; n++ ){
520  for ( int node = 0; node < node_count; node++){
521  faceNodes->add( n, _faceNodesColVals[indx] );
522  indx++;
523  }
524  }
525 
526  faceNodes->finishAdd();
527  meshList.at(id)->setFaceNodes ( faceNodes );
528 
529 
530 }
531 
532 
533 
534 void
535 NcDataReader::createMappers( const MeshList& globalMeshList )
536 {
537  if ( _nInterface ==0 )
538  return;
539 
540 
541  int indx = 0;
542  for ( int id = 0; id < _nmesh; id++)
543  {
544  // the id of our mesh in the global list
545  const int thisMeshID = _meshIDVals[id];
546  Mesh& thisMesh = *globalMeshList.at(thisMeshID);
547 
548  StorageSite::GatherMap& thisGatherMap = thisMesh.getCells().getGatherMap();
549  //loop over mesh interfaces
550  int offset = accumulate( _interfaceGroupVals, _interfaceGroupVals+id,0);
551  for ( int n = 0; n < _interfaceGroupVals[id]; n++)
552  {
553  int neighMeshID = _interfaceIDVals[ offset + n ];
554 
555  Mesh& neighMesh = *globalMeshList.at(neighMeshID);
556 
557  StorageSite::ScatterMap& neighScatterMap = neighMesh.getCells().getScatterMap();
558  int size = _interfaceSizeVals[ offset + n ];
559  ArrayIntPtr gatherIndices( new Array<int>( size ) );
560  ArrayIntPtr scatterIndices ( new Array<int>( size ) );
561 
562  //get portion values
563  for ( int i = 0; i < size; i++)
564  {
565  (*gatherIndices)[i] = _gatherIndicesVals[indx];
566  (*scatterIndices)[i] = _scatterIndicesVals[indx];
567  indx++;
568  }
569 
570  // the site we will gather from to is the neighbour mesh's ghost cell site for thisMesh
571  Mesh::PartIDMeshIDPair pairID = make_pair<int,int>(thisMeshID,0);
572  const StorageSite& ghostSiteScatter = *neighMesh.getGhostCellSiteScatter(pairID);
573  const StorageSite& ghostSiteGather = *neighMesh.getGhostCellSiteGather (pairID);
574 
575  thisGatherMap[&ghostSiteGather] = scatterIndices;
576  neighScatterMap[&ghostSiteScatter] = gatherIndices;
577  }
578 //
579 // const StorageSite& cells = meshList.at(id)->getCells();
580 // const StorageSite::ScatterMap& scatterMap = cells.getScatterMap();
581 // const StorageSite::GatherMap& gatherMap = cells.getGatherMap();
582 // if ( _fname == "test_3.cdf" ){
583 // const StorageSite* site = meshList.at(id)->getGhostCellSite(2);
584 // const Array<int> & scatter_array = *(scatterMap.find(site)->second);
585 // const Array<int> & gather_array = *(gatherMap.find(site)->second);
586 //
587 // for ( int n = 0; n < scatter_array.getLength(); n++)
588 // cout << "scatter array[" << n << "]=" << scatter_array[n] << endl;
589 //
590 // for ( int n = 0; n < gather_array.getLength(); n++)
591 // cout << "gather array[" << n << "]=" << gather_array[n] << endl;
592 //
593 // }
594 
595 
596  }
597 
598 
599 }
600 
601 
602 
603 
604 
605 
606 
607 
608 
void get_coord_vals()
NcVar * _interiorFacesGroup
Definition: NcDataReader.h:87
void createMappers(const MeshList &)
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
void boundary_faces(int id, const MeshList &meshList)
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
Definition: Mesh.h:49
string _fname
Definition: NcDataReader.h:62
void setCount(const int selfCount, const int nGhost=0)
Definition: StorageSite.h:42
int * _boundaryOffsetVals
Definition: NcDataReader.h:131
int * _faceNodesRowVals
Definition: NcDataReader.h:151
int * _boundaryIDVals
Definition: NcDataReader.h:132
int * _interfaceOffsetVals
Definition: NcDataReader.h:137
const StorageSite * getGhostCellSiteScatter(const PartIDMeshIDPair &id) const
Definition: Mesh.h:113
void get_bndry_vals()
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
void coords(int id, const MeshList &meshList)
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
void get_connectivity_vals()
NcVar * _faceCellsColCount
Definition: NcDataReader.h:106
int * _meshIDVals
Definition: NcDataReader.h:119
void interfaces(int id, const MeshList &meshList)
NcVar * _boundaryID
Definition: NcDataReader.h:92
pair< int, int > PartIDMeshIDPair
Definition: Mesh.h:62
MeshList getMeshList()
MeshList meshList()
const StorageSite & getCells() const
Definition: Mesh.h:109
int * _nodesCountVals
Definition: NcDataReader.h:124
NcDataReader(const string &fname)
int _nfaceNodesCol
Definition: NcDataReader.h:75
int * _dimensionVals
Definition: NcDataReader.h:118
NcVar * _gatherIndices
Definition: NcDataReader.h:115
const StorageSite * getGhostCellSiteGather(const PartIDMeshIDPair &id) const
Definition: Mesh.h:122
shared_ptr< Array< int > > ArrayIntPtr
Definition: NcDataReader.h:28
void allocate_vars()
int * _boundaryGroupVals
Definition: NcDataReader.h:129
const ScatterMap & getScatterMap() const
Definition: StorageSite.h:58
map< const StorageSite *, shared_ptr< Array< int > > > ScatterMap
Definition: StorageSite.h:23
Definition: Array.h:14
void get_interface_vals()
const GatherMap & getGatherMap() const
Definition: StorageSite.h:59
int * _gatherIndicesVals
Definition: NcDataReader.h:154
NcVar * _faceNodesRow
Definition: NcDataReader.h:112
void face_cells(int id, const MeshList &meshList)
NcVar * _interfaceGroup
Definition: NcDataReader.h:96
void get_mapper_vals()
int * _faceNodesRowCountVals
Definition: NcDataReader.h:146
NcVar * _meshID
Definition: NcDataReader.h:81
NcVar * _nodesCount
Definition: NcDataReader.h:85
NcVar * _ghostCellsCount
Definition: NcDataReader.h:84
map< const StorageSite *, shared_ptr< Array< int > > > GatherMap
Definition: StorageSite.h:24
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
void storage_sites(int id, const MeshList &meshList)
void get_var_values()
void face_nodes(int id, const MeshList &meshList)
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
static void destroyMeshList(MeshList meshList)
NcVar * _interfaceSize
Definition: NcDataReader.h:97
int * _faceCellsRowCountVals
Definition: NcDataReader.h:144
NcVar * _scatterIndices
Definition: NcDataReader.h:116