Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
IItemFamilyNetwork.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/* IItemFamilyNetwork.h (C) 2000-2017 */
9/* */
10/* Interface to handle ItemFamily relations through their connectivities. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_IITEMFAMILYNETWORK_H_
13#define ARCANE_IITEMFAMILYNETWORK_H_
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include <functional>
18#include <set>
19
21
22#include "arcane/IItemFamily.h"
23#include "arcane/IIncrementalItemConnectivity.h"
24#include "arcane/IGraph2.h"
25
26
27/*---------------------------------------------------------------------------*/
28/*---------------------------------------------------------------------------*/
29
30ARCANE_BEGIN_NAMESPACE
31
32/*---------------------------------------------------------------------------*/
33/*---------------------------------------------------------------------------*/
34
36{
37public:
38
39 virtual ~IItemFamilyNetwork() {}
40
41public :
42 typedef std::function<void (IItemFamily*)> IItemFamilyNetworkTask;
43
44public:
45 enum eSchedulingOrder{
46 TopologicalOrder,
47 InverseTopologicalOrder,
49 };
50
51 // TMP for debug
52public:
53 static constexpr bool plug_serializer = true;
54
55public:
56 virtual bool isActivated() const = 0 ;
57
62
67
71
74 virtual IIncrementalItemConnectivity* getStoredConnectivity(IItemFamily* source_family, IItemFamily* target_family, const String& name, bool& is_dependency) =0;
75
78
81 virtual SharedArray<IIncrementalItemConnectivity*> getParentConnectivities(IItemFamily* target_family) =0;
82
86
90
92 virtual const std::set<IItemFamily*>& getFamilies() const =0;
93
94 virtual SharedArray<IItemFamily*> getFamilies(eSchedulingOrder order) const =0;
95
97 virtual void schedule(IItemFamilyNetworkTask task, eSchedulingOrder order = TopologicalOrder) =0;
98
100 virtual void setIsStored(IIncrementalItemConnectivity* connectivity) = 0;
101
103 virtual bool isStored(IIncrementalItemConnectivity* connectivity) = 0;
104
106 virtual bool isDeep(IIncrementalItemConnectivity* connectivity) = 0;
107
109 virtual Integer registerConnectedGraph(IGraph2* graph) = 0 ;
110
112 virtual void releaseConnectedGraph(Integer graph_id) = 0 ;
113
116
117};
118
119/*---------------------------------------------------------------------------*/
120/*---------------------------------------------------------------------------*/
121
122ARCANE_END_NAMESPACE
123
124/*---------------------------------------------------------------------------*/
125/*---------------------------------------------------------------------------*/
126
127#endif /* IITEMFAMILYNETWORK_H_ */
Fichier de configuration d'Arcane.
Interface d'un graphe du maillage.
Definition IGraph2.h:90
Interface pour gérer une connectivité incrémentale.
virtual IIncrementalItemConnectivity * getStoredConnectivity(IItemFamily *source_family, IItemFamily *target_family, const String &name)=0
Retourne, si elle es associée à un stockage, la connectivité entre les familles source_family et targ...
virtual bool isStored(IIncrementalItemConnectivity *connectivity)=0
Récupère l'information relative au stockage de la connectivité
virtual void addDependency(IItemFamily *master_family, IItemFamily *slave_family, IIncrementalItemConnectivity *slave_to_master_connectivity, bool is_deep_connectivity=true)=0
virtual const std::set< IItemFamily * > & getFamilies() const =0
Obtenir la liste de toutes les familles.
virtual List< IIncrementalItemConnectivity * > getConnectivities()=0
Obtenir la liste de toutes les connectivités, qu'elles soient relation ou dépendance.
virtual SharedArray< IIncrementalItemConnectivity * > getChildConnectivities(IItemFamily *source_family)=0
Obtenir la liste de toutes les connectivités (dépendances ou relations), filles d'une famille source_...
virtual bool isDeep(IIncrementalItemConnectivity *connectivity)=0
Récupère l'information relative au stockage de la connectivité
virtual void removeConnectedDoFsFromCells(Int32ConstArrayView local_ids)=0
supprime les DoFs et les liens entre DoFs connectés aux mailles supprimées
virtual void setIsStored(IIncrementalItemConnectivity *connectivity)=0
Positionne une connectivité comme étant stockée.
virtual void schedule(IItemFamilyNetworkTask task, eSchedulingOrder order=TopologicalOrder)=0
Ordonnance l'exécution d'une tâche, dans l'ordre topologique ou topologique inverse du graphe de dépe...
virtual IIncrementalItemConnectivity * getConnectivity(IItemFamily *source_family, IItemFamily *target_family, const String &name)=0
Retourne la connectivité entre les familles source_family et target_family de nom name,...
virtual SharedArray< IIncrementalItemConnectivity * > getChildDependencies(IItemFamily *source_family)=0
Obtenir la liste de toutes les dépendances, filles d'une famille source_family ou parentes d'une fami...
virtual SharedArray< IIncrementalItemConnectivity * > getChildRelations(IItemFamily *source_family)=0
Obtenir la liste de toutes les relations, filles d'une famille source_family ou parentes d'une famill...
virtual Integer registerConnectedGraph(IGraph2 *graph)=0
enregistre un graphe gérant des DoFs connectés au maillage
virtual void addRelation(IItemFamily *source_family, IItemFamily *target_family, IIncrementalItemConnectivity *source_to_target_connectivity)=0
virtual void releaseConnectedGraph(Integer graph_id)=0
dé enregistre un graphe gérant des DoFs connectés au maillage
Interface d'une famille d'entités.
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Definition Lima.cc:120
Vue constante d'un tableau de type T.
Chaîne de caractères unicode.