12#ifndef ARCANE_MATERIALS_IMESHMATERIALMNG_H
13#define ARCANE_MATERIALS_IMESHMATERIALMNG_H
17#include "arcane/utils/IFunctorWithArgument.h"
18#include "arcane/utils/PlatformUtils.h"
20#include "arcane/core/materials/MaterialsCoreGlobal.h"
22#include "arcane/core/MeshHandle.h"
429 virtual bool isCellToAllEnvCellForRunCommand()
const =0;
445 virtual bool isUseMaterialValueWhenRemovingPartialValue()
const =0;
460 static void _internalSetFactory(
IFactory* f);
Déclarations de types sur les entités.
Interface d'une variable.
Vue sur un tableau typé d'entités.
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Vue sur une liste de mailles avec infos sur les milieux.
Conversion de 'Cell' en 'AllEnvCell'.
Interface d'un bloc d'un maillage.
Interface d'un milieu 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*.
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.