12#ifndef ARCANE_MATERIALS_INTERNAL_COMPONENTITEMLISTBUILDER_H
13#define ARCANE_MATERIALS_INTERNAL_COMPONENTITEMLISTBUILDER_H
17#include "arcane/utils/Array.h"
18#include "arcane/utils/NumArray.h"
20#include "arcane/core/materials/MatVarIndex.h"
41 ComponentItemListBuilder();
45 void preAllocate(
Int32 nb_item)
47 m_partial_local_ids.resize(nb_item);
48 m_pure_indexes.resize(nb_item);
49 m_partial_indexes.resize(nb_item);
54 m_partial_local_ids.resize(nb_partial);
55 m_pure_indexes.resize(nb_pure);
56 m_partial_indexes.resize(nb_partial);
93 Integer begin_index_in_partial);
100 m_pure_matvar_indexes.add(
MatVarIndex(0, local_id));
108 m_partial_matvar_indexes.add(
MatVarIndex(m_component_index, m_index_in_partial));
109 m_partial_local_ids.add(local_id);
110 ++m_index_in_partial;
117 ConstArrayView<Int32> partialLocalIds()
const {
return m_partial_local_ids; }
118 MeshMaterialVariableIndexer* indexer()
const {
return m_indexer; }
122 Integer m_component_index = -1;
123 Integer m_index_in_partial = -1;
125 UniqueArray<MatVarIndex> m_pure_matvar_indexes;
127 UniqueArray<MatVarIndex> m_partial_matvar_indexes;
128 UniqueArray<Int32> m_partial_local_ids;
130 MeshMaterialVariableIndexer* m_indexer =
nullptr;
Constant view of an array of type T.
void addPureItem(Int32 local_id)
Adds the entity with localId() local_id to the list of pure entities.
void addPartialItem(Int32 local_id)
Adds the entity with localId() local_id to the list of partial entities.
Represents an index on material and environment variables.
Indexer for material variables.
Multi-dimensional arrays for numerical types accessible on accelerators.
View of an array of elements of type T.
Always enables tracing in Arcane parts concerning materials.
class ARCANE_MATERIALS_EXPORT(64) SimdMatVarIndex
SIMD indexer on a component.
Int32 Integer
Type representing an integer.
std::int32_t Int32
Signed integer type of 32 bits.