Rheolef  7.2
an efficient C++ finite element environment
 
Loading...
Searching...
No Matches
geo_elementabstract

Detailed Description

see the geo_element page for the full documentation

Definition at line 102 of file geo_element.h.

+ Inheritance diagram for geo_element:

Classes

struct  parameter_type
 

Public Types

enum  {
  _variant_offset = 0 ,
  _order_offset = 1 ,
  _dis_ie_offset = 2 ,
  _ios_dis_ie_offset = 3 ,
  _master_offset = 4 ,
  _last_offset = 6
}
 
typedef reference_element::size_type size_type
 
typedef reference_element::variant_type variant_type
 
typedef size_typeiterator
 
typedef const size_typeconst_iterator
 
typedef size_type raw_type
 
typedef geo_element generic_type
 
typedef geo_element_auto< heap_allocator< size_type > > automatic_type
 
typedef geo_element_indirect::orientation_type orientation_type
 
typedef geo_element_indirect::shift_type shift_type
 

Public Member Functions

geo_elementoperator= (const geo_element &K)
 
virtual ~geo_element ()
 
virtual void reset (variant_type variant, size_type order)=0
 
 operator reference_element () const
 
variant_type variant () const
 
size_type order () const
 
size_type dis_ie () const
 
size_type ios_dis_ie () const
 
size_type master (bool i) const
 
size_type dimension () const
 
size_type size () const
 
char name () const
 
size_type n_node () const
 
void set_dis_ie (size_type dis_ie)
 
void set_ios_dis_ie (size_type ios_dis_ie)
 
void set_master (bool i, size_type dis_ie) const
 
iterator begin ()
 
const_iterator begin () const
 
iterator end ()
 
const_iterator end () const
 
size_typeoperator[] (size_type loc_inod)
 
size_type operator[] (size_type loc_inod) const
 
size_typenode (size_type loc_inod)
 
size_type node (size_type loc_inod) const
 
iterator begin (size_type node_subgeo_dim)
 
const_iterator begin (size_type node_subgeo_dim) const
 
iterator end (size_type node_subgeo_dim)
 
const_iterator end (size_type node_subgeo_dim) const
 
const geo_element_indirectedge_indirect (size_type i) const
 
const geo_element_indirectface_indirect (size_type i) const
 
geo_element_indirectedge_indirect (size_type i)
 
geo_element_indirectface_indirect (size_type i)
 
size_type edge (size_type i) const
 
size_type face (size_type i) const
 
size_type n_subgeo (size_type subgeo_dim) const
 
size_type subgeo_dis_index (size_type subgeo_dim, size_type i) const
 
size_type subgeo_n_node (size_type subgeo_dim, size_type loc_isid) const
 
size_type subgeo_local_node (size_type subgeo_dim, size_type loc_isid, size_type loc_jsidnod) const
 
size_type subgeo_size (size_type subgeo_dim, size_type loc_isid) const
 
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
 
size_type last_inod (size_type subgeo_dim) const
 
size_type n_edge () const
 
size_type n_face () const
 
orientation_type get_side_informations (const geo_element &S, size_type &loc_isid, size_type &shift) const
 
void get_side_informations (const geo_element &S, side_information_type &sid) const
 
orientation_type get_side_orientation (const geo_element &S) const
 
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
 
orientation_type get_edge_orientation (size_type dis_iv0, size_type dis_iv1) const
 
void get_orientation_and_shift (size_type dis_iv0, size_type dis_iv1, size_type dis_iv2, orientation_type &orient, shift_type &shift) const
 
void get_orientation_and_shift (size_type dis_iv0, size_type dis_iv1, size_type dis_iv2, size_type dis_iv3, orientation_type &orient, shift_type &shift) const
 
void put (std::ostream &is) const
 
void get (std::istream &os)
 
size_type _data_size () const
 
virtual iterator _data_begin ()=0
 
