Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
MeshMaterialVariable.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/* MeshMaterialVariable.h (C) 2000-2024 */
9/* */
10/* Variable sur un matériau du maillage. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_MATERIALS_MESHMATERIALVARIABLE_H
13#define ARCANE_MATERIALS_MESHMATERIALVARIABLE_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/utils/NotImplementedException.h"
18#include "arcane/utils/Array.h"
19#include "arcane/utils/MemoryView.h"
20
21#include "arcane/core/materials/IMeshMaterialVariable.h"
22#include "arcane/core/materials/MatVarIndex.h"
23
25
26#include "arcane/materials/MeshMaterialVariableFactoryRegisterer.h"
27
28#include "arcane/core/materials/IScalarMeshMaterialVariable.h"
29#include "arcane/core/materials/IArrayMeshMaterialVariable.h"
30
31/*---------------------------------------------------------------------------*/
32/*---------------------------------------------------------------------------*/
33
34namespace Arcane
35{
36class VariableInfo;
37class VariableRef;
38class VariableBuildInfo;
39template <typename ItemType, typename DataTypeT> class MeshVariableScalarRefT;
40} // namespace Arcane
41
42/*---------------------------------------------------------------------------*/
43/*---------------------------------------------------------------------------*/
44
45namespace Arcane::Materials
46{
47
48/*---------------------------------------------------------------------------*/
49/*---------------------------------------------------------------------------*/
50
51class MaterialVariableBuildInfo;
52class MeshMaterialVariablePrivate;
53class MeshMaterialVariableSynchronizerList;
54class CopyBetweenPartialAndGlobalArgs;
55class ResizeVariableIndexerArgs;
56class InitializeWithZeroArgs;
57
58/*---------------------------------------------------------------------------*/
59/*---------------------------------------------------------------------------*/
69class ARCANE_MATERIALS_EXPORT MeshMaterialVariable
71{
73 // Pour accès à 'copyToBuffer', 'copyFromBuffer'. A supprimer ensuite
75
76 public:
77
79 ~MeshMaterialVariable() override;
80
81 public:
82
83 String name() const override;
84 void addVariableRef(MeshMaterialVariableRef* var_ref) override;
85 void removeVariableRef(MeshMaterialVariableRef* var_ref) override;
86 MeshMaterialVariableRef* firstReference() const override;
87 IVariable* materialVariable(IMeshMaterial* mat) override;
88
89 void setKeepOnChange(bool v) override;
90 bool keepOnChange() const override;
91
92 MatVarSpace space() const override;
93
94 public:
95
97
98 void update(IMeshMaterial* mat) override;
99 void setUpToDate(IMeshMaterial* mat) override;
100 Int64 modifiedTime(IMeshMaterial* mat) override;
101 void addDepend(IMeshMaterialVariable* var) override;
102 void addDepend(IMeshMaterialVariable* var,const TraceInfo& tinfo) override;
103 void addDepend(IVariable* var) override;
104 void addDepend(IVariable* var,const TraceInfo& tinfo) override;
105 void removeDepend(IMeshMaterialVariable* var) override;
106 void removeDepend(IVariable* var) override;
107 void setComputeFunction(IMeshMaterialVariableComputeFunction* v) override;
108 IMeshMaterialVariableComputeFunction* computeFunction() override;
109 void dependInfos(Array<VariableDependInfo>& infos,
112
113 IMeshMaterialVariableInternal* _internalApi() override;
114
115 public:
116
118
119 virtual Int32 dataTypeSize() const =0;
120
121 protected:
122
123 // TODO: interface obsolète à supprimer
124 virtual void copyToBuffer(ConstArrayView<MatVarIndex> matvar_indexes,ByteArrayView bytes) const =0;
125 // TODO: interface obsolète à supprimer
126 virtual void copyFromBuffer(ConstArrayView<MatVarIndex> matvar_indexes,ByteConstArrayView bytes) =0;
128
129 public:
130
135 void incrementReference();
136
137 protected:
138
139 ITraceMng* _traceMng() const;
140
141 protected:
142
143 MeshMaterialVariablePrivate* m_p = nullptr;
144 UniqueArray<Span<std::byte>> m_views_as_bytes;
145
146 protected:
147
148 void _copyToBuffer(SmallSpan<const MatVarIndex> matvar_indexes, Span<std::byte> bytes,RunQueue* queue) const;
150
151 virtual Ref<IData> _internalCreateSaveDataRef(Integer nb_value) =0;
152 virtual void _saveData(IMeshComponent* component,IData* data) =0;
153 virtual void _restoreData(IMeshComponent* component,IData* data,Integer data_index,
155 virtual void _copyBetweenPartialAndGlobal(const CopyBetweenPartialAndGlobalArgs& args) = 0;
156 virtual void _initializeNewItemsWithZero(InitializeWithZeroArgs& args) = 0;
157 virtual void _syncReferences(bool update_views) = 0;
158 virtual void _resizeForIndexer(ResizeVariableIndexerArgs& args) = 0;
159
160 private:
161
162 static SmallSpan<const Int32> _toInt32Indexes(SmallSpan<const MatVarIndex> indexes);
163
164 public:
165
166 static void _genericCopyTo(Span<const std::byte> input,
168 Span<std::byte> output,
170 const RunQueue& queue, Int32 data_type_size);
171};
172
173/*---------------------------------------------------------------------------*/
174/*---------------------------------------------------------------------------*/
175
177template<typename DataType>
179{
180 public:
181
182 using ValueType = DataType;
183
184 using SubViewType = DataType;
185 using SubConstViewType = DataType;
186 using SubInputViewType = DataType;
195
196 public:
197
198 ARCANE_MATERIALS_EXPORT static void
199 saveData(IMeshComponent* component,IData* data,Array<ContainerViewType>& cviews);
200 ARCANE_MATERIALS_EXPORT static void
203 const RunQueue& queue);
204 ARCANE_MATERIALS_EXPORT static void
205 resizeAndFillWithDefault(ValueDataType* data,ContainerType& container,Integer dim1_size);
206
207 static ARCCORE_HOST_DEVICE void setValue(DataType& view,const DataType& v)
208 {
209 view = v;
210 }
211 ARCANE_MATERIALS_EXPORT static void
212 resizeWithReserve(PrivatePartType* var, Int32 new_size, Real reserve_ratio);
213 static Integer dimension() { return 0; }
214 static SmallSpan<std::byte> toBytes(ArrayView<DataType> view)
215 {
216 //SmallSpan<DataType> s(view);
217 return asWritableBytes(view);
218 }
219
220};
221
222/*---------------------------------------------------------------------------*/
223/*---------------------------------------------------------------------------*/
225template<typename DataType>
227{
228 public:
229
230 using ValueType = DataType;
231
243
244 public:
245
246 ARCANE_MATERIALS_EXPORT
247 static void saveData(IMeshComponent* component, IData* data,
249 ARCANE_MATERIALS_EXPORT
252 const RunQueue& queue);
253 ARCANE_MATERIALS_EXPORT
254 static void resizeAndFillWithDefault(ValueDataType* data, ContainerType& container,
255 Integer dim1_size);
256 static ARCCORE_HOST_DEVICE void setValue(SmallSpan<DataType> view, const DataType& v)
257 {
258 view.fill(v);
259 }
260 static ARCCORE_HOST_DEVICE void setValue(SmallSpan<DataType> view, SmallSpan<const DataType> v)
261 {
262 view.copy(v);
263 }
264 ARCANE_MATERIALS_EXPORT
265 static void resizeWithReserve(PrivatePartType* var, Integer new_size, Real resize_ratio);
266 static SmallSpan<std::byte> toBytes(Array2View<DataType> view)
267 {
268 SmallSpan<DataType> s(view.data(), view.totalNbElement());
269 return asWritableBytes(s);
270 }
271
272 static Integer dimension() { return 0; }
273};
274
275/*---------------------------------------------------------------------------*/
276/*---------------------------------------------------------------------------*/
282template<typename Traits>
285{
286 public:
287
288 using TraitsType = Traits;
289 using ValueType = typename Traits::ValueType;
290 using DataType = typename Traits::ValueType;
292
293 using SubViewType = typename Traits::SubViewType;
294 using SubConstViewType = typename Traits::SubConstViewType;
295 using SubInputViewType = typename Traits::SubInputViewType;
296 using ContainerSpanType = typename Traits::ContainerSpanType;
297 using ContainerViewType = typename Traits::ContainerViewType;
298 using ContainerConstViewType = typename Traits::ContainerConstViewType;
299 using PrivatePartType = typename Traits::PrivatePartType;
300 using ValueDataType = typename Traits::ValueDataType;
301 using ContainerType = typename Traits::ContainerType;
302 using UniqueContainerType = typename Traits::UniqueContainerType;
303 using VariableRefType = typename Traits::VariableRefType;
304
305 public:
306
307 ARCANE_MATERIALS_EXPORT
309 PrivatePartType* global_var,
311 ARCANE_MATERIALS_EXPORT ~ItemMaterialVariableBase() override;
312
313 public:
314
315 ARCANE_MATERIALS_EXPORT void syncReferences() override;
316 ARCANE_MATERIALS_EXPORT IVariable* globalVariable() const override;
317 ARCANE_MATERIALS_EXPORT void buildFromManager(bool is_continue) override;
318
319 ARCANE_MATERIALS_EXPORT Ref<IData> _internalCreateSaveDataRef(Integer nb_value) override;
320 ARCANE_MATERIALS_EXPORT void _saveData(IMeshComponent* env,IData* data) override;
321 ARCANE_MATERIALS_EXPORT
322 void _restoreData(IMeshComponent* component,IData* data,Integer data_index,
323 Int32ConstArrayView ids,bool allow_null_id) override;
324 ARCANE_MATERIALS_EXPORT
325 void _copyBetweenPartialAndGlobal(const CopyBetweenPartialAndGlobalArgs& args) override;
326 ARCANE_MATERIALS_EXPORT
327 void _initializeNewItemsWithZero(InitializeWithZeroArgs& args) override;
328
329 ARCANE_MATERIALS_EXPORT void fillPartialValuesWithGlobalValues() override;
330 ARCANE_MATERIALS_EXPORT void
331 fillPartialValuesWithSuperValues(Int32 level) override;
332
333 public:
334
335 void setValue(MatVarIndex mvi, SubInputViewType v)
336 {
337 Traits::setValue(m_host_views[mvi.arrayIndex()][mvi.valueIndex()],v);
338 }
339
340 void setFillValue(MatVarIndex mvi, const DataType& v)
341 {
342 Traits::setValue(m_host_views[mvi.arrayIndex()][mvi.valueIndex()],v);
343 }
344
345 SubConstViewType value(MatVarIndex mvi) const
346 {
347 return m_host_views[mvi.arrayIndex()][mvi.valueIndex()];
348 }
349
350 protected:
351
352 void _syncFromGlobalVariable();
353 PrivatePartType* _trueGlobalVariable()
354 {
355 return m_global_variable;
356 }
357
359 ARCANE_MATERIALS_EXPORT void
360 _fillPartialValuesWithSuperValues(MeshComponentList components);
361 ARCANE_MATERIALS_EXPORT void _syncReferences(bool check_resize) override;
362 ARCANE_MATERIALS_EXPORT void _resizeForIndexer(ResizeVariableIndexerArgs& args) override;
363 ARCANE_MATERIALS_EXPORT void _copyHostViewsToViews(RunQueue* queue);
364
365 public:
366
367
368 protected:
369
370 PrivatePartType* m_global_variable = nullptr;
371 VariableRef* m_global_variable_ref = nullptr;
378
379 protected:
380
387 void _setView(Int32 index)
388 {
389 ContainerViewType view;
390 if (m_vars[index])
391 view = m_vars[index]->valueView();
392 m_host_views[index] = view;
393 m_views_as_bytes[index] = TraitsType::toBytes(view);
394 }
395
396 private:
397
398 bool _isValidAndUsedAndGlobalUsed(PrivatePartType* partial_var);
399};
400
401/*---------------------------------------------------------------------------*/
402/*---------------------------------------------------------------------------*/
403
404template<typename TrueType>
406{
407 public:
408 static ARCANE_MATERIALS_EXPORT IMeshMaterialVariable*
410 private:
411 static ARCANE_MATERIALS_EXPORT IMeshMaterialVariable* _autoCreate1(const MaterialVariableBuildInfo& vb);
412 static ARCANE_MATERIALS_EXPORT IMeshMaterialVariable* _autoCreate2(const MaterialVariableBuildInfo& vb);
413 static ARCANE_MATERIALS_EXPORT MeshMaterialVariableFactoryRegisterer m_auto_registerer1;
414 static ARCANE_MATERIALS_EXPORT MeshMaterialVariableFactoryRegisterer m_auto_registerer2;
415};
416
417/*---------------------------------------------------------------------------*/
418/*---------------------------------------------------------------------------*/
424template<typename DataType>
426: public ItemMaterialVariableBase<MaterialVariableScalarTraits<DataType>>
427{
428 public:
429
433
434 using ContainerViewType = typename Traits::ContainerViewType;
435 using PrivatePartType = typename Traits::PrivatePartType;
436 using ValueDataType = typename Traits::ValueDataType;
437 using ContainerType = typename Traits::ContainerType;
438 using VariableRefType = typename Traits::VariableRefType;
439
440 protected:
441
442 ARCANE_MATERIALS_EXPORT
444 PrivatePartType* global_var,
446
447 public:
448
449 ArrayView<DataType>* views() { return this->m_host_views.data(); }
450
451 protected:
452
453 ArrayView<ArrayView<DataType>> _containerView() { return this->m_host_views; }
454
455 public:
456
457 DataType operator[](MatVarIndex mvi) const
458 {
459 return this->m_host_views[mvi.arrayIndex()][mvi.valueIndex()];
460 }
461
462 using BaseClass::setValue;
463 using BaseClass::value;
464
465 ARCANE_MATERIALS_EXPORT void synchronize() override;
466 ARCANE_MATERIALS_EXPORT void synchronize(MeshMaterialVariableSynchronizerList& sync_list) override;
467 ARCANE_MATERIALS_EXPORT void dumpValues(std::ostream& ostr) override;
468 ARCANE_MATERIALS_EXPORT void dumpValues(std::ostream& ostr,AllEnvCellVectorView view) override;
469 ARCANE_MATERIALS_EXPORT void serialize(ISerializer* sbuffer,Int32ConstArrayView ids) override;
470
471 public:
472
473 ARCANE_MATERIALS_EXPORT
475 ARCANE_MATERIALS_EXPORT
477 Int32ConstArrayView indexes);
478 ARCANE_MATERIALS_EXPORT void fillToArray(IMeshMaterial* mat,ArrayView<DataType> values);
479 ARCANE_MATERIALS_EXPORT void fillToArray(IMeshMaterial* mat,ArrayView<DataType> values,
480 Int32ConstArrayView indexes);
481 ARCANE_MATERIALS_EXPORT void fillPartialValues(const DataType& value);
482
483 private:
484
485 ARCANE_MATERIALS_EXPORT Int32 dataTypeSize() const override;
486 ARCANE_MATERIALS_EXPORT
488 ByteArrayView bytes) const override;
489 ARCANE_MATERIALS_EXPORT
491 ByteConstArrayView bytes) override;
492
493 protected:
494
495 using BaseClass::m_p;
496
497 private:
498
499 using BaseClass::m_global_variable;
500 using BaseClass::m_global_variable_ref;
501 using BaseClass::m_vars;
503
504 private:
505
506 void _synchronizeV1();
507 void _synchronizeV2();
508 void _synchronizeV5();
509 Int64 _synchronize2();
510
511 private:
512
513 void _copyToBufferLegacy(SmallSpan<const MatVarIndex> matvar_indexes,
514 Span<std::byte> bytes) const;
515 void _copyFromBufferLegacy(SmallSpan<const MatVarIndex> matvar_indexes,
517};
518
519/*---------------------------------------------------------------------------*/
520/*---------------------------------------------------------------------------*/
526template<typename ItemType,typename DataType>
528: public ItemMaterialVariableScalar<DataType>
529, public IScalarMeshMaterialVariable<ItemType,DataType>
530{
531 public:
532
535 using BuilderType = typename ThatInterface::BuilderType;
537 using ItemTypeTemplate = ItemType;
538
541 using PrivatePartType = typename BaseClass::PrivatePartType;
542
543 friend StaticImpl;
544
545 protected:
546
547 ARCANE_MATERIALS_EXPORT
549 PrivatePartType* global_var,
551 ARCANE_MATERIALS_EXPORT
553
554 public:
555
556 VariableRefType* globalVariableReference() const final { return m_true_global_variable_ref; }
557 void incrementReference() final { BaseClass::incrementReference(); }
558 ArrayView<ArrayView<DataType>> _internalFullValuesView() final { return BaseClass::_containerView(); }
559 void fillFromArray(IMeshMaterial* mat, ConstArrayView<DataType> values) final
560 {
561 return BaseClass::fillFromArray(mat,values);
562 }
563 void fillFromArray(IMeshMaterial* mat,ConstArrayView<DataType> values,Int32ConstArrayView indexes) final
564 {
565 BaseClass::fillFromArray(mat,values,indexes);
566 }
567 void fillToArray(IMeshMaterial* mat,ArrayView<DataType> values) final
568 {
570 }
571 void fillToArray(IMeshMaterial* mat,ArrayView<DataType> values,Int32ConstArrayView indexes) final
572 {
573 BaseClass::fillToArray(mat,values,indexes);
574 }
575 void fillPartialValues(const DataType& value) final { BaseClass::fillPartialValues(value); }
576 IMeshMaterialVariable* toMeshMaterialVariable() final { return this; }
577
578 private:
579
580 VariableRefType* m_true_global_variable_ref = nullptr;
581};
582
583/*---------------------------------------------------------------------------*/
584/*---------------------------------------------------------------------------*/
590template<typename DataType>
592: public ItemMaterialVariableBase<MaterialVariableArrayTraits<DataType>>
593{
594 public:
595
598
600
601 using ContainerViewType = typename Traits::ContainerViewType;
602 using PrivatePartType = typename Traits::PrivatePartType;
603 using ValueDataType = typename Traits::ValueDataType;
604 using ContainerType = typename Traits::ContainerType;
605 using VariableRefType = typename Traits::VariableRefType;
606
607 protected:
608
609 ARCANE_MATERIALS_EXPORT
611 PrivatePartType* global_var,
613
614 public:
615
616 ARCANE_DEPRECATED_REASON("Y2022: Do not use internal storage accessor")
617 Array2View<DataType>* views() { return m_host_views.data(); }
618
619 public:
620
621 ARCANE_MATERIALS_EXPORT void synchronize() override;
622 ARCANE_MATERIALS_EXPORT void synchronize(MeshMaterialVariableSynchronizerList& sync_list) override;
623 ARCANE_MATERIALS_EXPORT void dumpValues(std::ostream& ostr) override;
624 ARCANE_MATERIALS_EXPORT void dumpValues(std::ostream& ostr,AllEnvCellVectorView view) override;
625 ARCANE_MATERIALS_EXPORT void serialize(ISerializer* sbuffer,Int32ConstArrayView ids) override;
626
627 private:
628
629 ARCANE_MATERIALS_EXPORT Int32 dataTypeSize() const override;
630
631 ARCANE_MATERIALS_EXPORT
633 ByteArrayView bytes) const override;
634
635 ARCANE_MATERIALS_EXPORT
637 ByteConstArrayView bytes) override;
638
639 public:
640
641 ARCANE_MATERIALS_EXPORT void resize(Integer dim2_size);
642
643 public:
644
646 {
647 return m_host_views[mvi.arrayIndex()][mvi.valueIndex()];
648 }
649
650 using BaseClass::setValue;
651 using BaseClass::value;
652
653 protected:
654
655 using BaseClass::m_p;
656 ArrayView<Array2View<DataType>> _containerView() { return m_host_views; }
657
658 private:
659
660 using BaseClass::m_global_variable;
661 using BaseClass::m_global_variable_ref;
662 using BaseClass::m_vars;
664
665 void _copyToBufferLegacy(SmallSpan<const MatVarIndex> matvar_indexes,
666 Span<std::byte> bytes) const;
667 void _copyFromBufferLegacy(SmallSpan<const MatVarIndex> matvar_indexes,
669};
670
671/*---------------------------------------------------------------------------*/
672/*---------------------------------------------------------------------------*/
678template<typename ItemType,typename DataType>
680: public ItemMaterialVariableArray<DataType>
681, public IArrayMeshMaterialVariable<ItemType,DataType>
682{
683 public:
684
687 using BuilderType = typename ThatInterface::BuilderType;
689 using ItemTypeTemplate = ItemType;
690
693 using PrivatePartType = typename BaseClass::PrivatePartType;
694
695 friend StaticImpl;
696
697 protected:
698
699 ARCANE_MATERIALS_EXPORT
701 PrivatePartType* global_var,
703
704 public:
705
706 void incrementReference() final { BaseClass::incrementReference(); }
707 ArrayView<Array2View<DataType>> _internalFullValuesView() final { return BaseClass::_containerView(); }
708 void resize(Int32 dim2_size) final { BaseClass::resize(dim2_size); }
709 VariableRefType* globalVariableReference() const final { return m_true_global_variable_ref; }
710 IMeshMaterialVariable* toMeshMaterialVariable() final { return this; }
711
712 private:
713
714 VariableRefType* m_true_global_variable_ref = nullptr;
715};
716
717
718/*---------------------------------------------------------------------------*/
719/*---------------------------------------------------------------------------*/
720
721} // End namespace Arcane::Materials
722
723/*---------------------------------------------------------------------------*/
724/*---------------------------------------------------------------------------*/
725
726#endif
File d'exécution pour un accélérateur.
Variable sur un tableau 2D.
Tableau 2D d'items de types quelconques.
Tableau d'items de types quelconques.
Interface d'une donnée tableau bi-dimensionnel d'un type T.
Definition IData.h:363
Interface d'une donnée tableau d'un type T.
Definition IData.h:292
Interface d'une donnée.
Definition IData.h:33
Interface d'une variable.
Definition IVariable.h:54
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Definition Lima.cc:120
Vue sur une liste de mailles avec infos sur les milieux.
Arguments des méthodes de copie entre valeurs partielles et globales.
Interface d'accès pour CellMaterialVariableArrayRef.
Interface d'un composant (matériau ou milieu) d'un maillage.
API interne Arcane de 'IMeshMaterialVariable'.
Interface d'une variable matériau d'un maillage.
Interface d'un matériau d'un maillage.
Interface d'accès pour CellMaterialVariableScalarRef.
Arguments des méthodes de copie entre valeurs partielles et globales.
Variable tableau sur un matériau du maillage.
void synchronize() override
Synchronise la variable.
void serialize(ISerializer *sbuffer, Int32ConstArrayView ids) override
Sérialise la variable pour les entités de numéro local ids.
void dumpValues(std::ostream &ostr) override
Affiche les valeurs de la variable sur le flot ostr.
Classe de base des variables matériaux de avec les caractéristiques spécifiées par Traits.
void syncReferences() override
Synchronise les références.
void buildFromManager(bool is_continue) override
Construit les infos de la variable. A usage interne à Arcane.
IVariable * globalVariable() const override
Variable globale sur le maillage associée.
UniqueArray< ContainerViewType > m_host_views
Liste des vues visibles uniquement depuis l'ĥote.
UniqueArray< PrivatePartType * > m_vars
Variables pour les différents matériaux.
UniqueArray< ContainerViewType > m_device_views
Liste des vues visibles uniquement depuis l'accélérateur.
void fillPartialValuesWithGlobalValues() override
Remplit les valeurs partielles avec la valeur de la maille globale associée.
void _setView(Int32 index)
Positionne les vues à partir du conteneur.
void fillPartialValuesWithSuperValues(Int32 level) override
Remplit les valeurs partielles avec la valeur de la maille du dessus. Si level vaut LEVEL_MATERIAL,...
Variable scalaire sur un matériau du maillage.
void fillPartialValues(const DataType &value)
Remplit les valeurs partielles avec la valeur value.
void synchronize() override
Synchronise la variable.
void fillToArray(IMeshMaterial *mat, ArrayView< DataType > values)
Remplit un tableau à partir des valeurs de la variable pour un matériau.
void serialize(ISerializer *sbuffer, Int32ConstArrayView ids) override
Sérialise la variable pour les entités de numéro local ids.
void dumpValues(std::ostream &ostr) override
Affiche les valeurs de la variable sur le flot ostr.
void fillFromArray(IMeshMaterial *mat, ConstArrayView< DataType > values)
Remplit les valeurs de la variable pour un matériau à partir d'un tableau.
Représente un index sur les variables matériaux et milieux.
constexpr ARCCORE_HOST_DEVICE Int32 arrayIndex() const
Retourne l'indice du tableau de valeur dans la liste des variables.
Caractéristiques pour une variable matériaux tableau.
Caractéristiques pour une variable matériaux scalaire.
Variable tableau sur un matériau du maillage.
static IMeshMaterialVariable * getReference(const MaterialVariableBuildInfo &v, MatVarSpace mvs)
Récupère ou construit une variable.
Classe de base des références aux variables matériaux.
Variable scalaire sur un matériau du maillage.
Classe de base des variables matériaux.
Arguments des méthodes de copie entre valeurs partielles et globales.
Variable scalaire sur un type d'entité du maillage.
Implémentation d'une variable sur un tableau 1D.
Référence à une variable.
Definition VariableRef.h:56
Vue modifiable pour un tableau 2D.
Vue modifiable d'un tableau d'un type T.
const T * data() const
Accès à la racine du tableau hors toute protection.
Vue constante d'un tableau de type T.
Interface du gestionnaire de traces.
Vue pour un tableau 2D dont la taille est un 'Int32'.
Definition Span2.h:233
Vue d'un tableau d'éléments de type T.
Definition Span.h:670
Chaîne de caractères unicode.
Vecteur de données 2D avec sémantique par valeur (style STL).
Vecteur 1D de données avec sémantique par valeur (style STL).
Active toujours les traces dans les parties Arcane concernant les matériaux.
MatVarSpace
Espace de définition d'une variable matériau.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
ARCANE_DATATYPE_EXPORT Integer dataTypeSize(eDataType type)
Taille du type de donnée type (qui doit être différent de DT_String)
Definition DataTypes.cc:109