Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
Référence de la classe Arcane::Materials::ConstituentConnectivityList

Gestion des listes de connectivité des constituants. Plus de détails...

#include <arcane/materials/internal/ComponentConnectivityList.h>

+ Graphe d'héritage de Arcane::Materials::ConstituentConnectivityList:
+ Graphe de collaboration de Arcane::Materials::ConstituentConnectivityList:

Classes

class  ConstituentContainer
 Conteneur des données de connectivité pour un type de constituant. Plus de détails...
 
class  Container
 
class  NumberOfMaterialComputer
 Classe pour calculer le nombre de matériaux d'un milieu. Plus de détails...
 

Fonctions membres publiques

 ConstituentConnectivityList (MeshMaterialMng *mm)
 
 ConstituentConnectivityList (ConstituentConnectivityList &&)=delete
 
 ConstituentConnectivityList (const ConstituentConnectivityList &)=delete
 
ConstituentConnectivityListoperator= (ConstituentConnectivityList &&)=delete
 
ConstituentConnectivityListoperator= (const ConstituentConnectivityList &)=delete
 
void endCreate (bool is_continue)
 
void addCellsToEnvironment (Int16 env_id, ConstArrayView< Int32 > cell_ids)
 
void removeCellsToEnvironment (Int16 env_id, ConstArrayView< Int32 > cell_ids)
 
void addCellsToMaterial (Int16 mat_id, ConstArrayView< Int32 > cell_ids)
 
void removeCellsToMaterial (Int16 mat_id, ConstArrayView< Int32 > cell_ids)
 
ConstArrayView< Int16 > cellsNbEnvironment () const
 
ConstArrayView< Int16 > cellsNbMaterial () const
 
Int16 cellNbMaterial (CellLocalId cell_id, Int16 env_id)
 Nombre de matériaux de la maille cell_id pour le milieu d'indice env_id.
 
IItemFamilysourceFamily () const override
 Famille source.
 
void notifySourceFamilyLocalIdChanged (Int32ConstArrayView new_to_old_ids) override
 Notifie la connectivité que la famille source est compactée.
 
void notifySourceItemAdded (ItemLocalId item) override
 Notifie la connectivité qu'une entité a été ajoutée à la famille source.
 
void reserveMemoryForNbSourceItems (Int32 n, bool pre_alloc_connectivity) override
 Réserve la mémoire pour n entités sources.
 
void notifyReadFromDump () override
 Notifie la connectivité qu'on a effectué une relecture à partir d'une protection.
 
Ref< IIncrementalItemSourceConnectivitytoSourceReference () override
 Retourne une référence sur l'instance.
 
 ConstituentConnectivityList (MeshMaterialMng *mm)
 
 ConstituentConnectivityList (ConstituentConnectivityList &&)=delete
 
 ConstituentConnectivityList (const ConstituentConnectivityList &)=delete
 
ConstituentConnectivityListoperator= (ConstituentConnectivityList &&)=delete
 
ConstituentConnectivityListoperator= (const ConstituentConnectivityList &)=delete
 
void endCreate (bool is_continue)
 
void addCellsToEnvironment (Int16 env_id, SmallSpan< const Int32 > cell_ids, RunQueue &queue)
 
void removeCellsToEnvironment (Int16 env_id, SmallSpan< const Int32 > cell_ids, RunQueue &queue)
 
void addCellsToMaterial (Int16 mat_id, SmallSpan< const Int32 > cell_ids, RunQueue &queue)
 
void removeCellsToMaterial (Int16 mat_id, SmallSpan< const Int32 > cell_ids, RunQueue &queue)
 
ConstArrayView< Int16 > cellsNbEnvironment () const
 Tableaux du nombre total de milieux par maille (indexé par localId())
 
ConstArrayView< Int16 > cellsNbMaterial () const
 Tableaux du nombre total de matériaux par maille (indexé par localId())
 
Int16 cellNbMaterial (CellLocalId cell_id, Int16 env_id) const
 Nombre de matériaux de la maille cell_id pour le milieu d'indice env_id.
 
void removeAllConnectivities ()
 Supprime toutes les entités connectées.
 
