Arcane  4.1.12.0
Developer documentation
Loading...
Searching...
No Matches
Arcane::mesh::IncrementalItemConnectivity Class Reference

Incremental item->item[] connectivity. More...

#include <arcane/mesh/IncrementalItemConnectivity.h>

Inheritance diagram for Arcane::mesh::IncrementalItemConnectivity:
Collaboration diagram for Arcane::mesh::IncrementalItemConnectivity:

Public Member Functions

 IncrementalItemConnectivity (IItemFamily *source_family, IItemFamily *target_family, const String &aname)
void addConnectedItems (ItemLocalId source_item, Integer nb_item)
void setConnectedItems (ItemLocalId source_item, Int32ConstArrayView target_local_ids) override
 Allocates and positions entities connected to source_item.
void removeConnectedItems (ItemLocalId source_item) override
 Removes all entities connected to source_item.
void addConnectedItem (ItemLocalId source_item, ItemLocalId target_local_id) override
 Adds the entity with localId() target_local_id to the connectivity of source_item.
void removeConnectedItem (ItemLocalId source_item, ItemLocalId target_local_id) override
 Removes the entity with localId() target_local_id from the connectivity of source_item.
void replaceConnectedItem (ItemLocalId source_item, Integer index, ItemLocalId target_local_id) override
 Replaces the entity at index index of source_item with the entity with localId() target_local_id.
void replaceConnectedItems (ItemLocalId source_item, Int32ConstArrayView target_local_ids) override
 Replaces the entities of source_item with the entities with localId() target_local_ids.
bool hasConnectedItem (ItemLocalId source_item, ItemLocalId target_local_id) const override
 Tests the existence of a connectivity between source_item and the entity with localId() target_local_id.
void notifySourceItemAdded (ItemLocalId item) override
 Notifies the connectivity that an entity has been added to the source family.
void notifyReadFromDump () override
 Notifies the connectivity that a read has been performed from a dump.
Integer preAllocatedSize () const final
 Number of entities pre-allocated for the connectivity of each entity.
void setPreAllocatedSize (Integer value) final
 Sets the number of entities to pre-allocate for the connectivity of each entity.
void dumpStats (std::ostream &out) const override
 Dumps statistics on usage and memory used to the stream out.
void compactConnectivityList ()
 Compresses the connectivity list.
Public Member Functions inherited from Arcane::mesh::IncrementalItemConnectivityBase
 IncrementalItemConnectivityBase (IItemFamily *source_family, IItemFamily *target_family, const String &aname)
 IncrementalItemConnectivityBase (const IncrementalItemConnectivityBase &)=delete
 IncrementalItemConnectivityBase (IncrementalItemConnectivityBase &&)=delete
IncrementalItemConnectivityBase & operator= (const IncrementalItemConnectivityBase &)=delete
IncrementalItemConnectivityBase & operator= (IncrementalItemConnectivityBase &&)=delete
void notifySourceFamilyLocalIdChanged (Int32ConstArrayView new_to_old_ids) override
 Notifies the connectivity that the source family has been compacted.
void notifyTargetFamilyLocalIdChanged (Int32ConstArrayView old_to_new_ids) override
 Notifies the connectivity that the target family has been compacted.
Integer nbConnectedItem (ItemLocalId lid) const final
 Number of entities connected to the source entity with local ID lid.
Int32 connectedItemLocalId (ItemLocalId lid, Integer index) const final
 localId() of the index-th entity connected to the source entity with local ID lid
IndexedItemConnectivityViewBase connectivityView () const
IndexedItemConnectivityAccessor connectivityAccessor () const
ItemConnectivityContainerView connectivityContainerView () const
Int32 maxNbConnectedItem () const override
 Maximum number of entities connected to a source entity.
void reserveMemoryForNbSourceItems (Int32 n, bool pre_alloc_connectivity) override
 Reserves memory for n source entities.
IIncrementalItemConnectivityInternal_internalApi () override
 Internal Arcane API.
