14#include "ItemFamilyNetwork.h"
39 m_is_activated =
true ;
54 m_is_activated =
true ;
79 _checkConnectivityName(*connectivity,name);
86 _checkConnectivityName(*connectivity,name);
120 return m_connectivity_list;
129 return _getConnectivitiesFromGraph(m_dependency_graph.outEdges(
source_family));
138 return _getConnectivitiesFromGraph(m_dependency_graph.inEdges(
target_family));
147 return _getConnectivitiesFromGraph(m_relation_graph.outEdges(
source_family));
156 return _getConnectivitiesFromGraph(m_relation_graph.inEdges(
target_family));
181_getConnectivitiesFromGraph(
const ConnectivityGraph::ConnectedEdgeSet&
connectivity_edges)
188 return connectivities;
194SharedArray<IIncrementalItemConnectivity*> ItemFamilyNetwork::
195_getConnectivitiesFromGraph(
const ConnectivityGraph::ConnectedEdgeSet& connectivity_edges1,
const ConnectivityGraph::ConnectedEdgeSet& connectivity_edges2)
197 SharedArray<IIncrementalItemConnectivity*> connectivities(connectivity_edges1.size()+connectivity_edges2.size());
199 for (
const auto& connectivity_edge : connectivity_edges1){
200 connectivities[index++] = connectivity_edge;
202 for (
const auto& connectivity_edge : connectivity_edges2){
203 connectivities[index++] = connectivity_edge;
205 return connectivities;
214 _getConnectivityStatus(connectivity).second.first =
true;
223 return _getConnectivityStatus(connectivity).second.first;
229 return _getConnectivityStatus(connectivity).second.second;
234void ItemFamilyNetwork::
237 if (connectivity->
name() != name)
throw FatalErrorException(String::format(
"Found connectivity ({0}) has not the expected name ({1}) ",connectivity->
name(),name));
250 case TopologicalOrder:
251 for (
const auto& family : m_dependency_graph.topologicalSort())
252 families.add(family);
254 case InverseTopologicalOrder:
255 for (
const auto& family : m_dependency_graph.topologicalSort().reverseOrder())
256 families.add(family);
259 ARCANE_FATAL(
"Cannot schedule task, scheduling order is unkwnown. Set Scheduling order");
269 case TopologicalOrder:
270 for (
const auto& family : m_dependency_graph.topologicalSort())
273 case InverseTopologicalOrder:
274 for (
const auto& family : m_dependency_graph.topologicalSort().reverseOrder())
278 ARCANE_FATAL(
"Cannot schedule task, scheduling order is unkwnown. Set Scheduling order");
286std::pair<IIncrementalItemConnectivity* const,std::pair<bool,bool>>& ItemFamilyNetwork::
291 ARCANE_FATAL(
"Cannot find connectivity {0} between families {1} and {2}",
301 Integer
graph_id = m_registred_graphs.size() ;
302 m_registred_graphs.add(
graph) ;
313 for(
auto graph : m_registred_graphs)
#define ARCANE_FATAL(...)
Macro envoyant une exception FatalErrorException.
Interface d'un graphe du maillage.
Interface pour gérer une connectivité incrémentale.
virtual String name() const =0
Nom de la connectivité
virtual IItemFamily * targetFamily() const =0
Famille cible.
virtual IItemFamily * sourceFamily() const =0
Famille source.
Interface d'une famille d'entités.
Lecteur des fichiers de maillage via la bibliothèque LIMA.
void setIsStored(IIncrementalItemConnectivity *connectivity) override
Positionne une connectivité comme étant stockée. A l'ajout les connectivités sont décrites comme non ...
List< IIncrementalItemConnectivity * > getConnectivities() override
Obtenir la liste de toutes les connectivités, qu'elles soient relation ou dépendance.
void addRelation(IItemFamily *source_family, IItemFamily *target_family, IIncrementalItemConnectivity *source_to_target_connectivity) override
SharedArray< IIncrementalItemConnectivity * > getChildRelations(IItemFamily *source_family) override
Obtenir la liste de toutes les relations, filles d'une famille source_family ou parentes d'une famill...
SharedArray< IIncrementalItemConnectivity * > getChildConnectivities(IItemFamily *source_family) override
Obtenir la liste de toutes les connectivités (dépendances ou relations), filles d'une famille source_...
bool isStored(IIncrementalItemConnectivity *connectivity) override
Récupère l'information relative au stockage de la connectivité
Integer registerConnectedGraph(IGraph2 *graph) override
enregistre un graphe gérant des DoFs connectés au maillage
const std::set< IItemFamily * > & getFamilies() const override
Obtenir la liste de toutes les familles.
void addDependency(IItemFamily *master_family, IItemFamily *slave_family, IIncrementalItemConnectivity *master_to_slave_connectivity, bool is_deep_connectivity) override
SharedArray< IIncrementalItemConnectivity * > getChildDependencies(IItemFamily *source_family) override
Obtenir la liste de toutes les dépendances, filles d'une famille source_family ou parentes d'une fami...
bool isDeep(IIncrementalItemConnectivity *connectivity) override
Récupère l'information relative au stockage de la connectivité
void removeConnectedDoFsFromCells(Int32ConstArrayView local_ids) override
supprime les DoFs et les liens entre DoFs connectés aux mailles supprimées
IIncrementalItemConnectivity * getConnectivity(IItemFamily *source_family, IItemFamily *target_family, const String &name) override
Obtenir une connectivité entre les familles source_family et target_family de nom name,...
IIncrementalItemConnectivity * getStoredConnectivity(IItemFamily *source_family, IItemFamily *target_family, const String &name) override
Retourne, si elle es associée à un stockage, la connectivité entre les familles source_family et targ...
void releaseConnectedGraph(Integer graph_id) override
dé enregistre un graphe gérant des DoFs connectés au maillage
void schedule(IItemFamilyNetworkTask task, eSchedulingOrder order=TopologicalOrder) override
Ordonnance l'exécution d'une tâche, dans l'ordre topologique ou topologique inverse du graphe de dépe...
Vue constante d'un tableau de type T.
Exception lorsqu'une erreur fatale est survenue.
Chaîne de caractères unicode.
Int32 Integer
Type représentant un entier.