14#include "arcane/utils/NotImplementedException.h"
15#include "arcane/utils/CheckedConvert.h"
17#include "arcane/IParallelMng.h"
18#include "arcane/ISubDomain.h"
19#include "arcane/CommonVariables.h"
20#include "arcane/IMesh.h"
21#include "arcane/IMeshSubMeshTransition.h"
22#include "arcane/IMeshUtilities.h"
23#include "arcane/FactoryService.h"
24#include "arcane/ServiceFactory.h"
25#include "arcane/Service.h"
26#include "arcane/ItemPrinter.h"
27#include "arcane/IMeshPartitioner.h"
28#include "arcane/BasicService.h"
30#include "arcane/IMeshPartitionConstraintMng.h"
31#include "arcane/impl/MeshPartitionerTesterService_axl.h"
64 IMesh*
mesh()
const override {
return BasicService::mesh(); }
80 Real maximumComputationTime()
const override {
return m_max_computation_time; }
84 Real
imbalance()
const override {
return m_imbalance; }
109 Real m_max_imbalance;
110 Real m_max_computation_time;
112 ArrayView<float> m_cells_weight;
119MeshPartitionerTester::
120MeshPartitionerTester(
const ServiceBuildInfo& sbi)
121: ArcaneMeshPartitionerTesterServiceObject(sbi)
123, m_max_imbalance(0.0)
124, m_max_computation_time(0.0)
149 warning() <<
"Can't test the mesh repartionning with"
150 <<
"only one subdomain...";
#define ARCANE_SERVICE_INTERFACE(ainterface)
Macro pour déclarer une interface lors de l'enregistrement d'un service.
Generation de la classe de base du Service.
CaseOptionsMeshPartitionerTesterService * options() const
Options du jeu de données du service.
Interface d'enregistrement des variables pour l'equilibrage de charge.
virtual CellGroup ownCells()=0
Groupe de toutes les mailles propres au domaine.
Interface d'un partitionneur de maillage.
Interface d'un partitionneur de maillage.
virtual IMeshUtilities * utilities()=0
Interface des fonctions utilitaires associée.
virtual IMeshPartitionConstraintMng * partitionConstraintMng()=0
Gestionnaire des contraintes de partitionnement associées à ce maillage.
virtual IPrimaryMesh * toPrimaryMesh()=0
Retourne l'instance sous la forme d'un IPrimaryMesh.
Interface du gestionnaire de parallélisme pour un sous-domaine.
virtual Int32 commRank() const =0
Rang de cette instance dans le communicateur.
virtual Int32 commSize() const =0
Nombre d'instance dans le communicateur.
Interface du gestionnaire d'un sous-domaine.
Int32 owner() const
Numéro du sous-domaine propriétaire de l'entité
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Classe de test du repartionnement de maillage.
void setCellsWeight(ArrayView< float > weights, Integer nb_weight) override
Permet de définir les poids des objets à partitionner : on doit utiliser le ILoadBalanceMng maintenan...
void notifyEndPartition() override
Notification lors de la fin d'un repartionnement (après échange des entités)
Real maxImbalance() const override
Déséquilibre maximal autorisé
void setMaximumComputationTime(Real v) override
Positionne la proportion du temps de calcul.
void setILoadBalanceMng(ILoadBalanceMng *) override
Change le ILoadBalanceMng à utiliser.
void setComputationTimes(RealConstArrayView v) override
Temps de calcul de se sous-domaine. Le premier élément indique le temps de calcul du sous-domaine cor...
Real imbalance() const override
Déséquilibre de temps de calcul.
void setImbalance(Real v) override
Positionne le déséquilibre de temps de calcul.
IMesh * mesh() const override
Maillage associé au partitionneur.
void build() override
Construction de niveau build du service.
void partitionMesh(bool initial_partition) override
void setMaxImbalance(Real v) override
Positionne le déséquilibre maximal autorisé
Structure contenant les informations pour créer un service.
Propriétés de création d'un service.
void copy(Span< const T > rhs)
Copie les valeurs de rhs dans l'instance.
Vue constante d'un tableau de type T.
Exception lorsqu'une fonction n'est pas implémentée.
TraceMessage warning() const
Flot pour un message d'avertissement.
TraceMessage info() const
Flot pour un message d'information.
#define ARCANE_REGISTER_SERVICE(aclass, a_service_property,...)
Macro pour enregistrer un service.
Int32 toInt32(Int64 v)
Converti un Int64 en un Int32.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
@ ST_CaseOption
Le service s'utilise au niveau du jeu de données.
@ ST_SubDomain
Le service s'utilise au niveau du sous-domaine.
UniqueArray< Real > RealUniqueArray
Tableau dynamique à une dimension de réels.
@ IK_Cell
Entité de maillage de genre maille.