Int32ConstArrayView _connectedItemsLocalId (ItemLocalId lid) const
Int32ArrayView _connectedItemsLocalId (ItemLocalId lid)
Int32ArrayView connectivityIndex ()
Int32ArrayView connectivityList ()
void setItemConnectivityList (ItemInternalConnectivityList *ilist, Int32 index)
 Indicates that this connectivity is associated with one of the connectivities of ItemInternal.
void dumpInfos ()
Public Member Functions inherited from Arcane::mesh::AbstractIncrementalItemConnectivity
 AbstractIncrementalItemConnectivity (IItemFamily *source_family, IItemFamily *target_family, const String &connectivity_name)
String name () const final
 Name of the connectivity.
ConstArrayView< IItemFamily * > families () const override
 List of families (sourceFamily() + targetFamily()).
IItemFamilysourceFamily () const override
 Source family.
IItemFamilytargetFamily () const override
 Target family.
Ref< IIncrementalItemSourceConnectivitytoSourceReference () override
 Returns a reference to the instance.
Ref< IIncrementalItemTargetConnectivitytoTargetReference () override
 Returns a reference to the instance.
Public Member Functions inherited from Arcane::TraceAccessor
 TraceAccessor (ITraceMng *m)
 Constructs an accessor via the trace manager m.
 TraceAccessor (const TraceAccessor &rhs)
 Copy constructor.
TraceAccessoroperator= (const TraceAccessor &rhs)
 Copy assignment operator.
virtual ~TraceAccessor ()
 Frees resources.
ITraceMngtraceMng () const
 Trace manager.
TraceMessage info () const
 Flow for an information message.
TraceMessage pinfo () const
 Flow for a parallel information message.
TraceMessage info (char category) const
 Flow for an information message of a given category.
TraceMessage pinfo (char category) const
 Flow for a parallel information message of a given category.
TraceMessage info (bool v) const
 Flow for an information message.
TraceMessage warning () const
 Flow for a warning message.
TraceMessage pwarning () const
TraceMessage error () const
 Flow for an error message.
TraceMessage perror () const
TraceMessage log () const
 Flow for a log message.
TraceMessage plog () const
 Flow for a log message.
TraceMessage logdate () const
 Flow for a log message preceded by the date.
TraceMessage fatal () const
 Flow for a fatal error message.
TraceMessage pfatal () const
 Flow for a parallel fatal error message.
TraceMessageDbg debug (Trace::eDebugLevel=Trace::Medium) const
 Flow for a debug message.
Trace::eDebugLevel configDbgLevel () const
 Debug level of the configuration file.
TraceMessage info (Int32 verbose_level) const
 Flow for an information message of a given level.
TraceMessage linfo () const
 Flow for an information message with the local information level of this instance.
TraceMessage linfo (Int32 relative_level) const
 Flow for an information message with the local information level of this instance.
void fatalMessage (const StandaloneTraceMessage &o) const
Public Member Functions inherited from Arcane::ReferenceCounterImpl
void addReference ()
void removeReference ()
void _internalAddReference ()
bool _internalRemoveReference ()

Private Member Functions

void _internalNotifySourceItemsAdded (ConstArrayView< Int32 > local_ids) override
void _increaseIndexList (Int32 lid, Integer size, Int32 target_lid)
Integer _increaseConnectivityList (Int32 new_lid)
Integer _increaseConnectivityList (Int32 new_lid, Integer nb_value)
Integer _computeAllocSize (Integer nb_item)
void _checkAddNullItem ()
void _resetConnectivityList ()

Private Attributes

Int64 m_nb_add = 0
Int64 m_nb_remove = 0
Int64 m_nb_memcopy = 0
Integer m_pre_allocated_size = 0

Friends

class IndexedIncrementalItemConnectivityMng
 For access to _internalNotifySourceItemsAdded().

Additional Inherited Members

Protected Member Functions inherited from Arcane::mesh::IncrementalItemConnectivityBase
void _initializeStorage (ConnectivityItemVector *civ) override
 Implements the initialization of civ for this connectivity.
