CLASS  1.1
 Tout Classes Fichiers Fonctions Variables Définitions de type
Référence de la classe CLASS

#include "CLASS.hxx"

+ Graphe de collaboration de CLASS:

Fonctions membres publiques

 CLASS ()
 < Normal Constructor. Plus de détails...
 
 CLASS (double abstime)
 Normal Destructor. Plus de détails...
 
 ~CLASS ()
 
cSecond GetAbsoluteTime ()
 Return the Absolute Clock. Plus de détails...
 
map< cSecond, int > GetTimeStep ()
 Return the Time Step Vector. Plus de détails...
 
vector< Reactor * > GetReactor ()
 Return the Reactor Vector. Plus de détails...
 
vector< Storage * > GetStorage ()
 Return the Storage Vector. Plus de détails...
 
vector< Pool * > GetPool ()
 Return the Pool Vector. Plus de détails...
 
vector< FabricationPlant * > GetFabricationPlant ()
 Return the FabricationPlant Vector. Plus de détails...
 
DataBank< ZAI > * GetDecayDataBase ()
 Return the Pointer to the Decay DataBase. Plus de détails...
 
cSecond GetPrintSet ()
 Return the Print Step Periodicity. Plus de détails...
 
bool GetStockManagement ()
 Return the StockManagement method (True or False) Plus de détails...
 
string GetOutputFileName ()
 Return the Output File name. Plus de détails...
 
string GetOutputTreeName ()
 Return the Output File name. Plus de détails...
 
LogFileGetLog ()
 Return the pointer to the log. Plus de détails...
 
void SetTimeStep (double timestep)
 Set the Printing Step periodicity. Plus de détails...
 
void SetStockManagement (bool val)
 Set the StockManagement method (True or false) Plus de détails...
 
void SetDecayDataBase (DataBank< ZAI > *decaydatabase)
 Set the Pointer to the Decay DataBase. Plus de détails...
 
void SetOutputFileName (string name)
 Set the Output File Name. Plus de détails...
 
void SetOutputTreeName (string name)
 Set the Output File Name. Plus de détails...
 
void AddPool (Pool *Pool)
 Add A TF to the Park. Plus de détails...
 
void AddReactor (Reactor *reactor)
 Add a Reactor to the Park. Plus de détails...
 
void AddStorage (Storage *storage)
 Add a Storage to the Park. Plus de détails...
 
void AddFabricationPlant (FabricationPlant *fabricationplant)
 Add a Storage to the Park. Plus de détails...
 
void BuildTimeVector (cSecond t)
 Build the Time Evolution Vector. Plus de détails...
 
void Evolution (double t)
 Do the Evolution. Plus de détails...
 
void PoolEvolution ()
 Do TF Evolution. Plus de détails...
 
void ReactorEvolution ()
 Do the Reactor Evolution. Plus de détails...
 
void FabricationPlantEvolution ()
 Do the FabricationPlant Evolution. Plus de détails...
 
void StorageEvolution ()
 Do the Storage Evolution. Plus de détails...
 
IsotopicVector GetGod () const
 Return the God Providings IsotopicVector. Plus de détails...
 
void AddGodIncome (ZAI zai, double quantity)
 Add a ZAI*quantity to GodIncome. Plus de détails...
 
void AddGod (IsotopicVector isotopicvector)
 Add a isotopicVector to GodIncome. Plus de détails...
 
void AddWaste (ZAI zai, double quantity)
 Add a ZAI*quantity to Waste. Plus de détails...
 
void AddWaste (IsotopicVector isotopicvector)
 Add a isotopicVector to Waste. Plus de détails...
 
void AddToPower (double power)
 Add power to the installed power in the Parc. Plus de détails...
 
void ProgressPrintout (cSecond t)
 
void Print ()
 
void Write ()
 
void UpdateParc ()
 
void OpenOutputTree ()
 
void CloseOutputTree ()
 
void OutAttach ()
 
void ResetQuantity ()
 

Attributs protégés

LogFilefLog
 Pointer to the Log. Plus de détails...
 
bool fNewTtree
 
bool fStockManagement
 True if real StockManagement false unstead. Plus de détails...
 
cSecond fPrintStep
 Time interval between two output update. Plus de détails...
 
cSecond fAbsoluteTime
 Absolute Clock. Plus de détails...
 
cSecond fStartingTime
 Starting Time. Plus de détails...
 
map< cSecond, int > fTimeStep
 
                 Time Step Vector for the evolution :

< 1 Printing, < 2 Reactor Studown < 4 Start/End of reactor cycle, < 8 End of Cooling, < 16 Fuel Fabrication Plus de détails...

 
vector< Storage * > fStorage
 Vector of Storages. Plus de détails...
 
vector< Pool * > fPool
 Vector of Pool. Plus de détails...
 
vector< Reactor * > fReactor
 Vector of Reactor. Plus de détails...
 
