Provided by: librheolef-dev_5.93-2_i386 bug

NAME

       reference_element - reference element

SYNOPSYS

       The  reference_element class defines all supported types of geometrical
       elements in one,  two  and  three  dimensions.  The  set  of  supported
       elements are designate by a letter

       p      point (dimension 0)

       e      edge (dimension 1)

       t      triangle(dimension 2)

       q      quadrangle(dimension 2)

       T      tetrahedron(dimension 3)

       P      prism(dimension 3)

       H      hexaedron(dimension 3)

IMPLEMENTATION

       class reference_element {
       public:

       // typedefs:

           typedef std::vector<int>::size_type size_type;

           // defines enum_type { p, t, q ..., H, ...};
           // in an automatically generated file :

           typedef enum {
               p = 0,
               e = 1,
               t = 2,
               q = 3,
               T = 4,
               P = 5,
               H = 6,
               max_size = 7
           } enum_type;

           typedef enum {
               Lagrange = 0,
               Hermite = 1,
               dof_family_max =2
           } dof_family_type;

       // constants:

           static const size_type not_set;
           static const size_type max_n_subgeo      = 12;
           static const size_type max_subgeo_vertex = 8;

       // allocators/deallocators:

           reference_element (enum_type x = max_size);

       // accessors:

           enum_type type() const;
           char name() const;
           size_type dimension() const;
           friend Float measure (reference_element hat_K);
           size_type size() const;
           size_type n_edge() const;
           size_type n_face() const;
           size_type n_subgeo(size_type subgeo_dim) const;
           size_type subgeo_size(size_type subgeo_dim, size_type i_subgeo) const;
           size_type subgeo_local_vertex(size_type subgeo_dim, size_type i_subgeo, size_type i_subgeo_vertex) const;
           size_type heap_size() const;
           size_type heap_offset(size_type subgeo_dim) const;

           void set_type (enum_type x);
           void set_type (size_type n_vertex, size_type dim);
           void set_name (char name);

       // data:
       protected:

           enum_type _x;

       // constants:

           // these constants are initialized in
           //   "reference_element_declare.c"
           // automatically generated.

           static const char _name                     [max_size];
           static const size_type _dimension           [max_size];
           static const size_type _n_subgeo            [max_size][4];
           static const size_type _subgeo_size         [max_size*4*max_n_subgeo];
           static const size_type _subgeo_local_vertex [max_size*4*max_n_subgeo*max_subgeo_vertex];
           static const size_type _heap_size           [max_size];
           static const size_type _heap_offset         [max_size][4];
           friend std::istream& operator>>(std::istream&, class geo_element&);
       };