12#ifndef ARCANE_CORE_INTERNAL_ITEMGROUPINTERNAL_H
13#define ARCANE_CORE_INTERNAL_ITEMGROUPINTERNAL_H
17#include "arcane/utils/MemoryUtils.h"
20#include "arcane/core/VariableTypes.h"
21#include "arcane/core/internal/ItemGroupImplInternal.h"
69 Integer maxLocalId()
const;
79 bool isContigous()
const {
return m_is_contigous; }
82 void updateTimestamp()
85 m_is_contigous =
false;
88 void setNeedRecompute()
104 bool isOwn()
const {
return m_is_own; }
105 Int32 nbItem()
const {
return itemsLocalId().
size(); }
179 void notifyInvalidateObservers();
181 void resetSubGroups();
189 UniqueArray<Int32> m_local_buffer{ MemoryUtils::getAllocatorForMostlyReadOnlyData() };
192 bool m_is_contigous =
false;
194 bool m_is_print_check_simd_padding =
false;
195 bool m_is_print_apply_simd_padding =
false;
196 bool m_is_print_stack_apply_simd_padding =
false;
226 bool m_is_debug_apply_operation =
false;
Déclarations des types généraux de Arcane.
Tableau d'items de types quelconques.
Interface d'une famille d'entités.
API interne à Arcane de ItemGroupImpl.
Implémentation d'un groupe d'entités de maillage.
Implémentation de la classe ItemGroupImpl.
ItemGroupImpl * m_node_group
Groupe des noeuds.
std::map< Integer, ItemGroupImpl * > m_own_level_cell_group
Groupe des mailles propres de niveau.
String m_full_name
Nom complet du groupe.
String m_variable_name
Groupe parent (groupe null si aucun)
IMesh * m_mesh
Gestionnare de groupe associé
UniqueArray< ItemGroupImpl * > m_children_by_type
Liste des fils de ce groupe par type d'entité
SharedPtrT< GroupIndexTable > m_group_index_table
Table de hachage du local id des items vers leur position en enumeration.
ItemGroupImpl * m_interface_group
Items on the boundary of two subdomains.
UniqueArray< UniqueArray< Int32 > > m_children_by_type_ids
Liste des localId() par type d'entité.
bool m_is_check_simd_padding
Vrai si les localIds sont consécutifs.
bool m_need_invalidate_on_recompute
Vrai si l'on doit activer les invalidate observers en cas de recalcul.
void checkIsContigous()
Vérifie que les localIds() sont contigüs.
bool m_need_recompute
Vrai si le groupe doit être recalculé
eItemKind m_kind
Genre de entités du groupe.
ItemGroupImpl * m_inner_face_group
Groupe des faces internes.
Int64 m_timestamp
Temps de la derniere modification.
bool m_use_v2_for_apply_operation
Gestion pour applyOperation() Version 2.
std::map< String, AutoRefT< ItemGroupImpl > > m_sub_groups
Ensemble de tous les sous-groupes.
bool m_transaction_mode
Vrai si le groupe est en mode de transaction directe.
bool m_is_own
true si groupe local.
Ref< IVariableSynchronizer > m_synchronizer
Synchronizer du groupe.
void checkUpdateSimdPadding()
Remplit les derniers éléments du groupe pour avoir un vecteur SIMD complet.
bool m_observer_need_info
Synthése de besoin de observers en informations de transition.
void applySimdPadding()
Applique le padding pour la vectorisation.
ItemGroupImpl * m_ghost_group
Items not owned by the subdomain.
bool m_is_local_to_sub_domain
Vrai si le groupe est local au sous-domaine.
bool m_is_all_items
Indique s'il s'agit du groupe de toutes les entités.
ItemGroupImpl * m_own_group
Items owned by the subdomain.
ItemTypeId m_unique_children_type
Indique le type des entités du groupe.
IItemFamily * m_item_family
Famille associée.
ItemGroupImpl * m_edge_group
Groupe des arêtes.
ItemGroupImpl * m_face_group
Groupe des faces.
std::map< Integer, ItemGroupImpl * > m_level_cell_group
Groupe des mailles de niveau.
Int64 m_simd_timestamp
Temps de la derniere modification pour le calcul des infos SIMD.
Array< Int32 > * m_items_local_id
Liste des numéros locaux des entités de ce groupe.
std::map< const void *, IItemGroupObserver * > m_observers
localids -> index (UNIQUEMENT ALLITEMS)
Int64 m_children_by_type_ids_computed_timestamp
Timestamp indiquant quand a été calculé la liste des ids des enfants.
IFunctor * m_compute_functor
Fonction de calcul du groupe.
ItemGroupImpl * m_outer_face_group
bool m_is_constituent_group
Indique si le groupe est associé à un constituent (IMeshComponent)
ItemGroupImpl * m_inner_active_face_group
Groupe des faces internes actives.
ItemGroupImpl * m_own_active_cell_group
Groupe des mailles propres actives.
bool m_is_null
true si le groupe est nul
ItemGroupImpl * m_cell_group
Groupe des mailles.
ItemGroupImpl * m_active_cell_group
AMR.
ItemGroupImpl * m_own_active_face_group
Groupe des faces actives propres.
ItemGroupImpl * m_active_face_group
Groupe des faces actives.
ItemGroupImpl * m_outer_active_face_group
Groupe des faces externes actives.
String m_name
Nom du groupe.
Vue sur une liste pour obtenir des informations sur les entités.
Type d'une entité (Item).
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Vue modifiable d'un tableau d'un type T.
constexpr Integer size() const noexcept
Retourne la taille du tableau.
Vue constante d'un tableau de type T.
Chaîne de caractères unicode.
Vecteur 1D de données avec sémantique par valeur (style STL).
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
eItemKind
Genre d'entité de maillage.
@ IK_Unknown
Entité de maillage de genre inconnu ou non initialisé