void fillCellsNbMaterial (SmallSpan< const Int32 > cells_local_id, Int16 env_id, SmallSpan< Int16 > cells_nb_material, RunQueue &queue)
 Remplit cells_nb_material avec le nombre de matériaux du milieu env_id.
 
Int32 fillCellsToTransform (SmallSpan< const Int32 > cells_local_id, Int16 env_id, SmallSpan< bool > cells_do_transform, bool is_add, RunQueue &queue)
 Replit cells_do_transform en indiquant is la maille passe de pure à partielle.
 
void fillCellsIsPartial (SmallSpan< const Int32 > cells_local_id, Int16 env_id, SmallSpan< bool > cells_is_partial, RunQueue &queue)
 Replit cells_is_partial en indiquant is la maille est partielle pour le milieu env_id.
 
void fillModifiedConstituents (SmallSpan< const Int32 > cells_local_id, SmallSpan< bool > is_modified_materials, SmallSpan< bool > is_modified_environments, int modified_mat_id, bool is_add, const RunQueue &queue)
 Remplit les constituants concernés par une modification.
 
void printConstituents (SmallSpan< const Int32 > cells_local_id) const
 Affiche les constituants d'une liste d'entités.
 
bool isActive () const
 Indique si l'instance est activée.
 
IItemFamilysourceFamily () const override
 Famille source.
 
void notifySourceFamilyLocalIdChanged (Int32ConstArrayView new_to_old_ids) override
 Notifie la connectivité que la famille source est compactée.
 
void notifySourceItemAdded (ItemLocalId item) override
 Notifie la connectivité qu'une entité a été ajoutée à la famille source.
 
void reserveMemoryForNbSourceItems (Int32 n, bool pre_alloc_connectivity) override
 Réserve la mémoire pour n entités sources.
 
void notifyReadFromDump () override
 Notifie la connectivité qu'on a effectué une relecture à partir d'une protection.
 
Ref< IIncrementalItemSourceConnectivitytoSourceReference () override
 Retourne une référence sur l'instance.
 
void _addCells (Int16 env_id, SmallSpan< const Int32 > cell_ids, ConstituentContainer &component, RunQueue &queue)
 
void _removeCells (Int16 env_id, SmallSpan< const Int32 > cell_ids, ConstituentContainer &component, RunQueue &queue)
 
- Fonctions membres publiques hérités de Arccore::TraceAccessor
 TraceAccessor (ITraceMng *m)
 Construit un accesseur via le gestionnaire de trace m.
 
 TraceAccessor (const TraceAccessor &rhs)
 Constructeur par recopie.
 
TraceAccessoroperator= (const TraceAccessor &rhs)
 Opérateur de recopie.
 
virtual ~TraceAccessor ()
 Libère les ressources.
 
ITraceMngtraceMng () const
 Gestionnaire de trace.
 
TraceMessage info () const
 Flot pour un message d'information.
 
TraceMessage pinfo () const
 Flot pour un message d'information en parallèle.
 
TraceMessage info (char category) const
 Flot pour un message d'information d'une catégorie donnée.
 
TraceMessage pinfo (char category) const
 Flot pour un message d'information parallèle d'une catégorie donnée.
 
TraceMessage info (bool v) const
 Flot pour un message d'information.
 
TraceMessage warning () const
 Flot pour un message d'avertissement.
 
TraceMessage pwarning () const
 
TraceMessage error () const
 Flot pour un message d'erreur.
 
TraceMessage perror () const
 
TraceMessage log () const
 Flot pour un message de log.
 
TraceMessage plog () const
 Flot pour un message de log.
 
TraceMessage logdate () const
 Flot pour un message de log précédé de la date.
 
TraceMessage fatal () const
 Flot pour un message d'erreur fatale.
 
TraceMessage pfatal () const
 Flot pour un message d'erreur fatale en parallèle.
 
TraceMessageDbg debug (Trace::eDebugLevel=Trace::Medium) const
 Flot pour un message de debug.
 
Trace::eDebugLevel configDbgLevel () const
 Niveau debug du fichier de configuration.
 
TraceMessage info (Int32 verbose_level) const
 Flot pour un message d'information d'un niveau donné
 
TraceMessage linfo () const
 Flot pour un message d'information avec le niveau d'information local à cette instance.
 
