template<uint16_type Dim, uint16_type Order, uint16_type RealDim, typename T = double, template< uint16_type, uint16_type, uint16_type > class Entity = Simplex, template< uint16_type, template< uint16_type RDim > class PolySetType, typename ContinuityType, template< class, uint16_type, class > class Pts, uint16_type > class PP = Lagrange>
class Feel::GeoMap< Dim, Order, RealDim, T, Entity, PP >
Structure for the geometrical mapping.
- Author
- C. Prud'homme
This class contains the geometrical transformation that maps the reference element on the current element, and its values on integration points
Inherits result_type< Order, Scalar, Continuous, PointSetEquiSpaced, 0 >, and enable_shared_from_this< GeoMap< Dim, Order, RealDim, T, Entity, PP > >.
|
typedef super::convex_type | convex_type |
|
typedef boost::shared_ptr
< edge_gm_type > | edge_gm_ptrtype |
|
typedef mpl::at
< geomap_edges_t, mpl::int_
< nDim > >::type | edge_gm_type |
|
typedef boost::shared_ptr
< element_gm_type > | element_gm_ptrtype |
|
typedef mpl::at
< geomap_elements_t, mpl::int_
< nDim > >::type | element_gm_type |
|
typedef boost::shared_ptr
< face_gm_type > | face_gm_ptrtype |
|
typedef mpl::at
< geomap_faces_t, mpl::int_
< nDim > >::type | face_gm_type |
|
typedef boost::shared_ptr
< geometric_mapping_type > | geometric_mapping_ptrtype |
|
typedef self_type | geometric_mapping_type |
|
typedef element_gm_ptrtype | gm_ptrtype |
|
typedef matrix_node
< value_type >::type | matrix_node_t_type |
|
typedef ublas::matrix< value_type > | matrix_type |
|
typedef node< value_type >::type | node_t_type |
|
typedef
normals_type::const_iterator | normal_const_iterator |
|
typedef node_t_type | normal_type |
|
typedef ublas::vector
< normal_type > | normals_type |
|
typedef boost::shared_ptr
< precompute_type > | precompute_ptrtype |
|
typedef super::PreCompute | precompute_type |
|
typedef Reference< convex_type,
nDim, Order, nDim > | reference_convex_type |
|
typedef GeoMap< Dim, Order,
RealDim, T, Entity, PP > | self_type |
|
typedef
tangents_type::const_iterator | tangent_const_iterator |
|
typedef node_t_type | tangent_type |
|
typedef ublas::vector
< tangent_type > | tangents_type |
|
typedef super::value_type | value_type |
|
typedef ublas::vector< value_type > | vector_type |
|
|
void | addB (int e, matrix_type const &B) |
|
void | addJ (int e, double v) |
|
void | addK (int e, matrix_type const &K) |
|
matrix_type const & | B (int e) const |
|
const face_gm_ptrtype & | boundaryMap () const |
|
bool | cached (int e) const |
|
template<size_type context_v, typename ElementType > |
boost::shared_ptr< Context
< context_v, ElementType > > | context (geometric_mapping_ptrtype gm, ElementType const &e, precompute_ptrtype const &pc) |
|
template<size_type context_v, typename ElementType > |
boost::shared_ptr< Context
< context_v, ElementType > > | context (ElementType const &e, precompute_ptrtype const &pc) |
|
template<size_type context_v, typename ElementType > |
boost::shared_ptr< Context
< context_v, ElementType > > | context (geometric_mapping_ptrtype gm, ElementType const &e, std::vector< std::map< typename ElementType::permutation_type, precompute_ptrtype > > &pc, uint16_type f) |
|
template<size_type context_v, typename ElementType > |
boost::shared_ptr< Context
< context_v, ElementType > > | context (ElementType const &e, std::vector< std::map< typename ElementType::permutation_type, precompute_ptrtype > > &pc, uint16_type f) |
|
uint16_type | dim () const |
|
const element_gm_ptrtype | elementMap () const |
|
| GeoMap () |
|
| GeoMap (element_gm_ptrtype const &e, face_gm_ptrtype const &f) |
|
void | gradient (const node_t_type &__pt, matrix_type &__g) const |
|
void | gradient (uint16_type __idref, matrix_type &__g, precompute_type const *__pc) const |
|
template<typename MeshType > |
void | initCache (MeshType const *mesh) |
|
bool | isCached () const |
|
bool | isCacheValid () const |
|
boost::tuple< bool, value_type > | isIn (typename node< value_type >::type const &pt) const |
|
bool | isLinear () const |
|
double | J (int e) const |
|
matrix_type const & | K (int e) const |
|
value_type | radiusEstimate (matrix_node_t_type const &G) const |
|
uint16_type | realDim () const |
|
reference_convex_type const & | referenceConvex () const |
|
ublas::vector< value_type > | refNode (uint16_type i) const |
|
void | setCached (int e, bool v) |
|
node_t_type | transform (const node_t_type &__ref_p, matrix_node_t_type const &__G) const |
|
node_t_type | transform (uint16_type __idref, matrix_node_t_type const &__G, precompute_type const *__pc) const |
|
void | transform (matrix_node_t_type const &G, precompute_type const *pc, matrix_type &x) const |
|
| ~GeoMap () |
|
template<uint16_type Dim, uint16_type Order, uint16_type RealDim, typename T = double, template< uint16_type, uint16_type, uint16_type > class Entity = Simplex, template< uint16_type, template< uint16_type RDim > class PolySetType, typename ContinuityType, template< class, uint16_type, class > class Pts, uint16_type > class PP = Lagrange>
template<uint16_type Dim, uint16_type Order, uint16_type RealDim, typename T = double, template< uint16_type, uint16_type, uint16_type > class Entity = Simplex, template< uint16_type, template< uint16_type RDim > class PolySetType, typename ContinuityType, template< class, uint16_type, class > class Pts, uint16_type > class PP = Lagrange>
Feel::GeoMap< Dim, Order, RealDim, T, Entity, PP >::GeoMap |
( |
element_gm_ptrtype const & |
e, |
|
|
face_gm_ptrtype const & |
f |
|
) |
| |
|
inline |
template<uint16_type Dim, uint16_type Order, uint16_type RealDim, typename T = double, template< uint16_type, uint16_type, uint16_type > class Entity = Simplex, template< uint16_type, template< uint16_type RDim > class PolySetType, typename ContinuityType, template< class, uint16_type, class > class Pts, uint16_type > class PP = Lagrange>
template<uint16_type Dim, uint16_type Order, uint16_type RealDim, typename T = double, template< uint16_type, uint16_type, uint16_type > class Entity = Simplex, template< uint16_type, template< uint16_type RDim > class PolySetType, typename ContinuityType, template< class, uint16_type, class > class Pts, uint16_type > class PP = Lagrange>
const face_gm_ptrtype& Feel::GeoMap< Dim, Order, RealDim, T, Entity, PP >::boundaryMap |
( |
) | |
const |
|
inline |
- Returns
- the natural mapping for the boundary of the element
template<uint16_type Dim, uint16_type Order, uint16_type RealDim, typename T = double, template< uint16_type, uint16_type, uint16_type > class Entity = Simplex, template< uint16_type, template< uint16_type RDim > class PolySetType, typename ContinuityType, template< class, uint16_type, class > class Pts, uint16_type > class PP = Lagrange>
uint16_type Feel::GeoMap< Dim, Order, RealDim, T, Entity, PP >::dim |
( |
) | |
const |
|
inline |
- Returns
- the dimension of the underlying element
template<uint16_type Dim, uint16_type Order, uint16_type RealDim, typename T = double, template< uint16_type, uint16_type, uint16_type > class Entity = Simplex, template< uint16_type, template< uint16_type RDim > class PolySetType, typename ContinuityType, template< class, uint16_type, class > class Pts, uint16_type > class PP = Lagrange>
const element_gm_ptrtype Feel::GeoMap< Dim, Order, RealDim, T, Entity, PP >::elementMap |
( |
) | |
const |
|
inline |
- Returns
- the natural mapping for the element
template<uint16_type Dim, uint16_type Order, uint16_type RealDim, typename T = double, template< uint16_type, uint16_type, uint16_type > class Entity = Simplex, template< uint16_type, template< uint16_type RDim > class PolySetType, typename ContinuityType, template< class, uint16_type, class > class Pts, uint16_type > class PP = Lagrange>
void Feel::GeoMap< Dim, Order, RealDim, T, Entity, PP >::gradient |
( |
const node_t_type & |
__pt, |
|
|
matrix_type & |
__g |
|
) |
| const |
|
inline |
template<uint16_type Dim, uint16_type Order, uint16_type RealDim, typename T = double, template< uint16_type, uint16_type, uint16_type > class Entity = Simplex, template< uint16_type, template< uint16_type RDim > class PolySetType, typename ContinuityType, template< class, uint16_type, class > class Pts, uint16_type > class PP = Lagrange>
void Feel::GeoMap< Dim, Order, RealDim, T, Entity, PP >::gradient |
( |
uint16_type |
__idref, |
|
|
matrix_type & |
__g, |
|
|
precompute_type const * |
__pc |
|
) |
| const |
|
inline |
template<uint16_type Dim, uint16_type Order, uint16_type RealDim, typename T = double, template< uint16_type, uint16_type, uint16_type > class Entity = Simplex, template< uint16_type, template< uint16_type RDim > class PolySetType, typename ContinuityType, template< class, uint16_type, class > class Pts, uint16_type > class PP = Lagrange>
boost::tuple<bool,value_type> Feel::GeoMap< Dim, Order, RealDim, T, Entity, PP >::isIn |
( |
typename node< value_type >::type const & |
pt) | |
const |
|
inline |
- Returns
- a positive number if the point is within the reference convex
template<uint16_type Dim, uint16_type Order, uint16_type RealDim, typename T = double, template< uint16_type, uint16_type, uint16_type > class Entity = Simplex, template< uint16_type, template< uint16_type RDim > class PolySetType, typename ContinuityType, template< class, uint16_type, class > class Pts, uint16_type > class PP = Lagrange>
bool Feel::GeoMap< Dim, Order, RealDim, T, Entity, PP >::isLinear |
( |
) | |
const |
|
inline |
- Returns
- true if the geometric mapping is linear, false otherwise
template<uint16_type Dim, uint16_type Order, uint16_type RealDim, typename T = double, template< uint16_type, uint16_type, uint16_type > class Entity = Simplex, template< uint16_type, template< uint16_type RDim > class PolySetType, typename ContinuityType, template< class, uint16_type, class > class Pts, uint16_type > class PP = Lagrange>
value_type Feel::GeoMap< Dim, Order, RealDim, T, Entity, PP >::radiusEstimate |
( |
matrix_node_t_type const & |
G) | |
const |
|
inline |
get an estimate of the radius of the element defined by G
- Parameters
-
G | matrix of nodes defining the element |
- Returns
- the estimate of the radius of the element defined by G
References Feel::SVD< MatrixA >::conditionNumber(), Feel::GeoMap< Dim, Order, RealDim, T, Entity, PP >::dim(), Feel::GeoMap< Dim, Order, RealDim, T, Entity, PP >::gradient(), and Feel::GeoMap< Dim, Order, RealDim, T, Entity, PP >::refNode().
template<uint16_type Dim, uint16_type Order, uint16_type RealDim, typename T = double, template< uint16_type, uint16_type, uint16_type > class Entity = Simplex, template< uint16_type, template< uint16_type RDim > class PolySetType, typename ContinuityType, template< class, uint16_type, class > class Pts, uint16_type > class PP = Lagrange>
- Returns
- the reference convex
template<uint16_type Dim, uint16_type Order, uint16_type RealDim, typename T = double, template< uint16_type, uint16_type, uint16_type > class Entity = Simplex, template< uint16_type, template< uint16_type RDim > class PolySetType, typename ContinuityType, template< class, uint16_type, class > class Pts, uint16_type > class PP = Lagrange>
ublas::vector<value_type> Feel::GeoMap< Dim, Order, RealDim, T, Entity, PP >::refNode |
( |
uint16_type |
i) | |
const |
|
inline |
- Returns
- the i-th reference node associated with the geometric mapping construction
References Feel::points().
template<uint16_type Dim, uint16_type Order, uint16_type RealDim, typename T = double, template< uint16_type, uint16_type, uint16_type > class Entity = Simplex, template< uint16_type, template< uint16_type RDim > class PolySetType, typename ContinuityType, template< class, uint16_type, class > class Pts, uint16_type > class PP = Lagrange>
node_t_type Feel::GeoMap< Dim, Order, RealDim, T, Entity, PP >::transform |
( |
const node_t_type & |
__ref_p, |
|
|
matrix_node_t_type const & |
__G |
|
) |
| const |
|
inline |
apply the geometric mapping to the point pt
given the real geometric nodes stored in a NxNg matrix G
template<uint16_type Dim, uint16_type Order, uint16_type RealDim, typename T = double, template< uint16_type, uint16_type, uint16_type > class Entity = Simplex, template< uint16_type, template< uint16_type RDim > class PolySetType, typename ContinuityType, template< class, uint16_type, class > class Pts, uint16_type > class PP = Lagrange>
node_t_type Feel::GeoMap< Dim, Order, RealDim, T, Entity, PP >::transform |
( |
uint16_type |
__idref, |
|
|
matrix_node_t_type const & |
__G, |
|
|
precompute_type const * |
__pc |
|
) |
| const |
|
inline |
apply the geometric mapping to the point index id_pt
given the real geometric nodes stored in a NxNg matrix G
template<uint16_type Dim, uint16_type Order, uint16_type RealDim, typename T = double, template< uint16_type, uint16_type, uint16_type > class Entity = Simplex, template< uint16_type, template< uint16_type RDim > class PolySetType, typename ContinuityType, template< class, uint16_type, class > class Pts, uint16_type > class PP = Lagrange>
void Feel::GeoMap< Dim, Order, RealDim, T, Entity, PP >::transform |
( |
matrix_node_t_type const & |
G, |
|
|
precompute_type const * |
pc, |
|
|
matrix_type & |
x |
|
) |
| const |
|
inline |
compute real coordinates from a matrix of ref coordinates