Alien  1.3.0
Developer documentation
Loading...
Searching...
No Matches
Alien::BasicIndexManager Class Reference

#include <core/alien/index_manager/functional/BasicIndexManager.h>

Inheritance diagram for Alien::BasicIndexManager:
Collaboration diagram for Alien::BasicIndexManager:

Classes

struct  InternalEntryIndex
struct  EntryIndexComparator
class  MyEntryImpl
 Squelette de l'implementation locale de Entry La vraie implémentation est MyAbstractEntryImpl. Cette classe permet de la factorisation de code. More...
struct  EntrySendRequest
struct  EntryRecvRequest
class  MyEntryEnumeratorImpl

Public Member Functions

 BasicIndexManager (Alien::IMessagePassingMng *parallelMng)
 Constructeur de la classe.
 ~BasicIndexManager () override
 Destructeur de la classe.
void init () override
 Initialisation.
bool isPrepared () const override
 Indique si la phase de préparation est achevée.
void setTraceMng (Alien::ITraceMng *traceMng) override
 Définit le gestionnaire de trace.
void prepare () override
 Préparation : fixe l'indexation (fin des définitions).
void stats (Arccore::Integer &globalSize, Arccore::Integer &minLocalIndex, Arccore::Integer &localSize) const override
 Statistiques d'indexation.
Arccore::Integer globalSize () const override
 Retourne la taille globale.
Arccore::Integer minLocalIndex () const override
 Retourne l'indice minimum local.
Arccore::Integer localSize () const override
 Retourne l'indice minimum local.
EntryEnumerator enumerateEntry () const override
 Construction d'un enumerateur sur les Entry.
ScalarIndexSet buildScalarIndexSet (const Arccore::String &name, Arccore::IntegerConstArrayView localIds, const IIndexManager::IAbstractFamily &family) override
 Construit une nouvelle entrée scalaire sur un ensemble d'entités abstraites.
ScalarIndexSet buildScalarIndexSet (const Arccore::String &name, const IIndexManager::IAbstractFamily &family) override
VectorIndexSet buildVectorIndexSet (const Arccore::String &name, Arccore::IntegerConstArrayView localIds, const IIndexManager::IAbstractFamily &family, Arccore::Integer n) override
 Construit une nouvelle entrée vectoriellesur un ensemble d'entités abstraites.
VectorIndexSet buildVectorIndexSet (const Arccore::String &name, const IIndexManager::IAbstractFamily &family, Arccore::Integer n) override
Arccore::UniqueArray< Arccore::Integer > getIndexes (const ScalarIndexSet &entry) const override
 Fournit une table de translation indexé par les items.
Arccore::UniqueArray2< Arccore::Integer > getIndexes (const VectorIndexSet &entries) const override
Arccore::MessagePassing::IMessagePassingMng * parallelMng () const override
 Donne le gestionnaire parallèle ayant servi à l'indexation.
void setMaxNullIndexOpt (bool flag) override
 define null index : default = -1, if true null_index = max_index+1
Arccore::Integer nullIndex () const override
 return value of null index
void keepAlive (const IAbstractFamily *family) override
 Permet de gérer la mort d'une famille associée à l'index-manager.
Public Member Functions inherited from Alien::IIndexManager
 IIndexManager ()=default
 Constructeur par défaut.
virtual ~IIndexManager ()=default
 Destructeur.
virtual void setTraceMng (Arccore::ITraceMng *traceMng)=0
 Définit le gestionnaire de trace.
virtual ScalarIndexSet buildScalarIndexSet (const Arccore::String &name, Arccore::ConstArrayView< Arccore::Integer > localIds, const IAbstractFamily &family)=0
 Construit une nouvelle entrée scalaire sur des items du maillage.
virtual VectorIndexSet buildVectorIndexSet (const Arccore::String &name, Arccore::ConstArrayView< Arccore::Integer > localIds, const IAbstractFamily &family, Arccore::Integer n)=0
 Construit une nouvelle entrée vectorielle sur des items du maillage.

Private Types

enum  State { Undef , Initialized , Prepared }
typedef std::vector< InternalEntryIndexEntryIndexMap
typedef std::map< Arccore::String, MyEntryImpl * > EntrySet
 Table des Entry connues localement.

Private Member Functions

Entry getEntry (const Arccore::String &name) const override
 Retourne l'entrée associée à un nom.
Entry buildEntry (const Arccore::String &name, const IAbstractFamily *itemFamily, Arccore::Integer kind)
void defineIndex (const Entry &entry, Arccore::IntegerConstArrayView localIds)
void parallel_prepare (EntryIndexMap &entry_index)
void sequential_prepare (EntryIndexMap &entry_index)
bool isOwn (const IAbstractFamily::Item &item) const
bool isOwn (const InternalEntryIndex &i) const
void reserveEntries (const EntryIndexMap &entry_index)
Arccore::Integer addNewAbstractFamily (const IAbstractFamily *family)
void init_mine ()
 Init datastructure with a non virtual function.

Private Attributes

Arccore::MessagePassing::IMessagePassingMng * m_parallel_mng = nullptr
Arccore::Integer m_local_owner = 0
 Identifiant du 'propriétaire' courant.
enum Alien::BasicIndexManager::State m_state
Arccore::ITraceMng * m_trace = nullptr
Arccore::Integer m_local_entry_count = 0
Arccore::Integer m_global_entry_count = 0
Arccore::Integer m_global_entry_offset = 0
Arccore::Integer m_local_removed_entry_count = 0
Arccore::Integer m_global_removed_entry_count = 0
bool m_max_null_index_opt = false
EntrySet m_entry_set
Arccore::Integer m_creation_index = 0
 Index de creation des entrées.
Arccore::Integer m_abstract_family_base_kind = 0
 Famille des familles abstraites associées aux familles du maillage.
std::map< Arccore::Integer, std::shared_ptr< IAbstractFamily > > m_abstract_families
 Table des IAbstractFamily ici gérées.
std::map< const IAbstractFamily *, Arccore::Integer > m_abstract_family_to_kind_map
 IAbstractFamily extérieures.

Additional Inherited Members

Public Types inherited from Alien::IIndexManager
typedef Entry ScalarIndexSet
typedef Arccore::UniqueArray< ScalarIndexSet > VectorIndexSet

Detailed Description

Todo
Il est possible d'optimiser les accès vectorielles en raprochant les structures internes des interfaces critiques (en particulier getIndex vectoriel)

Definition at line 26 of file BasicIndexManager.h.

Member Typedef Documentation

◆ EntryIndexMap

typedef std::vector<InternalEntryIndex> Alien::BasicIndexManager::EntryIndexMap
private

Definition at line 169 of file BasicIndexManager.h.

◆ EntrySet

typedef std::map<Arccore::String, MyEntryImpl*> Alien::BasicIndexManager::EntrySet
private

Table des Entry connues localement.

Definition at line 178 of file BasicIndexManager.h.

Member Enumeration Documentation

◆ State

enum Alien::BasicIndexManager::State
private

Definition at line 125 of file BasicIndexManager.h.

Constructor & Destructor Documentation

◆ BasicIndexManager()

Alien::BasicIndexManager::BasicIndexManager ( Alien::IMessagePassingMng * parallelMng)
explicit

Constructeur de la classe.

Definition at line 328 of file BasicIndexManager.cc.

References init_mine(), and parallelMng().

Here is the call graph for this function:

◆ ~BasicIndexManager()

Alien::BasicIndexManager::~BasicIndexManager ( )
override

Destructeur de la classe.

Definition at line 338 of file BasicIndexManager.cc.

References init_mine().

Here is the call graph for this function:

Member Function Documentation

◆ addNewAbstractFamily()

Integer Alien::BasicIndexManager::addNewAbstractFamily ( const IAbstractFamily * family)
private

Definition at line 1111 of file BasicIndexManager.cc.

◆ buildEntry()

IIndexManager::Entry Alien::BasicIndexManager::buildEntry ( const Arccore::String & name,
const IAbstractFamily * itemFamily,
Arccore::Integer kind )
private

Definition at line 383 of file BasicIndexManager.cc.

◆ buildScalarIndexSet()

ScalarIndexSet Alien::BasicIndexManager::buildScalarIndexSet ( const Arccore::String & name,
const IIndexManager::IAbstractFamily & family )
overridevirtual

Construit une nouvelle entrée scalaire sur l'ensemble des entités d'une familles abstraite

Implements Alien::IIndexManager.

◆ buildVectorIndexSet() [1/2]

VectorIndexSet Alien::BasicIndexManager::buildVectorIndexSet ( const Arccore::String & name,
Arccore::IntegerConstArrayView localIds,
const IIndexManager::IAbstractFamily & family,
Arccore::Integer n )
override

Construit une nouvelle entrée vectoriellesur un ensemble d'entités abstraites.

L'implémentation actuelle considére le multi-scalaire comme du vectoriel

◆ buildVectorIndexSet() [2/2]

VectorIndexSet Alien::BasicIndexManager::buildVectorIndexSet ( const Arccore::String & name,
const IIndexManager::IAbstractFamily & family,
Arccore::Integer n )
overridevirtual

Construit une nouvelle entrée scalaire sur l'ensemble des entités d'une familles abstraite

L'implémentation actuelle considére le multi-scalaire comme du vectoriel

Implements Alien::IIndexManager.

References getIndexes().

Here is the call graph for this function:

◆ defineIndex()

void Alien::BasicIndexManager::defineIndex ( const Entry & entry,
Arccore::IntegerConstArrayView localIds )
private

Definition at line 420 of file BasicIndexManager.cc.

◆ enumerateEntry()

IIndexManager::EntryEnumerator Alien::BasicIndexManager::enumerateEntry ( ) const
nodiscardoverridevirtual

Construction d'un enumerateur sur les Entry.

Implements Alien::IIndexManager.

Definition at line 1011 of file BasicIndexManager.cc.

◆ getEntry()

IIndexManager::Entry Alien::BasicIndexManager::getEntry ( const Arccore::String & name) const
nodiscardoverrideprivatevirtual

Retourne l'entrée associée à un nom.

Implements Alien::IIndexManager.

Definition at line 406 of file BasicIndexManager.cc.

◆ getIndexes() [1/2]

UniqueArray< Integer > Alien::BasicIndexManager::getIndexes ( const ScalarIndexSet & entry) const
nodiscardoverridevirtual

Fournit une table de translation indexé par les items.

Implements Alien::IIndexManager.

Definition at line 911 of file BasicIndexManager.cc.

References Alien::IIndexManager::Entry::internal(), Alien::IIndexManager::Entry::manager(), Alien::IIndexManager::IAbstractFamily::maxLocalId(), and nullIndex().

Referenced by buildVectorIndexSet().

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

◆ getIndexes() [2/2]

UniqueArray2< Integer > Alien::BasicIndexManager::getIndexes ( const VectorIndexSet & entries) const
nodiscardoverridevirtual

Fournit une table de translation vectorielle indexé par les items puis par les entrées

Implements Alien::IIndexManager.

Definition at line 932 of file BasicIndexManager.cc.

References Alien::BasicIndexManager::MyEntryImpl::getAllIndexes(), Alien::IIndexManager::IAbstractFamily::maxLocalId(), and nullIndex().

Here is the call graph for this function:

◆ globalSize()

Integer Alien::BasicIndexManager::globalSize ( ) const
nodiscardoverridevirtual

Retourne la taille globale.

Uniquement valide après prepare

Implements Alien::IIndexManager.

Definition at line 978 of file BasicIndexManager.cc.

Referenced by stats().

Here is the caller graph for this function:

◆ init()

void Alien::BasicIndexManager::init ( )
overridevirtual

Initialisation.

Implements Alien::IIndexManager.

Definition at line 346 of file BasicIndexManager.cc.

References init_mine().

Here is the call graph for this function:

◆ init_mine()

void Alien::BasicIndexManager::init_mine ( )
private

Init datastructure with a non virtual function.

Definition at line 351 of file BasicIndexManager.cc.

References m_abstract_families, m_abstract_family_base_kind, m_abstract_family_to_kind_map, and m_local_owner.

Referenced by BasicIndexManager(), init(), and ~BasicIndexManager().

Here is the caller graph for this function:

◆ isOwn() [1/2]

bool Alien::BasicIndexManager::isOwn ( const IAbstractFamily::Item & item) const
inlinenodiscardprivate

Definition at line 211 of file BasicIndexManager.h.

◆ isOwn() [2/2]

bool Alien::BasicIndexManager::isOwn ( const InternalEntryIndex & i) const
inlinenodiscardprivate

Definition at line 215 of file BasicIndexManager.h.

◆ isPrepared()

bool Alien::BasicIndexManager::isPrepared ( ) const
inlinenodiscardoverridevirtual

Indique si la phase de préparation est achevée.

Implements Alien::IIndexManager.

Definition at line 39 of file BasicIndexManager.h.

◆ keepAlive()

void Alien::BasicIndexManager::keepAlive ( const IAbstractFamily * family)
overridevirtual

Permet de gérer la mort d'une famille associée à l'index-manager.

Méthode de bas niveau pour les implémentationsde IAbstractFamily, usuellement dans le desctructeur des implémentations extérieures de IAbstractFamily

Implements Alien::IIndexManager.

Definition at line 1091 of file BasicIndexManager.cc.

References Alien::IIndexManager::IAbstractFamily::clone(), Alien::BasicIndexManager::MyEntryImpl::getFamily(), m_abstract_families, and m_abstract_family_to_kind_map.

Here is the call graph for this function:

◆ localSize()

Integer Alien::BasicIndexManager::localSize ( ) const
nodiscardoverridevirtual

Retourne l'indice minimum local.

Uniquement valide après prepare

Implements Alien::IIndexManager.

Definition at line 1000 of file BasicIndexManager.cc.

Referenced by stats().

Here is the caller graph for this function:

◆ minLocalIndex()

Integer Alien::BasicIndexManager::minLocalIndex ( ) const
nodiscardoverridevirtual

Retourne l'indice minimum local.

Uniquement valide après prepare

Implements Alien::IIndexManager.

Definition at line 989 of file BasicIndexManager.cc.

Referenced by stats().

Here is the caller graph for this function:

◆ nullIndex()

Arccore::Integer Alien::BasicIndexManager::nullIndex ( ) const
inlinenodiscardoverridevirtual

return value of null index

Implements Alien::IIndexManager.

Definition at line 109 of file BasicIndexManager.h.

Referenced by getIndexes(), and getIndexes().

Here is the caller graph for this function:

◆ parallel_prepare()

void Alien::BasicIndexManager::parallel_prepare ( EntryIndexMap & entry_index)
private

Definition at line 533 of file BasicIndexManager.cc.

◆ parallelMng()

Arccore::MessagePassing::IMessagePassingMng * Alien::BasicIndexManager::parallelMng ( ) const
inlinenodiscardoverridevirtual

Donne le gestionnaire parallèle ayant servi à l'indexation.

Implements Alien::IIndexManager.

Definition at line 101 of file BasicIndexManager.h.

Referenced by BasicIndexManager().

Here is the caller graph for this function:

◆ prepare()

void Alien::BasicIndexManager::prepare ( )
overridevirtual

Préparation : fixe l'indexation (fin des définitions).

< Table des index d'entrées (>=0:local, <0:global) en phase1

Implements Alien::IIndexManager.

Definition at line 453 of file BasicIndexManager.cc.

References Alien::BasicIndexManager::MyEntryImpl::getFamily(), Alien::BasicIndexManager::MyEntryImpl::getKind(), Alien::IIndexManager::IAbstractFamily::item(), Alien::IIndexManager::IAbstractFamily::owners(), and Alien::IIndexManager::IAbstractFamily::uids().

Here is the call graph for this function:

◆ reserveEntries()

void Alien::BasicIndexManager::reserveEntries ( const EntryIndexMap & entry_index)
private

Definition at line 886 of file BasicIndexManager.cc.

◆ sequential_prepare()

void Alien::BasicIndexManager::sequential_prepare ( EntryIndexMap & entry_index)
private

Definition at line 846 of file BasicIndexManager.cc.

◆ setMaxNullIndexOpt()

void Alien::BasicIndexManager::setMaxNullIndexOpt ( bool flag)
inlineoverridevirtual

define null index : default = -1, if true null_index = max_index+1

Implements Alien::IIndexManager.

Definition at line 107 of file BasicIndexManager.h.

◆ setTraceMng()

void Alien::BasicIndexManager::setTraceMng ( Alien::ITraceMng * traceMng)
override

Définit le gestionnaire de trace.

Definition at line 375 of file BasicIndexManager.cc.

◆ stats()

void Alien::BasicIndexManager::stats ( Arccore::Integer & globalSize,
Arccore::Integer & minLocalIndex,
Arccore::Integer & localSize ) const
overridevirtual

Statistiques d'indexation.

Uniquement valide après prepare

Implements Alien::IIndexManager.

Definition at line 964 of file BasicIndexManager.cc.

References globalSize(), localSize(), and minLocalIndex().

Here is the call graph for this function:

Member Data Documentation

◆ m_abstract_families

std::map<Arccore::Integer, std::shared_ptr<IAbstractFamily> > Alien::BasicIndexManager::m_abstract_families
private

Table des IAbstractFamily ici gérées.

Definition at line 190 of file BasicIndexManager.h.

Referenced by init_mine(), and keepAlive().

◆ m_abstract_family_base_kind

Arccore::Integer Alien::BasicIndexManager::m_abstract_family_base_kind = 0
private

Famille des familles abstraites associées aux familles du maillage.

Definition at line 186 of file BasicIndexManager.h.

Referenced by init_mine().

◆ m_abstract_family_to_kind_map

std::map<const IAbstractFamily*, Arccore::Integer> Alien::BasicIndexManager::m_abstract_family_to_kind_map
private

IAbstractFamily extérieures.

Permet la gestion de la survie des

Definition at line 192 of file BasicIndexManager.h.

Referenced by init_mine(), and keepAlive().

◆ m_creation_index

Arccore::Integer Alien::BasicIndexManager::m_creation_index = 0
private

Index de creation des entrées.

Definition at line 182 of file BasicIndexManager.h.

◆ m_entry_set

EntrySet Alien::BasicIndexManager::m_entry_set
private

Definition at line 179 of file BasicIndexManager.h.

◆ m_global_entry_count

Arccore::Integer Alien::BasicIndexManager::m_global_entry_count = 0
private

Definition at line 135 of file BasicIndexManager.h.

◆ m_global_entry_offset

Arccore::Integer Alien::BasicIndexManager::m_global_entry_offset = 0
private

Definition at line 136 of file BasicIndexManager.h.

◆ m_global_removed_entry_count

Arccore::Integer Alien::BasicIndexManager::m_global_removed_entry_count = 0
private

Definition at line 138 of file BasicIndexManager.h.

◆ m_local_entry_count

Arccore::Integer Alien::BasicIndexManager::m_local_entry_count = 0
private

Definition at line 134 of file BasicIndexManager.h.

◆ m_local_owner

Arccore::Integer Alien::BasicIndexManager::m_local_owner = 0
private

Identifiant du 'propriétaire' courant.

Definition at line 123 of file BasicIndexManager.h.

Referenced by init_mine().

◆ m_local_removed_entry_count

Arccore::Integer Alien::BasicIndexManager::m_local_removed_entry_count = 0
private

Definition at line 137 of file BasicIndexManager.h.

◆ m_max_null_index_opt

bool Alien::BasicIndexManager::m_max_null_index_opt = false
private

Definition at line 140 of file BasicIndexManager.h.

◆ m_parallel_mng

Arccore::MessagePassing::IMessagePassingMng* Alien::BasicIndexManager::m_parallel_mng = nullptr
private

Definition at line 122 of file BasicIndexManager.h.

◆ m_trace

Arccore::ITraceMng* Alien::BasicIndexManager::m_trace = nullptr
private

Definition at line 132 of file BasicIndexManager.h.


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