Rheolef  7.2
an efficient C++ finite element environment
 
Loading...
Searching...
No Matches
reference_element_face_transformation.h
Go to the documentation of this file.
1#ifndef _RHEO_REFERENCE_ELEMENT_FACE_TRANSFORMATION_H
2#define _RHEO_REFERENCE_ELEMENT_FACE_TRANSFORMATION_H
23
24#include "rheolef/reference_element.h"
25#include "rheolef/geo_element_indirect.h"
26#include "rheolef/point.h"
27
28namespace rheolef {
29
30// --------------------------------------------------------------------------
31// Let S and K such that S is the i-th side of K
32// then map a point hat_x defined in the reference element side hat_S
33// into tilde_x defined in the reference element tilde_K
34// note: used to build a quadrature formulae on a side of K
35// --------------------------------------------------------------------------
36
38 size_t loc_isid;
39 size_t shift;
41 size_t dim;
42 size_t n_vertex;
45 : loc_isid (std::numeric_limits<size_t>::max()),
46 shift(0),
47 orient(1),
48 dim(0),
49 n_vertex(0),
50 hat()
51 {}
52 side_information_type (reference_element hat_K, size_t loc_isid0)
53 : loc_isid (std::numeric_limits<size_t>::max()),
54 shift(0),
55 orient(1),
56 dim(0),
57 n_vertex(0),
58 hat()
59 { reset (hat_K, loc_isid0); }
60 void reset (reference_element hat_K, size_t loc_isid0);
61};
62inline
63void
66 size_t loc_isid0)
67{
68 loc_isid = loc_isid0;
69 hat = hat_K.side (loc_isid0);
70 dim = hat.dimension();
71 n_vertex = hat.size();
72 shift = 0;
73 orient = 1;
74}
75
76// --------------------------------------------------------------------------
77// local piola-like transformation:
78// side_hat_x <--> tilde_x
79// --------------------------------------------------------------------------
80template<class T>
83 reference_element tilde_K,
84 const side_information_type& sid,
85 const point_basic<T>& sid_hat_x);
86
87template<class T>
90 reference_element tilde_K,
91 const side_information_type& sid,
92 const point_basic<T>& tilde_x);
93
94// --------------------------------------------------------------------------
95// side_ilat --> ilat : lattice version, with integers instead of floats
96// --------------------------------------------------------------------------
99 reference_element tilde_K,
100 const side_information_type& sid,
101 size_t k,
102 const point_basic<size_t>& sid_ilat);
103
104} // namespace rheolef
105#endif // _RHEO_REFERENCE_ELEMENT_FACE_TRANSFORMATION_H
see the reference_element page for the full documentation
reference_element side(size_type loc_isid) const
This file is part of Rheolef.
point_basic< T > reference_element_face_transformation(reference_element tilde_K, const side_information_type &sid, const point_basic< T > &sid_hat_x)
point_basic< T > reference_element_face_inverse_transformation(reference_element tilde_K, const side_information_type &sid, const point_basic< T > &tilde_x)
STL namespace.
side_information_type(reference_element hat_K, size_t loc_isid0)
geo_element_indirect::orientation_type orient
void reset(reference_element hat_K, size_t loc_isid0)