Arcane  4.1.12.0
Developer documentation
Loading...
Searching...
No Matches
Arcane::mesh::GraphDoFs Class Reference
Inheritance diagram for Arcane::mesh::GraphDoFs:
Collaboration diagram for Arcane::mesh::GraphDoFs:

Public Types

typedef DynamicMeshKindInfos::ItemInternalMap ItemInternalMap

Public Member Functions

 GraphDoFs (IMesh *mesh, String particle_family_name=ParticleFamily::defaultFamilyName())
IGraphModifier2modifier () override
IGraphConnectivity const * connectivity () const override
Integer registerNewGraphConnectivityObserver (IGraphConnectivityObserver *observer) override
void releaseGraphConnectivityObserver (Integer observer_id) override
Integer registerNewGraphObserver (IGraphObserver *observer) override
void releaseGraphObserver (Integer observer_id) override
IItemFamilydualNodeFamily () override
const IItemFamilydualNodeFamily () const override
 Returns the family of dual nodes.
IItemFamilylinkFamily () override
const IItemFamilylinkFamily () const override
 Returns the family of links.
Integer nbLink () const override
 Number of links of the graph.
Integer nbDualNode () const override
 Number of dual nodes of the graph.
void addLinks (Integer nb_link, Integer nb_dual_nodes_per_link, Int64ConstArrayView links_infos) override
 Add links to the graph with a fixed number of dual nodes per link.
void addDualNodes (Integer graph_nb_dual_node, Integer dual_node_kind, Int64ConstArrayView dual_nodes_infos) override
 Add dual nodes to the graph with a fixed type of dual item per node.
void addDualNodes (Integer graph_nb_dual_node, Int64ConstArrayView dual_nodes_infos) override
 Adds dual nodes to the graph, where the node type is specified in the infos array.
void removeDualNodes (Int32ConstArrayView dual_node_local_ids) override
 Removes dual nodes from the graph.
void removeLinks (Int32ConstArrayView link_local_ids) override
 Removes dual links from the graph.
void removeConnectedItemsFromCells (Int32ConstArrayView cell_local_ids) override
 Removes DualNodes and Links connected to cells that are being deleted.
bool isUpdated () override
void endUpdate () override
void updateAfterMeshChanged () override
void printDualNodes () const override
void printLinks () const override
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::IGraph2
virtual ~IGraph2 ()=default
 Frees resources.
Public Member Functions inherited from Arcane::IGraphModifier2
virtual ~IGraphModifier2 ()=default
 Frees resources.

Static Public Member Functions

static const String dualNodeFamilyName ()
static const String linkFamilyName ()

Private Member Functions

String _className () const
Integer _connectivityIndex (Integer dual_node_IT) const
IItemFamily_dualItemFamily (Arcane::eItemKind kind)
Int64 _doFUid (Integer dual_item_kind, Item const &item)
void _allocateGraph ()

Private Attributes

IMeshm_mesh = nullptr
IItemFamilyNetworkm_item_family_network = nullptr
bool m_graph_allocated = false
Integer m_graph_id = -1
DoFManager m_dof_mng
IItemConnectivityMngm_connectivity_mng
IDoFFamilym_dual_node_family = nullptr
IDoFFamilym_link_family = nullptr
UniqueArray< Arcane::mesh::IncrementalItemConnectivity * > m_incremental_connectivities
UniqueArray< Arcane::mesh::IncrementalItemConnectivity * > m_dual2dof_incremental_connectivities
Arcane::mesh::IncrementalItemConnectivitym_dualnodes_incremental_connectivity = nullptr
Arcane::mesh::IncrementalItemConnectivitym_links_incremental_connectivity = nullptr
std::unique_ptr< GraphIncrementalConnectivity > m_graph_connectivity
std::vector< std::unique_ptr< Arcane::IGraphConnectivityObserver > > m_connectivity_observer
std::vector< std::unique_ptr< Arcane::IGraphObserver > > m_graph_observer
std::vector< std::unique_ptr< Arcane::GhostLayerFromConnectivityComputer > > m_ghost_layer_computers
Int32UniqueArray m_connectivity_indexes_per_type
std::array< Integer, NB_BASIC_ITEM_TYPE > m_dualnode_kinds = { IT_DualNode, IT_DualEdge, IT_DualFace, IT_DualCell, IT_DualParticle }
ItemScalarProperty< Integerm_dual_node_to_connectivity_index
UniqueArray< Int32m_detached_dualnode_lids
UniqueArray< Int32m_detached_link_lids
bool m_update_sync_info = false
String m_particle_family_name

