an efficient C++ finite element environment
|
|
geometrical element of a mesh
Description
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.
Implementation
This documentation has been generated from file fem/geo_element/geo_element.h
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);
size_type subgeo_size(size_type subgeo_dim, size_type loc_isid) const
parameter_type(variant_type v=reference_element::max_variant, size_type o=0)
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
static size_type n_node(variant_type variant, size_type order)
size_type last_inod(size_type subgeo_dim) const
size_type master(bool i) const
const geo_element_indirect & face_indirect(size_type i) const
void get(std::istream &os)
const size_type * const_iterator
reference_element::variant_type variant_type
size_type n_subgeo(size_type subgeo_dim) const
size_type subgeo_dis_index(size_type subgeo_dim, size_type i) const
size_type _data_size() const
orientation_type get_side_informations(const geo_element &S, size_type &loc_isid, size_type &shift) const
virtual iterator _data_begin()=0
size_type n_subgeo(size_type subgeo_dim) const
size_type subgeo_n_node(size_type subgeo_dim, size_type loc_isid) const
geo_element_indirect::shift_type shift_type
variant_type variant() const
orientation_type get_side_orientation(const geo_element &S) const
static size_type first_inod(variant_type variant, size_type order, size_type subgeo_dim)
void set_dis_ie(size_type dis_ie)
geo_element_auto< heap_allocator< size_type > > automatic_type
size_type & node(size_type loc_inod)
size_type dimension() const
virtual void reset(variant_type variant, size_type order)=0
static size_type _node_offset(variant_type variant, size_type order)
short int orientation_type
size_type & operator[](size_type loc_inod)
reference_element::size_type size_type
size_type subgeo_local_vertex(size_type subgeo_dim, size_type i_subgeo, size_type i_subgeo_vertex) const
static size_type _edge_offset(variant_type variant, size_type order)
static size_type _face_offset(variant_type variant, size_type order)
const geo_element_indirect & edge_indirect(size_type i) const
geo_element_indirect::orientation_type orientation_type
void set_master(bool i, size_type dis_ie) 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 const variant_type max_variant
size_type first_inod(size_type subgeo_dim) const
size_type dimension() const
static size_type last_inod(variant_type variant, size_type order, size_type subgeo_dim)
orientation_type get_edge_orientation(size_type dis_iv0, size_type dis_iv1) const
field::size_type size_type
geo_element & operator=(const geo_element &K)
size_type subgeo_local_node(size_type subgeo_dim, size_type loc_isid, size_type loc_jsidnod) const
size_type face(size_type i) const
std::vector< int >::size_type size_type
size_type edge(size_type i) const
static size_type subgeo_n_node(variant_type variant, size_type order, size_type subgeo_dim, size_type loc_isid)
size_type n_vertex() const
size_type ios_dis_ie() const
void put(std::ostream &is) const
void set_ios_dis_ie(size_type ios_dis_ie)
see the edge page for the full documentation