Rheolef  7.2
an efficient C++ finite element environment
 
Loading...
Searching...
No Matches
basis_rep< T >abstract

Detailed Description

template<class T>
class rheolef::basis_rep< T >

Definition at line 209 of file basis.h.

+ Inheritance diagram for basis_rep< T >:

Public Types

typedef reference_element::size_type size_type
 
typedef T value_type
 
typedef space_constant::valued_type valued_type
 

Public Member Functions

 basis_rep (const basis_option &sopt)
 
virtual ~basis_rep ()
 
virtual size_type degree () const =0
 
virtual size_type family_index () const
 
virtual std::string family_name () const =0
 
std::string name () const
 
virtual valued_type valued_tag () const
 
virtual bool is_nodal () const =0
 
virtual bool have_index_parameter () const
 
virtual bool have_continuous_feature () const
 
virtual bool is_hierarchical () const
 
virtual size_type size () const
 
virtual const class basis_basic< T > & operator[] (size_type i_comp) const
 
virtual bool have_compact_support_inside_element () const
 
const basis_optionoption () const
 
const std::string & valued () const
 
bool is_continuous () const
 
bool is_discontinuous () const
 
size_type ndof (reference_element hat_K) const
 
size_type nnod (reference_element hat_K) const
 
size_type ndof_on_subgeo (size_type map_dim, size_type subgeo_variant) const
 
size_type nnod_on_subgeo (size_type map_dim, size_type subgeo_variant) const
 
size_type first_idof_by_dimension (reference_element hat_K, size_type dim) const
 
size_type first_inod_by_dimension (reference_element hat_K, size_type dim) const
 
size_type ndof_internal (reference_element hat_K) const
 
size_type nnod_internal (reference_element hat_K) const
 
size_type ndof_on_subgeo_internal (size_type map_dim, size_type subgeo_variant) const
 
size_type nnod_on_subgeo_internal (size_type map_dim, size_type subgeo_variant) const
 
size_type first_idof_by_dimension_internal (reference_element hat_K, size_type dim) const
 
size_type first_inod_by_dimension_internal (reference_element hat_K, size_type dim) const
 
virtual size_type local_ndof_on_side (reference_element hat_K, const side_information_type &sid) const
 
virtual void local_idof_on_side (reference_element hat_K, const side_information_type &sid, Eigen::Matrix< size_type, Eigen::Dynamic, 1 > &loc_idof) const
 
virtual const Eigen::Matrix< point_basic< T >, Eigen::Dynamic, 1 > & hat_node (reference_element hat_K) const
 
virtual const Eigen::Matrix< T, Eigen::Dynamic, Eigen::Dynamic > & vdm (reference_element hat_K) const
 
virtual const Eigen::Matrix< T, Eigen::Dynamic, Eigen::Dynamic > & inv_vdm (reference_element hat_K) const
 
