Arcane  v3.14.10.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
ILoadBalanceMng.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/* ILoadBalanceMng.h (C) 2000-2024 */
9/* */
10/* Interface de description des caracteristiques du probleme pour le module */
11/* d'equilibrage de charge. */
12/*---------------------------------------------------------------------------*/
13#ifndef ARCANE_CORE_ILOADBALANCEMNG_H
14#define ARCANE_CORE_ILOADBALANCEMNG_H
15/*---------------------------------------------------------------------------*/
16/*---------------------------------------------------------------------------*/
17
19#include "arcane/core/VariableTypes.h"
20
21/*---------------------------------------------------------------------------*/
22/*---------------------------------------------------------------------------*/
23
24namespace Arcane
25{
26
27class ILoadBalanceMngInternal;
28
29/*---------------------------------------------------------------------------*/
30/*---------------------------------------------------------------------------*/
31/*!
32 * \brief Interface d'enregistrement des variables pour l'equilibrage de charge.
33 */
35{
36 public:
37
38 virtual ~ILoadBalanceMng() {} //!< Libère les ressources.
39
40 public:
41
42 // TODO : Deprecated
43 virtual void addMass(VariableCellInt32& count, const String& entity="") =0;
44 virtual void addCriterion(VariableCellInt32& count) =0;
45 virtual void addCriterion(VariableCellReal& count) =0;
46 virtual void addCommCost(VariableFaceInt32& count, const String& entity="") =0;
47 virtual void reset() =0;
48 virtual void setMassAsCriterion(bool active=true) =0;
49 virtual void setNbCellsAsCriterion(bool active=true) =0;
50 virtual Integer nbCriteria() =0;
51 virtual void setCellCommContrib(bool active=true) =0;
52 virtual bool cellCommContrib() const =0;
53 virtual void setComputeComm(bool active=true) =0;
54 virtual const VariableFaceReal& commCost() const =0;
55 virtual const VariableCellReal& massWeight() const =0;
56 virtual const VariableCellReal& massResWeight() const =0;
57 virtual const VariableCellArrayReal& mCriteriaWeight() const =0;
58
59 virtual void initAccess(IMesh* mesh) = 0;
60 virtual void endAccess() = 0;
61 virtual void notifyEndPartition() = 0;
62
63 public:
64
65 //! API interne à Arcane
66 virtual ILoadBalanceMngInternal* _internalApi() { ARCANE_FATAL("Invalid usage"); };
67};
68
69/*---------------------------------------------------------------------------*/
70/*---------------------------------------------------------------------------*/
71
72} // End namespace Arcane
73
74/*---------------------------------------------------------------------------*/
75/*---------------------------------------------------------------------------*/
76
77#endif
#define ARCANE_FATAL(...)
Macro envoyant une exception FatalErrorException.
Déclarations des types généraux de Arcane.
Interface d'enregistrement des variables pour l'equilibrage de charge.
virtual ILoadBalanceMngInternal * _internalApi()
API interne à Arcane.
virtual ~ILoadBalanceMng()
Libère les ressources.
Variable scalaire sur un type d'entité du maillage.
Chaîne de caractères unicode.
MeshVariableScalarRefT< Face, Real > VariableFaceReal
Grandeur aux faces de type réel.
MeshVariableArrayRefT< Cell, Real > VariableCellArrayReal
Grandeur au centre des mailles de type tableau de réel.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-