12#ifndef ARCANE_MATERIALS_ALLCELLTOALLENVCELLCONVERTER_H
13#define ARCANE_MATERIALS_ALLCELLTOALLENVCELLCONVERTER_H
19#include "arcane/utils/PlatformUtils.h"
20#include "arcane/utils/NumArray.h"
22#include "arcane/core/IMesh.h"
23#include "arcane/core/materials/MatItem.h"
24#include "arcane/core/materials/IMeshMaterialMng.h"
26#include "arcane/core/materials/CellToAllEnvCellConverter.h"
33class MeshMaterialAcceleratorUnitTest;
102 return m_allcell_allenvcell_ptr;
113 Int32 maxNbEnvPerCell()
const;
120 void bruteForceUpdate();
133 Int32 m_current_max_nb_env = 0;
152 using size_type = Span<ComponentItemLocalId>::size_type;
161 return m_cell_allenvcell;
164 ARCCORE_HOST_DEVICE
size_type nbEnvironment(Integer
cid)
const
166 return m_cell_allenvcell->internal()[
cid].size();
183 using index_type = Span<ComponentItemLocalId>::index_type;
184 using size_type = Span<ComponentItemLocalId>::size_type;
192#if defined(ARCCORE_DEVICE_CODE)
193 m_ptr = &(
acc.getAllCellToAllEnvCell()->internal()[
cell_id]);
194 m_size = m_ptr->size();
196 if (
acc.getAllCellToAllEnvCell()) {
197 m_ptr = &(
acc.getAllCellToAllEnvCell()->internal()[
cell_id]);
198 m_size = m_ptr->size();
201 ARCANE_FATAL(
"Must create AllCellToAllEnvCell before using ENUMERATE_ALLENVCELL");
204 ARCCORE_HOST_DEVICE
void operator++()
209 ARCCORE_HOST_DEVICE
bool hasNext()
const
211 return m_index < m_size;
216 return (*m_ptr)[m_index];
239#define RUNCOMMAND_ENUMERATE_CELL_ALLENVCELL(cell_to_allenvcellaccessor, iter_name, cell_group) \
240 A_FUNCINFO << cell_group << [=] ARCCORE_HOST_DEVICE(CellLocalId iter_name)
246#define A_ENUMERATE_CELL_ALLCOMPONENTCELL(_EnumeratorClassName, iname, cid, cell_to_allenvcellaccessor) \
247 for (A_TRACE_COMPONENT(_EnumeratorClassName) iname(::Arcane::Materials::_EnumeratorClassName(cid, cell_to_allenvcellaccessor) A_TRACE_ENUMERATOR_WHERE); iname.hasNext(); ++iname)
262#define ENUMERATE_CELL_ALLENVCELL(iname, cid, cell_to_allenvcellaccessor) \
263 A_ENUMERATE_CELL_ALLCOMPONENTCELL(CellToAllComponentCellEnumerator, iname, cid, cell_to_allenvcellaccessor)
#define ARCANE_FATAL(...)
Macro envoyant une exception FatalErrorException.
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Table de connectivité des 'Cell' vers leur(s) 'AllEnvCell' destinée à une utilisation sur accélérateu...
ARCCORE_HOST_DEVICE Span< ComponentItemLocalId > * internal() const
Méthode d'accès à la table de "connectivité" cell -> all env cells.
AllCellToAllEnvCell & operator=(const AllCellToAllEnvCell &)=delete
Copies interdites.
Informations sur les valeurs des milieux.
Classe d'encapsulation pour accéder à la connectivité équivalente cell -> allenvcell....
Index d'un Item matériaux dans une variable.
Interface du gestionnaire des matériaux et des milieux d'un maillage.
Implémentation d'un gestion des matériaux.
Active toujours les traces dans les parties Arcane concernant les matériaux.