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

Detailed Description

template<class T>
class rheolef::basis_fem_Pk_lagrange< T >

Definition at line 52 of file basis_fem_Pk_lagrange.h.

Inheritance diagram for basis_fem_Pk_lagrange< T >:

Public Types

typedef basis_rep< Tbase
typedef reference_element::size_type size_type
typedef T value_type
Public Types inherited from basis_rep< T >
typedef reference_element::size_type size_type
typedef T value_type
typedef space_constant::valued_type valued_type

Public Member Functions

 basis_fem_Pk_lagrange (size_type degree, const basis_option &sopt)
 ~basis_fem_Pk_lagrange ()
virtual std::string family_name () const
size_type degree () const
bool is_nodal () const
size_type local_ndof_on_side (reference_element hat_K, const side_information_type &sid) const
void local_idof_on_side (reference_element hat_K, const side_information_type &sid, Eigen::Matrix< size_type, Eigen::Dynamic, 1 > &loc_idof) const
const Eigen::Matrix< point_basic< T >, Eigen::Dynamic, 1 > & hat_node (reference_element hat_K) const
const Eigen::Matrix< T, Eigen::Dynamic, Eigen::Dynamic > & vdm (reference_element hat_K) const
const Eigen::Matrix< T, Eigen::Dynamic, Eigen::Dynamic > & inv_vdm (reference_element hat_K) const
void evaluate (reference_element hat_K, const point_basic< T > &hat_x, Eigen::Matrix< T, Eigen::Dynamic, 1 > &value) const
void grad_evaluate (reference_element hat_K, const point_basic< T > &hat_x, Eigen::Matrix< point_basic< T >, Eigen::Dynamic, 1 > &value) const
void _compute_dofs (reference_element hat_K, const Eigen::Matrix< T, Eigen::Dynamic, 1 > &f_xnod, Eigen::Matrix< T, Eigen::Dynamic, 1 > &dof) const
void _initialize_cstor_sizes () const
void _initialize_data (reference_element hat_K) const
Public Member Functions inherited from basis_rep< T >
 basis_rep (const basis_option &sopt)
virtual ~basis_rep ()
virtual size_type family_index () const
std::string name () const
virtual valued_type valued_tag () const
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
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
void _initialize_data_guard (reference_element hat_K) const
void _clear () const

Static Public Member Functions

static void init_local_first_idof_by_dimension (reference_element hat_K, size_type k, std::array< size_type, 5 > &first_idof_by_dimension)
static void initialize_local_first (size_type k, bool is_continuous, 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)
static void init_local_ndof_on_subgeo (size_type k, std::array< size_type, reference_element::max_variant > &loc_ndof_on_subgeo)
Static Public Member Functions inherited from basis_rep< T >
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)

Protected Attributes

basis_raw_basic< T_raw_basis
std::array< Eigen::Matrix< point_basic< T >, Eigen::Dynamic, 1 >, reference_element::max_variant_hat_node
std::array< Eigen::Matrix< T, Eigen::Dynamic, Eigen::Dynamic >, reference_element::max_variant_vdm
std::array< Eigen::Matrix< T, Eigen::Dynamic, Eigen::Dynamic >, reference_element::max_variant_inv_vdm
Protected Attributes inherited from basis_rep< T >
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

Additional Inherited Members

Public Attributes inherited from basis_rep< T >
 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

Member Typedef Documentation

◆ base

template<class T>
typedef basis_rep<T> base

Definition at line 57 of file basis_fem_Pk_lagrange.h.

◆ size_type

template<class T>
typedef reference_element::size_type size_type

Definition at line 58 of file basis_fem_Pk_lagrange.h.

◆ value_type

template<class T>
typedef T value_type

Definition at line 59 of file basis_fem_Pk_lagrange.h.

Constructor & Destructor Documentation

◆ basis_fem_Pk_lagrange()

template<class T>
basis_fem_Pk_lagrange ( size_type degree,
const basis_option & sopt )

Definition at line 99 of file basis_fem_Pk_lagrange.cc.

◆ ~basis_fem_Pk_lagrange()

