Arcane  v3.14.10.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
core/materials/IMeshMaterialMng.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/* IMeshMaterialMng.h (C) 2000-2024 */
9/* */
10/* Interface du gestionnaire des matériaux d'un maillage. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_MATERIALS_IMESHMATERIALMNG_H
13#define ARCANE_MATERIALS_IMESHMATERIALMNG_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/utils/IFunctorWithArgument.h"
18#include "arcane/utils/PlatformUtils.h"
19
20#include "arcane/core/materials/MaterialsCoreGlobal.h"
22#include "arcane/core/MeshHandle.h"
23
24/*---------------------------------------------------------------------------*/
25/*---------------------------------------------------------------------------*/
26
27namespace Arcane::Materials
28{
29
30/*---------------------------------------------------------------------------*/
31/*---------------------------------------------------------------------------*/
32/*!
33 * \ingroup ArcaneMaterials
34 * \brief Interface du gestionnaire des matériaux et des milieux d'un maillage.
35 *
36 * Cette interface gère les différents composants (IMeshComponent)
37 * multi-matériaux d'un maillage ainsi que leurs variables associées.
38 * Ces composants peuvent être soit des matériaux (IMeshMaterial),
39 * soit des milieux (IMeshEnvironment). Il est possible de récupérer la liste
40 * des matériaux via materials() et la liste des milieux par environments().
41 * Il est aussi possible de récupérer l'une de ces deux listes sous forme
42 *
43 * L'implémentation actuelle ne gère que les matériaux et les milieux aux mailles.
44 *
45 * Une fois cette instance créé, via getReference(), la première chose à
46 * faire est d'enregistrer
47 * la liste des matériaux via registerMaterialInfo(). Il est ensuite
48 * possible de créer chaque milieu en indiquant la liste des matériaux
49 * qui le compose via createEnvironment(). Une fois ceci terminé, il
50 * faut appeler endCreate() pour terminer l'initialisation. La liste des matériaux et des milieux
51 * ne peut être modifiée que lors de l'initialisation. Elle ne doit plus évoluer
52 * par la suite.
53 *
54 * Toute modification de la liste des mailles d'un milieu ou d'un matériau
55 * doit se faire via une instance de MeshMaterialModifier.
56 */
57class ARCANE_CORE_EXPORT IMeshMaterialMng
58{
59 friend class MeshMaterialMngFactory;
60
61 public:
62
63 virtual ~IMeshMaterialMng() = default;
64
65 public:
66
67 /*!
68 * \brief Récupère ou créé la référence associée à \a mesh.
69 *
70 * Si aucun gestionnaire de matériau n'est associé à \a mesh, il
71 * sera créé lors de l'appel à cette méthode si \a create vaut \a true.
72 * Si \a create vaut \a false est qu'aucune gestionnaire n'est associé
73 * au maillage, un pointeur nul est retourné.
74 * L'instance retournée reste valide tant que le maillage \a mesh existe.
75 */
76 static IMeshMaterialMng* getReference(const MeshHandleOrMesh& mesh_handle,bool create=true);
77
78 /*!
79 * \brief Récupère ou créé la référence associée à \a mesh.
80 *
81 * Si aucun gestionnaire de matériau n'est associé à \a mesh, il
82 * sera créé lors de l'appel à cette méthode si \a create vaut \a true.
83 * Si \a create vaut \a false est qu'aucune gestionnaire n'est associé
84 * au maillage, un pointeur nul est retourné.
85 * L'instance retournée reste valide tant que le maillage \a mesh existe.
86 */
87 static Ref<IMeshMaterialMng> getTrueReference(const MeshHandle& mesh_handle,bool create=true);
88
89 public:
90
91 //! Maillage associé.
92 virtual IMesh* mesh() =0;
93
94 //! Gestionnaire de traces
95 virtual ITraceMng* traceMng() =0;
96
97 public:
98
99 /*!
100 * \brief Enregistre les infos du matériau de nom \a name.
101 *
102 * Cette opération ne fait que enregistrer les informations d'un matériau.
103 * Ces informations sont ensuite utilisés lors de la création du milieu
104 * via createEnvironment().
105 */
107
108 /*!
109 * \brief Créé un milieu avec les infos \a infos
110 *
111 * La création d'un milieu ne peut avoir lieu que lors de l'initialisation.
112 * Les matériaux constituant le milieu doivent avoir auparavant été enregistrés via
113 * \a registerMaterialInfo(). Un matériau peut appartenir à plusieurs milieux.
114 */
116
117 /*!
118 * \brief Créé un bloc.
119 *
120 * Créé un bloc avec les infos \a infos.
121 *
122 * La création d'un bloc ne peut avoir lieu que lors de l'initialisation,
123 * (donc avant l'appel à endCreate()), mais après la création des milieux.
124 */
125 virtual IMeshBlock* createBlock(const MeshBlockBuildInfo& infos) =0;
126
127 /*!
128 * \brief Ajoute un milieu à un bloc existant.
129 *
130 * Ajoute le milieu \a env au bloc \a block.
131 *
132 * La modification d'un bloc ne peut avoir lieu que lors de l'initialisation,
133 * (donc avant l'appel à endCreate()).
134 *
135 * \warning Cette méthode ne modifie pas le groupe block->cells() et c'est
136 * donc à l'appelant d'ajouter au groupe les mailles du milieu si besoin.
137 */
139
140 /*!
141 * \brief Supprime un milieu à un bloc existant.
142 *
143 * Supprime le milieu \a env au bloc \a block.
144 *
145 * La modification d'un bloc ne peut avoir lieu que lors de l'initialisation,
146 * (donc avant l'appel à endCreate()).
147 *
148 * \warning Cette méthode ne modifie pas le groupe block->cells() et c'est
149 * donc à l'appelant d'ajouter au groupe les mailles du milieu si besoin.
150 */
152
153 /*!
154 * \brief Indique qu'on a fini de créer les milieux.
155 *
156 * L'instance n'est pas utilisable tant que cette méthode n'a pas été appelée.
157 *
158 * Si \a is_continue est vrai, recontruit pour chaque matériau et milieu
159 * la liste de leurs mailles à partir des informations de reprise.
160 */
161 virtual void endCreate(bool is_continue=false) =0;
162
163 /*!
164 * \brief Recréé les infos des matériaux et milieux à partir des infos
165 * de la protection.
166 *
167 * Cette méthode remplace le endCreate() et ne peut être utilisée qu'en reprise
168 * et lors de l'initialisation.
169 */
170 virtual void recreateFromDump() =0;
171
172 /*!
173 * \brief Positionne la sauvegarde des valeurs entre deux modifications des
174 * matériaux.
175 *
176 * Si actif, les valeurs des variables partielles sont conservées entre
177 * deux modifications de la liste des matériaux.
178 */
179 virtual void setKeepValuesAfterChange(bool v) =0;
180
181 //! Indique si les valeurs des variables sont conservées entre les modifications
182 virtual bool isKeepValuesAfterChange() const =0;
183
184 /*!
185 * \brief Indique comment initialiser les nouvelles valeurs dans
186 * les mailles matériaux et milieux.
187 *
188 * Si vrai, les nouvelles valeurs sont initialisées à zéro ou le vecteur
189 * nul suivant le type de la donnée. Si faux, l'initialisation se fait avec
190 * la valeur globale.
191 */
192 virtual void setDataInitialisationWithZero(bool v) =0;
193
194 //! Indique comment initialiser les nouvelles valeurs dans les mailles matériaux et milieux.
195 virtual bool isDataInitialisationWithZero() const =0;
196
197 /*!
198 * \brief Indique si les milieux et matériaux suivent les changements
199 * de topologie dans le maillage.
200 *
201 * Cette méthode doit être apellée avant toute création de matériau.
202 *
203 * Si \a v vaut \a false, les milieux et les matériaux ne sont pas notifiés
204 * des changements de la topologie du maillage. Dans ce cas, toutes les
205 * données associées sont invalidées.
206 */
207 virtual void setMeshModificationNotified(bool v) =0;
208
209 //! Indique si les milieux et matériaux suivent les changements de topologie dans le maillage.
210 virtual bool isMeshModificationNotified() const =0;
211
212 /*!
213 * \brief Positionner les flags pour paramêtrer les modifications de matériaux/milieux.
214 *
215 * Les flags possibles sont une combinaison de eModificationFlags.
216 *
217 * Par exemple:
218 \code
219 IMeshMaterialMng* mm = ...;
220 int flags = (int)eModificationFlags::GenericOptimize | (int)eModificationFlags::OptimizeMultiAddRemove;
221 mm->setModificationFlags(flags);
222 \endcode
223 *
224 * Cette méthode doit être activé avant l'appel à endCreate() pour être prise en compte.
225 */
226 virtual void setModificationFlags(int v) =0;
227
228 //! Flags pour paramêtrer les modifications
229 virtual int modificationFlags() const =0;
230
231 /*!
232 * \brief Positionne l'option indiquant si les variables scalaires
233 * milieux sont allouées sur les matériaux.
234 *
235 * Si actif, alors les variables scalaires milieux sont tout de même allouées
236 * aussi sur les matériaux. Cela permet de déclarer la même variable à la fois
237 * comme une variable matériau et milieu (par exemple MaterialVariableCellReal et
238 * EnvironmentVariableCellReal).
239 *
240 * Par défaut cette option n'est pas active.
241 *
242 * Cette méthode doit être activé avant l'appel à endCreate() pour être prise en compte.
243 */
245
246 //! Indique si les variables scalaires milieux sont allouées sur les matériaux.
248
249 //! Nom du gestionnaire
250 virtual String name() const =0;
251
252 /*!
253 * \ brief Nom du service utilisé pour compresser les données lors du forceRecompute().
254 *
255 * Si null (le défaut), aucune compression n'est effectuée.
256 */
257 virtual void setDataCompressorServiceName(const String& name) =0;
258
259 //! virtual Nom du service utilisé pour compresser les données
261
262 //! Liste des matériaux
264
265 //! Liste des matériaux vus comme composants
267
268 //! Liste des milieux
270
271 //! Liste des milieux vus comme composants
273
274 /*!
275 * \brief Liste de tous les composants.
276 *
277 * Cette liste est la concaténation de environmentsAsComponents() et
278 * materialsAsComponents(). Elle n'est valide qu'une fois endCreate() appelé.
279 */
280 virtual MeshComponentList components() const =0;
281
282 //! Liste des blocs
284
285 /*!
286 * \brief Retourne le milieux de nom \a name.
287 *
288 * Si aucune milieu de ce nom n'existe, retourne null si \a throw_exception est \a false
289 * et lève une exception si \a throw_exception vaut \a true.
290 */
291 virtual IMeshEnvironment* findEnvironment(const String& name,bool throw_exception=true) =0;
292
293 /*!
294 * \brief Retourne le bloc de nom \a name.
295 *
296 * Si aucune bloc de ce nom n'existe, retourne null si \a throw_exception est \a false
297 * et lève une exception si \a throw_exception vaut \a true.
298 */
299 virtual IMeshBlock* findBlock(const String& name,bool throw_exception=true) =0;
300
301 /*!
302 * \brief Remplit le tableau \a variables avec la liste des variables matériaux utilisés.
303 *
304 * La tableau \a variables est vidé avant l'appel.
305 */
307
308 //! Variable de nom \a name ou \a nullptr si aucune de ce nom existe.
309 virtual IMeshMaterialVariable* findVariable(const String& name) =0;
310
311 //! Variable aux matériaux associé à la variable global \a global_var (\a nullptr si aucune)
313
314 //! Ecrit les infos des matériaux et milieux sur le flot \a o
315 virtual void dumpInfos(std::ostream& o) =0;
316
317 //! Ecrit les infos de la maille \a cell sur le flot \a o
318 virtual void dumpCellInfos(Cell cell,std::ostream& o) =0;
319
320 //! Vérifie la validité des structures internes
321 virtual void checkValid() =0;
322
323 //! Vue sur les mailles milieux correspondant au groupe \a cells
324 virtual AllEnvCellVectorView view(const CellGroup& cells) =0;
325
326 //! Vue sur les mailles milieux correspondant au groupe \a cells
328
329 //! Vue sur les mailles milieux correspondant aux mailles de numéro locaux cells_local_id
331
332 //! Créée une instance pour convertir de 'Cell' en 'AllEnvCell'
334
335 /*!
336 * \brief Force le recalcul des informations des matériaux.
337 *
338 * Cette méthode permet de forcer le recalcul les informations sur les mailles
339 * mixtes par exemple suite à un changement de maillage.
340 * Il s'agit d'une méthode temporaire qui sera supprimée à terme.
341 * Les valeurs mixtes sont invalidés après appel à cette méthode.
342 */
343 virtual void forceRecompute() =0;
344
345 //! Verrou utilisé pour le multi-threading
346 virtual Mutex* variableLock() =0;
347
348 /*!
349 * \brief Synchronise les mailles des matériaux.
350 *
351 * Cette méthode permet de synchroniser entre les sous-domaines les
352 * mailles de chaque matériau. Elle est collective
353 *
354 * Lors de cet appel, le sous-domaine propriétaire de N mailles
355 * envoie aux sous-domaines qui possède ces \a N mailles en tant que mailles
356 * fantômes la liste des matériaux qu'il possède. Ces derniers sous-domaines
357 * mettent à jour cette liste en ajoutant ou supprimant au besoin les
358 * matériaux nécessaires.
359 *
360 * Après cet appel, il est garanti que
361 * les mailles fantômes d'un sous-domaine ont bien la même liste de
362 * matériaux et milieux que cells du sous-domaine qui est propriétaire
363 * de ces mailles. Il est notamment possible de synchroniser des variables
364 * via MeshMaterialVariableRef::synchronize().
365 *
366 * Retourne \a true si les matériaux de ce sous-domaine ont été modifiés suite
367 * à la synchronisation, \a false sinon.
368 */
370
371 /*!
372 * \brief Vérifie que les mailles des matériaux sont cohérentes entre
373 * les sous-domaines.
374 *
375 * Cette méthode permet de vérifier que toutes les mailles fantômes
376 * de notre sous-domaine ont bien la même liste de matériaux que
377 * les mailles propres associées.
378 *
379 * En cas d'erreur, on affiche la liste des mailles qui ne sont pas
380 * cohérentes et on lève une exception de type FatalErrorException.
381 *
382 * \a max_print indique en cas d'erreur le nombre maximal d'erreur à afficher.
383 * S'il est négatif, on affiche toutes les mailles.
384 */
385 virtual void checkMaterialsInCells(Integer max_print=10) =0;
386
387 //! Applique le fonctor \a functor sur l'ensemble des variables matériaux
389
390 /*!
391 * \brief Compteur du nombre de modifications de la liste des matériaux
392 * et des milieux.
393 *
394 * Ce compteur augmente à chaque fois que des matériaux sont ajoutés
395 * ou supprimés. L'incrément n'est pas forcément constant.
396 *
397 * \note Actuellement, ce compteur n'est pas sauvegardé lors d'une
398 * protection et vaudra donc 0 en reprise.
399 */
400 virtual Int64 timestamp() const =0;
401
402 /*!
403 * \brief Positionne la version de l'implémentation pour la synchronisation des
404 * variables matériaux.
405 */
406 virtual void setSynchronizeVariableVersion(Integer version) =0;
407
408 /*!
409 * \brief Version de l'implémentation pour la synchronisation des
410 * variables matériaux.
411 */
412 virtual Integer synchronizeVariableVersion() const =0;
413
414 //! Vrai si on est en train de faire un échange de maillage avec gestion des matériaux.
415 virtual bool isInMeshMaterialExchange() const =0;
416
417 //! Interface de la fabrique de variables
419
420 /*!
421 * \brief Active ou désactive la construction et la mise à jour de la table de
422 * "connectivité" CellLocalId -> AllEnvCell pour les RUNCOMMAND
423 *
424 * On peut activer également par la variable d'environnement ARCANE_ALLENVCELL_FOR_RUNCOMMAND.
425 * En option, on peut forcer la création de la table, ce qui peut être util lors d'un appel tardif
426 * de cette méthode par rapport à celui du ForceRecompute()
427 */
428 virtual void enableCellToAllEnvCellForRunCommand(bool is_enable, bool force_create=false) =0;
429 virtual bool isCellToAllEnvCellForRunCommand() const =0;
430
431 /*!
432 * \brief Indique si on utilise la valeur matériau ou milieu lorsqu'on transforme une maille
433 * partielle en maille pure.
434 *
435 * Lors du passage d'une maille partielle en maille pure, il faut recopier la valeur
436 * partielle dans la valeur globale. Par défaut, le comportement n'est pas le même
437 * suivant que les optimisations sont actives ou non (\sa modificationFlags()).
438 * Sans optimisation, c'est la valeur matériau qui est utilisée. Si l'optimisation
439 * eModificationFlags::GenericOptimize est active, c'est la valeur milieu.
440 *
441 * Cette propriété, si elle vrai, permet d'utiliser la valeur matériau
442 * dans tous les cas.
443 */
445 virtual bool isUseMaterialValueWhenRemovingPartialValue() const =0;
446
447 public:
448
449 //!\internal
451 {
452 public:
453 virtual ~IFactory() = default;
454 virtual Ref<IMeshMaterialMng> getTrueReference(const MeshHandle& mesh_handle,bool is_create) =0;
455 };
456
457 private:
458
459 //!\internal
460 static void _internalSetFactory(IFactory* f);
461
462 public:
463
464 //! API interne à %Arcane
465 virtual IMeshMaterialMngInternal* _internalApi() const =0;
466
467 /*!
468 * \internal
469 * \brief Synchronizeur pour les variables matériaux et milieux sur toutes les mailles.
470 */
471 virtual IMeshMaterialVariableSynchronizer* _allCellsMatEnvSynchronizer() = 0;
472
473 /*!
474 * \internal
475 * \brief Synchronizeur pour les variables uniquement milieux sur toutes les mailles.
476 */
477 virtual IMeshMaterialVariableSynchronizer* _allCellsEnvOnlySynchronizer() = 0;
478};
479
480/*---------------------------------------------------------------------------*/
481/*---------------------------------------------------------------------------*/
482
483} // End namespace Arcane::Materials
484
485/*---------------------------------------------------------------------------*/
486/*---------------------------------------------------------------------------*/
487
488#endif
489
Déclarations de types sur les entités.
Maille d'un maillage.
Definition Item.h:1178
Vue sur un tableau typé d'entités.
Interface d'un bloc d'un maillage.
Interface du gestionnaire des matériaux et des milieux d'un maillage.
virtual MeshMaterialInfo * registerMaterialInfo(const String &name)=0
Enregistre les infos du matériau de nom name.
virtual ConstArrayView< IMeshMaterial * > materials() const =0
Liste des matériaux.
virtual MeshComponentList materialsAsComponents() const =0
Liste des matériaux vus comme composants.
virtual MeshComponentList components() const =0
Liste de tous les composants.
virtual bool isKeepValuesAfterChange() const =0
Indique si les valeurs des variables sont conservées entre les modifications.
virtual IMeshMaterialVariableFactoryMng * variableFactoryMng() const =0
Interface de la fabrique de variables.
virtual int modificationFlags() const =0
Flags pour paramêtrer les modifications.
virtual void setSynchronizeVariableVersion(Integer version)=0
Positionne la version de l'implémentation pour la synchronisation des variables matériaux.
virtual bool isInMeshMaterialExchange() const =0
Vrai si on est en train de faire un échange de maillage avec gestion des matériaux.
virtual void endCreate(bool is_continue=false)=0
Indique qu'on a fini de créer les milieux.
virtual IMeshMaterialVariable * findVariable(const String &name)=0
Variable de nom name ou nullptr si aucune de ce nom existe.
virtual Int64 timestamp() const =0
Compteur du nombre de modifications de la liste des matériaux et des milieux.
virtual void setDataCompressorServiceName(const String &name)=0
virtual void setAllocateScalarEnvironmentVariableAsMaterial(bool v)=0
Positionne l'option indiquant si les variables scalaires milieux sont allouées sur les matériaux.
virtual bool isAllocateScalarEnvironmentVariableAsMaterial() const =0
Indique si les variables scalaires milieux sont allouées sur les matériaux.
virtual void setDataInitialisationWithZero(bool v)=0
Indique comment initialiser les nouvelles valeurs dans les mailles matériaux et milieux.
virtual void setUseMaterialValueWhenRemovingPartialValue(bool v)=0
Indique si on utilise la valeur matériau ou milieu lorsqu'on transforme une maille partielle en maill...
virtual String dataCompressorServiceName() const =0
virtual Nom du service utilisé pour compresser les données
virtual void dumpInfos(std::ostream &o)=0
Ecrit les infos des matériaux et milieux sur le flot o.
virtual void forceRecompute()=0
Force le recalcul des informations des matériaux.
virtual CellToAllEnvCellConverter cellToAllEnvCellConverter()=0
Créée une instance pour convertir de 'Cell' en 'AllEnvCell'.
virtual void checkMaterialsInCells(Integer max_print=10)=0
Vérifie que les mailles des matériaux sont cohérentes entre les sous-domaines.
virtual void visitVariables(IFunctorWithArgumentT< IMeshMaterialVariable * > *functor)=0
Applique le fonctor functor sur l'ensemble des variables matériaux.
virtual void setKeepValuesAfterChange(bool v)=0
Positionne la sauvegarde des valeurs entre deux modifications des matériaux.
virtual String name() const =0
Nom du gestionnaire.
virtual void setMeshModificationNotified(bool v)=0
Indique si les milieux et matériaux suivent les changements de topologie dans le maillage.
virtual IMeshEnvironment * findEnvironment(const String &name, bool throw_exception=true)=0
Retourne le milieux de nom name.
virtual IMeshBlock * createBlock(const MeshBlockBuildInfo &infos)=0
Créé un bloc.
virtual bool isMeshModificationNotified() const =0
Indique si les milieux et matériaux suivent les changements de topologie dans le maillage.
virtual Mutex * variableLock()=0
Verrou utilisé pour le multi-threading.
virtual void removeEnvironmentToBlock(IMeshBlock *block, IMeshEnvironment *env)=0
Supprime un milieu à un bloc existant.
virtual Integer synchronizeVariableVersion() const =0
Version de l'implémentation pour la synchronisation des variables matériaux.
virtual IMeshBlock * findBlock(const String &name, bool throw_exception=true)=0
Retourne le bloc de nom name.
virtual AllEnvCellVectorView view(SmallSpan< const Int32 > cell_local_id)=0
Vue sur les mailles milieux correspondant aux mailles de numéro locaux cells_local_id.
virtual void fillWithUsedVariables(Array< IMeshMaterialVariable * > &variables)=0
Remplit le tableau variables avec la liste des variables matériaux utilisés.
virtual AllEnvCellVectorView view(CellVectorView cells)=0
Vue sur les mailles milieux correspondant au groupe cells.
virtual bool isDataInitialisationWithZero() const =0
Indique comment initialiser les nouvelles valeurs dans les mailles matériaux et milieux.
virtual void recreateFromDump()=0
Recréé les infos des matériaux et milieux à partir des infos de la protection.
virtual ITraceMng * traceMng()=0
Gestionnaire de traces.
virtual void addEnvironmentToBlock(IMeshBlock *block, IMeshEnvironment *env)=0
Ajoute un milieu à un bloc existant.
virtual IMesh * mesh()=0
Maillage associé.
virtual bool synchronizeMaterialsInCells()=0
Synchronise les mailles des matériaux.
virtual IMeshEnvironment * createEnvironment(const MeshEnvironmentBuildInfo &infos)=0
Créé un milieu avec les infos infos.
virtual MeshComponentList environmentsAsComponents() const =0
Liste des milieux vus comme composants.
virtual IMeshMaterialMngInternal * _internalApi() const =0
API interne à Arcane.
virtual void checkValid()=0
Vérifie la validité des structures internes.
virtual void dumpCellInfos(Cell cell, std::ostream &o)=0
Ecrit les infos de la maille cell sur le flot o.
virtual ConstArrayView< IMeshEnvironment * > environments() const =0
Liste des milieux.
virtual AllEnvCellVectorView view(const CellGroup &cells)=0
Vue sur les mailles milieux correspondant au groupe cells.
virtual void enableCellToAllEnvCellForRunCommand(bool is_enable, bool force_create=false)=0
Active ou désactive la construction et la mise à jour de la table de "connectivité" CellLocalId -> Al...
virtual IMeshMaterialVariable * checkVariable(IVariable *global_var)=0
Variable aux matériaux associé à la variable global global_var (nullptr si aucune)
virtual void setModificationFlags(int v)=0
Positionner les flags pour paramêtrer les modifications de matériaux/milieux.
virtual ConstArrayView< IMeshBlock * > blocks() const =0
Liste des blocs.
Interface d'une variable matériau d'un maillage.
Informations pour la création d'un milieu.
Infos d'un matériau d'un maillage.
Informations pour la création d'un bloc.
Classe de compatibilité pour contenir un MeshHandle ou un IMesh*.
Definition MeshHandle.h:194
Handle sur un maillage.
Definition MeshHandle.h:47
Classe de base des vecteurs 1D de données.
Vue constante d'un tableau de type T.
Interface d'un fonctor avec argument mais sans valeur de retour.
Interface du gestionnaire de traces.
Vue d'un tableau d'éléments de type T.
Definition Span.h:670
Chaîne de caractères unicode.
Active toujours les traces dans les parties Arcane concernant les matériaux.