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

Interface d'un partitionneur de maillage. Plus de détails...

#include <arcane/core/IMeshPartitioner.h>

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

Fonctions membres publiques

virtual ~IMeshPartitioner ()
 Libère les ressources.
 
virtual void build ()=0
 
virtual void partitionMesh (bool initial_partition, Int32 nb_part)=0
 
virtual IMeshmesh () const =0
 Maillage associé au partitionneur.
 
virtual IPrimaryMeshprimaryMesh () override
 Maillage associé
 
virtual void partitionMesh (bool initial_partition)=0
 
compact

{

Proportion du temps de calcul de ce sous-domaine par rapport à celui du sous-domaine qui à le temps de calcul de plus élevé.

virtual ARCANE_DEPRECATED_116 void setMaximumComputationTime (Real v)=0
 Positionne la proportion du temps de calcul.
 
virtual ARCANE_DEPRECATED_116 Real maximumComputationTime () const =0
 
virtual ARCANE_DEPRECATED_116 void setComputationTimes (RealConstArrayView v)=0
 Temps de calcul de se sous-domaine. Le premier élément indique le temps de calcul du sous-domaine correspondante aux calcul dont le cout est proportionnel aux mailles. Les suivants doivent être associées à une variable (à faire).
 
virtual ARCANE_DEPRECATED_116 RealConstArrayView computationTimes () const =0
 
imbalance
Déséquilibre de temps calcul. Il est calculé comme suit
imbalance = (max_computation_time - min_computation_time) / min_computation_time;
virtual void setImbalance (Real v)=0
 Positionne le déséquilibre de temps de calcul.
 
virtual Real imbalance () const =0
 Déséquilibre de temps de calcul.
 
virtual void setMaxImbalance (Real v)=0
 Positionne le déséquilibre maximal autorisé
 
virtual Real maxImbalance () const =0
 Déséquilibre maximal autorisé
 
virtual ARCANE_DEPRECATED_116 void setCellsWeight (ArrayView< float > weights, Integer nb_weight)=0
 Permet de définir les poids des objets à partitionner : on doit utiliser le ILoadBalanceMng maintenant.
 
virtual ARCANE_DEPRECATED_116 ArrayView< floatcellsWeight () const =0
 
virtual void setILoadBalanceMng (ILoadBalanceMng *mng)=0
 Change le ILoadBalanceMng à utiliser.
 
virtual ILoadBalanceMngloadBalanceMng () const =0
 
- Fonctions membres publiques hérités de Arcane::IMeshPartitionerBase
virtual ~IMeshPartitionerBase ()=default
 Libère les ressources.
 
virtual void notifyEndPartition ()=0
 Notification lors de la fin d'un repartionnement (après échange des entités)
 

Description détaillée

Interface d'un partitionneur de maillage.

Le partitionneur réaffecte les propriétaires des entités. Il n'effectue pas directement l'échange d'entité. Le partitionneur peut utiliser certaines informations comme le timeRatio() ou imbalance() pour calculer un partionnement efficace.

Définition à la ligne 40 du fichier IMeshPartitioner.h.

Documentation des constructeurs et destructeur

◆ ~IMeshPartitioner()

virtual Arcane::IMeshPartitioner::~IMeshPartitioner ( )
inlinevirtual

Libère les ressources.

Définition à la ligne 45 du fichier IMeshPartitioner.h.

Documentation des fonctions membres

◆ build()

◆ imbalance()

virtual Real Arcane::IMeshPartitioner::imbalance ( ) const
pure virtual

Déséquilibre de temps de calcul.

Implémenté dans Arcane::MeshPartitionerBase, et Arcane::MeshPartitionerTester.

◆ maxImbalance()

virtual Real Arcane::IMeshPartitioner::maxImbalance ( ) const
pure virtual

Déséquilibre maximal autorisé

Implémenté dans Arcane::MeshPartitionerBase, et Arcane::MeshPartitionerTester.

◆ mesh()

virtual IMesh * Arcane::IMeshPartitioner::mesh ( ) const
pure virtual

Maillage associé au partitionneur.

Implémenté dans Arcane::MeshPartitionerBase, et Arcane::MeshPartitionerTester.

Référencé par primaryMesh().

◆ partitionMesh()

virtual void Arcane::IMeshPartitionerBase::partitionMesh ( bool  initial_partition)
virtual

Repartitionne le maillage mesh

Cette méthode change les propriétaires des entités et remplit la variable IItemFamily::itemsNewOwner() de chaque famille d'entité du maillage mesh avec le numéro du nouveau sous-domaine propriétaire.

Note
Cette méthode est réservée aux développeurs Arcane. Si un module souhaite effectuer un repartitionnement, il faut appeler la méthode IMeshUtilities::partitionAndExchangeMeshWithReplication() qui gère à la fois le partitionnement et l'échange des informations et supporte la réplication de domaine.

Implémente Arcane::IMeshPartitionerBase.

Réimplémentée dans Arcane::SplitSDMeshPartitioner, Arcane::ZoltanMeshPartitioner, Arcane::MeshPartitionerTester, Arcane::MetisMeshPartitioner, et Arcane::PTScotchMeshPartitioner.

◆ primaryMesh()

IPrimaryMesh * Arcane::IMeshPartitioner::primaryMesh ( )
overridevirtual

Maillage associé

Implémente Arcane::IMeshPartitionerBase.

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

Références ARCANE_CHECK_POINTER, et mesh().

◆ setCellsWeight()

virtual ARCANE_DEPRECATED_116 void Arcane::IMeshPartitioner::setCellsWeight ( ArrayView< float weights,
Integer  nb_weight 
)
pure virtual

Permet de définir les poids des objets à partitionner : on doit utiliser le ILoadBalanceMng maintenant.

Implémenté dans Arcane::MeshPartitionerBase, et Arcane::MeshPartitionerTester.

◆ setComputationTimes()

virtual ARCANE_DEPRECATED_116 void Arcane::IMeshPartitioner::setComputationTimes ( RealConstArrayView  v)
pure virtual

Temps de calcul de se sous-domaine. Le premier élément indique le temps de calcul du sous-domaine correspondante aux calcul dont le cout est proportionnel aux mailles. Les suivants doivent être associées à une variable (à faire).

Implémenté dans Arcane::MeshPartitionerBase, et Arcane::MeshPartitionerTester.

◆ setILoadBalanceMng()

virtual void Arcane::IMeshPartitioner::setILoadBalanceMng ( ILoadBalanceMng mng)
pure virtual

Change le ILoadBalanceMng à utiliser.

Implémenté dans Arcane::MeshPartitionerTester, et Arcane::MeshPartitionerBase.

◆ setImbalance()

virtual void Arcane::IMeshPartitioner::setImbalance ( Real  v)
pure virtual

Positionne le déséquilibre de temps de calcul.

Implémenté dans Arcane::MeshPartitionerBase, et Arcane::MeshPartitionerTester.

◆ setMaxImbalance()

virtual void Arcane::IMeshPartitioner::setMaxImbalance ( Real  v)
pure virtual

Positionne le déséquilibre maximal autorisé

Implémenté dans Arcane::MeshPartitionerBase, et Arcane::MeshPartitionerTester.

◆ setMaximumComputationTime()

virtual ARCANE_DEPRECATED_116 void Arcane::IMeshPartitioner::setMaximumComputationTime ( Real  v)
pure virtual

Positionne la proportion du temps de calcul.

Proportion du temps de calcul Temps de calcul du sous-domaine le plus chargé

Implémenté dans Arcane::MeshPartitionerTester, et Arcane::MeshPartitionerBase.


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