NUMCXX  0.13.20181108
Numerical library for small projects and teaching purposes
simplegrid.hxx
Go to the documentation of this file.
1 #ifndef NUMCXX_SIMPLEGRID_HXX
7 #define NUMCXX_SIMPLEGRID_HXX
8 
9 
10 #include "tarray1.hxx"
11 #include "tarray2.hxx"
12 #include "geometry.hxx"
13 
14 namespace numcxx
15 {
19  class SimpleGrid
20  {
21  public:
22 
25  SimpleGrid(const SimpleGrid& g)=delete;
26 
32  SimpleGrid(const Geometry &geometry, const char *triangle_flags);
33 
35  static std::shared_ptr<SimpleGrid> create(const Geometry &geometry, const std::string triangle_flags) { return std::make_shared<SimpleGrid>(geometry,triangle_flags.c_str());}
36 
38  static std::shared_ptr<SimpleGrid> create(std::shared_ptr<Geometry> geometry, const char * triangle_flags) { return std::make_shared<SimpleGrid>(*geometry,triangle_flags);}
39 
40 
42  const TArray2<double>& get_points() const { return *points;};
43 
45  const TArray2<int>& get_cells() const { return *cells;};
46 
48  const TArray1<int>& get_cellregions() const {return *cellregions;};
49 
51  const TArray2<int>& get_bfaces() const { return *bfaces;};
52 
54  const TArray1<int>& get_bfaceregions() const { return *bfaceregions;};
55 
57  const int spacedim() const { return points->shape(1);}
58 
60  const int griddim() const { return bfaces->shape(1);}
61 
63  const int ncells() const {return cells->shape(0);}
64 
66  const int npoints() const {return points->shape(0);}
67 
69  const int nbfaces() const {return bfaces->shape(0);}
70 
72  void calc_hminmax(double& hmin, double& hmax) const;
73 
74  private:
75  std::shared_ptr<TArray2<double>> points=nullptr;
76  std::shared_ptr<TArray2<int>> cells=nullptr;
77  std::shared_ptr<TArray1<int>> cellregions=nullptr;
78  std::shared_ptr<TArray2<int>> bfaces=nullptr;
79  std::shared_ptr<TArray1<int>> bfaceregions=nullptr;
80 
81 
82  };
83 }
84 
85 
86 #endif
const int ncells() const
Return number of cells.
Definition: simplegrid.hxx:63
const TArray1< int > & get_cellregions() const
Get array region markers.
Definition: simplegrid.hxx:48
Class collecting data for the description of piecewise linear geometries.
Definition: geometry.hxx:17
const int griddim() const
Return dimension of grid.
Definition: simplegrid.hxx:60
const int nbfaces() const
Return number of boundary faces.
Definition: simplegrid.hxx:69
Header for numcxx::TArray1.
const TArray2< int > & get_bfaces() const
Get array of point indices describing boundary faces.
Definition: simplegrid.hxx:51
std::shared_ptr< TArray1< int > > bfaceregions
Definition: simplegrid.hxx:79
const TArray2< double > & get_points() const
Get array of point coordinates.
Definition: simplegrid.hxx:42
SimpleGrid()
Trivial construtor.
Definition: simplegrid.hxx:24
const TArray1< int > & get_bfaceregions() const
Get array of boundary markers.
Definition: simplegrid.hxx:54
std::shared_ptr< TArray1< int > > cellregions
Definition: simplegrid.hxx:77
static std::shared_ptr< SimpleGrid > create(std::shared_ptr< Geometry > geometry, const char *triangle_flags)
Static constructor from shared pointer to geometry.
Definition: simplegrid.hxx:38
One dimensional array class.
Definition: tarray1.hxx:31
Class containing data for simple grid data structure.
Definition: simplegrid.hxx:19
Numcxx template library.
Definition: expression.ixx:41
Header for numcxx::TArray2.
std::shared_ptr< TArray2< int > > cells
Definition: simplegrid.hxx:76
Two-dimensional array class.
Definition: tarray2.hxx:31
void calc_hminmax(double &hmin, double &hmax) const
Calculate some grid data.
Definition: simplegrid.cxx:55
std::shared_ptr< TArray2< int > > bfaces
Definition: simplegrid.hxx:78
std::shared_ptr< TArray2< double > > points
Definition: simplegrid.hxx:75
static std::shared_ptr< SimpleGrid > create(const Geometry &geometry, const std::string triangle_flags)
Static constructor from reference to geometry.
Definition: simplegrid.hxx:35
const int npoints() const
Return number of points.
Definition: simplegrid.hxx:66
const TArray2< int > & get_cells() const
Get array of point indices describing cells.
Definition: simplegrid.hxx:45
Header for geometry description.
const int spacedim() const
Return dimension of space.
Definition: simplegrid.hxx:57