Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
Référence de la classe Arcane::mesh::FaceUniqueIdBuilder2::NarrowCellFaceInfo

Stocke les infos sur une face d'une maille. Plus de détails...

+ Graphe de collaboration de Arcane::mesh::FaceUniqueIdBuilder2::NarrowCellFaceInfo:

Fonctions membres publiques

bool isMaxValue () const
 
void setMaxValue ()
 
void setValue (Int64 cell_uid, Int32 _rank, Int32 face_local_index)
 
Int64 cellUid () const
 
Int32 rank () const
 
Int32 faceLocalIndex () const
 
bool isValid () const
 

Attributs publics statiques

static const Int64 BITS_CELL_UID = 39
 
static const Int64 BITS_RANK = 20
 
static const Int64 BITS_INDEX = 5
 
static const Int64 ONE_INT64 = 1
 
static const Int64 MASK_CELL_UID = (ONE_INT64 << BITS_CELL_UID) - 1
 
static const Int64 MASK_RANK = ((ONE_INT64 << BITS_RANK) - 1) << BITS_CELL_UID
 
static const Int64 MASK_INDEX = ((ONE_INT64 << BITS_INDEX) - 1) << (BITS_CELL_UID+BITS_RANK)
 

Attributs privés

Int64 m_value = -1
 

Description détaillée

Stocke les infos sur une face d'une maille.

Cette structure est utilisée lors du tri des faces. Comme le tri est parallèle et afin de limiter la taille des messages envoyés, il faut que la taille de cette structure soit la plus petite possible. Pour cela, on suppose que les valeurs max ne sont pas atteignables. Normalement, on a:

  • cell_uid -> Int64
  • rank -> Int32
  • local_face_index -> Int32 On suppose en pratique les limites suivantes:
  • cell_uid -> 39 bits soit 250 milliards de mailles
  • rank -> 20 bits soit 1048576 PE
  • local_face_index -> 5 bits soit 32 faces par maille

Logiquement, ces limites ne seront pas atteintes avant un moment (on est en 2012). Et lorsque ce sera le cas, il suffira d'utiliser la structure WideCellFaceInfo en changeant le typedef qui va bien.

On utilise donc un seul Int64, avec les 39 premiers bits pour le uid, les 20 suivantes pour le rang et les 5 derniers pour le local_index. A noter que pour éviter des problèmes de signe, on stocke la valeur donnée plus 1.

Définition à la ligne 139 du fichier FaceUniqueIdBuilder2.cc.

Documentation des constructeurs et destructeur

◆ NarrowCellFaceInfo()

Arcane::mesh::FaceUniqueIdBuilder2::NarrowCellFaceInfo::NarrowCellFaceInfo ( )
inline

Définition à la ligne 151 du fichier FaceUniqueIdBuilder2.cc.

Documentation des fonctions membres

◆ cellUid()

Int64 Arcane::mesh::FaceUniqueIdBuilder2::NarrowCellFaceInfo::cellUid ( ) const
inline

Définition à la ligne 184 du fichier FaceUniqueIdBuilder2.cc.

◆ faceLocalIndex()

Int32 Arcane::mesh::FaceUniqueIdBuilder2::NarrowCellFaceInfo::faceLocalIndex ( ) const
inline

Définition à la ligne 186 du fichier FaceUniqueIdBuilder2.cc.

◆ isMaxValue()

bool Arcane::mesh::FaceUniqueIdBuilder2::NarrowCellFaceInfo::isMaxValue ( ) const
inline

Définition à la ligne 157 du fichier FaceUniqueIdBuilder2.cc.

◆ isValid()

bool Arcane::mesh::FaceUniqueIdBuilder2::NarrowCellFaceInfo::isValid ( ) const
inline

Définition à la ligne 188 du fichier FaceUniqueIdBuilder2.cc.

◆ rank()

Int32 Arcane::mesh::FaceUniqueIdBuilder2::NarrowCellFaceInfo::rank ( ) const
inline

Définition à la ligne 185 du fichier FaceUniqueIdBuilder2.cc.

◆ setMaxValue()

void Arcane::mesh::FaceUniqueIdBuilder2::NarrowCellFaceInfo::setMaxValue ( )
inline

Définition à la ligne 163 du fichier FaceUniqueIdBuilder2.cc.

◆ setValue()

void Arcane::mesh::FaceUniqueIdBuilder2::NarrowCellFaceInfo::setValue ( Int64  cell_uid,
Int32  _rank,
Int32  face_local_index 
)
inline

Définition à la ligne 169 du fichier FaceUniqueIdBuilder2.cc.

Documentation des données membres

◆ BITS_CELL_UID

const Int64 Arcane::mesh::FaceUniqueIdBuilder2::NarrowCellFaceInfo::BITS_CELL_UID = 39
static

Définition à la ligne 142 du fichier FaceUniqueIdBuilder2.cc.

◆ BITS_INDEX

const Int64 Arcane::mesh::FaceUniqueIdBuilder2::NarrowCellFaceInfo::BITS_INDEX = 5
static

Définition à la ligne 144 du fichier FaceUniqueIdBuilder2.cc.

◆ BITS_RANK

const Int64 Arcane::mesh::FaceUniqueIdBuilder2::NarrowCellFaceInfo::BITS_RANK = 20
static

Définition à la ligne 143 du fichier FaceUniqueIdBuilder2.cc.

◆ m_value

Int64 Arcane::mesh::FaceUniqueIdBuilder2::NarrowCellFaceInfo::m_value = -1
private

Définition à la ligne 192 du fichier FaceUniqueIdBuilder2.cc.

◆ MASK_CELL_UID

const Int64 Arcane::mesh::FaceUniqueIdBuilder2::NarrowCellFaceInfo::MASK_CELL_UID = (ONE_INT64 << BITS_CELL_UID) - 1
static

Définition à la ligne 146 du fichier FaceUniqueIdBuilder2.cc.

◆ MASK_INDEX

const Int64 Arcane::mesh::FaceUniqueIdBuilder2::NarrowCellFaceInfo::MASK_INDEX = ((ONE_INT64 << BITS_INDEX) - 1) << (BITS_CELL_UID+BITS_RANK)
static

Définition à la ligne 148 du fichier FaceUniqueIdBuilder2.cc.

◆ MASK_RANK

const Int64 Arcane::mesh::FaceUniqueIdBuilder2::NarrowCellFaceInfo::MASK_RANK = ((ONE_INT64 << BITS_RANK) - 1) << BITS_CELL_UID
static

Définition à la ligne 147 du fichier FaceUniqueIdBuilder2.cc.

◆ ONE_INT64

const Int64 Arcane::mesh::FaceUniqueIdBuilder2::NarrowCellFaceInfo::ONE_INT64 = 1
static

Définition à la ligne 145 du fichier FaceUniqueIdBuilder2.cc.


La documentation de cette classe a été générée à partir du fichier suivant :