Arcane  v3.14.10.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
OutputChecker.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2022 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/* OutputChecker.h (C) 2000-2010 */
9/* */
10/* Sorties basées sur un temps (physique ou CPU) ou un nombre d'itération. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_OUTPUTCHECKER_H
13#define ARCANE_OUTPUTCHECKER_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/utils/String.h"
18#include "arcane/VariableTypes.h"
19#include "arcane/CaseOptions.h"
20
21/*---------------------------------------------------------------------------*/
22/*---------------------------------------------------------------------------*/
23
24ARCANE_BEGIN_NAMESPACE
25
26/*---------------------------------------------------------------------------*/
27/*---------------------------------------------------------------------------*/
28
29/*---------------------------------------------------------------------------*/
30/*---------------------------------------------------------------------------*/
31/*!
32 * \brief Gère les sorties basées sur un temps physique, temps CPU ou
33 * un nombre d'itération.
34 *
35 Le temps CPU est exprimé en minutes.
36 */
37class ARCANE_CORE_EXPORT OutputChecker
38{
39 public:
40
41 //! Type de sortie
43 {
44 OutTypeNone, //!< Pas de sorties
45 OutTypeGlobalTime, //!< Sortie basée sur le temps physique
46 OutTypeCPUTime, //!< Sortie basée sur le temps CPU consommé
47 OutTypeIteration //!< Sortie basée sur le nombre d'itérations
48 };
49
50 public:
51
52 OutputChecker(ISubDomain* sd,const String& name);
53
54 public:
55
56 void initialize();
57 void initialize(bool recompute_next_value);
58 bool hasOutput() const { return m_out_type!=OutTypeNone; }
59 bool check(Real old_time,Real current_time,Integer current_iteration,
60 Integer current_cpu_time,const String& from_function=String());
61 void assignGlobalTime(VariableScalarReal* variable,const CaseOptionReal* option);
62 void assignCPUTime(VariableScalarInteger* variable,const CaseOptionInteger* option);
63 void assignIteration(VariableScalarInteger* variable,const CaseOptionInteger* option);
64 Real nextGlobalTime() const;
65 Integer nextIteration() const;
66 Integer nextCPUTime() const;
67
68 private:
69
70 ISubDomain* m_sub_domain;
71 String m_name;
72 eOutType m_out_type;
73 VariableScalarInteger* m_next_iteration; //!< Itération de la prochaine sauvegarde
74 VariableScalarReal* m_next_global_time; //!< Temps physique de la prochaine sauvegarde
75 VariableScalarInteger* m_next_cpu_time; //!< Temps CPU de la prochaine sauvegarde
76 const CaseOptionInteger* m_step_iteration;
77 const CaseOptionReal* m_step_global_time;
78 const CaseOptionInteger* m_step_cpu_time;
79
80 private:
81
82 void _recomputeTypeGlobalTime();
83 void _recomputeTypeCPUTime();
84 void _recomputeTypeIteration();
85};
86
87/*---------------------------------------------------------------------------*/
88/*---------------------------------------------------------------------------*/
89
90ARCANE_END_NAMESPACE
91
92/*---------------------------------------------------------------------------*/
93/*---------------------------------------------------------------------------*/
94
95#endif
96
Interface du gestionnaire d'un sous-domaine.
Definition ISubDomain.h:74
Gère les sorties basées sur un temps physique, temps CPU ou un nombre d'itération.
eOutType
Type de sortie.
@ OutTypeCPUTime
Sortie basée sur le temps CPU consommé
@ OutTypeNone
Pas de sorties.
@ OutTypeGlobalTime
Sortie basée sur le temps physique.
Chaîne de caractères unicode.