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

Interface d'une famille d'entités. Plus de détails...

#include <arcane/core/IItemFamily.h>

+ Graphe d'héritage de Arcane::IItemFamily:
+ Graphe de collaboration de Arcane::IItemFamily:

Fonctions membres publiques

virtual void build ()=0
 
virtual String name () const =0
 Nom de la famille.
 
virtual String fullName () const =0
 Nom complet de la famille (avec celui du maillage)
 
virtual eItemKind itemKind () const =0
 Genre des entités.
 
virtual Integer nbItem () const =0
 Nombre d'entités.
 
virtual Int32 maxLocalId () const =0
 
virtual ItemInternalArrayView itemsInternal ()=0
 Tableau interne des entités.
 
virtual ItemInfoListView itemInfoListView ()=0
 Vue sur la liste d'informations sur les entités.
 
virtual IItemFamilyparentFamily () const =0
 IItemFamily parent.
 
virtual void setParentFamily (IItemFamily *parent)=0
 Positionne l'IItemFamily parent.
 
virtual Integer parentFamilyDepth () const =0
 Donne la profondeur d'imbrication du maillage courant.
 
virtual void addChildFamily (IItemFamily *family)=0
 Ajoute d'une famile en dépendance.
 
virtual IItemFamilyCollection childFamilies ()=0
 Familles enfantes de cette famille.
 
virtual VariableItemInt32itemsNewOwner ()=0
 Variable contenant le numéro du nouveau sous-domaine propriétaire de l'entité.
 
virtual void checkValid ()=0
 Vérification de la validité des structures internes (interne)
 
virtual void checkValidConnectivity ()=0
 Vérification de la validité des structures internes concernant la connectivité.
 
virtual void checkUniqueIds (Int64ConstArrayView unique_ids)=0
 Vérifie que les identifiants unique_ids sont bien uniques pour tous les sous-domaines.
 
virtual ItemVectorView view (Int32ConstArrayView local_ids)=0
 Vue sur les entités.
 
virtual ItemVectorView view ()=0
 Vue sur toutes les entités de la famille.
 
virtual void removeItems2 (mesh::ItemDataList &item_data_list)=0
 Supprime des entités.
 
virtual void removeNeedRemoveMarkedItems ()=0
 Supprime des entités et met a jour les connectivites.
 
virtual ItemInternalfindOneItem (Int64 unique_id)=0
 Entité de numéro unique unique_id.
 
virtual void endUpdate ()=0
 Notifie la fin de modification de la liste des entités.
 
virtual void partialEndUpdate ()=0
 Mise à jour partielle.
 
virtual void partialEndUpdateGroup (const ItemGroup &group)=0
 Met à jour un groupe.
 
virtual void partialEndUpdateVariable (IVariable *variable)=0
 Met à jour une variable.
 
virtual void notifyItemsOwnerChanged ()=0
 Notifie que les entités propres au sous-domaine de la famille ont été modifiées.
 
virtual void notifyItemsUniqueIdChanged ()=0
 Notifie que les numéros uniques des entités ont été modifiées.
 
virtual IItemConnectivityInfolocalConnectivityInfos () const =0
 Informations sur la connectivité locale au sous-domaine pour à cette famille.
 
virtual IItemConnectivityInfoglobalConnectivityInfos () const =0
 Informations sur la connectivité globales à tous les sous-domaines.
 
virtual void setHasUniqueIdMap (bool v)=0
 Indique si la famille possède une table de conversion uniqueId vers localId.
 
virtual bool hasUniqueIdMap () const =0
 Indique si la famille possède une table de conversion uniqueId vers localId.
 
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 itemsUniqueIdToLocalId (Int32ArrayView local_ids, ConstArrayView< ItemUniqueId > unique_ids, bool do_fatal=true) const =0
 Converti un tableau de numéros uniques en numéros locaux.
 
virtual void setItemSortFunction (IItemInternalSortFunction *sort_function)=0
 Positionne la fonction de tri des entités.
 
virtual IItemInternalSortFunctionitemSortFunction () const =0
 Fonction de tri des entités.
 
virtual ISubDomainsubDomain () const =0
 Sous-domaine associé
 
virtual ITraceMngtraceMng () const =0
 Gestionnaire de trace associé
 
virtual IMeshmesh () const =0
 Maillage associé
 
virtual IParallelMngparallelMng () const =0
 Gestionnaire de parallélisme associé
 
virtual ItemGroup allItems () const =0
 Groupe de toutes les entités.
 
virtual ItemGroupCollection groups () const =0
 Liste des groupes de cette famille.
 
opérations sur des groupes
virtual ItemGroup findGroup (const String &name) const =0
 Recherche un groupe.
 
virtual ItemGroup findGroup (const String &name, bool create_if_needed)=0
 Recherche un groupe.
 
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 ItemGroup createGroup (const String &name)=0
 Créé un groupe d'entités de nom name.
 
virtual void destroyGroups ()=0
 Supprime tous les groupes de cette famille.
 
