GetFEM++
5.3
|
Description of a geometric transformation between a reference element and a real element. More...
#include <bgeot_geometric_trans.h>
Inherits dal::static_stored_object.
Inherited by bgeot::igeometric_trans< FUNC >, and bgeot::torus_geom_trans.
Public Member Functions | |
dim_type | dim () const |
Dimension of the reference element. | |
bool | is_linear () const |
True if the transformation is linear (affine in fact). | |
size_type | nb_points () const |
Number of geometric nodes. | |
pconvex_ref | convex_ref () const |
Pointer on the convex of reference. | |
pconvex_structure | structure () const |
Structure of the reference element. | |
pconvex_structure | basic_structure () const |
Basic structure of the reference element. | |
virtual void | poly_vector_val (const base_node &pt, base_vector &val) const =0 |
Gives the value of the functions vector at a certain point. | |
virtual void | poly_vector_val (const base_node &pt, const convex_ind_ct &ind_ct, base_vector &val) const =0 |
Gives the value of a subgroup of the functions vector at a certain point. | |
virtual void | poly_vector_grad (const base_node &pt, base_matrix &val) const =0 |
Gives the gradient of the functions vector at a certain point. | |
virtual void | poly_vector_grad (const base_node &pt, const convex_ind_ct &ind_ct, base_matrix &val) const =0 |
Gives the gradient of a subgroup of the functions vector at a certain point. | |
virtual void | poly_vector_hess (const base_node &pt, base_matrix &val) const =0 |
Gives the hessian of the functions vector at a certain point. | |
virtual void | compute_K_matrix (const base_matrix &G, const base_matrix &pc, base_matrix &K) const |
compute K matrix from multiplication of G with gradient | |
size_type | nb_vertices () const |
Gives the number of vertices. | |
const std::vector< size_type > & | vertices () const |
Gives the indices of vertices between the nodes. | |
const stored_point_tab & | geometric_nodes () const |
Gives the array of geometric nodes (on reference convex) | |
pstored_point_tab | pgeometric_nodes () const |
Gives the array of geometric nodes (on reference convex) | |
const std::vector< base_small_vector > & | normals () const |
Gives the array of the normals to faces (on reference convex) | |
template<class CONT > | |
base_node | transform (const base_node &pt, const CONT &PTAB) const |
Apply the geometric transformation to point pt, PTAB contains the points of the real convex. | |
size_type | complexity () const |
Compute the gradient at point x, pc is resized to [nb_points() x dim()] if the transformation is linear, x is not used at all. | |
Description of a geometric transformation between a reference element and a real element.
Geometric nodes and vector of polynomials. This class is not to be manipulate by itself. Use bgeot::pgeometric_trans and the functions written to produce the basic geometric transformations.
Let be a real element and be a reference element, with .
The geometric nodes of are the points , for , and the corresponding (via the geometric transformation) nodes of are the points .
The geometric transformation is the application
which should be a diffeomorphism between and . It is assumed that there exists a (generally polynomial) vector defined on of size , such that the transformation can be written .
Denoting by The matrix in which each column is a geometric node of , the transformation can be written as
The gradient of the transformation is
Remark : is a matrix, is a matrix, and thus is a matrix.
to do ...
Definition at line 105 of file bgeot_geometric_trans.h.