vector< FabricationPlant * > fFabricationPlant
 Vector of FabricationPlant. Plus de détails...
 
DataBank< ZAI > * fDecayDataBase
 Pointer to the Decay DataBase. Plus de détails...
 
TFile * fOutFile
 Pointer to the Root Output File. Plus de détails...
 
string fOutputFileName
 
TTree * fOutT
 Name of the Output File. Plus de détails...
 
string fOutputTreeName
 
string fOutputLogName
 Name of the Output TTree. Plus de détails...
 
IsotopicVector fWaste
 Waste IV. Plus de détails...
 
IsotopicVector fTotalStorage
 Sum of all IV in Storage IV. Plus de détails...
 
IsotopicVector fGod
 GodIncome IV. Plus de détails...
 
IsotopicVector fTotalCooling
 Sum of all IV in Cooling IV. Plus de détails...
 
IsotopicVector fFuelFabrication
 Sum of all IV in Fabrication IV. Plus de détails...
 
IsotopicVector fTotalInReactor
 Sum of all IV in Reactor IV. Plus de détails...
 
IsotopicVector fIVInCycleTotal
 Summ of all IV in the cycle (without Waste) IV. Plus de détails...
 
IsotopicVector fIVTotal
 Summ of all IV in the parc (including Waste) IV. Plus de détails...
 
double fParcPower
 Summ of the Power of all reactor in the parc. Plus de détails...
 

Description détaillée

Définition à la ligne 34 du fichier CLASS.hxx.

Documentation des constructeurs et destructeur

CLASS::CLASS ( )

< Normal Constructor.

Définition à la ligne 47 du fichier CLASS.cxx.

48 {
49 
50 
51  fNewTtree = true;
52  fPrintStep = (cSecond)(3600*24*365.25); // One Step per Year
53  fAbsoluteTime = 0;
54  fStartingTime = 0;
55 
56  fStockManagement = true;
57 
58  fOutputFileName = "CLASS_Default.root";
59  fOutputTreeName = "Data";
60 
61  fOutputLogName = "CLASS.log";
62  fLog = new LogFile(fOutputLogName.c_str());
63  fParcPower = 0;
64 
65 
66  // Warning
67 
68  cout << "!!INFO!! !!!CLASS!!! A Parc has been define :" << endl;
69  cout << "\t Print set at : " << (double)(fPrintStep/3600/24/365.25) << " year" << endl;
70  cout << "\t Absolute Time set at " << (double)(fAbsoluteTime/3600/24/365.25) << " year" << endl;
71  cout << "\t StockManagement set at : true" << endl;
72  cout << "\t OutPut will be in \"" << fOutputFileName << "\" File and \"" << fOutputTreeName << "\" TTree" << endl;
73  cout << "\t Log will be in " << fOutputLogName << endl << endl;
74 
75  fLog->fLog << "!!INFO!! !!!CLASS!!! Parc has been define :" << endl;
76  fLog->fLog << "\t Print set at : " << (double)(fPrintStep/3600/24/365.25) << " year" << endl;
77  fLog->fLog << "\t StockManagement set at : true" << endl;
78  fLog->fLog << "\t OutPut will be in \"" << fOutputFileName << "\" File and \"" << fOutputTreeName << "\" TTree" << endl;
79  fLog->fLog << "\t Log will be in " << fOutputLogName << endl << endl;
80 
81 
82 
83 }
CLASS::CLASS ( double  abstime)

Normal Destructor.

Définition à la ligne 86 du fichier CLASS.cxx.

87 {
88 
89  fNewTtree = true;
90  fPrintStep = (cSecond)(3600*24*365.25); // One Step per Year
91  fAbsoluteTime = (cSecond)abstime;
93 
94  fStockManagement = true;
95 
96  fOutputFileName = "CLASS_Default.root";
97  fOutputTreeName = "Data";
98 
99  fOutputLogName = "CLASS.log" ;
100  fLog = new LogFile(fOutputLogName.c_str());
101  fParcPower = 0;
102 
103 
104 
105 
106  // Warning
107 
108  cout << "!!INFO!! !!!CLASS!!! A Parc has been define :" << endl;
109  cout << "\t Print set at : " << (double)(fPrintStep/3600/24/365.25) << " year" << endl;
110  cout << "\t StockManagement set at : true" << endl;
111  cout << "\t OutPut will be in \"" << fOutputFileName << "\" File and \"" << fOutputTreeName << "\" TTree" << endl;
112  cout << "\t Log will be in " << fOutputLogName << endl;
113 
114  fLog->fLog << "!!INFO!! !!!CLASS!!! Parc has been define :" << endl;
115  fLog->fLog << "\t Print set at : " << (double)(fPrintStep/3600/24/365.25) << " year" << endl;
116  fLog->fLog << "\t StockManagement set at : true" << endl;
117  fLog->fLog << "\t OutPut will be in \"" << fOutputFileName << "\" File and \"" << fOutputTreeName << "\" TTree" << endl;
118  fLog->fLog << "\t Log will be in " << fOutputLogName << endl << endl;
119 
120 
121 
122 }
CLASS::~CLASS ( )

Définition à la ligne 126 du fichier CLASS.cxx.

127 {
128 
129 #pragma omp single
130  {CloseOutputTree();}
131 
132 }

Documentation des fonctions membres

void CLASS::AddFabricationPlant ( FabricationPlant fabricationplant)

Add a Storage to the Park.

Définition à la ligne 201 du fichier CLASS.cxx.

202 {
203 
204  fFabricationPlant.push_back(fabricationplant);
205  fFabricationPlant.back()->SetParc(this);
206  fFabricationPlant.back()->SetDecayDataBase( (*this).GetDecayDataBase() );
207  fFabricationPlant.back()->SetLog(fLog);
208  fFabricationPlant.back()->SetId((int)fStorage.size()-1);
209 
210  if(fNewTtree == false)
211  {
212  string FabricationPlant_name = "FabricationPlant";
213  FabricationPlant_name += dtoa(fFabricationPlant.back()->GetId());
214  FabricationPlant_name += ".";
215  fOutT->Branch(FabricationPlant_name.c_str(), "FabricationPlant", &fFabricationPlant.back());
216  }
217 
218 
219 }
void CLASS::AddGod ( IsotopicVector  isotopicvector)
inline

Add a isotopicVector to GodIncome.

Définition à la ligne 95 du fichier CLASS.hxx.

void CLASS::AddGodIncome ( ZAI  zai,
double  quantity 
)
inline

Add a ZAI*quantity to GodIncome.

Définition à la ligne 94 du fichier CLASS.hxx.

void CLASS::AddPool ( Pool Pool)

Add A TF to the Park.

Définition à la ligne 135 du fichier CLASS.cxx.

136 {
137 
138 
139  fPool.push_back(Pool);
140  fPool.back()->SetParc(this);
141  fPool.back()->SetDecayDataBase( (*this).GetDecayDataBase() );
142  fPool.back()->SetLog(fLog);
143  fPool.back()->SetId((int)fPool.size()-1);
144 
145 
146  if(fNewTtree == false)
147  {
148  string Pool_name = "Pool";
149  Pool_name += dtoa(fPool.back()->GetId());
150  Pool_name += ".";
151  fOutT->Branch(Pool_name.c_str(), "Pool", &fPool.back());
152  }
153 
154 }
void CLASS::AddReactor ( Reactor reactor)

Add a Reactor to the Park.

Définition à la ligne 157 du fichier CLASS.cxx.

158 {
159 
160  fReactor.push_back(reactor);
161  fReactor.back()->SetParc(this);
162  fReactor.back()->SetLog(fLog);
163  fReactor.back()->SetId((int)fReactor.size()-1);
164  if(fReactor.back()->IsFuelFixed() == false)
165  fReactor.back()->GetFabricationPlant()->AddReactor( (int)fReactor.size()-1,fReactor.back()->GetCreationTime() );
166 
167 
168 
169  if(fNewTtree == false)
170  {
171  string Reactor_name = "Reactor";
172  Reactor_name += dtoa(fReactor.back()->GetId());
173  Reactor_name += ".";
174  fOutT->Branch(Reactor_name.c_str(), "Reactor", &fReactor.back());
175  }
176 
177 
178 }
void CLASS::AddStorage ( Storage storage)

Add a Storage to the Park.

Définition à la ligne 181 du fichier CLASS.cxx.

182 {
183 
184  fStorage.push_back(storage);
185  fStorage.back()->SetParc(this);
186  fStorage.back()->SetDecayDataBase( (*this).GetDecayDataBase() );
187  fStorage.back()->SetLog(fLog);
188  fStorage.back()->SetId((int)fStorage.size()-1);
189 
190  if(fNewTtree == false)
191  {
192  string Storage_name = "Storage";
193  Storage_name += dtoa(fStorage.back()->GetId());
194  Storage_name += ".";
195  fOutT->Branch(Storage_name.c_str(), "Storage", &fStorage.back());
196  }
197 
198 
199 }
void CLASS::AddToPower ( double  power)
inline

Add power to the installed power in the Parc.

Définition à la ligne 98 du fichier CLASS.hxx.

void CLASS::AddWaste ( ZAI  zai,
double  quantity 
)
inline

Add a ZAI*quantity to Waste.

Définition à la ligne 96 du fichier CLASS.hxx.

void CLASS::AddWaste ( IsotopicVector  isotopicvector)
inline

Add a isotopicVector to Waste.

Définition à la ligne 97 du fichier CLASS.hxx.

void CLASS::BuildTimeVector ( cSecond  t)

Build the Time Evolution Vector.

Définition à la ligne 222 du fichier CLASS.cxx.

223 {
224 
225  fTimeStep.clear();
226  fTimeStep.insert( pair<double ,int>(t,1) );
227 
228  //********* Printing Step *********//
229  {
230  cSecond step = 0;
232  step = fStartingTime;
233  else
234  {
235  step = fAbsoluteTime;
236  }
237  if(step >= fAbsoluteTime )
238  fTimeStep.insert( pair<cSecond ,int>(step,1) );
239  step += fPrintStep;
240  do
241  {
242 
243  if(step >= fAbsoluteTime )
244  fTimeStep.insert( pair<cSecond ,int>(step,1) );
245  step += fPrintStep;
246  }
247  while( step < t );
248  }
249 
250  for(int i = 0; i < (int)fReactor.size();i++)
251  {
252  double step = fReactor[i]->GetCreationTime();
253  double coolingstep = fReactor[i]->GetAssociedPool()->GetCoolingTime();
254  double fabricationstep = 0;
255 
256  if(fReactor[i]->IsFuelFixed() == false)
257  fabricationstep = fReactor[i]->GetFabricationPlant()->GetFabricationTime();
258 
259 
260  //********* Reactor Evolution Step *********//
261  // set destruction of a reactor
262  if( (fReactor[i]->GetCreationTime() + fReactor[i]->GetLifeTime() > fAbsoluteTime) &&
263  (fReactor[i]->GetCreationTime() + fReactor[i]->GetLifeTime() < t) )
264  {
265  //********* Reactor Shutdown *********//
266  pair< map<cSecond, int>::iterator, bool > IResult = fTimeStep.insert( pair<cSecond ,int>(fReactor[i]->GetCreationTime() + fReactor[i]->GetLifeTime(),2) );
267  if( IResult.second == false ) IResult.first->second |= 2;
268 
269  //********* End of Cooling after reactor Shutdown *********//
270  if(fReactor[i]->GetCreationTime() + fReactor[i]->GetLifeTime()+coolingstep >= fAbsoluteTime
271  && fReactor[i]->GetCreationTime() + fReactor[i]->GetLifeTime()+coolingstep <= t)
272  {
273  pair< map<cSecond, int>::iterator, bool > IResult = fTimeStep.insert( pair<cSecond ,int>(fReactor[i]->GetCreationTime() + fReactor[i]->GetLifeTime()+coolingstep,8) );
274  if( IResult.second == false ) IResult.first->second |= 8;
275  }
276  }
277 
278 
279  //********* Start Of Reactor First Cycle *********//
280  if(step >= fAbsoluteTime && step <= t && step < fReactor[i]->GetCreationTime() + fReactor[i]->GetLifeTime())
281  {
282  pair< map<cSecond, int>::iterator, bool > IResult = fTimeStep.insert( pair<cSecond ,int>(step,4) );
283  if( IResult.second == false ) IResult.first->second |= 4;
284  }
285 
286  //********* FabricationPlant Evolution Step *********//
287  if(fReactor[i]->IsFuelFixed() == false)
288  {
289  if(step > fAbsoluteTime && step - fabricationstep <= t && step < fReactor[i]->GetCreationTime() + fReactor[i]->GetLifeTime() )
290  {
291  pair< map<cSecond, int>::iterator, bool > IResult = fTimeStep.insert( pair<cSecond ,int>(step -fabricationstep,16) );
292  if( IResult.second == false ) IResult.first->second |= 16;
293  }
294  else if(step - fabricationstep < fStartingTime)
295  {
296  cout << "!!Warning!! !!!CLASS!!! Can't Build Fuel before Scenario's start\"\n" << endl;
297  fLog->fLog << "!!Warning!! !!!CLASS!!! Can't Build Fuel before Scenario's start\"\n" << endl;
298  exit(1);
299  }
300  }
301 
302 
303  //********* Reactor related Step *********//
304  step += fReactor[i]->GetCycleTime();
305  do
306  {
307 
308 
309  //********* FabricationPlant Evolution Step *********//
310  if(fReactor[i]->IsFuelFixed() == false)
311  if(step > fAbsoluteTime && step - fabricationstep <= t && step < fReactor[i]->GetCreationTime() + fReactor[i]->GetLifeTime())
312  { // Set End of reactor cycle
313  pair< map<cSecond, int>::iterator, bool > IResult = fTimeStep.insert( pair<cSecond ,int>(step -fabricationstep,16) );
314  if( IResult.second == false ) IResult.first->second |= 16;
315  }
316 
317 
318  //********* End/Start Of Reactor Cycle Step *********//
319  if(step > fAbsoluteTime && step <= t && step < fReactor[i]->GetCreationTime() + fReactor[i]->GetLifeTime())
320  { // Set End of reactor cycle
321  pair< map<cSecond, int>::iterator, bool > IResult = fTimeStep.insert( pair<cSecond ,int>(step,4) );
322  if( IResult.second == false ) IResult.first->second |= 4;
323  }
324 
325  //********* End of Cooling Step *********//
326  if(step >= fAbsoluteTime && step + coolingstep <= t) // Set End of Cooling
327  {
328  pair< map<cSecond, int>::iterator, bool > IResult = fTimeStep.insert( pair<cSecond ,int>(step+coolingstep,8) );
329  if( IResult.second == false ) IResult.first->second |= 8;
330  }
331  step += fReactor[i]->GetCycleTime();
332  }
333  while(step <= t && step <= fReactor[i]->GetCreationTime() + fReactor[i]->GetLifeTime() );
334  }
335 
336 
337  //*** In Case of Evolution Restart ****//
338  for(int i =0; i < (int)fPool.size(); i++)
339  {
340 
341 
342  //********* End of Cooling Step *********//
343  for(int j = 0; j<(int)fPool[i]->GetIVCooling().size(); j++ )// Set End of Cooling
344  {
345  if(fPool[i]->GetCoolingStartingTime()[j] + fPool[i]->GetCoolingTime() > fAbsoluteTime )
346  {
347  pair< map<cSecond, int>::iterator, bool > IResult;
348  IResult = fTimeStep.insert( pair<cSecond ,int>(fPool[i]->GetCoolingStartingTime()[j] + fPool[i]->GetCoolingTime(),8) );
349  if( IResult.second == false ) IResult.first->second |= 8;
350  }
351  }
352  }
353 
354 
355 
356  //****** Print the Time Index ******//
357  ofstream TimeStepfile("CLASS_TimeStep", ios_base::app); // Open the File
358 
359  if(!TimeStepfile)
360  {
361  cout << "!!Warning!! !!!CLASS!!! Can't open \" CLASS_TimeStep \"\n" << endl;
362  fLog->fLog << "!!Warning!! !!!CLASS!!! Can't open \" CLASS_TimeStep \"\n" << endl;
363  }
364  map<cSecond ,int >::iterator it;
365  for( it = fTimeStep.begin(); it != fTimeStep.end(); it++)
366  TimeStepfile << (double)((*it).first/3600/24./365.25) << " " << (*it).second << endl;
367 
368 
369 }
void CLASS::CloseOutputTree ( )