virtual ItemGroup createGroup (const String &name, const ItemGroup &parent, bool do_override=false)=0
 
virtual IVariablefindVariable (const String &name, bool throw_exception=false)=0
 Recherche la variable de nom name associée à cette famille.
 
virtual void usedVariables (VariableCollection collection)=0
 Ajoute à la collection collection la liste des variables utilisés de cette famille.
 
virtual void prepareForDump ()=0
 Prépare les données pour une protection.
 
virtual void readFromDump ()=0
 Relit les données à partir d'une protection.
 
virtual void copyItemsValues (Int32ConstArrayView source, Int32ConstArrayView destination)=0
 
virtual void copyItemsMeanValues (Int32ConstArrayView first_source, Int32ConstArrayView second_source, Int32ConstArrayView destination)=0
 
virtual void clearItems ()=0
 Supprime toutes les entités de la famille.
 
virtual void compactItems (bool do_sort)=0
 Compacte les entités.
 
virtual void computeSynchronizeInfos ()=0
 Construit les structures nécessaires à la synchronisation.
 
virtual void getCommunicatingSubDomains (Int32Array &sub_domains) const =0
 Liste des sous-domaines communiquants pour les entités.
 
opérations de synchronisation d'une variable
virtual IVariableSynchronizerallItemsSynchronizer ()=0
 Synchroniseur sur toutes les entités de la famille.
 
virtual void synchronize (VariableCollection variables)=0
 Synchronise les variables variables.
 
virtual void synchronize (VariableCollection variables, Int32ConstArrayView local_ids)
 Synchronise les variables variables sur une liste d'entités.
 
virtual void reduceFromGhostItems (IVariable *v, IDataOperation *operation)=0
 Applique une opération de réduction depuis les entités fantômes.
 
virtual void reduceFromGhostItems (IVariable *v, Parallel::eReduceType operation)=0
 Applique une opération de réduction depuis les entités fantômes.
 
virtual ItemPairGroup findAdjencyItems (const ItemGroup &group, const ItemGroup &sub_group, eItemKind link_kind, Integer nb_layer)=0
 Cherche une liste d'adjacence.
 
virtual IParticleFamilytoParticleFamily ()=0
 Retourne l'interface de la famille de particule de cette famille.
 
virtual IDoFFamilytoDoFFamily ()
 Retourne l'interface de la famille de particule de cette famille.
 
virtual void internalRemoveItems (Int32ConstArrayView local_ids, bool keep_ghost=false)=0
 Supprime les entités donnés par local_ids.
 
Enregistre/Supprime un gestionnaire de connectivité.

Permet de répercuter les évolutions de la famille dans les connectivites "externes" ou elle est impliquée. Ces connectivites "externes" sont aujourd'hui les connectivités utilisant les degres de liberté.

Note
Ces méthodes sont internes à Arcane.
virtual void addSourceConnectivity (IItemConnectivity *connectivity)=0
 
virtual void addTargetConnectivity (IItemConnectivity *connectivity)=0
 
virtual void removeSourceConnectivity (IItemConnectivity *connectivity)=0
 
virtual void removeTargetConnectivity (IItemConnectivity *connectivity)=0
 
virtual void setConnectivityMng (IItemConnectivityMng *connectivity_mng)=0
 
virtual void addGhostItems (Int64ConstArrayView unique_ids, Int32ArrayView items, Int32ConstArrayView owners)=0
 Alloue des entités fantômes.
 
virtual IItemFamilyPolicyMngpolicyMng ()=0
 Interface des comportements/politiques associées à cette famille.
 
virtual Propertiesproperties ()=0
 Propriétés associées à cette famille.
 
virtual void resizeVariables (bool force_resize)=0
 Redimensionne les variables de cette famille.
 
virtual IItemFamilyTopologyModifier_topologyModifier ()=0
 Interface du modificateur de topologie.
 
virtual IItemFamilyInternal_internalApi ()=0
 API interne à Arcane.
 

Amis

class mesh::DynamicMesh
 
class mesh::ItemFamily
 

Description détaillée

Interface d'une famille d'entités.

Une famille d'entité gère toutes les entités de même genre (Item::kind()) et est attachée à un maillage (IMesh).

Pour tout maillage, il existe une et une seule famille de noeuds (Node), arêtes (Edge), faces (Face) et mailles (Cell). Ces entités sont appelées des entités de base du maillage et les familles associées les familles de base du maillage.

Suivant l'implémentation, il peut aussi y avoir des familles de particules (Particle), de noeuds duaux (DualNode) ou de liens (Link). Suivant la connectivité demandée, une famille peut ne pas avoir d'éléments. Par exemple, par défaut en 3D, les arêtes (Edge) ne sont pas créées.

Chaque entité de la famille possède un identifiant local dans la famille, donnée par Item::localId(). Lorsqu'une famille évolue, cet identifiant peut être modifié. Les Item::localId() des entités d'une famille ne sont pas nécessairement contigus. La méthode maxLocalId() permet de connaître le maximum de ces valeurs. Le compactage permet de garantir que les localId() sont renumérotés de 0 à (nbItem()-1). Pour les entités de base du maillage, le compactage est automatique si le maillage à la propriété "sort" à vrai. Pour les autres, il faut appeler compactItems().

