12#ifndef ARCANE_MATERIALS_INTERNAL_INCREMENTALCOMPONENTMODIFIER_H
13#define ARCANE_MATERIALS_INTERNAL_INCREMENTALCOMPONENTMODIFIER_H
17#include "arcane/utils/TraceAccessor.h"
20#include "arcane/materials/internal/MeshMaterialVariableIndexer.h"
21#include "arcane/materials/internal/ConstituentModifierWorkInfo.h"
23#include "arcane/accelerator/core/RunQueue.h"
44 friend class MeshMaterialModifierImpl;
52 void initialize(
bool is_debug);
55 void setDoCopyBetweenPartialAndPure(
bool v) { m_do_copy_between_partial_and_pure = v; }
56 void setDoInitNewItems(
bool v) { m_do_init_new_items = v; }
64 bool m_do_copy_between_partial_and_pure =
true;
65 bool m_do_init_new_items =
true;
66 bool m_is_debug =
false;
Execution queue for an accelerator.
Information on environment values.
Helper class for building a list of ComponentItems for a MeshMaterialVariableIndexer.
Working structure used during the modification of constituents (via MeshMaterialModifier).
Arguments for methods copying between partial and global values.
Interface of a mesh environment.
void _switchCellsForMaterials(const MeshMaterial *modified_mat, SmallSpan< const Int32 > ids)
Transforms entities for an environment.
Int32 _computeCellsToTransformForEnvironments(SmallSpan< const Int32 > ids)
Calculates the cells to transform when modifying the cells of an environment.
void _switchCellsForEnvironments(const IMeshEnvironment *modified_env, SmallSpan< const Int32 > ids)
Transforms entities for environments.
void _applyCopyVariableViews(RunQueue &queue)
Performs the copy of views for variables.
bool m_force_multiple_command_for_resize
True if we force the use of a single command for resizing.
void _addItemsToEnvironment(MeshEnvironment *env, MeshMaterial *mat, SmallSpan< const Int32 > local_ids, bool update_env_indexer)
Adds the cells of an environment material.
void _applyCopyBetweenPartialsAndGlobals(const CopyBetweenPartialAndGlobalArgs &args, RunQueue &queue)
Performs the copy between partial and global values.
void _resizeVariablesIndexer(Int32 var_index)
Resizes the variable index var_index.
void _copyBetweenPartialsAndGlobals(const CopyBetweenPartialAndGlobalArgs &args)
Copies between partial and global values.
Int32 m_use_generic_copy_between_pure_and_partial
1 or 2 if we use a generic version for copies between pure and partial
Int32 _computeCellsToTransformForMaterial(const MeshMaterial *mat, SmallSpan< const Int32 > ids)
Calculates the cells to transform for material \at mat.
void _removeItemsFromEnvironment(MeshEnvironment *env, MeshMaterial *mat, SmallSpan< const Int32 > local_ids, bool update_env_indexer)
Removes cells of a material from the environment.
Arguments for methods copying between partial and global values.
Operation to add or remove cells from a material.
Implementation of a material manager.
Indexer for material variables.
View of an array of elements of type T.
TraceAccessor(ITraceMng *m)
Constructs an accessor via the trace manager m.
Always enables tracing in Arcane parts concerning materials.
class ARCANE_MATERIALS_EXPORT(64) SimdMatVarIndex
SIMD indexer on a component.
std::int32_t Int32
Signed integer type of 32 bits.