ItemVectorView _connectedItems (ItemLocalId item, ConnectivityItemVector &con_items) const final
 Fills con_items with the entities connected to item.
void _notifyConnectivityListChanged ()
void _notifyConnectivityIndexChanged ()
void _notifyConnectivityNbItemChanged ()
void _notifyConnectivityNbItemChangedFromObservable ()
void _computeMaxNbConnectedItem ()
void _setNewMaxNbConnectedItems (Int32 new_max)
void _setMaxNbConnectedItemsInConnectivityList ()
Protected Member Functions inherited from Arcane::mesh::AbstractIncrementalItemConnectivity
ConstArrayView< IItemFamily * > _families () const
IItemFamily_sourceFamily () const
IItemFamily_targetFamily () const
Protected Member Functions inherited from Arcane::TraceAccessor
void _setLocalVerboseLevel (Int32 v)
Int32 _localVerboseLevel () const
Protected Attributes inherited from Arcane::mesh::IncrementalItemConnectivityBase
bool m_is_empty = true
Int32ArrayView m_connectivity_nb_item
Int32ArrayView m_connectivity_index
Int32ArrayView m_connectivity_list
IncrementalItemConnectivityContainerm_p = nullptr
ItemInternalConnectivityListm_item_connectivity_list = nullptr
Integer m_item_connectivity_index = -1
std::unique_ptr< InternalApim_internal_api

Detailed Description

Incremental item->item[] connectivity.

Definition at line 209 of file IncrementalItemConnectivity.h.

Constructor & Destructor Documentation

◆ IncrementalItemConnectivity()

Arcane::mesh::IncrementalItemConnectivity::IncrementalItemConnectivity ( IItemFamily * source_family,
IItemFamily * target_family,
const String & aname )

Definition at line 479 of file IncrementalItemConnectivity.cc.

◆ ~IncrementalItemConnectivity()

Arcane::mesh::IncrementalItemConnectivity::~IncrementalItemConnectivity ( )
override

Definition at line 498 of file IncrementalItemConnectivity.cc.

Member Function Documentation

◆ _checkAddNullItem()

void Arcane::mesh::IncrementalItemConnectivity::_checkAddNullItem ( )
private

Definition at line 863 of file IncrementalItemConnectivity.cc.

◆ _computeAllocSize()

Integer Arcane::mesh::IncrementalItemConnectivity::_computeAllocSize ( Integer nb_item)
inlineprivate

Definition at line 615 of file IncrementalItemConnectivity.cc.

◆ _increaseConnectivityList() [1/2]

Integer Arcane::mesh::IncrementalItemConnectivity::_increaseConnectivityList ( Int32 new_lid)
inlineprivate

Definition at line 511 of file IncrementalItemConnectivity.cc.

◆ _increaseConnectivityList() [2/2]

Integer Arcane::mesh::IncrementalItemConnectivity::_increaseConnectivityList ( Int32 new_lid,
Integer nb_value )
inlineprivate

Definition at line 523 of file IncrementalItemConnectivity.cc.

◆ _increaseIndexList()

void Arcane::mesh::IncrementalItemConnectivity::_increaseIndexList ( Int32 lid,
Integer size,
Int32 target_lid )
inlineprivate

Definition at line 546 of file IncrementalItemConnectivity.cc.

◆ _internalNotifySourceItemsAdded()

void Arcane::mesh::IncrementalItemConnectivity::_internalNotifySourceItemsAdded ( ConstArrayView< Int32 > local_ids)
overrideprivate

Definition at line 742 of file IncrementalItemConnectivity.cc.

◆ _resetConnectivityList()

void Arcane::mesh::IncrementalItemConnectivity::_resetConnectivityList ( )
private

Definition at line 535 of file IncrementalItemConnectivity.cc.

◆ addConnectedItem()

void Arcane::mesh::IncrementalItemConnectivity::addConnectedItem ( ItemLocalId source_item,
ItemLocalId target_local_id )
overridevirtual

Adds the entity with localId() target_local_id to the connectivity of source_item.

