Arcane  4.1.12.0
User documentation
Loading...
Searching...
No Matches
IMeshUniqueIdMng.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2026 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/* IMeshUniqueIdMng.h (C) 2000-2025 */
9/* */
10/* Interface of the uniqueId() numbering manager of a mesh. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_IMESHUNIQUEIDMNG_H
13#define ARCANE_IMESHUNIQUEIDMNG_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
18
19/*---------------------------------------------------------------------------*/
20/*---------------------------------------------------------------------------*/
21
22namespace Arcane
23{
24
25/*---------------------------------------------------------------------------*/
26/*---------------------------------------------------------------------------*/
27
28/*!
29 * \internal
30 *
31 * Interface of the uniqueId() numbering manager for mesh entities.
32 *
33 * This manager allows managing the calculation of uniqueIds() for entities
34 * of the mesh that are implicitly created as faces or edges.
35 */
36class ARCANE_CORE_EXPORT IMeshUniqueIdMng
37{
38 public:
39
40 //! Frees resources
41 virtual ~IMeshUniqueIdMng() = default;
42
43 public:
44
45 /*!
46 * \brief Sets the face numbering version.
47 *
48 * Valid values are 0, 1, 2, and 3. The default value is 1.
49 * If the version is 0, there is no renumbering. In parallel,
50 * the uniqueIds() of the faces must be consistent between
51 * subdomains.
52 */
53 virtual void setFaceBuilderVersion(Integer n) = 0;
54
55 //! Face numbering version.
56 virtual Integer faceBuilderVersion() const = 0;
57
58 /*!
59 * \brief Sets the edge numbering version.
60 *
61 * Valid values are 0, 1, and 2. Value 1 works regardless of
62 * the number of cells, but the mesh must be read by
63 * a single processor. Value 2 only works if the maximum of the
64 * node uniqueIds() does not exceed 2^31.
65 *
66 * If the version is 0, there is no renumbering. In parallel,
67 * the uniqueIds() of the faces must be consistent between
68 * subdomains.
69 */
70 virtual void setEdgeBuilderVersion(Integer n) = 0;
71
72 //! Edge numbering version.
73 virtual Integer edgeBuilderVersion() const = 0;
74
75 /*!
76 * \brief Indicates whether the uniqueIds() of edges and faces
77 * are determined based on the uniqueIds() of the nodes they consist of.
78 *
79 * This method must be called before setting the mesh dimension
80 * (IPrimaryMesh::setDimension()).
81 *
82 * If active, when an edge or face is created on the fly,
83 * MeshUtils::generateHashUniqueId() is used to generate the
84 * uniqueId() of the entity. This allows automatically creating
85 * edges or faces in parallel.
86 *
87 * \warning If this mechanism is used, it should not be mixed
88 * with the manual creation of edges or faces (via IMeshModifier)
89 * or you must use MeshUtils::generateHashUniqueId() to generate
90 * the same identifier as the one created on the fly.
91 */
93
94 //! Indicates the mechanism used to number edges or faces
96};
97
98/*---------------------------------------------------------------------------*/
99/*---------------------------------------------------------------------------*/
100
101} // End namespace Arcane
102
103/*---------------------------------------------------------------------------*/
104/*---------------------------------------------------------------------------*/
105
106#endif
Declarations of Arcane's general types.
virtual void setFaceBuilderVersion(Integer n)=0
Sets the face numbering version.
virtual void setEdgeBuilderVersion(Integer n)=0
Sets the edge numbering version.
virtual bool isUseNodeUniqueIdToGenerateEdgeAndFaceUniqueId() const =0
Indicates the mechanism used to number edges or faces.
virtual void setUseNodeUniqueIdToGenerateEdgeAndFaceUniqueId(bool v)=0
Indicates whether the uniqueIds() of edges and faces are determined based on the uniqueIds() of the n...
virtual Integer edgeBuilderVersion() const =0
Edge numbering version.
virtual Integer faceBuilderVersion() const =0
Face numbering version.
virtual ~IMeshUniqueIdMng()=default
Frees resources.
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --
Int32 Integer
Type representing an integer.