12#ifndef ARCANE_MESH_MESHEXCHANGER_H
13#define ARCANE_MESH_MESHEXCHANGER_H
17#include "arcane/utils/TraceAccessor.h"
18#include "arcane/utils/List.h"
19#include "arcane/core/IMeshExchanger.h"
20#include "arcane/core/ParallelExchangerOptions.h"
21#include "arcane/core/IMesh.h"
41class ARCANE_MESH_EXPORT MeshExchanger
47 typedef std::map<IItemFamily*, IItemFamilyExchanger*> ItemFamilyExchangerMap;
70 void _setNextPhase(ePhase next_phase);
76 ItemFamilyExchangerMap m_family_exchanger_map;
81 void _checkPhase(ePhase wanted_phase);
82 void _buildWithItemFamilyNetwork();
Exchange of entities and their characteristics for a given family.
Interface of an entity family.
Management of a mesh exchange between subdomains.
ePhase
Indicates the different phases of the exchange.
Interface managing execution time statistics.
Implementation of a collection of elements in vector form.
Options for IParallelMng::processExchange().
TraceAccessor(ITraceMng *m)
Constructs an accessor via the trace manager m.
void updateVariables() override
Update of variables.
void processExchange() override
Performs the exchange of information between subdomains.
IItemFamilyExchanger * findExchanger(IItemFamily *family) override
Exchanger associated with the family. Throws an exception if not found.
void finalizeExchange() override
Finalizes the exchanges.
void allocateReceivedItems() override
Allocates the entities received from other subdomains.
ePhase phase() const override
Phase of the exchange we are currently in.
bool computeExchangeInfos() override
Calculates the information to send/receive from other subdomains.
void updateItemGroups() override
Update of entity groups.
void removeNeededItems() override
Deletes from this subdomain the entities that should no longer be there following the exchange.
IPrimaryMesh * mesh() const override
Mesh associated with this exchanger.
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --