Loading...
Searching...
No Matches
pointset.h
Go to the documentation of this file.
#ifndef _RHEOLEF_POINTSET_H
#define _RHEOLEF_POINTSET_H
/*Class:pointset
NAME: @code{poinset} - a set of points in the reference element
@clindex pointset
@cindex reference element
@clindex reference_element
SYNOPSIS:
@noindent
The @code{pointset} class defines a set of points in the reference element
(see @ref{reference_element iclass}).
It could be associated either to a quadrature formulae or to a lattice,
e.g. equispaced Lagrange lattice.
OPTIONS:
The pointset basis recognize some options,
transmitted to the constructor of the basis class:
see @ref{pointset_option iclass}.
AUTHOR: Pierre.Saramito@imag.fr
DATE: 7 may 2019
End:
*/
#include "rheolef/point.h"
#include "rheolef/reference_element.h"
#include "rheolef/pointset_option.h"
namespace rheolef {
template<class T>
class pointset_rep {
public:
// typedefs:
typedef reference_element::size_type size_type;
typedef T value_type;
// allocators:
pointset_rep (const pointset_option& popt);
void reset (const pointset_option& popt);
// accessors:
const pointset_option& option() const { return _sopt; }
size_type nnod (const reference_element& hat_K) const;
const point_basic<T>& node (const reference_element& hat_K, size_i inod) const
protected:
// data:
const std::array<bool,reference_element::max_variant> _is_initialized;;
const std::array<
Eigen::Matrix<point_basic<T>,Eigen::Dynamic,1>
,reference_element::max_variant> _hat_x;
pointset_option _sopt;
};
//<pointset:
template<class T>
class pointset: public smart_pointer_nocopy<basis_rep<T> > {
public:
// typedefs:
typedef pointset_rep<T> rep;
typedef smart_pointer_nocopy<rep> base;
typedef typename rep::size_type size_type;
typedef typename rep::value_type value_type;
// allocators:
pointset (const pointset_option& popt = pointset_option());
void reset (const pointset_option& popt);
// accessors:
const pointset_option& option() const
{ return data().option(); }
size_type nnod (const reference_element& hat_K) const
{ return data().nnod(hat_K); }
const point_basic<T>& node (const reference_element& hat_K, size_i inod) const
{ return data().node (hat_K, inod); }
};
//>verbatim:
}// namespace rheolef
#endif // _RHEOLEF_POINTSET_H
rheolef::point_basic
Definition point.h:86
rheolef::pointset_rep
Definition pointset.h:49
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::pointset_rep::value_type
T value_type
Definition pointset.h:55
rheolef::pointset_rep::pointset_rep
pointset_rep(const pointset_option &popt)
rheolef::pointset_rep::option
const pointset_option & option() const
Definition pointset.h:64
rheolef::pointset_rep::reset
void reset(const pointset_option &popt)
rheolef::pointset_rep::_sopt
pointset_option _sopt
Definition pointset.h:74
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::size_type
reference_element::size_type size_type
Definition pointset.h:54
rheolef::pointset_rep::nnod
size_type nnod(const reference_element &hat_K) const
rheolef::pointset
Definition pointset.h:79
rheolef::pointset::node
const point_basic< T > & node(const reference_element &hat_K, size_i inod) const
Definition pointset.h:100
rheolef::pointset::value_type
rep::value_type value_type
Definition pointset.h:87
rheolef::pointset::option
const pointset_option & option() const
Definition pointset.h:96
rheolef::pointset::reset
void reset(const pointset_option &popt)
rheolef::pointset::rep
pointset_rep< T > rep
Definition pointset.h:84
rheolef::pointset::pointset
pointset(const pointset_option &popt=pointset_option())
rheolef::pointset::size_type
rep::size_type size_type
Definition pointset.h:86
rheolef::pointset::base
smart_pointer_nocopy< rep > base
Definition pointset.h:85
rheolef::pointset::nnod
size_type nnod(const reference_element &hat_K) const
Definition pointset.h:98
rheolef::reference_element
see the reference_element page for the full documentation
Definition reference_element.h:66
rheolef::reference_element::max_variant
static const variant_type max_variant
Definition reference_element.h:82
rheolef::reference_element::size_type
std::vector< int >::size_type size_type
Definition reference_element.h:71
rheolef::smart_pointer_base::data
const T & data() const
Definition smart_pointer.h:266
rheolef::smart_pointer_nocopy
Definition smart_pointer.h:389
T
Expr1::float_type T
Definition field_expr.h:230
rheolef
This file is part of Rheolef.
Definition compiler_eigen.h:39
rheolef::pointset_option
Definition pointset_option.h:53