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

NAME

       basis - polynomial basis

SYNOPSYS

       The basis class defines functions that evaluates a polynomial basis and
       its derivatives on a point. The polynomial basis  is  designated  by  a
       string,  e.g. "P0", "P1", "P2", "bubble",...  indicating the basis. The
       basis  depends  also  of  the  reference  element:  triangle,   square,
       tetrahedron  (see .  reference_element internal}').  For instance, on a
       square, the "P1" string designates the common Q1  four-nodes  basis  on
       the reference square.

       The  nodes  associated  to  the  Lagrange  polynomial  basis  are  also
       available by its associated accessor.

IMPLEMENTATION NOTE

       The basis class is a  see  .   smart_pointer  internal}')  class  on  a
       basis_rep  class that is a pure virtual base class for effective bases,
       e.g. basis_P1, basis_P1, etc.

IMPLEMENTATION

       class basis : public smart_pointer<basis_rep> {
       public:

       // typedefs:

           typedef size_t size_type;
           typedef basis_rep::dof_family_type dof_family_type;

       // allocators:

           basis (std::string name = "");

       // accessors:

           std::string name() const;
           size_type   degree() const;
           size_type   size (reference_element hat_K, dof_family_type family=reference_element::dof_family_max) const;
           dof_family_type family() const;

           dof_family_type dof_family(
               reference_element hat_K,
               size_type         i_dof_local) const;

           Float eval(
               reference_element hat_K,
               size_type         i_dof_local,
               const point&      hat_x) const;

           point grad_eval(
               reference_element hat_K,
               size_type         i_dof_local,
               const point&      hat_x) const;

           basic_point<point> hessian_eval(
               reference_element hat_K,
               size_type         i_dof_local,
               const point&      hat_x) const;

           void eval(
               reference_element    hat_K,
               const point&         hat_x,
               std::vector<Float>&  values) const;

           void grad_eval(
               reference_element    hat_K,
               const point&         hat_x,
               std::vector<point>&  values) const;

           void hessian_eval(
               reference_element    hat_K,
               const point&         hat_x,
               std::vector<basic_point<point> >&  values) const;

           void hat_node(
               reference_element    hat_K,
               std::vector<point>&  hat_node) const;

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