virtual iterator _data_end ()=0
 
virtual const_iterator _data_begin () const =0
 
virtual const_iterator _data_end () const =0
 
template<class Archive >
void serialize (Archive &ar, const unsigned int version)
 
void setname (char name)
 
char name () const
 
size_t variant () const
 
size_t dimension () const
 
size_t n_vertex () const
 
size_t size () const
 
 geo_element ()
 
void setname (char name)
 
void setorder (size_t order)
 
void setindex (size_t index)
 
void setgmshtype (size_t gmshtype)
 
geo_element_indirectedge_indirect (size_t i)
 
geo_element_indirectface_indirect (size_t i)
 
char name () const
 
size_t order () const
 
size_t index () const
 
size_t gmshtype () const
 
size_t variant () const
 
size_t dimension () const
 
size_t n_vertex () const
 
const geo_element_indirectedge_indirect (size_t i) const
 
const geo_element_indirectface_indirect (size_t i) const
 
size_t n_edge () const
 
size_t edge (size_t i) const
 
size_t edge_local_vertex (size_t iedg, size_t edg_iv) const
 
size_t face (size_t i) const
 
size_t n_face () const
 
size_t face_n_vertex (size_t loc_ifac) const
 
size_t face_local_vertex (size_t iedg, size_t edg_iv) const
 
 geo_element ()
 

Static Public Member Functions

static size_type fix_edge_indirect (const geo_element &K, size_type loc_iedg, size_type loc_iedg_j, size_type order)
 
static size_type fix_edge_indirect (orientation_type orient, size_type order, size_type loc_iedg_j)
 
static void loc_tri_inod2lattice (size_type loc_tri_inod, size_type order, point_basic< size_type > &ij_lattice)
 
static void loc_qua_inod2lattice (size_type loc_qua_inod, size_type order, point_basic< size_type > &ij_lattice)
 
static size_type fix_triangle_indirect (const geo_element &K, size_type loc_itri, size_type loc_itri_j, size_type order)
 
static size_type fix_triangle_indirect (orientation_type orient, shift_type shift, size_type order, size_type loc_itri_j)
 
static size_type fix_quadrangle_indirect (const geo_element &K, size_type loc_iqua, size_type loc_iqua_j, size_type order)
 
static size_type fix_quadrangle_indirect (orientation_type orient, shift_type shift, size_type order, size_type loc_iqua_j)
 
static size_type fix_indirect (const geo_element &K, size_type subgeo_variant, size_type loc_ige, size_type loc_comp_idof_on_subgeo, size_type order)
 
static size_type _edge_offset (variant_type variant, size_type order)
 
static size_type _face_offset (variant_type variant, size_type order)
 
static size_type _node_offset (variant_type variant, size_type order)
 
static size_type _data_size (variant_type variant, size_type order)
 
static size_type _data_size (const parameter_type &p)
 

Protected Attributes

size_t _variant
 
char _name
 
size_t _order
 
size_t _index
 
size_t _gmshtype
 
array< geo_element_indirect, 12 > _edge
 
array< geo_element_indirect, 6 > _face
 

Member Typedef Documentation

◆ size_type

Definition at line 125 of file geo_element.h.

◆ variant_type

Definition at line 126 of file geo_element.h.

◆ iterator

typedef size_type* iterator

Definition at line 127 of file geo_element.h.

◆ const_iterator

typedef const size_type* const_iterator

Definition at line 128 of file geo_element.h.

◆ raw_type

Definition at line 129 of file geo_element.h.

◆ generic_type

Definition at line 131 of file geo_element.h.

◆ automatic_type

Definition at line 132 of file geo_element.h.

◆ orientation_type

◆ shift_type

Definition at line 135 of file geo_element.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
_variant_offset 
_order_offset 
_dis_ie_offset 
_ios_dis_ie_offset 
_master_offset 
_last_offset 

Definition at line 107 of file geo_element.h.

