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