template<class T>
~basis_fem_Pk_lagrange ( )

Definition at line 95 of file basis_fem_Pk_lagrange.cc.

Member Function Documentation

◆ family_name()

template<class T>
virtual std::string family_name ( ) const
virtual

Implements basis_rep< T >.

Definition at line 68 of file basis_fem_Pk_lagrange.h.

◆ degree()

template<class T>
size_type degree ( ) const
virtual

Implements basis_rep< T >.

Definition at line 69 of file basis_fem_Pk_lagrange.h.

◆ is_nodal()

template<class T>
bool is_nodal ( ) const
virtual

Implements basis_rep< T >.

Definition at line 123 of file basis_fem_Pk_lagrange.cc.

◆ local_ndof_on_side()

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

Reimplemented from basis_rep< T >.

Definition at line 224 of file basis_fem_Pk_lagrange.cc.

◆ 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 from basis_rep< T >.

Definition at line 232 of file basis_fem_Pk_lagrange.cc.

◆ hat_node()

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

Reimplemented from basis_rep< T >.

Definition at line 129 of file basis_fem_Pk_lagrange.cc.

◆ vdm()

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

Reimplemented from basis_rep< T >.

Definition at line 136 of file basis_fem_Pk_lagrange.cc.

◆ inv_vdm()

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

Reimplemented from basis_rep< T >.

Definition at line 143 of file basis_fem_Pk_lagrange.cc.

◆ evaluate()

template<class T>
void evaluate ( reference_element hat_K,
const point_basic< T > & hat_x,
Eigen::Matrix< T, Eigen::Dynamic, 1 > & value ) const

Definition at line 189 of file basis_fem_Pk_lagrange.cc.

◆ grad_evaluate()

template<class T>
void grad_evaluate ( reference_element hat_K,
const point_basic< T > & hat_x,
Eigen::Matrix< point_basic< T >, Eigen::Dynamic, 1 > & value ) const

Definition at line 202 of file basis_fem_Pk_lagrange.cc.

◆ _compute_dofs()

template<class T>
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 at line 242 of file basis_fem_Pk_lagrange.cc.

◆ _initialize_cstor_sizes()

template<class T>
void _initialize_cstor_sizes ( ) const
virtual

Implements basis_rep< T >.

Definition at line 150 of file basis_fem_Pk_lagrange.cc.

◆ _initialize_data()

template<class T>
void _initialize_data ( reference_element hat_K) const
virtual

Implements basis_rep< T >.

Definition at line 166 of file basis_fem_Pk_lagrange.cc.

◆ init_local_first_idof_by_dimension()

template<class T>
void init_local_first_idof_by_dimension ( reference_element hat_K,
size_type k,
std::array< size_type, 5 > & first_idof_by_dimension )
static

◆ initialize_local_first()

template<class T>
void initialize_local_first ( size_type k,
bool is_continuous,
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 )
static

Definition at line 41 of file basis_fem_Pk_lagrange.cc.

◆ init_local_ndof_on_subgeo()

template<class T>
void init_local_ndof_on_subgeo ( size_type k,
std::array< size_type, reference_element::max_variant > & loc_ndof_on_subgeo )
static

Member Data Documentation

◆ _raw_basis

template<class T>
basis_raw_basic<T> _raw_basis
protected

Definition at line 136 of file basis_fem_Pk_lagrange.h.

◆ _hat_node

template<class T>
std::array< Eigen::Matrix<point_basic<T>,Eigen::Dynamic,1>, reference_element::max_variant> _hat_node
mutableprotected

Definition at line 140 of file basis_fem_Pk_lagrange.h.

◆ _vdm

template<class T>
std::array<Eigen::Matrix<T,Eigen::Dynamic,Eigen::Dynamic>, reference_element::max_variant> _vdm
mutableprotected

Definition at line 143 of file basis_fem_Pk_lagrange.h.

◆ _inv_vdm

template<class T>
std::array<Eigen::Matrix<T,Eigen::Dynamic,Eigen::Dynamic>, reference_element::max_variant> _inv_vdm
protected

Definition at line 143 of file basis_fem_Pk_lagrange.h.


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