12#ifndef ARCANE_MATERIALS_INTERNAL_CONSTITUENTMODIFIERWORKINFO_H
13#define ARCANE_MATERIALS_INTERNAL_CONSTITUENTMODIFIERWORKINFO_H
17#include "arcane/utils/TraceAccessor.h"
18#include "arcane/utils/DualUniqueArray.h"
20#include "arcane/core/materials/internal/IMeshMaterialVariableInternal.h"
22#include "arcane/materials/internal/MeshMaterialVariableIndexer.h"
23#include "arcane/materials/internal/ComponentItemListBuilder.h"
72 bool is_verbose =
false;
120 for (
Int32 x : local_ids)
133 bool isAdd()
const {
return m_is_add; }
136 SmallSpan<bool> transformedCells() {
return m_cells_to_transform.to1DSmallSpan(); }
137 SmallSpan<const bool> removedCells()
const {
return m_removed_local_ids_filter.to1DSmallSpan(); }
138 SmallSpan<bool> removedCells() {
return m_removed_local_ids_filter.to1DSmallSpan(); }
150 bool m_is_add =
false;
Execution queue for an accelerator.
Constant view of an array of type T.
Represents an array having a view on both CPU and accelerator.
Helper class for building a list of ComponentItems for a MeshMaterialVariableIndexer.
UniqueArray< Int32 > cells_unchanged_in_env
List of cells of an environment that are already present in an environment during an operation.
UniqueArray< Int16 > m_cells_current_nb_material
Number of materials for the environment currently being evaluated.
DualUniqueArray< Int32 > pure_local_ids
List of pure cells of a constituent added/removed by the current operation.
void resetTransformedCells(ConstArrayView< Int32 > local_ids)
Sets the transformation status of the cell local_id for the current operation.
bool isRemovedCell(Int32 local_id) const
Indicates if the cell local_id is removed from the material for the current operation.
DualUniqueArray< MatVarIndex > m_saved_matvar_indexes
List of MatVarIndex and LocalId to save when deleting material cells.
bool isTransformedCell(CellLocalId local_id) const
Indicates if the cell local_id is transformed during the current operation.
UniqueArray< CopyBetweenDataInfo > m_host_variables_copy_data
Information for copies between partial and global values.
DualUniqueArray< bool > m_is_materials_modified
Array dimensioned by materials, which is true if a material is affected by the current modification.
NumArray< bool, MDDim1 > m_removed_local_ids_filter
Filter indicating the cells that are removed from the constituent.
UniqueArray< Int32 > cells_changed_in_env
List of cells of an environment that will be added or removed during an operation.
NumArray< CopyBetweenDataInfo, MDDim1 > m_variables_copy_data
Information for copies between partial and global values.
bool isAdd() const
Indicates if the current operation is an addition (true) or a removal (false) of cells.
void initialize(Int32 max_local_id, Int32 nb_material, Int32 nb_environment, RunQueue &queue)
Initializes the instance.
NumArray< bool, MDDim1 > m_cells_to_transform
Filter indicating the cells that must change status (Pure<->Partial).
DualUniqueArray< Int32 > partial_indexes
List of partial cells of a constituent added/removed by the current operation.
void setTransformedCell(CellLocalId local_id, bool v)
Sets the transformation status of the cell local_id for the current operation.
DualUniqueArray< bool > m_is_environments_modified
Array dimensioned by environments, which is true if an environment is affected by the current modific...
Operation to add or remove cells from a material.
Options to configure allocations.
Multi-dimensional arrays for numerical types accessible on accelerators.
View of an array of elements of type T.
1D data vector with value semantics (STL style).
Always enables tracing in Arcane parts concerning materials.
class ARCANE_MATERIALS_EXPORT(64) SimdMatVarIndex
SIMD indexer on a component.
Arcane::eMemoryResource eMemoryRessource
Typedef for the historical Arcane version (with 2's').
std::int32_t Int32
Signed integer type of 32 bits.