GetFEM
5.4.2
|
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.