Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
Référence de la classe Arcane::IVariableabstract

Interface d'une variable. Plus de détails...

#include <arcane/core/IVariable.h>

+ Graphe d'héritage de Arcane::IVariable:
+ Graphe de collaboration de Arcane::IVariable:

Types publics

enum  eDependType { DPT_PreviousTime , DPT_CurrentTime }
 Type des dépendances. Plus de détails...
 
enum  {
  PNoDump = (1 << 0) , PNoNeedSync = (1 << 1) , PHasTrace = (1 << 2) , PSubDomainDepend = (1 << 3) ,
  PSubDomainPrivate = (1 << 4) , PExecutionDepend = (1 << 5) , PPrivate = (1 << 6) , PTemporary = (1 << 7) ,
  PNoRestore = (1 << 8) , PNoExchange = (1 << 9) , PPersistant = (1 << 10) , PNoReplicaSync = (1 << 11)
}
 Propriétés d'une variable. Plus de détails...
 

Fonctions membres publiques

virtual ~IVariable ()=default
 Libère les ressources.
 
virtual ISubDomainsubDomain ()=0
 Sous-domaine associé à la variable (TODO rendre obsolète fin 2023)
 
virtual IVariableMngvariableMng () const =0
 Gestionnaire de variable associé à la variable.
 
virtual Real allocatedMemory () const =0
 Taille mémoire (en Koctet) utilisée par la variable.
 
virtual String name () const =0
 Nom de la variable.
 
virtual String fullName () const =0
 Nom complet de la variable (avec le préfixe de la famille)
 
virtual eDataType dataType () const =0
 Type de la donnée gérée par la variable (Real, Integer, ...)
 
virtual eItemKind itemKind () const =0
 Type des entités du maillage sur lequel repose la variable.
 
virtual Integer dimension () const =0
 Dimension de la variable.
 
virtual Integer multiTag () const =0
 Indique si la variable est un tableau à taille multiple.
 
virtual Integer nbElement () const =0
 Nombre d'éléments de la variable.
 
virtual int property () const =0
 Retourne les propriétés de la variable.
 
virtual void notifyReferencePropertyChanged ()=0
 Indique que les propriétés d'une des références à cette variable ont changé (interne)
 
virtual void addVariableRef (VariableRef *var_ref)=0
 Ajoute une référence à cette variable.
 
virtual void removeVariableRef (VariableRef *var_ref)=0
 Supprime une référence à cette variable.
 
virtual VariableReffirstReference () const =0
 Première réference (ou null) sur cette variable.
 
virtual Integer nbReference () const =0
 Nombre de références sur cette variable.
 
virtual void setTraceInfo (Integer id, eTraceType tt)=0
 
virtual void resize (Integer new_size)=0
 Positionne le nombre d'éléments pour une variable tableau.
 
virtual void resizeFromGroup ()=0
 Positionne le nombre d'éléments pour une variable du maillage.
 
virtual void shrinkMemory ()=0
 Libère l'éventuelle mémoire supplémentaire allouée pour les données.
 
virtual void setAllocationInfo (const DataAllocationInfo &v)=0
 Positionne les informations sur l'allocation.
 
virtual DataAllocationInfo allocationInfo () const =0
 Informations sur l'allocation.
 
virtual bool initialize (const ItemGroup &group, const String &value)=0
 Initialise la variable sur un groupe.
 
Opérations de vérification
virtual Integer checkIfSync (Integer max_print=0)=0
 Vérifie si la variable est bien synchronisée.
 
virtual Integer checkIfSame (IDataReader *reader, Integer max_print, bool compare_ghost)=0
 Vérifie que la variable est identique à une valeur de référence.
 
virtual Integer checkIfSameOnAllReplica (Integer max_print=0)=0
 Vérifie si la variable a les mêmes valeurs sur tous les réplicas.
 
virtual void synchronize ()=0
 Synchronise la variable.
 
virtual void synchronize (Int32ConstArrayView local_ids)
 Synchronise la variable sur une liste d'entités.
 
virtual IMeshmesh () const =0
 Maillage auquel est associé la variable.
 
virtual MeshHandle meshHandle () const =0
 Maillage auquel est associé la variable.
 
virtual ItemGroup itemGroup () const =0
 Groupe du maillage associé.
 
virtual String itemGroupName () const =0
 Nom du groupe d'entité associée.
 
virtual IItemFamilyitemFamily () const =0
 Famille d'entité associée.
 
virtual String itemFamilyName () const =0
 Nom de la famille associée (nul si aucune).
 
virtual String meshName () const =0
 Nom du maillage associé (nul si aucun).
 
virtual VariableMetaDatacreateMetaData () const =0
 Créé une instance contenant les meta-données de la variable.
 
virtual Ref< VariableMetaDatacreateMetaDataRef () const =0
 Créé une instance contenant les meta-données de la variable.
 
virtual void syncReferences ()=0
 Synchronise les références.
 
virtual void setUsed (bool v)=0
 Positionne l'état d'utilisation de la variable.
 
virtual bool isUsed () const =0
 Etat d'utilisation de la variable.
 
virtual bool isPartial () const =0
 Indique si la variable est partielle.
 
virtual void copyItemsValues (Int32ConstArrayView source, Int32ConstArrayView destination)=0
 Copie les valeurs des entités numéros source dans les entités numéro destination.
 