Définition à la ligne 603 du fichier CLASS.cxx.

604 {
605 
606 
607  fOutFile->ls();
608  cout << "Writing outTree " << fOutputFileName << endl;
609  fLog->fLog << "Writing outTree " << fOutputFileName << endl;
610  fOutFile->Write();
611 
612  if(fOutFile->IsOpen()) {
613  cout << "Deleting outTree : " << endl;
614  fLog->fLog << "Deleting outTree : " << endl;
615  delete fOutT;
616  cout << "Closing file : " << fOutputFileName <<endl;
617  fLog->fLog << "Closing file : " << fOutputFileName <<endl;
618  fOutFile-> Close();
619  delete fOutFile;
620  } else {
621  cout << "File was not opened " << fOutputFileName << endl;
622  fLog->fLog << "File was not opened " << fOutputFileName << endl;
623  exit(-1);
624  }
625 }
void CLASS::Evolution ( double  t)

Do the Evolution.

Définition à la ligne 423 du fichier CLASS.cxx.

424 {
425 
426 
427  BuildTimeVector( (cSecond)t );
428 
429  if(fNewTtree == true)
430  {
431  OpenOutputTree();
432  OutAttach();
433  fOutT->Fill();
434  }
435 
436  map<cSecond ,int >::iterator it;
437  for(it = fTimeStep.begin(); it != fTimeStep.end(); it++)
438  {
439 
440  fAbsoluteTime = (*it).first;
441  if( (*it).second & 2 || (*it).second & 1 )
442  {
443  if( (*it).second & 1 )
445  PoolEvolution();
448 
449  if((*it).second & 2 )
450  (*it).second ^= 2;
451  if((*it).second & 4 )
452  (*it).second ^= 4;
453  if((*it).second & 8 )
454  (*it).second ^= 8;
455  if((*it).second & 16 )
456  (*it).second ^= 16;
457  }
458 
459 
460  if( (*it).second & 4 )
461  {
463  PoolEvolution();
465 
466  (*it).second ^= 4;
467  if((*it).second & 8 )
468  (*it).second ^= 8;
469  }
470 
471  if( (*it).second & 16 )
472  {
474  PoolEvolution();
476 
477  (*it).second ^= 16;
478  if((*it).second & 8 )
479  (*it).second ^= 8;
480  }
481 
482 
483  if( (*it).second & 8 )
484  {
486  PoolEvolution();
487 
488  (*it).second ^= 8;
489  }
490 
491 
492 
493  if( (*it).second & 1 || (*it).first == (*fTimeStep.begin()).first )
494  {
495 #pragma omp single
496  {
497  UpdateParc();
498  fOutT->Fill();
500  }
501  }
502 
503  }
504  cout << endl;
505 
506 
507 }
void CLASS::FabricationPlantEvolution ( )

