Arcane  v3.14.10.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
IMeshPartitionerBase.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/* IMeshPartitioner.h (C) 2000-2021 */
9/* */
10/* Interface d'un partitionneur de maillage. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_IMESHPARTITIONERBASE_H
13#define ARCANE_IMESHPARTITIONERBASE_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/ArcaneTypes.h"
18
19/*---------------------------------------------------------------------------*/
20/*---------------------------------------------------------------------------*/
21
22namespace Arcane
23{
24
25/*---------------------------------------------------------------------------*/
26/*---------------------------------------------------------------------------*/
27/*!
28 * \brief Interface d'un partitionneur de maillage.
29 */
31{
32 public:
33
34 virtual ~IMeshPartitionerBase() = default; //!< Libère les ressources.
35
36 public:
37
38 /*!
39 * Repartitionne le maillage \a mesh
40 *
41 * Cette méthode change les propriétaires des entités et
42 * remplit la variable IItemFamily::itemsNewOwner() de chaque famille d'entité
43 * du maillage \a mesh avec le numéro du nouveau sous-domaine propriétaire.
44 *
45 * \note Cette méthode est réservée aux développeurs Arcane.
46 * Si un module souhaite effectuer un repartitionnement,
47 * il faut appeler la méthode
48 * IMeshUtilities::partitionAndExchangeMeshWithReplication()
49 * qui gère à la fois le partitionnement et l'échange des
50 * informations et supporte la réplication de domaine.
51 */
52 virtual void partitionMesh(bool initial_partition) =0;
53
54 //! Maillage associé
56
57 //! Notification lors de la fin d'un repartionnement (après échange des entités)
58 virtual void notifyEndPartition() =0;
59 };
60
61/*---------------------------------------------------------------------------*/
62/*---------------------------------------------------------------------------*/
63
64} // End namespace Arcane
65
66/*---------------------------------------------------------------------------*/
67/*---------------------------------------------------------------------------*/
68
69#endif
Interface d'un partitionneur de maillage.
virtual IPrimaryMesh * primaryMesh()=0
Maillage associé
virtual ~IMeshPartitionerBase()=default
Libère les ressources.
virtual void partitionMesh(bool initial_partition)=0
virtual void notifyEndPartition()=0
Notification lors de la fin d'un repartionnement (après échange des entités)
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-