TraceMessage linfo (Int32 relative_level) const
 Flot pour un message d'information avec le niveau d'information local à cette instance.
 
void fatalMessage (const StandaloneTraceMessage &o) const
 
- Fonctions membres publiques hérités de Arccore::ReferenceCounterImpl
void addReference ()
 
void removeReference ()
 
void _internalAddReference ()
 
bool _internalRemoveReference ()
 

Fonctions membres privées

 ARCCORE_DEFINE_REFERENCE_COUNTED_INCLASS_METHODS ()
 
void _addCells (Int16 env_id, ConstArrayView< Int32 > cell_ids, ComponentContainer &component)
 
void _removeCells (Int16 env_id, ConstArrayView< Int32 > cell_ids, ComponentContainer &component)
 
 ARCCORE_DEFINE_REFERENCE_COUNTED_INCLASS_METHODS ()
 

Attributs privés

MeshMaterialMngm_material_mng = nullptr
 
IItemFamilym_cell_family = nullptr
 
Containerm_container = nullptr
 
UniqueArray< Int16 > m_environment_for_materials
 Indice du milieu auquel appartient un matériau.
 
DualUniqueArray< Int16 > m_environment_for_materials
 Indice du milieu auquel appartient un matériau.
 
bool m_is_active = false
 
bool m_is_force_transform_all_constituants = false
 

Membres hérités additionnels

- Fonctions membres protégées hérités de Arccore::TraceAccessor
void _setLocalVerboseLevel (Int32 v)
 
Int32 _localVerboseLevel () const
 

Description détaillée

Gestion des listes de connectivité des constituants.

Définition à la ligne 38 du fichier ComponentConnectivityList.h.

Documentation des constructeurs et destructeur

◆ ConstituentConnectivityList()

Arcane::Materials::ConstituentConnectivityList::ConstituentConnectivityList ( MeshMaterialMng mm)
explicit

Définition à la ligne 289 du fichier ConstituentConnectivityList.cc.

◆ ~ConstituentConnectivityList()

Arcane::Materials::ConstituentConnectivityList::~ConstituentConnectivityList ( )

Définition à la ligne 305 du fichier ConstituentConnectivityList.cc.

Documentation des fonctions membres

◆ _addCells()

void Arcane::Materials::ConstituentConnectivityList::_addCells ( Int16  env_id,
SmallSpan< const Int32 >  cell_ids,
ConstituentContainer component,
RunQueue queue 
)

Définition à la ligne 357 du fichier ConstituentConnectivityList.cc.

◆ _removeCells()

void Arcane::Materials::ConstituentConnectivityList::_removeCells ( Int16  env_id,
SmallSpan< const Int32 >  cell_ids,
ConstituentContainer component,
RunQueue queue 
)

Définition à la ligne 431 du fichier ConstituentConnectivityList.cc.

◆ addCellsToEnvironment()

void Arcane::Materials::ConstituentConnectivityList::addCellsToEnvironment ( Int16  env_id,
SmallSpan< const Int32 >  cell_ids,
RunQueue queue 
)

Définition à la ligne 461 du fichier ConstituentConnectivityList.cc.

◆ addCellsToMaterial()

void Arcane::Materials::ConstituentConnectivityList::addCellsToMaterial ( Int16  mat_id,
SmallSpan< const Int32 >  cell_ids,
RunQueue queue 
)

Définition à la ligne 479 du fichier ConstituentConnectivityList.cc.

◆ cellNbMaterial()

Int16 Arcane::Materials::ConstituentConnectivityList::cellNbMaterial ( CellLocalId  cell_id,
Int16  env_id 
) const

Nombre de matériaux de la maille cell_id pour le milieu d'indice env_id.

Définition à la ligne 518 du fichier ConstituentConnectivityList.cc.

Références m_environment_for_materials.

◆ cellsNbEnvironment()

ConstArrayView< Int16 > Arcane::Materials::ConstituentConnectivityList::cellsNbEnvironment ( ) const

Définition à la ligne 497 du fichier ConstituentConnectivityList.cc.

◆ cellsNbMaterial()

ConstArrayView< Int16 > Arcane::Materials::ConstituentConnectivityList::cellsNbMaterial ( ) const