Do the FabricationPlant Evolution.

Définition à la ligne 397 du fichier CLASS.cxx.

398 {
399 
400  for(int i = 0; i < (int) fFabricationPlant.size();i++)
402 
403 
404 }
cSecond CLASS::GetAbsoluteTime ( )
inline

Return the Absolute Clock.

Définition à la ligne 46 du fichier CLASS.hxx.

DataBank<ZAI>* CLASS::GetDecayDataBase ( )
inline

Return the Pointer to the Decay DataBase.

Définition à la ligne 52 du fichier CLASS.hxx.

vector<FabricationPlant*> CLASS::GetFabricationPlant ( )
inline

Return the FabricationPlant Vector.

Définition à la ligne 51 du fichier CLASS.hxx.

IsotopicVector CLASS::GetGod ( ) const
inline

Return the God Providings IsotopicVector.

Définition à la ligne 93 du fichier CLASS.hxx.

LogFile* CLASS::GetLog ( )
inline

Return the pointer to the log.

Définition à la ligne 58 du fichier CLASS.hxx.

string CLASS::GetOutputFileName ( )
inline

Return the Output File name.

Définition à la ligne 56 du fichier CLASS.hxx.

string CLASS::GetOutputTreeName ( )
inline

Return the Output File name.

Définition à la ligne 57 du fichier CLASS.hxx.

vector<Pool*> CLASS::GetPool ( )
inline

Return the Pool Vector.

Définition à la ligne 50 du fichier CLASS.hxx.

cSecond CLASS::GetPrintSet ( )
inline

Return the Print Step Periodicity.

Définition à la ligne 54 du fichier CLASS.hxx.

vector<Reactor*> CLASS::GetReactor ( )
inline

Return the Reactor Vector.

Définition à la ligne 48 du fichier CLASS.hxx.

bool CLASS::GetStockManagement ( )
inline

Return the StockManagement method (True or False)

Définition à la ligne 55 du fichier CLASS.hxx.

vector<Storage*> CLASS::GetStorage ( )
inline

Return the Storage Vector.

Définition à la ligne 49 du fichier CLASS.hxx.

map<cSecond, int> CLASS::GetTimeStep ( )
inline

Return the Time Step Vector.

Définition à la ligne 47 du fichier CLASS.hxx.

void CLASS::OpenOutputTree ( )

Définition à la ligne 572 du fichier CLASS.cxx.

573 {
574 
575 
576  cout << "Opening OutPut File ...\t";
577  fLog->fLog << "Opening : " << fOutputFileName << " ...\t";
578  fOutFile = new TFile(fOutputFileName.c_str(),"UPDATE");
579 
580  if(!fOutFile)
581  {
582  cout << "\nCould not open " << fOutputFileName <<endl;
583  fLog->fLog << "\nCould not open " << fOutputFileName <<endl;
584  exit(-1);
585  }
586  cout << "\t ...OK!" << endl;
587 
588 
589  fOutT = new TTree(fOutputTreeName.c_str(), "Data Tree");
590  cout << "Creating Data Tree ...\t";
591  fLog->fLog << "Creating Data Tree ...\t";
592  if(!fOutT)
593  {
594  cout << "\nCould not create Data Tree in " << fOutputFileName << endl;
595  fLog->fLog << "\nCould not create Data Tree in " << fOutputFileName << endl;
596  exit(-1);
597  }
598  fNewTtree = false;
599  cout << "\t ...OK!" << endl;
600  fLog->fLog << "\t ...OK!" << endl;
601 
602 }
void CLASS::OutAttach ( )

Définition à la ligne 627 du fichier CLASS.cxx.

628 {
629 
630  ResetQuantity();
631  //Branch Absolut Time
632  fOutT->Branch("AbsTime",&fAbsoluteTime,"AbsoluteTime/l");
633  //Branch The Power installed in the Parc
634  fOutT->Branch("ParcPower",&fParcPower,"ParcPower/D");
635 
636 
637 
638  // Branch the Sum IV
639 
640 
641  fOutT->Branch("STOCK.", "IsotopicVector", &fTotalStorage);
642  fOutT->Branch("FUELFABRICATION.", "IsotopicVector", &fFuelFabrication);
643  fOutT->Branch("COOLING.", "IsotopicVector", &fTotalCooling);
644  fOutT->Branch("REACTOR.", "IsotopicVector", &fTotalInReactor);
645  fOutT->Branch("INCYCLE.", "IsotopicVector", &fIVInCycleTotal);
646  fOutT->Branch("TOTAL.", "IsotopicVector", &fIVTotal);
647 
648  fOutT->Branch("GOD.", "IsotopicVector", &fGod);
649  fOutT->Branch("WASTE.", "IsotopicVector", &fWaste);
650 
651  // Branch the separate object
652 
653  for(int i = 0; i < (int)fStorage.size(); i++)
654  {
655  string Storage_name = "Storage";
656  Storage_name += dtoa(i);
657  Storage_name += ".";
658 
659  fOutT->Branch(Storage_name.c_str(), "Storage", &fStorage[i]);
660  }
661 
662  for(int i = 0; i < (int)fPool.size(); i++)
663  {
664  string TF_name = "Pool";
665  TF_name += dtoa(i);
666  TF_name += ".";
667  fOutT->Branch(TF_name.c_str(), "Pool", &fPool[i]);
668  }
669 
670  for(int i = 0; i < (int)fReactor.size(); i++)
671  {
672  string R_name = "Reactor";
673  R_name += dtoa(i);
674  R_name += ".";
675  fOutT->Branch(R_name.c_str(), "Reactor", &fReactor[i]);
676  }
677  for(int i = 0; i < (int)fFabricationPlant.size(); i++)
678  {
679  string FP_name = "FabricationPlant";
680  FP_name += dtoa(i);
681  FP_name += ".";
682  fOutT->Branch(FP_name.c_str(), "FabricationPlant", &fFabricationPlant[i]);
683  }
684 
685 }
void CLASS::PoolEvolution ( )

Do TF Evolution.

Définition à la ligne 377 du fichier CLASS.cxx.

378 {
379 
380  for(int i = 0; i < (int) fPool.size();i++)
382 
383  for(int i = 0; i < (int) fPool.size();i++)
384  fPool[i]->Dump();
385 
386 }
void CLASS::Print ( )

Définition à la ligne 697 du fichier CLASS.cxx.

698 {
699 
700  for(int i = 0; i < (int) fPool.size();i++)
701  {
702  cout << "!!!!!!!!!STEP : " << fAbsoluteTime/(int)(3600*24*365.25) << endl;
703  cout << "Pool : " << endl;
704  cout << "Cooling ";
705  cout << fPool[i]->GetIVCooling().size()<< endl;
706  }
707 
708  for(int i = 0; i < (int)fReactor.size(); i++)
709  {
710  cout << "Reactor" << endl;
711  fReactor[i]->GetIVReactor().Print();
712  }
713 
714 }
void CLASS::ProgressPrintout ( cSecond  t)

Définition à la ligne 509 du fichier CLASS.cxx.

510 {
511 
512  double Time = (fAbsoluteTime-fStartingTime)/3600/24/365.25 ;
513  double Total = (t-fStartingTime)/3600/24/365.25;
514 
515  cout << " " << flush ;
516  cout << "\r[";
517  for(int i = 0; i < (int)(Time/Total*100.0); i++)
518  cout << "|";
519  for(int i = 100; i >= (int)(Time/Total*100.0); i--)
520  cout << "-";
521  cout << "] ";
522 
523  cout << " Processed ";
524  if (Time < 10) cout << " ";
525  if (Time < 100) cout << " ";
526  cout << (int)Time << " / " << (int)Total << " Years \r" << flush;
527 
528 }
void CLASS::ReactorEvolution ( )

Do the Reactor Evolution.

Définition à la ligne 407 du fichier CLASS.cxx.

408 {
409 
410  fParcPower = 0;
411 #pragma omp parallel for
412  for(int i = 0; i < (int)fReactor.size(); i++)
414 
415 
416  for(int i = 0; i < (int)fReactor.size(); i++)
417  fReactor[i]->Dump();
418 
419 
420 }
void CLASS::ResetQuantity ( )

Définition à la ligne 558 du fichier CLASS.cxx.

559 {
560 
561 
567  fIVTotal.Clear();
568 
569 }
void CLASS::SetDecayDataBase ( DataBank< ZAI > *  decaydatabase)
inline

Set the Pointer to the Decay DataBase.

Définition à la ligne 64 du fichier CLASS.hxx.

void CLASS::SetOutputFileName ( string  name)
inline

Set the Output File Name.

Définition à la ligne 66 du fichier CLASS.hxx.

void CLASS::SetOutputTreeName ( string  name)
inline

Set the Output File Name.

Définition à la ligne 67 du fichier CLASS.hxx.

void CLASS::SetStockManagement ( bool  val)
inline

Set the StockManagement method (True or false)

Définition à la ligne 63 du fichier CLASS.hxx.

void CLASS::SetTimeStep ( double  timestep)
inline

Set the Printing Step periodicity.

Définition à la ligne 62 du fichier CLASS.hxx.

void CLASS::StorageEvolution ( )

Do the Storage Evolution.

Définition à la ligne 388 du fichier CLASS.cxx.

389 {
390 
391  for(int i = 0; i < (int) fStorage.size();i++)
393 
394 
395 }
void CLASS::UpdateParc ( )

Définition à la ligne 533 du fichier CLASS.cxx.

