Arcane  v3.16.0.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-2025 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/*---------------------------------------------------------------------------*/
83class ARCANE_CORE_EXPORT IItemFamily
84{
85 friend mesh::DynamicMesh;
86 friend mesh::ItemFamily;
87
88 public:
89
90 virtual ~IItemFamily() {} //<! Libère les ressources
91
92 public:
93
94 virtual void build() =0;
95
96 public:
97
99 virtual String name() const =0;
100
102 virtual String fullName() const =0;
103
105 virtual eItemKind itemKind() const =0;
106
108 virtual Integer nbItem() const =0;
109
115 virtual Int32 maxLocalId() const =0;
116
117 public:
118
119 // TODO: a supprimer. Utiliser itemInfoListView à la place
121 virtual ItemInternalArrayView itemsInternal() =0;
122
123 public:
124
127
134 virtual IItemFamily* parentFamily() const = 0;
135
145 virtual void setParentFamily(IItemFamily* parent) = 0;
146
148 virtual Integer parentFamilyDepth() const = 0;
149
158 virtual void addChildFamily(IItemFamily* family) = 0;
159
162
170
172 virtual void checkValid() =0;
173
178 virtual void checkValidConnectivity() =0;
179
190 virtual void checkUniqueIds(Int64ConstArrayView unique_ids) =0;
191
192 public:
193
204
208 virtual ItemVectorView view() =0;
209
217 virtual void removeItems2(mesh::ItemDataList& item_data_list) =0;
218
232
240 ARCANE_DEPRECATED_REASON("Use MeshUtils::findOneItem() instead")
241 virtual ItemInternal* findOneItem(Int64 unique_id) =0;
242
249 virtual void endUpdate() =0;
250
264 virtual void partialEndUpdate() =0;
265
275 virtual void partialEndUpdateGroup(const ItemGroup& group) =0;
276
286 virtual void partialEndUpdateVariable(IVariable* variable) =0;
287
289 virtual void notifyItemsOwnerChanged() =0;
290
292 virtual void notifyItemsUniqueIdChanged() =0;
293
294 public:
295
298
301
302 public:
303
317 virtual void setHasUniqueIdMap(bool v) =0;
318
320 virtual bool hasUniqueIdMap() const =0;
321
322 public:
323
341 Int64ConstArrayView unique_ids,
342 bool do_fatal=true) const =0;
343
359 ConstArrayView<ItemUniqueId> unique_ids,
360 bool do_fatal=true) const =0;
361
362 public:
363
374 virtual void setItemSortFunction(IItemInternalSortFunction* sort_function) =0;
375
384
385 public:
386
388 ARCCORE_DEPRECATED_2020("Do not use this method. Try to get 'ISubDomain' from another way")
389 virtual ISubDomain* subDomain() const =0;
390
392 virtual ITraceMng* traceMng() const =0;
393
395 virtual IMesh* mesh() const =0;
396
398 virtual IParallelMng* parallelMng() const =0;
399
400 public:
401
403 virtual ItemGroup allItems() const =0;
404
406 virtual ItemGroupCollection groups() const =0;
407
408 public:
409
411
412
417 virtual ItemGroup findGroup(const String& name) const =0;
418
428 virtual ItemGroup findGroup(const String& name,bool create_if_needed) =0;
429
430
441 virtual ItemGroup createGroup(const String& name,Int32ConstArrayView local_ids,bool do_override=false) =0;
442
451 virtual ItemGroup createGroup(const String& name) =0;
452
456 virtual void destroyGroups() =0;
457
462 virtual ItemGroup createGroup(const String& name,const ItemGroup& parent,bool do_override=false) =0;
463
465
472 virtual IVariable* findVariable(const String& name,bool throw_exception=false) =0;
473
478 virtual void usedVariables(VariableCollection collection) =0;
479
480 public:
481
483 virtual void prepareForDump() =0;
484
486 virtual void readFromDump() =0;
487
495 virtual void copyItemsValues(Int32ConstArrayView source, Int32ConstArrayView destination) =0;
496
506 virtual void copyItemsMeanValues(Int32ConstArrayView first_source,
507 Int32ConstArrayView second_source,
508 Int32ConstArrayView destination) = 0;
509
516 virtual void clearItems() =0;
517
519 virtual void compactItems(bool do_sort) =0;
520
521 public:
522
532 virtual void computeSynchronizeInfos() =0;
533
535 virtual void getCommunicatingSubDomains(Int32Array& sub_domains) const =0;
536
538
539
542
549 virtual void synchronize(VariableCollection variables) =0;
550
551 // TODO: à rendre virtuelle pure (décembre 2024)
562 virtual void synchronize(VariableCollection variables, Int32ConstArrayView local_ids);
564
574 virtual void reduceFromGhostItems(IVariable* v,IDataOperation* operation) =0;
584 virtual void reduceFromGhostItems(IVariable* v,Parallel::eReduceType operation) =0;
585
587 ARCANE_DEPRECATED_REASON("Y2024: use findAdjacency() instead")
589 const ItemGroup& sub_group,
590 eItemKind link_kind,
591 Integer nb_layer) = 0;
606 virtual ItemPairGroup findAdjacencyItems(const ItemGroup& group,
607 const ItemGroup& sub_group,
608 eItemKind link_kind,
609 Integer nb_layer);
610
619
627 virtual IDoFFamily* toDoFFamily() { return nullptr; }
628
636 virtual void internalRemoveItems(Int32ConstArrayView local_ids,bool keep_ghost=false) =0;
637
638
650 virtual void addSourceConnectivity(IItemConnectivity* connectivity) =0;
651 virtual void addTargetConnectivity(IItemConnectivity* connectivity) =0;
652 virtual void removeSourceConnectivity(IItemConnectivity* connectivity) =0;
653 virtual void removeTargetConnectivity(IItemConnectivity* connectivity) =0;
654 virtual void setConnectivityMng(IItemConnectivityMng* connectivity_mng) =0;
656
671 virtual void addGhostItems(Int64ConstArrayView unique_ids, Int32ArrayView items,
672 Int32ConstArrayView owners) =0;
673
674 public:
675
678
680 virtual Properties* properties() =0;
681
682 public:
683
686
687 public:
688
698 virtual void experimentalChangeUniqueId(ItemLocalId local_id,ItemUniqueId unique_id) =0;
699
700 public:
701
707 virtual void resizeVariables(bool force_resize) = 0;
708
709 public:
710
713
714 public:
715
718};
719
720/*---------------------------------------------------------------------------*/
721/*---------------------------------------------------------------------------*/
722
723} // End namespace Arcane
724
725/*---------------------------------------------------------------------------*/
726/*---------------------------------------------------------------------------*/
727
728#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.
Definition Event.h:248
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:84
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:74
Interface du gestionnaire de traces.
Interface d'un service de synchronisation de variable.
Interface d'une variable.
Definition IVariable.h:56
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:97
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:569
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:567
ArrayView< Int32 > Int32ArrayView
Equivalent C d'un tableau à une dimension d'entiers 32 bits.
Definition UtilsTypes.h:540
eItemKind
Genre d'entité de maillage.
Array< Int32 > Int32Array
Tableau dynamique à une dimension d'entiers 32 bits.
Definition UtilsTypes.h:214
std::int32_t Int32
Type entier signé sur 32 bits.