Friends

class GraphIncrementalConnectivity

Additional Inherited Members

Protected Member Functions inherited from Arcane::TraceAccessor
void _setLocalVerboseLevel (Int32 v)
Int32 _localVerboseLevel () const

Detailed Description

Definition at line 149 of file GraphDoFs.h.

Member Typedef Documentation

◆ ItemInternalMap

typedef DynamicMeshKindInfos::ItemInternalMap Arcane::mesh::GraphDoFs::ItemInternalMap

Definition at line 158 of file GraphDoFs.h.

Constructor & Destructor Documentation

◆ GraphDoFs()

Arcane::mesh::GraphDoFs::GraphDoFs ( IMesh * mesh,
String particle_family_name = ParticleFamily::defaultFamilyName() )

Definition at line 47 of file GraphDoFs.cc.

◆ ~GraphDoFs()

virtual Arcane::mesh::GraphDoFs::~GraphDoFs ( )
inlinevirtual

Definition at line 167 of file GraphDoFs.h.

Member Function Documentation

◆ _allocateGraph()

void Arcane::mesh::GraphDoFs::_allocateGraph ( )
private

Definition at line 60 of file GraphDoFs.cc.

◆ _className()

String Arcane::mesh::GraphDoFs::_className ( ) const
inlineprivate

Definition at line 240 of file GraphDoFs.h.

◆ _connectivityIndex()

Integer Arcane::mesh::GraphDoFs::_connectivityIndex ( Integer dual_node_IT) const
inlineprivate

Definition at line 241 of file GraphDoFs.h.

◆ _doFUid()

Int64 Arcane::mesh::GraphDoFs::_doFUid ( Integer dual_item_kind,
Item const & item )
inlineprivate

Definition at line 260 of file GraphDoFs.h.

◆ _dualItemFamily()

IItemFamily * Arcane::mesh::GraphDoFs::_dualItemFamily ( Arcane::eItemKind kind)
inlineprivate

Definition at line 250 of file GraphDoFs.h.

◆ addDualNodes() [1/2]

void Arcane::mesh::GraphDoFs::addDualNodes ( Integer graph_nb_dual_node,
Int64ConstArrayView dual_nodes_infos )
overridevirtual

Adds dual nodes to the graph, where the node type is specified in the infos array.

Implements Arcane::IGraphModifier2.

Definition at line 239 of file GraphDoFs.cc.

References Arcane::Array< T >::add(), ENUMERATE_DOF, Arcane::TraceAccessor::info(), Arcane::IItemFamily::itemsUniqueIdToLocalId(), Arcane::Array< T >::reserve(), Arcane::Array< T >::resize(), Arcane::ConstArrayView< T >::size(), Arcane::TraceAccessor::traceMng(), and Arcane::IItemFamily::view().

Here is the call graph for this function:

◆ addDualNodes() [2/2]

void Arcane::mesh::GraphDoFs::addDualNodes ( Integer graph_nb_dual_node,
Integer dual_node_kind,
Int64ConstArrayView dual_nodes_infos )
overridevirtual

Add dual nodes to the graph with a fixed type of dual item per node.

Implements Arcane::IGraphModifier2.

Definition at line 187 of file GraphDoFs.cc.

