12#ifndef ARCANE_IITEMFAMILYNETWORK_H_
13#define ARCANE_IITEMFAMILYNETWORK_H_
17#include "arcane/core/IItemFamily.h"
18#include "arcane/core/IIncrementalItemConnectivity.h"
19#include "arcane/core/IGraph2.h"
41 typedef std::function<void(
IItemFamily*)> IItemFamilyNetworkTask;
48 InverseTopologicalOrder,
55 static constexpr bool plug_serializer =
true;
59 virtual bool isActivated()
const = 0;
69 bool is_deep_connectivity =
true) = 0;
94 bool& is_dependency) = 0;
107 bool& is_dependency) = 0;
134 virtual void schedule(IItemFamilyNetworkTask task, eSchedulingOrder order = TopologicalOrder) = 0;
Interface for managing an incremental connectivity.
virtual IIncrementalItemConnectivity * getStoredConnectivity(IItemFamily *source_family, IItemFamily *target_family, const String &name)=0
Returns, if associated with storage, the connectivity between the families source_family and target_f...
virtual bool isStored(IIncrementalItemConnectivity *connectivity)=0
Retrieves information regarding the storage of the connectivity.
virtual void addDependency(IItemFamily *master_family, IItemFamily *slave_family, IIncrementalItemConnectivity *slave_to_master_connectivity, bool is_deep_connectivity=true)=0
Adds a dependency between two families; an element of master_family is composed of elements of slave_...
virtual const std::set< IItemFamily * > & getFamilies() const =0
Get the list of all families.
virtual List< IIncrementalItemConnectivity * > getConnectivities()=0
Get the list of all connectivities, whether they are relations or dependencies.
virtual SharedArray< IIncrementalItemConnectivity * > getChildConnectivities(IItemFamily *source_family)=0
Get the list of all connectivities (dependencies or relations), children of a.
virtual bool isDeep(IIncrementalItemConnectivity *connectivity)=0
Retrieves information regarding the storage of the connectivity.
virtual void removeConnectedDoFsFromCells(Int32ConstArrayView local_ids)=0
Removes DOFs and links between DOFs connected to deleted cells.
virtual IIncrementalItemConnectivity * getDependency(IItemFamily *source_family, IItemFamily *target_family)=0
Returns the dependency connectivity between the families source_family.
virtual void setIsStored(IIncrementalItemConnectivity *connectivity)=0
Marks a connectivity as stored.
virtual void schedule(IItemFamilyNetworkTask task, eSchedulingOrder order=TopologicalOrder)=0
Schedules the execution of a task, in topological or inverse topological order.
virtual IIncrementalItemConnectivity * getConnectivity(IItemFamily *source_family, IItemFamily *target_family, const String &name)=0
Returns the connectivity between the families source_family and.
virtual SharedArray< IIncrementalItemConnectivity * > getChildDependencies(IItemFamily *source_family)=0
Get the list of all dependencies, children of a family source_family or.
virtual SharedArray< IIncrementalItemConnectivity * > getChildRelations(IItemFamily *source_family)=0
Get the list of all relations, children of a family source_family or parents.
virtual Integer registerConnectedGraph(IGraph2 *graph)=0
Registers a graph managing DOFs connected to the mesh.
virtual void addRelation(IItemFamily *source_family, IItemFamily *target_family, IIncrementalItemConnectivity *source_to_target_connectivity)=0
Adds a relation between two families; an element of source_family is connected to one or more element...
virtual void releaseConnectedGraph(Integer graph_id)=0
Deregisters a graph managing DOFs connected to the mesh.
Interface of an entity family.
Implementation of a collection of elements in vector form.
1D vector of data with reference semantics.
Unicode character string.
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --
Int32 Integer
Type representing an integer.
ConstArrayView< Int32 > Int32ConstArrayView
C equivalent of a 1D array of 32-bit integers.