Arcane  4.2.3.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
IItemFamily.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2026 CEA (www.cea.fr) IFPEN (www.ifpenergiesnouvelles.com)
4// See the top-level COPYRIGHT file for details.
5// SPDX-License-Identifier: Apache-2.0
6//-----------------------------------------------------------------------------
7/*---------------------------------------------------------------------------*/
8/* IItemFamily.h (C) 2000-2025 */
9/* */
10/* Interface d'une famille d'entités. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_CORE_IITEMFAMILY_H
13#define ARCANE_CORE_IITEMFAMILY_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
21
22/*---------------------------------------------------------------------------*/
23/*---------------------------------------------------------------------------*/
24
25namespace Arcane
26{
27
28/*---------------------------------------------------------------------------*/
29/*---------------------------------------------------------------------------*/
85class ARCANE_CORE_EXPORT IItemFamily
86{
87 friend mesh::DynamicMesh;
88 friend mesh::ItemFamily;
89
90 public:
91
92 virtual ~IItemFamily() {} //<! Libère les ressources
93
94 public:
95
96 virtual void build() =0;
97
98 public:
99
101 virtual String name() const =0;
102
104 virtual String fullName() const =0;
105
107 virtual eItemKind itemKind() const =0;
108
110 virtual Integer nbItem() const =0;
111
117 virtual Int32 maxLocalId() const =0;
118
119 public:
120
121 // TODO: a supprimer. Utiliser itemInfoListView à la place
123 virtual ItemInternalArrayView itemsInternal() =0;
124
125 public:
126
129
136 virtual IItemFamily* parentFamily() const = 0;
137
147 virtual void setParentFamily(IItemFamily* parent) = 0;
148
150 virtual Integer parentFamilyDepth() const = 0;
151
160 virtual void addChildFamily(IItemFamily* family) = 0;
161
164
172
174 virtual void checkValid() =0;
175
180 virtual void checkValidConnectivity() =0;
181
192 virtual void checkUniqueIds(Int64ConstArrayView unique_ids) =0;
193
194 public:
195
206
210 virtual ItemVectorView view() =0;
211
219 virtual void removeItems2(mesh::ItemDataList& item_data_list) =0;
220
234
242 ARCANE_DEPRECATED_REASON("Use MeshUtils::findOneItem() instead")
243 virtual ItemInternal* findOneItem(Int64 unique_id) =0;
244
251 virtual void endUpdate() =0;
252
266 virtual void partialEndUpdate() =0;
267
277 virtual void partialEndUpdateGroup(const ItemGroup& group) =0;
278
288 virtual void partialEndUpdateVariable(IVariable* variable) =0;
289
291 virtual void notifyItemsOwnerChanged() =0;
292
294 virtual void notifyItemsUniqueIdChanged() =0;
295
296 public:
297
300
303
304 public:
305
319 virtual void setHasUniqueIdMap(bool v) =0;
320
322 virtual bool hasUniqueIdMap() const =0;
323
324 public:
325
343 Int64ConstArrayView unique_ids,
344 bool do_fatal=true) const =0;
345
361 ConstArrayView<ItemUniqueId> unique_ids,
362 bool do_fatal=true) const =0;
363
364 public:
365
376 virtual void setItemSortFunction(IItemInternalSortFunction* sort_function) =0;
377
386
387 public:
388
390 ARCCORE_DEPRECATED_2020("Do not use this method. Try to get 'ISubDomain' from another way")
391 virtual ISubDomain* subDomain() const =0;
392
394 virtual ITraceMng* traceMng() const =0;
395
397 virtual IMesh* mesh() const =0;
398
400 virtual IParallelMng* parallelMng() const =0;
401
402 public:
403
405 virtual ItemGroup allItems() const =0;
406
408 virtual ItemGroupCollection groups() const =0;
409
410 public:
411
413
414
419 virtual ItemGroup findGroup(const String& name) const =0;
420
430 virtual ItemGroup findGroup(const String& name,bool create_if_needed) =0;
431
432
443 virtual ItemGroup createGroup(const String& name,Int32ConstArrayView local_ids,bool do_override=false) =0;
444
453 virtual ItemGroup createGroup(const String& name) =0;
454
458 virtual void destroyGroups() =0;
459
464 virtual ItemGroup createGroup(const String& name,const ItemGroup& parent,bool do_override=false) =0;
465
467
474 virtual IVariable* findVariable(const String& name,bool throw_exception=false) =0;
475
480 virtual void usedVariables(VariableCollection collection) =0;
481
482 public:
483
485 virtual void prepareForDump() =0;
486
488 virtual void readFromDump() =0;
489
497 virtual void copyItemsValues(Int32ConstArrayView source, Int32ConstArrayView destination) =0;
498
508 virtual void copyItemsMeanValues(Int32ConstArrayView first_source,
509 Int32ConstArrayView second_source,
510 Int32ConstArrayView destination) = 0;
511
518 virtual void clearItems() =0;
519
521 virtual void compactItems(bool do_sort) =0;
522
523 public:
524
534 virtual void computeSynchronizeInfos() =0;
535
537 virtual void getCommunicatingSubDomains(Int32Array& sub_domains) const =0;
538
540
541
544
551 virtual void synchronize(VariableCollection variables) =0;
552
553 // TODO: à rendre virtuelle pure (décembre 2024)
564 virtual void synchronize(VariableCollection variables, Int32ConstArrayView local_ids);
566
576 virtual void reduceFromGhostItems(IVariable* v,IDataOperation* operation) =0;
586 virtual void reduceFromGhostItems(IVariable* v,Parallel::eReduceType operation) =0;
587
589 ARCANE_DEPRECATED_REASON("Y2024: use findAdjacency() instead")
591 const ItemGroup& sub_group,
592 eItemKind link_kind,
593 Integer nb_layer) = 0;
608 virtual ItemPairGroup findAdjacencyItems(const ItemGroup& group,
609 const ItemGroup& sub_group,
610 eItemKind link_kind,
611 Integer nb_layer);
612
621
629 virtual IDoFFamily* toDoFFamily() { return nullptr; }
630
638 virtual void internalRemoveItems(Int32ConstArrayView local_ids,bool keep_ghost=false) =0;
639
640
652 virtual void addSourceConnectivity(IItemConnectivity* connectivity) =0;
653 virtual void addTargetConnectivity(IItemConnectivity* connectivity) =0;
654 virtual void removeSourceConnectivity(IItemConnectivity* connectivity) =0;
655 virtual void removeTargetConnectivity(IItemConnectivity* connectivity) =0;
656 virtual void setConnectivityMng(IItemConnectivityMng* connectivity_mng) =0;
658
673 virtual void addGhostItems(Int64ConstArrayView unique_ids, Int32ArrayView items,
674 Int32ConstArrayView owners) =0;
675
676 public:
677
680
682 virtual Properties* properties() =0;
683
684 public:
685
688
689 public:
690
700 virtual void experimentalChangeUniqueId(ItemLocalId local_id,ItemUniqueId unique_id) =0;
701
702 public:
703
709 virtual void resizeVariables(bool force_resize) = 0;
710
711 public:
712
715
716 public:
717
720};
721
722/*---------------------------------------------------------------------------*/
723/*---------------------------------------------------------------------------*/
724
725} // End namespace Arcane
726
727/*---------------------------------------------------------------------------*/
728/*---------------------------------------------------------------------------*/
729
730#endif
Déclarations des types généraux de Arcane.
Déclarations de types sur les entités.
Fichier contenant les déclarations concernant le modèle de programmation par échange de message.
Vue constante d'un tableau de type T.
Classe gérant les observateurs associés à un évènement.
Interface d'une opération sur une donnée.
Interface d'une famille de DoF.
Definition IDoFFamily.h:33
Interface des informations sur la connectivité par type d'entité.
Interface pour gérer une connectivité.
Partie interne de IItemFamily.
Interface des politiques d'une famille d'entités.
Interface de modification de la topologie des entités d'une famille.
Interface d'une famille d'entités.
Definition IItemFamily.h:86
virtual void removeNeedRemoveMarkedItems()=0
Supprime des entités et met a jour les connectivites.
virtual void partialEndUpdate()=0
Mise à jour partielle.
virtual void usedVariables(VariableCollection collection)=0
Ajoute à la collection collection la liste des variables utilisés de cette famille.
virtual IItemConnectivityInfo * localConnectivityInfos() const =0
Informations sur la connectivité locale au sous-domaine pour à cette famille.
virtual ISubDomain * subDomain() const =0
Sous-domaine associé
virtual ItemGroup findGroup(const String &name) const =0
Recherche un groupe.
virtual IVariableSynchronizer * allItemsSynchronizer()=0
Synchroniseur sur toutes les entités de la famille.
virtual Integer parentFamilyDepth() const =0
Donne la profondeur d'imbrication du maillage courant.
virtual EventObservableView< const ItemFamilyItemListChangedEventArgs & > itemListChangedEvent()=0
Evènement pour l'ajout et la suppression d'entité
virtual IParticleFamily * toParticleFamily()=0
Retourne l'interface de la famille de particule de cette famille.
virtual void notifyItemsUniqueIdChanged()=0
Notifie que les numéros uniques des entités ont été modifiées.
virtual IItemFamilyTopologyModifier * _topologyModifier()=0
Interface du modificateur de topologie.
virtual void checkUniqueIds(Int64ConstArrayView unique_ids)=0
Vérifie que les identifiants unique_ids sont bien uniques pour tous les sous-domaines.
virtual IItemFamilyPolicyMng * policyMng()=0
Interface des comportements/politiques associées à cette famille.
virtual void readFromDump()=0
Relit les données à partir d'une protection.
virtual ItemGroupCollection groups() const =0
Liste des groupes de cette famille.
virtual void setParentFamily(IItemFamily *parent)=0
Positionne l'IItemFamily parent.
virtual ItemGroup allItems() const =0
Groupe de toutes les entités.
virtual void setHasUniqueIdMap(bool v)=0
Indique si la famille possède une table de conversion uniqueId vers localId.
virtual void copyItemsValues(Int32ConstArrayView source, Int32ConstArrayView destination)=0
virtual void partialEndUpdateVariable(IVariable *variable)=0
Met à jour une variable.
virtual ItemInternal * findOneItem(Int64 unique_id)=0
Entité de numéro unique unique_id.
virtual ItemInternalArrayView itemsInternal()=0
Tableau interne des entités.
virtual void prepareForDump()=0
Prépare les données pour une protection.
virtual void synchronize(VariableCollection variables)=0
Synchronise les variables variables.
virtual ItemGroup createGroup(const String &name, Int32ConstArrayView local_ids, bool do_override=false)=0
Créé un groupe d'entités de nom name contenant les entités local_ids.
virtual Int32 maxLocalId() const =0
virtual void computeSynchronizeInfos()=0
Construit les structures nécessaires à la synchronisation.
virtual IItemConnectivityInfo * globalConnectivityInfos() const =0
Informations sur la connectivité globales à tous les sous-domaines.
virtual void clearItems()=0
Supprime toutes les entités de la famille.
virtual void checkValid()=0
Vérification de la validité des structures internes (interne).
virtual bool hasUniqueIdMap() const =0
Indique si la famille possède une table de conversion uniqueId vers localId.
virtual IParallelMng * parallelMng() const =0
Gestionnaire de parallélisme associé
virtual IItemFamilyCollection childFamilies()=0
Familles enfantes de cette famille.
virtual ItemPairGroup findAdjencyItems(const ItemGroup &group, const ItemGroup &sub_group, eItemKind link_kind, Integer nb_layer)=0
Cherche une liste d'adjacence.
virtual String name() const =0
Nom de la famille.
virtual ItemInfoListView itemInfoListView()=0
Vue sur la liste d'informations sur les entités.
virtual IItemFamily * parentFamily() const =0
IItemFamily parent.
virtual IItemInternalSortFunction * itemSortFunction() const =0
Fonction de tri des entités.
virtual eItemKind itemKind() const =0
Genre des entités.
virtual void checkValidConnectivity()=0
Vérification de la validité des structures internes concernant la connectivité.
virtual void copyItemsMeanValues(Int32ConstArrayView first_source, Int32ConstArrayView second_source, Int32ConstArrayView destination)=0
virtual IVariable * findVariable(const String &name, bool throw_exception=false)=0
Recherche la variable de nom name associée à cette famille.
virtual ItemPairGroup findAdjacencyItems(const ItemGroup &group, const ItemGroup &sub_group, eItemKind link_kind, Integer nb_layer)
Cherche une liste d'adjacence.
virtual ITraceMng * traceMng() const =0
Gestionnaire de trace associé
virtual String fullName() const =0
Nom complet de la famille (avec celui du maillage).
virtual void compactItems(bool do_sort)=0
Compacte les entités.
virtual IMesh * mesh() const =0
Maillage associé
virtual void notifyItemsOwnerChanged()=0
Notifie que les entités propres au sous-domaine de la famille ont été modifiées.
virtual ItemVectorView view(Int32ConstArrayView local_ids)=0
Vue sur les entités.
virtual IItemFamilyInternal * _internalApi()=0
API interne à Arcane.
virtual void addChildFamily(IItemFamily *family)=0
Ajoute d'une famile en dépendance.
virtual void itemsUniqueIdToLocalId(Int32ArrayView local_ids, Int64ConstArrayView unique_ids, bool do_fatal=true) const =0
Converti un tableau de numéros uniques en numéros locaux.
virtual void removeItems2(mesh::ItemDataList &item_data_list)=0
Supprime des entités.
virtual IDoFFamily * toDoFFamily()
Retourne l'interface de la famille de particule de cette famille.
virtual void reduceFromGhostItems(IVariable *v, IDataOperation *operation)=0
Applique une opération de réduction depuis les entités fantômes.
virtual void resizeVariables(bool force_resize)=0
Redimensionne les variables de cette famille.
virtual Properties * properties()=0
Propriétés associées à cette famille.
virtual void internalRemoveItems(Int32ConstArrayView local_ids, bool keep_ghost=false)=0
Supprime les entités donnés par local_ids.
virtual void experimentalChangeUniqueId(ItemLocalId local_id, ItemUniqueId unique_id)=0
Change le numéro unique de l'entité.
virtual Integer nbItem() const =0
Nombre d'entités.
virtual VariableItemInt32 & itemsNewOwner()=0
Variable contenant le numéro du nouveau sous-domaine propriétaire de l'entité.
virtual void getCommunicatingSubDomains(Int32Array &sub_domains) const =0
Liste des sous-domaines communiquants pour les entités.
virtual void partialEndUpdateGroup(const ItemGroup &group)=0
Met à jour un groupe.
virtual void addGhostItems(Int64ConstArrayView unique_ids, Int32ArrayView items, Int32ConstArrayView owners)=0
Alloue des entités fantômes.
virtual void setItemSortFunction(IItemInternalSortFunction *sort_function)=0
Positionne la fonction de tri des entités.
virtual void destroyGroups()=0
Supprime tous les groupes de cette famille.
virtual void endUpdate()=0
Notifie la fin de modification de la liste des entités.
virtual ItemVectorView view()=0
Vue sur toutes les entités de la famille.
Interface d'une fonction de tri des entités.
Interface du gestionnaire de parallélisme pour un sous-domaine.
Interface d'une famille de particules.
Interface du gestionnaire d'un sous-domaine.
Definition ISubDomain.h:77
Interface du gestionnaire de traces.
Interface d'un service de synchronisation de variable.
Interface d'une variable.
Definition IVariable.h:39
Groupe d'entités de maillage.
Definition ItemGroup.h:49
Vue sur une liste pour obtenir des informations sur les entités.
Structure interne d'une entité de maillage.
Index d'un Item dans une variable.
Definition ItemLocalId.h:41
Tableau de listes d'entités.
Identifiant unique d'une entité.
Vue sur un vecteur d'entités.
Liste de propriétés.
Definition Properties.h:64
Chaîne de caractères unicode.
Collection de variables.
Implémentation d'un maillage.
Definition DynamicMesh.h:98
Famille d'entités.
Definition ItemFamily.h:76
ItemVariableScalarRefT< Int32 > VariableItemInt32
Grandeur de type entier 32 bits.
eReduceType
Types des réductions supportées.
Implémentation de la concurrence.
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --
Collection< ItemGroup > ItemGroupCollection
Collection de groupes d'éléments du maillage.
std::int64_t Int64
Type entier signé sur 64 bits.
Int32 Integer
Type représentant un entier.
ConstArrayView< Int32 > Int32ConstArrayView
Equivalent C d'un tableau à une dimension d'entiers 32 bits.
Definition UtilsTypes.h:480
Collection< IItemFamily * > IItemFamilyCollection
Collection de familles d'entités.
ConstArrayView< Int64 > Int64ConstArrayView
Equivalent C d'un tableau à une dimension d'entiers 64 bits.
Definition UtilsTypes.h:478
ArrayView< Int32 > Int32ArrayView
Equivalent C d'un tableau à une dimension d'entiers 32 bits.
Definition UtilsTypes.h:451
eItemKind
Genre d'entité de maillage.
Array< Int32 > Int32Array
Tableau dynamique à une dimension d'entiers 32 bits.
Definition UtilsTypes.h:121
std::int32_t Int32
Type entier signé sur 32 bits.