An adaptor for enumerating node IDs of an element. More...
#include <Element_accessors.h>
Public Member Functions | |
Element_node_enumerator () | |
Element_node_enumerator (const Pane *pane, int i, const Connectivity *conn=NULL) | |
Constructor for an element in a structured or an unstructured mesh. More... | |
Element_node_enumerator (const Pane *pane, const std::pair< int, int > &id) | |
A constructor for an element in a structured mesh. More... | |
void | next () |
Go to the next element within the connectivity tables of a pane. More... | |
int | type () const |
Obtain the type of the element. More... | |
int | is_quadratic () const |
Check whether the element is quadratic. More... | |
int | size_of_nodes () const |
Number of nodes per element. More... | |
int | size_of_corners () const |
Number of corners per element. More... | |
void | get_nodes (std::vector< int > &nodes) |
Get a vector of all of the nodes in the element. More... | |
int | size_of_edges () const |
Number of edges per element. More... | |
int | size_of_faces () const |
Number of faces per element. More... | |
int | dimension () const |
Get the dimension of the base pane. More... | |
int | id () const |
Get the local id of the element within the pane. More... | |
int | vertex (int lvid, bool level=false) const |
Get the vertex index of an vertex within the element. More... | |
int | operator[] (int i) const |
Obtain the pane-scope node ID from its element-scope index. More... | |
const Pane * | pane () const |
Protected Attributes | |
const Pane * | _pane |
const Connectivity * | _conn |
union { | |
const int * _start | |
int _base | |
}; | |
int | _res |
An adaptor for enumerating node IDs of an element.
Definition at line 43 of file Element_accessors.h.
|
inline |
Definition at line 45 of file Element_accessors.h.
COM_BEGIN_NAME_SPACE Element_node_enumerator | ( | const Pane * | pane, |
int | i, | ||
const Connectivity * | conn = NULL |
||
) |
Constructor for an element in a structured or an unstructured mesh.
If conn==NULL, then i is an element index local to the pane. If conn!=NULL, then i is an element index local to the connectivity.
Definition at line 32 of file Element_accessors.C.
References _base, _conn, _pane, _res, _start, COM_assertion, Pane::dimension(), i, Connectivity::index_offset(), Pane::is_unstructured(), max(), Connectivity::pointer(), Pane::size_i(), Pane::size_of_elements(), Connectivity::size_of_elements(), and Connectivity::size_of_nodes_pe().
Element_node_enumerator | ( | const Pane * | pane, |
const std::pair< int, int > & | id | ||
) |
A constructor for an element in a structured mesh.
pane | a pointer to the owner pane. |
r | the row id of the element (starting from 1). |
c | the column id of the element (starting from 1). |
Definition at line 68 of file Element_accessors.C.
References _base, _pane, _res, COM_assertion, Pane::is_structured(), Pane::size_i(), and Pane::size_j().
|
inline |
Get the dimension of the base pane.
Definition at line 105 of file Element_accessors.h.
References _pane, and Pane::dimension().
Referenced by Facet_node_enumerator::Facet_node_enumerator().
void get_nodes | ( | std::vector< int > & | nodes | ) |
Get a vector of all of the nodes in the element.
Definition at line 146 of file Element_accessors.C.
References i, num_nodes, and size_of_nodes().
|
inline |
Get the local id of the element within the pane.
Definition at line 108 of file Element_accessors.h.
References _base, _conn, _pane, _start, Connectivity::index_offset(), Pane::is_structured(), Connectivity::pointer(), Pane::size_i(), and Connectivity::size_of_nodes_pe().
Referenced by RFC_Pane_base::comp_nat_coors(), Transfer_base::compute_load_vector_wra(), Simple_manifold_2::determine_incident_halfedges(), Simple_manifold_2::determine_opposite_halfedges(), RFC_Pane_base::get_host_element_of_subface(), RFC_Pane_base::get_host_element_of_subnode(), RFC_Pane_base::get_nat_coor_in_element(), Transfer_base::init_load_vector(), Transfer_base::integrate_subface(), Transfer_base::make_field(), FaceOffset_3::obtain_face_offset(), Element_vectors_k_const< Value >::set(), and Transfer_base::transfer_2f().
|
inline |
Check whether the element is quadratic.
Definition at line 68 of file Element_accessors.h.
References _conn, and Connectivity::is_quadratic().
Referenced by Facet_node_enumerator::size_of_nodes().
void next | ( | ) |
Go to the next element within the connectivity tables of a pane.
Definition at line 79 of file Element_accessors.C.
References _base, _conn, _pane, _res, _start, COM_assertion, Pane::connectivity(), Pane::dimension(), Connectivity::index_offset(), Connectivity::pointer(), Pane::size_i(), Connectivity::size_of_elements(), and Connectivity::size_of_nodes_pe().
Referenced by Propagation_3::bound_facial_speed(), rflu_modrepair3d::cavedg(), RFC_Pane_base::comp_nat_coors(), FaceOffset_3::compute_anisotropic_vertex_centers(), Rocsurf::compute_bounded_volumes(), Rocsurf::compute_element_areas(), Rocsurf::compute_element_normals(), Window_manifold_2::compute_mcn(), FaceOffset_3::compute_quadrics(), Window_manifold_2::compute_shortest_edgelen_elements(), Window_manifold_2::compute_shortest_edgelen_nodes(), Rocsurf::compute_signed_volumes(), Rocsurf::compute_swept_volumes(), Propagation_3::convert_constraints(), Pane_boundary::determine_border_nodes_3(), Propagation_3::determine_constraint_boundary(), Simple_manifold_2::determine_incident_halfedges(), Simple_manifold_2::determine_opposite_halfedges(), FaceOffset_3::distribute_volume_e2n(), Window_manifold_2::elements_to_nodes(), Rocmop::evaluate_face_normals(), FaceOffset_3::filter_and_identify_ridge_edges(), Rocmop::get_redist_safe_factor(), Rocmop::identify_ridge_edges(), FaceOffset_3::insert_boundary_edges(), Rocsurf::integrate(), data_declarations::length(), FaceOffset_3::nulaplacian_smooth(), rflu_modrepair3d::octfil(), rflu_modrepair3d::octfnd(), rflu_modoctree::octree(), rflu_modrepair3d::octrmv(), Rocmop::redistribute_vertices_smooth(), and FaceOffset_3::rescale_displacements().
|
inline |
Obtain the pane-scope node ID from its element-scope index.
i | the element-scope index of a node (starting from 0). |
Definition at line 124 of file Element_accessors.h.
References _base, _conn, _pane, _start, i, and Pane::size_i().
|
inline |
Definition at line 135 of file Element_accessors.h.
References _pane.
Referenced by RFC_Pane_base::comp_nat_coors(), RFC_Pane_base::get_host_element_of_subface(), RFC_Pane_base::get_host_element_of_subnode(), and Transfer_base::integrate_subface().
|
inline |
Number of corners per element.
Definition at line 81 of file Element_accessors.h.
References _conn, _pane, Pane::dimension(), and Connectivity::size_of_corners_pe().
|
inline |
Number of edges per element.
Definition at line 91 of file Element_accessors.h.
References _conn, _pane, Pane::dimension(), and Connectivity::size_of_edges_pe().
Referenced by Propagation_3::bound_facial_speed(), FaceOffset_3::build_ridge_neighbor_list(), FaceOffset_3::compute_anisotropic_vertex_centers(), Rocsurf::compute_bounded_volumes(), Rocsurf::compute_element_areas(), Rocsurf::compute_element_normals(), Transfer_base::compute_load_vector_wra(), Window_manifold_2::compute_mcn(), FaceOffset_3::compute_quadrics(), Window_manifold_2::compute_shortest_edgelen_elements(), Window_manifold_2::compute_shortest_edgelen_nodes(), Rocsurf::compute_signed_volumes(), Rocsurf::compute_swept_volumes(), Propagation_3::convert_constraints(), Propagation_3::determine_constraint_boundary(), Simple_manifold_2::determine_incident_halfedges(), Simple_manifold_2::determine_opposite_halfedges(), FaceOffset_3::distribute_volume_e2n(), Window_manifold_2::elements_to_nodes(), Rocmop::evaluate_face_normals(), FaceOffset_3::filter_and_identify_ridge_edges(), RFC_Pane_base::get_nat_coor_in_element(), Facet_node_enumerator::get_nodes(), get_normal(), RFC_Pane_base::get_point_of_subnode(), Rocmop::get_redist_safe_factor(), FaceOffset_3::insert_boundary_edges(), Rocsurf::integrate(), Transfer_base::integrate_subface(), Transfer_base::interpolate_fe(), FaceOffset_3::nulaplacian_smooth(), FaceOffset_3::obtain_face_offset(), Facet_node_enumerator::operator[](), Rocmop::redistribute_vertices_ridge(), Rocmop::redistribute_vertices_smooth(), FaceOffset_3::rescale_displacements(), and FaceOffset_3::update_vertex_centers().
|
inline |
Number of faces per element.
Definition at line 98 of file Element_accessors.h.
References _conn, _pane, Pane::dimension(), and Connectivity::size_of_faces_pe().
Referenced by Pane_boundary::determine_border_nodes_3().
|
inline |
Number of nodes per element.
Definition at line 74 of file Element_accessors.h.
References _conn, _pane, Pane::dimension(), and Connectivity::size_of_nodes_pe().
Referenced by Rocsurf::compute_element_areas(), Rocsurf::compute_element_normals(), Transfer_base::compute_load_vector_wra(), Window_manifold_2::compute_shortest_edgelen_nodes(), Propagation_3::convert_constraints(), Simple_manifold_2::determine_incident_halfedges(), Window_manifold_2::elements_to_nodes(), Rocmop::evaluate_face_normals(), Facet_node_enumerator::Facet_node_enumerator(), RFC_Pane_base::get_lvid(), get_nodes(), RFC_Pane_base::get_point_of_subnode(), Rocsurf::integrate(), Transfer_base::integrate_subface(), Transfer_base::interpolate_fe(), Element_node_vectors_k_const< Value >::set(), Facet_node_enumerator::size_of_nodes(), and Vertex_set::Vertex_set().
|
inline |
Obtain the type of the element.
Definition at line 61 of file Element_accessors.h.
References _conn, _pane, Pane::dimension(), Connectivity::element_type(), Connectivity::ST2, and Connectivity::ST3.
int vertex | ( | int | lvid, |
bool | level = false |
||
) | const |
Get the vertex index of an vertex within the element.
Definition at line 108 of file Element_accessors.C.
References _base, _conn, _pane, _start, NTS::abs(), COM_assertion, i, Pane::is_structured(), Pane::size_i(), Pane::size_j(), and Connectivity::size_of_nodes_pe().
Referenced by RFC_Pane_base::get_lvid().
union { ... } |
int _base |
Definition at line 142 of file Element_accessors.h.
Referenced by Element_node_enumerator(), id(), next(), Element_node_enumerator_str_2::next(), operator[](), Element_node_enumerator_str_2::operator[](), and vertex().
|
protected |
Definition at line 139 of file Element_accessors.h.
Referenced by Element_node_enumerator(), id(), is_quadratic(), next(), Element_node_enumerator_uns::next(), operator[](), size_of_corners(), size_of_edges(), size_of_faces(), size_of_nodes(), Element_node_enumerator_uns::size_of_nodes(), type(), and vertex().
|
protected |
Definition at line 138 of file Element_accessors.h.
Referenced by dimension(), Element_node_enumerator(), id(), next(), Element_node_enumerator_str_2::next(), Element_node_enumerator_uns::next(), operator[](), Element_node_enumerator_str_2::operator[](), pane(), size_of_corners(), size_of_edges(), size_of_faces(), size_of_nodes(), type(), and vertex().
|
protected |
Definition at line 144 of file Element_accessors.h.
Referenced by Element_node_enumerator(), next(), Element_node_enumerator_str_2::next(), and Element_node_enumerator_uns::next().
const int* _start |
Definition at line 141 of file Element_accessors.h.
Referenced by Element_node_enumerator(), id(), next(), Element_node_enumerator_uns::next(), operator[](), Element_node_enumerator_uns::operator[](), and vertex().