Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
IGraph2.h
1
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/* IGraph2.h (C) 2000-2011 */
9/* */
10/* Interface d'un graphe d'un maillage . */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_IGRAPH2_H
13#define ARCANE_IGRAPH2_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
18#include "arcane/ArcaneTypes.h"
19#include "arcane/ItemTypes.h"
20#include "arcane/IItemConnectivity.h"
21#include "arcane/IndexedItemConnectivityView.h"
22
23/*---------------------------------------------------------------------------*/
24/*---------------------------------------------------------------------------*/
25
26ARCANE_BEGIN_NAMESPACE
27
28/*---------------------------------------------------------------------------*/
29/*---------------------------------------------------------------------------*/
30
32static const Integer NB_DUAL_ITEM_TYPE = 5;
33
34extern "C++" ARCANE_CORE_EXPORT eItemKind
35dualItemKind(Integer type);
36
37class IGraphModifier2;
38class IGraph2 ;
39/*---------------------------------------------------------------------------*/
40/*---------------------------------------------------------------------------*/
46/*---------------------------------------------------------------------------*/
47/*---------------------------------------------------------------------------*/
51class ARCANE_CORE_EXPORT IGraphConnectivity
52{
53 public :
54 virtual ~IGraphConnectivity() {} //<! Libère les ressources
55
57 virtual Item dualItem(const DoF& dualNode) const = 0 ;
58
60 virtual DoFVectorView links(const DoF& dualNode) const = 0 ;
61
63 virtual DoFVectorView dualNodes(const DoF& link) const = 0 ;
64};
65
66class ARCANE_CORE_EXPORT IGraphConnectivityObserver
67{
68public:
70
71 virtual void notifyUpdateConnectivity() = 0 ;
72
73};
74
75class ARCANE_CORE_EXPORT IGraphObserver
76{
77public:
78 virtual ~IGraphObserver() {}
79
80 virtual void notifyUpdate() = 0 ;
81
82};
83
84/*---------------------------------------------------------------------------*/
85/*---------------------------------------------------------------------------*/
89class ARCANE_CORE_EXPORT IGraph2
90{
91public:
92
93 virtual ~IGraph2() {} //<! Libère les ressources
94
95public:
96
97 virtual IGraphModifier2* modifier() = 0 ;
98
99 virtual const IGraphConnectivity* connectivity() const = 0 ;
100
101 virtual Integer registerNewGraphConnectivityObserver(IGraphConnectivityObserver* observer) = 0 ;
102
103 virtual void releaseGraphConnectivityObserver(Integer observer_id) = 0 ;
104
105 virtual Integer registerNewGraphObserver(IGraphObserver* observer) = 0 ;
106
107 virtual void releaseGraphObserver(Integer observer_id) = 0 ;
108
109 virtual bool isUpdated() = 0 ;
110
111
112public:
113
115 virtual Integer nbDualNode() const =0;
116
118 virtual Integer nbLink() const =0;
119
120public:
121
123 virtual const IItemFamily* dualNodeFamily() const = 0;
124 virtual IItemFamily* dualNodeFamily() = 0;
125
127 virtual const IItemFamily* linkFamily() const = 0;
128 virtual IItemFamily* linkFamily() = 0;
129
130 virtual void printDualNodes() const = 0;
131 virtual void printLinks() const = 0;
132
133};
134
135
136/*---------------------------------------------------------------------------*/
137/*---------------------------------------------------------------------------*/
138
139ARCANE_END_NAMESPACE
140
141/*---------------------------------------------------------------------------*/
142/*---------------------------------------------------------------------------*/
143#endif
144
Fichier de configuration d'Arcane.
classe degré de liberté.
Definition Item.h:1488
Interface d'un graphe du maillage.
Definition IGraph2.h:90
virtual Integer nbLink() const =0
Nombre de liaisons du graphe.
virtual Integer nbDualNode() const =0
Nombre de noeuds duaux du graphe.
virtual const IItemFamily * dualNodeFamily() const =0
Retourne la famille des noeuds duaux.
virtual const IItemFamily * linkFamily() const =0
Retourne la famille des liaisons.
Outillage de connectivité d'un graphe.
Definition IGraph2.h:52
virtual DoFVectorView links(const DoF &dualNode) const =0
accès à la vue des links constitué du dualNode de type(DoF)
virtual Item dualItem(const DoF &dualNode) const =0
accès à l'Item dual d'un DualNode (detype DoF)
virtual DoFVectorView dualNodes(const DoF &link) const =0
accès à la vue des DualNodes constituant un liaison Link de type(DoF)
Interface d'un graphe du maillage.
Interface d'une famille d'entités.
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
eItemKind
Genre d'entité de maillage.
Int32 Integer
Type représentant un entier.