|
Feel++
0.92.0
|
Structure for the geometrical mapping. More...
#include <geomap.hpp>
Classes | |
| class | Context |
| struct | edge_gm |
| struct | face_gm |
| class | Inverse |
Public Types | |
| typedef super::value_type | value_type |
| typedef super::PreCompute | precompute_type |
|
typedef boost::shared_ptr < precompute_type > | precompute_ptrtype |
| typedef super::convex_type | convex_type |
|
typedef Reference< convex_type, nDim, Order, nDim > | reference_convex_type |
|
typedef GeoMap< Dim, Order, RealDim, T, Entity, PP > | self_type |
| typedef self_type | geometric_mapping_type |
|
typedef boost::shared_ptr < geometric_mapping_type > | geometric_mapping_ptrtype |
|
typedef mpl::at < geomap_elements_t, mpl::int_ < nDim > >::type | element_gm_type |
|
typedef boost::shared_ptr < element_gm_type > | element_gm_ptrtype |
| typedef element_gm_ptrtype | gm_ptrtype |
|
typedef mpl::at < geomap_faces_t, mpl::int_ < nDim > >::type | face_gm_type |
|
typedef boost::shared_ptr < face_gm_type > | face_gm_ptrtype |
|
typedef mpl::at < geomap_edges_t, mpl::int_ < nDim > >::type | edge_gm_type |
|
typedef boost::shared_ptr < edge_gm_type > | edge_gm_ptrtype |
| typedef node< value_type >::type | node_t_type |
|
typedef matrix_node < value_type >::type | matrix_node_t_type |
| typedef node_t_type | normal_type |
|
typedef ublas::vector < normal_type > | normals_type |
|
typedef normals_type::const_iterator | normal_const_iterator |
| typedef node_t_type | tangent_type |
|
typedef ublas::vector < tangent_type > | tangents_type |
|
typedef tangents_type::const_iterator | tangent_const_iterator |
| typedef ublas::vector< value_type > | vector_type |
| typedef ublas::matrix< value_type > | matrix_type |
Public Member Functions | |
| GeoMap () | |
| GeoMap (element_gm_ptrtype const &e, face_gm_ptrtype const &f) | |
| ~GeoMap () | |
| uint16_type | dim () const |
| uint16_type | realDim () const |
| bool | isLinear () const |
| const element_gm_ptrtype | elementMap () const |
| const face_gm_ptrtype & | boundaryMap () const |
| ublas::vector< value_type > | refNode (uint16_type i) const |
| reference_convex_type const & | referenceConvex () const |
| boost::tuple< bool, value_type > | isIn (typename node< value_type >::type const &pt) const |
| 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 |
| void | gradient (const node_t_type &__pt, matrix_type &__g) const |
| void | gradient (uint16_type __idref, matrix_type &__g, precompute_type const *__pc) const |
| value_type | radiusEstimate (matrix_node_t_type const &G) const |
| bool | isCached () const |
| template<typename MeshType > | |
| void | initCache (MeshType const *mesh) |
| bool | isCacheValid () const |
| bool | cached (int e) const |
| void | setCached (int e, bool v) |
| double | J (int e) const |
| matrix_type const & | B (int e) const |
| matrix_type const & | K (int e) const |
| void | addJ (int e, double v) |
| void | addK (int e, matrix_type const &K) |
| void | addB (int e, matrix_type const &B) |
| 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) |
Public Attributes | |
| bool | M_is_cached |
| std::vector< bool > | M_cached |
| std::vector< double > | M_J |
| std::vector< matrix_type > | M_K |
| std::vector< matrix_type > | M_B |
Static Public Attributes | |
| static const uint16_type | nDim = super::nDim |
| static const uint16_type | nRealDim = super::nRealDim |
| static const uint16_type | nDof = super::nDof |
| static const uint16_type | nNodes = super::nNodes |
|
static const fem::transformation_type | trans = super::trans |
Friends | |
| class | Inverse |
Structure for the geometrical mapping.
This class contains the geometrical transformation that maps the reference element on the current element, and its values on integration points
| Feel::GeoMap< Dim, Order, RealDim, T, Entity, PP >::GeoMap | ( | ) | [inline] |
default constructor
References FEELPP_CONSTRUCTOR_END.
| Feel::GeoMap< Dim, Order, RealDim, T, Entity, PP >::GeoMap | ( | element_gm_ptrtype const & | e, |
| face_gm_ptrtype const & | f | ||
| ) | [inline] |
default constructor
References FEELPP_CONSTRUCTOR_END.
| Feel::GeoMap< Dim, Order, RealDim, T, Entity, PP >::~GeoMap | ( | ) | [inline] |
destructor
| const face_gm_ptrtype& Feel::GeoMap< Dim, Order, RealDim, T, Entity, PP >::boundaryMap | ( | ) | const [inline] |
| uint16_type Feel::GeoMap< Dim, Order, RealDim, T, Entity, PP >::dim | ( | ) | const [inline] |
Referenced by Feel::GeoMap< Dim, Order, RealDim, T, Entity, PP >::gradient(), and Feel::GeoMap< Dim, Order, RealDim, T, Entity, PP >::radiusEstimate().
| const element_gm_ptrtype Feel::GeoMap< Dim, Order, RealDim, T, Entity, PP >::elementMap | ( | ) | const [inline] |
| void Feel::GeoMap< Dim, Order, RealDim, T, Entity, PP >::gradient | ( | const node_t_type & | __pt, |
| matrix_type & | __g | ||
| ) | const [inline] |
compute the gradient of the transformation in the reference element
Compute the gradient at node x, pc is resized to [nbNodes() x dim()] if the transformation is linear, x is not used at all
References Feel::GeoMap< Dim, Order, RealDim, T, Entity, PP >::dim().
Referenced by Feel::GeoMap< Dim, Order, RealDim, T, Entity, PP >::radiusEstimate().
| void Feel::GeoMap< Dim, Order, RealDim, T, Entity, PP >::gradient | ( | uint16_type | __idref, |
| matrix_type & | __g, | ||
| precompute_type const * | __pc | ||
| ) | const [inline] |
compute the gradient of the transformation in the reference element
Compute the gradient at node x, pc is resized to [nbNodes() x dim()] if the transformation is linear, x is not used at all
References Feel::GeoMap< Dim, Order, RealDim, T, Entity, PP >::dim().
| boost::tuple<bool,value_type> Feel::GeoMap< Dim, Order, RealDim, T, Entity, PP >::isIn | ( | typename node< value_type >::type const & | pt | ) | const [inline] |
| bool Feel::GeoMap< Dim, Order, RealDim, T, Entity, PP >::isLinear | ( | ) | const [inline] |
| 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
| G | matrix of nodes defining the element |
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().
| reference_convex_type const& Feel::GeoMap< Dim, Order, RealDim, T, Entity, PP >::referenceConvex | ( | ) | const [inline] |
| ublas::vector<value_type> Feel::GeoMap< Dim, Order, RealDim, T, Entity, PP >::refNode | ( | uint16_type | i | ) | const [inline] |
References Feel::points().
Referenced by Feel::GeoMap< Dim, Order, RealDim, T, Entity, PP >::radiusEstimate().
| 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
| 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
| 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
1.7.6.1