Memosa-FVM  0.2
Grid.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 _GRID_H_
6 #define _GRID_H_
7 
8 #include "Array.h"
9 #include "StorageSite.h"
10 #include "Vector.h"
11 #include "Field.h"
12 #include "CRConnectivity.h"
13 #include "Mesh.h"
14 #include "GeomFields.h"
15 #include "FlowFields.h"
16 #include "MPM_Particles.h"
17 #include "CRMatrixTranspose.h"
18 
19 
20 
22 
24 
25 class Grid
26 {
27 public:
28  Grid(GeomFields& geomFields, FlowFields& flowFields, string coordFileName,
29  string velocityFileName);
30 
31  ~Grid();
32 
33  const shared_ptr<Array<VecD3> >& getCoordinates() {return _coordinates;}
34 
35  const shared_ptr<Array<VecD3> >& getVelocities() {return _velocities;}
36 
37  const StorageSite& getNodes() {return _nodes;}
38  const StorageSite& getCells() {return _cells;}
39 
40 
41  void setandwriteGrids(const string fileBase);
42 
44 
45  void setConnFaceToGrid(Mesh& mesh, const StorageSite& faces);
46 
47  vector<int> findNeighbors(const VecD3& point);
48 
49  const shared_ptr<CRConnectivity>
50  createConnectivity(const StorageSite& pointSite,
51  const VecD3Array& points);
52 
53  shared_ptr<ArrayBase>
55 
56  vector<int>
57  findNeighborsByCells(const VecD3& point);
58 
59 protected:
64  shared_ptr<Array<VecD3> > _coordinates;
65  shared_ptr<Array<VecD3> > _velocities;
66  shared_ptr<CRConnectivity> _cellNodes;
67 
68 };
69 
70 
71 
72 #endif
73 
GeomFields & _geomFields
Definition: Grid.h:60
void setandwriteGrids(const string fileBase)
Definition: Grid.cpp:85
StorageSite _cells
Definition: Grid.h:63
const StorageSite & getCells()
Definition: Grid.h:38
shared_ptr< ArrayBase > computeInterpolatedVelocity(const StorageSite &faces)
Definition: Grid.cpp:411
Definition: Mesh.h:49
Grid(GeomFields &geomFields, FlowFields &flowFields, string coordFileName, string velocityFileName)
Definition: Grid.cpp:33
Definition: Grid.h:25
vector< int > findNeighbors(const VecD3 &point)
!! only applicable for rectangular mesh
Definition: Grid.cpp:291
const shared_ptr< Array< VecD3 > > & getCoordinates()
Definition: Grid.h:33
vector< int > findNeighborsByCells(const VecD3 &point)
Definition: Grid.cpp:209
Array< VecD3 > VecD3Array
Definition: Grid.h:23
StorageSite _nodes
Definition: Grid.h:62
shared_ptr< Array< VecD3 > > _coordinates
Definition: Grid.h:64
shared_ptr< CRConnectivity > _cellNodes
Definition: Grid.h:66
const shared_ptr< CRConnectivity > createConnectivity(const StorageSite &pointSite, const VecD3Array &points)
Definition: Grid.cpp:363
shared_ptr< Array< VecD3 > > _velocities
Definition: Grid.h:65
Definition: Array.h:14
void setConnFaceToGrid(Mesh &mesh, const StorageSite &faces)
Definition: Grid.cpp:397
FlowFields & _flowFields
Definition: Grid.h:61
const StorageSite & getNodes()
Definition: Grid.h:37
void createCellToNodeConnectivity()
Definition: Grid.cpp:151
Vector< double, 3 > VecD3
Definition: Grid.h:21
const shared_ptr< Array< VecD3 > > & getVelocities()
Definition: Grid.h:35
~Grid()
Definition: Grid.cpp:83