const piola_fem< T > & get_piola_fem () const
 
 _RHEOLEF_evaluate (evaluate,"scalar", T) _RHEOLEF_evaluate(evaluate
 
point_basic< T_RHEOLEF_evaluate (evaluate,"tensor", tensor_basic< T >) _RHEOLEF_evaluate(evaluate
 
point_basic< T > tensor3_basic< T_RHEOLEF_evaluate (evaluate,"tensor4", tensor4_basic< T >) _RHEOLEF_evaluate(grad_evaluate
 
point_basic< T > tensor3_basic< T > T _RHEOLEF_evaluate (grad_evaluate,"vector", point_basic< T >) _RHEOLEF_evaluate(grad_evaluate
 
point_basic< T > tensor3_basic< T > T tensor_basic< T_RHEOLEF_evaluate (grad_evaluate,"tensor3", tensor3_basic< T >) _RHEOLEF_evaluate(grad_evaluate
 
 _RHEOLEF_evaluate_on_side ("scalar", T) _RHEOLEF_evaluate_on_side("vector"
 
 _RHEOLEF_compute_dofs ("scalar", T) _RHEOLEF_compute_dofs("vector"
 
point_basic< T > virtual _RHEOLEF_compute_dofs("tensor", tensor_basic< T >) void put(std void put_scalar_valued (std::ostream &os, reference_element hat_K) const
 
virtual void put_vector_valued (std::ostream &os, reference_element hat_K) const
 
void put_hat_node (std::ostream &os, reference_element hat_K) const
 
void put_hat_node_on_side (std::ostream &os, reference_element hat_K, const side_information_type &sid) const
 
virtual void _initialize_cstor_sizes () const =0
 
void _initialize_data_guard (reference_element hat_K) const
 
virtual void _initialize_data (reference_element hat_K) const =0
 
void _clear () const
 

Static Public Member Functions

static basis_repmake_ptr (const std::string &name)
 
static std::string standard_naming (std::string family_name, size_t degree, const basis_option &sopt)
 
static bool have_index_parameter (std::string family_name)
 
static bool have_continuous_feature (std::string family_name)
 
static void _helper_initialize_first_ixxx_by_dimension_from_nxxx_on_subgeo (const std::array< std::array< size_type, reference_element::max_variant >, 4 > &_nxxx_on_subgeo, std::array< std::array< size_type, 5 >, reference_element::max_variant > &_first_ixxx_by_dimension)
 
static void _helper_make_discontinuous_ndof_on_subgeo (bool is_continuous, const std::array< std::array< size_type, reference_element::max_variant >, 4 > &nxxx_on_subgeo_internal, std::array< std::array< size_type, reference_element::max_variant >, 4 > &nxxx_on_subgeo)
 

Public Attributes

 vector
 
point_basic< Ttensor3
 
point_basic< T > tensor3_basic< Tscalar
 
point_basic< T > tensor3_basic< T > T tensor
 
point_basic< T > tensor3_basic< T > T tensor_basic< Ttensor4
 

Protected Attributes

std::string _name
 
basis_option _sopt
 
piola_fem< T_piola_fem
 
std::array< bool, reference_element::max_variant_have_initialize_data
 
std::array< std::array< size_type,reference_element::max_variant >,4 > _ndof_on_subgeo_internal
 
std::array< std::array< size_type,reference_element::max_variant >,4 > _ndof_on_subgeo
 
std::array< std::array< size_type,reference_element::max_variant >,4 > _nnod_on_subgeo_internal
 
std::array< std::array< size_type,reference_element::max_variant >,4 > _nnod_on_subgeo
 
std::array< std::array< size_type,5 >,reference_element::max_variant_first_idof_by_dimension_internal
 
std::array< std::array< size_type,5 >,reference_element::max_variant_first_idof_by_dimension
 
std::array< std::array< size_type,5 >,reference_element::max_variant_first_inod_by_dimension_internal
 
std::array< std::array< size_type,5 >,reference_element::max_variant_first_inod_by_dimension
 

Member Typedef Documentation

◆ size_type

Definition at line 214 of file basis.h.

◆ value_type

template<class T >
typedef T value_type

Definition at line 215 of file basis.h.

◆ valued_type

Definition at line 216 of file basis.h.

Constructor & Destructor Documentation

◆ basis_rep()

template<class T >
basis_rep ( const basis_option sopt)

Definition at line 107 of file basis_rep.cc.

◆ ~basis_rep()

template<class T >
~basis_rep ( )
virtual

Definition at line 102 of file basis_rep.cc.

Member Function Documentation

◆ degree()

◆ family_index()

template<class T >
virtual size_type family_index ( ) const
virtual

◆ family_name()

◆ name()

template<class T >
std::string name ( ) const

Definition at line 228 of file basis.h.

◆ valued_tag()

template<class T >
virtual valued_type valued_tag ( ) const
virtual

Reimplemented in basis_fem_RTk< T >, basis_fem_tensor< T >, and basis_fem_vector< T >.

Definition at line 230 of file basis.h.

◆ is_nodal()

◆ have_index_parameter() [1/2]

template<class T >
virtual bool have_index_parameter ( ) const
virtual

◆ have_continuous_feature() [1/2]

template<class T >
virtual bool have_continuous_feature ( ) const
virtual

Reimplemented in basis_fem_tensor< T >, and basis_fem_vector< T >.

Definition at line 233 of file basis.h.

◆ is_hierarchical()

template<class T >
virtual bool is_hierarchical ( ) const
virtual

Reimplemented in basis_fem_tensor< T >, and basis_fem_vector< T >.

Definition at line 234 of file basis.h.

◆ size()

template<class T >
virtual size_type size ( ) const
virtual

Reimplemented in basis_fem_tensor< T >, and basis_fem_vector< T >.

Definition at line 235 of file basis.h.

◆ operator[]()

template<class T >
const basis_basic< T > & operator[] ( size_type  i_comp) const
virtual

Reimplemented in basis_fem_tensor< T >, and basis_fem_vector< T >.

Definition at line 805 of file basis.h.

◆ have_compact_support_inside_element()

template<class T >
virtual bool have_compact_support_inside_element ( ) const
virtual

Reimplemented in basis_fem_empty< T >, basis_fem_tensor< T >, basis_fem_vector< T >, and basis_bubble< T >.

Definition at line 237 of file basis.h.

◆ option()

template<class T >
const basis_option & option ( ) const

Definition at line 238 of file basis.h.

◆ valued()

template<class T >
const std::string & valued ( ) const

Definition at line 239 of file basis.h.

◆ is_continuous()

template<class T >
bool is_continuous ( ) const

Definition at line 240 of file basis.h.

◆ is_discontinuous()

template<class T >
bool is_discontinuous ( ) const

Definition at line 241 of file basis.h.

◆ ndof()

template<class T >
size_type ndof ( reference_element  hat_K) const

Definition at line 244 of file basis.h.

◆ nnod()

template<class T >
size_type nnod ( reference_element  hat_K) const

Definition at line 247 of file basis.h.

◆ ndof_on_subgeo()

template<class T >
size_type ndof_on_subgeo ( size_type  map_dim,
size_type  subgeo_variant 
) const

Definition at line 253 of file basis.h.

◆ nnod_on_subgeo()

template<class T >
size_type nnod_on_subgeo ( size_type  map_dim,
size_type  subgeo_variant 
) const

Definition at line 256 of file basis.h.

◆ first_idof_by_dimension()

template<class T >
size_type first_idof_by_dimension ( reference_element  hat_K,
size_type  dim 
) const

Definition at line 259 of file basis.h.

◆ first_inod_by_dimension()

template<class T >
size_type first_inod_by_dimension ( reference_element  hat_K,
size_type  dim 
) const

Definition at line 262 of file basis.h.

◆ ndof_internal()

template<class T >
size_type ndof_internal ( reference_element  hat_K) const

Definition at line 267 of file basis.h.

◆ nnod_internal()

template<class T >
size_type nnod_internal ( reference_element  hat_K) const

Definition at line 270 of file basis.h.

◆ ndof_on_subgeo_internal()

template<class T >
size_type ndof_on_subgeo_internal ( size_type  map_dim,
size_type  subgeo_variant 
) const

Definition at line 274 of file basis.h.

◆ nnod_on_subgeo_internal()

template<class T >
size_type nnod_on_subgeo_internal ( size_type  map_dim,
size_type  subgeo_variant 
) const

Definition at line 277 of file basis.h.

◆ first_idof_by_dimension_internal()

template<class T >
size_type first_idof_by_dimension_internal ( reference_element  hat_K,
size_type  dim 
) const

Definition at line 280 of file basis.h.

◆ first_inod_by_dimension_internal()

template<class T >
size_type first_inod_by_dimension_internal ( reference_element  hat_K,
size_type  dim 
) const

Definition at line 283 of file basis.h.

◆ local_ndof_on_side()

template<class T >
basis_rep< T >::size_type local_ndof_on_side ( reference_element  hat_K,
const side_information_type sid 
) const
virtual

Reimplemented in basis_fem_Pk_lagrange< T >, and basis_fem_trace_n< T >.

Definition at line 481 of file basis.h.

◆ local_idof_on_side()

template<class T >
void local_idof_on_side ( reference_element  hat_K,
const side_information_type sid,
Eigen::Matrix< size_type, Eigen::Dynamic, 1 > &  loc_idof 
) const
virtual

Reimplemented in basis_fem_Pk_lagrange< T >, basis_fem_trace_n< T >, basis_P0< T >, and basis_P1< T >.

Definition at line 490 of file basis.h.

◆ hat_node()

◆ vdm()

template<class T >
const Eigen::Matrix< T, Eigen::Dynamic, Eigen::Dynamic > & vdm ( reference_element  hat_K) const
virtual

Reimplemented in basis_fem_Pk_bernstein< T >, basis_fem_Pk_lagrange< T >, and basis_fem_RTk< T >.

Definition at line 462 of file basis.h.

◆ inv_vdm()

template<class T >
const Eigen::Matrix< T, Eigen::Dynamic, Eigen::Dynamic > & inv_vdm ( reference_element  hat_K) const
virtual

Reimplemented in basis_fem_Pk_bernstein< T >, basis_fem_Pk_lagrange< T >, and basis_fem_RTk< T >.

Definition at line 471 of file basis.h.

◆ get_piola_fem()

template<class T >
const piola_fem< T > & get_piola_fem ( ) const

Definition at line 302 of file basis.h.

◆ _RHEOLEF_evaluate() [1/5]

template<class T >
_RHEOLEF_evaluate ( evaluate  ,
"scalar"  ,
T   
)

◆ _RHEOLEF_evaluate() [2/5]

template<class T >
point_basic< T > _RHEOLEF_evaluate ( evaluate  ,
"tensor"  ,
tensor_basic< T  
)

◆ _RHEOLEF_evaluate() [3/5]

template<class T >
point_basic< T > tensor3_basic< T > _RHEOLEF_evaluate ( evaluate  ,
"tensor4"  ,
tensor4_basic< T  
)

◆ _RHEOLEF_evaluate() [4/5]

template<class T >
point_basic< T > tensor3_basic< T > T _RHEOLEF_evaluate ( grad_evaluate  ,
"vector"  ,
point_basic< T  
)

◆ _RHEOLEF_evaluate() [5/5]

template<class T >
point_basic< T > tensor3_basic< T > T tensor_basic< T > _RHEOLEF_evaluate ( grad_evaluate  ,
"tensor3"  ,
tensor3_basic< T  
)

◆ _RHEOLEF_evaluate_on_side()

template<class T >
_RHEOLEF_evaluate_on_side ( "scalar"  ,
T   
)

◆ _RHEOLEF_compute_dofs()

template<class T >
_RHEOLEF_compute_dofs ( "scalar"  ,
T   
)

◆ put_scalar_valued()

template<class T >
void put_scalar_valued ( std::ostream &  os,
reference_element  hat_K 
) const
virtual

Reimplemented in basis_fem_trace_n< T >.

Definition at line 45 of file basis_fem_visu_gnuplot.cc.

◆ put_vector_valued()

template<class T >
void put_vector_valued ( std::ostream &  os,
reference_element  hat_K 
) const
virtual

Definition at line 51 of file basis_fem_visu_gnuplot.cc.

◆ put_hat_node()

template<class T >
void put_hat_node ( std::ostream &  os,
reference_element  hat_K 
) const

Definition at line 343 of file basis_fem_visu_gnuplot.cc.

◆ put_hat_node_on_side()

template<class T >
void put_hat_node_on_side ( std::ostream &  os,
reference_element  hat_K,
const side_information_type sid 
) const

Definition at line 468 of file basis_fem_visu_gnuplot.cc.

◆ make_ptr()

template<class T >
template basis_rep< Float > * make_ptr ( const std::string &  name)
static

Definition at line 56 of file basis_list.cc.

◆ standard_naming()

template<class T >
std::string standard_naming ( std::string  family_name,
size_t  degree,
const basis_option sopt 
)
static

Definition at line 44 of file basis_rep.cc.

◆ have_index_parameter() [2/2]

template<class T >
template bool have_index_parameter ( std::string  family_name)
static

Definition at line 41 of file basis_list.cc.

◆ have_continuous_feature() [2/2]

template<class T >
template bool have_continuous_feature ( std::string  family_name)
static

Definition at line 48 of file basis_list.cc.

◆ _initialize_cstor_sizes()

◆ _initialize_data_guard()

template<class T >
void _initialize_data_guard ( reference_element  hat_K) const

Definition at line 131 of file basis_rep.cc.

◆ _initialize_data()

◆ _clear()

template<class T >
void _clear ( ) const

Definition at line 125 of file basis_rep.cc.

◆ _helper_initialize_first_ixxx_by_dimension_from_nxxx_on_subgeo()

template<class T >
void _helper_initialize_first_ixxx_by_dimension_from_nxxx_on_subgeo ( const std::array< std::array< size_type, reference_element::max_variant >, 4 > &  _nxxx_on_subgeo,
std::array< std::array< size_type, 5 >, reference_element::max_variant > &  _first_ixxx_by_dimension 
)
static

Definition at line 184 of file basis_rep.cc.

◆ _helper_make_discontinuous_ndof_on_subgeo()

template<class T >
void _helper_make_discontinuous_ndof_on_subgeo ( bool  is_continuous,
const std::array< std::array< size_type, reference_element::max_variant >, 4 > &  nxxx_on_subgeo_internal,
std::array< std::array< size_type, reference_element::max_variant >, 4 > &  nxxx_on_subgeo 
)
static

Definition at line 143 of file basis_rep.cc.

Member Data Documentation

◆ vector

template<class T >
vector

Definition at line 323 of file basis.h.

◆ tensor3

template<class T >
point_basic< T > tensor3

Definition at line 325 of file basis.h.

◆ scalar

template<class T >
point_basic< T > tensor3_basic< T > scalar

Definition at line 327 of file basis.h.

◆ tensor

template<class T >
point_basic< T > tensor3_basic< T > T tensor

Definition at line 329 of file basis.h.

◆ tensor4

Definition at line 331 of file basis.h.

◆ _name

template<class T >
std::string _name
protected

Definition at line 422 of file basis.h.

◆ _sopt

template<class T >
basis_option _sopt
protected

Definition at line 423 of file basis.h.

◆ _piola_fem

template<class T >
piola_fem<T> _piola_fem
protected

Definition at line 424 of file basis.h.

◆ _have_initialize_data

template<class T >
std::array<bool, reference_element::max_variant> _have_initialize_data
mutableprotected

Definition at line 427 of file basis.h.

◆ _ndof_on_subgeo_internal

template<class T >
std::array< std::array< size_type ,reference_element::max_variant> ,4> _ndof_on_subgeo_internal
mutableprotected

Definition at line 434 of file basis.h.

◆ _ndof_on_subgeo

template<class T >
std::array< std::array< size_type ,reference_element::max_variant> ,4> _ndof_on_subgeo
protected

Definition at line 435 of file basis.h.

◆ _nnod_on_subgeo_internal

template<class T >
std::array< std::array< size_type ,reference_element::max_variant> ,4> _nnod_on_subgeo_internal
protected

Definition at line 436 of file basis.h.

◆ _nnod_on_subgeo

template<class T >
std::array< std::array< size_type ,reference_element::max_variant> ,4> _nnod_on_subgeo
protected

Definition at line 437 of file basis.h.

◆ _first_idof_by_dimension_internal

template<class T >
std::array< std::array< size_type ,5> ,reference_element::max_variant> _first_idof_by_dimension_internal
mutableprotected

Definition at line 442 of file basis.h.

◆ _first_idof_by_dimension

template<class T >
std::array< std::array< size_type ,5> ,reference_element::max_variant> _first_idof_by_dimension
protected

Definition at line 443 of file basis.h.

◆ _first_inod_by_dimension_internal

template<class T >
std::array< std::array< size_type ,5> ,reference_element::max_variant> _first_inod_by_dimension_internal
protected

Definition at line 444 of file basis.h.

◆ _first_inod_by_dimension

template<class T >
std::array< std::array< size_type ,5> ,reference_element::max_variant> _first_inod_by_dimension
protected

Definition at line 445 of file basis.h.


The documentation for this class was generated from the following files: