Arcane  v3.16.0.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
HyodaArc.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 * Hyoda.h (C) 2000-2012 *
9 * *
10 * Header du debugger hybrid. *
11 *****************************************************************************/
12#ifndef ARCANE_HYODA_ARC_H
13#define ARCANE_HYODA_ARC_H
14
15
16/******************************************************************************
17 * DEFINES
18 * Commandes (Real) codes sur lesquelles on reduce::max pour récupérer ce qu'il faut faire
19 *****************************************************************************/
20#define HYODA_HOOK_BREAK 1.
21#define HYODA_HOOK_CONFIGURE 2.
22
23// Nombre max de noeuds d'une maille
24#define HYODA_CELL_NB_NODES_MAX 12
25
26
27/*---------------------------------------------------------------------------*/
28/*---------------------------------------------------------------------------*/
29
30ARCANE_BEGIN_NAMESPACE
31
32/*---------------------------------------------------------------------------*/
33/*---------------------------------------------------------------------------*/
34
35
36/******************************************************************************
37 * Structure de dialogue entre Arcane et Hyoda-GUI
38 *****************************************************************************/
40 Int64 global_iteration;
41 Real global_time;
42 Real global_deltat;
43 Real global_cpu_time;
44 Int64 global_mesh_nb_cells;
45 Int64 target_cell_uid;
46 Int64 target_cell_rank;
47 Int64 target_cell_nb_nodes;
48 Real coords[HYODA_CELL_NB_NODES_MAX][3];
49};
50
51
52class HyodaIceT;
53class HyodaMatrix;
54class HyodaTcp;
55class HyodaPapi;
56
57/******************************************************************************
58 * Hyoda CLASS
59 *****************************************************************************/
60class Hyoda: public AbstractService,
62public:
63 Hyoda(const ServiceBuildInfo& sbi);
64 virtual ~Hyoda();
65 virtual Real loopbreak(ISubDomain*);
66 virtual Real softbreak(ISubDomain*,const char*,const char*,int);
67 virtual void hook(ISubDomain*,Real);
68 virtual void ijval(int,int,int*,int*,double*);
69 IApplication* application(){return m_application;}
70 HyodaIceT *meshIceT(void){return m_ice_mesh;}
71 //HyodaMatrix *matrixIceT(void){return m_ice_matrix;}
72private:
73 void fetch_and_fill_data_to_be_dumped(ISubDomain*, UniqueIdType);
74 void broadcast_configuration(ISubDomain*, UniqueIdType);
75private:
76 LocalIdType targetCellIdToLocalId(ISubDomain *sd, UniqueIdType target_cell_id);
77 //void icetHyodaInit(void);
78private:
83 bool m_init_configured;
103 struct hyoda_shared_data *m_data;
104private:
105 HyodaIceT *m_ice_mesh;
106 HyodaMatrix *m_ice_matrix;
107 HyodaTcp *m_tcp;
108 HyodaPapi *m_papi;
109 bool m_matrix_render;
110};
111
112
113/*---------------------------------------------------------------------------*/
114/*---------------------------------------------------------------------------*/
115
116ARCANE_END_NAMESPACE
117
118/*---------------------------------------------------------------------------*/
119/*---------------------------------------------------------------------------*/
120
121#endif // ARCANE_HYODA_ARC_H
AbstractService(const ServiceBuildInfo &)
Constructeur à partir d'un ServiceBuildInfo.
UniqueIdType m_target_cell_uid
Variable dans laquelle QHyoda renseigne l'UID de la maille visée.
Definition HyodaArc.h:97
Integer m_qhyoda_width_height
Variable dans laquelle QHyoda renseigne les dimensions à utiliser pour l'image.
Definition HyodaArc.h:95
UInt32 m_qhyoda_adrs
Variable dans laquelle QHyoda renseigne l'adresse de la machine.
Definition HyodaArc.h:89
IApplication * m_application
structure à remplir avant que Hyoda ne la dump pour l'exploiter
Definition HyodaArc.h:101
bool m_configured
Variable indiquant si Hyoda et Arcane se sont configurés.
Definition HyodaArc.h:82
bool m_break_at_startup
Variable indiquant le mode 'single' et qu'il faut donc s'arrêter tout de suite.
Definition HyodaArc.h:80
char ** m_variables_names
Variable pointant vers l'application pour éventuellement aller chercher les arguments.
Definition HyodaArc.h:99
Integer m_gdbserver_rank
Rang sur lequel est accroché Hyoda.
Definition HyodaArc.h:85
Integer m_qhyoda_pyld
Variable dans laquelle QHyoda renseigne le payload à utiliser.
Definition HyodaArc.h:93
Real m_qhyoda_hooked
Variable dans laquelle QHyoda annonce s'il est ou pas accroché
Definition HyodaArc.h:87
Integer m_qhyoda_port
Variable dans laquelle QHyoda renseigne le numéro de port à utiliser.
Definition HyodaArc.h:91
Interface de l'application.
Interface d'un service de debugger hybrid.
Interface du gestionnaire d'un sous-domaine.
Definition ISubDomain.h:74
Structure contenant les informations pour créer un service.
std::uint32_t UInt32
Type entier non signé sur 32 bits.
Int64 UniqueIdType
Type des entiers utilisés pour stocker les identifiants uniques (globaux) des entités.
std::int64_t Int64
Type entier signé sur 64 bits.
Int32 Integer
Type représentant un entier.
double Real
Type représentant un réel.