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(2)). 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(2)) class on a
basis_rep
class that is a pure virtual base class for effective bases, e.g. basis_P1,
basis_P1, etc.
IMPLEMENTATION¶
template<class T>
class basis_basic : public smart_pointer<basis_rep<T> > {
public:
// typedefs:
typedef basis_rep<T> rep;
typedef smart_pointer<rep> base;
typedef typename basis_rep<T>::size_type size_type;
// allocators:
basis_basic (std::string name = "");
// accessors:
std::string name() const;
size_type degree() const;
size_type size (reference_element hat_K) const;
void hat_node(
reference_element hat_K,
std::vector<point_basic<T> >& hat_node) const;
void eval(
reference_element hat_K,
const point_basic<T>& hat_x,
std::vector<T>& values) const;
void grad_eval(
reference_element hat_K,
const point_basic<T>& hat_x,
std::vector<point_basic<T> >& values) const;
};
typedef basis_basic<Float> basis;
SEE ALSO¶
reference_element(2), smart_pointer(2)