Arcane  v3.14.10.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
src/arcane/cartesianmesh/CartesianMeshRenumberingInfo.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2024 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/* CartesianMeshRenumberingInfo.h (C) 2000-2024 */
9/* */
10/* Informations pour la renumérotation. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_CARTESIANMESH_CARTESIANMESHRENUMBERINGINFO_H
13#define ARCANE_CARTESIANMESH_CARTESIANMESHRENUMBERINGINFO_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
18#include "arcane/cartesianmesh/CartesianPatch.h"
19
20/*---------------------------------------------------------------------------*/
21/*---------------------------------------------------------------------------*/
22
23namespace Arcane
24{
25/*!
26 * \brief Informations pour la renumérotation.
27 *
28 * Si on renumérote à la fois les uniqueId() des faces et des entités des
29 * patchs, la renumérotation des faces a lieu en premier.
30 */
31class ARCANE_CARTESIANMESH_EXPORT CartesianMeshRenumberingInfo
32{
33 public:
34
35 /*!
36 * \brief Méthode pour renuméroter les patchs.
37 *
38 * Les valeurs possibles sont les suivantes:
39 * - 0 pas de renumérotation.
40 * - 1 renumérotation par défaut.
41 * - 2 version expérimentale de la renumérotation
42 * - 3 comme la version 1 mais avec une implémentation différente
43 * pour les maillages 2D.
44 * - 4 comme 1, mais utilise la même numérotation avec ou sans dé-raffinement
45 * du maillage initial.
46 *
47 * En cas de renumérotation, les uniqueId() des entités (Node,Face,Cell)
48 * des patches sont renumérotées pour avoir la même numérotation quel
49 * que soit le découpage.
50 * La numérotation n'est pas contigue. Seules les entités filles
51 * des entités du patch parentPatch() sont renumérotées.
52 */
53 void setRenumberPatchMethod(Int32 v) { m_renumber_patch_method = v; }
54 Int32 renumberPatchMethod() const { return m_renumber_patch_method; }
55
56 /*!
57 * \brief Méthode pour renuméroter les faces.
58 *
59 * Si 0, il n'y a pas de renumérotation. La seule autre valeur valide est 1.
60 * Dans ce cas la renumérotation se base sur une numérotation cartésienne.
61 */
62 void setRenumberFaceMethod(Int32 v) { m_renumber_faces_method = v; }
63 Int32 renumberFaceMethod() const { return m_renumber_faces_method; }
64
65 /*!
66 * \brief Indique si on retrie les entités après renumérotation.
67 *
68 * Le tri appelle IItemFamily::compactItems(true) pour chaque famille.
69 * Cela provoque aussi un appel à ICartesianMesh::computeDirections()
70 * pour recalculer les directions qui sont invalidées suite au tri.
71 */
72 void setSortAfterRenumbering(bool v) { m_is_sort = v; }
73 bool isSortAfterRenumbering() const { return m_is_sort; }
74
75 /*!
76 * \brief Numéro du patch parent pour la renumérotation.
77 *
78 * Patch parent pour la renumérotation. Pour la renumérotation, on parcourt
79 * récursivement les mailles filles de ce patch et on les renumérote ainsi
80 * que les entités liées à ces mailles (noeuds et faces).
81 *
82 * Les entités de ce patch (mailles, noeuds et faces) ne sont pas renumérotées.
83 *
84 * Si non spécifié, l'implémentation utilisera le patch 0 comme patch parent.
85 *
86 * \note Cette propriété n'est prise en compte que si renumberPatchMethod()==1.
87 */
88 void setParentPatch(CartesianPatch patch) { m_parent_patch = patch; }
89 CartesianPatch parentPatch() const { return m_parent_patch; }
90
91 private:
92
93 Int32 m_renumber_patch_method = 0;
94 Int32 m_renumber_faces_method = 0;
95 CartesianPatch m_parent_patch;
96 bool m_is_sort = false;
97};
98
99/*---------------------------------------------------------------------------*/
100/*---------------------------------------------------------------------------*/
101
102} // End namespace Arcane
103
104/*---------------------------------------------------------------------------*/
105/*---------------------------------------------------------------------------*/
106
107#endif
108
Déclarations des types généraux de Arcane.
void setSortAfterRenumbering(bool v)
Indique si on retrie les entités après renumérotation.
void setRenumberFaceMethod(Int32 v)
Méthode pour renuméroter les faces.
void setParentPatch(CartesianPatch patch)
Numéro du patch parent pour la renumérotation.
void setRenumberPatchMethod(Int32 v)
Méthode pour renuméroter les patchs.
Patch AMR d'un maillage cartésien.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-