Constructor & Destructor Documentation

◆ ~geo_element()

virtual ~geo_element ( )
virtual

Definition at line 152 of file geo_element.h.

◆ geo_element() [1/2]

Definition at line 95 of file field2gmsh_pos.cc.

◆ geo_element() [2/2]

Definition at line 251 of file msh2geo.cc.

Member Function Documentation

◆ operator=()

geo_element & operator= ( const geo_element K)

Definition at line 145 of file geo_element.h.

◆ reset()

virtual void reset ( variant_type  variant,
size_type  order 
)
pure virtual

◆ operator reference_element()

operator reference_element ( ) const

Definition at line 157 of file geo_element.h.

◆ variant() [1/3]

variant_type variant ( ) const

Definition at line 161 of file geo_element.h.

◆ order() [1/2]

size_type order ( ) const

Definition at line 162 of file geo_element.h.

◆ dis_ie()

size_type dis_ie ( ) const

Definition at line 163 of file geo_element.h.

◆ ios_dis_ie()

size_type ios_dis_ie ( ) const

Definition at line 164 of file geo_element.h.

◆ master()

size_type master ( bool  i) const

Definition at line 165 of file geo_element.h.

◆ dimension() [1/3]

size_type dimension ( ) const

Definition at line 167 of file geo_element.h.

◆ size() [1/2]

size_type size ( ) const

Definition at line 168 of file geo_element.h.

◆ name() [1/3]

char name ( ) const

Definition at line 169 of file geo_element.h.

◆ n_node()

size_type n_node ( ) const

Definition at line 170 of file geo_element.h.

◆ set_dis_ie()

void set_dis_ie ( size_type  dis_ie)

Definition at line 172 of file geo_element.h.

◆ set_ios_dis_ie()

void set_ios_dis_ie ( size_type  ios_dis_ie)

Definition at line 173 of file geo_element.h.

◆ set_master()

void set_master ( bool  i,
size_type  dis_ie 
) const

Definition at line 174 of file geo_element.h.

◆ begin() [1/4]

iterator begin ( )

Definition at line 179 of file geo_element.h.

◆ begin() [2/4]

const_iterator begin ( ) const

Definition at line 180 of file geo_element.h.

◆ end() [1/4]

iterator end ( )

Definition at line 181 of file geo_element.h.

◆ end() [2/4]

const_iterator end ( ) const

Definition at line 182 of file geo_element.h.

◆ operator[]() [1/2]

size_type & operator[] ( size_type  loc_inod)

Definition at line 183 of file geo_element.h.

◆ operator[]() [2/2]

size_type operator[] ( size_type  loc_inod) const

Definition at line 184 of file geo_element.h.

◆ node() [1/2]

size_type & node ( size_type  loc_inod)

Definition at line 185 of file geo_element.h.

◆ node() [2/2]

size_type node ( size_type  loc_inod) const

Definition at line 186 of file geo_element.h.

◆ begin() [3/4]

iterator begin ( size_type  node_subgeo_dim)

Definition at line 188 of file geo_element.h.

◆ begin() [4/4]

const_iterator begin ( size_type  node_subgeo_dim) const

Definition at line 189 of file geo_element.h.

◆ end() [3/4]

iterator end ( size_type  node_subgeo_dim)

Definition at line 190 of file geo_element.h.

◆ end() [4/4]

const_iterator end ( size_type  node_subgeo_dim) const

Definition at line 191 of file geo_element.h.

◆ edge_indirect() [1/4]

const geo_element_indirect & edge_indirect ( size_type  i) const

Definition at line 193 of file geo_element.h.

◆ face_indirect() [1/4]

const geo_element_indirect & face_indirect ( size_type  i) const

Definition at line 197 of file geo_element.h.

◆ edge_indirect() [2/4]

geo_element_indirect & edge_indirect ( size_type  i)

