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

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

#include <arcane/core/Variable.h>

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

Fonctions membres publiques

 ~Variable () override
 Libère les ressources.
 
ISubDomainsubDomain () override
 Sous-domaine associé à la variable (TODO rendre obsolète fin 2023)
 
IVariableMngvariableMng () const override
 Gestionnaire de variable associé à la variable.
 
String fullName () const final
 Nom complet de la variable (avec le préfixe de la famille)
 
String name () const final
 Nom de la variable.
 
String itemFamilyName () const final
 Nom de la famille associée (nul si aucune).
 
String meshName () const final
 Nom du maillage associé (nul si aucun).
 
String itemGroupName () const final
 Nom du groupe d'entité associée.
 
int property () const override
 
void notifyReferencePropertyChanged () override
 Indique que les propriétés d'une des références à cette variable ont changé (interne)
 
void setUsed (bool v) override
 Positionne l'état d'utilisation de la variable.
 
bool isUsed () const override
 Etat d'utilisation de la variable.
 
bool isPartial () const override
 Indique si la variable est partielle.
 
void setTraceInfo (Integer, eTraceType) override
 
void read (IDataReader *d) override
 
void write (IDataWriter *d) override
 Sauve la variable.
 
void notifyEndRead () override
 Notifie de la modification externe de data().
 
void notifyBeginWrite () override
 Notifie du début d'écriture de data().
 
void addVariableRef (VariableRef *ref) override
 Ajoute une référence à cette variable.
 
void removeVariableRef (VariableRef *ref) override
 Supprime une référence à cette variable.
 
VariableReffirstReference () const override
 Première réference (ou null) sur cette variable.
 
Integer nbReference () const override
 Nombre de références sur cette variable.
 
VariableMetaDatacreateMetaData () const override
 Créé une instance contenant les meta-données de la variable.
 
Ref< VariableMetaDatacreateMetaDataRef () const override
 Créé une instance contenant les meta-données de la variable.
 
void syncReferences () override
 Synchronise les références.
 
IMeshmesh () const final
 Maillage auquel est associé la variable.
 
MeshHandle meshHandle () const final
 Maillage auquel est associé la variable.
 
ItemGroup itemGroup () const final
 Groupe du maillage associé.
 
IItemFamilyitemFamily () const final
 Famille d'entité associée.
 
eItemKind itemKind () const override
 Type des entités du maillage sur lequel repose la variable.
 
Integer dimension () const override
 Dimension de la variable.
 
Integer multiTag () const override
 Indique si la variable est un tableau à taille multiple.
 
Integer checkIfSync (Integer max_print) override
 Vérifie si la variable est bien synchronisée.
 
Integer checkIfSameOnAllReplica (Integer max_print) override
 Vérifie si la variable a les mêmes valeurs sur tous les réplicas.
 
eDataType dataType () const override
 Type de la donnée gérée par la variable (Real, Integer, ...)
 
bool initialize (const ItemGroup &, const String &) override
 Initialise la variable sur un groupe.
 
IDataFactoryMngdataFactoryMng () const final
 Fabrique de données associées à la variable.
 
void serialize (ISerializer *sbuffer, IDataOperation *operation) override
 
void serialize (ISerializer *sbuffer, Int32ConstArrayView ids, IDataOperation *operation) override
 Sérialize la variable pour les identifiants ids.
 
void resize (Integer n) override
 Positionne le nombre d'éléments pour une variable tableau.
 
void resizeFromGroup () override
 Positionne le nombre d'éléments pour une variable du maillage.
 
void setAllocationInfo (const DataAllocationInfo &v) override
 Positionne les informations sur l'allocation.
 
DataAllocationInfo allocationInfo () const override
 Informations sur l'allocation.
 
IObservablewriteObservable () override
 Observable en écriture.
 
IObservablereadObservable () override
 Observable en lecture.
 
IObservableonSizeChangedObservable () override
 Observable en redimensionnement.
 
void addTag (const String &tagname, const String &tagvalue) override
 Ajoute le tag tagname avev la valeur tagvalue.
 
void removeTag (const String &tagname) override
 Supprime le tag tagname.
 
bool hasTag (const String &tagname) override
 true si la variable possède le tag tagname
 
String tagValue (const String &tagname) override
 Valeur du tag tagname. La chaîne est nulle si le tag n'existe pas.
 
void update () override
 Recalcule la variable si nécessaire.
 
void setUpToDate () override
 Indique que la variable vient d'être mise à jour.
 
Int64 modifiedTime () override
 Temps auquel la variable a été mise à jour.
 
void addDepend (IVariable *var, eDependType dt) override
 Ajoute var à la liste des dépendances.
 
void addDepend (IVariable *var, eDependType dt, const TraceInfo &tinfo) override
 Ajoute var à la liste des dépendances avec les infos de trace tinfo.
 
void removeDepend (IVariable *var) override
 Supprime var de la liste des dépendances.
 
void setComputeFunction (IVariableComputeFunction *v) override
 Positionne la fonction de recalcul de la variable.
 
IVariableComputeFunctioncomputeFunction () override
 Fonction utilisée pour mettre à jour la variable.
 
void dependInfos (Array< VariableDependInfo > &infos) override
 Infos de dépendances.
 
void update (Real wanted_time) override
 
void changeGroupIds (Int32ConstArrayView old_to_new_ids) override
 pH : EXPERIMENTAL
 
IVariableInternal_internalApi () override
 API interne à Arcane.
 
IMemoryAccessTracememoryAccessTrace () const override
 
- Fonctions membres publiques hérités de Arccore::TraceAccessor
 TraceAccessor (ITraceMng *m)
 Construit un accesseur via le gestionnaire de trace m.
 
 TraceAccessor (const TraceAccessor &rhs)
 Constructeur par recopie.
 
TraceAccessoroperator= (const TraceAccessor &rhs)
 Opérateur de recopie.
 
virtual ~TraceAccessor ()
 Libère les ressources.
 
ITraceMngtraceMng () const
 Gestionnaire de trace.
 
TraceMessage info () const
 Flot pour un message d'information.
 
TraceMessage pinfo () const
 Flot pour un message d'information en parallèle.
 
TraceMessage info (char category) const
 Flot pour un message d'information d'une catégorie donnée.
 
TraceMessage pinfo (char category) const
 Flot pour un message d'information parallèle d'une catégorie donnée.
 
TraceMessage info (bool v) const
 Flot pour un message d'information.
 
TraceMessage warning () const
 Flot pour un message d'avertissement.
 
TraceMessage pwarning () const
 
TraceMessage error () const
 Flot pour un message d'erreur.
 
TraceMessage perror () const
 
TraceMessage log () const
 Flot pour un message de log.
 
TraceMessage plog () const
 Flot pour un message de log.
 
TraceMessage logdate () const
 Flot pour un message de log précédé de la date.
 
TraceMessage fatal () const
 Flot pour un message d'erreur fatale.
 
TraceMessage pfatal () const
 Flot pour un message d'erreur fatale en parallèle.
 
TraceMessageDbg debug (Trace::eDebugLevel=Trace::Medium) const
 Flot pour un message de debug.
 
Trace::eDebugLevel configDbgLevel () const
 Niveau debug du fichier de configuration.
 
TraceMessage info (Int32 verbose_level) const
 Flot pour un message d'information d'un niveau donné
 
TraceMessage linfo () const
 Flot pour un message d'information avec le niveau d'information local à cette instance.
 
TraceMessage linfo (Int32 relative_level) const
 Flot pour un message d'information avec le niveau d'information local à cette instance.
 
void fatalMessage (const StandaloneTraceMessage &o) const
 
- Fonctions membres publiques hérités de Arcane::IVariable
virtual ~IVariable ()=default
 Libère les ressources.
 
virtual Real allocatedMemory () const =0
 Taille mémoire (en Koctet) utilisée par la variable.
 
virtual Integer nbElement () const =0
 Nombre d'éléments de la variable.
 
virtual void shrinkMemory ()=0
 Libère l'éventuelle mémoire supplémentaire allouée pour les données.
 
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 void synchronize ()=0
 Synchronise la variable.
 
virtual void synchronize (Int32ConstArrayView local_ids)
 Synchronise la variable sur une liste d'entités.
 
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 IDatadata ()=0
 Données associées à la variable.
 
virtual const IDatadata () const =0
 Données associées à la variable.
 
virtual void print (std::ostream &o) const =0
 Imprime les valeurs de la variable sur le flot o.
 
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.
 

Fonctions membres protégées

 Variable (const VariableBuildInfo &v, const VariableInfo &vi)
 Créé une variable lié à la référence v.
 
void _setProperty (int property)
 
void _setData (const Ref< IData > &data)
 Positionne la donnée.
 
void _setValidData (bool valid_data)
 Indique si les données de la variable sont valides.
 
bool _hasValidData () const
 Indique si les données de la variable sont valides.
 
virtual void _internalResize (Integer new_size, Integer nb_additional_element)=0
 
virtual Integer _checkIfSameOnAllReplica (IParallelMng *replica_pm, int max_print)=0
 
void _checkSwapIsValid (Variable *rhs)
 Vérifie qu'il est possible d'échanger les valeurs de l'instance avec celle de rhs.
 
bool _wantShrink () const
 
void _resizeWithReserve (Int32 new_size, Int32 additional_capacity)
 
- Fonctions membres protégées hérités de Arccore::TraceAccessor
void _setLocalVerboseLevel (Int32 v)
 
Int32 _localVerboseLevel () const
 

Fonctions membres privées

 Variable (const Variable &from)=delete
 Constructeur de recopie (ne pas utiliser)
 
Variableoperator= (const Variable &from)=delete
 Opérateur de recopie (ne pas utiliser)
 
void _checkSetItemFamily ()
 
void _checkSetItemGroup ()
 
void _checkSetProperty (VariableRef *)
 
bool _hasReference () const
 
void _removeMeshReference ()
 
String _computeComparisonHashCollective (IData *sorted_data)
 
VariableMetaData_createMetaData () const
 

Attributs privés

VariablePrivatem_p
 Implémentation.
 

Amis

class VariablePrivate
 

Membres hérités additionnels

- Types publics hérités de Arcane::IVariable
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 statiques hérités de Arcane::IVariable
static Int64 incrementModifiedTime ()
 Incrémente le compteur de modification et retourne sa valeur avant modification.
 

Description détaillée

Instance d'une variable.

Cette classe gère les données d'une variable. Cette instance ne doit en principe pas être utilisée par les développeurs de code.

A faire:
expliquer mieux

Une variable est caractérisée par:

  • son nom,
  • son type: réel, entier, tenseur, ...,
  • son genre: scalaire, tableau, grandeur au noeud, grandeur au centre des mailles ...

Une variable qui repose sur un type d'entité du maillage est appelée une variable du maillage.

La variable est généralement utilisée par un module (IModule) via une référence (VariableRef).

Les variables sont persistantes et leur lecture/écriture se fait par les méthodes read() et write().

Avertissement
Cette classe est gérée entièrement par Arcane et les modules qui l'utilisent ne doivent en principe ne l'utiliser que pour récupérer des informations. Les opérations qui modifient cette instance (comme setItemGroup()) ne doivent être utilisé que si le développeur possède une bonne connaissance de leur fonctionnement.

Cette classe ne doit pas être copiée.

Définition à la ligne 76 du fichier Variable.h.

Documentation des constructeurs et destructeur

◆ Variable()

Arcane::Variable::Variable ( const VariableBuildInfo v,
const VariableInfo vi 
)
protected

Créé une variable lié à la référence v.

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

◆ ~Variable()

Arcane::Variable::~Variable ( )
override

Libère les ressources.

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

Références m_p.

Documentation des fonctions membres

◆ _checkSetItemFamily()

void Arcane::Variable::_checkSetItemFamily ( )
private

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

◆ _checkSetItemGroup()

void Arcane::Variable::_checkSetItemGroup ( )
private

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

◆ _checkSetProperty()

void Arcane::Variable::_checkSetProperty ( VariableRef ref)
private

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

◆ _checkSwapIsValid()

void Arcane::Variable::_checkSwapIsValid ( Variable rhs)
protected

Vérifie qu'il est possible d'échanger les valeurs de l'instance avec celle de rhs.

Cette méthode étant appelée par une classe dérivée, on est sur que rhs est du même type C++ que l'instance et donc il n'y a pas besoin de vérifier par exemple que les dimensions ou le type des données sont les mêmes. Pour que l'échange soit valide, il faut que le maillage, la famille et le groupe soit les mêmes. Pour cela, il suffit de vérifier que le groupe est le même.

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

Références ARCANE_FATAL, isPartial(), itemGroup(), Arcane::VariablePrivate::m_is_used, et m_p.

◆ _createMetaData()

VariableMetaData * Arcane::Variable::_createMetaData ( ) const
private

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

◆ _hasReference()

bool Arcane::Variable::_hasReference ( ) const
private

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

◆ _hasValidData()

bool Arcane::Variable::_hasValidData ( ) const
protected

Indique si les données de la variable sont valides.

Les données sont valides à la fin d'un appel à setUsed().

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

Références Arcane::VariablePrivate::m_has_valid_data, et m_p.

◆ _internalApi()

IVariableInternal * Arcane::Variable::_internalApi ( )
overridevirtual

API interne à Arcane.

Implémente Arcane::IVariable.

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

Références m_p.

◆ _removeMeshReference()

void Arcane::Variable::_removeMeshReference ( )
private

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

◆ _resizeWithReserve()

void Arcane::Variable::_resizeWithReserve ( Int32  new_size,
Int32  additional_capacity 
)
protected

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

◆ _setData()

◆ _setProperty()

void Arcane::Variable::_setProperty ( int  property)
protected

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

◆ _setValidData()

void Arcane::Variable::_setValidData ( bool  valid_data)
protected

Indique si les données de la variable sont valides.

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

Références Arcane::VariablePrivate::m_has_valid_data, et m_p.

Référencé par notifyEndRead().

◆ _wantShrink()

bool Arcane::Variable::_wantShrink ( ) const
protected

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

◆ addDepend() [1/2]

void Arcane::Variable::addDepend ( IVariable var,
eDependType  dt 
)
overridevirtual

Ajoute var à la liste des dépendances.

Implémente Arcane::IVariable.

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

Références Arcane::VariablePrivate::m_depends, et m_p.

◆ addDepend() [2/2]

void Arcane::Variable::addDepend ( IVariable var,
eDependType  dt,
const TraceInfo tinfo 
)
overridevirtual

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

Implémente Arcane::IVariable.

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

Références Arcane::VariablePrivate::m_depends, et m_p.

◆ addTag()

void Arcane::Variable::addTag ( const String tagname,
const String tagvalue 
)
overridevirtual

Ajoute le tag tagname avev la valeur tagvalue.

Implémente Arcane::IVariable.

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

Références m_p, et Arcane::VariablePrivate::m_tags.

◆ addVariableRef()

void Arcane::Variable::addVariableRef ( VariableRef var_ref)
overridevirtual

Ajoute une référence à cette variable.

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

Implémente Arcane::IVariable.

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

Références Arcane::VariablePrivate::m_nb_reference, et m_p.

◆ allocationInfo()

DataAllocationInfo Arcane::Variable::allocationInfo ( ) const
overridevirtual

Informations sur l'allocation.

Implémente Arcane::IVariable.

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

Références Arcane::IVariable::data().

◆ changeGroupIds()

void Arcane::Variable::changeGroupIds ( Int32ConstArrayView  old_to_new_ids)
overridevirtual

pH : EXPERIMENTAL

Implémente Arcane::IVariable.

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

◆ checkIfSameOnAllReplica()

Integer Arcane::Variable::checkIfSameOnAllReplica ( Integer  max_print)
overridevirtual

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émente Arcane::IVariable.

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

Références mesh(), Arcane::IMesh::parallelMng(), Arcane::ISubDomain::parallelMng(), Arcane::IParallelMng::replication(), et subDomain().

◆ checkIfSync()

Integer Arcane::Variable::checkIfSync ( Integer  max_print)
overridevirtual

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émente Arcane::IVariable.

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

◆ computeFunction()

IVariableComputeFunction * Arcane::Variable::computeFunction ( )
overridevirtual

Fonction utilisée pour mettre à jour la variable.

Implémente Arcane::IVariable.

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

Références Arcane::VariablePrivate::m_compute_function, et m_p.

◆ createMetaData()

VariableMetaData * Arcane::Variable::createMetaData ( ) const
overridevirtual

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émente Arcane::IVariable.

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

◆ createMetaDataRef()

Ref< VariableMetaData > Arcane::Variable::createMetaDataRef ( ) const
overridevirtual

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

Implémente Arcane::IVariable.

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

◆ dataFactoryMng()

IDataFactoryMng * Arcane::Variable::dataFactoryMng ( ) const
finalvirtual

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

Implémente Arcane::IVariable.

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

Références m_p.

◆ dataType()

eDataType Arcane::Variable::dataType ( ) const
overridevirtual

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

Implémente Arcane::IVariable.

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

Références Arcane::VariableInfo::dataType(), Arcane::VariablePrivate::m_infos, et m_p.

◆ dependInfos()

void Arcane::Variable::dependInfos ( Array< VariableDependInfo > &  infos)
overridevirtual

Infos de dépendances.

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

Implémente Arcane::IVariable.

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

Références Arcane::VariablePrivate::m_depends, et m_p.

◆ dimension()

Integer Arcane::Variable::dimension ( ) const
overridevirtual

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émente Arcane::IVariable.

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

Références Arcane::VariableInfo::dimension(), Arcane::VariablePrivate::m_infos, et m_p.

◆ firstReference()

VariableRef * Arcane::Variable::firstReference ( ) const
overridevirtual

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

Implémente Arcane::IVariable.

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

Références m_p.

◆ fullName()

String Arcane::Variable::fullName ( ) const
finalvirtual

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

Implémente Arcane::IVariable.

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

Références Arcane::VariableInfo::fullName(), Arcane::VariablePrivate::m_infos, et m_p.

Référencé par resizeFromGroup(), serialize(), et serialize().

◆ hasTag()

bool Arcane::Variable::hasTag ( const String tagname)
overridevirtual

true si la variable possède le tag tagname

Implémente Arcane::IVariable.

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

Références m_p, et Arcane::VariablePrivate::m_tags.

◆ initialize()

bool Arcane::Variable::initialize ( const ItemGroup group,
const String value 
)
inlineoverridevirtual

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émente Arcane::IVariable.

Réimplémentée dans Arcane::VariableArrayT< T >.

Définition à la ligne 153 du fichier Variable.h.

◆ isPartial()

bool Arcane::Variable::isPartial ( ) const
overridevirtual

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émente Arcane::IVariable.

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

Références Arcane::VariablePrivate::m_is_partial, et m_p.

Référencé par _checkSwapIsValid().

◆ isUsed()

bool Arcane::Variable::isUsed ( ) const
overridevirtual

Etat d'utilisation de la variable.

Implémente Arcane::IVariable.

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

Références Arcane::VariablePrivate::m_is_used, et m_p.

◆ itemFamily()

IItemFamily * Arcane::Variable::itemFamily ( ) const
finalvirtual

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émente Arcane::IVariable.

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

Références Arcane::VariablePrivate::m_item_family, et m_p.

◆ itemFamilyName()

String Arcane::Variable::itemFamilyName ( ) const
finalvirtual

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

Implémente Arcane::IVariable.

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

Références Arcane::VariableInfo::itemFamilyName(), Arcane::VariablePrivate::m_infos, et m_p.

◆ itemGroup()

ItemGroup Arcane::Variable::itemGroup ( ) const
finalvirtual

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émente Arcane::IVariable.

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

Références Arcane::VariablePrivate::m_item_group, et m_p.

Référencé par _checkSwapIsValid().

◆ itemGroupName()

String Arcane::Variable::itemGroupName ( ) const
finalvirtual

Nom du groupe d'entité associée.

Implémente Arcane::IVariable.

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

Références Arcane::VariableInfo::itemGroupName(), Arcane::VariablePrivate::m_infos, et m_p.

◆ itemKind()

eItemKind Arcane::Variable::itemKind ( ) const
overridevirtual

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émente Arcane::IVariable.

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

Références Arcane::VariableInfo::itemKind(), Arcane::VariablePrivate::m_infos, et m_p.

Référencé par resizeFromGroup(), et setUsed().

◆ memoryAccessTrace()

IMemoryAccessTrace * Arcane::Variable::memoryAccessTrace ( ) const
inlineoverridevirtual

Implémente Arcane::IVariable.

Définition à la ligne 198 du fichier Variable.h.

◆ mesh()

IMesh * Arcane::Variable::mesh ( ) const
finalvirtual

Maillage auquel est associé la variable.

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

Implémente Arcane::IVariable.

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

Références Arcane::MeshHandle::hasMesh(), Arcane::VariablePrivate::m_mesh_handle, m_p, et Arcane::MeshHandle::mesh().

Référencé par checkIfSameOnAllReplica().

◆ meshHandle()

MeshHandle Arcane::Variable::meshHandle ( ) const
finalvirtual

Maillage auquel est associé la variable.

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

Implémente Arcane::IVariable.

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

Références Arcane::VariablePrivate::m_mesh_handle, et m_p.

◆ meshName()

String Arcane::Variable::meshName ( ) const
finalvirtual

Nom du maillage associé (nul si aucun).

Implémente Arcane::IVariable.

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

Références Arcane::VariablePrivate::m_infos, m_p, et Arcane::VariableInfo::meshName().

◆ modifiedTime()

Int64 Arcane::Variable::modifiedTime ( )
overridevirtual

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

Implémente Arcane::IVariable.

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

Références Arcane::VariablePrivate::m_modified_time, et m_p.

◆ multiTag()

Integer Arcane::Variable::multiTag ( ) const
overridevirtual

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émente Arcane::IVariable.

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

Références Arcane::VariablePrivate::m_infos, m_p, et Arcane::VariableInfo::multiTag().

◆ name()

String Arcane::Variable::name ( ) const
finalvirtual

Nom de la variable.

Implémente Arcane::IVariable.

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

Références Arcane::VariableInfo::localName(), Arcane::VariablePrivate::m_infos, et m_p.

◆ nbReference()

Integer Arcane::Variable::nbReference ( ) const
overridevirtual

Nombre de références sur cette variable.

Implémente Arcane::IVariable.

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

Références Arcane::VariablePrivate::m_nb_reference, et m_p.

◆ notifyBeginWrite()

void Arcane::Variable::notifyBeginWrite ( )
overridevirtual

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

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

Implémente Arcane::IVariable.

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

Références Arcane::IObservable::notifyAllObservers(), et writeObservable().

Référencé par write().

◆ notifyEndRead()

void Arcane::Variable::notifyEndRead ( )
overridevirtual

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émente Arcane::IVariable.

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

Références _setValidData(), Arcane::IObservable::notifyAllObservers(), readObservable(), setUpToDate(), et syncReferences().

Référencé par read().

◆ notifyReferencePropertyChanged()

void Arcane::Variable::notifyReferencePropertyChanged ( )
overridevirtual

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

Implémente Arcane::IVariable.

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

Références m_p.

◆ onSizeChangedObservable()

IObservable * Arcane::Variable::onSizeChangedObservable ( )
overridevirtual

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émente Arcane::IVariable.

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

Références Arcane::VariablePrivate::m_on_size_changed_observable, et m_p.

Référencé par syncReferences().

◆ property()

◆ read()

void Arcane::Variable::read ( IDataReader reader)
overridevirtual

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émente Arcane::IVariable.

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

Références Arcane::IVariable::data(), notifyEndRead(), et Arcane::IDataReader::read().

◆ readObservable()

IObservable * Arcane::Variable::readObservable ( )
overridevirtual

Observable en lecture.

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

Implémente Arcane::IVariable.

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

Références m_p, et Arcane::VariablePrivate::m_read_observable.

Référencé par notifyEndRead().

◆ removeDepend()

void Arcane::Variable::removeDepend ( IVariable var)
overridevirtual

Supprime var de la liste des dépendances.

Implémente Arcane::IVariable.

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

◆ removeTag()

void Arcane::Variable::removeTag ( const String tagname)
overridevirtual

Supprime le tag tagname.

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

Implémente Arcane::IVariable.

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

Références m_p, et Arcane::VariablePrivate::m_tags.

◆ removeVariableRef()

void Arcane::Variable::removeVariableRef ( VariableRef var_ref)
overridevirtual

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émente Arcane::IVariable.

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

Références Arcane::VariablePrivate::m_nb_reference, m_p, Arcane::VariableRef::nextReference(), Arcane::IVariable::PPersistant, et property().

◆ resize()

void Arcane::Variable::resize ( Integer  new_size)
overridevirtual

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émente Arcane::IVariable.

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

Référencé par setUsed().

◆ resizeFromGroup()

void Arcane::Variable::resizeFromGroup ( )
overridevirtual

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émente Arcane::IVariable.

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

Références ARCANE_FATAL, Arccore::TraceAccessor::debug(), fullName(), Arccore::Trace::High, Arcane::IK_Unknown, Arcane::ItemGroup::isAllItems(), itemKind(), Arcane::VariablePrivate::m_item_family, Arcane::VariablePrivate::m_item_group, m_p, Arcane::IItemFamily::maxLocalId(), Arcane::ItemGroup::null(), Arcane::ItemGroup::size(), et syncReferences().