Implements Arcane::IIncrementalItemConnectivity.

Definition at line 565 of file IncrementalItemConnectivity.cc.

Referenced by IndexedIncrementalItemConnectivityMng.

Here is the caller graph for this function:

◆ addConnectedItems()

void Arcane::mesh::IncrementalItemConnectivity::addConnectedItems ( ItemLocalId source_item,
Integer nb_item )

Definition at line 633 of file IncrementalItemConnectivity.cc.

◆ compactConnectivityList()

void Arcane::mesh::IncrementalItemConnectivity::compactConnectivityList ( )

Compresses the connectivity list.

The current implementation is quite simple:

  • Copies the current list into a temporary array.
  • Clears the current list.
  • Recopies the useful values from the temporary array into the list.
Note
Calling this method assumes that the source family entities are compacted.

Definition at line 892 of file IncrementalItemConnectivity.cc.

References ARCANE_FATAL, Arcane::Array< T >::data(), Arcane::TraceAccessor::info(), Arcane::mesh::AbstractIncrementalItemConnectivity::name(), and Arcane::AbstractArray< T >::size().

Here is the call graph for this function:

◆ dumpStats()

void Arcane::mesh::IncrementalItemConnectivity::dumpStats ( std::ostream & out) const
overridevirtual

Dumps statistics on usage and memory used to the stream out.

Implements Arcane::IIncrementalItemConnectivity.

Definition at line 806 of file IncrementalItemConnectivity.cc.

References Arcane::mesh::AbstractIncrementalItemConnectivity::name().

Here is the call graph for this function:

◆ hasConnectedItem()

bool Arcane::mesh::IncrementalItemConnectivity::hasConnectedItem ( ItemLocalId source_item,
ItemLocalId target_local_id ) const
overridevirtual

Tests the existence of a connectivity between source_item and the entity with localId() target_local_id.

Implements Arcane::IIncrementalItemConnectivity.

Definition at line 714 of file IncrementalItemConnectivity.cc.

Referenced by IndexedIncrementalItemConnectivityMng.

Here is the caller graph for this function:

◆ notifyReadFromDump()

void Arcane::mesh::IncrementalItemConnectivity::notifyReadFromDump ( )
overridevirtual

Notifies the connectivity that a read has been performed from a dump.

Implements Arcane::IIncrementalItemSourceConnectivity.

Definition at line 766 of file IncrementalItemConnectivity.cc.

References Arcane::TraceAccessor::info(), and Arcane::mesh::AbstractIncrementalItemConnectivity::name().

Referenced by IndexedIncrementalItemConnectivityMng.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ notifySourceItemAdded()

void Arcane::mesh::IncrementalItemConnectivity::notifySourceItemAdded ( ItemLocalId item)
overridevirtual

Notifies the connectivity that an entity has been added to the source family.

Implements Arcane::IIncrementalItemSourceConnectivity.

Definition at line 727 of file IncrementalItemConnectivity.cc.

Referenced by IndexedIncrementalItemConnectivityMng.

Here is the caller graph for this function:

◆ preAllocatedSize()

Integer Arcane::mesh::IncrementalItemConnectivity::preAllocatedSize ( ) const
inlinefinalvirtual

Number of entities pre-allocated for the connectivity of each entity.

Implements Arcane::IIncrementalItemConnectivity.

Definition at line 242 of file IncrementalItemConnectivity.h.

◆ removeConnectedItem()

void Arcane::mesh::IncrementalItemConnectivity::removeConnectedItem ( ItemLocalId source_item,
ItemLocalId target_local_id )
overridevirtual

Removes the entity with localId() target_local_id from the connectivity of source_item.

Implements Arcane::IIncrementalItemConnectivity.

Definition at line 671 of file IncrementalItemConnectivity.cc.

Referenced by IndexedIncrementalItemConnectivityMng.

Here is the caller graph for this function:

◆ removeConnectedItems()

void Arcane::mesh::IncrementalItemConnectivity::removeConnectedItems ( ItemLocalId source_item)
overridevirtual

