Arcane  v4.1.2.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
MeshMaterialVariableIndexer.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/* MeshMaterialVariableIndexer.h (C) 2000-2024 */
9/* */
10/* Indexer pour les variables materiaux. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_MATERIALS_INTERNAL_MESHMATERIALVARIABLEINDEXER_H
13#define ARCANE_MATERIALS_INTERNAL_MESHMATERIALVARIABLEINDEXER_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/utils/String.h"
18#include "arcane/utils/Array.h"
19#include "arcane/utils/TraceAccessor.h"
20
22#include "arcane/core/ItemGroup.h"
23#include "arcane/core/materials/MatVarIndex.h"
24
26
27/*---------------------------------------------------------------------------*/
28/*---------------------------------------------------------------------------*/
29
30namespace Arcane::Materials
31{
32
33/*---------------------------------------------------------------------------*/
34/*---------------------------------------------------------------------------*/
35
40
41/*---------------------------------------------------------------------------*/
42/*---------------------------------------------------------------------------*/
50class ARCANE_MATERIALS_EXPORT MeshMaterialVariableIndexer
51: public TraceAccessor
52{
53 friend class AllEnvData;
54 friend class MaterialModifierOperation;
55 friend class MeshEnvironment;
56 friend class MeshMaterial;
57 friend class MeshComponentData;
58 friend class MeshMaterialMng;
59 friend class IncrementalComponentModifier;
60 template <typename DataType> friend class ItemMaterialVariableScalar;
61
62 public:
63
64 MeshMaterialVariableIndexer(ITraceMng* tm, const String& name);
65
66 public:
67
69 const String& name() const { return m_name; }
70
77
78 Integer index() const { return m_index; }
79 ConstArrayView<MatVarIndex> matvarIndexes() const { return m_matvar_indexes; }
80 const CellGroup& cells() const { return m_cells; }
81 void checkValid();
83 bool isEnvironment() const { return m_is_environment; }
84 void dumpStats() const;
85
86 public:
87
88 // Méthodes publiques car utilisées sur accélérateurs
89 void endUpdateAdd(const ComponentItemListBuilder& builder, RunQueue& queue);
90 void endUpdateRemoveV2(ConstituentModifierWorkInfo& work_info, Integer nb_remove, RunQueue& queue);
91 void transformCells(ConstituentModifierWorkInfo& args, RunQueue& queue, bool is_from_env);
92
93 private:
94
96
97 void endUpdate(const ComponentItemListBuilderOld& builder);
98 Array<MatVarIndex>& matvarIndexesArray() { return m_matvar_indexes; }
99 void setCells(const CellGroup& cells) { m_cells = cells; }
100 void setIsEnvironment(bool is_environment) { m_is_environment = is_environment; }
101 void setIndex(Integer index) { m_index = index; }
102 Integer nbItem() const { return m_local_ids.size(); }
103 ConstArrayView<Int32> localIds() const { return m_local_ids; }
104
105 void changeLocalIds(Int32ConstArrayView old_to_new_ids);
106 void endUpdateRemove(ConstituentModifierWorkInfo& args, Integer nb_remove, RunQueue& queue);
108
109 private:
110
111 private:
112
115
118
121
124
127
137
139 bool m_is_environment = false;
140
143
151 Int32 m_nb_useless_remove_transform = 0;
152
155
156 private:
157
158 static void _changeLocalIdsV2(MeshMaterialVariableIndexer* var_indexer,
159 Int32ConstArrayView old_to_new_ids);
160 void _init();
161};
162
163/*---------------------------------------------------------------------------*/
164/*---------------------------------------------------------------------------*/
165
166} // End namespace Arcane::Materials
167
168/*---------------------------------------------------------------------------*/
169/*---------------------------------------------------------------------------*/
170
171#endif
172
Déclarations de types sur les entités.
Tableau d'items de types quelconques.
Vue constante d'un tableau de type T.
Interface du gestionnaire de traces.
Classe d'aide à la construction d'une liste de ComponentItem pour un MeshMaterialVariableIndexer.
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).
Infos d'un matériau d'un maillage.
bool m_is_print_useless_transform
Indique si on affiche un message lors d'une transformation inutile.
CellGroup m_cells
Liste des mailles de cet indexer.
Integer m_index
Index de cette instance dans la liste des indexeurs.
bool m_is_environment
Vrai si l'indexeur est associé à un milieu.
bool isEnvironment() const
Vrai si cet indexeur est celui d'un milieu.
Int32 m_nb_transform_called
Nombre d'appels aux méthodes de transformation.
UniqueArray< MatVarIndex > m_matvar_indexes
Liste des indexs pour les variables matériaux.
UniqueArray< Int32 > m_local_ids
Liste des localId() des entités correspondantes à m_matvar_indexes. NOTE: à terme,...
Int32 m_nb_useless_add_transform
Nombre d'appels inutiles aux méthodes de transformation.
const String & name() const
Nom de l'indexeur.
Integer m_max_index_in_multiple_array
Indice max plus 1 dans le tableau des valeurs multiples.
Chaîne de caractères unicode.
TraceAccessor(ITraceMng *m)
Construit un accesseur via le gestionnaire de trace m.
Vecteur 1D de données avec sémantique par valeur (style STL).
ItemGroupT< Cell > CellGroup
Groupe de mailles.
Definition ItemTypes.h:183
Active toujours les traces dans les parties Arcane concernant les matériaux.
Int32 Integer
Type représentant un entier.
ConstArrayView< Int32 > Int32ConstArrayView
Equivalent C d'un tableau à une dimension d'entiers 32 bits.
Definition UtilsTypes.h:482
MATERIALS_BEGIN_NAMESPACE class ARCANE_MATERIALS_EXPORT(64) SimdMatVarIndex
Indexeur SIMD sur un composant.
std::int32_t Int32
Type entier signé sur 32 bits.