|
GetFEM
5.4.4
|
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_im & | linked_mesh_im () const |
| linked mesh im | |
| operator const mesh_im & () const | |
| implicit conversion to mesh im | |
| const mesh & | linked_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 | |
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.
| 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.
| mim | Reference mesh_im object |
| tensor_size | tensor dimension of each integration points |
| filtered_region | index 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_size | the 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.
| 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.
| mim | Reference mesh_im object |
| filtered_region | index 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.