References Arcane::Array< T >::add(), ENUMERATE_DOF, Arcane::IItemFamily::itemsUniqueIdToLocalId(), Arcane::Array< T >::reserve(), Arcane::AbstractArray< T >::size(), Arcane::ConstArrayView< T >::size(), and Arcane::TraceAccessor::traceMng().

Here is the call graph for this function:

◆ addLinks()

void Arcane::mesh::GraphDoFs::addLinks ( Integer nb_link,
Integer nb_dual_nodes_per_link,
Int64ConstArrayView links_infos )
overridevirtual

◆ connectivity()

IGraphConnectivity const * Arcane::mesh::GraphDoFs::connectivity ( ) const
inlineoverridevirtual

Implements Arcane::IGraph2.

Definition at line 173 of file GraphDoFs.h.

◆ dualNodeFamily() [1/2]

const IItemFamily * Arcane::mesh::GraphDoFs::dualNodeFamily ( ) const
inlineoverridevirtual

Returns the family of dual nodes.

Implements Arcane::IGraph2.

Definition at line 205 of file GraphDoFs.h.

◆ dualNodeFamily() [2/2]

IItemFamily * Arcane::mesh::GraphDoFs::dualNodeFamily ( )
inlineoverridevirtual

Implements Arcane::IGraph2.

Definition at line 204 of file GraphDoFs.h.

◆ dualNodeFamilyName()

const String Arcane::mesh::GraphDoFs::dualNodeFamilyName ( )
inlinestatic

Definition at line 160 of file GraphDoFs.h.

◆ endUpdate()

void Arcane::mesh::GraphDoFs::endUpdate ( )
overridevirtual

Implements Arcane::IGraphModifier2.

Definition at line 539 of file GraphDoFs.cc.

◆ isUpdated()

bool Arcane::mesh::GraphDoFs::isUpdated ( )
overridevirtual

Implements Arcane::IGraph2.

Definition at line 512 of file GraphDoFs.cc.

◆ linkFamily() [1/2]

const IItemFamily * Arcane::mesh::GraphDoFs::linkFamily ( ) const
inlineoverridevirtual

Returns the family of links.

Implements Arcane::IGraph2.

Definition at line 208 of file GraphDoFs.h.

◆ linkFamily() [2/2]

IItemFamily * Arcane::mesh::GraphDoFs::linkFamily ( )
inlineoverridevirtual

Implements Arcane::IGraph2.

Definition at line 207 of file GraphDoFs.h.

◆ linkFamilyName()

const String Arcane::mesh::GraphDoFs::linkFamilyName ( )
inlinestatic

Definition at line 161 of file GraphDoFs.h.

◆ modifier()

IGraphModifier2 * Arcane::mesh::GraphDoFs::modifier ( )
inlineoverridevirtual

Implements Arcane::IGraph2.

Definition at line 171 of file GraphDoFs.h.

◆ nbDualNode()

Integer Arcane::mesh::GraphDoFs::nbDualNode ( ) const
inlineoverridevirtual

Number of dual nodes of the graph.

Implements Arcane::IGraph2.

Definition at line 211 of file GraphDoFs.h.

◆ nbLink()

Integer Arcane::mesh::GraphDoFs::nbLink ( ) const
inlineoverridevirtual

Number of links of the graph.

Implements Arcane::IGraph2.

Definition at line 210 of file GraphDoFs.h.

◆ printDualNodes()

void Arcane::mesh::GraphDoFs::printDualNodes ( ) const
overridevirtual

Implements Arcane::IGraph2.

Definition at line 718 of file GraphDoFs.cc.

◆ printLinks()

void Arcane::mesh::GraphDoFs::printLinks ( ) const
overridevirtual

Implements Arcane::IGraph2.

Definition at line 742 of file GraphDoFs.cc.

◆ registerNewGraphConnectivityObserver()