Definition at line 201 of file geo_element.h.

◆ face_indirect() [2/4]

geo_element_indirect & face_indirect ( size_type  i)

Definition at line 205 of file geo_element.h.

◆ edge() [1/2]

size_type edge ( size_type  i) const

Definition at line 209 of file geo_element.h.

◆ face() [1/2]

size_type face ( size_type  i) const

Definition at line 210 of file geo_element.h.

◆ n_subgeo()

size_type n_subgeo ( size_type  subgeo_dim) const

Definition at line 212 of file geo_element.h.

◆ subgeo_dis_index()

size_type subgeo_dis_index ( size_type  subgeo_dim,
size_type  i 
) const

Definition at line 214 of file geo_element.h.

◆ subgeo_n_node()

size_type subgeo_n_node ( size_type  subgeo_dim,
size_type  loc_isid 
) const

Definition at line 217 of file geo_element.h.

◆ subgeo_local_node()

size_type subgeo_local_node ( size_type  subgeo_dim,
size_type  loc_isid,
size_type  loc_jsidnod 
) const

Definition at line 219 of file geo_element.h.

◆ subgeo_size()

size_type subgeo_size ( size_type  subgeo_dim,
size_type  loc_isid 
) const

Definition at line 221 of file geo_element.h.

◆ subgeo_local_vertex()

size_type subgeo_local_vertex ( size_type  subgeo_dim,
size_type  i_subgeo,
size_type  i_subgeo_vertex 
) const

Definition at line 223 of file geo_element.h.

◆ first_inod()

size_type first_inod ( size_type  subgeo_dim) const

Definition at line 225 of file geo_element.h.

◆ last_inod()

size_type last_inod ( size_type  subgeo_dim) const

Definition at line 227 of file geo_element.h.

◆ n_edge() [1/2]

size_type n_edge ( ) const

Definition at line 230 of file geo_element.h.

◆ n_face() [1/2]

size_type n_face ( ) const

Definition at line 231 of file geo_element.h.

◆ get_side_informations() [1/2]

geo_element::orientation_type get_side_informations ( const geo_element S,
size_type loc_isid,
size_type shift 
) const

Definition at line 185 of file geo_element.cc.

◆ get_side_informations() [2/2]

void get_side_informations ( const geo_element S,
side_information_type sid 
) const

Definition at line 230 of file geo_element.cc.

◆ get_side_orientation()

geo_element::orientation_type get_side_orientation ( const geo_element S) const

Definition at line 240 of file geo_element.cc.

◆ get_orientation_and_shift() [1/3]

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

assume that vertices of *this and S match this routine is used for domain elements identification shift : such that vertex (*this)[0] == S[shift] matches orient=+1 : when (*this)[1] == S[shift+1] return true when all is ok (does not check fully that elements match)

Definition at line 114 of file geo_element.cc.

◆ get_edge_orientation()

geo_element::orientation_type get_edge_orientation ( size_type  dis_iv0,
size_type  dis_iv1 
) const

Definition at line 155 of file geo_element.cc.

◆ get_orientation_and_shift() [2/3]

void get_orientation_and_shift ( size_type  dis_iv0,
size_type  dis_iv1,
size_type  dis_iv2,
orientation_type orient,
shift_type shift 
) const

Definition at line 163 of file geo_element.cc.

◆ get_orientation_and_shift() [3/3]

void get_orientation_and_shift ( size_type  dis_iv0,
size_type  dis_iv1,
size_type  dis_iv2,
size_type  dis_iv3,
orientation_type orient,
shift_type shift 
) const

Definition at line 173 of file geo_element.cc.

◆ put()

void put ( std::ostream &  is) const

Definition at line 93 of file geo_element.cc.

◆ get()

void get ( std::istream &  os)

Definition at line 42 of file geo_element.cc.

◆ fix_edge_indirect() [1/2]