Définition à la ligne 506 du fichier ConstituentConnectivityList.cc.

◆ endCreate()

void Arcane::Materials::ConstituentConnectivityList::endCreate ( bool  is_continue)

Définition à la ligne 314 du fichier ConstituentConnectivityList.cc.

◆ fillCellsIsPartial()

void Arcane::Materials::ConstituentConnectivityList::fillCellsIsPartial ( SmallSpan< const Int32 >  cells_local_id,
Int16  env_id,
SmallSpan< bool cells_is_partial,
RunQueue queue 
)

◆ fillCellsNbMaterial()

void Arcane::Materials::ConstituentConnectivityList::fillCellsNbMaterial ( SmallSpan< const Int32 >  cells_local_id,
Int16  env_id,
SmallSpan< Int16 >  cells_nb_material,
RunQueue queue 
)

◆ fillCellsToTransform()

Int32 Arcane::Materials::ConstituentConnectivityList::fillCellsToTransform ( SmallSpan< const Int32 >  cells_local_id,
Int16  env_id,
SmallSpan< bool cells_do_transform,
bool  is_add,
RunQueue queue 
)

Replit cells_do_transform en indiquant is la maille passe de pure à partielle.

Retourne le nombre de mailles transformées

Définition à la ligne 562 du fichier ConstituentConnectivityList.cc.

Références Arcane::Accelerator::RunQueue::isAcceleratorPolicy(), m_environment_for_materials, Arcane::Accelerator::makeCommand(), RUNCOMMAND_LOOP1, et Arccore::Array< T >::view().

Référencé par Arcane::Materials::IncrementalComponentModifier::_computeCellsToTransformForMaterial().

◆ fillModifiedConstituents()

void Arcane::Materials::ConstituentConnectivityList::fillModifiedConstituents ( SmallSpan< const Int32 >  cells_local_id,
SmallSpan< bool is_modified_materials,
SmallSpan< bool is_modified_environments,
int  modified_mat_id,
bool  is_add,
const RunQueue queue 
)

Remplit les constituants concernés par une modification.

Les mailles concernées par la modification sont données cells_local_id. modified_mat_id est le numéro du matériau ajouté (si is_add est vrai) ou supprimé (si is_add est faux).

Met à true les valeurs de is_modified_materials et is_modified_environments s'ils sont dans une des mailles de cells_local_id.

