Gestion des listes de connectivité des constituants. Plus de détails...
#include <arcane/materials/internal/ComponentConnectivityList.h>
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 | |
ConstituentConnectivityList & | operator= (ConstituentConnectivityList &&)=delete |
ConstituentConnectivityList & | operator= (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. | |
IItemFamily * | sourceFamily () 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< IIncrementalItemSourceConnectivity > | toSourceReference () override |
Retourne une référence sur l'instance. | |
ConstituentConnectivityList (MeshMaterialMng *mm) | |
ConstituentConnectivityList (ConstituentConnectivityList &&)=delete | |
ConstituentConnectivityList (const ConstituentConnectivityList &)=delete | |
ConstituentConnectivityList & | operator= (ConstituentConnectivityList &&)=delete |
ConstituentConnectivityList & | operator= (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. | |
IItemFamily * | sourceFamily () 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< IIncrementalItemSourceConnectivity > | toSourceReference () 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. | |
TraceAccessor & | operator= (const TraceAccessor &rhs) |
Opérateur de recopie. | |
virtual | ~TraceAccessor () |
Libère les ressources. | |
ITraceMng * | traceMng () 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 | |
MeshMaterialMng * | m_material_mng = nullptr |
IItemFamily * | m_cell_family = nullptr |
Container * | m_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 |
Gestion des listes de connectivité des constituants.
Définition à la ligne 38 du fichier ComponentConnectivityList.h.
|
explicit |
Définition à la ligne 289 du fichier ConstituentConnectivityList.cc.
Arcane::Materials::ConstituentConnectivityList::~ConstituentConnectivityList | ( | ) |
Définition à la ligne 305 du fichier ConstituentConnectivityList.cc.
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.
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.
void Arcane::Materials::ConstituentConnectivityList::addCellsToEnvironment | ( | Int16 | env_id, |
SmallSpan< const Int32 > | cell_ids, | ||
RunQueue & | queue | ||
) |
Définition à la ligne 461 du fichier ConstituentConnectivityList.cc.
void Arcane::Materials::ConstituentConnectivityList::addCellsToMaterial | ( | Int16 | mat_id, |
SmallSpan< const Int32 > | cell_ids, | ||
RunQueue & | queue | ||
) |
Définition à la ligne 479 du fichier ConstituentConnectivityList.cc.
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.
ConstArrayView< Int16 > Arcane::Materials::ConstituentConnectivityList::cellsNbEnvironment | ( | ) | const |
Définition à la ligne 497 du fichier ConstituentConnectivityList.cc.
ConstArrayView< Int16 > Arcane::Materials::ConstituentConnectivityList::cellsNbMaterial | ( | ) | const |
Définition à la ligne 506 du fichier ConstituentConnectivityList.cc.
Définition à la ligne 314 du fichier ConstituentConnectivityList.cc.
void Arcane::Materials::ConstituentConnectivityList::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.
Définition à la ligne 606 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::_addItemsToEnvironment().
void Arcane::Materials::ConstituentConnectivityList::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.
Définition à la ligne 535 du fichier ConstituentConnectivityList.cc.
Références Arcane::Accelerator::RunQueue::executionPolicy(), Arcane::Accelerator::isAcceleratorPolicy(), m_environment_for_materials, Arcane::Accelerator::makeCommand(), RUNCOMMAND_LOOP1, et Arccore::Array< T >::view().
Référencé par Arcane::Materials::AllEnvData::_computeInfosForEnvCells().
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().
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.
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().
|
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.
|
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.
|
overridevirtual |
Notifie la connectivité qu'on a effectué une relecture à partir d'une protection.
Implémente Arcane::IIncrementalItemSourceConnectivity.
|
overridevirtual |
Notifie la connectivité que la famille source est compactée.
Implémente Arcane::IIncrementalItemSourceConnectivity.
Définition à la ligne 789 du fichier ConstituentConnectivityList.cc.
|
overridevirtual |
Notifie la connectivité que la famille source est compactée.
Implémente Arcane::IIncrementalItemSourceConnectivity.
|
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.
|
overridevirtual |
Notifie la connectivité qu'une entité a été ajoutée à la famille source.
Implémente Arcane::IIncrementalItemSourceConnectivity.
void Arcane::Materials::ConstituentConnectivityList::printConstituents | ( | SmallSpan< const Int32 > | cells_local_id | ) | const |
Affiche les constituants d'une liste d'entités.
cells_local_id | Liste des numéros locaux des entitiés |
Définition à la ligne 635 du fichier ConstituentConnectivityList.cc.
Références Arccore::TraceAccessor::info().
void Arcane::Materials::ConstituentConnectivityList::removeAllConnectivities | ( | ) |
Supprime toutes les entités connectées.
Définition à la ligne 841 du fichier ConstituentConnectivityList.cc.
void Arcane::Materials::ConstituentConnectivityList::removeCellsToEnvironment | ( | Int16 | env_id, |
SmallSpan< const Int32 > | cell_ids, | ||
RunQueue & | queue | ||
) |
Définition à la ligne 470 du fichier ConstituentConnectivityList.cc.
void Arcane::Materials::ConstituentConnectivityList::removeCellsToMaterial | ( | Int16 | mat_id, |
SmallSpan< const Int32 > | cell_ids, | ||
RunQueue & | queue | ||
) |
Définition à la ligne 488 du fichier ConstituentConnectivityList.cc.
|
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().
|
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.
|
inlineoverridevirtual |
Famille source.
Implémente Arcane::IIncrementalItemSourceConnectivity.
Définition à la ligne 80 du fichier ComponentConnectivityList.h.
|
inlineoverridevirtual |
Famille source.
Implémente Arcane::IIncrementalItemSourceConnectivity.
Définition à la ligne 123 du fichier ConstituentConnectivityList.h.
|
overridevirtual |
Retourne une référence sur l'instance.
Implémente Arcane::IIncrementalItemSourceConnectivity.
Définition à la ligne 832 du fichier ConstituentConnectivityList.cc.
|
overridevirtual |
Retourne une référence sur l'instance.
Implémente Arcane::IIncrementalItemSourceConnectivity.
|
private |
Définition à la ligne 91 du fichier ComponentConnectivityList.h.
Définition à la ligne 92 du fichier ComponentConnectivityList.h.
|
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().
|
private |
Indice du milieu auquel appartient un matériau.
Définition à la ligne 138 du fichier ConstituentConnectivityList.h.
Définition à la ligne 139 du fichier ConstituentConnectivityList.h.
|
private |
Définition à la ligne 140 du fichier ConstituentConnectivityList.h.
|
private |
Définition à la ligne 90 du fichier ComponentConnectivityList.h.