534 {
535 
536  ResetQuantity();
537 
538  for (int i =0; i < (int)fFabricationPlant.size(); i++)
539  fFuelFabrication += fFabricationPlant[i]->GetFullFabrication();
540 
541  for(int i = 0; i < (int) fPool.size();i++)
542  fTotalCooling += fPool[i]->GetFullCooling();
543 
544  for(int i = 0; i < (int)fStorage.size(); i++)
545  fTotalStorage += fStorage[i]->GetFullStock();
546 
547  for(int i = 0; i < (int)fReactor.size(); i++)
548  fTotalInReactor += fReactor[i]->GetIVReactor();
549 
552 
553 
554 }
void CLASS::Write ( )

Définition à la ligne 688 du fichier CLASS.cxx.

689 {
690 
691 
692 
693 
694 }

Documentation des données membres

cSecond CLASS::fAbsoluteTime
protected

Absolute Clock.

Définition à la ligne 122 du fichier CLASS.hxx.

DataBank<ZAI>* CLASS::fDecayDataBase
protected

Pointer to the Decay DataBase.

Définition à la ligne 136 du fichier CLASS.hxx.

vector<FabricationPlant*> CLASS::fFabricationPlant
protected

Vector of FabricationPlant.

Définition à la ligne 135 du fichier CLASS.hxx.

IsotopicVector CLASS::fFuelFabrication
protected

Sum of all IV in Fabrication IV.

Définition à la ligne 149 du fichier CLASS.hxx.

IsotopicVector CLASS::fGod
protected

GodIncome IV.

Définition à la ligne 147 du fichier CLASS.hxx.

IsotopicVector CLASS::fIVInCycleTotal
protected

Summ of all IV in the cycle (without Waste) IV.

Définition à la ligne 151 du fichier CLASS.hxx.

IsotopicVector CLASS::fIVTotal
protected

Summ of all IV in the parc (including Waste) IV.

Définition à la ligne 152 du fichier CLASS.hxx.

LogFile* CLASS::fLog
protected

Pointer to the Log.

Définition à la ligne 116 du fichier CLASS.hxx.

bool CLASS::fNewTtree
protected

Définition à la ligne 117 du fichier CLASS.hxx.

TFile* CLASS::fOutFile
protected

Pointer to the Root Output File.

Définition à la ligne 139 du fichier CLASS.hxx.

string CLASS::fOutputFileName
protected

Définition à la ligne 140 du fichier CLASS.hxx.

string CLASS::fOutputLogName
protected

Name of the Output TTree.

Name of the Ouput log File

Définition à la ligne 143 du fichier CLASS.hxx.

string CLASS::fOutputTreeName
protected

Définition à la ligne 142 du fichier CLASS.hxx.

TTree* CLASS::fOutT
protected

Name of the Output File.

Pointer to the Root Output TTree

Définition à la ligne 141 du fichier CLASS.hxx.

double CLASS::fParcPower
protected

Summ of the Power of all reactor in the parc.

Définition à la ligne 153 du fichier CLASS.hxx.

vector<Pool*> CLASS::fPool
protected

Vector of Pool.

Définition à la ligne 133 du fichier CLASS.hxx.

cSecond CLASS::fPrintStep
protected

Time interval between two output update.

Définition à la ligne 121 du fichier CLASS.hxx.

vector<Reactor*> CLASS::fReactor
protected

Vector of Reactor.

Définition à la ligne 134 du fichier CLASS.hxx.

cSecond CLASS::fStartingTime
protected

Starting Time.

Définition à la ligne 123 du fichier CLASS.hxx.

bool CLASS::fStockManagement
protected

True if real StockManagement false unstead.

Définition à la ligne 118 du fichier CLASS.hxx.

vector<Storage*> CLASS::fStorage
protected

Vector of Storages.

Définition à la ligne 132 du fichier CLASS.hxx.

map<cSecond, int> CLASS::fTimeStep
protected

                 Time Step Vector for the evolution :

< 1 Printing, < 2 Reactor Studown < 4 Start/End of reactor cycle, < 8 End of Cooling, < 16 Fuel Fabrication

Définition à la ligne 124 du fichier CLASS.hxx.

IsotopicVector CLASS::fTotalCooling
protected

Sum of all IV in Cooling IV.

Définition à la ligne 148 du fichier CLASS.hxx.

IsotopicVector CLASS::fTotalInReactor
protected

Sum of all IV in Reactor IV.

Définition à la ligne 150 du fichier CLASS.hxx.

IsotopicVector CLASS::fTotalStorage
protected

Sum of all IV in Storage IV.

Définition à la ligne 146 du fichier CLASS.hxx.

IsotopicVector CLASS::fWaste
protected

Waste IV.

Définition à la ligne 145 du fichier CLASS.hxx.


La documentation de cette classe a été générée à partir des fichiers suivants :