Référencé par setUsed().

◆ serialize() [1/2]

void Arcane::Variable::serialize ( ISerializer sbuffer,
IDataOperation operation 
)
overridevirtual

Sérialize la variable.

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

Implémente Arcane::IVariable.

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

Références Arccore::TraceAccessor::debug(), fullName(), Arccore::Trace::High, Arcane::VariablePrivate::m_data, m_p, Arccore::ISerializer::ModeGet, Arcane::VariablePrivate::serializeHashId(), et syncReferences().

◆ serialize() [2/2]

void Arcane::Variable::serialize ( ISerializer sbuffer,
Int32ConstArrayView  ids,
IDataOperation operation 
)
overridevirtual

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émente Arcane::IVariable.

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

Références Arccore::TraceAccessor::debug(), fullName(), Arccore::Trace::High, Arcane::VariablePrivate::m_data, m_p, Arccore::ISerializer::ModeGet, Arcane::VariablePrivate::serializeHashId(), et syncReferences().

◆ setAllocationInfo()

void Arcane::Variable::setAllocationInfo ( const DataAllocationInfo v)
overridevirtual

Positionne les informations sur l'allocation.

Implémente Arcane::IVariable.

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

Références Arcane::IVariable::data(), et syncReferences().

◆ setComputeFunction()

void Arcane::Variable::setComputeFunction ( IVariableComputeFunction v)
overridevirtual

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émente Arcane::IVariable.

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

Références Arcane::VariablePrivate::m_compute_function, et m_p.

◆ setTraceInfo()

void Arcane::Variable::setTraceInfo ( Integer  ,
eTraceType   
)
inlineoverridevirtual

Implémente Arcane::IVariable.

Définition à la ligne 121 du fichier Variable.h.

◆ setUpToDate()

void Arcane::Variable::setUpToDate ( )
overridevirtual

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émente Arcane::IVariable.

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

Références Arcane::ISubDomain::commonVariables(), Arcane::IVariable::incrementModifiedTime(), Arcane::VariablePrivate::m_last_update_time, Arcane::VariablePrivate::m_modified_time, m_p, et subDomain().

Référencé par notifyEndRead().

◆ setUsed()

◆ subDomain()

ISubDomain * Arcane::Variable::subDomain ( )
overridevirtual

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

Implémente Arcane::IVariable.

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

Références m_p.

Référencé par checkIfSameOnAllReplica(), et setUpToDate().

◆ syncReferences()

void Arcane::Variable::syncReferences ( )
overridevirtual

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émente Arcane::IVariable.

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

Références Arcane::IObservable::notifyAllObservers(), et onSizeChangedObservable().

Référencé par Arcane::VariablePrivate::changeAllocator(), notifyEndRead(), resizeFromGroup(), serialize(), serialize(), et setAllocationInfo().

◆ tagValue()

String Arcane::Variable::tagValue ( const String tagname)
overridevirtual

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

Implémente Arcane::IVariable.

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

Références m_p, et Arcane::VariablePrivate::m_tags.

◆ update() [1/2]

void Arcane::Variable::update ( )
overridevirtual

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émente Arcane::IVariable.

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

Références update().

Référencé par update().

◆ update() [2/2]

void Arcane::Variable::update ( Real  wanted_time)
overridevirtual

Implémente Arcane::IVariable.

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

◆ variableMng()

IVariableMng * Arcane::Variable::variableMng ( ) const
overridevirtual

Gestionnaire de variable associé à la variable.

Implémente Arcane::IVariable.

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

Références m_p, et Arcane::ISubDomain::variableMng().

◆ write()

void Arcane::Variable::write ( IDataWriter writer)
overridevirtual

Sauve la variable.

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

Implémente Arcane::IVariable.

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

Références Arcane::IVariable::data(), et notifyBeginWrite().

◆ writeObservable()

IObservable * Arcane::Variable::writeObservable ( )
overridevirtual

Observable en écriture.

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

Implémente Arcane::IVariable.

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

Références m_p, et Arcane::VariablePrivate::m_write_observable.

Référencé par notifyBeginWrite().

Documentation des fonctions amies et associées

◆ VariablePrivate

Définition à la ligne 229 du fichier Variable.h.

Documentation des données membres

◆ m_p


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