an efficient C++ finite element environment
|
|
Go to the documentation of this file. 1 #ifndef _RHEO_BASIS_SYMBOLIC_H
2 #define _RHEO_BASIS_SYMBOLIC_H
24 #include <ginac/ginac.h>
25 #include "rheolef/point.h"
26 #include "rheolef/reference_element.h"
37 GiNaC::symbol
x,
y,
z;
96 const std::vector<polynom_type>&
p,
size_type d = 3)
const;
112 std::vector<point_basic<GiNaC::ex> >
_node;
138 GiNaC::Digits = 2*std::numeric_limits<Float>::digits10;
144 operator[](i).set_name(nam);
156 return operator[] (t);
160 return operator[] (t);
165 return operator[] (hat_K.
variant()); }
182 const GiNaC::ex& x0,
const GiNaC::ex& x1=0,
const GiNaC::ex& x2=0) {
201 #endif // _RHEO_BASIS_SYMBOLIC_H
std::vector< polynom_type > _poly
void add_node(const point_basic< GiNaC::ex > &x)
bool _have_index_parameter
value_type eval(const polynom_type &p, const point_basic< polynom_type > &x, size_type d=3) const
basis_symbolic_nodal_on_geo & on(reference_element::variant_type t)
bool have_index_parameter() const
void set_hat_K(reference_element::variant_type t)
GiNaC::matrix vandermonde_matrix(const std::vector< polynom_type > &p, size_type d=3) const
void set_name(std::string str)
void add_node(const Float &x0, const Float &x1=0, const Float &x2=0)
basis_symbolic_nodal_on_geo::polynom_type polynom_type
polynom_type & polynom(size_type i)
basis_symbolic_nodal_on_geo::size_type size_type
see the reference_element page for the full documentation
static polynom_type poly(const polynom_type &p)
std::vector< polynom_type > _basis
std::vector< point_basic< polynom_type > > _grad_basis
const basis_symbolic_nodal_on_geo & on(reference_element::variant_type t) const
basis_symbolic_nodal_on_geo & operator<<(const polynom_type &p)
void put_cxx_body(std::ostream &out) const
variant_type variant() const
void put_cxx_header(std::ostream &out) const
bool have_continuous_feature() const
size_type dimension() const
static point_basic< GiNaC::ex > node(const GiNaC::ex &x0, const GiNaC::ex &x1=0, const GiNaC::ex &x2=0)
This file is part of Rheolef.
const polynom_type & polynom(size_type i) const
const reference_element & hat_K() const
basis_symbolic_nodal_on_geo::end_type end_type
basis_symbolic_nodal(std::string nam, size_type deg)
see the Float page for the full documentation
basis_symbolic_nodal_on_geo & on(char t)
static const variant_type max_variant
void set_name(std::string str)
polynom_type indexed_symbol(const polynom_type &expr0) const
size_type dimension() const
void add_polynom(const polynom_type &p)
std::string family_name() const
static point_basic< GiNaC::ex > node(const point_basic< GiNaC::ex > &x)
void set_continuous_feature(bool cf=true)
void set_degree_parameter(bool dp=true)
void set_variant(variant_type x)
field::size_type size_type
bool _have_continuous_feature
void put_cxx_main(int argc, char **argv) const
void put_cxx_body(std::ostream &out) const
point_basic< GiNaC::ex > & node(size_type i)
void put_cxx_header(std::ostream &out) const
const point_basic< GiNaC::ex > & node(size_type i) const
std::vector< int >::size_type size_type
basis_symbolic_nodal_on_geo()
std::vector< point_basic< GiNaC::ex > > _node