Classe pour effectuer des comparaisons entre les variables. Plus de détails...
#include <arcane/core/VariableComparer.h>
Fonctions membres publiques | |
VariableComparerArgs | buildForCheckIfSync () |
Créé une comparaison pour vérifie qu'une variable est bien synchronisée. | |
VariableComparerArgs | buildForCheckIfSameOnAllReplica () |
Créé une comparaison pour vérifie qu'une variable est identique sur tous les réplicas. | |
VariableComparerArgs | buildForCheckIfSame (IDataReader *data_reader) |
Créé une comparaison pour vérifie qu'une variable est identique à une valeur de référence. | |
VariableComparerResults | apply (IVariable *var, const VariableComparerArgs &compare_args) |
Applique la comparaison compare_args à la variable var. | |
Classe pour effectuer des comparaisons entre les variables.
Pour utiliser cette classe, il faut créer une instance de VariableComparerArgs via une des méthodes suivantes:
Il faut ensuite appeler la méthode apply() avec l'instance créée pour chaque variable pour laquelle on souhaite faire la comparaison.
Définition à la ligne 141 du fichier VariableComparer.h.
VariableComparerResults Arcane::VariableComparer::apply | ( | IVariable * | var, |
const VariableComparerArgs & | compare_args ) |
Applique la comparaison compare_args à la variable var.
Définition à la ligne 63 du fichier VariableComparer.cc.
Références Arcane::IVariable::_internalApi(), et ARCANE_CHECK_POINTER.
VariableComparerArgs Arcane::VariableComparer::buildForCheckIfSame | ( | IDataReader * | data_reader | ) |
Créé une comparaison pour vérifie qu'une variable est identique à une valeur de référence.
Cette opération vérifie que les valeurs de la variable sont identiques à une valeur de référence qui sera lue à partir du lecteur data_reader.
Il est possible d'appeler sur l'instance retournée les méthodes VariableComparerArgs::setMaxPrint(), VariableComparerArgs::setCompareGhost() ou VariableComparerArgs::setComputeDifferenceMethod() pour modifier le comportement.
Il est ensuite possible d'appeler la méthode apply() sur l'instance retournée pour effectuer les comparaisons sur une variable.
Définition à la ligne 50 du fichier VariableComparer.cc.
Références ARCANE_CHECK_POINTER, et Arcane::Same.
VariableComparerArgs Arcane::VariableComparer::buildForCheckIfSameOnAllReplica | ( | ) |
Créé une comparaison pour vérifie qu'une variable est identique 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é.
L'utilisation de apply() pour les comparaisons de ce type est une méthode collective sur le replica de la variable passée en argument. Il ne faut donc l'appeler que si la variable existe sur tous les sous-domaines sinon cela provoque un blocage.
Cette comparaison ne fonctionne que pour les variables sur les types numériques. Dans ce cas, elle renvoie une exception de type NotSupportedException.
Il est possible d'appeler sur l'instance retournée les méthodes VariableComparerArgs::setMaxPrint() ou VariableComparerArgs::setComputeDifferenceMethod() pour modifier le comportement.
Définition à la ligne 39 du fichier VariableComparer.cc.
Références Arcane::SameOnAllReplica.
VariableComparerArgs Arcane::VariableComparer::buildForCheckIfSync | ( | ) |
Créé une comparaison pour vérifie qu'une 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.
Il est possible d'appeler sur l'instance retournée les méthodes VariableComparerArgs::setMaxPrint(), VariableComparerArgs::setCompareGhost() ou VariableComparerArgs::setComputeDifferenceMethod() pour modifier le comportement.
Définition à la ligne 28 du fichier VariableComparer.cc.
Références Arcane::Sync.