Rheolef  7.1
an efficient C++ finite element environment
P0.h
Go to the documentation of this file.
1 // file automatically generated by "../../../rheolef/fem/lib/basis_symbolic_cxx.cc"
22 #ifndef _RHEOLEF_P0_H
23 #define _RHEOLEF_P0_H
24 #include "rheolef/basis.h"
25 #include "rheolef/tensor.h"
27 #include "basis_fem_Pk_lagrange.h"
28 namespace rheolef {
29 
30 template<class T>
31 class basis_P0: public basis_rep<T> {
32 public:
33  typedef basis_rep<T> base;
34  typedef typename base::size_type size_type;
35  basis_P0();
36  ~basis_P0();
37  bool have_index_parameter() const { return true; }
38  std::string family_name() const { return "P"; }
40  reference_element hat_K,
41  const side_information_type& sid,
42  Eigen::Matrix<size_type,Eigen::Dynamic,1>& loc_idof) const
43  {
44  details::Pk_get_local_idof_on_side (hat_K, sid, degree(), loc_idof);
45  }
46  size_type degree() const;
47  bool is_nodal() const { return true; }
48  void evaluate (
49  reference_element hat_K,
50  const point_basic<T>& hat_x,
51  Eigen::Matrix<T,Eigen::Dynamic,1>& values) const;
52  void grad_evaluate (
53  reference_element hat_K,
54  const point_basic<T>& hat_x,
55  Eigen::Matrix<point_basic<T>,Eigen::Dynamic,1>& values) const;
56  void _compute_dofs (
57  reference_element hat_K,
58  const Eigen::Matrix<T,Eigen::Dynamic,1>& f_xnod,
59  Eigen::Matrix<T,Eigen::Dynamic,1>& dof) const;
60  void _initialize_cstor_sizes() const;
61  void _initialize_data (reference_element hat_K) const;
62  const Eigen::Matrix<point_basic<T>,Eigen::Dynamic,1>& hat_node(reference_element hat_K) const {
64  return _hat_node [hat_K.variant()]; }
65  mutable std::array<
66  Eigen::Matrix<point_basic<T>,Eigen::Dynamic,1>,
68 };
69 } // namespace rheolef
70 #endif // _RHEOLEF_P0_H
71 
field::size_type size_type
Definition: branch.cc:425
basis_rep< T > base
Definition: P0.h:33
std::array< Eigen::Matrix< point_basic< T >, Eigen::Dynamic, 1 >, reference_element::max_variant > _hat_node
Definition: P0.h:67
base::size_type size_type
Definition: P0.h:34
void local_idof_on_side(reference_element hat_K, const side_information_type &sid, Eigen::Matrix< size_type, Eigen::Dynamic, 1 > &loc_idof) const
Definition: P0.h:39
void _initialize_cstor_sizes() const
Definition: P0.cc:369
const Eigen::Matrix< point_basic< T >, Eigen::Dynamic, 1 > & hat_node(reference_element hat_K) const
Definition: P0.h:62
void _compute_dofs(reference_element hat_K, const Eigen::Matrix< T, Eigen::Dynamic, 1 > &f_xnod, Eigen::Matrix< T, Eigen::Dynamic, 1 > &dof) const
Definition: P0.cc:360
bool is_nodal() const
Definition: P0.h:47
void evaluate(reference_element hat_K, const point_basic< T > &hat_x, Eigen::Matrix< T, Eigen::Dynamic, 1 > &values) const
Definition: P0.cc:292
std::string family_name() const
Definition: P0.h:38
bool have_index_parameter() const
Definition: P0.h:37
size_type degree() const
Definition: P0.cc:286
void grad_evaluate(reference_element hat_K, const point_basic< T > &hat_x, Eigen::Matrix< point_basic< T >, Eigen::Dynamic, 1 > &values) const
Definition: P0.cc:326
void _initialize_data(reference_element hat_K) const
Definition: P0.cc:381
reference_element::size_type size_type
Definition: basis.h:214
void _initialize_data_guard(reference_element hat_K) const
Definition: basis_rep.cc:126
see the reference_element page for the full documentation
static const variant_type max_variant
variant_type variant() const
This file is part of Rheolef.