Table de connectivité des 'Cell' vers leur(s) 'AllEnvCell' destinée à une utilisation sur accélérateur. Plus de détails...
#include <arcane/materials/internal/AllCellToAllEnvCellContainer.h>
Classes | |
class | Impl |
Fonctions membres publiques | |
AllCellToAllEnvCellContainer (IMeshMaterialMng *mm) | |
AllCellToAllEnvCellContainer (const AllCellToAllEnvCellContainer &)=delete | |
Copies interdites. | |
AllCellToAllEnvCellContainer & | operator= (const AllCellToAllEnvCellContainer &)=delete |
AllCellToAllEnvCellContainer & | operator= (AllCellToAllEnvCellContainer &&)=delete |
void | initialize () |
Fonction de création alternative. Il faut attendre que les données relatives aux matériaux soient finalisées. | |
Int32 | computeMaxNbEnvPerCell () const |
Méthode pour donner le nombre maximal d'environnements présents sur une maille à l'instant t. | |
void | bruteForceUpdate () |
void | reset () |
AllCellToAllEnvCell | view () const |
Attributs privés | |
Impl * | m_p = nullptr |
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 55 du fichier AllCellToAllEnvCellContainer.h.
|
explicit |
Définition à la ligne 225 du fichier AllCellToAllEnvCellConverter.cc.
Arcane::Materials::AllCellToAllEnvCellContainer::~AllCellToAllEnvCellContainer | ( | ) |
Définition à la ligne 234 du fichier AllCellToAllEnvCellConverter.cc.
void Arcane::Materials::AllCellToAllEnvCellContainer::bruteForceUpdate | ( | ) |
On regarde si le nb max d'env par cell à l'instant t a changé, et si c'est le cas, on force la reconstruction de la table. Est appelé par le forceRecompute du IMeshMaterialMng
Définition à la ligne 270 du fichier AllCellToAllEnvCellConverter.cc.
Int32 Arcane::Materials::AllCellToAllEnvCellContainer::computeMaxNbEnvPerCell | ( | ) | const |
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 252 du fichier AllCellToAllEnvCellConverter.cc.
void Arcane::Materials::AllCellToAllEnvCellContainer::initialize | ( | ) |
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 261 du fichier AllCellToAllEnvCellConverter.cc.
void Arcane::Materials::AllCellToAllEnvCellContainer::reset | ( | ) |
Définition à la ligne 243 du fichier AllCellToAllEnvCellConverter.cc.
AllCellToAllEnvCell Arcane::Materials::AllCellToAllEnvCellContainer::view | ( | ) | const |
Définition à la ligne 279 du fichier AllCellToAllEnvCellConverter.cc.
Définition à la ligne 112 du fichier AllCellToAllEnvCellContainer.h.