Arcane  4.2.3.0
Developer documentation
Loading...
Searching...
No Matches
Arcane::mesh::IncrementalItemConnectivityContainer Class Reference
Collaboration diagram for Arcane::mesh::IncrementalItemConnectivityContainer:

Public Member Functions

 IncrementalItemConnectivityContainer (IMesh *mesh, const String &var_name)
Integer size () const
bool isAllocated () const
void _checkResize (Int32 lid)
void reserveForItems (Int32 capacity)

Public Attributes

String m_var_name
VariableArrayInt32 m_connectivity_nb_item_variable
VariableArrayInt32 m_connectivity_index_variable
VariableArrayInt32 m_connectivity_list_variable
VariableArrayInt32::ContainerType & m_connectivity_nb_item_array
VariableArrayInt32::ContainerType & m_connectivity_index_array
VariableArrayInt32::ContainerType & m_connectivity_list_array
ObserverPool m_observers
Int32 m_max_nb_item = 0
 Maximum number of connected items.
Int32 m_lazy_nb_source = 0
 Lazy state: this connectivity has never had a connected item.
LazyMemoryPool::Buffer * m_lazy_buffer = nullptr
 Buffer of m_lazy_pool the lazy views point into.

Static Public Attributes

static LazyMemoryPool m_lazy_pool
 Zero buffers read by the lazy views.

Detailed Description

Definition at line 106 of file IncrementalItemConnectivity.cc.

Constructor & Destructor Documentation

◆ IncrementalItemConnectivityContainer()

Arcane::mesh::IncrementalItemConnectivityContainer::IncrementalItemConnectivityContainer ( IMesh * mesh,
const String & var_name )
inline

Definition at line 110 of file IncrementalItemConnectivity.cc.

Member Function Documentation

◆ _checkResize()

void Arcane::mesh::IncrementalItemConnectivityContainer::_checkResize ( Int32 lid)
inline

Definition at line 155 of file IncrementalItemConnectivity.cc.

◆ isAllocated()

bool Arcane::mesh::IncrementalItemConnectivityContainer::isAllocated ( ) const
inline

Definition at line 153 of file IncrementalItemConnectivity.cc.

◆ reserveForItems()

void Arcane::mesh::IncrementalItemConnectivityContainer::reserveForItems ( Int32 capacity)
inline

Definition at line 178 of file IncrementalItemConnectivity.cc.

◆ size()

Integer Arcane::mesh::IncrementalItemConnectivityContainer::size ( ) const
inline

Definition at line 151 of file IncrementalItemConnectivity.cc.

Member Data Documentation

◆ m_connectivity_index_array

VariableArrayInt32::ContainerType& Arcane::mesh::IncrementalItemConnectivityContainer::m_connectivity_index_array

Definition at line 135 of file IncrementalItemConnectivity.cc.

◆ m_connectivity_index_variable

VariableArrayInt32 Arcane::mesh::IncrementalItemConnectivityContainer::m_connectivity_index_variable

Definition at line 131 of file IncrementalItemConnectivity.cc.

◆ m_connectivity_list_array

VariableArrayInt32::ContainerType& Arcane::mesh::IncrementalItemConnectivityContainer::m_connectivity_list_array

Definition at line 136 of file IncrementalItemConnectivity.cc.

◆ m_connectivity_list_variable

VariableArrayInt32 Arcane::mesh::IncrementalItemConnectivityContainer::m_connectivity_list_variable

Definition at line 132 of file IncrementalItemConnectivity.cc.

◆ m_connectivity_nb_item_array

VariableArrayInt32::ContainerType& Arcane::mesh::IncrementalItemConnectivityContainer::m_connectivity_nb_item_array

Definition at line 134 of file IncrementalItemConnectivity.cc.

◆ m_connectivity_nb_item_variable

VariableArrayInt32 Arcane::mesh::IncrementalItemConnectivityContainer::m_connectivity_nb_item_variable

Definition at line 130 of file IncrementalItemConnectivity.cc.

◆ m_lazy_buffer

LazyMemoryPool::Buffer* Arcane::mesh::IncrementalItemConnectivityContainer::m_lazy_buffer = nullptr

Buffer of m_lazy_pool the lazy views point into.

Definition at line 206 of file IncrementalItemConnectivity.cc.

◆ m_lazy_nb_source

Int32 Arcane::mesh::IncrementalItemConnectivityContainer::m_lazy_nb_source = 0

Lazy state: this connectivity has never had a connected item.

A mesh registers every connectivity its families could have, whether or not the mesh can use them: on a mesh with no edge, no AMR and no tied interface, the six HParent/HChild ones, FaceFace and the three Edge ones hold nothing for the whole run, and every item created still resizes their two arrays.

While lazy, the two per-source variables stay empty, so isAllocated() is false and the compaction skips them, and both published views are served from the zero buffers of m_lazy_pool, which are never written. The first addConnectedItem() materialises the real arrays. No connectivity is named anywhere: which ones stay empty is discovered at run time.

The flag itself is IncrementalItemConnectivityBase::m_is_lazy, one indirection closer to the caller. Number of source items the lazy views must cover

Definition at line 204 of file IncrementalItemConnectivity.cc.

◆ m_lazy_pool

LazyMemoryPool Arcane::mesh::IncrementalItemConnectivityContainer::m_lazy_pool
static

Zero buffers read by the lazy views.

A connectivity republishes from its own notify path, when its own localIds outgrow the view it published, so its view always covers its own items without depending on what another thread did.

Definition at line 214 of file IncrementalItemConnectivity.cc.

Referenced by Arcane::mesh::IncrementalItemConnectivityBase::_materialize(), Arcane::mesh::IncrementalItemConnectivityBase::_notifyConnectivityNbItemChangedFromObservable(), Arcane::mesh::IncrementalItemConnectivityBase::_publishLazyViews(), and Arcane::mesh::IncrementalItemConnectivityBase::_trimLazyViews().

◆ m_max_nb_item

Int32 Arcane::mesh::IncrementalItemConnectivityContainer::m_max_nb_item = 0

Maximum number of connected items.

This is an upper bound of the maximum number of connected items. For performance reasons, this value is not updated if items are removed.

Definition at line 147 of file IncrementalItemConnectivity.cc.

◆ m_observers

ObserverPool Arcane::mesh::IncrementalItemConnectivityContainer::m_observers

Definition at line 138 of file IncrementalItemConnectivity.cc.

◆ m_var_name

String Arcane::mesh::IncrementalItemConnectivityContainer::m_var_name

Definition at line 128 of file IncrementalItemConnectivity.cc.


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