Removes all entities connected to source_item.

Implements Arcane::IIncrementalItemConnectivity.

Definition at line 661 of file IncrementalItemConnectivity.cc.

Referenced by IndexedIncrementalItemConnectivityMng, and setConnectedItems().

Here is the caller graph for this function:

◆ replaceConnectedItem()

void Arcane::mesh::IncrementalItemConnectivity::replaceConnectedItem ( ItemLocalId source_item,
Integer index,
ItemLocalId target_local_id )
overridevirtual

Replaces the entity at index index of source_item with the entity with localId() target_local_id.

Implements Arcane::IIncrementalItemConnectivity.

Definition at line 686 of file IncrementalItemConnectivity.cc.

Referenced by IndexedIncrementalItemConnectivityMng.

Here is the caller graph for this function:

◆ replaceConnectedItems()

void Arcane::mesh::IncrementalItemConnectivity::replaceConnectedItems ( ItemLocalId source_item,
Int32ConstArrayView target_local_ids )
overridevirtual

Replaces the entities of source_item with the entities with localId() target_local_ids.

Implements Arcane::IIncrementalItemConnectivity.

Definition at line 698 of file IncrementalItemConnectivity.cc.

References Arcane::ConstArrayView< T >::size().

Referenced by IndexedIncrementalItemConnectivityMng, and setConnectedItems().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ setConnectedItems()

void Arcane::mesh::IncrementalItemConnectivity::setConnectedItems ( ItemLocalId source_item,
Int32ConstArrayView target_local_ids )
overridevirtual

Allocates and positions entities connected to source_item.

If there were already entities connected to source_item, they are removed. target_local_ids contains the list of local IDs of entities to add. This method is equivalent to calling the following code but allows for memory management optimizations:

c->removeConnectedItems(source_item);
for( Int32 x : target_local_ids )
c->addConnectedItem(source_item,ItemLocalId{x});
Interface for managing an incremental connectivity.
virtual void removeConnectedItems(ItemLocalId source_item)=0
Removes all entities connected to source_item.
virtual void addConnectedItem(ItemLocalId source_item, ItemLocalId target_local_id)=0
Adds the entity with localId() target_local_id to the connectivity of source_item.
Index of an Item in a variable.
Definition ItemLocalId.h:42
std::int32_t Int32
Signed integer type of 32 bits.

Reimplemented from Arcane::IIncrementalItemConnectivity.

Definition at line 650 of file IncrementalItemConnectivity.cc.

References removeConnectedItems(), replaceConnectedItems(), and Arcane::ConstArrayView< T >::size().

Referenced by IndexedIncrementalItemConnectivityMng.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ setPreAllocatedSize()

void Arcane::mesh::IncrementalItemConnectivity::setPreAllocatedSize ( Integer value)
finalvirtual

Sets the number of entities to pre-allocate for the connectivity of each entity.

Implements Arcane::IIncrementalItemConnectivity.

Definition at line 778 of file IncrementalItemConnectivity.cc.

References Arcane::mesh::AbstractIncrementalItemConnectivity::name().

Here is the call graph for this function:

◆ IndexedIncrementalItemConnectivityMng

Member Data Documentation

◆ m_nb_add

Int64 Arcane::mesh::IncrementalItemConnectivity::m_nb_add = 0
private

Definition at line 251 of file IncrementalItemConnectivity.h.

◆ m_nb_memcopy

Int64 Arcane::mesh::IncrementalItemConnectivity::m_nb_memcopy = 0
private

Definition at line 253 of file IncrementalItemConnectivity.h.

◆ m_nb_remove

Int64 Arcane::mesh::IncrementalItemConnectivity::m_nb_remove = 0
private

Definition at line 252 of file IncrementalItemConnectivity.h.

◆ m_pre_allocated_size

Integer Arcane::mesh::IncrementalItemConnectivity::m_pre_allocated_size = 0
private

Definition at line 254 of file IncrementalItemConnectivity.h.


The documentation for this class was generated from the following files: