Arcane  4.1.12.0
Developer documentation
Loading...
Searching...
No Matches
IItemFamilyExchanger.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2026 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/* IItemFamilyExchanger.h (C) 2000-2025 */
9/* */
10/* Exchange of family entities between sub-domains. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_CORE_IITEMFAMILYEXCHANGER_H
13#define ARCANE_CORE_IITEMFAMILYEXCHANGER_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/utils/List.h"
18#include "arcane/utils/TraceAccessor.h"
19
20#include "arcane/core/VariableCollection.h"
21
22#include "arcane/mesh/MeshGlobal.h"
23
24#include <set>
25
26/*---------------------------------------------------------------------------*/
27/*---------------------------------------------------------------------------*/
28
29namespace Arcane
30{
31
32/*---------------------------------------------------------------------------*/
33/*---------------------------------------------------------------------------*/
34
36
37/*---------------------------------------------------------------------------*/
38/*---------------------------------------------------------------------------*/
39
62class ARCANE_CORE_EXPORT IItemFamilyExchanger
63{
64 public:
65
66 virtual ~IItemFamilyExchanger() {}
67
68 public:
69
83 virtual void computeExchangeItems() = 0;
84
86 virtual void setExchangeItems(ConstArrayView<std::set<Int32>> items_to_send) = 0;
87
93 virtual bool computeExchangeInfos() = 0;
94
96 virtual void prepareToSend() = 0;
97 virtual void releaseBuffer() = 0;
98
113 virtual void readAndAllocItems() = 0;
114 virtual void readAndAllocSubMeshItems() = 0;
115 virtual void readAndAllocItemRelations() = 0;
116
118 virtual void readGroups() = 0;
119
121 virtual void readVariables() = 0;
122
135 virtual void removeSentItems() = 0;
136
138 virtual void processExchange() = 0;
139
146 virtual void finalizeExchange() = 0;
147
149 virtual IItemFamily* itemFamily() = 0;
150
152 virtual void setParallelExchangerOption(const ParallelExchangerOptions& options) = 0;
153};
154
155/*---------------------------------------------------------------------------*/
156/*---------------------------------------------------------------------------*/
157
158} // End namespace Arcane
159
160/*---------------------------------------------------------------------------*/
161/*---------------------------------------------------------------------------*/
162
163#endif
Constant view of an array of type T.
Exchange of entities and their characteristics for a given family.
virtual void setParallelExchangerOption(const ParallelExchangerOptions &options)=0
Sets the options used during entity exchange.
virtual void processExchange()=0
Sends the exchange messages.
virtual void removeSentItems()=0
Removes the sent entities.
virtual void prepareToSend()=0
Prepares the sending structures.
virtual void readVariables()=0
After receiving messages, reads the variable values.
virtual void readGroups()=0
After receiving messages, reads the groups.
virtual IItemFamily * itemFamily()=0
Associated family.
virtual void finalizeExchange()=0
Finalizes the exchange.
virtual bool computeExchangeInfos()=0
Determines the information necessary for the exchanges.
virtual void setExchangeItems(ConstArrayView< std::set< Int32 > > items_to_send)=0
Positions the list of entities to exchange.
virtual void readAndAllocItems()=0
After receiving messages, reads and creates the transferred entities.
virtual void computeExchangeItems()=0
Determines the list of entities to exchange.
Interface of an entity family.
Definition IItemFamily.h:83
Options for IParallelMng::processExchange().
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --