Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
ConstituentModifierWorkInfo.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2024 CEA (www.cea.fr) IFPEN (www.ifpenergiesnouvelles.com)
4// See the top-level COPYRIGHT file for details.
5// SPDX-License-Identifier: Apache-2.0
6//-----------------------------------------------------------------------------
7/*---------------------------------------------------------------------------*/
8/* ConstituentModifierWorkInfo.h (C) 2000-2024 */
9/* */
10/* Structure de travail utilisée lors de la modification des constituants. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_MATERIALS_INTERNAL_CONSTITUENTMODIFIERWORKINFO_H
13#define ARCANE_MATERIALS_INTERNAL_CONSTITUENTMODIFIERWORKINFO_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/utils/TraceAccessor.h"
18#include "arcane/utils/DualUniqueArray.h"
19
20#include "arcane/core/materials/internal/IMeshMaterialVariableInternal.h"
22#include "arcane/materials/internal/MeshMaterialVariableIndexer.h"
23#include "arcane/materials/internal/ComponentItemListBuilder.h"
24
25/*---------------------------------------------------------------------------*/
26/*---------------------------------------------------------------------------*/
27
28namespace Arcane::Materials
29{
30
31/*---------------------------------------------------------------------------*/
32/*---------------------------------------------------------------------------*/
43class ARCANE_MATERIALS_EXPORT ConstituentModifierWorkInfo
44{
45 public:
46
48
49 public:
50
71 bool is_verbose = false;
72
77
80 DualUniqueArray<Int32> m_saved_local_ids;
81
84
85 // Filtre indiquant si une maille sera partielle après l'ajout.
86 // Ce tableau est dimensionné au nombre de mailles ajoutées lors de la tranformation courante.
87 NumArray<bool, MDDim1> m_cells_is_partial;
88
89 ComponentItemListBuilder list_builder;
90
93
96
97 public:
98
100 void initialize(Int32 max_local_id, Int32 nb_material, Int32 nb_environment, RunQueue& queue);
101
102 public:
103
105 bool isTransformedCell(CellLocalId local_id) const
106 {
107 return m_cells_to_transform[local_id.localId()];
108 }
109
111 void setTransformedCell(CellLocalId local_id, bool v)
112 {
113 m_cells_to_transform[local_id.localId()] = v;
114 }
115
118 {
119 for (Int32 x : local_ids)
120 m_cells_to_transform[x] = false;
121 }
123 bool isRemovedCell(Int32 local_id) const { return m_removed_local_ids_filter[local_id]; }
124
126 void setRemovedCells(ConstArrayView<Int32> local_ids, bool value);
127
129 void setCurrentOperation(MaterialModifierOperation* operation);
130
132 bool isAdd() const { return m_is_add; }
133
134 SmallSpan<const bool> transformedCells() const { return m_cells_to_transform.to1DSmallSpan(); }
135 SmallSpan<bool> transformedCells() { return m_cells_to_transform.to1DSmallSpan(); }
136 SmallSpan<const bool> removedCells() const { return m_removed_local_ids_filter.to1DSmallSpan(); }
137 SmallSpan<bool> removedCells() { return m_removed_local_ids_filter.to1DSmallSpan(); }
138
139 private:
140
142 // Ce tableau est dimensionné au nombre de mailles.
144
146 // Ce tableau est dimensionné au nombre de mailles.
148
149 bool m_is_add = false;
150};
151
152/*---------------------------------------------------------------------------*/
153/*---------------------------------------------------------------------------*/
154
155} // namespace Arcane::Materials
156
157/*---------------------------------------------------------------------------*/
158/*---------------------------------------------------------------------------*/
159
160#endif
File d'exécution pour un accélérateur.
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Definition Lima.cc:120
Classe d'aide à la construction d'une liste de ComponentItem pour un MeshMaterialVariableIndexer.
Structure de travail utilisée lors de la modification des constituants (via MeshMaterialModifier).
UniqueArray< Int32 > cells_unchanged_in_env
Liste des mailles d'un milieu qui sont déjà présentes dans un milieu lors d'une opération.
UniqueArray< Int16 > m_cells_current_nb_material
Nombre de matériaux pour le milieu en cours d'évaluation.
DualUniqueArray< Int32 > pure_local_ids
Liste des mailles pures d'un constituant ajoutées/supprimées par l'opération en cours.
void resetTransformedCells(ConstArrayView< Int32 > local_ids)
Positionne l'état de transformation de la maille local_id pour l'opération courante.
bool isRemovedCell(Int32 local_id) const
Indique si la maille local_id est supprimée du matériaux pour l'opération courante.
DualUniqueArray< MatVarIndex > m_saved_matvar_indexes
Liste des MatVarIndex et LocalId à sauvegarder lors de la suppression de mailles matériaux.
bool isTransformedCell(CellLocalId local_id) const
Indique si la maille local_id est transformée lors de l'opération courante.
UniqueArray< CopyBetweenDataInfo > m_host_variables_copy_data
Informations pour les copies entre valeurs partielles et globales.
DualUniqueArray< bool > m_is_materials_modified
Tableau dimensionné aux matériaux qui est vrai si un matériau est concerné par la modification en cou...
NumArray< bool, MDDim1 > m_removed_local_ids_filter
Filtre indiquant les mailles qui sont supprimées du constituant.
UniqueArray< Int32 > cells_changed_in_env
Liste des mailles d'un milieu qui vont être ajoutées ou supprimées lors d'une opération.
NumArray< CopyBetweenDataInfo, MDDim1 > m_variables_copy_data
Informations pour les copies entre valeurs partielles et globales.
bool isAdd() const
Indique si l'opération courante est un ajout (true) ou une suppression (false) de mailles.
NumArray< bool, MDDim1 > m_cells_to_transform
Filtre indiquant les mailles qui doivent changer de status (Pure<->Partial)
DualUniqueArray< Int32 > partial_indexes
Liste des mailles partielles d'un constituant ajoutées/supprimées par l'opération en cours.
void setTransformedCell(CellLocalId local_id, bool v)
Positionne l'état de transformation de la maille local_id pour l'opération courante.
DualUniqueArray< bool > m_is_environments_modified
Tableau dimensionné aux milieux qui est vrai si un milieu est concerné par la modification en cours.
Opération d'ajout ou suppression de mailles d'un matériau.
Options pour configurer les allocations.
Active toujours les traces dans les parties Arcane concernant les matériaux.
eMemoryRessource
Liste des ressources mémoire disponibles.