geo_element::size_type fix_edge_indirect ( const geo_element K,
size_type  loc_iedg,
size_type  loc_iedg_j,
size_type  order 
)
static

Definition at line 253 of file geo_element.cc.

◆ fix_edge_indirect() [2/2]

static size_type fix_edge_indirect ( orientation_type  orient,
size_type  order,
size_type  loc_iedg_j 
)
static

◆ loc_tri_inod2lattice()

void loc_tri_inod2lattice ( size_type  loc_tri_inod,
size_type  order,
point_basic< size_type > &  ij_lattice 
)
static

Definition at line 265 of file geo_element.cc.

◆ loc_qua_inod2lattice()

void loc_qua_inod2lattice ( size_type  loc_qua_inod,
size_type  order,
point_basic< size_type > &  ij_lattice 
)
static

Definition at line 294 of file geo_element.cc.

◆ fix_triangle_indirect() [1/2]

geo_element::size_type fix_triangle_indirect ( const geo_element K,
size_type  loc_itri,
size_type  loc_itri_j,
size_type  order 
)
static

Definition at line 282 of file geo_element.cc.

◆ fix_triangle_indirect() [2/2]

geo_element::size_type fix_triangle_indirect ( orientation_type  orient,
shift_type  shift,
size_type  order,
size_type  loc_itri_j 
)
static

Definition at line 273 of file geo_element.cc.

◆ fix_quadrangle_indirect() [1/2]

geo_element::size_type fix_quadrangle_indirect ( const geo_element K,
size_type  loc_iqua,
size_type  loc_iqua_j,
size_type  order 
)
static

Definition at line 311 of file geo_element.cc.

◆ fix_quadrangle_indirect() [2/2]

geo_element::size_type fix_quadrangle_indirect ( orientation_type  orient,
shift_type  shift,
size_type  order,
size_type  loc_iqua_j 
)
static

Definition at line 302 of file geo_element.cc.

◆ fix_indirect()

geo_element::size_type fix_indirect ( const geo_element K,
size_type  subgeo_variant,
size_type  loc_ige,
size_type  loc_comp_idof_on_subgeo,
size_type  order 
)
static

Definition at line 320 of file geo_element.cc.

◆ _edge_offset()

static size_type _edge_offset ( variant_type  variant,
size_type  order 
)
static

Definition at line 324 of file geo_element.h.

◆ _face_offset()

static size_type _face_offset ( variant_type  variant,
size_type  order 
)
static

Definition at line 325 of file geo_element.h.

◆ _node_offset()

static size_type _node_offset ( variant_type  variant,
size_type  order 
)
static

Definition at line 326 of file geo_element.h.

◆ _data_size() [1/3]

static size_type _data_size ( variant_type  variant,
size_type  order 
)
static

Definition at line 327 of file geo_element.h.

◆ _data_size() [2/3]

static size_type _data_size ( const parameter_type p)
static

Definition at line 328 of file geo_element.h.

◆ _data_size() [3/3]

size_type _data_size ( ) const

Definition at line 330 of file geo_element.h.

◆ _data_begin() [1/2]

virtual iterator _data_begin ( )
pure virtual

◆ _data_end() [1/2]

virtual iterator _data_end ( )
pure virtual

◆ _data_begin() [2/2]

virtual const_iterator _data_begin ( ) const
pure virtual

◆ _data_end() [2/2]

virtual const_iterator _data_end ( ) const
pure virtual

◆ serialize()

template<class Archive >
void serialize ( Archive &  ar,
const unsigned int  version 
)

Definition at line 338 of file geo_element.h.

◆ setname() [1/2]

void setname ( char  name)

Definition at line 89 of file field2gmsh_pos.cc.

◆ name() [2/3]

char name ( ) const

Definition at line 90 of file field2gmsh_pos.cc.

◆ variant() [2/3]

size_t variant ( ) const

Definition at line 91 of file field2gmsh_pos.cc.

