Rheolef  7.1
an efficient C++ finite element environment
pointset.h
Go to the documentation of this file.
1 #ifndef _RHEOLEF_POINTSET_H
2 #define _RHEOLEF_POINTSET_H
3 /*Class:pointset
24 NAME: @code{poinset} - a set of points in the reference element
25 @clindex pointset
26 @cindex reference element
27 @clindex reference_element
28 SYNOPSIS:
29  @noindent
30  The @code{pointset} class defines a set of points in the reference element
31  (see @ref{reference_element iclass}).
32  It could be associated either to a quadrature formulae or to a lattice,
33  e.g. equispaced Lagrange lattice.
34 OPTIONS:
35  The pointset basis recognize some options,
36  transmitted to the constructor of the basis class:
37  see @ref{pointset_option iclass}.
38 AUTHOR: Pierre.Saramito@imag.fr
39 DATE: 7 may 2019
40 End:
41 */
42 #include "rheolef/point.h"
43 #include "rheolef/reference_element.h"
44 #include "rheolef/pointset_option.h"
45 
46 namespace rheolef {
47 
48 template<class T>
49 class pointset_rep {
50 public:
51 
52 // typedefs:
53 
55  typedef T value_type;
56 
57 // allocators:
58 
59  pointset_rep (const pointset_option& popt);
60  void reset (const pointset_option& popt);
61 
62 // accessors:
63 
64  const pointset_option& option() const { return _sopt; }
65  size_type nnod (const reference_element& hat_K) const;
66  const point_basic<T>& node (const reference_element& hat_K, size_i inod) const
67 
68 protected:
69 // data:
70  const std::array<bool,reference_element::max_variant> _is_initialized;;
71  const std::array<
72  Eigen::Matrix<point_basic<T>,Eigen::Dynamic,1>
75 };
76 
77 //<pointset:
78 template<class T>
79 class pointset: public smart_pointer_nocopy<basis_rep<T> > {
80 public:
81 
82 // typedefs:
83 
86  typedef typename rep::size_type size_type;
87  typedef typename rep::value_type value_type;
88 
89 // allocators:
90 
91  pointset (const pointset_option& popt = pointset_option());
92  void reset (const pointset_option& popt);
93 
94 // accessors:
95 
96  const pointset_option& option() const
97  { return data().option(); }
98  size_type nnod (const reference_element& hat_K) const
99  { return data().nnod(hat_K); }
100  const point_basic<T>& node (const reference_element& hat_K, size_i inod) const
101  { return data().node (hat_K, inod); }
102 };
103 //>verbatim:
104 
105 }// namespace rheolef
106 #endif // _RHEOLEF_POINTSET_H
rheolef::point_basic
Definition: point.h:87
rheolef::pointset_rep::_sopt
pointset_option _sopt
Definition: pointset.h:74
rheolef::smart_pointer_nocopy
Definition: smart_pointer.h:389
rheolef::pointset::reset
void reset(const pointset_option &popt)
rheolef::pointset_rep::reset
void reset(const pointset_option &popt)
rheolef::pointset_option
Definition: pointset_option.h:53
rheolef::pointset::base
smart_pointer_nocopy< rep > base
Definition: pointset.h:85
rheolef::reference_element
see the reference_element page for the full documentation
Definition: reference_element.h:66
rheolef::pointset_rep::node
const point_basic< T > & node(const reference_element &hat_K, size_i inod) const protected
Definition: pointset.h:66
rheolef::pointset_rep::option
const pointset_option & option() const
Definition: pointset.h:64
rheolef::pointset_rep::nnod
size_type nnod(const reference_element &hat_K) const
rheolef::pointset_rep
Definition: pointset.h:49
rheolef::pointset::value_type
rep::value_type value_type
Definition: pointset.h:87
rheolef::pointset::size_type
rep::size_type size_type
Definition: pointset.h:86
rheolef
This file is part of Rheolef.
Definition: compiler_eigen.h:37
rheolef::pointset::nnod
size_type nnod(const reference_element &hat_K) const
Definition: pointset.h:98
rheolef::smart_pointer_base< basis_rep< T >, details::no_copy< basis_rep< T > > >::data
const basis_rep< T > & data() const
Definition: smart_pointer.h:266
rheolef::pointset::rep
pointset_rep< T > rep
Definition: pointset.h:84
rheolef::pointset_rep::_hat_x
const std::array< Eigen::Matrix< point_basic< T >, Eigen::Dynamic, 1 >,reference_element::max_variant > _hat_x
Definition: pointset.h:73
rheolef::reference_element::max_variant
static const variant_type max_variant
Definition: reference_element.h:82
rheolef::pointset_rep::value_type
T value_type
Definition: pointset.h:55
rheolef::pointset::node
const point_basic< T > & node(const reference_element &hat_K, size_i inod) const
Definition: pointset.h:100
rheolef::pointset::option
const pointset_option & option() const
Definition: pointset.h:96
rheolef::pointset_rep::pointset_rep
pointset_rep(const pointset_option &popt)
size_type
field::size_type size_type
Definition: branch.cc:425
rheolef::pointset::pointset
pointset(const pointset_option &popt=pointset_option())
rheolef::reference_element::size_type
std::vector< int >::size_type size_type
Definition: reference_element.h:71
rheolef::pointset_rep::size_type
reference_element::size_type size_type
Definition: pointset.h:54
T
Expr1::float_type T
Definition: field_expr.h:218
rheolef::pointset
Definition: pointset.h:79