Arcane  v3.14.10.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
MeshCriteriaLoadBalanceMng.cc
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/* MeshCriteriaLoadBalanceMng.cc (C) 2000-2024 */
9/* */
10/* Gestionnaire des critères d'équilibre de charge des maillages. */
11/*---------------------------------------------------------------------------*/
12/*---------------------------------------------------------------------------*/
13
14#include "arcane/core/MeshCriteriaLoadBalanceMng.h"
15#include "arcane/core/internal/ILoadBalanceMngInternal.h"
16
17/*---------------------------------------------------------------------------*/
18/*---------------------------------------------------------------------------*/
19
20namespace Arcane
21{
22
23/*---------------------------------------------------------------------------*/
24/*---------------------------------------------------------------------------*/
25
26/*!
27 * \brief Constructeur
28 * \param sd Le sous-domaine où se trouve l'instance de ILoadBalanceMng.
29 * \param mesh_handle Le maillage sur lequel les critères seront définis.
30 */
33: m_internal(sd->loadBalanceMng()->_internalApi())
34, m_mesh_handle(mesh_handle)
35{
36}
37
38/*---------------------------------------------------------------------------*/
39/*---------------------------------------------------------------------------*/
40
42reset()
43{
44 m_internal->reset(m_mesh_handle.mesh());
45}
46
47/*---------------------------------------------------------------------------*/
48/*---------------------------------------------------------------------------*/
49
52{
53 m_internal->addCriterion(count, m_mesh_handle.mesh());
54}
55
56/*---------------------------------------------------------------------------*/
57/*---------------------------------------------------------------------------*/
58
61{
62 m_internal->addCriterion(count, m_mesh_handle.mesh());
63}
64
65/*---------------------------------------------------------------------------*/
66/*---------------------------------------------------------------------------*/
67
69addMass(VariableCellInt32& count, const String& entity)
70{
71 m_internal->addMass(count, m_mesh_handle.mesh(), entity);
72}
73
74/*---------------------------------------------------------------------------*/
75/*---------------------------------------------------------------------------*/
76
78addCommCost(VariableFaceInt32& count, const String& entity)
79{
80 m_internal->addCommCost(count, m_mesh_handle.mesh(), entity);
81}
82
83/*---------------------------------------------------------------------------*/
84/*---------------------------------------------------------------------------*/
85
87setMassAsCriterion(bool active)
88{
89 m_internal->setMassAsCriterion(m_mesh_handle.mesh(), active);
90}
91
92/*---------------------------------------------------------------------------*/
93/*---------------------------------------------------------------------------*/
94
96setNbCellsAsCriterion(bool active)
97{
98 m_internal->setNbCellsAsCriterion(m_mesh_handle.mesh(), active);
99}
100
101/*---------------------------------------------------------------------------*/
102/*---------------------------------------------------------------------------*/
103
105setCellCommContrib(bool active)
106{
107 m_internal->setCellCommContrib(m_mesh_handle.mesh(), active);
108}
109
110/*---------------------------------------------------------------------------*/
111/*---------------------------------------------------------------------------*/
112
114setComputeComm(bool active)
115{
116 m_internal->setComputeComm(m_mesh_handle.mesh(), active);
117}
118
119/*---------------------------------------------------------------------------*/
120/*---------------------------------------------------------------------------*/
121
124{
125 return m_internal->nbCriteria(m_mesh_handle.mesh());
126}
127
128/*---------------------------------------------------------------------------*/
129/*---------------------------------------------------------------------------*/
130
131} // namespace Arcane
132
133/*---------------------------------------------------------------------------*/
134/*---------------------------------------------------------------------------*/
Interface du gestionnaire d'un sous-domaine.
Definition ISubDomain.h:74
void setNbCellsAsCriterion(bool active) override
Méthode permettant de dire si le nombre de mailles dans un sous-domaine doit être un critère pour l'é...
void addMass(VariableCellInt32 &count, const String &entity) override
Méthode permettant d'ajouter un critère pour chaque maille.
Integer nbCriteria() override
Méthode permettant d'obtenir le nombre de critères déjà enregistrés.
void addCommCost(VariableFaceInt32 &count, const String &entity) override
Méthode permettant d'ajouter un critère pour chaque face.
MeshCriteriaLoadBalanceMng(ISubDomain *sd, const MeshHandle &mesh_handle)
Constructeur.
void addCriterion(VariableCellInt32 &count) override
Méthode permettant d'ajouter un critère pour chaque maille.
void setMassAsCriterion(bool active) override
Méthode permettant de dire si la masse de données de chaque maille est un critère pour l'équilibre de...
void reset() override
Méthode permettant d'effacer les critères déjà ajoutés.
void setCellCommContrib(bool active) override
Méthode permettant de dire si la masse des communications entre les mailles doit être un critère pour...
Handle sur un maillage.
Definition MeshHandle.h:47
IMesh * mesh() const
Maillage associé.
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 -*-