NUMCXX  0.13.20181108
Numerical library for small projects and teaching purposes
geometry.hxx
Go to the documentation of this file.
1 #ifndef NUMCXX_GEOMETRY_H
7 #define NUMCXX_GEOMETRY_H
8 
9 #include "tarray1.hxx"
10 #include "tarray2.hxx"
11 
12 namespace numcxx
13 {
17  class Geometry
18  {
19 
20  public:
21 
23  void set_points (const std::initializer_list<std::initializer_list<double>> &il) {points=TArray2<double>::create(il);};
24 
26  void set_bfaces (const std::initializer_list<std::initializer_list<int>> &il) {bfaces=TArray2<int>::create(il);};
27 
29  void set_bfaceregions (const std::initializer_list<int> &il){bfaceregions=TArray1<int>::create(il);};
30 
32  void set_regionpoints (const std::initializer_list<std::initializer_list<double>> &il) {regionpoints=TArray2<double>::create(il);};
33 
35  void set_regionnumbers(const std::initializer_list<int> &il){regionnumbers=TArray1<int>::create(il);};
36 
38  void set_regionvolumes(const std::initializer_list<double> &il){regionvolumes=TArray1<double>::create(il);};
39 
40 
44  std::shared_ptr<TArray2<double>> points=nullptr;
45 
49  std::shared_ptr<TArray2<int>> bfaces=nullptr;
50 
51 
55  std::shared_ptr<TArray1<int>> bfaceregions=nullptr;
56 
60  std::shared_ptr<TArray2<double>> regionpoints=nullptr;
61 
65  std::shared_ptr<TArray1<int>> regionnumbers=nullptr;
66 
70  std::shared_ptr<TArray1<double>> regionvolumes=nullptr;
71 
72 
73  static std::shared_ptr<Geometry> create() { return std::make_shared<Geometry>();}
74  static std::shared_ptr<Geometry> New() { return std::make_shared<Geometry>();}
75  };
76 
77 }
78 
79 
80 #endif
Class collecting data for the description of piecewise linear geometries.
Definition: geometry.hxx:17
void set_regionpoints(const std::initializer_list< std::initializer_list< double >> &il)
Set member via intializer list.
Definition: geometry.hxx:32
std::shared_ptr< TArray1< int > > regionnumbers
nreg array of integers containing region markers
Definition: geometry.hxx:65
Header for numcxx::TArray1.
void set_regionvolumes(const std::initializer_list< double > &il)
Set member via intializer list.
Definition: geometry.hxx:38
std::shared_ptr< TArray2< int > > bfaces
nbfaces x dim array of of integers describing boundary segments
Definition: geometry.hxx:49
static std::shared_ptr< TArray2< T > > create(index n0, index n1)
Construct empty 2D Array.
Definition: tarray2.hxx:83
std::shared_ptr< TArray1< int > > bfaceregions
nbfaces array of integers describing boundary segment markers
Definition: geometry.hxx:55
void set_points(const std::initializer_list< std::initializer_list< double >> &il)
Set member via intializer list.
Definition: geometry.hxx:23
void set_regionnumbers(const std::initializer_list< int > &il)
Set member via intializer list.
Definition: geometry.hxx:35
std::shared_ptr< TArray2< double > > regionpoints
nreg x dim array of doubles containing point coordinates of region points
Definition: geometry.hxx:60
std::shared_ptr< TArray2< double > > points
Points: npt x dim array of double containing point coordinates.
Definition: geometry.hxx:44
void set_bfaces(const std::initializer_list< std::initializer_list< int >> &il)
Set member via intializer list.
Definition: geometry.hxx:26
void set_bfaceregions(const std::initializer_list< int > &il)
Set member via intializer list.
Definition: geometry.hxx:29
std::shared_ptr< TArray1< double > > regionvolumes
nreg array of integers containing the maximum volumes/areas of triangles in a region ...
Definition: geometry.hxx:70
Numcxx template library.
Definition: expression.ixx:41
static std::shared_ptr< TArray1< T > > create(index n1)
Construct smart pointer empty 1D Array.
Definition: tarray1.hxx:81
static std::shared_ptr< Geometry > create()
Definition: geometry.hxx:73
Header for numcxx::TArray2.
static std::shared_ptr< Geometry > New()
Definition: geometry.hxx:74