virtual void copyItemsMeanValues (Int32ConstArrayView first_source, Int32ConstArrayView second_source, Int32ConstArrayView destination)=0
 Copie les moyennes des valeurs des entités numéros first_source et second_source dans les entités numéros destination.
 
virtual void compact (Int32ConstArrayView new_to_old_ids)=0
 Compacte les valeurs de la variable.
 
virtual void changeGroupIds (Int32ConstArrayView old_to_new_ids)=0
 pH : EXPERIMENTAL
 
virtual IDatadata ()=0
 Données associées à la variable.
 
virtual const IDatadata () const =0
 Données associées à la variable.
 
virtual IDataFactoryMngdataFactoryMng () const =0
 Fabrique de données associées à la variable.
 
Opérations de sérialisation
virtual void serialize (ISerializer *sbuffer, IDataOperation *operation=0)=0
 
virtual void serialize (ISerializer *sbuffer, Int32ConstArrayView ids, IDataOperation *operation=0)=0
 Sérialize la variable pour les identifiants ids.
 
virtual ARCANE_DEPRECATED_2018 void write (IDataWriter *writer)=0
 Sauve la variable.
 
virtual ARCANE_DEPRECATED_2018 void read (IDataReader *reader)=0
 
virtual void notifyEndRead ()=0
 Notifie de la modification externe de data().
 
virtual void notifyBeginWrite ()=0
 Notifie du début d'écriture de data().
 
virtual IObservablewriteObservable ()=0
 Observable en écriture.
 
virtual IObservablereadObservable ()=0
 Observable en lecture.
 
virtual IObservableonSizeChangedObservable ()=0
 Observable en redimensionnement.
 
virtual void addTag (const String &tagname, const String &tagvalue)=0
 Ajoute le tag tagname avev la valeur tagvalue.
 
virtual void removeTag (const String &tagname)=0
 Supprime le tag tagname.
 
virtual bool hasTag (const String &tagname)=0
 true si la variable possède le tag tagname
 
virtual String tagValue (const String &tagname)=0
 Valeur du tag tagname. La chaîne est nulle si le tag n'existe pas.
 
virtual void print (std::ostream &o) const =0
 Imprime les valeurs de la variable sur le flot o.
 

Amis

class VariableMng
 

Gestion des dépendances

virtual void update ()=0
 Recalcule la variable si nécessaire.
 
virtual void update (Real wanted_time)=0
 
virtual void setUpToDate ()=0
 Indique que la variable vient d'être mise à jour.
 
virtual Int64 modifiedTime ()=0
 Temps auquel la variable a été mise à jour.
 
virtual void addDepend (IVariable *var, eDependType dt)=0
 Ajoute var à la liste des dépendances.
 
virtual void addDepend (IVariable *var, eDependType dt, const TraceInfo &tinfo)=0
 Ajoute var à la liste des dépendances avec les infos de trace tinfo.
 
virtual void removeDepend (IVariable *var)=0
 Supprime var de la liste des dépendances.
 
virtual void setComputeFunction (IVariableComputeFunction *v)=0
 Positionne la fonction de recalcul de la variable.
 
virtual IVariableComputeFunctioncomputeFunction ()=0
 Fonction utilisée pour mettre à jour la variable.
 
virtual void dependInfos (Array< VariableDependInfo > &infos)=0
 Infos de dépendances.
 
virtual IMemoryAccessTracememoryAccessTrace () const =0
 
virtual void setIsSynchronized ()=0
 Indique que la variable est synchronisée.
 
virtual void setIsSynchronized (const ItemGroup &item_group)=0
 Indique que la variable est synchronisée sur le group item_group.
 
virtual IVariableInternal_internalApi ()=0
 API interne à Arcane.
 
static Int64 incrementModifiedTime ()
 Incrémente le compteur de modification et retourne sa valeur avant modification.
 

Description détaillée

Interface d'une variable.

Par défaut, c'est la classe Variable qui implémente cette interface.

Définition à la ligne 53 du fichier IVariable.h.

Documentation des énumérations membres

◆ anonymous enum

Propriétés d'une variable.

Valeurs énumérées
PNoDump 

Indique que la variable ne doit pas être sauvegardée.

PNoNeedSync 

Indique que la variable n'est pas nécessairement synchronisée.

Cela signifie qu'il est normal que les valeurs de la variable soient différentes d'un processeur à l'autre sur les mailles fantômes

PHasTrace 

Indique que la variable est tracée (uniquement en mode trace)

PSubDomainDepend 

Indique que la valeur de la variable est dépendante du sous-domaine.

Cela signifie entre autre que la valeur de la variable est différente dès que le nombre de sous-domaines varie. C'est par exemple le cas de la variable contenant le numéro du sous-domaine propriétaire d'une entité.

PSubDomainPrivate 

Indique que la variable est privée au sous-domaine.

Cela signifie que la variable est dépendante du sous-domaine et notamment qu'elle n'existe pas forcément sur tout les sous-domaines. Cette propriété ne peut pas être positionnée pour les variables du maillage.

PExecutionDepend 

Indique que la valeur de la variable est dépendante de l'exécution.

Les valeurs de ces variables changent entre deux exécutions. C'est par exemple le cas d'une variable contenant le temps CPU utilisé.

PPrivate 

Indique que la variable est privée.

Une variable privée ne peut pas posséder plus d'une référence. Cette propriété ne peut être positionner que lors de la création de la variable

PTemporary 

Indique que la variable est temporaire.

Une variable temporaire est comme son nom l'indique temporaire. Elle ne peut pas être sauvée, n'est pas transférée en cas d'équilibrage du maillage (mais peut être synchronisée) et n'est pas sauvée en cas de retour arrière.

Une variable temporaire qui n'est plus utilisée (aucune référence dessus) peut être désallouée.

PNoRestore 

Indique que la variable ne doit pas être restaurée.

Une variable de ce type n'est pas sauvegardée ni restorée en cas de retour-arrière.

PNoExchange 

Indique que la variable ne doit pas être échangée.

Une variable de ce type n'est pas échangée lors d'un repartitionnement de maillage par exemple. Cela permet d'éviter l'envoie de données inutiles si cette variable n'est utilisée que temporairement ou qu'elle est recalculée dans un des points d'entrée appelé suite à un repartitionnement.

PPersistant 

Indique que la variable est persistante.

Une variable persistante n'est pas détruite s'il n'existe plus de référence dessus.

PNoReplicaSync 

Indique que la variable n'a pas forcément la même valeur entre les réplicas.

Cela signifie qu'il est normal que les valeurs de la variable soient différentes sur les mêmes sous-domaines des autres réplicas.

Définition à la ligne 69 du fichier IVariable.h.

◆ eDependType

Type des dépendances.

Définition à la ligne 58 du fichier IVariable.h.

Documentation des fonctions membres

◆ _internalApi()

virtual IVariableInternal * Arcane::IVariable::_internalApi ( )
pure virtual

API interne à Arcane.

Implémenté dans Arcane::Variable.

◆ addDepend() [1/2]

virtual void Arcane::IVariable::addDepend ( IVariable var,
eDependType  dt 
)
pure virtual

◆ addDepend() [2/2]

virtual void Arcane::IVariable::addDepend ( IVariable var,
eDependType  dt,
const TraceInfo tinfo 
)
pure virtual

Ajoute var à la liste des dépendances avec les infos de trace tinfo.

Implémenté dans Arcane::Variable.

◆ addTag()

virtual void Arcane::IVariable::addTag ( const String tagname,
const String tagvalue 
)
pure virtual

Ajoute le tag tagname avev la valeur tagvalue.

Implémenté dans Arcane::Variable.

Référencé par Arcane::VariableRef::addTag().

◆ addVariableRef()

virtual void Arcane::IVariable::addVariableRef ( VariableRef var_ref)
pure virtual

Ajoute une référence à cette variable.

Précondition
var_ref ne doit pas déjà référencer une variable.

Implémenté dans Arcane::Variable.

Référencé par Arcane::VariableRef::registerVariable().

◆ allocatedMemory()

virtual Real Arcane::IVariable::allocatedMemory ( ) const
pure virtual

Taille mémoire (en Koctet) utilisée par la variable.

Implémenté dans Arcane::Array2VariableT< T >, Arcane::VariableArrayT< T >, et Arcane::VariableScalarT< T >.

◆ allocationInfo()

virtual DataAllocationInfo Arcane::IVariable::allocationInfo ( ) const
pure virtual

Informations sur l'allocation.

Implémenté dans Arcane::Variable.

◆ changeGroupIds()

virtual void Arcane::IVariable::changeGroupIds ( Int32ConstArrayView  old_to_new_ids)
pure virtual

pH : EXPERIMENTAL

Implémenté dans Arcane::Variable.

◆ checkIfSame()

virtual Integer Arcane::IVariable::checkIfSame ( IDataReader reader,
Integer  max_print,
bool  compare_ghost 
)
pure virtual

Vérifie que la variable est identique à une valeur de référence.

Cette opération vérifie que les valeurs de la variable sont identique à une valeur de référence qui est lu à partir du lecteur reader.

Pour chaque valeur différente de la référence, un message est affiché.

Paramètres
max_printnombre maximum de messages à afficher. Si 0, aucun élément n'est affiché. Si positif, affiche au plus max_print élément. Si négatif, tous les éléments sont affichés.
compare_ghostsi vrai, compare les valeurs à la fois sur les entités propres et les entités fantômes. Sinon, ne fait la comparaison que sur les entités propres.
Renvoie
le nombre de valeurs différentes de la référence

◆ checkIfSameOnAllReplica()

virtual Integer Arcane::IVariable::checkIfSameOnAllReplica ( Integer  max_print = 0)
pure virtual

Vérifie si la variable a les mêmes valeurs sur tous les réplicas.

Compare les valeurs de la variable avec celle du même sous-domaine des autres réplicas. Pour chaque élément différent, un message est affiché.

Cette méthode est collective sur le même sous-domaine des autres réplica. Il ne faut donc l'appeler que si la variable existe sur tous les sous-domaines sinon cela provoque un blocage.

Cette méthode ne fonctionne que pour les variables sur les types numériques. Dans ce cas, elle renvoie une exception de type NotSupportedException.

Paramètres
max_printnombre maximum de messages à afficher. Si 0, aucun élément n'est affiché. Si positif, affiche au plus max_print élément. Si négatif, tous les éléments sont affichés. Pour chaque élément différent est affiché la valeur minimale et maximale.
Renvoie
le nombre de valeurs différentes de la référence.

Implémenté dans Arcane::Variable.

Référencé par Arcane::VariableRef::checkIfSameOnAllReplica().

◆ checkIfSync()

virtual Integer Arcane::IVariable::checkIfSync ( Integer  max_print = 0)
pure virtual

Vérifie si la variable est bien synchronisée.

Cette opération ne fonctionne que pour les variables de maillage.

Un variable est synchronisée lorsque ses valeurs sont les mêmes sur tous les sous-domaines à la fois sur les éléments propres et les éléments fantômes.

Pour chaque élément non synchronisé, un message est affiché.

Paramètres
max_printnombre maximum de messages à afficher. Si 0, aucun élément n'est affiché. Si positif, affiche au plus max_print élément. Si négatif, tous les éléments sont affichés.
Renvoie
le nombre de valeurs différentes de la référence

Implémenté dans Arcane::Variable.

Référencé par Arcane::VariableRef::checkIfSync().

◆ compact()

virtual void Arcane::IVariable::compact ( Int32ConstArrayView  new_to_old_ids)
pure virtual

Compacte les valeurs de la variable.

Cette opération est interne à Arcane et doit se faire en conjonction avec la famille d'entité correspondant à cette variable.

Implémenté dans Arcane::VariableScalarT< T >, Arcane::Array2VariableT< T >, et Arcane::VariableArrayT< T >.

Référencé par Arcane::ItemGroupPartialVariableObserver::executeCompact(), Arcane::mesh::IncrementalItemConnectivityBase::notifySourceFamilyLocalIdChanged(), et Arcane::mesh::OneItemIncrementalItemConnectivity::notifySourceFamilyLocalIdChanged().

◆ computeFunction()

virtual IVariableComputeFunction * Arcane::IVariable::computeFunction ( )
pure virtual

Fonction utilisée pour mettre à jour la variable.

Implémenté dans Arcane::Variable.

◆ copyItemsMeanValues()

virtual void Arcane::IVariable::copyItemsMeanValues ( Int32ConstArrayView  first_source,
Int32ConstArrayView  second_source,
Int32ConstArrayView  destination 
)
pure virtual

Copie les moyennes des valeurs des entités numéros first_source et second_source dans les entités numéros destination.

Paramètres
first_sourceliste des localId de la 1ère source
second_sourceliste des localId de la 2ème source
destinationliste des localId destination

Implémenté dans Arcane::VariableArrayT< T >, Arcane::VariableArrayT< T >, Arcane::Array2VariableT< T >, Arcane::VariableArrayT< T >, et Arcane::VariableScalarT< T >.

◆ copyItemsValues()

virtual void Arcane::IVariable::copyItemsValues ( Int32ConstArrayView  source,
Int32ConstArrayView  destination 
)
pure virtual

Copie les valeurs des entités numéros source dans les entités numéro destination.

Note
Cette opération est interne à Arcane et doit se faire en conjonction avec la famille d'entité correspondant à cette variable.
Paramètres
sourceliste des localId source
destinationliste des localId destination

Implémenté dans Arcane::Array2VariableT< T >, Arcane::VariableArrayT< T >, et Arcane::VariableScalarT< T >.

Référencé par Arcane::ItemGroupPartialVariableObserver::executeReduce().

◆ createMetaData()

virtual VariableMetaData * Arcane::IVariable::createMetaData ( ) const
pure virtual

Créé une instance contenant les meta-données de la variable.

L'instance retournée doit être détruite par l'appel à l'opérateur delete.

Implémenté dans Arcane::Variable.

◆ createMetaDataRef()

virtual Ref< VariableMetaData > Arcane::IVariable::createMetaDataRef ( ) const
pure virtual

Créé une instance contenant les meta-données de la variable.

Implémenté dans Arcane::Variable.

◆ data() [1/2]

virtual const IData * Arcane::IVariable::data ( ) const
pure virtual

Données associées à la variable.

Implémenté dans Arcane::Array2VariableT< T >, Arcane::VariableArrayT< T >, et Arcane::VariableScalarT< T >.

◆ data() [2/2]

◆ dataFactoryMng()

virtual IDataFactoryMng * Arcane::IVariable::dataFactoryMng ( ) const
pure virtual

Fabrique de données associées à la variable.

Implémenté dans Arcane::Variable.

Référencé par Arcane::mesh::ItemFamily::reduceFromGhostItems().

◆ dataType()

virtual eDataType Arcane::IVariable::dataType ( ) const
pure virtual

Type de la donnée gérée par la variable (Real, Integer, ...)

Implémenté dans Arcane::Variable.

Référencé par Arcane::VariableRef::dataType(), Arcane::BadVariableKindTypeException::explain(), et Arcane::Hdf5VariableReaderHelper2::readAndUpdateTimeVariables().

◆ dependInfos()

virtual void Arcane::IVariable::dependInfos ( Array< VariableDependInfo > &  infos)
pure virtual

Infos de dépendances.

Remplit le tableau infos avec les infos de dépendance.

Implémenté dans Arcane::Variable.

◆ dimension()

virtual Integer Arcane::IVariable::dimension ( ) const
pure virtual

Dimension de la variable.

Les valeurs possibles sont les suivantes:

  • 0 pour une variable scalaire,.
  • 1 pour une variable tableau mono-dim ou variable scalaire du maillage.
  • 2 pour une variable tableau bi-dim ou variable tableau du maillage.

Implémenté dans Arcane::Variable.

Référencé par Arcane::BadVariableKindTypeException::explain().

◆ firstReference()

virtual VariableRef * Arcane::IVariable::firstReference ( ) const
pure virtual

Première réference (ou null) sur cette variable.

Implémenté dans Arcane::Variable.

◆ fullName()

virtual String Arcane::IVariable::fullName ( ) const
pure virtual

Nom complet de la variable (avec le préfixe de la famille)

Implémenté dans Arcane::Variable.

Référencé par Arcane::Hdf5ReaderWriter::_writeValParallel(), Arcane::VariableMng::removeAllVariables(), et Arcane::VariableCollection::sortByName().

◆ hasTag()

virtual bool Arcane::IVariable::hasTag ( const String tagname)
pure virtual

true si la variable possède le tag tagname

Implémenté dans Arcane::Variable.

Référencé par Arcane::VariableRef::hasTag(), et Arcane::MeshUtils::markMeshConnectivitiesAsMostlyReadOnly().

◆ incrementModifiedTime()

Int64 Arcane::IVariable::incrementModifiedTime ( )
static

Incrémente le compteur de modification et retourne sa valeur avant modification.

Définition à la ligne 196 du fichier Variable.cc.

Référencé par Arcane::Variable::setUpToDate(), et Arcane::Materials::MeshMaterialVariable::setUpToDate().

◆ initialize()

virtual bool Arcane::IVariable::initialize ( const ItemGroup group,
const String value 
)
pure virtual

Initialise la variable sur un groupe.

Initialise la variable avec la valeur value pour tous les éléments du groupe group.

Cette opération n'est utilisable qu'avec les variables de maillage.

Paramètres
group_namegroupe. Il doit correspondre à un groupe existant du type de la variable (par exemple CellGroup pour une variable au maille).
valuevaleur d'initialisation. La chaîne doit pouvoir être convertie en le type de la variable.
Valeurs retournées
trueen cas d'erreur ou si la variable n'est pas une variable du maillage.
falsesi l'initialisation est un succès.

Implémenté dans Arcane::Variable, et Arcane::VariableArrayT< T >.

◆ isPartial()

virtual bool Arcane::IVariable::isPartial ( ) const
pure virtual

Indique si la variable est partielle.

Une variable est partielle lorsqu'elle n'est pas définie sur toutes les entités d'une famille. Dans ce cas, group()!=itemFamily()->allItems().

Implémenté dans Arcane::Variable.

Référencé par Arcane::DumpWEnsight7::_writeRealValT(), Arcane::DumpWEnsight7::_writeRealValT(), Arcane::DumpWEnsight7::writeVal(), et Arcane::DumpWEnsight7::writeVal().

◆ isUsed()

virtual bool Arcane::IVariable::isUsed ( ) const
pure virtual

Etat d'utilisation de la variable.

Implémenté dans Arcane::Variable.

Référencé par Arcane::DumpWEnsight7::_isValidVariable().

◆ itemFamily()

virtual IItemFamily * Arcane::IVariable::itemFamily ( ) const
pure virtual

Famille d'entité associée.

Renvoie
la famille associée à la variable ou 0 si la variable n'a pas de famille.

Si une variable n'est pas utilisée ou pas encore allouée, la valeur retournée est nulle. Cependant, la variable peut quand même être associée à une famille. Dans ce cas, il faut utiliser la fonction itemFamilyName() pour récupérer le nom de cette famille.

Implémenté dans Arcane::Variable.

Référencé par Arcane::GetVariablesValuesParallelOperation::getVariableValues(), et Arcane::mesh::ItemFamily::reduceFromGhostItems().

◆ itemFamilyName()

virtual String Arcane::IVariable::itemFamilyName ( ) const
pure virtual

Nom de la famille associée (nul si aucune).

Implémenté dans Arcane::Variable.

◆ itemGroup()

virtual ItemGroup Arcane::IVariable::itemGroup ( ) const
pure virtual

Groupe du maillage associé.

Renvoie
le groupe du maillage associé si pour une variable du maillage ou le groupe nul si la variable n'est pas une variable du maillage.

Si une variable n'est pas utilisée ou pas encore allouée, la valeur retournée est le group nul. Cependant, la variable peut quand même être associée à un groupe. Dans ce cas, il faut utiliser la fonction itemGroupName() pour récupérer le nom de ce groupe.

Implémenté dans Arcane::Variable.

Référencé par Arcane::DumpWEnsight7::_writeRealValT(), Arcane::DumpWEnsight7::_writeRealValT(), Arcane::Parallel::VariableParallelOperationBase::addVariable(), Arcane::VariableMng::detachMeshVariables(), Arcane::ItemGroupPartialVariableObserver::executeCompact(), Arcane::ItemGroupPartialVariableObserver::executeExtend(), Arcane::ItemGroupPartialVariableObserver::executeInvalidate(), Arcane::ItemGroupPartialVariableObserver::executeReduce(), Arcane::mesh::ItemFamily::reduceFromGhostItems(), Arcane::DumpWEnsight7::writeVal(), et Arcane::DumpWEnsight7::writeVal().

◆ itemGroupName()

virtual String Arcane::IVariable::itemGroupName ( ) const
pure virtual

Nom du groupe d'entité associée.

Implémenté dans Arcane::Variable.

Référencé par Arcane::BadPartialVariableItemGroupNameException::explain().

◆ itemKind()

virtual eItemKind Arcane::IVariable::itemKind ( ) const
pure virtual

Type des entités du maillage sur lequel repose la variable.

Pour les variables scalaire ou tableau, il n'y a pas de type et la méthode retourne IK_Unknown. Pour les autres variables, retourne le type de l'élément de maillage (Node, Cell, ...), à savoir:

  • IK_Node pour les noeuds
  • IK_Edge pour les arêtes
  • IK_Face pour les faces
  • IK_Cell pour les mailles
  • #IK_DualNode pour les noeuds duals
  • #IK_Link pour les liens du graphe
  • IK_Particle pour les particules

Implémenté dans Arcane::Variable.

Référencé par Arcane::VerifierService::_getVariables(), Arcane::VariableRef::_internalInit(), Arcane::DumpWEnsight7::_isValidVariable(), Arcane::DumpWEnsight7::_writeRealValT(), Arcane::DumpWEnsight7::_writeRealValT(), Arcane::BadVariableKindTypeException::explain(), Arcane::DumpWEnsight7::writeVal(), Arcane::DumpWUCD::writeVal(), Arcane::DumpWEnsight7::writeVal(), et Arcane::DumpWUCD::writeVal().

◆ mesh()

virtual IMesh * Arcane::IVariable::mesh ( ) const
pure virtual

Maillage auquel est associé la variable.

Cette opération n'est significative que pour les variables sur des entités du maillage.

Implémenté dans Arcane::Variable.

◆ meshHandle()

virtual MeshHandle Arcane::IVariable::meshHandle ( ) const
pure virtual

Maillage auquel est associé la variable.

Cette opération n'est significative que pour les variables sur des entités du maillage.

Implémenté dans Arcane::Variable.

Référencé par Arcane::VerifierService::_getVariables(), Arcane::GeomShapeMng::initialize(), et Arcane::MeshUtils::markMeshConnectivitiesAsMostlyReadOnly().

◆ meshName()

virtual String Arcane::IVariable::meshName ( ) const
pure virtual

Nom du maillage associé (nul si aucun).

Implémenté dans Arcane::Variable.

◆ modifiedTime()

virtual Int64 Arcane::IVariable::modifiedTime ( )
pure virtual

Temps auquel la variable a été mise à jour.

Implémenté dans Arcane::Variable.

Référencé par Arcane::VariableRef::modifiedTime().

◆ multiTag()

virtual Integer Arcane::IVariable::multiTag ( ) const
pure virtual

Indique si la variable est un tableau à taille multiple.

Cette valeur n'est utile que pour les tableaux 2D ou plus.

  • 0 pour une variable scalaire ou tableau 2D standard.
  • 1 pour une variable tableau 2D à taille multiple.
  • 2 pour une variable tableau 2D ancient format (obsolète).

Implémenté dans Arcane::Variable.

◆ name()

◆ nbElement()

virtual Integer Arcane::IVariable::nbElement ( ) const
pure virtual

Nombre d'éléments de la variable.

Les valeurs retournées dépendent de la dimension de la variable:

  • pour une dimension 0, retourne 1,
  • pour une dimension 1, retourne le nombre d'éléments du tableau
  • pour une dimension 2, retourne le nombre total d'éléments en sommant le nombre d'éléments par dimension.

Implémenté dans Arcane::Array2VariableT< T >, Arcane::VariableArrayT< T >, et Arcane::VariableScalarT< T >.

◆ nbReference()

virtual Integer Arcane::IVariable::nbReference ( ) const
pure virtual

Nombre de références sur cette variable.

Implémenté dans Arcane::Variable.

Référencé par Arcane::VariableMng::removeAllVariables().

◆ notifyBeginWrite()

virtual void Arcane::IVariable::notifyBeginWrite ( )
pure virtual

Notifie du début d'écriture de data().

Cette méthode déclenche les observables enregistrés dans writeObservable().

Implémenté dans Arcane::Variable.

◆ notifyEndRead()

virtual void Arcane::IVariable::notifyEndRead ( )
pure virtual

Notifie de la modification externe de data().

Signale à l'instance la fin d'une opération de lecture qui a modifié data(). Cette méthode doit donc être appelée dès qu'on a effectué une modication de data(). Cette méthode déclenche les observables enregistrés dans readObservable().

Implémenté dans Arcane::Variable.

◆ notifyReferencePropertyChanged()

virtual void Arcane::IVariable::notifyReferencePropertyChanged ( )
pure virtual

Indique que les propriétés d'une des références à cette variable ont changé (interne)

Implémenté dans Arcane::Variable.

Référencé par Arcane::VariableRef::setProperty(), et Arcane::VariableRef::unsetProperty().

◆ onSizeChangedObservable()

virtual IObservable * Arcane::IVariable::onSizeChangedObservable ( )
pure virtual

Observable en redimensionnement.

Les observateurs enregistrés dans cet observable sont appelés lorsque le nombre d'éléments de la variable change. C'est le cas par exemple après un remaillage pour une variable aux mailles

Implémenté dans Arcane::Variable.

◆ print()

virtual void Arcane::IVariable::print ( std::ostream &  o) const
pure virtual

Imprime les valeurs de la variable sur le flot o.

Implémenté dans Arcane::Array2VariableT< T >, Arcane::VariableArrayT< T >, et Arcane::VariableScalarT< T >.