Integer Arcane::mesh::GraphDoFs::registerNewGraphConnectivityObserver ( IGraphConnectivityObserver * observer)
inlineoverridevirtual

Implements Arcane::IGraph2.

Definition at line 178 of file GraphDoFs.h.

◆ registerNewGraphObserver()

Integer Arcane::mesh::GraphDoFs::registerNewGraphObserver ( IGraphObserver * observer)
inlineoverridevirtual

Implements Arcane::IGraph2.

Definition at line 191 of file GraphDoFs.h.

◆ releaseGraphConnectivityObserver()

void Arcane::mesh::GraphDoFs::releaseGraphConnectivityObserver ( Integer observer_id)
inlineoverridevirtual

Implements Arcane::IGraph2.

Definition at line 185 of file GraphDoFs.h.

◆ releaseGraphObserver()

void Arcane::mesh::GraphDoFs::releaseGraphObserver ( Integer observer_id)
inlineoverridevirtual

Implements Arcane::IGraph2.

Definition at line 198 of file GraphDoFs.h.

◆ removeConnectedItemsFromCells()

void Arcane::mesh::GraphDoFs::removeConnectedItemsFromCells ( Int32ConstArrayView cell_local_ids)
overridevirtual

Removes DualNodes and Links connected to cells that are being deleted.

Implements Arcane::IGraphModifier2.

Definition at line 390 of file GraphDoFs.cc.

References Arcane::ConnectivityItemVector::connectedItems(), ENUMERATE_CELL, ENUMERATE_DOF, Arcane::IK_Cell, Arcane::IK_Face, Arcane::IK_Node, Arcane::IK_Particle, removeDualNodes(), and removeLinks().

Here is the call graph for this function:

◆ removeDualNodes()

void Arcane::mesh::GraphDoFs::removeDualNodes ( Int32ConstArrayView dual_node_local_ids)
overridevirtual

Removes dual nodes from the graph.

Implements Arcane::IGraphModifier2.

Definition at line 367 of file GraphDoFs.cc.

References Arcane::ConstArrayView< T >::size(), and Arcane::TraceAccessor::traceMng().

Referenced by removeConnectedItemsFromCells().

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

◆ removeLinks()

void Arcane::mesh::GraphDoFs::removeLinks ( Int32ConstArrayView link_local_ids)
overridevirtual

Removes dual links from the graph.

Implements Arcane::IGraphModifier2.

Definition at line 380 of file GraphDoFs.cc.

References Arcane::ConstArrayView< T >::size(), and Arcane::TraceAccessor::traceMng().

Referenced by removeConnectedItemsFromCells().

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

◆ updateAfterMeshChanged()

void Arcane::mesh::GraphDoFs::updateAfterMeshChanged ( )
overridevirtual

Implements Arcane::IGraphModifier2.

Definition at line 693 of file GraphDoFs.cc.

◆ GraphIncrementalConnectivity

friend class GraphIncrementalConnectivity
friend

Definition at line 156 of file GraphDoFs.h.

Member Data Documentation

◆ m_connectivity_indexes_per_type

Int32UniqueArray Arcane::mesh::GraphDoFs::m_connectivity_indexes_per_type
private

Definition at line 300 of file GraphDoFs.h.

◆ m_connectivity_mng

IItemConnectivityMng* Arcane::mesh::GraphDoFs::m_connectivity_mng
private

Definition at line 286 of file GraphDoFs.h.

◆ m_connectivity_observer

std::vector<std::unique_ptr<Arcane::IGraphConnectivityObserver> > Arcane::mesh::GraphDoFs::m_connectivity_observer
private

Definition at line 295 of file GraphDoFs.h.

◆ m_detached_dualnode_lids

UniqueArray<Int32> Arcane::mesh::GraphDoFs::m_detached_dualnode_lids
private

Definition at line 304 of file GraphDoFs.h.

◆ m_detached_link_lids

UniqueArray<Int32> Arcane::mesh::GraphDoFs::m_detached_link_lids
private

