GetFEM  5.4.2
getfem::im_data Class Reference

im_data provides indexing to the integration points of a mesh im object. More...

#include <getfem_im_data.h>

Inherits getfem::context_dependencies, and dal::static_stored_object.

Public Member Functions

 im_data (const mesh_im &mim_, bgeot::multi_index tensor_size, size_type filtered_region_=size_type(-1), bgeot::multi_index actual_tensor_size={})
 Constructor. More...
 
 im_data (const mesh_im &mim_, size_type filtered_region_=size_type(-1))
 Constructor. More...
 
void set_region (size_type region)
 set filtered region id
 
size_type filtered_region () const
 return filtered region id
 
size_type index_of_point (size_type cv, size_type i, bool use_filter=false) const
 Returns the index of an integration point with no filtering.
 
size_type filtered_index_of_point (size_type cv, size_type i) const
 Returns the index of an integration point with filtering.
 
size_type index_of_first_point (size_type cv, short_type f=short_type(-1), bool use_filter=false) const
 Returns the index of the first integration point with no filtering.
 
size_type filtered_index_of_first_point (size_type cv, short_type f=short_type(-1)) const
 Returns the index of the first integration point with filtering.
 
size_type nb_index (bool use_filter=false) const
 Total numbers of index (integration points)
 
size_type nb_filtered_index () const
 Total numbers of filtered index (integration points)
 
size_type nb_points_of_element (size_type cv, bool use_filter=false) const
 Total number of points in element cv.
 
size_type nb_points_of_element (size_type cv, short_type f, bool use_filter=false) const
 Number of points in element cv, on face f (or in the interior)
 
size_type nb_filtered_points_of_element (size_type cv) const
 Total number of points in element cv, which lie in filtered_region()
 
size_type nb_filtered_points_of_element (size_type cv, short_type f) const
 Number of points in element cv, on face f (or in the interior), which lie in filtered_region()
 
short_type nb_faces_of_element (size_type cv) const
 Number of (active) faces in element cv.
 
size_type nb_tensor_elem () const
 sum of tensor elements, M(3,3) will have 3*3=9 elements
 
dal::bit_vector convex_index (bool use_filter=false) const
 List of convexes.
 
dal::bit_vector filtered_convex_index () const
 List of convex in filtered region.
 
void update_from_context () const
 called automatically when there is a change in dependencies
 
const mesh_imlinked_mesh_im () const
 linked mesh im
 
 operator const mesh_im & () const
 implicit conversion to mesh im
 
const meshlinked_mesh () const
 linked mesh
 
template<typename VECT >
void extend_vector (const VECT &V1, VECT &V2) const
 Extend a vector from filtered size to full size and copy the data to correct index.
 
template<typename VECT >
void reduce_vector (const VECT &V1, VECT &V2) const
 Filter a vector from full size to filtered size and copy the data to correct index.
 
template<typename VECT >
VECT::value_type get_value (const VECT &V1, size_type cv, size_type i, bool use_filter=true) const
 get a scalar value of an integration point from a raw vector data, described by the tensor size.
 
template<typename VECT1 , typename VECT2 >
void get_vector (const VECT1 &V1, size_type cv, size_type i, VECT2 &V2, bool use_filter=true) const
 get a vector of an integration point from a raw vector data, described by the tensor size.
 
template<typename VECT , typename MAT >
void get_matrix (const VECT &V1, size_type cv, size_type i, MAT &M, bool use_filter=true) const
 get a matrix of an integration point from a raw vector data, described by the tensor size.
 
template<typename VECT , typename TENSOR >
void get_tensor (const VECT &V1, size_type cv, size_type i, TENSOR &T, bool use_filter=true) const
 get a tensor of an integration point from a raw vector data, described by the tensor size.
 
template<typename VECT >
VECT::value_type & set_value (VECT &V1, size_type cv, size_type i, bool use_filter=true) const
 set a value of an integration point from a raw vector data, described by the tensor size.
 
template<typename VECT1 , typename VECT2 >
void set_vector (VECT1 &V1, size_type cv, size_type i, const VECT2 &V2, bool use_filter=true) const
 set a vector of an integration point from a raw vector data, described by the tensor size.
 
template<typename VECT , typename MAT >
void set_matrix (VECT &V1, size_type cv, size_type i, const MAT &M, bool use_filter=true) const
 set a matrix of an integration point from a raw vector data, described by the tensor size.
 
template<typename VECT , typename TENSOR >
void set_tensor (VECT &V1, size_type cv, size_type i, const TENSOR &T, bool use_filter=true) const
 set a tensor of an integration point from a raw vector data, described by the tensor size.
 
- Public Member Functions inherited from getfem::context_dependencies
bool context_check () const
 return true if update_from_context was called
 

Detailed Description

im_data provides indexing to the integration points of a mesh im object.

The im_data data contains a reference of mesh_im object . The index can be filtered by region, and each im_data has its own tensorial size.

Filtered methods will provide filtered index on the region. This class also provides reading and writing tensor( including matrix, vector and scalar) from a vector data (generally a fixed-size variable from the model.)

im_data can be used to provide integration point index on convex or on faces of convex, but not both. To create an im_data that represents integration points on a face, the filter region provided has to contain only faces.

Definition at line 69 of file getfem_im_data.h.

Constructor & Destructor Documentation

◆ im_data() [1/2]

getfem::im_data::im_data ( const mesh_im mim_,
bgeot::multi_index  tensor_size,
size_type  filtered_region_ = size_type(-1),
bgeot::multi_index  actual_tensor_size = {} 
)

Constructor.

Parameters
mimReference mesh_im object
tensor_sizetensor dimension of each integration points
filtered_regionindex not in the region will be filtered out. If filtered_region can contain only convexes or only faces or both convexes and faces.
Actual_tensor_sizethe actual size of the tensor the data represents. Used for example, for a Voigt annotated data.

Definition at line 28 of file getfem_im_data.cc.

◆ im_data() [2/2]

getfem::im_data::im_data ( const mesh_im mim_,
size_type  filtered_region_ = size_type(-1) 
)

Constructor.

The tensor size by default is a scalar value.

Parameters
mimReference mesh_im object
filtered_regionindex not in the region will be filtered out. If filtered_region can contain only convexes or only faces or both convexes and faces.

Definition at line 43 of file getfem_im_data.cc.


The documentation for this class was generated from the following files: