Arcane  v3.14.10.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
MeshTimeHistoryAdder.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2024 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/* MeshTimeHistoryAdder.h (C) 2000-2024 */
9/* */
10/* Classe permettant d'ajouter un historique de valeur lié à un maillage. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_CORE_MESHTIMEHISTORYADDER_H
13#define ARCANE_CORE_MESHTIMEHISTORYADDER_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/core/ITimeHistoryAdder.h"
18#include "arcane/core/IParallelMng.h"
19#include "arcane/core/MeshHandle.h"
20
21/*---------------------------------------------------------------------------*/
22/*---------------------------------------------------------------------------*/
23
24namespace Arcane
25{
26
27/*---------------------------------------------------------------------------*/
28/*---------------------------------------------------------------------------*/
29
30/*!
31 * \brief Classe permettant d'ajouter une ou plusieurs valeurs à un
32 * historique de valeurs.
33 *
34 * Cette classe enregistrera les courbes avec comme support un maillage.
35 * C'est-à-dire que les courbes seront liées à un maillage, en plus d'être
36 * liées au domaine complet ou au sous-domaine demandé.
37 * Si le lien au maillage n'est pas désiré, la classe GlobalTimeHistoryAdder
38 * peut être plus intéressante.
39 *
40 * Pour un nom d'historique donné, il peut y avoir qu'une courbe de une
41 * ou plusieurs valeurs par maillage et par sous-domaine (et une globale à
42 * tous les sous-domaines).
43 *
44 * Exemple : plusieurs courbes de moyennes des pressions (appelons-les
45 * "avg_pressure"), deux sous-domaines (0 et 1) et deux maillages (mesh0 et mesh1).
46 * Une valeur par itération.
47 * - Une courbe "avg_pressure" liée au sous-domaine 0 et au maillage 0. Chaque
48 * valeur est la moyenne des pressions de chaque maille du maillage 0 et
49 * du sous-domaine 0.
50 * - Une courbe "avg_pressure" liée au sous-domaine 0 et au maillage 1. Chaque
51 * valeur est la moyenne des pressions de chaque maille du maillage 1 et
52 * du sous-domaine 0.
53 * - Une courbe "avg_pressure" liée au sous-domaine 1 et au maillage 0. Chaque
54 * valeur est la moyenne des pressions de chaque maille du maillage 0 et
55 * du sous-domaine 1.
56 * - Une courbe "avg_pressure" liée au sous-domaine 1 et au maillage 1. Chaque
57 * valeur est la moyenne des pressions de chaque maille du maillage 1 et
58 * du sous-domaine 1.
59 * - Une courbe "avg_pressure" liée au domaine complet et au maillage 0.
60 * Chaque valeur est la moyenne des pressions du maillage 0 de chaque
61 * sous-domaine.
62 * - Une courbe "avg_pressure" liée au domaine complet et au maillage 1.
63 * Chaque valeur est la moyenne des pressions du maillage 1 de chaque
64 * sous-domaine.
65 *
66 * On peut remarquer qu'il est possible d'avoir plusieurs courbes
67 * indépendantes avec le même nom mais liée à des maillages différents et à
68 * des sous-domaines différents (+1 courbe globale). Et il est important de
69 * souligner que ce même nom peut être aussi utilisé avec les courbes de
70 * GlobalTimeHistoryAdder indépendement, donc l'exemple ci-dessus peut être
71 * complémentaire avec celui donné dans la description de GlobalTimeHistoryAdder !
72 * (donc possiblement 9 courbes indépendantes mais de même nom !)
73 */
74class ARCANE_CORE_EXPORT MeshTimeHistoryAdder
75: public ITimeHistoryAdder
76{
77 public:
78
79 /*!
80 * \brief Constructeur.
81 *
82 * \param time_history_mng Un pointeur vers une instance de ITimeHistoryMng.
83 * \param mesh_handle Le maillage à lier aux courbes.
84 */
85 MeshTimeHistoryAdder(ITimeHistoryMng* time_history_mng, const MeshHandle& mesh_handle);
86 ~MeshTimeHistoryAdder() override = default;
87
88 public:
89
90 void addValue(const TimeHistoryAddValueArg& thp, Real value) override;
91 void addValue(const TimeHistoryAddValueArg& thp, Int32 value) override;
92 void addValue(const TimeHistoryAddValueArg& thp, Int64 value) override;
93 void addValue(const TimeHistoryAddValueArg& thp, RealConstArrayView values) override;
94 void addValue(const TimeHistoryAddValueArg& thp, Int32ConstArrayView values) override;
95 void addValue(const TimeHistoryAddValueArg& thp, Int64ConstArrayView values) override;
96
97 private:
98
99 ITimeHistoryMng* m_thm;
100 MeshHandle m_mesh_handle;
101};
102
103/*---------------------------------------------------------------------------*/
104/*---------------------------------------------------------------------------*/
105
106} // End namespace Arcane
107
108/*---------------------------------------------------------------------------*/
109/*---------------------------------------------------------------------------*/
110
111#endif
Interface de classe permettant d'ajouter une ou plusieurs valeurs à un historique de valeurs.
Classe gérant un historique de valeurs.
Handle sur un maillage.
Definition MeshHandle.h:47
Classe permettant d'ajouter une ou plusieurs valeurs à un historique de valeurs.
Vue constante d'un tableau de type T.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-