Arcane  v3.16.2.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
MeshNodeMerger.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/* MeshNodeMerger.h (C) 2000-2025 */
9/* */
10/* Fusion de nœuds d'un maillage. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_MESH_MESHNODEMERGER_H
13#define ARCANE_MESH_MESHNODEMERGER_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/utils/TraceAccessor.h"
18#include "arcane/mesh/MeshGlobal.h"
19
20#include <map>
21
22/*---------------------------------------------------------------------------*/
23/*---------------------------------------------------------------------------*/
24
25namespace Arcane
26{
27class IMesh;
28}
29
30namespace Arcane::mesh
31{
32/*---------------------------------------------------------------------------*/
33/*---------------------------------------------------------------------------*/
34
35class NodeFamily;
36class EdgeFamily;
37class FaceFamily;
38class CellFamily;
39
40/*---------------------------------------------------------------------------*/
41/*---------------------------------------------------------------------------*/
52class MeshNodeMerger
53: public TraceAccessor
54{
55public:
56
57 explicit MeshNodeMerger(IMesh* mesh);
58
59 public:
60
61 void mergeNodes(Int32ConstArrayView nodes_local_id,
62 Int32ConstArrayView nodes_to_merge_local_id,
63 bool allow_non_corresponding_face = false);
64
65 private:
66
67 IMesh* m_mesh = nullptr;
68 NodeFamily* m_node_family = nullptr;
69 EdgeFamily* m_edge_family = nullptr;
70 FaceFamily* m_face_family = nullptr;
71 CellFamily* m_cell_family = nullptr;
72 std::map<Node,Node> m_nodes_correspondance;
73 std::map<Face,Face> m_faces_correspondance;
74};
75
76/*---------------------------------------------------------------------------*/
77/*---------------------------------------------------------------------------*/
78
79} // namespace Arcane::mesh
80
81/*---------------------------------------------------------------------------*/
82/*---------------------------------------------------------------------------*/
83
84#endif
TraceAccessor(ITraceMng *m)
Construit un accesseur via le gestionnaire de trace m.
Famille de mailles.
Definition CellFamily.h:46
Famille d'arêtes.
Definition EdgeFamily.h:35
Famille de faces.
Definition FaceFamily.h:53
void mergeNodes(Int32ConstArrayView nodes_local_id, Int32ConstArrayView nodes_to_merge_local_id, bool allow_non_corresponding_face=false)
Famille de noeuds.
Definition NodeFamily.h:37
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
ConstArrayView< Int32 > Int32ConstArrayView
Equivalent C d'un tableau à une dimension d'entiers 32 bits.
Definition UtilsTypes.h:569