Rheolef  7.2
an efficient C++ finite element environment
 
Loading...
Searching...
No Matches
pointset.h
Go to the documentation of this file.
1#ifndef _RHEOLEF_POINTSET_H
2#define _RHEOLEF_POINTSET_H
23/*Class:pointset
24NAME: @code{poinset} - a set of points in the reference element
25@clindex pointset
26@cindex reference element
27@clindex reference_element
28SYNOPSIS:
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.
34OPTIONS:
35 The pointset basis recognize some options,
36 transmitted to the constructor of the basis class:
37 see @ref{pointset_option iclass}.
38AUTHOR: Pierre.Saramito@imag.fr
39DATE: 7 may 2019
40End:
41*/
42#include "rheolef/point.h"
43#include "rheolef/reference_element.h"
44#include "rheolef/pointset_option.h"
45
46namespace rheolef {
47
48template<class T>
50public:
51
52// typedefs:
53
55 typedef T value_type;
56
57// allocators:
58
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
68protected:
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:
78template<class T>
79class pointset: public smart_pointer_nocopy<basis_rep<T> > {
80public:
81
82// typedefs:
83
86 typedef typename rep::size_type size_type;
87 typedef typename rep::value_type value_type;
88
89// allocators:
90
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
const std::array< Eigen::Matrix< point_basic< T >, Eigen::Dynamic, 1 >,reference_element::max_variant > _hat_x
Definition pointset.h:73
pointset_rep(const pointset_option &popt)
const pointset_option & option() const
Definition pointset.h:64
void reset(const pointset_option &popt)
pointset_option _sopt
Definition pointset.h:74
const point_basic< T > & node(const reference_element &hat_K, size_i inod) const protected
Definition pointset.h:66
reference_element::size_type size_type
Definition pointset.h:54
size_type nnod(const reference_element &hat_K) const
const point_basic< T > & node(const reference_element &hat_K, size_i inod) const
Definition pointset.h:100
rep::value_type value_type
Definition pointset.h:87
const pointset_option & option() const
Definition pointset.h:96
void reset(const pointset_option &popt)
pointset_rep< T > rep
Definition pointset.h:84
pointset(const pointset_option &popt=pointset_option())
rep::size_type size_type
Definition pointset.h:86
smart_pointer_nocopy< rep > base
Definition pointset.h:85
size_type nnod(const reference_element &hat_K) const
Definition pointset.h:98
see the reference_element page for the full documentation
static const variant_type max_variant
std::vector< int >::size_type size_type
Expr1::float_type T
Definition field_expr.h:230
This file is part of Rheolef.