Arcane  v3.16.4.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
IMeshPartitionConstraint.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2025 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/* IMeshPartitionConstraint.h (C) 2000-2025 */
9/* */
10/* Interface d'une contrainte de partitionnement d'un maillage. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_CORE_IMESHPARTITIONCONSTRAINT_H
13#define ARCANE_CORE_IMESHPARTITIONCONSTRAINT_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
18
19/*---------------------------------------------------------------------------*/
20/*---------------------------------------------------------------------------*/
21
22namespace Arcane
23{
24
25/*---------------------------------------------------------------------------*/
26/*---------------------------------------------------------------------------*/
27/*!
28 * \brief Interface d'une contrainte de partitionnement d'un maillage.
29 *
30 * Les instances de cette interface sont gérées par un
31 * IMeshPartitionConstraintMng.
32 */
34{
35 public:
36
37 virtual ~IMeshPartitionConstraint() = default; //!< Libère les ressources
38
39 public:
40
41 /*!
42 * \brief Ajoute un ensemble de contraintes sur les mailles.
43 *
44 * Ajoute dans le tableau \a linked_cells un ensemble de couples de
45 * uniqueId() de mailles qui doivent rester dans la même partition.
46 * Par exemple, si les mailles 25 et 23 doivent rester connectées, il
47 * suffit d'appeler:
48 * \code
49 * linked_cells.add(23);
50 * linked_cells.add(25);
51 * \endcode
52 *
53 * Il faut toujours ajouter des couples de uniqueId(), en répétant
54 * éventuellement les mailles. Par exemple, si on souhaite
55 * que les mailles 35, 37 et 39,il faut faire comme suit:
56 * \code
57 * linked_cells.add(35);
58 * linked_cells.add(37);
59 * linked_cells.add(35);
60 * linked_cells.add(39);
61 * \endcode
62 * Le tableau \a linked_cells doit avoir une taille multiple de 2.
63 * Le tableau \a linked owners indique pour chaque couple à quel sous-domaine
64 * il doit appartenir.
65 *
66 * TODO: Supprimer \a linked_owners
67 *
68 * \warning : chaque paire doit commencer par la cellule d'uid le plus petit.
69 * Le "owner" indicate for every couple that correspond to the first cell.
70 */
71 virtual void addLinkedCells(Int64Array& linked_cells, Int32Array& linked_owners) = 0;
72};
73
74/*---------------------------------------------------------------------------*/
75/*---------------------------------------------------------------------------*/
76
77} // namespace Arcane
78
79/*---------------------------------------------------------------------------*/
80/*---------------------------------------------------------------------------*/
81
82#endif
Déclarations des types généraux de Arcane.
Interface d'une contrainte de partitionnement d'un maillage.
virtual ~IMeshPartitionConstraint()=default
Libère les ressources.
virtual void addLinkedCells(Int64Array &linked_cells, Int32Array &linked_owners)=0
Ajoute un ensemble de contraintes sur les mailles.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
Array< Int64 > Int64Array
Tableau dynamique à une dimension d'entiers 64 bits.
Definition UtilsTypes.h:212
Array< Int32 > Int32Array
Tableau dynamique à une dimension d'entiers 32 bits.
Definition UtilsTypes.h:214