rheolef  6.6
piola.h
Go to the documentation of this file.
1 #ifndef _RHEOLEF_PIOLA_H
2 #define _RHEOLEF_PIOLA_H
3 #include "rheolef/geo.h"
4 #include "rheolef/basis_on_pointset.h"
5 namespace rheolef {
6
7 template<class T, class M>
8 point_basic<T>
10  const geo_basic<T,M>& omega,
11  const basis_on_pointset<T>& piola_on_pointset,
12  reference_element hat_K,
13  const std::vector<size_t>& dis_inod,
14  size_t q);
15
16 template<class T, class M>
17 void
19  const geo_basic<T,M>& omega,
20  const basis_on_pointset<T>& piola_on_pointset,
21  reference_element hat_K,
22  const std::vector<size_t>& dis_inod,
23  const point_basic<T>& hat_x,
24  tensor_basic<T>& DF);
25
26 template<class T, class M>
27 void
29  const geo_basic<T,M>& omega,
30  const basis_on_pointset<T>& piola_on_pointset,
31  reference_element hat_K,
32  const std::vector<size_t>& dis_inod,
33  size_t q,
34  tensor_basic<T>& DF);
35
36 template <class T>
37 T
38 det_jacobian_piola_transformation (const tensor_basic<T>& DF, size_t d , size_t map_d);
39
40 // if K=triangle(a,b,c) then u=ab=b-a, v=ac=c-a and w = n = u^v/|u^v|.
41 // and inv(DF)^T = [ac^n/|ab^ac|, -ab^n/|ab^ac|, n]
42 template<class T, class M>
43 point_basic<T>
44 normal_from_piola_transformation (const geo_basic<T,M>& omega, const geo_element& S, const tensor_basic<T>& DF, size_t d);
45
46 // if K=triangle(a,b,c) then u=ab=b-a, v=ac=c-a and w = n = u^v/|u^v|.
47 // and inv(DF)^T = [ac^n/|ab^ac|, -ab^n/|ab^ac|, n]
48 template<class T>
49 tensor_basic<T>
51  const tensor_basic<T>& DF,
52  size_t d,
53  size_t map_d);
54
55 // DF: hat_x --> DF(hat_x) on hat_K
56 template<class T, class M>
57 void
59  const geo_basic<T,M>& omega,
60  reference_element hat_K,
61  const std::vector<size_t>& dis_inod,
62  const point_basic<T>& hat_x,
63  tensor_basic<T>& DF);
64
65 // F^{-1}: x --> hat_x on K
66 template<class T, class M>
67 point_basic<T>
69  const geo_basic<T,M>& omega,
70  const reference_element& hat_K,
71  const std::vector<size_t>& dis_inod,
72  const point_basic<T>& x);
73
74 template <class T>
75 void map_projector (const tensor_basic<T>& DF, size_t d, size_t map_d, tensor_basic<T>& P);
76
77 // point_basic<T> xq = rheolef::piola_transformation (_omega, _piola_table, K, dis_inod, q);
78 template<class T>
79 T
80 weight_coordinate_system (space_constant::coordinate_type sys_coord, const point_basic<T>& xq);
81
82 template<class T, class M>
83 T
85  const geo_basic<T,M>& omega,
86  const basis_on_pointset<T>& piola_table,
87  const geo_element& K,
88  const std::vector<size_t>& dis_inod,
89  size_t q);
90
91 }// namespace rheolef
92 #endif // _RHEOLEF_PIOLA_H
point_basic< T > 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, size_t q)
Definition: piola.cc:10
irheostream, orheostream - large data streams
Definition: compiler.h:7
void map_projector(const tensor_basic< T > &DF, size_t d, size_t map_d, tensor_basic< T > &P)
Definition: piola.cc:246
size_t 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)
Definition: piola.cc:333
T det_jacobian_piola_transformation(const tensor_basic< T > &DF, size_t d, size_t map_d)
Definition: piola.cc:87
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)
Definition: piola.cc:111
T weight_coordinate_system(space_constant::coordinate_type sys_coord, const point_basic< T > &xq)
Definition: piola.cc:218
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, const point_basic< T > &hat_x, tensor_basic< T > &DF)
Definition: piola.cc:37
tensor_basic< T > pseudo_inverse_jacobian_piola_transformation(const tensor_basic< T > &DF, size_t d, size_t map_d)
Definition: piola.cc:179