Arcane  v3.16.2.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
VariableComparer.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2025 CEA (www.cea.fr) IFPEN (www.ifpenergiesnouvelles.com)
4// See the top-level COPYRIGHT file for details.
5// SPDX-License-Identifier: Apache-2.0
6//-----------------------------------------------------------------------------
7/*---------------------------------------------------------------------------*/
8/* VariableComparer.h (C) 2000-2025 */
9/* */
10/* Classe pour effectuer des comparaisons entre les variables. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_CORE_VARIABLECOMPARER_H
13#define ARCANE_CORE_VARIABLECOMPARER_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/utils/TraceAccessor.h"
18
20
21/*---------------------------------------------------------------------------*/
22/*---------------------------------------------------------------------------*/
23
24namespace Arcane
25{
26
27/*---------------------------------------------------------------------------*/
28/*---------------------------------------------------------------------------*/
29
40
53
54/*---------------------------------------------------------------------------*/
55/*---------------------------------------------------------------------------*/
59class ARCANE_CORE_EXPORT VariableComparerArgs
60{
61 public:
62
69 void setMaxPrint(Int32 v) { m_max_print = v; }
70 Int32 maxPrint() const { return m_max_print; }
71
81 void setCompareGhost(bool v) { m_is_compare_ghost = v; }
82 bool isCompareGhost() const { return m_is_compare_ghost; }
83
84 void setDataReader(IDataReader* v) { m_data_reader = v; }
85 IDataReader* dataReader() const { return m_data_reader; }
86
87 void setCompareMode(eVariableComparerCompareMode v) { m_compare_mode = v; }
88 eVariableComparerCompareMode compareMode() const { return m_compare_mode; }
89
90 void setComputeDifferenceMethod(eVariableComparerComputeDifferenceMethod v) { m_compute_difference_method = v; }
91 eVariableComparerComputeDifferenceMethod computeDifferenceMethod() const { return m_compute_difference_method; }
92
93 private:
94
95 Int32 m_max_print = 0;
96 bool m_is_compare_ghost = false;
97 IDataReader* m_data_reader = nullptr;
98 eVariableComparerCompareMode m_compare_mode = eVariableComparerCompareMode::Same;
99 eVariableComparerComputeDifferenceMethod m_compute_difference_method = eVariableComparerComputeDifferenceMethod::Relative;
100};
101
102/*---------------------------------------------------------------------------*/
103/*---------------------------------------------------------------------------*/
107class ARCANE_CORE_EXPORT VariableComparerResults
108{
109 public:
110
111 VariableComparerResults() = default;
112 explicit VariableComparerResults(Int32 nb_diff)
113 : m_nb_diff(nb_diff)
114 {}
115
116 public:
117
118 void setNbDifference(Int32 v) { m_nb_diff = v; }
119 Int32 nbDifference() const { return m_nb_diff; }
120
121 public:
122
123 Int32 m_nb_diff = 0;
124};
125
126/*---------------------------------------------------------------------------*/
127/*---------------------------------------------------------------------------*/
141class ARCANE_CORE_EXPORT VariableComparer
142{
143 public:
144
145 VariableComparer() = default;
146
147 public:
148
166
188
189 public:
190
207
208 public:
209
212};
213
214/*---------------------------------------------------------------------------*/
215/*---------------------------------------------------------------------------*/
216
217} // namespace Arcane
218
219/*---------------------------------------------------------------------------*/
220/*---------------------------------------------------------------------------*/
221
222#endif
Déclarations des types généraux de Arcane.
Interface de lecture des données d'une variable.
Definition IDataReader.h:41
Interface d'une variable.
Definition IVariable.h:56
Arguments des méthodes de VariableComparer.
void setMaxPrint(Int32 v)
Positionne le nombre d'erreurs à afficher dans le listing.
void setCompareGhost(bool v)
Indique sur quelles entités on fait la comparaison.
Résultats d'une opération de comparaison.
VariableComparerArgs buildForCheckIfSameOnAllReplica()
Créé une comparaison pour vérifie qu'une variable est identique sur tous les réplicas.
VariableComparerResults apply(IVariable *var, const VariableComparerArgs &compare_args)
Applique la comparaison compare_args à la variable var.
VariableComparerArgs buildForCheckIfSame(IDataReader *data_reader)
Créé une comparaison pour vérifie qu'une variable est identique à une valeur de référence.
VariableComparerArgs buildForCheckIfSync()
Créé une comparaison pour vérifie qu'une variable est bien synchronisée.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
eVariableComparerComputeDifferenceMethod
Méthode utilisée pour calculer la différence entre deux valeurs v1 et v2.
@ LocalNormMax
Utilise (v1-v2) / local_norm_max.
eVariableComparerCompareMode
Méthode de comparaison à utiliser.
@ SameOnAllReplica
Vérifie que les valeurs de la variable sont les même sur tous les replica.
@ Same
Compare avec une référence.
@ Sync
Vérifie que la variable est bien synchronisée.
std::int32_t Int32
Type entier signé sur 32 bits.