Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
EdgeFamily.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/* EdgeFamily.h (C) 2000-2022 */
9/* */
10/* Famille d'arêtes. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_MESH_EDGEFAMILY_H
13#define ARCANE_MESH_EDGEFAMILY_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/mesh/ItemFamily.h"
18#include "arcane/IItemFamilyModifier.h"
19#include "arcane/mesh/ItemInternalConnectivityIndex.h"
20
21/*---------------------------------------------------------------------------*/
22/*---------------------------------------------------------------------------*/
23
24namespace Arcane::mesh
25{
26
27/*---------------------------------------------------------------------------*/
28/*---------------------------------------------------------------------------*/
32class ARCANE_MESH_EXPORT EdgeFamily
33: public ItemFamily
35{
36 class TopologyModifier;
40
41 public:
42
43 EdgeFamily(IMesh* mesh,const String& name);
44 virtual ~EdgeFamily(); //<! Libère les ressources
45
46 public:
47
48 virtual void build() override;
49 virtual void preAllocate(Integer nb_item);
50 virtual void computeSynchronizeInfos() override;
51
52 public:
53
55 // IItemFamilyModifier interface
56 Item allocOne(Int64 uid,ItemTypeId type_id, MeshInfos& mesh_info) override;
57 Item findOrAllocOne(Int64 uid,ItemTypeId type_id,MeshInfos& mesh_info, bool& is_alloc) override;
58 IItemFamily* family() override {return this;}
59
60 ItemInternal* allocOne(Int64 uid);
61 ItemInternal* findOrAllocOne(Int64 uid,bool& is_alloc);
62
63 void replaceNode(ItemLocalId edge,Integer index,ItemLocalId node);
64
66 void addCellToEdge(Edge edge,Cell new_cell);
68 void addFaceToEdge(Edge edge,Face new_face);
70 void removeCellFromEdge(Edge edge,ItemLocalId cell_to_remove_lid);
72 void removeFaceFromEdge(ItemLocalId edge,ItemLocalId face_to_remove);
74 void removeEdgeIfNotConnected(Edge edge);
75
77
78 void setConnectivity(const Integer c);
79
80 protected:
81
82 ItemTypeInfo* m_edge_type = nullptr;
83 bool m_has_edge = false;
84 Integer m_node_prealloc = 0;
85 Integer m_face_prealloc = 0;
86 Integer m_cell_prealloc = 0;
87 Integer m_mesh_connectivity = 0;
88 NodeConnectivity* m_node_connectivity = nullptr;
89 FaceConnectivity* m_face_connectivity = nullptr;
90 CellConnectivity* m_cell_connectivity = nullptr;
91
92 private:
93
95 NodeFamily* m_node_family = nullptr;
96
97 inline void _removeEdge(Edge edge);
98 inline void _createOne(ItemInternal* item,Int64 uid);
99};
100
101/*---------------------------------------------------------------------------*/
102/*---------------------------------------------------------------------------*/
103
104} // End namespace Arcane::mesh
105
106/*---------------------------------------------------------------------------*/
107/*---------------------------------------------------------------------------*/
108
109#endif
Maille d'un maillage.
Definition Item.h:1178
Arête d'une maille.
Definition Item.h:798
Face d'une maille.
Definition Item.h:932
Interface de modification d'une famille.
Interface d'une famille d'entités.
Structure interne d'une entité de maillage.
Index d'un Item dans une variable.
Definition ItemLocalId.h:40
Type d'une entité (Item).
Definition ItemTypeId.h:32
Infos sur un type d'entité du maillage.
Classe de base d'un élément de maillage.
Definition Item.h:83
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Definition Lima.cc:120
Famille d'arêtes.
Definition EdgeFamily.h:35
Famille d'entités.
Definition ItemFamily.h:76
Classe factorisant des informations sur le maillage.
Definition MeshInfos.h:36
Famille de noeuds.
Definition NodeFamily.h:37
Chaîne de caractères unicode.