Arcane  v3.14.10.0
Documentation développeur
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/*---------------------------------------------------------------------------*/
57class ARCANE_CORE_EXPORT IMeshMaterialMng
58{
59 friend class MeshMaterialMngFactory;
60
61 public:
62
63 virtual ~IMeshMaterialMng() = default;
64
65 public:
66
76 static IMeshMaterialMng* getReference(const MeshHandleOrMesh& mesh_handle,bool create=true);
77
87 static Ref<IMeshMaterialMng> getTrueReference(const MeshHandle& mesh_handle,bool create=true);
88
89 public:
90
92 virtual IMesh* mesh() =0;
93
95 virtual ITraceMng* traceMng() =0;
96
97 public:
98
107
116
125 virtual IMeshBlock* createBlock(const MeshBlockBuildInfo& infos) =0;
126
139
152
161 virtual void endCreate(bool is_continue=false) =0;
162
170 virtual void recreateFromDump() =0;
171
179 virtual void setKeepValuesAfterChange(bool v) =0;
180
182 virtual bool isKeepValuesAfterChange() const =0;
183
192 virtual void setDataInitialisationWithZero(bool v) =0;
193
195 virtual bool isDataInitialisationWithZero() const =0;
196
207 virtual void setMeshModificationNotified(bool v) =0;
208
210 virtual bool isMeshModificationNotified() const =0;
211
226 virtual void setModificationFlags(int v) =0;
227
229 virtual int modificationFlags() const =0;
230
245
248
250 virtual String name() const =0;
251
257 virtual void setDataCompressorServiceName(const String& name) =0;
258
261
264
267
270
273
280 virtual MeshComponentList components() const =0;
281
284
291 virtual IMeshEnvironment* findEnvironment(const String& name,bool throw_exception=true) =0;
292
299 virtual IMeshBlock* findBlock(const String& name,bool throw_exception=true) =0;
300
307
309 virtual IMeshMaterialVariable* findVariable(const String& name) =0;
310
313
315 virtual void dumpInfos(std::ostream& o) =0;
316
318 virtual void dumpCellInfos(Cell cell,std::ostream& o) =0;
319
321 virtual void checkValid() =0;
322
324 virtual AllEnvCellVectorView view(const CellGroup& cells) =0;
325
328
331
334
343 virtual void forceRecompute() =0;
344
346 virtual Mutex* variableLock() =0;
347
370
385 virtual void checkMaterialsInCells(Integer max_print=10) =0;
386
389
400 virtual Int64 timestamp() const =0;
401
406 virtual void setSynchronizeVariableVersion(Integer version) =0;
407
412 virtual Integer synchronizeVariableVersion() const =0;
413
415 virtual bool isInMeshMaterialExchange() const =0;
416
419
429 virtual bool isCellToAllEnvCellForRunCommand() const =0;
430
445 virtual bool isUseMaterialValueWhenRemovingPartialValue() const =0;
446
447 public:
448
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
460 static void _internalSetFactory(IFactory* f);
461
462 public:
463
466
472
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
Interface d'une variable.
Definition IVariable.h:54
Vue sur un tableau typé d'entités.
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.
Interface d'un bloc d'un maillage.
API interne Arcane de 'IMeshMaterialMng'.
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 IMeshMaterialVariableSynchronizer * _allCellsEnvOnlySynchronizer()=0
Synchronizeur pour les variables uniquement milieux sur toutes les mailles.
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 IMeshMaterialVariableSynchronizer * _allCellsMatEnvSynchronizer()=0
Synchronizeur pour les variables matériaux et milieux sur toutes les mailles.
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 du gestionnaire de fabrique de variables matériaux.
Interface du synchroniseur de variables matériaux.
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
Vue constante d'un tableau de type T.
Interface du gestionnaire de traces.
Chaîne de caractères unicode.
Active toujours les traces dans les parties Arcane concernant les matériaux.