This class defines a geometrical element. This element is obtained after the Piola geometrical transformation from a reference_element
. The geo_element is mainly an array of indices for its nodes. These indices refer to the node table of the geo
class. In addition, this class provides a list of indexes for edges (in 2D and 3D) and faces (in 3D). These indices refer to the edge and face lists, respectively, of the geo
class.
class geo_element {
public:
enum {
};
struct parameter_type {
};
{
reset (K.variant(), K.order());
reset (K.variant(), K.order());
return *this;
}
operator reference_element ()
const {
return reference_element(
variant()); }
}
return *(
reinterpret_cast<const geo_element_indirect*
>(
p));
}
return *(
reinterpret_cast<const geo_element_indirect*
>(
p));
}
return *(
reinterpret_cast<geo_element_indirect*
>(
p));
}
return *(
reinterpret_cast<geo_element_indirect*
>(
p));
}
side_information_type& sid) const;
void put (std::ostream& is)
const;
void get (std::istream& os);
field::size_type size_type
see the edge page for the full documentation
short int orientation_type
geo_element_auto< heap_allocator< size_type > > automatic_type
size_type subgeo_n_node(size_type subgeo_dim, size_type loc_isid) const
geo_element_indirect::orientation_type orientation_type
bool get_orientation_and_shift(const geo_element &S, orientation_type &orient, shift_type &shift) const
return orientation and shift between *this element and S
virtual iterator _data_begin()=0
size_type & operator[](size_type loc_inod)
size_type subgeo_local_vertex(size_type subgeo_dim, size_type i_subgeo, size_type i_subgeo_vertex) const
size_type first_inod(size_type subgeo_dim) const
reference_element::size_type size_type
void set_ios_dis_ie(size_type ios_dis_ie)
void put(std::ostream &is) const
size_type dimension() const
size_type ios_dis_ie() const
static size_type _face_offset(variant_type variant, size_type order)
void get(std::istream &os)
const size_type * const_iterator
size_type subgeo_size(size_type subgeo_dim, size_type loc_isid) const
const geo_element_indirect & edge_indirect(size_type i) const
orientation_type get_side_orientation(const geo_element &S) const
size_type master(bool i) const
size_type & node(size_type loc_inod)
variant_type variant() const
geo_element & operator=(const geo_element &K)
orientation_type get_edge_orientation(size_type dis_iv0, size_type dis_iv1) const
static size_type _node_offset(variant_type variant, size_type order)
size_type _data_size() const
geo_element_indirect::shift_type shift_type
orientation_type get_side_informations(const geo_element &S, size_type &loc_isid, size_type &shift) const
size_type n_subgeo(size_type subgeo_dim) const
void set_master(bool i, size_type dis_ie) const
const geo_element_indirect & face_indirect(size_type i) const
virtual void reset(variant_type variant, size_type order)=0
reference_element::variant_type variant_type
size_type subgeo_local_node(size_type subgeo_dim, size_type loc_isid, size_type loc_jsidnod) const
size_type last_inod(size_type subgeo_dim) const
size_type subgeo_dis_index(size_type subgeo_dim, size_type i) const
void set_dis_ie(size_type dis_ie)
static size_type _edge_offset(variant_type variant, size_type order)
size_type n_vertex() const
static size_type subgeo_local_node(variant_type variant, size_type order, size_type subgeo_dim, size_type loc_isid, size_type loc_jsidnod)
static size_type first_inod(variant_type variant, size_type order, size_type subgeo_dim)
static const variant_type max_variant
size_type dimension() const
static size_type last_inod(variant_type variant, size_type order, size_type subgeo_dim)
static size_type subgeo_n_node(variant_type variant, size_type order, size_type subgeo_dim, size_type loc_isid)
std::vector< int >::size_type size_type
static size_type n_node(variant_type variant, size_type order)
size_type n_subgeo(size_type subgeo_dim) const
const size_t face[n_face][4]