1#ifndef _RHEOLEF_FEM_ON_POINTSET_H
2#define _RHEOLEF_FEM_ON_POINTSET_H
34#include "rheolef/geo.h"
35#include "rheolef/basis_on_pointset.h"
36#include "rheolef/piola_on_pointset.h"
63 template<
class M,
class Value, diff_type Diff>
68 const details::differentiate_option& gopt,
69 Eigen::Matrix<Value,Eigen::Dynamic,Eigen::Dynamic>& value)
const;
71 template<
class M,
class Value, diff_type Diff>
77 const details::differentiate_option& gopt,
78 Eigen::Matrix<Value,Eigen::Dynamic,Eigen::Dynamic>& value)
const;
81 template<
class M,
class Value>
85 const Eigen::Matrix<Value,Eigen::Dynamic,Eigen::Dynamic>& hat_phij_xi,
86 Eigen::Matrix<Value,Eigen::Dynamic,Eigen::Dynamic>& value)
const;
95 Eigen::Matrix<T,Eigen::Dynamic,Eigen::Dynamic>
98 Eigen::Matrix<point_basic<T>,Eigen::Dynamic,Eigen::Dynamic>
101 Eigen::Matrix<tensor_basic<T>,Eigen::Dynamic,Eigen::Dynamic>
133 { base::data().initialize (fem_basis, pops); }
138 {
return base::data().get_basis_on_pointset(); }
140 {
return base::data().get_piola_on_pointset(); }
142 template<
class M,
class Value, diff_type Diff>
148 Eigen::Matrix<Value,Eigen::Dynamic,Eigen::Dynamic>& value)
const
149 { base::data().template evaluate<M,Value,Diff> (omega_K, K, gopt, value); }
151 template<
class M,
class Value, diff_type Diff>
158 Eigen::Matrix<Value,Eigen::Dynamic,Eigen::Dynamic>& value)
const
159 { base::data().template evaluate_on_side<M,Value,Diff> (omega_K, K, sid, gopt, value); }
basis_on_pointset< T > _bops
void _evaluate_post_piola(const geo_basic< T, M > &omega_K, const geo_element &K, const Eigen::Matrix< Value, Eigen::Dynamic, Eigen::Dynamic > &hat_phij_xi, Eigen::Matrix< Value, Eigen::Dynamic, Eigen::Dynamic > &value) const
reference_element::size_type size_type
std::array< Eigen::Matrix< T, Eigen::Dynamic, Eigen::Dynamic >,reference_element::max_variant > _scalar_phij_xi
void evaluate(const geo_basic< T, M > &omega_K, const geo_element &K, const details::differentiate_option &gopt, Eigen::Matrix< Value, Eigen::Dynamic, Eigen::Dynamic > &value) const
void initialize(const basis_basic< T > &fem_basis, const piola_on_pointset< T > &pops)
const piola_on_pointset< T > & get_piola_on_pointset() const
details::differentiate_option::type diff_type
std::array< Eigen::Matrix< tensor_basic< T >, Eigen::Dynamic, Eigen::Dynamic >,reference_element::max_variant > _tensor_phij_xi
void evaluate_on_side(const geo_basic< T, M > &omega_K, const geo_element &K, const side_information_type &sid, const details::differentiate_option &gopt, Eigen::Matrix< Value, Eigen::Dynamic, Eigen::Dynamic > &value) const
std::array< Eigen::Matrix< point_basic< T >, Eigen::Dynamic, Eigen::Dynamic >,reference_element::max_variant > _vector_phij_xi
const basis_on_pointset< T > & get_basis_on_pointset() const
piola_on_pointset< T > _pops
void evaluate(const geo_basic< T, M > &omega_K, const geo_element &K, const details::differentiate_option &gopt, Eigen::Matrix< Value, Eigen::Dynamic, Eigen::Dynamic > &value) const
void initialize(const basis_basic< T > &fem_basis, const piola_on_pointset< T > &pops)
const piola_on_pointset< T > & get_piola_on_pointset() const
smart_pointer< rep > base
fem_on_pointset_rep< T > rep
void evaluate_on_side(const geo_basic< T, M > &omega_K, const geo_element &K, const side_information_type &sid, const details::differentiate_option &gopt, Eigen::Matrix< Value, Eigen::Dynamic, Eigen::Dynamic > &value) const
const basis_on_pointset< T > & get_basis_on_pointset() const
generic mesh with rerefence counting
see the geo_element page for the full documentation
static const variant_type max_variant
std::vector< int >::size_type size_type
see the smart_pointer page for the full documentation
This file is part of Rheolef.