◆ dimension() [2/3]

size_t dimension ( ) const

Definition at line 92 of file field2gmsh_pos.cc.

◆ n_vertex() [1/2]

size_t n_vertex ( ) const

Definition at line 93 of file field2gmsh_pos.cc.

◆ size() [2/2]

size_t size ( ) const

Definition at line 94 of file field2gmsh_pos.cc.

◆ setname() [2/2]

void setname ( char  name)

Definition at line 229 of file msh2geo.cc.

◆ setorder()

void setorder ( size_t  order)

Definition at line 230 of file msh2geo.cc.

◆ setindex()

void setindex ( size_t  index)

Definition at line 231 of file msh2geo.cc.

◆ setgmshtype()

void setgmshtype ( size_t  gmshtype)

Definition at line 232 of file msh2geo.cc.

◆ edge_indirect() [3/4]

geo_element_indirect & edge_indirect ( size_t  i)

Definition at line 233 of file msh2geo.cc.

◆ face_indirect() [3/4]

geo_element_indirect & face_indirect ( size_t  i)

Definition at line 234 of file msh2geo.cc.

◆ name() [3/3]

char name ( ) const

Definition at line 235 of file msh2geo.cc.

◆ order() [2/2]

size_t order ( ) const

Definition at line 236 of file msh2geo.cc.

◆ index()

size_t index ( ) const

Definition at line 237 of file msh2geo.cc.

◆ gmshtype()

size_t gmshtype ( ) const

Definition at line 238 of file msh2geo.cc.

◆ variant() [3/3]

size_t variant ( ) const

Definition at line 239 of file msh2geo.cc.

◆ dimension() [3/3]

size_t dimension ( ) const

Definition at line 240 of file msh2geo.cc.

◆ n_vertex() [2/2]

size_t n_vertex ( ) const

Definition at line 241 of file msh2geo.cc.

◆ edge_indirect() [4/4]

const geo_element_indirect & edge_indirect ( size_t  i) const

Definition at line 242 of file msh2geo.cc.

◆ face_indirect() [4/4]

const geo_element_indirect & face_indirect ( size_t  i) const

Definition at line 243 of file msh2geo.cc.

◆ n_edge() [2/2]

size_t n_edge ( ) const

Definition at line 244 of file msh2geo.cc.

◆ edge() [2/2]

size_t edge ( size_t  i) const

Definition at line 245 of file msh2geo.cc.

◆ edge_local_vertex()

size_t edge_local_vertex ( size_t  iedg,
size_t  edg_iv 
) const

Definition at line 263 of file msh2geo.cc.

◆ face() [2/2]

size_t face ( size_t  i) const

Definition at line 247 of file msh2geo.cc.

◆ n_face() [2/2]

size_t n_face ( ) const

Definition at line 248 of file msh2geo.cc.

◆ face_n_vertex()

size_t face_n_vertex ( size_t  loc_ifac) const

Definition at line 288 of file msh2geo.cc.

◆ face_local_vertex()

size_t face_local_vertex ( size_t  iedg,
size_t  edg_iv 
) const

Definition at line 276 of file msh2geo.cc.

Member Data Documentation

◆ _variant

size_t _variant
protected

Definition at line 97 of file field2gmsh_pos.cc.

◆ _name

char _name
protected

Definition at line 255 of file msh2geo.cc.

◆ _order

size_t _order
protected

Definition at line 256 of file msh2geo.cc.

◆ _index

size_t _index
protected

Definition at line 257 of file msh2geo.cc.

◆ _gmshtype

size_t _gmshtype
protected

Definition at line 258 of file msh2geo.cc.

◆ _edge

array<geo_element_indirect,12> _edge
protected

Definition at line 259 of file msh2geo.cc.

◆ _face

array<geo_element_indirect,6> _face
protected

Definition at line 260 of file msh2geo.cc.


The documentation for this class was generated from the following files: