Rheolef  7.2
an efficient C++ finite element environment
 
Loading...
Searching...
No Matches
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
27namespace rheolef {
28
29struct 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:
46 size_type dis_ige2variant (size_type map_dim, size_type dis_ige) const;
47
48 // compute dis_igev from dis_ige & variant:
51 size_type dis_ige2dis_igev_by_dimension (size_type map_dim, size_type dis_ige, size_type& variant) const;
52
53 // compute dis_igev from dis_ige
54 size_type dis_ige2dis_igev ( size_type map_dim, size_type dis_ige) const;
55
56 // dis_inod 2 dis_iv converter, for high-order meshes, when some nodes are not vertices
57 size_type dis_inod2dis_iv (size_type dis_inod) const;
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
68protected:
69 size_type _dis_ige2dis_igev (size_type map_dim, size_type variant, size_type dis_ige) const;
70};
71// default cstor with initializers (-Weffc++)
72inline
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:430
see the distributor page for the full documentation
Definition distributor.h:69
std::allocator< int >::size_type size_type
Definition distributor.h:74
static const variant_type max_variant
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