Arcane  v4.1.5.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
IPostProcessorWriter.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2026 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/* IPostProcessorWriter.h (C) 2000-2026 */
9/* */
10/* Interface d'un écrivain pour les informations de post-traitement. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_CORE_IPOSTPROCESSORWRITER_H
13#define ARCANE_CORE_IPOSTPROCESSORWRITER_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
18#include "arcane/core/IService.h"
19
20/*---------------------------------------------------------------------------*/
21/*---------------------------------------------------------------------------*/
22
23namespace Arcane
24{
25
26/*---------------------------------------------------------------------------*/
27/*---------------------------------------------------------------------------*/
28
29class ICaseOptionList;
30class IDataWriter;
31class IMesh;
32
33/*---------------------------------------------------------------------------*/
34/*---------------------------------------------------------------------------*/
35/*!
36 * \ingroup IO
37 * \brief Interface d'un écrivain pour les informations de post-traitement.
38 *
39 * L'instance doit retourner un IDataWriter (via dataWriter()) pour
40 * gérer l'écriture.
41 *
42 * L'appelant doit positionner les champs de l'instant et lancer
43 * L'écriture via l'appel IVariableMng::writePostProcessing(). Par exemple
44 * \code
45 * IPostProcessorWriter* pp = ...;
46 * pp->setBaseDirectoryName(...);
47 * pp->setTimes(...);
48 * pp->setVariables(...);
49 * pp->setGroups(...);
50 * IVariableMng* vm = ...;
51 * vm->writerPostProcessing(pp);
52 * \endcode
53 *
54 * Avant d'écrire les variables, l'instance IVariableMng va appeler
55 * notifyBeginWrite(). Après l'écriture, elle appelle notifyEndWrite().
56 */
57class ARCANE_CORE_EXPORT IPostProcessorWriter
58{
59 public:
60
61 //! Libère les ressources
62 virtual ~IPostProcessorWriter() = default;
63
64 public:
65
66 //! Construit l'instance
67 virtual void build() = 0;
68
69 public:
70
71 /*!
72 * \brief Retourne l'écrivain associé à ce post-processeur.
73 *
74 * Le pointeur retourné n'est valide qu'entre appels
75 * à notifyBeginWrite() et notifyEndWrite().
76 */
77 virtual IDataWriter* dataWriter() = 0;
78
79 /*!
80 * \brief Positionne le nom du répertoire de sortie des fichiers.
81 *
82 * Ce répertoire doit exister.
83 */
84 virtual void setBaseDirectoryName(const String& dirname) = 0;
85
86 //! Nom du répertoire de sortie des fichiers.
88
89 /*!
90 * \brief Positionne le nom du fichier contenant les sorties.
91 *
92 * Tous les écrivains ne supportent pas de changer le nom
93 * de fichier.
94 */
95 virtual void setBaseFileName(const String& filename) = 0;
96
97 //! Nom du fichier contenant les sorties.
98 virtual String baseFileName() = 0;
99
100 /*!
101 * \brief Positionne le maillage.
102 *
103 * Si non surchargée, cette méthode ne fait rien.
104 *
105 * \deprecated Cette méthode est obsolète. Il n'est plus possible
106 * de changer le maillage d'un service implémentant cette interface.
107 * Le choix du maillage se fait lors de la création du service via
108 * ServiceBuilder en passant le maillage souhaité en argument.
109 */
110 ARCANE_DEPRECATED_REASON("Y2022: Choose the mesh during service creation via ServiceBuilder")
111 virtual void setMesh(IMesh* mesh);
112
113 //! Positionne la liste des temps
114 virtual void setTimes(ConstArrayView<Real> times) = 0;
115
116 //! Liste des temps sauvés
117 virtual ConstArrayView<Real> times() = 0;
118
119 //! Positionne la liste des variables à sortir
120 virtual void setVariables(const VariableCollection& variables) = 0;
121
122 //! Liste des variables à sauver
124
125 /*!
126 * \brief Positionne la liste des groupes à sortir.
127 *
128 * La collection passée en argument est clonée.
129 */
130 virtual void setGroups(const ItemGroupCollection& groups) = 0;
131
132 //! Liste des groupes à sauver
134
135 public:
136
137 //! Notifie qu'une sortie va être effectuée avec les paramètres courants.
138 virtual void notifyBeginWrite() = 0;
139
140 //! Notifie qu'une sortie vient d'être effectuée.
141 virtual void notifyEndWrite() = 0;
142
143 public:
144
145 //! Ferme l'écrivain. Après fermeture, il ne peut plus être utilisé
146 virtual void close() = 0;
147};
148
149/*---------------------------------------------------------------------------*/
150/*---------------------------------------------------------------------------*/
151
152} // namespace Arcane
153
154/*---------------------------------------------------------------------------*/
155/*---------------------------------------------------------------------------*/
156
157#endif
Déclarations des types généraux de Arcane.
Vue constante d'un tableau de type T.
Interface d'écriture des données d'une variable.
Definition IDataWriter.h:44
Interface d'un écrivain pour les informations de post-traitement.
virtual void build()=0
Construit l'instance.
virtual ConstArrayView< Real > times()=0
Liste des temps sauvés.
virtual void setGroups(const ItemGroupCollection &groups)=0
Positionne la liste des groupes à sortir.
virtual VariableCollection variables()=0
Liste des variables à sauver.
virtual void setVariables(const VariableCollection &variables)=0
Positionne la liste des variables à sortir.
virtual IDataWriter * dataWriter()=0
Retourne l'écrivain associé à ce post-processeur.
virtual String baseDirectoryName()=0
Nom du répertoire de sortie des fichiers.
virtual void notifyEndWrite()=0
Notifie qu'une sortie vient d'être effectuée.
virtual void setBaseFileName(const String &filename)=0
Positionne le nom du fichier contenant les sorties.
virtual void notifyBeginWrite()=0
Notifie qu'une sortie va être effectuée avec les paramètres courants.
virtual ItemGroupCollection groups()=0
Liste des groupes à sauver.
virtual String baseFileName()=0
Nom du fichier contenant les sorties.
virtual void close()=0
Ferme l'écrivain. Après fermeture, il ne peut plus être utilisé
virtual void setBaseDirectoryName(const String &dirname)=0
Positionne le nom du répertoire de sortie des fichiers.
virtual ~IPostProcessorWriter()=default
Libère les ressources.
virtual void setMesh(IMesh *mesh)
Positionne le maillage.
virtual void setTimes(ConstArrayView< Real > times)=0
Positionne la liste des temps.
Chaîne de caractères unicode.
Collection de variables.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
Collection< ItemGroup > ItemGroupCollection
Collection de groupes d'éléments du maillage.
double Real
Type représentant un réel.