Instance d'une variable. Plus de détails...
#include <arcane/core/Variable.h>
Fonctions membres publiques | |
~Variable () override | |
Libère les ressources. | |
ISubDomain * | subDomain () override |
Sous-domaine associé à la variable (TODO rendre obsolète fin 2023) | |
IVariableMng * | variableMng () 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. | |
VariableRef * | firstReference () const override |
Première réference (ou null) sur cette variable. | |
Integer | nbReference () const override |
Nombre de références sur cette variable. | |
VariableMetaData * | createMetaData () const override |
Créé une instance contenant les meta-données de la variable. | |
Ref< VariableMetaData > | createMetaDataRef () const override |
Créé une instance contenant les meta-données de la variable. | |
void | syncReferences () override |
Synchronise les références. | |
IMesh * | mesh () 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é. | |
IItemFamily * | itemFamily () 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. | |
IDataFactoryMng * | dataFactoryMng () 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. | |
IObservable * | writeObservable () override |
Observable en écriture. | |
IObservable * | readObservable () override |
Observable en lecture. | |
IObservable * | onSizeChangedObservable () 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. | |
IVariableComputeFunction * | computeFunction () 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. | |
IMemoryAccessTrace * | memoryAccessTrace () 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. | |
TraceAccessor & | operator= (const TraceAccessor &rhs) |
Opérateur de recopie. | |
virtual | ~TraceAccessor () |
Libère les ressources. | |
ITraceMng * | traceMng () 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 IData * | data ()=0 |
Données associées à la variable. | |
virtual const IData * | data () 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) | |
Variable & | operator= (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 | |
VariablePrivate * | m_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. | |
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.
Une variable est caractérisée par:
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().
Cette classe ne doit pas être copiée.
Définition à la ligne 76 du fichier Variable.h.
|
protected |
Créé une variable lié à la référence v.
Définition à la ligne 331 du fichier Variable.cc.
|
override |
|
private |
Définition à la ligne 995 du fichier Variable.cc.
|
private |
Définition à la ligne 1045 du fichier Variable.cc.
|
private |
Définition à la ligne 428 du fichier Variable.cc.
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.
|
private |
Définition à la ligne 714 du fichier Variable.cc.
|
private |
Définition à la ligne 352 du fichier Variable.cc.
|
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.
|
overridevirtual |
API interne à Arcane.
Implémente Arcane::IVariable.
Définition à la ligne 1385 du fichier Variable.cc.
Références m_p.
|
private |
Définition à la ligne 665 du fichier Variable.cc.
|
protected |
Définition à la ligne 942 du fichier Variable.cc.
Positionne la donnée.
Si data est nul, une erreur fatale est envoyée
Définition à la ligne 862 du fichier Variable.cc.
Références ARCANE_FATAL, Arcane::IVariable::data(), Arcane::VariableInfo::dataType(), Arcane::VariableInfo::dimension(), Arcane::VariableInfo::fullName(), Arcane::VariablePrivate::m_data, Arcane::VariablePrivate::m_infos, m_p, et Arcane::VariableInfo::multiTag().
Référencé par Arcane::Array2VariableT< T >::Array2VariableT(), Arcane::VariableArrayT< T >::VariableArrayT(), et Arcane::VariableScalarT< T >::VariableScalarT().
Définition à la ligne 895 du fichier Variable.cc.
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().
|
protected |
Définition à la ligne 1355 du fichier Variable.cc.
|
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.
|
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.
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.
|
overridevirtual |
Ajoute une référence à cette 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.
|
overridevirtual |
Informations sur l'allocation.
Implémente Arcane::IVariable.
Définition à la ligne 1376 du fichier Variable.cc.
Références Arcane::IVariable::data().
|
overridevirtual |
|
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.
max_print | nombre 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. |
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().
|
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é.
max_print | nombre 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. |
Implémente Arcane::IVariable.
Définition à la ligne 763 du fichier Variable.cc.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
overridevirtual |
Dimension de la variable.
Les valeurs possibles sont les suivantes:
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.
|
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.
|
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().
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.
|
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.
group_name | groupe. Il doit correspondre à un groupe existant du type de la variable (par exemple CellGroup pour une variable au maille). |
value | valeur d'initialisation. La chaîne doit pouvoir être convertie en le type de la variable. |
true | en cas d'erreur ou si la variable n'est pas une variable du maillage. |
false | si 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.
|
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().
|
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.
|
finalvirtual |
Famille d'entité associée.
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.
|
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.
|
finalvirtual |
Groupe du maillage associé.
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().
|
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.
|
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:
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().
|
inlineoverridevirtual |
Implémente Arcane::IVariable.
Définition à la ligne 198 du fichier Variable.h.
|
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().
|
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.
|
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().
|
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.
|
overridevirtual |
Indique si la variable est un tableau à taille multiple.
Cette valeur n'est utile que pour les tableaux 2D ou plus.
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().
|
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.
|
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.
|
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().
|
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().
|
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.
|
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().
|
overridevirtual |
Implémente Arcane::IVariable.
Définition à la ligne 528 du fichier Variable.cc.
Références m_p, Arcane::VariablePrivate::m_property, Arcane::IVariable::PExecutionDepend, Arcane::IVariable::PNoDump, Arcane::IVariable::PNoExchange, Arcane::IVariable::PNoNeedSync, Arcane::IVariable::PNoReplicaSync, Arcane::IVariable::PNoRestore, Arcane::IVariable::PPersistant, Arcane::IVariable::PPrivate, property(), Arcane::IVariable::PSubDomainDepend, et Arcane::IVariable::PTemporary.
Référencé par property(), et removeVariableRef().
|
overridevirtual |
Relit la variable.
Implémente Arcane::IVariable.
Définition à la ligne 1299 du fichier Variable.cc.
Références Arcane::IVariable::data(), notifyEndRead(), et Arcane::IDataReader::read().
|
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().
Supprime var de la liste des dépendances.
Implémente Arcane::IVariable.
Définition à la ligne 1196 du fichier Variable.cc.
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.
|
overridevirtual |
Supprime une référence à 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().
|
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().
|
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().
|
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().
|
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().
|
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().
|
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.
|
inlineoverridevirtual |
Implémente Arcane::IVariable.
Définition à la ligne 121 du fichier Variable.h.
|
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().
Positionne l'état d'utilisation de la variable.
Implémente Arcane::IVariable.
Définition à la ligne 615 du fichier Variable.cc.
Références Arcane::DIP_Legacy, Arcane::getGlobalDataInitialisationPolicy(), Arcane::IK_Unknown, itemKind(), Arcane::VariablePrivate::m_data, Arcane::VariablePrivate::m_has_valid_data, Arcane::VariablePrivate::m_is_used, Arcane::VariablePrivate::m_item_group, m_p, Arcane::ItemGroup::null(), resize(), et resizeFromGroup().
|
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().
|
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().
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.
|
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.
Implémente Arcane::IVariable.
Définition à la ligne 1105 du fichier Variable.cc.
Références update().
Référencé par update().
|
overridevirtual |
Implémente Arcane::IVariable.
Définition à la ligne 1114 du fichier Variable.cc.
|
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().
|
overridevirtual |
Sauve la variable.
Implémente Arcane::IVariable.
Définition à la ligne 1309 du fichier Variable.cc.
Références Arcane::IVariable::data(), et notifyBeginWrite().
|
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().
|
friend |
Définition à la ligne 229 du fichier Variable.h.
|
private |
Implémentation.
Définition à la ligne 234 du fichier Variable.h.
Référencé par _checkSwapIsValid(), _hasValidData(), _internalApi(), _setData(), _setValidData(), addDepend(), addDepend(), addTag(), addVariableRef(), computeFunction(), dataFactoryMng(), dataType(), dependInfos(), dimension(), firstReference(), fullName(), hasTag(), isPartial(), isUsed(), itemFamily(), itemFamilyName(), itemGroup(), itemGroupName(), itemKind(), mesh(), meshHandle(), meshName(), modifiedTime(), multiTag(), name(), nbReference(), notifyReferencePropertyChanged(), onSizeChangedObservable(), property(), readObservable(), removeTag(), removeVariableRef(), resizeFromGroup(), serialize(), serialize(), setComputeFunction(), setUpToDate(), setUsed(), subDomain(), tagValue(), variableMng(), writeObservable(), et ~Variable().