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

NAME

       numbering - global degree of freedom numbering

SYNOPSYS

       The  numbering  class  defines methods that furnish global numbering of
       degrees of freedom. This numbering depends upon the degrees of polynoms
       on  elements  and  upon  the  continuity  requirement  at inter-element
       boundary. For instance the "P1" continuous finite element approximation
       has  one  degree  of  freedom  per  vertice  of  the  mesh,  while  its
       discontinuous counterpart has dim(basis) times the number  of  elements
       of  the  mesh, where dim(basis) is the size of the local finite element
       basis.

IMPLEMENTATION

       class numbering : public smart_pointer<numbering_rep> {
       public:

       // typedefs:
           typedef numbering_rep                rep;
           typedef smart_pointer<numbering_rep> base;
           typedef size_t                       size_type;

       // allocators:

           numbering (std::string name = "");
           numbering (numbering_rep* ptr);

           virtual ~numbering() {}

       // accessors:

           std::string name() const;
           virtual
           size_type ndof (
                     size_type  mesh_map_dimension,
               const size_type* mesh_n_geo,
               const size_type* mesh_n_element) const;

           virtual
           size_type idof (
               const size_type*      mesh_n_geo,
               const size_type*      mesh_n_element,
               const geo_element&    K,
               size_type             i_dof_local) const;

           virtual
           void idof (
               const size_type*        mesh_n_geo,
               const size_type*        mesh_n_element,
               const geo_element&      K,
               std::vector<size_type>& i_dof) const;

           virtual bool is_continuous() const;
           virtual bool is_discontinuous() const { return !is_continuous(); }

       // i/o:

           void dump(std::ostream& out = std::cerr) const;
       };