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"
87 static Ref<IMeshMaterialMng> getTrueReference(
const MeshHandle& mesh_handle,
bool create=
true);
429 virtual bool isCellToAllEnvCellForRunCommand()
const =0;
445 virtual bool isUseMaterialValueWhenRemovingPartialValue()
const =0;
454 virtual Ref<IMeshMaterialMng> getTrueReference(
const MeshHandle& mesh_handle,
bool is_create) =0;
460 static void _internalSetFactory(
IFactory* f);
Déclarations de types sur les entités.
Vue sur un tableau typé d'entités.
Conversion de 'Cell' en 'AllEnvCell'.
Interface d'un bloc d'un maillage.
Interface d'un milieu 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*.
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.
Chaîne de caractères unicode.
Active toujours les traces dans les parties Arcane concernant les matériaux.