Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
IMeshExchanger.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2022 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/* IMeshExchanger.h (C) 2000-2022 */
9/* */
10/* Gestion d'un échange de maillage entre sous-domaines. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_IMESHEXCHANGER_H
13#define ARCANE_IMESHEXCHANGER_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
18
19/*---------------------------------------------------------------------------*/
20/*---------------------------------------------------------------------------*/
21
22namespace Arcane
23{
24
25/*---------------------------------------------------------------------------*/
26/*---------------------------------------------------------------------------*/
27
28class IPrimaryMesh;
29class IItemFamily;
30class IItemFamilyExchanger;
31
32/*---------------------------------------------------------------------------*/
33/*---------------------------------------------------------------------------*/
41class ARCANE_CORE_EXPORT IMeshExchanger
42{
43 public:
45 enum class ePhase
46 {
47 Init = 0,
48 ComputeInfos,
49 ProcessExchange,
50 RemoveItems,
51 AllocateItems,
52 UpdateItemGroups,
53 UpdateVariables,
54 Finalize,
55 Ended
56 };
57 public:
58
59 virtual ~IMeshExchanger() {} //<! Libère les ressources
60
61 public:
62
85 virtual bool computeExchangeInfos() =0;
86
99 virtual void processExchange() =0;
100
111 virtual void removeNeededItems() =0;
112
121 virtual void allocateReceivedItems() =0;
122
131 virtual void updateItemGroups() =0;
132
141 virtual void updateVariables() =0;
142
154 virtual void finalizeExchange() =0;
155
157 virtual IPrimaryMesh* mesh() const =0;
158
161
163 virtual ePhase phase() const =0;
164};
165
166/*---------------------------------------------------------------------------*/
167/*---------------------------------------------------------------------------*/
168
169} // End namespace Arcane
170
171/*---------------------------------------------------------------------------*/
172/*---------------------------------------------------------------------------*/
173
174#endif
Fichier de configuration d'Arcane.
Échange des entités et leurs caractéristiques pour une famille donnée.
Interface d'une famille d'entités.
Gestion d'un échange de maillage entre sous-domaines.
virtual void removeNeededItems()=0
Supprime de ce sous-domaine les entités qui ne doivent plus s'y trouver suite à l'échange.
virtual void allocateReceivedItems()=0
Alloue les entités réceptionnées depuis les autre sous-domaines.
virtual ePhase phase() const =0
Phase de l'échange dans laquelle on se trouve.
virtual void processExchange()=0
Procède à l'échange des informations entre les sous-domaines.
virtual void finalizeExchange()=0
Finalise les échanges.
virtual void updateVariables()=0
Mise à jour des variables.
virtual bool computeExchangeInfos()=0
Calcule les infos à envoyer/recevoir des autres sous-domaines.
virtual IPrimaryMesh * mesh() const =0
Maillage associé à cet échangeur.
virtual IItemFamilyExchanger * findExchanger(IItemFamily *family)=0
Échangeur associé à la famille family. Lance une exception si non trouvé
virtual void updateItemGroups()=0
Mise à jour des groupes d'entités.
ePhase
Indique les différentes phases de l'échange.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-