Par défaut, une famille possède une table de conversion des uniqueId() vers les localId(). Cette table doit exister pour permettre les opérations suivantes:

  • le uniqueId() est garanti unique sur le sous-domaine et doit l'être par construction sur tous les sous-domaines.
  • faire appel aux méthodes itemsUniqueIdToLocalId().
  • les entités de la famille peuvent être présentes dans plusieurs sous-domaines.
  • faire des synchronisations.
  • avoir des variables partielles sur cette famille

Il est possible d'activer ou désactiver cette table de conversion via la méthode setHasUniqueIdMap() uniquement si aucune entité n'a été créée. Cette opération n'est pas possible sur les familles de noeuds, arêtes, faces et mailles.

Lorsqu'on modifie une famille par ajout ou suppression d'entités, les variables et les groupes qui reposent sur cette famille ne sont plus utilisables tant qu'on a pas fait d'appel à endUpdate(). Il est possible pour des raisons d'optimisation de faire des mise à jour de certaines variables ou groupes via partialEndUpdateVariable() ou partialEndUpdateGroup(). ATTENTION, un appel à l'une de ces 3 méthodes de mise à jour invalide les instances des entités (Item). Pour conserver une référence sur une entité, il faut soit utiliser un groupe (ItemGroup), soit conserver son numéro unique et utiliser itemsUniqueIdToLocalId().

Définition à la ligne 110 du fichier IItemFamily.h.

Documentation des constructeurs et destructeur

◆ ~IItemFamily()

virtual Arcane::IItemFamily::~IItemFamily ( )
inlinevirtual

Définition à la ligne 117 du fichier IItemFamily.h.

Documentation des fonctions membres

◆ _internalApi()

virtual IItemFamilyInternal * Arcane::IItemFamily::_internalApi ( )
pure virtual

API interne à Arcane.

Implémenté dans Arcane::mesh::ItemFamily.

◆ _topologyModifier()

virtual IItemFamilyTopologyModifier * Arcane::IItemFamily::_topologyModifier ( )
pure virtual

Interface du modificateur de topologie.

Implémenté dans Arcane::mesh::ItemFamily.

◆ addChildFamily()

virtual void Arcane::IItemFamily::addChildFamily ( IItemFamily family)
pure virtual

Ajoute d'une famile en dépendance.

Opération en symétrie de setParentFamily

TODO: A mettre dans l'API interne

Implémenté dans Arcane::mesh::ItemFamily.

Référencé par Arcane::mesh::ItemFamily::setParentFamily().

◆ addGhostItems()

virtual void Arcane::IItemFamily::addGhostItems ( Int64ConstArrayView  unique_ids,
Int32ArrayView  items,
Int32ConstArrayView  owners 
)
pure virtual

Alloue des entités fantômes.

Après appel à cette opération, il faut appeler endUpdate() pour notifier à l'instance la fin des modifications. Il est possible d'enchaîner plusieurs allocations avant d'appeler endUpdate().

Les unique_ids sont ceux d'items présents sur un autre sous-domaine, dont le numéro est dans le tableau owners (de même taille que le tableau unique_ids). items doit avoir le même nombre d'éléments que unique_ids et sera remplit en retour avec les numéros locaux des entités créées.

Implémenté dans Arcane::mesh::DoFFamily, et Arcane::mesh::ItemFamily.

◆ allItems()

◆ allItemsSynchronizer()

virtual IVariableSynchronizer * Arcane::IItemFamily::allItemsSynchronizer ( )
pure virtual

◆ checkUniqueIds()

virtual void Arcane::IItemFamily::checkUniqueIds ( Int64ConstArrayView  unique_ids)
pure virtual

Vérifie que les identifiants unique_ids sont bien uniques pour tous les sous-domaines.

Cette méthode NE vérifie PAS que les unique_ids sont identiques à ceux des entités déjà créées. Elle vérifie uniquement l'ensemble des unique_ids passés en argument par tous les sous-domaines.

Cette opération est collective et doit être appelée par tous les sous-domaines.

Implémenté dans Arcane::mesh::ItemFamily.

◆ checkValid()

virtual void Arcane::IItemFamily::checkValid ( )
pure virtual

Vérification de la validité des structures internes (interne)

Implémenté dans Arcane::mesh::ItemFamily.

Référencé par Arcane::DynamicMeshChecker::checkValidMesh().

◆ checkValidConnectivity()

virtual void Arcane::IItemFamily::checkValidConnectivity ( )
pure virtual

Vérification de la validité des structures internes concernant la connectivité.

Implémenté dans Arcane::mesh::ItemFamily, et Arcane::mesh::ParticleFamily.

Référencé par Arcane::DynamicMeshChecker::checkValidConnectivity().

◆ childFamilies()

virtual IItemFamilyCollection Arcane::IItemFamily::childFamilies ( )
pure virtual

Familles enfantes de cette famille.

Implémenté dans Arcane::mesh::ItemFamily.

◆ clearItems()

virtual void Arcane::IItemFamily::clearItems ( )
pure virtual

Supprime toutes les entités de la famille.

Avertissement
attention à ne pas détruire des entités qui sont utilisées dans par une autre famille. En général, il est plus prudent d'utiliser IMesh::clearItems() si on souhaite supprimer tous les éléments du maillage.

Implémenté dans Arcane::mesh::ItemFamily.

◆ compactItems()

virtual void Arcane::IItemFamily::compactItems ( bool  do_sort)
pure virtual

Compacte les entités.

Implémenté dans Arcane::mesh::ItemFamily.

◆ computeSynchronizeInfos()

virtual void Arcane::IItemFamily::computeSynchronizeInfos ( )
pure virtual

Construit les structures nécessaires à la synchronisation.

Cette opération doit être effectuée à chaque fois que les entités du maillage changent de propriétaire (par exemple lors d'un équilibrage de charge).

Cette opération est collective.

Implémenté dans Arcane::mesh::CellFamily, Arcane::mesh::DoFFamily, Arcane::mesh::EdgeFamily, Arcane::mesh::FaceFamily, Arcane::mesh::ItemFamily, Arcane::mesh::NodeFamily, et Arcane::mesh::ParticleFamily.

Référencé par Arcane::mesh::MeshRefinement::coarsenItemsV2().

◆ copyItemsMeanValues()

virtual void Arcane::IItemFamily::copyItemsMeanValues ( Int32ConstArrayView  first_source,
Int32ConstArrayView  second_source,
Int32ConstArrayView  destination 
)
pure virtual

Copie les moyennes des valeurs des entités numéros first_source et second_source dans les entités numéros destination

Paramètres
first_sourceliste des localId de la 1ère source
second_sourceliste des localId de la 2ème source
destinationliste des localId destination

Implémenté dans Arcane::mesh::ItemFamily.

◆ copyItemsValues()

virtual void Arcane::IItemFamily::copyItemsValues ( Int32ConstArrayView  source,
Int32ConstArrayView  destination 
)
pure virtual

Copie les valeurs des entités numéros source dans les entités numéros destination

Paramètres
sourceliste des localId source
destinationliste des localId destination

Implémenté dans Arcane::mesh::ItemFamily.

◆ createGroup() [1/3]

virtual ItemGroup Arcane::IItemFamily::createGroup ( const String name)
pure virtual

Créé un groupe d'entités de nom name.

Le groupe ne doit pas déjà exister sinon une exception est levée.

Paramètres
namenom du groupe
Renvoie
le groupe créé

Implémenté dans Arcane::mesh::ItemFamily.

◆ createGroup() [2/3]

virtual ItemGroup Arcane::IItemFamily::createGroup ( const String name,
const ItemGroup parent,
bool  do_override = false 
)
pure virtual

For Internal Use Only

Implémenté dans Arcane::mesh::ItemFamily.

◆ createGroup() [3/3]

virtual ItemGroup Arcane::IItemFamily::createGroup ( const String name,
Int32ConstArrayView  local_ids,
bool  do_override = false 
)
pure virtual

Créé un groupe d'entités de nom name contenant les entités local_ids.

Paramètres
namenom du groupe
local_idsliste des localId() des entités composant le groupe.
do_overridesi true et q'un groupe de même nom existe déjà, ses éléments sont remplacés par ceux donnés dans local_ids. Si false, alors une exception est levée.
Renvoie
le groupe créé

Implémenté dans Arcane::mesh::ItemFamily.

Référencé par Arcane::NodeDirectionMng::_internalComputeInfos(), Arcane::CellDirectionMng::_internalComputeInnerAndOuterItems(), Arcane::ItemGroupImpl::createSubGroup(), et Arcane::XmfMeshReader::readMeshFromFile().

◆ destroyGroups()

virtual void Arcane::IItemFamily::destroyGroups ( )
pure virtual

Supprime tous les groupes de cette famille.

Implémenté dans Arcane::mesh::ItemFamily.

◆ endUpdate()

virtual void Arcane::IItemFamily::endUpdate ( )
pure virtual

Notifie la fin de modification de la liste des entités.

Cette méthode doit être appelée après modification de la liste des entités (après ajout ou suppression). Elle met à jour les groupes et redimensionne les variables sur cette famille.

Implémenté dans Arcane::mesh::DoFFamily, Arcane::mesh::ItemFamily, Arcane::mesh::ParticleFamily, et Arcane::mesh::PolyhedralFamily.

Référencé par Arcane::mesh::ItemsExchangeInfo2::removeSentItems().

◆ findAdjencyItems()

virtual ItemPairGroup Arcane::IItemFamily::findAdjencyItems ( const ItemGroup group,
const ItemGroup sub_group,
eItemKind  link_kind,
Integer  nb_layer 
)
pure virtual

Cherche une liste d'adjacence.

Cherche la liste d'entités de type sub_kind, liées par le type d'entité link_kind du groupe group, sur un nombre de couche nb_layer.

Si group et sub_group sont de même genre, une entité est toujours dans sa liste d'adjacence, en tant que premier élément.

Si la liste n'existe pas, elle est créée.

Note
pour l'instant une seule couche est autorisée.

Implémenté dans Arcane::mesh::ItemFamily.

◆ findGroup() [1/2]

virtual ItemGroup Arcane::IItemFamily::findGroup ( const String name) const
pure virtual

Recherche un groupe.

Paramètres
namenom du groupe à rechercher
Renvoie
le groupe de nom name ou le groupe nul s'il n'y en a pas.

Implémenté dans Arcane::mesh::ItemFamily.

◆ findGroup() [2/2]

virtual ItemGroup Arcane::IItemFamily::findGroup ( const String name,
bool  create_if_needed 
)
pure virtual

Recherche un groupe.

Paramètres
namenom du groupe à rechercher
Renvoie
le groupe trouvé ou le groupe nul si aucun groupe de nom name et de type type n'existe et si create_if_needed vaut false. Si create_if_needed vaux vrai, un groupe vide de nom name est créé et retourné.

Implémenté dans Arcane::mesh::ItemFamily.

◆ findOneItem()

virtual ItemInternal * Arcane::IItemFamily::findOneItem ( Int64  unique_id)
pure virtual

Entité de numéro unique unique_id.

Si aucune entité avec cet unique_id n'est trouvé, retourne nullptr.

Précondition
hasUniqueIdMap()

Implémenté dans Arcane::mesh::ItemFamily.

◆ findVariable()

virtual IVariable * Arcane::IItemFamily::findVariable ( const String name,
bool  throw_exception = false 
)
pure virtual

Recherche la variable de nom name associée à cette famille.

Si aucune variable de nom name n'existe, si throw_exception vaut false, retourne 0, sinon lève une exception.

Implémenté dans Arcane::mesh::ItemFamily.

Référencé par Arcane::Hdf5VariableReaderHelper::open().

◆ fullName()

◆ getCommunicatingSubDomains()

virtual void Arcane::IItemFamily::getCommunicatingSubDomains ( Int32Array sub_domains) const
pure virtual

Liste des sous-domaines communiquants pour les entités.

Implémenté dans Arcane::mesh::ItemFamily.

◆ globalConnectivityInfos()

virtual IItemConnectivityInfo * Arcane::IItemFamily::globalConnectivityInfos ( ) const
pure virtual

Informations sur la connectivité globales à tous les sous-domaines.

Implémenté dans Arcane::mesh::ItemFamily.

◆ groups()

virtual ItemGroupCollection Arcane::IItemFamily::groups ( ) const
pure virtual

◆ hasUniqueIdMap()

virtual bool Arcane::IItemFamily::hasUniqueIdMap ( ) const
pure virtual

Indique si la famille possède une table de conversion uniqueId vers localId.

Implémenté dans Arcane::mesh::ItemFamily, et Arcane::mesh::ParticleFamily.

◆ internalRemoveItems()

virtual void Arcane::IItemFamily::internalRemoveItems ( Int32ConstArrayView  local_ids,
bool  keep_ghost = false 
)
pure virtual

Supprime les entités donnés par local_ids.

Pour usage interne uniquement. Si on souhaite supprimer des entités du maillage, il faut passer par IMeshModifier via l'appel à IMesh::modifier().

Implémenté dans Arcane::mesh::ParticleFamily, Arcane::mesh::CellFamily, Arcane::mesh::DoFFamily, et Arcane::mesh::ItemFamily.

◆ itemInfoListView()

virtual ItemInfoListView Arcane::IItemFamily::itemInfoListView ( )
pure virtual

Vue sur la liste d'informations sur les entités.

Implémenté dans Arcane::mesh::ItemFamily.

Référencé par Arcane::ItemGroupImpl::_computeChildrenByTypeV2().

◆ itemKind()

◆ itemsInternal()

virtual ItemInternalArrayView Arcane::IItemFamily::itemsInternal ( )
pure virtual

Tableau interne des entités.

Implémenté dans Arcane::mesh::ItemFamily.

Référencé par Arcane::mesh::ItemFamily::notifyItemsOwnerChanged().

◆ itemsNewOwner()

virtual VariableItemInt32 & Arcane::IItemFamily::itemsNewOwner ( )
pure virtual

Variable contenant le numéro du nouveau sous-domaine propriétaire de l'entité.

Cette variable n'est utilisée que pour un repartitionnement du maillage.

Implémenté dans Arcane::mesh::ItemFamily.

Référencé par Arcane::BasicRayMeshIntersection::compute(), Arcane::mesh::MeshExchanger::computeExchangeInfos(), et Arcane::mesh::MeshExchange::computeInfos().

◆ itemSortFunction()

virtual IItemInternalSortFunction * Arcane::IItemFamily::itemSortFunction ( ) const
pure virtual

Fonction de tri des entités.

L'instance de cette classe reste propriétaire de l'objet retournée qui ne doit pas être détruit ni modifié.

Voir également
setItemSortFunction()

Implémenté dans Arcane::mesh::ItemFamily.

◆ itemsUniqueIdToLocalId() [1/2]

virtual void Arcane::IItemFamily::itemsUniqueIdToLocalId ( Int32ArrayView  local_ids,
ConstArrayView< ItemUniqueId unique_ids,
bool  do_fatal = true 
) const
pure virtual

Converti un tableau de numéros uniques en numéros locaux.

Cette opération prend en entrée le tableau unique_ids contenant les numéros uniques des entités du type item_kind et retourne dans local_ids le numéro local à ce sous-domaine correspondant.

La complexité de cette opération dépend de l'implémentation. L'implémentation par défaut utilise une table de hachage. La complexité moyenne est donc constante.

Si do_fatal est vrai, une erreur fatale est générée si une entité n'est pas n'est trouvée, sinon l'élément non trouvé a pour valeur NULL_ITEM_ID.

Implémenté dans Arcane::mesh::ItemFamily.

◆ itemsUniqueIdToLocalId() [2/2]

virtual void Arcane::IItemFamily::itemsUniqueIdToLocalId ( Int32ArrayView  local_ids,
Int64ConstArrayView  unique_ids,
bool  do_fatal = true 
) const
pure virtual

Converti un tableau de numéros uniques en numéros locaux.

Cette opération prend en entrée le tableau unique_ids contenant les numéros uniques des entités du type item_kind et retourne dans local_ids le numéro local à ce sous-domaine correspondant.

La complexité de cette opération dépend de l'implémentation. L'implémentation par défaut utilise une table de hachage. La complexité moyenne est donc constante.

Si do_fatal est vrai, une erreur fatale est générée si une entité n'est pas n'est trouvée, sinon l'élément non trouvé a pour valeur NULL_ITEM_ID.

Précondition
hasUniqueIdMap()

Implémenté dans Arcane::mesh::ItemFamily.

Référencé par Arcane::mesh::MeshRefinement::_interpolateData(), Arcane::ItemGroupDynamicMeshObserver::executeReduce(), et Arcane::XmfMeshReader::readMeshFromFile().

◆ localConnectivityInfos()

virtual IItemConnectivityInfo * Arcane::IItemFamily::localConnectivityInfos ( ) const
pure virtual

Informations sur la connectivité locale au sous-domaine pour à cette famille.

Implémenté dans Arcane::mesh::ItemFamily.

◆ maxLocalId()

virtual Int32 Arcane::IItemFamily::maxLocalId ( ) const
pure virtual

◆ mesh()

◆ name()

◆ nbItem()

virtual Integer Arcane::IItemFamily::nbItem ( ) const
pure virtual

◆ notifyItemsOwnerChanged()

virtual void Arcane::IItemFamily::notifyItemsOwnerChanged ( )
pure virtual

Notifie que les entités propres au sous-domaine de la famille ont été modifiées.

Implémenté dans Arcane::mesh::ItemFamily.

Référencé par Arcane::mesh::MeshRefinement::coarsenItemsV2(), Arcane::mesh::MeshExchanger::computeExchangeInfos(), et Arcane::mesh::ItemFamily::notifyItemsOwnerChanged().

◆ notifyItemsUniqueIdChanged()

virtual void Arcane::IItemFamily::notifyItemsUniqueIdChanged ( )
pure virtual

Notifie que les numéros uniques des entités ont été modifiées.

Implémenté dans Arcane::mesh::ItemFamily, et Arcane::mesh::NodeFamily.

◆ parallelMng()

virtual IParallelMng * Arcane::IItemFamily::parallelMng ( ) const
pure virtual

◆ parentFamily()

virtual IItemFamily * Arcane::IItemFamily::parentFamily ( ) const
pure virtual

IItemFamily parent.

Issue des imbrications de sous-maillages

Renvoie
nullptr si n'a pas de famille parente

Implémenté dans Arcane::mesh::ItemFamily.

Référencé par Arcane::DynamicMeshChecker::checkValidConnectivity(), Arcane::ItemGroupDynamicMeshObserver::executeCompact(), et Arcane::ItemGroupDynamicMeshObserver::executeExtend().

◆ parentFamilyDepth()

virtual Integer Arcane::IItemFamily::parentFamilyDepth ( ) const
pure virtual

Donne la profondeur d'imbrication du maillage courant.

Implémenté dans Arcane::mesh::ItemFamily.

Référencé par Arcane::mesh::ItemFamily::setParentFamily().

◆ partialEndUpdate()

virtual void Arcane::IItemFamily::partialEndUpdate ( )
pure virtual

Mise à jour partielle.

Met à jour les structures internes après une modification de la famille. Il s'agit d'une version optimisée de endUpdate() lorsqu'on souhaite faire de multiples modifications de maillage. Cette méthode NE met PAS à jour les groupes ni les variables associées à cette famille. Seul le groupe allItems() est disponible. Il est possible de mettre à jour un groupe via partialEndUpdateGroup() et une variable via partialEndUpdateVariable().

Cette méthode est réservée aux utilisateurs expérimentés. Pour les autres, il vaut mieux utiliser endUpdate().

Implémenté dans Arcane::mesh::ItemFamily.

◆ partialEndUpdateGroup()

virtual void Arcane::IItemFamily::partialEndUpdateGroup ( const ItemGroup group)
pure virtual

Met à jour un groupe.

Met à jour le groupe group après une modification de la famille. La mise à jour consiste à supprimer du groupe les entités de la famille éventuellement détruites lors de la modification.

Voir également
partialEndUpdate().

Implémenté dans Arcane::mesh::ItemFamily.

◆ partialEndUpdateVariable()

virtual void Arcane::IItemFamily::partialEndUpdateVariable ( IVariable variable)
pure virtual

Met à jour une variable.

Met à jour la variable variable après une modification de la famille. La mise à jour consiste à redimensionner la variable après un éventuel ajout d'entités.

Voir également
partialEndUpdate().

Implémenté dans Arcane::mesh::ItemFamily.

◆ policyMng()

virtual IItemFamilyPolicyMng * Arcane::IItemFamily::policyMng ( )
pure virtual

Interface des comportements/politiques associées à cette famille.

Implémenté dans Arcane::mesh::ItemFamily.

◆ prepareForDump()

virtual void Arcane::IItemFamily::prepareForDump ( )
pure virtual

Prépare les données pour une protection.

Implémenté dans Arcane::mesh::ItemFamily, et Arcane::mesh::ParticleFamily.

◆ properties()

virtual Properties * Arcane::IItemFamily::properties ( )
pure virtual

◆ readFromDump()

virtual void Arcane::IItemFamily::readFromDump ( )
pure virtual

Relit les données à partir d'une protection.

Implémenté dans Arcane::mesh::ItemFamily, et Arcane::mesh::ParticleFamily.

◆ reduceFromGhostItems() [1/2]

virtual void Arcane::IItemFamily::reduceFromGhostItems ( IVariable v,
IDataOperation operation 
)
pure virtual

Applique une opération de réduction depuis les entités fantômes.

Cette opération est l'opération inverse de la synchronisation.

Le sous-domaine récupère les valeurs de la variable v sur les entités qu'il partage avec d'autres sous-domaines et l'opération de réduction operation est appliquée sur cette variable.

Implémenté dans Arcane::mesh::ItemFamily.

◆ reduceFromGhostItems() [2/2]

virtual void Arcane::IItemFamily::reduceFromGhostItems ( IVariable v,
Parallel::eReduceType  operation 
)
pure virtual

Applique une opération de réduction depuis les entités fantômes.

Cette opération est l'opération inverse de la synchronisation.

Le sous-domaine récupère les valeurs de la variable v sur les entités qu'il partage avec d'autres sous-domaines et l'opération de réduction operation est appliquée sur cette variable.

Implémenté dans Arcane::mesh::ItemFamily.

◆ removeItems2()

virtual void Arcane::IItemFamily::removeItems2 ( mesh::ItemDataList &  item_data_list)
pure virtual

Supprime des entités.

Utilise le graphe (Familles, Connectivités) ItemFamilyNetwork

TODO: A mettre dans l'API interne

◆ removeNeedRemoveMarkedItems()

virtual void Arcane::IItemFamily::removeNeedRemoveMarkedItems ( )
pure virtual

Supprime des entités et met a jour les connectivites.

Ne supprime pas d'eventuels sous items orphelins.

Contexte d'utilisation avec un graphe des familles. Les sous items orphelins ont du eux aussi etre marque NeedRemove. Il n'y a donc pas besoin de les gerer dans les familles parentes.

TODO: A mettre dans l'API interne

Implémenté dans Arcane::mesh::ItemFamily, et Arcane::mesh::ParticleFamily.

Référencé par Arcane::mesh::DynamicMeshIncrementalBuilder::removeNeedRemoveMarkedItems().

◆ resizeVariables()

virtual void Arcane::IItemFamily::resizeVariables ( bool  force_resize)
pure virtual

Redimensionne les variables de cette famille.

Cette méthode est interne à Arcane.

Implémenté dans Arcane::mesh::ItemFamily.

◆ setHasUniqueIdMap()

virtual void Arcane::IItemFamily::setHasUniqueIdMap ( bool  v)
pure virtual

Indique si la famille possède une table de conversion uniqueId vers localId.

La table de conversion permet d'utiliser les méthodes itemsUniqueIdToLocalId() ou findOneItem().

Cette méthode ne peut être appelée que lorsqu'il n'y a aucune entité de la famille.

Les familles de noeuds, arêtes, faces et mailles du maillage ont obligatoirement une table de conversion.

Implémenté dans Arcane::mesh::ItemFamily, et Arcane::mesh::ParticleFamily.

◆ setItemSortFunction()

virtual void Arcane::IItemFamily::setItemSortFunction ( IItemInternalSortFunction sort_function)
pure virtual

Positionne la fonction de tri des entités.

La méthode par défaut est de trier les entités par uniqueId() croissant. Si sort_function est nul, c'est la méthode par défaut qui sera utilisée. Sinon, sort_function remplace la fonction précédente qui est détruite (via delete). Le tri est effectué via l'appel à compactItems().

Voir également
itemSortFunction()

Implémenté dans Arcane::mesh::ItemFamily.

◆ setParentFamily()

virtual void Arcane::IItemFamily::setParentFamily ( IItemFamily parent)
pure virtual

Positionne l'IItemFamily parent.

A utiliser avant build() pour les sous-maillages construit dynamiquement (i.e. pas depuis un reprise).

TODO: A mettre dans l'API interne

Implémenté dans Arcane::mesh::ItemFamily.

◆ subDomain()

virtual ISubDomain * Arcane::IItemFamily::subDomain ( ) const
pure virtual

Sous-domaine associé

Implémenté dans Arcane::mesh::ItemFamily.

◆ synchronize() [1/2]

virtual void Arcane::IItemFamily::synchronize ( VariableCollection  variables)
pure virtual

Synchronise les variables variables.

Les variables variables doivent être toutes être issues de cette famille et ne pas être partielles.

Implémenté dans Arcane::mesh::ItemFamily.

◆ synchronize() [2/2]

void Arcane::IItemFamily::synchronize ( VariableCollection  variables,
Int32ConstArrayView  local_ids 
)
virtual

Synchronise les variables variables sur une liste d'entités.

Les variables variables doivent être toutes être issues de cette famille et ne pas être partielles.

Seules les entités listées dans local_ids seront synchronisées. Attention : une entité présente dans cette liste sur un sous-domaine doit être présente dans cette liste pour tout autre sous-domaine qui possède cette entité.

Réimplémentée dans Arcane::mesh::ItemFamily.

Définition à la ligne 290 du fichier InterfaceImpl.cc.

Références ARCANE_THROW.

◆ toDoFFamily()

virtual IDoFFamily * Arcane::IItemFamily::toDoFFamily ( )
inlinevirtual

Retourne l'interface de la famille de particule de cette famille.

L'interface IParticleFamily n'existe que si cette famille est une famille de particules (itemKind()==IK_Particle). Pour les autres genres de famille, 0 est retourné.

Réimplémentée dans Arcane::mesh::DoFFamily, et Arcane::mesh::PolyhedralFamily.

Définition à la ligne 648 du fichier IItemFamily.h.

◆ toParticleFamily()

virtual IParticleFamily * Arcane::IItemFamily::toParticleFamily ( )
pure virtual

Retourne l'interface de la famille de particule de cette famille.

L'interface IParticleFamily n'existe que si cette famille est une famille de particules (itemKind()==IK_Particle). Pour les autres genres de famille, 0 est retourné.

Implémenté dans Arcane::mesh::ItemFamily, et Arcane::mesh::ParticleFamily.

Référencé par Arcane::BasicRayMeshIntersection::compute(), Arcane::mesh::MeshExchanger::computeExchangeInfos(), et Arcane::mesh::ItemsExchangeInfo2::removeSentItems().

◆ traceMng()

virtual ITraceMng * Arcane::IItemFamily::traceMng ( ) const
pure virtual

◆ usedVariables()

virtual void Arcane::IItemFamily::usedVariables ( VariableCollection  collection)
pure virtual

Ajoute à la collection collection la liste des variables utilisés de cette famille.

Implémenté dans Arcane::mesh::ItemFamily.

◆ view() [1/2]

virtual ItemVectorView Arcane::IItemFamily::view ( )
pure virtual

Vue sur toutes les entités de la famille.

Implémenté dans Arcane::mesh::ItemFamily.

◆ view() [2/2]

virtual ItemVectorView Arcane::IItemFamily::view ( Int32ConstArrayView  local_ids)
pure virtual

Vue sur les entités.

Retourne une vue sur les entités de numéro locaux local_ids.

Avertissement
Cette vue n'est valide que tant que la famille n'évolue pas. En particulier, l'ajout, la suppression ou le compactage invalide la vue. Si vous souhaitez conserver une liste même après modification, il faut utiliser les groupes (ItemGroup).

Implémenté dans Arcane::mesh::ItemFamily.

Référencé par Arcane::Materials::MeshMaterialVariableSynchronizer::recompute(), Arcane::mesh::ItemsExchangeInfo2::removeSentItems(), Arcane::Materials::ItemMaterialVariableScalar< DataType >::serialize(), et Arcane::Materials::ItemMaterialVariableArray< DataType >::serialize().

Documentation des fonctions amies et associées

◆ mesh::DynamicMesh

Définition à la ligne 112 du fichier IItemFamily.h.

◆ mesh::ItemFamily

Définition à la ligne 113 du fichier IItemFamily.h.


La documentation de cette classe a été générée à partir des fichiers suivants :