Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
LoadBalanceMng.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2024 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/* LoadBalanceMng.h (C) 2000-2024 */
9/* */
10/* Gestionnaire pour le partitionnement et l'équilibrage de charge. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_IMPL_LOADBALANCEMNG_H
13#define ARCANE_IMPL_LOADBALANCEMNG_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/core/ILoadBalanceMng.h"
18
19/*---------------------------------------------------------------------------*/
20/*---------------------------------------------------------------------------*/
21
22namespace Arcane
23{
24
25/*---------------------------------------------------------------------------*/
26/*---------------------------------------------------------------------------*/
32class ARCANE_IMPL_EXPORT LoadBalanceMng
33: public ILoadBalanceMng
34{
35 public:
36
37 explicit LoadBalanceMng(ISubDomain* sd);
39
40 public:
41
46 void addMass(VariableCellInt32& count, const String& entity="") override;
47 void addCriterion(VariableCellInt32& count) override;
48 void addCriterion(VariableCellReal& count) override;
49 void addCommCost(VariableFaceInt32& count, const String& entity="") override;
50
51 void reset() override;
52
57 void setMassAsCriterion(bool active = true) override;
58 void setNbCellsAsCriterion(bool active = true) override;
59 void setCellCommContrib(bool active = true) override;
60 bool cellCommContrib() const override;
61 void setComputeComm(bool active = true) override;
62 Integer nbCriteria() override;
63 void initAccess(IMesh* mesh=nullptr) override;
64 const VariableFaceReal& commCost() const override;
65 const VariableCellReal& massWeight() const override;
66 const VariableCellReal& massResWeight() const override;
67 const VariableCellArrayReal& mCriteriaWeight() const override;
68 void endAccess() override;
69 void notifyEndPartition() override;
70
71 ILoadBalanceMngInternal* _internalApi() override;
72
73 private:
74
76 MeshHandle m_mesh_handle;
77
78 private:
79
80 void _init(bool use_mass_as_criterion, bool is_legacy_init);
81 static bool _isLegacyInit();
82};
83
84/*---------------------------------------------------------------------------*/
85/*---------------------------------------------------------------------------*/
86
87} // End namespace Arcane
88
89/*---------------------------------------------------------------------------*/
90/*---------------------------------------------------------------------------*/
91
92#endif
API interne à Arcane de ILoadBalanceMng.
Interface d'enregistrement des variables pour l'equilibrage de charge.
Interface du gestionnaire d'un sous-domaine.
Definition ISubDomain.h:74
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Definition Lima.cc:120
Implantation standard d'une interface d'enregistrement des variables pour l'équilibrage de charge.
Handle sur un maillage.
Definition MeshHandle.h:47
Chaîne de caractères unicode.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-