Famille de particules. Plus de détails...
#include <arcane/mesh/ParticleFamily.h>
Fonctions membres publiques | |
ParticleFamily (IMesh *mesh, const String &name) | |
virtual void | build () override |
void | setEnableGhostItems (bool value) override |
set le flag pour gérer les particules ghost de la famille | |
bool | getEnableGhostItems () const override |
récupère le flag pour gérer les particules ghost de la famille | |
String | name () const override |
Nom de la famille. | |
String | fullName () const override |
Nom complet de la famille (avec celui du maillage) | |
Integer | nbItem () const override |
Nombre d'entités. | |
ItemGroup | allItems () const override |
Groupe de toutes les entités. | |
ParticleVectorView | addParticles (Int64ConstArrayView unique_ids, Int32ArrayView items) override |
Alloue des particules. | |
ParticleVectorView | addParticles2 (Int64ConstArrayView unique_ids, Int32ConstArrayView owners, Int32ArrayView items) override |
ParticleVectorView | addParticles (Int64ConstArrayView unique_ids, Int32ConstArrayView cells_local_id, Int32ArrayView items_local_id) override |
Alloue des particules dans des mailles. | |
void | removeParticles (Int32ConstArrayView items_local_id) override |
void | addItems (Int64ConstArrayView unique_ids, Int32ConstArrayView owners, Int32ArrayView items) |
void | internalRemoveItems (Int32ConstArrayView local_ids, bool keep_ghost) override |
Supprime les entités donnés par local_ids. | |
void | exchangeParticles () override |
Échange des entités. | |
void | setParticleCell (Particle particle, Cell new_cell) override |
Déplace la particule particle dans la maille new_cell. | |
void | setParticlesCell (ParticleVectorView particles, CellVectorView new_cells) override |
Déplace la list de particules particles dans les nouvelles mailles new_cells. | |
void | endUpdate () override |
Notifie la fin de modification de la liste des entités. | |
void | preAllocate (Integer nb_item) |
void | prepareForDump () override |
Prépare les données pour une protection. | |
void | readFromDump () override |
Relit les données à partir d'une protection. | |
void | setHasUniqueIdMap (bool v) override |
Indique si la famille possède une table de conversion uniqueId vers localId. | |
bool | hasUniqueIdMap () const override |
Indique si la famille possède une table de conversion uniqueId vers localId. | |
void | computeSynchronizeInfos () override |
Construit les structures nécessaires à la synchronisation. | |
IItemFamily * | itemFamily () override |
Interface sur la famille. | |
IParticleFamily * | toParticleFamily () override |
Retourne l'interface de la famille de particule de cette famille. | |
void | checkValidConnectivity () override |
Vérification de la validité des structures internes concernant la connectivité. | |
void | removeNeedRemoveMarkedItems () override |
Supprime des entités et met a jour les connectivites. | |
Fonctions membres publiques hérités de Arcane::mesh::ItemFamily | |
ItemFamily (IMesh *mesh, eItemKind ik, const String &name) | |
eItemKind | itemKind () const override |
Genre des entités. | |
Int32 | maxLocalId () const override |
ItemInternalList | itemsInternal () override |
Tableau interne des entités. | |
ItemInfoListView | itemInfoListView () override |
Vue sur la liste d'informations sur les entités. | |
VariableItemInt32 & | itemsNewOwner () override |
Variable contenant le numéro du nouveau sous-domaine propriétaire de l'entité. | |
IItemFamily * | parentFamily () const override |
IItemFamily parent. | |
void | setParentFamily (IItemFamily *parent) override |
Positionne l'IItemFamily parent. | |
Integer | parentFamilyDepth () const override |
Donne la profondeur d'imbrication du maillage courant. | |
void | addChildFamily (IItemFamily *family) override |
Ajoute d'une famile en dépendance. | |
IItemFamilyCollection | childFamilies () override |
Familles enfantes de cette famille. | |
void | checkValid () override |
Vérification de la validité des structures internes (interne) | |
void | checkUniqueIds (Int64ConstArrayView unique_ids) override |
Vérifie que les identifiants unique_ids sont bien uniques pour tous les sous-domaines. | |
ItemInternalMap & | itemsMap () |
void | partialEndUpdate () override |
Mise à jour partielle. | |
void | partialEndUpdateGroup (const ItemGroup &group) override |
Met à jour un groupe. | |
void | partialEndUpdateVariable (IVariable *variable) override |
Met à jour une variable. | |
void | itemsUniqueIdToLocalId (ArrayView< Int64 > ids, bool do_fatal=true) const |
void | itemsUniqueIdToLocalId (Int32ArrayView local_ids, Int64ConstArrayView unique_ids, bool do_fatal) const override |
Converti un tableau de numéros uniques en numéros locaux. | |
void | itemsUniqueIdToLocalId (Int32ArrayView local_ids, ConstArrayView< ItemUniqueId > unique_ids, bool do_fatal) const override |
Converti un tableau de numéros uniques en numéros locaux. | |
ISubDomain * | subDomain () const override |
Sous-domaine associé | |
ITraceMng * | traceMng () const override |
Gestionnaire de trace associé | |
IMesh * | mesh () const override |
Maillage associé | |
IParallelMng * | parallelMng () const override |
Gestionnaire de parallélisme associé | |
IItemConnectivityInfo * | localConnectivityInfos () const override |
Informations sur la connectivité locale au sous-domaine pour à cette famille. | |
IItemConnectivityInfo * | globalConnectivityInfos () const override |
Informations sur la connectivité globales à tous les sous-domaines. | |
void | removeItems2 (ItemDataList &item_data_list) override |
ItemVectorView | view (Int32ConstArrayView local_ids) override |
Vue sur les entités. | |
ItemVectorView | view () override |
Vue sur toutes les entités de la famille. | |
ItemInternal * | findOneItem (Int64 uid) override |
Entité de numéro unique unique_id. | |
void | notifyItemsOwnerChanged () override |
Notifie que les entités propres au sous-domaine de la famille ont été modifiées. | |
ItemGroup | findGroup (const String &name) const override |
Recherche un groupe. | |
ItemGroup | findGroup (const String &name, bool create_if_needed) override |
Recherche un groupe. | |
ItemGroup | createGroup (const String &name, Int32ConstArrayView elements, bool do_override=false) override |
Créé un groupe d'entités de nom name contenant les entités local_ids. | |
ItemGroup | createGroup (const String &name) override |
Créé un groupe d'entités de nom name. | |
ItemGroup | createGroup (const String &name, const ItemGroup &parent, bool do_override=false) override |
ItemGroupCollection | groups () const override |
Liste des groupes de cette famille. | |
void | notifyItemsUniqueIdChanged () override |
Notifie que les numéros uniques des entités ont été modifiées. | |
void | destroyGroups () override |
Supprime tous les groupes de cette famille. | |
IVariable * | findVariable (const String &name, bool throw_exception) override |
Recherche la variable de nom name associée à cette famille. | |
void | usedVariables (VariableCollection collection) override |
Ajoute à la collection collection la liste des variables utilisés de cette famille. | |
void | copyItemsValues (Int32ConstArrayView source, Int32ConstArrayView destination) override |
void | copyItemsMeanValues (Int32ConstArrayView first_source, Int32ConstArrayView second_source, Int32ConstArrayView destination) override |
void | compactItems (bool do_sort) override |
Compacte les entités. | |
void | clearItems () override |
Supprime toutes les entités de la famille. | |
Int64ArrayView * | uniqueIds () |
ItemSharedInfo * | commonItemSharedInfo () |
const DynamicMeshKindInfos & | infos () const |
void | getCommunicatingSubDomains (Int32Array &sub_domains) const override |
Liste des sous-domaines communiquants pour les entités. | |
void | synchronize (VariableCollection variables) override |
Synchronise les variables variables. | |
void | synchronize (VariableCollection variables, Int32ConstArrayView local_ids) override |
Synchronise les variables variables sur une liste d'entités. | |
IVariableSynchronizer * | allItemsSynchronizer () override |
Synchroniseur sur toutes les entités de la famille. | |
void | reduceFromGhostItems (IVariable *v, IDataOperation *operation) override |
Applique une opération de réduction depuis les entités fantômes. | |
void | reduceFromGhostItems (IVariable *v, Parallel::eReduceType operation) override |
Applique une opération de réduction depuis les entités fantômes. | |
ItemPairGroup | findAdjencyItems (const ItemGroup &group, const ItemGroup &sub_group, eItemKind link_kind, Integer layer) override |
Cherche une liste d'adjacence. | |
void | setItemSortFunction (IItemInternalSortFunction *sort_function) override |
Positionne la fonction de tri des entités. | |
IItemInternalSortFunction * | itemSortFunction () const override |
Fonction de tri des entités. | |
void | addSourceConnectivity (IItemConnectivity *connectivity) override |
void | addTargetConnectivity (IItemConnectivity *connectivity) override |
void | removeSourceConnectivity (IItemConnectivity *connectivity) override |
void | removeTargetConnectivity (IItemConnectivity *connectivity) override |
void | setConnectivityMng (IItemConnectivityMng *connectivity_mng) override |
void | addGhostItems (Int64ConstArrayView unique_ids, Int32ArrayView items, Int32ConstArrayView owners) override |
Alloue des entités fantômes. | |
IItemFamilyPolicyMng * | policyMng () override |
Interface des comportements/politiques associées à cette famille. | |
Properties * | properties () override |
Propriétés associées à cette famille. | |
IItemFamilyInternal * | _internalApi () override |
API interne à Arcane. | |
void | setPolicyMng (IItemFamilyPolicyMng *policy_mng) |
void | beginCompactItems (ItemFamilyCompactInfos &compact_infos) |
void | compactVariablesAndGroups (const ItemFamilyCompactInfos &compact_infos) |
Compacte les variables et les groupes. | |
void | finishCompactItems (ItemFamilyCompactInfos &compact_infos) |
void | removeItem (Item item) |
ItemInternalConnectivityList * | itemInternalConnectivityList () |
Accesseur pour les connectivités via Item et ItemInternal. | |
IItemFamilyTopologyModifier * | _topologyModifier () override |
Interface du modificateur de topologie. | |
void | resizeVariables (bool force_resize) override |
Redimensionne les variables de cette famille. | |
Fonctions membres publiques hérités de Arccore::TraceAccessor | |
TraceAccessor (ITraceMng *m) | |
Construit un accesseur via le gestionnaire de trace m. | |
TraceAccessor (const TraceAccessor &rhs) | |
Constructeur par recopie. | |
TraceAccessor & | operator= (const TraceAccessor &rhs) |
Opérateur de recopie. | |
virtual | ~TraceAccessor () |
Libère les ressources. | |
ITraceMng * | traceMng () const |
Gestionnaire de trace. | |
TraceMessage | info () const |
Flot pour un message d'information. | |
TraceMessage | pinfo () const |
Flot pour un message d'information en parallèle. | |
TraceMessage | info (char category) const |
Flot pour un message d'information d'une catégorie donnée. | |
TraceMessage | pinfo (char category) const |
Flot pour un message d'information parallèle d'une catégorie donnée. | |
TraceMessage | info (bool v) const |
Flot pour un message d'information. | |
TraceMessage | warning () const |
Flot pour un message d'avertissement. | |
TraceMessage | pwarning () const |
TraceMessage | error () const |
Flot pour un message d'erreur. | |
TraceMessage | perror () const |
TraceMessage | log () const |
Flot pour un message de log. | |
TraceMessage | plog () const |
Flot pour un message de log. | |
TraceMessage | logdate () const |
Flot pour un message de log précédé de la date. | |
TraceMessage | fatal () const |
Flot pour un message d'erreur fatale. | |
TraceMessage | pfatal () const |
Flot pour un message d'erreur fatale en parallèle. | |
TraceMessageDbg | debug (Trace::eDebugLevel=Trace::Medium) const |
Flot pour un message de debug. | |
Trace::eDebugLevel | configDbgLevel () const |
Niveau debug du fichier de configuration. | |
TraceMessage | info (Int32 verbose_level) const |
Flot pour un message d'information d'un niveau donné | |
TraceMessage | linfo () const |
Flot pour un message d'information avec le niveau d'information local à cette instance. | |
TraceMessage | linfo (Int32 relative_level) const |
Flot pour un message d'information avec le niveau d'information local à cette instance. | |
void | fatalMessage (const StandaloneTraceMessage &o) const |
Fonctions membres publiques hérités de Arcane::IItemFamily | |
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. | |
Fonctions membres publiques statiques | |
static String const | defaultFamilyName () |
Types privés | |
typedef ItemConnectivitySelectorT< CellInternalConnectivityIndex, OneItemIncrementalItemConnectivity > | CellConnectivity |
typedef ItemFamily | BaseClass |
Fonctions membres privées | |
ItemInternal * | _allocParticle (Int64 uid, bool &need_alloc) |
ItemInternal * | _findOrAllocParticle (Int64 uid, bool &is_alloc) |
void | _printInfos (Integer nb_added) |
void | _setSharedInfo () |
void | _setCell (ItemLocalId particle, ItemLocalId cell) |
void | _initializeNewlyAllocatedParticle (ItemInternal *particle, Int64 uid) |
Positionne les infos de connectivité pour une particule qui vient d'être allouée en mémoire. | |
void | _addItems (Int64ConstArrayView unique_ids, Int32ArrayView items) |
Attributs privés | |
ItemTypeInfo * | m_particle_type_info |
ItemSharedInfoWithType * | m_particle_shared_info |
Int32 | m_sub_domain_id |
bool | m_enable_ghost_items |
CellConnectivity * | m_cell_connectivity |
Famille de particules.
Définition à la ligne 39 du fichier ParticleFamily.h.
Définition à la ligne 46 du fichier ParticleFamily.h.
|
private |
Définition à la ligne 45 du fichier ParticleFamily.h.
Définition à la ligne 39 du fichier ParticleFamily.cc.
|
virtual |
Définition à la ligne 53 du fichier ParticleFamily.cc.
|
private |
Définition à la ligne 213 du fichier ParticleFamily.cc.
|
inlineprivate |
Définition à la ligne 112 du fichier ParticleFamily.cc.
|
inlineprivate |
Définition à la ligne 130 du fichier ParticleFamily.cc.
|
inlineprivate |
Positionne les infos de connectivité pour une particule qui vient d'être allouée en mémoire.
Définition à la ligne 102 du fichier ParticleFamily.cc.
|
private |
Définition à la ligne 282 du fichier ParticleFamily.cc.
|
inlineprivate |
Définition à la ligne 164 du fichier ParticleFamily.cc.
|
private |
Définition à la ligne 408 du fichier ParticleFamily.cc.
void Arcane::mesh::ParticleFamily::addItems | ( | Int64ConstArrayView | unique_ids, |
Int32ConstArrayView | owners, | ||
Int32ArrayView | items | ||
) |
Définition à la ligne 235 du fichier ParticleFamily.cc.
|
overridevirtual |
Alloue des particules.
Alloue les particules dont les uniqueId() sont données par le tablea unique_ids.
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(). Attention, la vue retournée peut être invalidée après l'appel à endUpdate() si la compression est active. items_local_id doit avoir le même nombre d'éléments que unique_ids.
Implémente Arcane::IParticleFamily.
Définition à la ligne 142 du fichier ParticleFamily.cc.
|
overridevirtual |
Alloue des particules dans des mailles.
Cette méthode est similaire à addParticles() mais permet de spécifier directement les mailles dans lesquelles seront créées les particules.
Implémente Arcane::IParticleFamily.
Définition à la ligne 173 du fichier ParticleFamily.cc.
Références Arccore::ArrayView< T >::size().
|
overridevirtual |
Implémente Arcane::IParticleFamily.
Définition à la ligne 152 du fichier ParticleFamily.cc.
|
inlineoverridevirtual |
Groupe de toutes les entités.
Réimplémentée à partir de Arcane::mesh::ItemFamily.
Définition à la ligne 72 du fichier ParticleFamily.h.
|
overridevirtual |
Réimplémentée à partir de Arcane::mesh::ItemFamily.
Définition à la ligne 61 du fichier ParticleFamily.cc.
|
overridevirtual |
Vérification de la validité des structures internes concernant la connectivité.
Réimplémentée à partir de Arcane::mesh::ItemFamily.
Définition à la ligne 417 du fichier ParticleFamily.cc.
|
inlineoverridevirtual |
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.
Réimplémentée à partir de Arcane::mesh::ItemFamily.
Définition à la ligne 111 du fichier ParticleFamily.h.
Définition à la ligne 50 du fichier ParticleFamily.h.
|
inlineoverridevirtual |
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.
Réimplémentée à partir de Arcane::mesh::ItemFamily.
Définition à la ligne 93 du fichier ParticleFamily.h.
|
overridevirtual |
Échange des entités.
Cette méthode n'est supportée que pour les familles de particule. Pour les éléments du maillage comme les noeuds, faces ou maille, il faut utiliser IMesh::exchangeItems().
Les nouveaux propriétaires des entités sont données par la itemsNewOwner().
Cette opération est bloquante et collective.
Implémente Arcane::IParticleFamily.
Définition à la ligne 263 du fichier ParticleFamily.cc.
|
inlineoverridevirtual |
Nom complet de la famille (avec celui du maillage)
Réimplémentée à partir de Arcane::mesh::ItemFamily.
Définition à la ligne 70 du fichier ParticleFamily.h.
|
inlineoverridevirtual |
récupère le flag pour gérer les particules ghost de la famille
Implémente Arcane::IParticleFamily.
Définition à la ligne 64 du fichier ParticleFamily.h.
|
overridevirtual |
Indique si la famille possède une table de conversion uniqueId vers localId.
Réimplémentée à partir de Arcane::mesh::ItemFamily.
Définition à la ligne 399 du fichier ParticleFamily.cc.
|
overridevirtual |
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().
Réimplémentée à partir de Arcane::mesh::ItemFamily.
Définition à la ligne 291 du fichier ParticleFamily.cc.
Références ENUMERATE_ITEM.
|
inlineoverridevirtual |
Interface sur la famille.
Implémente Arcane::IParticleFamily.
Définition à la ligne 116 du fichier ParticleFamily.h.
|
inlineoverridevirtual |
Nom de la famille.
Réimplémentée à partir de Arcane::mesh::ItemFamily.
Définition à la ligne 69 du fichier ParticleFamily.h.
|
inlineoverridevirtual |
Nombre d'entités.
Réimplémentée à partir de Arcane::mesh::ItemFamily.
Définition à la ligne 71 du fichier ParticleFamily.h.
void Arcane::mesh::ParticleFamily::preAllocate | ( | Integer | nb_item | ) |
Définition à la ligne 377 du fichier ParticleFamily.cc.
|
overridevirtual |
Prépare les données pour une protection.
Réimplémentée à partir de Arcane::mesh::ItemFamily.
Définition à la ligne 354 du fichier ParticleFamily.cc.
|
overridevirtual |
Relit les données à partir d'une protection.
Réimplémentée à partir de Arcane::mesh::ItemFamily.
Définition à la ligne 366 du fichier ParticleFamily.cc.
|
overridevirtual |
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
Réimplémentée à partir de Arcane::mesh::ItemFamily.
Définition à la ligne 426 du fichier ParticleFamily.cc.
Références Arcane::Item::itemBase(), Arcane::Item::localId(), et Arcane::Item::mutableItemBase().
|
overridevirtual |
Implémente Arcane::IParticleFamily.
Définition à la ligne 345 du fichier ParticleFamily.cc.
set le flag pour gérer les particules ghost de la famille
Implémente Arcane::IParticleFamily.
Définition à la ligne 61 du fichier ParticleFamily.h.
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.
Réimplémentée à partir de Arcane::mesh::ItemFamily.
Définition à la ligne 389 du fichier ParticleFamily.cc.
|
overridevirtual |
Déplace la particule particle dans la maille new_cell.
Implémente Arcane::IParticleFamily.
Définition à la ligne 190 du fichier ParticleFamily.cc.
|
overridevirtual |
Déplace la list de particules particles dans les nouvelles mailles new_cells.
Implémente Arcane::IParticleFamily.
Définition à la ligne 200 du fichier ParticleFamily.cc.
|
inlineoverridevirtual |
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 à partir de Arcane::mesh::ItemFamily.
Définition à la ligne 117 du fichier ParticleFamily.h.
|
private |
Définition à la ligne 128 du fichier ParticleFamily.h.
|
private |
Définition à la ligne 127 du fichier ParticleFamily.h.
|
private |
Définition à la ligne 125 du fichier ParticleFamily.h.
|
private |
Définition à la ligne 124 du fichier ParticleFamily.h.
|
private |
Définition à la ligne 126 du fichier ParticleFamily.h.