8#ifndef model_BarycentricTraits_cpp_
9#define model_BarycentricTraits_cpp_
17 template<
short int dim>
26 template<
short int dim>
36 template<
short int dim>
41 return (
L2X* L).template segment<dim>(0);
45 template<
short int dim>
49 Eigen::Matrix<double,dim+1,1> bary;
50 for (
int k=0;
k<dim;++
k)
52 bary((
k<boundaryFace)?
k :
k+1)=b1(
k);
54 bary(boundaryFace)=0.0;
60 template<
short int dim>
111 MatrixHigherDimD
temp(MatrixHigherDimD::Identity());
112 temp.template block<1,dim>(dim,0)=Eigen::Matrix<double,1,dim>::Ones();
117 template<
short int dim>
122 MatrixHigherDimD
temp(MatrixHigherDimD::Identity());
123 temp.template block<1,dim>(dim,0)= -Eigen::Matrix<double,1,dim>::Ones();
128 template<
short int dim>
134 MatrixHigherDimDimD
temp(-get_L2X().
template block<dim+1,dim>(0,0));
135 for (
int r=0;
r<
dim;++
r)
137 temp.row(r).normalize();
140 return temp.transpose();
Eigen::Matrix< double, dim,1 > VectorDimD
Eigen::Matrix< double, dim, dim+1 > MatrixDimHigherDimD
static VectorHigherDimD x2l(const VectorDimD &X)
static VectorDimD l2x(const VectorHigherDimD &L)
Eigen::Matrix< double, dim+1, dim+1 > MatrixHigherDimD
static Eigen::Matrix< double, dim+1, 1 > face2domainBary(const Eigen::Matrix< double, dim, 1 > &b1, const int &boundaryFace)
static const MatrixHigherDimD X2L
Eigen::Matrix< double, dim+1, 1 > VectorHigherDimD
static const MatrixHigherDimD L2X