Arcane  v3.14.10.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
GhostItemsVariableParallelOperation.cc
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2023 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/* GhostItemsVariableParallelOperation.cc (C) 2000-2023 */
9/* */
10/* Opérations parallèles sur les entités fantômes. */
11/*---------------------------------------------------------------------------*/
12/*---------------------------------------------------------------------------*/
13
14#include "arcane/parallel/GhostItemsVariableParallelOperation.h"
15
16#include "arcane/ItemGroup.h"
17#include "arcane/IItemFamily.h"
18#include "arcane/ItemEnumerator.h"
19#include "arcane/Item.h"
20
21/*---------------------------------------------------------------------------*/
22/*---------------------------------------------------------------------------*/
23
24namespace Arcane::Parallel
25{
26
27/*---------------------------------------------------------------------------*/
28/*---------------------------------------------------------------------------*/
29
30GhostItemsVariableParallelOperation::
31GhostItemsVariableParallelOperation(IItemFamily* family)
32: VariableParallelOperationBase(family->parallelMng())
33{
34}
35
36/*---------------------------------------------------------------------------*/
37/*---------------------------------------------------------------------------*/
38
39/*---------------------------------------------------------------------------*/
40/*---------------------------------------------------------------------------*/
41/*!
42 * \brief Construit la liste des entités à envoyer.
43 *
44 Il s'agit des entités fantômes.
45*/
46void GhostItemsVariableParallelOperation::
47_buildItemsToSend()
48{
49 auto& items_to_send = _itemsToSend();
50
51 ItemGroup all_items = itemFamily()->allItems();
52 ENUMERATE_ITEM(iitem,all_items){
53 Item item = *iitem;
54 if (!item.isOwn()){
55 items_to_send[item.owner()].add(item);
56 }
57 }
58}
59
60/*---------------------------------------------------------------------------*/
61/*---------------------------------------------------------------------------*/
62
63}
64
65/*---------------------------------------------------------------------------*/
66/*---------------------------------------------------------------------------*/
#define ENUMERATE_ITEM(name, group)
Enumérateur générique d'un groupe de noeuds.
Groupe d'entités de maillage.
Definition ItemGroup.h:49
Classe de base d'un élément de maillage.
Definition Item.h:83
bool isOwn() const
true si l'entité est appartient au sous-domaine
Definition Item.h:244
Int32 owner() const
Numéro du sous-domaine propriétaire de l'entité
Definition Item.h:229
Implémentation de la concurrence.