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
23 
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
field::size_type size_type
Definition: branch.cc:425
see the distributor page for the full documentation
Definition: distributor.h:62
std::allocator< int >::size_type size_type
Definition: distributor.h:67
static const variant_type max_variant
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)
This file is part of Rheolef.
size_type dis_ige2dis_igev_by_variant(size_type variant, size_type dis_ige) const
Definition: geo_size.cc:98
distributor ownership_by_variant[reference_element::max_variant]
Definition: geo_size.h:64
size_type dis_iv2dis_inod(size_type dis_iv) const
Definition: geo_size.cc:122
size_type dis_ige2variant(size_type map_dim, size_type dis_ige) const
Definition: geo_size.cc:33
size_type dis_ige2dis_igev(size_type map_dim, size_type dis_ige) const
size_type map_dimension() const
Definition: geo_size.h:41
size_type dis_ige2dis_igev_by_dimension(size_type map_dim, size_type dis_ige) const
Definition: geo_size.cc:90
distributor node_ownership
Definition: geo_size.h:65
size_type dis_inod2dis_iv(size_type dis_inod) const
Definition: geo_size.cc:110
size_type _map_dimension
Definition: geo_size.h:62
distributor::size_type size_type
Definition: geo_size.h:33
distributor ownership_by_dimension[4]
Definition: geo_size.h:63
size_type _dis_ige2dis_igev(size_type map_dim, size_type variant, size_type dis_ige) const
Definition: geo_size.cc:55
distributor first_by_variant[reference_element::max_variant]
Definition: geo_size.h:66