English Français

Documentation / Manuel développeur

Modules disponibles

Calibration,  DataServer,  Launcher,  MetaModelOptim,  Modeler,  Optimizer,  ReLauncher,  Reliability,  ReOptimizer,  Sampler,  Sensitivity,  UncertModeler,  XmlProblem,   Uranie / ReLauncher: TMaster.h Source File
Uranie / ReLauncher  v4.10.0
/* @license-end */
TMaster.h
Go to the documentation of this file.
1 // Copyright (C) 2013-2024 CEA/DES
3 //
4 // This program is free software: you can redistribute it and/or modify
5 // it under the terms of the GNU Lesser General Public License as published by
6 // the Free Software Foundation, either version 3 of the License, or any
7 // later version.
8 //
9 // This program is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 // GNU Lesser General Public License for more details.
13 //
14 // You should have received a copy of the GNU Lesser General Public License
15 // along with this program. If not, see <http://www.gnu.org/licenses/>.
18 // $Id$
19 // $Author$
20 // $Date$
21 // $Revision 1.5 $
22 // $State$
24 
32 #ifndef __TMaster__
33 #define __TMaster__
34 
35 #include <vector>
36 //ROOT
37 #include "Rtypes.h"
38 #include "TList.h"
39 
40 // Uranie
41 #include "Relauncher.h"
42 #include "TDataServer.h"
43 #include "TRun.h"
44 #include "TStandardEval.h"
45 #include "TMasterVar.h"
46 
47 namespace URANIE
48 {
49 namespace Relauncher
50 {
51 
52 class TMaster
53 {
54 protected:
55  URANIE::DataServer::TDataServer *_tds;
58  TList _param, _sortie;
60 
61  // constructor helper
62  void match_input();
63  // subclasse helper
64  void fillDS();
65 
66  void allocInCodeEntries(int siz, vector<vector<URANIE::DataServer::UEntry*>> &, bool withid=false);
67  void allocOutCodeEntries(int siz, vector<vector<URANIE::DataServer::UEntry*>> &);
68  void allocGradCodeEntries(int siz, vector<vector<URANIE::DataServer::UEntry*>> &);
69  void allocDataEntries(int siz, vector<vector<URANIE::DataServer::UEntry*>> &);
70  void allocDataEntries(vector<URANIE::DataServer::UEntry*> &);
71 
72  void inputForCode(const double*, double*);
73 
74  void inputForCode(const double*, vector<URANIE::DataServer::UEntry *>*);
75  void outputFromCode(vector<URANIE::DataServer::UEntry *>*, double*);
76 
77  // Entry part for vectors
78  void inputForCode(const vector<URANIE::DataServer::UEntry*>*, vector<URANIE::DataServer::UEntry*>*);
79  void allFromCode(vector<URANIE::DataServer::UEntry*>*, vector<URANIE::DataServer::UEntry*>*, vector<URANIE::DataServer::UEntry*>*);
80 
81 public:
82  TMaster(URANIE::DataServer::TDataServer *, TRun *);
83  TMaster(URANIE::DataServer::TDataServer *, TEval *);
84  TMaster(URANIE::DataServer::TDataServer *, TStandardEval *, const char*, const char*);
85  virtual ~TMaster();
86 
87  // gestion des parametres
88  void addConstantValue(URANIE::DataServer::TAttribute *att, double, bool KeepIt=false);
89  void addConstantValue(URANIE::DataServer::TAttribute *att, URANIE::DataServer::UEntry*, bool KeepIt=false);
90  void addTemporary(URANIE::DataServer::TAttribute *att);
91  void fillConstant();
92  URANIE::DataServer::TDataServer *getTDS() {return _tds;}
93 
94  TRun* getRunner() { return _run; }
95 
96  // protocole
97  virtual void solverLoop() = 0;
98 
99  void clean();
100 
101  ClassDef(URANIE::Relauncher::TMaster, ID_RELAUNCHER)
102 };
103 
104 }
105 }
106 
107 #endif
Definition: TBaseEval.cxx:44
URANIE::DataServer::TDataServer * _tds
Definition: TMaster.h:55
void allocGradCodeEntries(int siz, vector< vector< URANIE::DataServer::UEntry *>> &)
Definition: TMaster.cxx:355
void outputFromCode(vector< URANIE::DataServer::UEntry *> *, double *)
Definition: TMaster.cxx:466
Definition: TRun.h:49
TRun * _localrun
Definition: TMaster.h:56
void addTemporary(URANIE::DataServer::TAttribute *att)
Definition: TMaster.cxx:262
int _Naux
Definition: TMaster.h:59
void fillConstant()
Definition: TMaster.cxx:532
void clean()
Definition: TMaster.cxx:527
TList _sortie
Definition: TMaster.h:58
TMaster(URANIE::DataServer::TDataServer *, TRun *)
Definition: TMaster.cxx:47
simple eval shared class
void addConstantValue(URANIE::DataServer::TAttribute *att, double, bool KeepIt=false)
Definition: TMaster.cxx:201
virtual void solverLoop()=0
void allFromCode(vector< URANIE::DataServer::UEntry *> *, vector< URANIE::DataServer::UEntry *> *, vector< URANIE::DataServer::UEntry *> *)
Definition: TMaster.cxx:501
int _NoutCod
Definition: TMaster.h:59
URANIE::DataServer::TDataServer * getTDS()
Definition: TMaster.h:92
int _NoutDat
Definition: TMaster.h:59
TEval * _fun
Definition: TMaster.h:57
void match_input()
Definition: TMaster.cxx:122
int _NinCod
Definition: TMaster.h:59
void inputForCode(const double *, double *)
Definition: TMaster.cxx:436
int _NinDat
Definition: TMaster.h:59
gestion des variables
Definition: TStandardEval.h:45
TRun * _run
Definition: TMaster.h:56
Definition: TEval.h:49
void fillDS()
Definition: TMaster.cxx:286
Definition: TMaster.h:52
void allocInCodeEntries(int siz, vector< vector< URANIE::DataServer::UEntry *>> &, bool withid=false)
Definition: TMaster.cxx:318
void allocDataEntries(int siz, vector< vector< URANIE::DataServer::UEntry *>> &)
Definition: TMaster.cxx:371
TList _param
Definition: TMaster.h:58
virtual ~TMaster()
Definition: TMaster.cxx:110
TRun * getRunner()
Definition: TMaster.h:94
void allocOutCodeEntries(int siz, vector< vector< URANIE::DataServer::UEntry *>> &)
Definition: TMaster.cxx:339