an efficient C++ finite element environment
|
|
Go to the documentation of this file. 1 #ifndef _RHEO_BASIS_RAW_H
2 #define _RHEO_BASIS_RAW_H
3 #include "rheolef/reference_element.h"
24 #include "rheolef/point.h"
25 #include "rheolef/tensor.h"
26 #include "rheolef/smart_pointer.h"
27 #include "rheolef/space_constant.h"
28 #include "rheolef/compiler_eigen.h"
29 #include "rheolef/rheostream.h"
59 Eigen::Matrix<T,Eigen::Dynamic,1>&
value)
const = 0;
81 mutable std::array<bool,
92 if (_have_initialize [hat_K.
variant()])
return;
93 _have_initialize [hat_K.
variant()] =
true;
101 _have_initialize.fill (
false);
127 std::string
name()
const;
132 const std::string&
valued()
const;
137 Eigen::Matrix<T,Eigen::Dynamic,1>&
value)
const;
172 return base::data()._clear();
179 return base::data().family_name();
186 return base::data().degree();
193 return base::data().name();
200 return base::data().ndof (hat_K);
207 return base::data().is_hierarchical();
214 return base::data().valued_tag();
221 return base::data().valued();
229 Eigen::Matrix<T,Eigen::Dynamic,1>&
value)
const
231 return base::data().evaluate (hat_K, hat_x,
value);
241 base::data().grad_evaluate (hat_K, hat_x,
value);
248 base::data().put (os, hat_K);
252 #endif // _RHEO_BASIS_RAW_H
void reset(std::string &name)
basis_raw_basic(std::string name="")
basis_raw_basic< Float > basis_raw
reference_element::size_type size_type
const std::string & valued() const
virtual bool is_hierarchical() const
virtual void evaluate(reference_element hat_K, const point_basic< T > &hat_x, Eigen::Matrix< T, Eigen::Dynamic, 1 > &value) const =0
const std::string & valued() const
static basis_raw_rep * make_ptr(std::string name)
std::string family_name() const
rep::value_type value_type
void evaluate(reference_element hat_K, const point_basic< T > &hat_x, Eigen::Matrix< T, Eigen::Dynamic, 1 > &value) const
space_constant::valued_type valued_type
void put(std::ostream &os, reference_element hat_K) const
basis_raw_rep(std::string name="")
void reset(std::string &name)
virtual void _initialize(reference_element hat_K) const =0
void grad_evaluate(reference_element hat_K, const point_basic< T > &hat_x, Eigen::Matrix< point_basic< T >, Eigen::Dynamic, 1 > &value) const
valued_type valued_tag() const
see the reference_element page for the full documentation
see the smart_pointer page for the full documentation
virtual void grad_evaluate(reference_element hat_K, const point_basic< T > &hat_x, Eigen::Matrix< point_basic< T >, Eigen::Dynamic, 1 > &value) const =0
variant_type variant() const
smart_pointer< rep > base
bool is_hierarchical() const
std::array< bool, reference_element::max_variant > _have_initialize
virtual size_type degree() const
const std::string & valued_name(valued_type valued_tag)
This file is part of Rheolef.
static const variant_type max_variant
rep::valued_type valued_type
std::string itos(std::string::size_type i)
itos: see the rheostream page for the full documentation
std::vector< int >::size_type size_type
void _initialize_guard(reference_element hat_K) const
size_type ndof(reference_element hat_K) const
void put(std::ostream &os, reference_element hat_K) const
virtual valued_type valued_tag() const
virtual std::string family_name() const =0
virtual size_type ndof(reference_element hat_K) const =0