Cette méthode permet d'optimiser le calcul des constituants qui seront impactés par une modification en tentant de déterminer à l'avance ceux qui seront impactés. Cela permet d'éviter d'appeler des noyaux de calcul (par exemple calculer la liste de mailles à transformer d'un constituant) si on sait que le constituant n'est pas impacté.

Il est possible de revenir à l'ancien mécanisme et de supprimer cette optimisation en remplissant is_modified_materials et is_modified_environments à true pour tout le monde. Cela est le cas si m_is_force_transform_all_constituants est vrai.

Note
il est important que is_modified_materials et is_modified_environments soit vrai si le constituant correspondant est modifié. Sans cela, il y aura une incohérence dans les constituants. Par contre, ce n'est pas grave si on marque un constituant modifié et qu'il s'avère que ce n'est pas le cas. Cela signifie juste qu'on va faire des opérations inutiles (dans MeshMaterialVariableIndexer::transformCells()).

Définition à la ligne 676 du fichier ConstituentConnectivityList.cc.

Références Arccore::TraceAccessor::info(), Arcane::Accelerator::RunQueue::isAcceleratorPolicy(), m_environment_for_materials, Arcane::Accelerator::makeCommand(), RUNCOMMAND_LOOP1, Arccore::TraceAccessor::traceMng(), et Arccore::Array< T >::view().

◆ isActive()

bool Arcane::Materials::ConstituentConnectivityList::isActive ( ) const
inline

Indique si l'instance est activée.

Valide uniquement après appel à endCreate(). Si l'instance n'est pas active, il ne faut appeler aucune des méthodes qui modifient la liste des constituants.

Définition à la ligne 117 du fichier ConstituentConnectivityList.h.

◆ notifyReadFromDump() [1/2]

void Arcane::Materials::ConstituentConnectivityList::notifyReadFromDump ( )
overridevirtual

Notifie la connectivité qu'on a effectué une relecture à partir d'une protection.

Implémente Arcane::IIncrementalItemSourceConnectivity.

Définition à la ligne 824 du fichier ConstituentConnectivityList.cc.

◆ notifyReadFromDump() [2/2]

void Arcane::Materials::ConstituentConnectivityList::notifyReadFromDump ( )
overridevirtual

Notifie la connectivité qu'on a effectué une relecture à partir d'une protection.

Implémente Arcane::IIncrementalItemSourceConnectivity.

◆ notifySourceFamilyLocalIdChanged() [1/2]

void Arcane::Materials::ConstituentConnectivityList::notifySourceFamilyLocalIdChanged ( Int32ConstArrayView  new_to_old_ids)
overridevirtual

Notifie la connectivité que la famille source est compactée.

Implémente Arcane::IIncrementalItemSourceConnectivity.

Définition à la ligne 789 du fichier ConstituentConnectivityList.cc.

◆ notifySourceFamilyLocalIdChanged() [2/2]

void Arcane::Materials::ConstituentConnectivityList::notifySourceFamilyLocalIdChanged ( Int32ConstArrayView  new_to_old_ids)
overridevirtual

Notifie la connectivité que la famille source est compactée.

Implémente Arcane::IIncrementalItemSourceConnectivity.

◆ notifySourceItemAdded() [1/2]

void Arcane::Materials::ConstituentConnectivityList::notifySourceItemAdded ( ItemLocalId  item)
overridevirtual

Notifie la connectivité qu'une entité a été ajoutée à la famille source.

Implémente Arcane::IIncrementalItemSourceConnectivity.

Définition à la ligne 798 du fichier ConstituentConnectivityList.cc.

◆ notifySourceItemAdded() [2/2]

void Arcane::Materials::ConstituentConnectivityList::notifySourceItemAdded ( ItemLocalId  item)
overridevirtual

Notifie la connectivité qu'une entité a été ajoutée à la famille source.

Implémente Arcane::IIncrementalItemSourceConnectivity.

◆ printConstituents()

void Arcane::Materials::ConstituentConnectivityList::printConstituents ( SmallSpan< const Int32 >  cells_local_id) const

Affiche les constituants d'une liste d'entités.

Paramètres
cells_local_idListe des numéros locaux des entitiés

Définition à la ligne 635 du fichier ConstituentConnectivityList.cc.

Références Arccore::TraceAccessor::info().

◆ removeAllConnectivities()

void Arcane::Materials::ConstituentConnectivityList::removeAllConnectivities ( )

Supprime toutes les entités connectées.

Définition à la ligne 841 du fichier ConstituentConnectivityList.cc.

◆ removeCellsToEnvironment()

void Arcane::Materials::ConstituentConnectivityList::removeCellsToEnvironment ( Int16  env_id,
SmallSpan< const Int32 >  cell_ids,
RunQueue queue 
)

Définition à la ligne 470 du fichier ConstituentConnectivityList.cc.

◆ removeCellsToMaterial()

void Arcane::Materials::ConstituentConnectivityList::removeCellsToMaterial ( Int16  mat_id,
SmallSpan< const Int32 >  cell_ids,
RunQueue queue 
)

Définition à la ligne 488 du fichier ConstituentConnectivityList.cc.

◆ reserveMemoryForNbSourceItems() [1/2]

void Arcane::Materials::ConstituentConnectivityList::reserveMemoryForNbSourceItems ( Int32  n,
bool  pre_alloc_connectivity 
)
overridevirtual

Réserve la mémoire pour n entités sources.

L'appel à cette méthode est optionnel mais permet d'éviter de multiples réallocations lors d'appels successifs à notifySourceItemAdded().

Si pre_alloc_connectivity est vrai, pré-alloue aussi les la liste des connectivités en fonction de la valeur de preAllocatedSize(). Par exemple si preAllocatedSize() vaut 4 et si n vaut 10000, on va pré-allouer pour 40000 connectivités. Pour éviter une surconsommation mémoire inutile, il ne faut pré-allouer les connectivités que si on est sur qu'on va les utiliser.

Réimplémentée à partir de Arcane::IIncrementalItemSourceConnectivity.

Définition à la ligne 814 du fichier ConstituentConnectivityList.cc.

Références Arccore::TraceAccessor::info().

◆ reserveMemoryForNbSourceItems() [2/2]

void Arcane::Materials::ConstituentConnectivityList::reserveMemoryForNbSourceItems ( Int32  n,
bool  pre_alloc_connectivity 
)
overridevirtual

Réserve la mémoire pour n entités sources.

L'appel à cette méthode est optionnel mais permet d'éviter de multiples réallocations lors d'appels successifs à notifySourceItemAdded().

Si pre_alloc_connectivity est vrai, pré-alloue aussi les la liste des connectivités en fonction de la valeur de preAllocatedSize(). Par exemple si preAllocatedSize() vaut 4 et si n vaut 10000, on va pré-allouer pour 40000 connectivités. Pour éviter une surconsommation mémoire inutile, il ne faut pré-allouer les connectivités que si on est sur qu'on va les utiliser.

Réimplémentée à partir de Arcane::IIncrementalItemSourceConnectivity.

◆ sourceFamily() [1/2]

IItemFamily * Arcane::Materials::ConstituentConnectivityList::sourceFamily ( ) const
inlineoverridevirtual

Famille source.

Implémente Arcane::IIncrementalItemSourceConnectivity.

Définition à la ligne 80 du fichier ComponentConnectivityList.h.

◆ sourceFamily() [2/2]

IItemFamily * Arcane::Materials::ConstituentConnectivityList::sourceFamily ( ) const
inlineoverridevirtual

Famille source.

Implémente Arcane::IIncrementalItemSourceConnectivity.

Définition à la ligne 123 du fichier ConstituentConnectivityList.h.

◆ toSourceReference() [1/2]

Ref< IIncrementalItemSourceConnectivity > Arcane::Materials::ConstituentConnectivityList::toSourceReference ( )
overridevirtual

Retourne une référence sur l'instance.

Implémente Arcane::IIncrementalItemSourceConnectivity.

Définition à la ligne 832 du fichier ConstituentConnectivityList.cc.

◆ toSourceReference() [2/2]

Ref< IIncrementalItemSourceConnectivity > Arcane::Materials::ConstituentConnectivityList::toSourceReference ( )
overridevirtual

Retourne une référence sur l'instance.

Implémente Arcane::IIncrementalItemSourceConnectivity.

Documentation des données membres

◆ m_cell_family

IItemFamily * Arcane::Materials::ConstituentConnectivityList::m_cell_family = nullptr
private

Définition à la ligne 91 du fichier ComponentConnectivityList.h.

◆ m_container

Container * Arcane::Materials::ConstituentConnectivityList::m_container = nullptr
private

Définition à la ligne 92 du fichier ComponentConnectivityList.h.

◆ m_environment_for_materials [1/2]

UniqueArray<Int16> Arcane::Materials::ConstituentConnectivityList::m_environment_for_materials
private

Indice du milieu auquel appartient un matériau.

Définition à la ligne 95 du fichier ComponentConnectivityList.h.

Référencé par cellNbMaterial(), fillCellsIsPartial(), fillCellsNbMaterial(), fillCellsToTransform(), et fillModifiedConstituents().

◆ m_environment_for_materials [2/2]

DualUniqueArray<Int16> Arcane::Materials::ConstituentConnectivityList::m_environment_for_materials
private

Indice du milieu auquel appartient un matériau.

Définition à la ligne 138 du fichier ConstituentConnectivityList.h.

◆ m_is_active

bool Arcane::Materials::ConstituentConnectivityList::m_is_active = false
private

Définition à la ligne 139 du fichier ConstituentConnectivityList.h.

◆ m_is_force_transform_all_constituants

bool Arcane::Materials::ConstituentConnectivityList::m_is_force_transform_all_constituants = false
private

Définition à la ligne 140 du fichier ConstituentConnectivityList.h.

◆ m_material_mng

MeshMaterialMng * Arcane::Materials::ConstituentConnectivityList::m_material_mng = nullptr
private

Définition à la ligne 90 du fichier ComponentConnectivityList.h.


La documentation de cette classe a été générée à partir des fichiers suivants :