1#ifndef _RHEOLEF_PIOLA_UTIL_H
2#define _RHEOLEF_PIOLA_UTIL_H
31#include "rheolef/geo.h"
32#include "rheolef/basis_on_pointset.h"
40template<
class T,
class M>
43 const geo_basic<T,M>& omega,
44 const basis_on_pointset<T>& piola_on_pointset,
45 reference_element hat_K,
46 const std::vector<size_t>& dis_inod,
47 Eigen::Matrix<point_basic<T>,Eigen::Dynamic,1>& x);
54template<
class T,
class M>
57 const geo_basic<T,M>& omega,
58 const basis_basic<T>& piola_basis,
59 reference_element hat_K,
60 const std::vector<size_t>& dis_inod,
61 const point_basic<T>& hat_x,
69template<
class T,
class M>
72 const geo_basic<T,M>& omega,
73 const basis_on_pointset<T>& piola_on_pointset,
74 reference_element hat_K,
75 const std::vector<size_t>& dis_inod,
76 Eigen::Matrix<tensor_basic<T>,Eigen::Dynamic,1>& DF);
83template<
class T,
class M>
107 const tensor_basic<T>& DF,
112template<
class T,
class M>
115 const geo_basic<T,M>& omega,
116 const reference_element& hat_K,
117 const std::vector<size_t>& dis_inod,
118 const point_basic<T>& x);
122void map_projector (
const tensor_basic<T>& DF,
size_t d,
size_t map_d, tensor_basic<T>& P);
134template<
class T,
class M>
137 const geo_basic<T,M>& omega,
138 const basis_on_pointset<T>& piola_on_pointset,
139 reference_element hat_K,
140 const std::vector<size_t>& dis_inod,
141 bool ignore_sys_coord,
142 Eigen::Matrix<tensor_basic<T>,Eigen::Dynamic,1>& DF,
143 Eigen::Matrix<point_basic<T>,Eigen::Dynamic,1>& x,
144 Eigen::Matrix<T,Eigen::Dynamic,1>& w);
This file is part of Rheolef.
point_basic< T > normal_from_piola_transformation(const geo_basic< T, M > &omega, const geo_element &S, const tensor_basic< T > &DF, size_t d)
void piola_transformation(const geo_basic< T, M > &omega, const basis_on_pointset< T > &piola_on_pointset, reference_element hat_K, const std::vector< size_t > &dis_inod, Eigen::Matrix< point_basic< T >, Eigen::Dynamic, 1 > &x)
tensor_basic< T > pseudo_inverse_jacobian_piola_transformation(const tensor_basic< T > &DF, size_t d, size_t map_d)
void map_projector(const tensor_basic< T > &DF, size_t d, size_t map_d, tensor_basic< T > &P)
T weight_coordinate_system(space_constant::coordinate_type sys_coord, const point_basic< T > &xq)
void piola_transformation_and_weight_integration(const geo_basic< T, M > &omega, const basis_on_pointset< T > &piola_on_quad, reference_element hat_K, const std::vector< size_t > &dis_inod, bool ignore_sys_coord, Eigen::Matrix< tensor_basic< T >, Eigen::Dynamic, 1 > &DF, Eigen::Matrix< point_basic< T >, Eigen::Dynamic, 1 > &x, Eigen::Matrix< T, Eigen::Dynamic, 1 > &w)
void jacobian_piola_transformation(const geo_basic< T, M > &omega, const basis_on_pointset< T > &piola_on_pointset, reference_element hat_K, const std::vector< size_t > &dis_inod, Eigen::Matrix< tensor_basic< T >, Eigen::Dynamic, 1 > &DF)
T det_jacobian_piola_transformation(const tensor_basic< T > &DF, size_t d, size_t map_d)
point_basic< T > inverse_piola_transformation(const geo_basic< T, M > &omega, const reference_element &hat_K, const std::vector< size_t > &dis_inod, const point_basic< T > &x)