Arcane  v3.15.0.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-2024 */
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
75
78 virtual IIncrementalItemConnectivity* getStoredConnectivity(IItemFamily* source_family, IItemFamily* target_family, const String& name, bool& is_dependency) =0;
79
82
85 virtual SharedArray<IIncrementalItemConnectivity*> getParentConnectivities(IItemFamily* target_family) =0;
86
90
94
96 virtual const std::set<IItemFamily*>& getFamilies() const =0;
97
98 virtual SharedArray<IItemFamily*> getFamilies(eSchedulingOrder order) const =0;
99
101 virtual void schedule(IItemFamilyNetworkTask task, eSchedulingOrder order = TopologicalOrder) =0;
102
104 virtual void setIsStored(IIncrementalItemConnectivity* connectivity) = 0;
105
107 virtual bool isStored(IIncrementalItemConnectivity* connectivity) = 0;
108
110 virtual bool isDeep(IIncrementalItemConnectivity* connectivity) = 0;
111
113 virtual Integer registerConnectedGraph(IGraph2* graph) = 0 ;
114
116 virtual void releaseConnectedGraph(Integer graph_id) = 0 ;
117
120
121};
122
123/*---------------------------------------------------------------------------*/
124/*---------------------------------------------------------------------------*/
125
126ARCANE_END_NAMESPACE
127
128/*---------------------------------------------------------------------------*/
129/*---------------------------------------------------------------------------*/
130
131#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 est associée à un stockage, la connectivité entre les familles source_family et tar...
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 IIncrementalItemConnectivity * getDependency(IItemFamily *source_family, IItemFamily *target_family)=0
Retourne la connectivité de dépendance entre la famille source_family et target_family.
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:149
Vue constante d'un tableau de type T.
Chaîne de caractères unicode.