Référencé par Arcane::VariableRef::print().

◆ property()

virtual int Arcane::IVariable::property ( ) const
pure virtual

Retourne les propriétés de la variable.

Implémenté dans Arcane::Variable.

Référencé par Arcane::VerifierService::_getVariables(), et Arcane::VariableRef::property().

◆ read()

virtual ARCANE_DEPRECATED_2018 void Arcane::IVariable::read ( IDataReader reader)
pure virtual

Relit la variable.

Obsolète:
A remplacer par le code suivant:
reader->read(var,var->data());
var->notifyEndRead();
Interface d'une variable.
Definition IVariable.h:54
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Definition Lima.cc:120

Implémenté dans Arcane::Variable.

◆ readObservable()

virtual IObservable * Arcane::IVariable::readObservable ( )
pure virtual

Observable en lecture.

Les observateurs enregistrés dans cet observable sont appelés après avoir lu la variable (opération read).

Implémenté dans Arcane::Variable.

◆ removeDepend()

virtual void Arcane::IVariable::removeDepend ( IVariable var)
pure virtual

Supprime var de la liste des dépendances.

Implémenté dans Arcane::Variable.

Référencé par Arcane::VariableRef::removeDepend().

◆ removeTag()

virtual void Arcane::IVariable::removeTag ( const String tagname)
pure virtual

Supprime le tag tagname.

Si le tag tagname n'est pas dans la liste, rien ne se passe.

Implémenté dans Arcane::Variable.

Référencé par Arcane::VariableRef::removeTag().

◆ removeVariableRef()

virtual void Arcane::IVariable::removeVariableRef ( VariableRef var_ref)
pure virtual

Supprime une référence à cette variable.

Précondition
var_ref doit référencer cette variable (un appel à addVariableRef() doit avoir été effectué sur cette variable).

Implémenté dans Arcane::Variable.

Référencé par Arcane::VariableRef::unregisterVariable().

◆ resize()

virtual void Arcane::IVariable::resize ( Integer  new_size)
pure virtual

Positionne le nombre d'éléments pour une variable tableau.

Lorsque la variable est du type tableau 1D ou 2D, positionne le nombre d'éléments du tableau à new_size. Pour un tableau 2D, c'est le nombre d'éléments de la première dimension qui est modifié.

Cette opération ne doit pas être appelée pour les variables du maillage car le nombre d'éléments est déterminé automatiquement en fonction du nombre d'entités du groupe sur lequel elle s'appuie. Pour ce type de variable, il faut appeler resizeFromGroup().

Cette opération synchronise les références (syncReferences()).

Implémenté dans Arcane::Variable.

◆ resizeFromGroup()

virtual void Arcane::IVariable::resizeFromGroup ( )
pure virtual

Positionne le nombre d'éléments pour une variable du maillage.

Réalloue la taille de la variable du maillage à partir du groupe sur laquelle elle s'appuie.

Cette opération n'a d'effet que pour les variables du maillage. Pour les autres, aucun action n'est effectuée.

Cette opération synchronise les références (syncReferences()).

Implémenté dans Arcane::Variable.

Référencé par Arcane::ItemGroupPartialVariableObserver::executeExtend(), Arcane::ItemGroupPartialVariableObserver::executeInvalidate(), Arcane::ItemGroupPartialVariableObserver::executeReduce(), et Arcane::mesh::DynamicMesh::updateGhostLayerFromParent().

◆ serialize() [1/2]

virtual void Arcane::IVariable::serialize ( ISerializer sbuffer,
IDataOperation operation = 0 
)
pure virtual

Sérialize la variable.

L'opération opération n'est significative qu'en lecture (ISerializer::ModeGet)

Implémenté dans Arcane::Variable.

◆ serialize() [2/2]

virtual void Arcane::IVariable::serialize ( ISerializer sbuffer,
Int32ConstArrayView  ids,
IDataOperation operation = 0 
)
pure virtual

Sérialize la variable pour les identifiants ids.

La sérialisation dépend de la dimension de la variable. Pour les variables scalaires (dimension=0), rien n'est fait. Pour les variables tableaux ou du maillage, ids correspond a un tableau d'indirection de la première dimension.

L'opération opération n'est significative qu'en lecture (ISerializer::ModeGet)

Implémenté dans Arcane::Variable.

◆ setAllocationInfo()

virtual void Arcane::IVariable::setAllocationInfo ( const DataAllocationInfo v)
pure virtual

Positionne les informations sur l'allocation.

Implémenté dans Arcane::Variable.

Référencé par Arcane::MeshUtils::markMeshConnectivitiesAsMostlyReadOnly().

◆ setComputeFunction()

virtual void Arcane::IVariable::setComputeFunction ( IVariableComputeFunction v)
pure virtual

Positionne la fonction de recalcul de la variable.

La fonction spécifiée v doit être allouée via l'opérateur new. Si une fonction de recalcule existait déjà, elle est détruite (via l'opérateur delete) et remplacée par celle-ci.

Implémenté dans Arcane::Variable.

◆ setIsSynchronized() [1/2]

virtual void Arcane::IVariable::setIsSynchronized ( )
pure virtual

Indique que la variable est synchronisée.

Cette opération est collective.

Implémenté dans Arcane::Array2VariableT< T >, Arcane::VariableArrayT< T >, et Arcane::VariableScalarT< T >.

