Table de connectivité des 'Cell' vers leur(s) 'AllEnvCell' destinée à une utilisation sur accélérateur. Plus de détails...
#include <arcane/materials/AllCellToAllEnvCellConverter.h>
Classes | |
class | Impl |
Fonctions membres publiques | |
AllCellToAllEnvCell & | operator= (const AllCellToAllEnvCell &)=delete |
Copies interdites. | |
Fonctions membres privées | |
AllCellToAllEnvCell (IMeshMaterialMng *mm) | |
void | initialize () |
Fonction de création alternative. Il faut attendre que les données relatives aux matériaux soient finalisées. | |
ARCCORE_HOST_DEVICE Span< ComponentItemLocalId > * | internal () const |
Méthode d'accès à la table de "connectivité" cell -> all env cells. | |
Int32 | maxNbEnvPerCell () const |
Méthode pour donner le nombre maximal d'environnements présents sur une maille à l'instant t. | |
void | bruteForceUpdate () |
void | reset () |
Attributs privés | |
IMeshMaterialMng * | m_material_mng = nullptr |
Integer | m_size = 0 |
NumArray< Span< ComponentItemLocalId >, MDDim1 > | m_allcell_allenvcell |
Span< ComponentItemLocalId > * | m_allcell_allenvcell_ptr = nullptr |
NumArray< ComponentItemLocalId, MDDim1 > | m_mem_pool |
Int32 | m_current_max_nb_env = 0 |
Amis | |
class | CellToAllEnvCellAccessor |
class | CellToAllComponentCellEnumerator |
class | MeshMaterialMng |
class | AllEnvData |
Table de connectivité des 'Cell' vers leur(s) 'AllEnvCell' destinée à une utilisation sur accélérateur.
Classe qui conserve la connectivité de toutes les mailles Cell vers toutes leurs mailles AllEnvCell.
On crée une instance via la méthode create().
Le coût de l'initialisation est cher, il faut allouer la mémoire et remplir les structures. On parcours toutes les mailles et pour chaque maille on fait appel au CellToAllEnvCellConverter.
Une fois l'instance créée, elle doit être mise à jour à chaque fois que la topologie des matériaux/environnements change (ce qui est également cher).
Cette classe est une classe interne et ne doit pas être manipulée directement. Il faut passer par les helpers associés dans le IMeshMaterialMng et la classe CellToAllEnvCellAccessor.
Définition à la ligne 62 du fichier AllCellToAllEnvCellConverter.h.
|
explicitprivate |
Définition à la ligne 99 du fichier AllCellToAllEnvCellConverter.cc.
|
private |
Définition à la ligne 174 du fichier AllCellToAllEnvCellConverter.cc.
|
private |
Fonction de création alternative. Il faut attendre que les données relatives aux matériaux soient finalisées.
La différence réside dans la gestion de la mémoire. Ici, on applique un compromis sur la taille de la table cid -> envcells où la taille du tableau pour ranger les envcells d'une cell est égale à la taille max du nb d'environnement présent à un instant t dans un maille. Celà permet de ne pas faire les allocations mémoire dans la boucle interne et de façon systématique. => Gain de perf à évaluer.
Définition à la ligne 133 du fichier AllCellToAllEnvCellConverter.cc.
Références ENUMERATE_CELL, ENUMERATE_CELL_ENVCELL, et maxNbEnvPerCell().
|
inlineprivate |
Méthode d'accès à la table de "connectivité" cell -> all env cells.
Définition à la ligne 100 du fichier AllCellToAllEnvCellConverter.h.
|
private |
Méthode pour donner le nombre maximal d'environnements présents sur une maille à l'instant t.
Le fait d'effectuer cette opération à un instant donné, permet d'avoir une valeur max <= au nombre total d'environnement présents dans le jdd (et donc d'économiser un peu de mémoire).
Définition à la ligne 124 du fichier AllCellToAllEnvCellConverter.cc.
Référencé par initialize().
|
private |
Définition à la ligne 108 du fichier AllCellToAllEnvCellConverter.cc.
|
friend |
Définition à la ligne 67 du fichier AllCellToAllEnvCellConverter.h.
Définition à la ligne 65 du fichier AllCellToAllEnvCellConverter.h.
|
friend |
Définition à la ligne 64 du fichier AllCellToAllEnvCellConverter.h.
|
friend |
Définition à la ligne 66 du fichier AllCellToAllEnvCellConverter.h.
|
private |
Définition à la ligne 130 du fichier AllCellToAllEnvCellConverter.h.
|
private |
Définition à la ligne 131 du fichier AllCellToAllEnvCellConverter.h.
|
private |
Définition à la ligne 133 du fichier AllCellToAllEnvCellConverter.h.
|
private |
Définition à la ligne 128 du fichier AllCellToAllEnvCellConverter.h.
|
private |
Définition à la ligne 132 du fichier AllCellToAllEnvCellConverter.h.
|
private |
Définition à la ligne 129 du fichier AllCellToAllEnvCellConverter.h.