Loading...
Searching...
No Matches
geo_size.h
Go to the documentation of this file.
#ifndef _RHEOLEF_GEO_SIZE_H
#define _RHEOLEF_GEO_SIZE_H
#include "rheolef/distributor.h"
#include "rheolef/reference_element.h"
namespace rheolef {
struct geo_size {
// typedefs:
typedef distributor::size_type size_type;
// allocator:
geo_size();
// accessors:
size_type map_dimension() const { return _map_dimension; }
// utilities:
// compute variant from dis_ige:
size_type dis_ige2variant (size_type map_dim, size_type dis_ige) const;
// compute dis_igev from dis_ige & variant:
size_type dis_ige2dis_igev_by_variant (size_type variant, size_type dis_ige) const;
size_type dis_ige2dis_igev_by_dimension (size_type map_dim, size_type dis_ige) const;
size_type dis_ige2dis_igev_by_dimension (size_type map_dim, size_type dis_ige, size_type& variant) const;
// compute dis_igev from dis_ige
size_type dis_ige2dis_igev ( size_type map_dim, size_type dis_ige) const;
// dis_inod 2 dis_iv converter, for high-order meshes, when some nodes are not vertices
size_type dis_inod2dis_iv (size_type dis_inod) const;
size_type dis_iv2dis_inod (size_type dis_iv) const;
// data:
size_type _map_dimension;
distributor ownership_by_dimension [4]; // dist. by geo_element dimension: 0,1,2,3
distributor ownership_by_variant [reference_element::max_variant]; // by type: t,q...
distributor node_ownership; // node dist. differs from vertex one when geo order > 1
distributor first_by_variant [reference_element::max_variant]; // cumul by type: (t,q), (T,P,H)...
protected:
size_type _dis_ige2dis_igev (size_type map_dim, size_type variant, size_type dis_ige) const;
};
// default cstor with initializers (-Weffc++)
inline
geo_size::geo_size()
: _map_dimension(0),
ownership_by_dimension(),
ownership_by_variant(),
node_ownership(),
first_by_variant()
{
}
} // namespace rheolef
#endif // _RHEOLEF_GEO_ELEMENT_H
size_type
field::size_type size_type
Definition branch.cc:430
rheolef::distributor
see the distributor page for the full documentation
Definition distributor.h:69
rheolef::distributor::size_type
std::allocator< int >::size_type size_type
Definition distributor.h:74
rheolef::reference_element::max_variant
static const variant_type max_variant
Definition reference_element.h:82
rheolef
This file is part of Rheolef.
Definition compiler_eigen.h:39
rheolef::geo_size
Definition geo_size.h:29
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
rheolef::geo_size::ownership_by_variant
distributor ownership_by_variant[reference_element::max_variant]
Definition geo_size.h:64
rheolef::geo_size::dis_iv2dis_inod
size_type dis_iv2dis_inod(size_type dis_iv) const
Definition geo_size.cc:122
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
size_type dis_ige2dis_igev(size_type map_dim, size_type dis_ige) const
rheolef::geo_size::map_dimension
size_type map_dimension() const
Definition geo_size.h:41
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::node_ownership
distributor node_ownership
Definition geo_size.h:65
rheolef::geo_size::dis_inod2dis_iv
size_type dis_inod2dis_iv(size_type dis_inod) const
Definition geo_size.cc:110
rheolef::geo_size::_map_dimension
size_type _map_dimension
Definition geo_size.h:62
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::_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::geo_size::geo_size
geo_size()
Definition geo_size.h:73