Arcane  v3.14.10.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
ICriteriaLoadBalanceMng.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/* ICriteriaLoadBalanceMng.h (C) 2000-2024 */
9/* */
10/* Interface pour un gestionnaire des critères d'équilibre de charge des */
11/* maillages. */
12/*---------------------------------------------------------------------------*/
13#ifndef ARCANE_CORE_ICRITERIALOADBALANCEMNG_H
14#define ARCANE_CORE_ICRITERIALOADBALANCEMNG_H
15/*---------------------------------------------------------------------------*/
16/*---------------------------------------------------------------------------*/
17
19#include "arcane/core/VariableTypes.h"
20
21/*---------------------------------------------------------------------------*/
22/*---------------------------------------------------------------------------*/
23
24namespace Arcane
25{
26
27/*---------------------------------------------------------------------------*/
28/*---------------------------------------------------------------------------*/
29/*!
30 * \brief Interface de classe permettant d'ajouter des critères pour ajuster
31 * l'équilibre de charge.
32 */
34{
35 public:
36
37 virtual ~ICriteriaLoadBalanceMng() = default; //!< Libère les ressources.
38
39 public:
40
41 /*!
42 * \brief Méthode permettant d'ajouter un critère pour chaque maille.
43 *
44 * \param count Une variable aux mailles avec un poids par maille.
45 */
46 virtual void addCriterion(VariableCellInt32& count) =0;
47
48 /*!
49 * \brief Méthode permettant d'ajouter un critère pour chaque maille.
50 *
51 * \param count Une variable aux mailles avec un poids par maille.
52 */
53 virtual void addCriterion(VariableCellReal& count) =0;
54
55 // TODO Comprendre comment fonctionne PartitionerMemoryInfo
56 /*!
57 * \brief Méthode permettant d'ajouter un critère pour chaque maille.
58 *
59 * \param count Une variable aux mailles avec un poids par maille.
60 * \param entity Le type d'entité lié à ce critère.
61 */
62 virtual void addMass(VariableCellInt32& count, const String& entity) = 0;
63
64 /*!
65 * \brief Méthode permettant d'ajouter un critère pour chaque face.
66 *
67 * \param count Une variable aux faces avec un poids par face.
68 * \param entity Le type d'entité lié à ce critère.
69 */
70 virtual void addCommCost(VariableFaceInt32& count, const String& entity) = 0;
71
72 /*!
73 * \brief Méthode permettant d'effacer les critères déjà ajoutés.
74 */
75 virtual void reset() =0;
76
77 /*!
78 * \brief Méthode permettant de dire si la masse de données de chaque
79 * maille est un critère pour l'équilibre de charge.
80 *
81 * \param active true si la masse de données doit être un critère.
82 */
83 virtual void setMassAsCriterion(bool active) = 0;
84
85 /*!
86 * \brief Méthode permettant de dire si le nombre de mailles dans un
87 * sous-domaine doit être un critère pour l'équilibre de charge.
88 *
89 * \param active true si le nombre de maille doit être un critère.
90 */
91 virtual void setNbCellsAsCriterion(bool active) = 0;
92
93 /*!
94 * \brief Méthode permettant de dire si la masse des communications
95 * entre les mailles doit être un critère pour l'équilibre de charge.
96 *
97 * \param active true si la masse des communications doit être un critère.
98 */
99 virtual void setCellCommContrib(bool active) = 0;
100
101 /*!
102 * \brief
103 * \param active
104 */
105 virtual void setComputeComm(bool active) = 0;
106
107 /*!
108 * \brief Méthode permettant d'obtenir le nombre de critères déjà enregistrés.
109 *
110 * \return Le nombre de critères.
111 */
112 virtual Integer nbCriteria() = 0;
113};
114
115/*---------------------------------------------------------------------------*/
116/*---------------------------------------------------------------------------*/
117
118} // End namespace Arcane
119
120/*---------------------------------------------------------------------------*/
121/*---------------------------------------------------------------------------*/
122
123#endif
Déclarations des types généraux de Arcane.
Interface de classe permettant d'ajouter des critères pour ajuster l'équilibre de charge.
virtual void addCriterion(VariableCellReal &count)=0
Méthode permettant d'ajouter un critère pour chaque maille.
virtual void addMass(VariableCellInt32 &count, const String &entity)=0
Méthode permettant d'ajouter un critère pour chaque maille.
virtual void setNbCellsAsCriterion(bool active)=0
Méthode permettant de dire si le nombre de mailles dans un sous-domaine doit être un critère pour l'é...
virtual ~ICriteriaLoadBalanceMng()=default
Libère les ressources.
virtual Integer nbCriteria()=0
Méthode permettant d'obtenir le nombre de critères déjà enregistrés.
virtual void addCriterion(VariableCellInt32 &count)=0
Méthode permettant d'ajouter un critère pour chaque maille.
virtual void setComputeComm(bool active)=0
virtual void addCommCost(VariableFaceInt32 &count, const String &entity)=0
Méthode permettant d'ajouter un critère pour chaque face.
virtual void setMassAsCriterion(bool active)=0
Méthode permettant de dire si la masse de données de chaque maille est un critère pour l'équilibre de...
virtual void setCellCommContrib(bool active)=0
Méthode permettant de dire si la masse des communications entre les mailles doit être un critère pour...
virtual void reset()=0
Méthode permettant d'effacer les critères déjà ajoutés.
Variable scalaire sur un type d'entité du maillage.
Chaîne de caractères unicode.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-