Rheolef  7.1
an efficient C++ finite element environment
geo_size.h
Go to the documentation of this file.
1 #ifndef _RHEOLEF_GEO_SIZE_H
2 #define _RHEOLEF_GEO_SIZE_H
3 
24 #include "rheolef/distributor.h"
25 #include "rheolef/reference_element.h"
26 
27 namespace rheolef {
28 
29 struct geo_size {
30 
31 // typedefs:
32 
34 
35 // allocator:
36 
37  geo_size();
38 
39 // accessors:
40 
42 
43 // utilities:
44 
45  // compute variant from dis_ige:
47 
48  // compute dis_igev from dis_ige & variant:
52 
53  // compute dis_igev from dis_ige
55 
56  // dis_inod 2 dis_iv converter, for high-order meshes, when some nodes are not vertices
58  size_type dis_iv2dis_inod (size_type dis_iv) const;
59 
60 // data:
61 
63  distributor ownership_by_dimension [4]; // dist. by geo_element dimension: 0,1,2,3
65  distributor node_ownership; // node dist. differs from vertex one when geo order > 1
66  distributor first_by_variant [reference_element::max_variant]; // cumul by type: (t,q), (T,P,H)...
67 
68 protected:
70 };
71 // default cstor with initializers (-Weffc++)
72 inline
74 : _map_dimension(0),
75  ownership_by_dimension(),
76  ownership_by_variant(),
77  node_ownership(),
78  first_by_variant()
79 {
80 }
81 
82 } // namespace rheolef
83 #endif // _RHEOLEF_GEO_ELEMENT_H
rheolef::geo_size::dis_inod2dis_iv
size_type dis_inod2dis_iv(size_type dis_inod) const
Definition: geo_size.cc:110
rheolef::geo_size
Definition: geo_size.h:29
rheolef::geo_size::_dis_ige2dis_igev
size_type _dis_ige2dis_igev(size_type map_dim, size_type variant, size_type dis_ige) const
Definition: geo_size.cc:55
rheolef::geo_size::first_by_variant
distributor first_by_variant[reference_element::max_variant]
Definition: geo_size.h:66
rheolef::distributor
see the distributor page for the full documentation
Definition: distributor.h:62
rheolef::geo_size::dis_iv2dis_inod
size_type dis_iv2dis_inod(size_type dis_iv) const
Definition: geo_size.cc:122
mkgeo_ball.variant
int variant
Definition: mkgeo_ball.sh:149
rheolef::geo_size::node_ownership
distributor node_ownership
Definition: geo_size.h:65
rheolef::geo_size::map_dimension
size_type map_dimension() const
Definition: geo_size.h:41
rheolef::geo_size::dis_ige2variant
size_type dis_ige2variant(size_type map_dim, size_type dis_ige) const
Definition: geo_size.cc:33
rheolef::geo_size::dis_ige2dis_igev_by_dimension
size_type dis_ige2dis_igev_by_dimension(size_type map_dim, size_type dis_ige) const
Definition: geo_size.cc:90
rheolef::geo_size::dis_ige2dis_igev
size_type dis_ige2dis_igev(size_type map_dim, size_type dis_ige) const
rheolef
This file is part of Rheolef.
Definition: compiler_eigen.h:37
rheolef::space_numbering::dis_inod
void dis_inod(const basis_basic< T > &b, const geo_size &gs, const geo_element &K, typename std::vector< size_type >::iterator dis_inod_tab)
Definition: space_numbering.cc:177
rheolef::geo_size::geo_size
geo_size()
Definition: geo_size.h:73
rheolef::geo_size::ownership_by_variant
distributor ownership_by_variant[reference_element::max_variant]
Definition: geo_size.h:64
rheolef::reference_element::max_variant
static const variant_type max_variant
Definition: reference_element.h:82
size_type
field::size_type size_type
Definition: branch.cc:425
rheolef::geo_size::dis_ige2dis_igev_by_variant
size_type dis_ige2dis_igev_by_variant(size_type variant, size_type dis_ige) const
Definition: geo_size.cc:98
mkgeo_ball.map_dim
map_dim
Definition: mkgeo_ball.sh:337
rheolef::geo_size::size_type
distributor::size_type size_type
Definition: geo_size.h:33
rheolef::geo_size::ownership_by_dimension
distributor ownership_by_dimension[4]
Definition: geo_size.h:63
rheolef::geo_size::_map_dimension
size_type _map_dimension
Definition: geo_size.h:62
rheolef::distributor::size_type
std::allocator< int >::size_type size_type
Definition: distributor.h:67