Definition at line 305 of file GraphDoFs.h.

◆ m_dof_mng

DoFManager Arcane::mesh::GraphDoFs::m_dof_mng
private

Definition at line 285 of file GraphDoFs.h.

◆ m_dual2dof_incremental_connectivities

UniqueArray<Arcane::mesh::IncrementalItemConnectivity*> Arcane::mesh::GraphDoFs::m_dual2dof_incremental_connectivities
private

Definition at line 291 of file GraphDoFs.h.

◆ m_dual_node_family

IDoFFamily* Arcane::mesh::GraphDoFs::m_dual_node_family = nullptr
private

Definition at line 287 of file GraphDoFs.h.

◆ m_dual_node_to_connectivity_index

ItemScalarProperty<Integer> Arcane::mesh::GraphDoFs::m_dual_node_to_connectivity_index
private

Definition at line 302 of file GraphDoFs.h.

◆ m_dualnode_kinds

std::array<Integer, NB_BASIC_ITEM_TYPE> Arcane::mesh::GraphDoFs::m_dualnode_kinds = { IT_DualNode, IT_DualEdge, IT_DualFace, IT_DualCell, IT_DualParticle }
private

Definition at line 301 of file GraphDoFs.h.

◆ m_dualnodes_incremental_connectivity

Arcane::mesh::IncrementalItemConnectivity* Arcane::mesh::GraphDoFs::m_dualnodes_incremental_connectivity = nullptr
private

Definition at line 292 of file GraphDoFs.h.

◆ m_ghost_layer_computers

std::vector<std::unique_ptr<Arcane::GhostLayerFromConnectivityComputer> > Arcane::mesh::GraphDoFs::m_ghost_layer_computers
private

Definition at line 299 of file GraphDoFs.h.

◆ m_graph_allocated

bool Arcane::mesh::GraphDoFs::m_graph_allocated = false
private

Definition at line 282 of file GraphDoFs.h.

◆ m_graph_connectivity

std::unique_ptr<GraphIncrementalConnectivity> Arcane::mesh::GraphDoFs::m_graph_connectivity
private

Definition at line 294 of file GraphDoFs.h.

◆ m_graph_id

Integer Arcane::mesh::GraphDoFs::m_graph_id = -1
private

Definition at line 283 of file GraphDoFs.h.

◆ m_graph_observer

std::vector<std::unique_ptr<Arcane::IGraphObserver> > Arcane::mesh::GraphDoFs::m_graph_observer
private

Definition at line 297 of file GraphDoFs.h.

◆ m_incremental_connectivities

UniqueArray<Arcane::mesh::IncrementalItemConnectivity*> Arcane::mesh::GraphDoFs::m_incremental_connectivities
private

Definition at line 290 of file GraphDoFs.h.

◆ m_item_family_network

IItemFamilyNetwork* Arcane::mesh::GraphDoFs::m_item_family_network = nullptr
private

Definition at line 281 of file GraphDoFs.h.

◆ m_link_family

IDoFFamily* Arcane::mesh::GraphDoFs::m_link_family = nullptr
private

Definition at line 288 of file GraphDoFs.h.

◆ m_links_incremental_connectivity

Arcane::mesh::IncrementalItemConnectivity* Arcane::mesh::GraphDoFs::m_links_incremental_connectivity = nullptr
private

Definition at line 293 of file GraphDoFs.h.

◆ m_mesh

IMesh* Arcane::mesh::GraphDoFs::m_mesh = nullptr
private

Definition at line 280 of file GraphDoFs.h.

◆ m_particle_family_name

String Arcane::mesh::GraphDoFs::m_particle_family_name
private

Definition at line 309 of file GraphDoFs.h.

◆ m_update_sync_info

bool Arcane::mesh::GraphDoFs::m_update_sync_info = false
private

Definition at line 307 of file GraphDoFs.h.


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