◆ setIsSynchronized() [2/2]

virtual void Arcane::IVariable::setIsSynchronized ( const ItemGroup item_group)
pure virtual

Indique que la variable est synchronisée sur le group item_group.

Cette opération est collective.

Implémenté dans Arcane::Array2VariableT< T >, Arcane::VariableArrayT< T >, et Arcane::VariableScalarT< T >.

◆ setUpToDate()

virtual void Arcane::IVariable::setUpToDate ( )
pure virtual

Indique que la variable vient d'être mise à jour.

Pour une gestion correcte des dépendances, il faut que cette propriété soit appelée toutes les fois où la mise à jour d'une variable a été effectuée.

Implémenté dans Arcane::Variable.

Référencé par Arcane::VariableRef::setUpToDate().

◆ setUsed()

virtual void Arcane::IVariable::setUsed ( bool  v)
pure virtual

Positionne l'état d'utilisation de la variable.

Si \v est faux, la variable devient inutilisable et toutes les ressources associées sont libérées.

Si \v est vrai, la variable est considérée comme utilisée et s'il s'agit d'une variable du maillage et que setItemGroup() n'a pas été appelé, la variable est allouée sur le groupe de toutes les entités.

Implémenté dans Arcane::Variable.

Référencé par Arcane::VariableMng::detachMeshVariables().

◆ shrinkMemory()

virtual void Arcane::IVariable::shrinkMemory ( )
pure virtual

Libère l'éventuelle mémoire supplémentaire allouée pour les données.

Cette méthode n'est utilie que pour les variables non scalaires

Implémenté dans Arcane::Array2VariableT< T >, Arcane::VariableArrayT< T >, et Arcane::VariableScalarT< T >.

Référencé par Arcane::ItemGroupImpl::shrinkMemory().

◆ subDomain()

virtual ISubDomain * Arcane::IVariable::subDomain ( )
pure virtual

Sous-domaine associé à la variable (TODO rendre obsolète fin 2023)

Implémenté dans Arcane::Variable.

Référencé par Arcane::VariableRef::subDomain().

◆ synchronize() [1/2]

virtual void Arcane::IVariable::synchronize ( )
pure virtual

Synchronise la variable.

La synchronisation ne peut se faire que sur les variables du maillage.

Implémenté dans Arcane::Array2VariableT< T >, Arcane::VariableArrayT< T >, et Arcane::VariableScalarT< T >.

◆ synchronize() [2/2]

void Arcane::IVariable::synchronize ( Int32ConstArrayView  local_ids)
virtual

Synchronise la variable sur une liste d'entités.

La synchronisation ne peut se faire que sur les variables du maillage. Seules les entités listées dans local_ids seront synchronisées. Attention : une entité présente dans cette liste sur un sous-domaine doit être présente dans cette liste pour tout autre sous-domaine qui possède cette entité.

Réimplémentée dans Arcane::Array2VariableT< T >, Arcane::VariableArrayT< T >, et Arcane::VariableScalarT< T >.

Définition à la ligne 284 du fichier InterfaceImpl.cc.

Références ARCANE_THROW.

◆ syncReferences()

virtual void Arcane::IVariable::syncReferences ( )
pure virtual

Synchronise les références.

Synchronise les valeurs des références (VariableRef) à cette variable avec la valeur actuelle de la variable. Cette méthode est appelé automatiquement lorsqu'une variable scalaire est modifiée ou le nombre d'éléments d'une variable tableau change.

Implémenté dans Arcane::Variable.

◆ tagValue()

virtual String Arcane::IVariable::tagValue ( const String tagname)
pure virtual

Valeur du tag tagname. La chaîne est nulle si le tag n'existe pas.

Implémenté dans Arcane::Variable.

Référencé par Arcane::VariableRef::tagValue().

◆ update()

virtual void Arcane::IVariable::update ( )
pure virtual

Recalcule la variable si nécessaire.

Par le mécanisme de dépendances, cette opération est appelée récursivement sur toutes les variables dont dépend l'instance. La fonction de recalcul computeFunction() est ensuite appelée s'il s'avère qu'une des variables dont elle dépend a été modifiée plus récemment.

Précondition
computeFunction() != 0

Implémenté dans Arcane::Variable.

Référencé par Arcane::VariableRef::update().

◆ variableMng()

virtual IVariableMng * Arcane::IVariable::variableMng ( ) const
pure virtual

Gestionnaire de variable associé à la variable.

Implémenté dans Arcane::Variable.

Référencé par Arcane::VariableRef::variableMng().

◆ write()

virtual ARCANE_DEPRECATED_2018 void Arcane::IVariable::write ( IDataWriter writer)
pure virtual

Sauve la variable.

Obsolète:
A remplacer par le code suivant:
var->notifyBeginWrite();
writer->write(var,var->data());

Implémenté dans Arcane::Variable.

◆ writeObservable()

virtual IObservable * Arcane::IVariable::writeObservable ( )
pure virtual

Observable en écriture.

Les observateurs enregistrés dans cet observable sont appelés avant d'écrire la variable (opération write()).

Implémenté dans Arcane::Variable.

Documentation des fonctions amies et associées

◆ VariableMng

Définition à la ligne 164 du fichier IVariable.h.


La documentation de cette classe a été générée à partir des fichiers suivants :