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

#include "Pool.hxx"

+ Graphe d'héritage de Pool:
+ Graphe de collaboration de Pool:

Fonctions membres publiques

 Pool ()
 < Normal constructor Plus de détails...
 
 Pool (LogFile *log)
 Advanced Constructor. Plus de détails...
 
 Pool (LogFile *log, double abstime, double coolingtime=5 *3600.*24.*365.25)
 
 Pool (LogFile *log, Storage *Storage, double abstime=0, double coolingtime=5 *3600.*24.*365.25)
 Normal Destructor. Plus de détails...
 
 ~Pool ()
 
void SetId (int id)
 Set The TF Parc'Id. Plus de détails...
 
void SetParc (CLASS *parc)
 Set the Pointer to the Parc. Plus de détails...
 
void SetLog (LogFile *Log)
 Set the Pointer to the Log. Plus de détails...
 
void SetStorage (Storage *storage)
 Set the Pointer to the Storage. Plus de détails...
 
void SetPutToWaste (bool val)
 Set True if IV goes to waste after cooling false instead. Plus de détails...
 
void SetDecayDataBase (DataBank< ZAI > *ddb)
 Set the pointer to the Decay DataBase. Plus de détails...
 
void SetCoolingTime (double time)
 Set Cooling Time. Plus de détails...
 
int GetId () const
 Return the TF Parc'Is. Plus de détails...
 
LogFileGetLog () const
 Return the Pointer to the Log. Plus de détails...
 
CLASSGetParc () const
 Return the Pointer to the Parc. Plus de détails...
 
StorageGetStorage () const
 Return the Pointer to the Storage. Plus de détails...
 
bool GetPutToWaste () const
 Return True if IV goes to waste after cooling false instead. Plus de détails...
 
cSecond GetInternalTime () const
 Return Creation Time. Plus de détails...
 
cSecond GetCreationTime () const
 Return Internal Time. Plus de détails...
 
cSecond GetCoolingTime () const
 Return the Cooling Time. Plus de détails...
 
DataBank< ZAI > * GeDecayDataBase () const
 Return the pointer to the Decay DataBase. Plus de détails...
 
vector< cSecondGetCoolingStartingTime () const
 Return the vector of Cooling Sstarting Time. Plus de détails...
 
vector< IsotopicVectorGetIVCooling () const
 Return the vector of Cooling IsotopicVector. Plus de détails...
 
void AddIVCooling (IsotopicVector IV)
 Add Cooling IsotopicVector. Plus de détails...
 
void RemoveIVCooling (int i)
 Remove a Cooling IsotopicVector. Plus de détails...
 
IsotopicVector GetFullCooling ()
 
void Evolution (cSecond t)
 Performe the evolution until the Time t. Plus de détails...
 
void Dump ()
 Write Modification (exchange between Cooling, Separation and Storage) Plus de détails...
 

Fonctions membres protégées

IsotopicVector GetDecay (IsotopicVector isotopicvector, cSecond t)
 Get IsotopicVector Decay at the t time. Plus de détails...
 
void CoolingEvolution (cSecond t)
 Deal the cooling and then send it to Separation. Plus de détails...
 
 ClassDef (Pool, 1)
 

Attributs protégés

int fId
 Identity of the Reactor inside the Parc. Plus de détails...
 
cSecond fInternalTime
 Internal Clock. Plus de détails...
 
bool IsStarted
 True if Running, False Otherwise. Plus de détails...
 
CLASSfParc
 Pointer to the Parc. Plus de détails...
 
StoragefStorage
 Pointer to the Stock. Plus de détails...
 
bool fPutToWaste
 True if IV goes to waste after cooling false instead. Plus de détails...
 
LogFilefLog
 Pointer to the Log. Plus de détails...
 
DataBank< ZAI > * fDecayDataBase
 Pointer to the Decay DataBase. Plus de détails...
 
cSecond fCreationTime
 Date of Creation of the Factory. Plus de détails...
 
cSecond fCoolingTime
 Cooling Duration Time. Plus de détails...
 
vector< IsotopicVectorfIVCooling
 Vector of the Cooling Isotopic Vector. Plus de détails...
 
vector< cSecondfCoolingStartingTime
 Vector of the Cooling Starting Time. Plus de détails...
 
vector< int > fCoolingIndex
 Vector of the Cooling Index. Plus de détails...
 
int fCoolingLastIndex
 Number of Cooling IV Treated. Plus de détails...
 
vector< int > fCoolingEndOfCycle
 Index of the Cooling IV reaching the End of a Cooling Cycle. Plus de détails...
 

Description détaillée

Définition à la ligne 35 du fichier Pool.hxx.

Documentation des constructeurs et destructeur

Pool::Pool ( )

< Normal constructor

Pool::Pool ( LogFile log)

Advanced Constructor.

Définition à la ligne 32 du fichier Pool.cxx.

33 {
34 
35  fLog = log;
36  fCoolingTime = 5*3600.*24.*365.25;
37 
38  IsStarted = false;
39  fPutToWaste = true;
40  fInternalTime = 0;
41  fCreationTime = 0;
43 
44  cout << "!!INFO!! !!!Pool!!! A new Pool has been define :" << endl;
45  cout << "\t Creation time set at \t " << (double)(fCreationTime/3600/24/365.25) << " year" << endl;
46  cout << "\t Life time (Operating's Duration) set at \t " << (double)(fCreationTime/3600/24/365.25) << " year" << endl << endl;
47  cout << "\t The Cooling Time set at\t " << (double)(fCoolingTime/3600/24/365.25) << " year" << endl;
48  cout << "!!WARNING!! !!!Pool!!! All Cooled Fuel goes directly to WASTE after cooling !! " << endl;
49 
50  fLog->fLog << "!!INFO!! !!!Pool!!! A new Pool has been define :" << endl;
51  fLog->fLog << "\t Creation time set at \t " << (double)(fCreationTime/3600/24/365.25) << " year" << endl;
52  fLog->fLog << "\t Life time (Operating's Duration) set at \t " << (double)(fCreationTime/3600/24/365.25) << " year" << endl << endl;
53  fLog->fLog << "\t The Cooling Time set at\t " << (double)(fCoolingTime/3600/24/365.25) << " year" << endl;
54  fLog->fLog << "!!WARNING!! !!!Pool!!! All Cooled Fuel goes directly to WASTE after cooling !! " << endl;
55 
56 
57 }
Pool::Pool ( LogFile log,
double  abstime,
double  coolingtime = 5*3600.*24.*365.25 
)

Définition à la ligne 59 du fichier Pool.cxx.

61 {
62 
63  fLog = log;
64  fCoolingTime = (cSecond)coolingtime;
65  fInternalTime = 0;
66  fCreationTime = (cSecond)creation;
67  IsStarted = false;
68  fPutToWaste = true;
70 
71  cout << "!!INFO!! !!!Pool!!! A new Pool has been define :" << endl;
72  cout << "\t Creation time set at \t " << (double)(fCreationTime/3600/24/365.25) << " year" << endl;
73  cout << "\t Life time (Operating's Duration) set at \t " << (double)(fCreationTime/3600/24/365.25) << " year" << endl << endl;
74  cout << "\t The Cooling Time set at\t " << (double)(fCoolingTime/3600/24/365.25) << " year" << endl;
75  cout << "!!WARNING!! !!!Pool!!! All Cooled Fuel goes directly to WASTE after cooling !! " << endl;
76 
77  fLog->fLog << "!!INFO!! !!!Pool!!! A new Pool has been define :" << endl;
78  fLog->fLog << "\t Creation time set at \t " << (double)(fCreationTime/3600/24/365.25) << " year" << endl;
79  fLog->fLog << "\t Life time (Operating's Duration) set at \t " << (double)(fCreationTime/3600/24/365.25) << " year" << endl << endl;
80  fLog->fLog << "\t The Cooling Time set at\t " << (double)(fCoolingTime/3600/24/365.25) << " year" << endl;
81  fLog->fLog << "!!WARNING!! !!!Pool!!! All Cooled Fuel goes directly to WASTE after cooling !! " << endl;
82 
83 
84 }
Pool::Pool ( LogFile log,
Storage Storage,
double  abstime = 0,
double  coolingtime = 5*3600.*24.*365.25 
)

Normal Destructor.

Définition à la ligne 87 du fichier Pool.cxx.

90 {
91 
92  fLog = log;
93  fCoolingTime = (cSecond)coolingtime;
94  fInternalTime = 0;
95  fStorage = storage;
96  fCreationTime = (cSecond)creation;
97  IsStarted = false;
98  fPutToWaste = false;
100 
101 
102  cout << "!!INFO!! !!!Pool!!! A new Pool has been define :" << endl;
103  cout << "\t Creation time set at \t " << (double)(fCreationTime/3600/24/365.25) << " year" << endl;
104  cout << "\t Life time (Operating's Duration) set at \t " << (double)(fCreationTime/3600/24/365.25) << " year" << endl << endl;
105  cout << "\t The Cooling Time set at\t " << (double)(fCoolingTime/3600/24/365.25) << " year" << endl;
106 
107  fLog->fLog << "!!INFO!! !!!Pool!!! A new Pool has been define :" << endl;
108  fLog->fLog << "\t Creation time set at \t " << (double)(fCreationTime/3600/24/365.25) << " year" << endl;
109  fLog->fLog << "\t Life time (Operating's Duration) set at \t " << (double)(fCreationTime/3600/24/365.25) << " year" << endl << endl;
110  fLog->fLog << "\t The Cooling Time set at\t " << (double)(fCoolingTime/3600/24/365.25) << " year" << endl;
111 
112 
113 }
Pool::~Pool ( )

Définition à la ligne 116 du fichier Pool.cxx.

117 {
118 
119 
120 }

Documentation des fonctions membres

void Pool::AddIVCooling ( IsotopicVector  IV)

Add Cooling IsotopicVector.

Définition à la ligne 152 du fichier Pool.cxx.

153 {
154 
155  fIVCooling.push_back(IV);
158  fCoolingIndex.push_back(fCoolingLastIndex);
159 
160 }
Pool::ClassDef ( Pool  ,
 
)
protected
void Pool::CoolingEvolution ( cSecond  t)
protected

Deal the cooling and then send it to Separation.

Définition à la ligne 198 du fichier Pool.cxx.

199 {
200 
201  if(t == fInternalTime && t!=0) return;
202  int RemainingCoolingTime;
203  cSecond EvolutionTime = t - fInternalTime;
204 #pragma omp parallel for
205  for ( int i = 0 ; i < (int)fIVCooling.size() ; i++)
206  {
207  if ( abs(t - fCoolingStartingTime[i] - fCoolingTime) < 3600 ) // ">" should not append, only "=" is normal...
208  {
209  if (t - fCoolingStartingTime[i] > fCoolingTime) // Warning & Quit
210  {
211  cout << "!!Warning!! !!!TreamtmentFactory!!! Cooling Step : " << t/3600./24/365.25<< " :"
212  << " An evolution Step is probably missing ! " << " " << endl;
213  cout << t << " " << fCoolingStartingTime[i] << " " << fCoolingTime << endl;
214  fLog->fLog << "!!Warning!! !!!TreamtmentFactory!!! Cooling Step : "<< t << " :"
215  << " An evolution Step is probably missing ! " << endl;
216  exit (1);
217  }
218 
219  RemainingCoolingTime = fCoolingTime - (fInternalTime - fCoolingStartingTime[i]);
220  //Cooling Decay
221  fIVCooling[i] = GetDecay( fIVCooling[i], RemainingCoolingTime);
222 
223 #pragma omp critical(DeleteCoolingIVPB)
224  {fCoolingEndOfCycle.push_back(i);}
225 
226  }
227  else if ( fCoolingStartingTime[i] != t )
228  {
229  fIVCooling[i] = GetDecay( fIVCooling[i] , EvolutionTime);
230  }
231  }
232 #pragma omp critical(DeleteCoolingIVPB)
233  {sort (fCoolingEndOfCycle.begin(), fCoolingEndOfCycle.end());}
234 
235 }
void Pool::Dump ( )

Write Modification (exchange between Cooling, Separation and Storage)

Définition à la ligne 264 du fichier Pool.cxx.

265 {
266 //------ Cooling ------//
267  for(int i = (int)fCoolingEndOfCycle.size()-1; i >=0 ; i--) // IV End Of Cooling
268  {
269 
270  int idx = fCoolingEndOfCycle[i]; // Get Index number
271 
272  if(fPutToWaste == false)
274  else
275  fParc->AddWaste(fIVCooling[idx]);
276 
277  fCoolingEndOfCycle.erase(fCoolingEndOfCycle.begin()+i); // Remove index entry
278  RemoveIVCooling(idx); // Remove IVcooling
279 
280  }
281 
282  if((int)fCoolingEndOfCycle.size() != 0 )// Control
283  {
284  cout << "Problem while Dumping Cooling"<< endl;
285  fLog->fLog << "Problem while Dumping Cooling"<< endl;
286  exit (1);
287  }
288 }
void Pool::Evolution ( cSecond  t)

Performe the evolution until the Time t.

Définition à la ligne 239 du fichier Pool.cxx.

240 {
241 
242  // Check if the TF has been created ...
243  if(t<fCreationTime) return;
244  if(t == fInternalTime && t!=0) return;
245 
246  if(fInternalTime == 0 && IsStarted == false)
247  {
249  IsStarted = true;
250  }
251 
252  // Make the evolution for the Cooling IV ...
253  CoolingEvolution(t);
254 
255  // ... And Finaly update the AbsoluteInternalTime
256  fInternalTime = t;
257 
258 
259 
260 }
DataBank<ZAI>* Pool::GeDecayDataBase ( ) const
inline

Return the pointer to the Decay DataBase.

Définition à la ligne 80 du fichier Pool.hxx.

vector<cSecond> Pool::GetCoolingStartingTime ( ) const
inline

Return the vector of Cooling Sstarting Time.

Définition à la ligne 87 du fichier Pool.hxx.

cSecond Pool::GetCoolingTime ( ) const
inline

Return the Cooling Time.

Définition à la ligne 77 du fichier Pool.hxx.

cSecond Pool::GetCreationTime ( ) const
inline

Return Internal Time.

Définition à la ligne 76 du fichier Pool.hxx.

IsotopicVector Pool::GetDecay ( IsotopicVector  isotopicvector,
cSecond  t 
)
protected

Get IsotopicVector Decay at the t time.

Définition à la ligne 128 du fichier Pool.cxx.

129 {
130 
131  IsotopicVector IV;
132  map<ZAI ,double> isotopicquantity = isotopicvector.GetIsotopicQuantity();
133  map<ZAI ,double >::iterator it;
134  for( it = isotopicquantity.begin(); it != isotopicquantity.end(); it++)
135  {
136  if((*it).second > 0)
137  {
138  IsotopicVector ivtmp = fDecayDataBase->Evolution(it->first, t) * (*it).second ;
139  IV += ivtmp;
140  }
141  }
142 
143  return IV;
144 }
IsotopicVector Pool::GetFullCooling ( )

Définition à la ligne 173 du fichier Pool.cxx.

174 {
175 
176  IsotopicVector tmp = 0*ZAI(0,0,0);
177 
178  for(int i =0; i< (int)fIVCooling.size(); i++)
179  tmp += fIVCooling[i];
180 
181  return tmp;
182 
183 }
int Pool::GetId ( ) const
inline

Return the TF Parc'Is.

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

cSecond Pool::GetInternalTime ( ) const
inline

Return Creation Time.

Définition à la ligne 75 du fichier Pool.hxx.

vector<IsotopicVector> Pool::GetIVCooling ( ) const
inline

Return the vector of Cooling IsotopicVector.

Définition à la ligne 89 du fichier Pool.hxx.

LogFile* Pool::GetLog ( ) const
inline

Return the Pointer to the Log.

Définition à la ligne 68 du fichier Pool.hxx.

CLASS* Pool::GetParc ( ) const
inline

Return the Pointer to the Parc.

Définition à la ligne 69 du fichier Pool.hxx.

bool Pool::GetPutToWaste ( ) const
inline

Return True if IV goes to waste after cooling false instead.

Définition à la ligne 71 du fichier Pool.hxx.

Storage* Pool::GetStorage ( ) const
inline

Return the Pointer to the Storage.

Définition à la ligne 70 du fichier Pool.hxx.

void Pool::RemoveIVCooling ( int  i)

Remove a Cooling IsotopicVector.

Paramètres
iRemove a Cooling IsotopicVector

Définition à la ligne 164 du fichier Pool.cxx.

165 {
166 
167  fIVCooling.erase(fIVCooling.begin()+i);
169  fCoolingIndex.erase(fCoolingIndex.begin()+i);
170 
171 }
void Pool::SetCoolingTime ( double  time)
inline

Set Cooling Time.

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

void Pool::SetDecayDataBase ( DataBank< ZAI > *  ddb)
inline

Set the pointer to the Decay DataBase.

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

void Pool::SetId ( int  id)
inline

Set The TF Parc'Id.

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

void Pool::SetLog ( LogFile Log)
inline

Set the Pointer to the Log.

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

void Pool::SetParc ( CLASS parc)
inline

Set the Pointer to the Parc.

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

void Pool::SetPutToWaste ( bool  val)
inline

Set True if IV goes to waste after cooling false instead.

Définition à la ligne 60 du fichier Pool.hxx.

void Pool::SetStorage ( Storage storage)
inline

Set the Pointer to the Storage.

Définition à la ligne 59 du fichier Pool.hxx.

Documentation des données membres

vector<int> Pool::fCoolingEndOfCycle
protected

Index of the Cooling IV reaching the End of a Cooling Cycle.

Définition à la ligne 126 du fichier Pool.hxx.

vector<int> Pool::fCoolingIndex
protected

Vector of the Cooling Index.

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

int Pool::fCoolingLastIndex
protected

Number of Cooling IV Treated.

Définition à la ligne 125 du fichier Pool.hxx.

vector<cSecond> Pool::fCoolingStartingTime
protected

Vector of the Cooling Starting Time.

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

cSecond Pool::fCoolingTime
protected

Cooling Duration Time.

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

cSecond Pool::fCreationTime
protected

Date of Creation of the Factory.

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

DataBank<ZAI>* Pool::fDecayDataBase
protected

Pointer to the Decay DataBase.

Définition à la ligne 114 du fichier Pool.hxx.

int Pool::fId
protected

Identity of the Reactor inside the Parc.

Définition à la ligne 101 du fichier Pool.hxx.

cSecond Pool::fInternalTime
protected

Internal Clock.

Définition à la ligne 102 du fichier Pool.hxx.

vector<IsotopicVector> Pool::fIVCooling
protected

Vector of the Cooling Isotopic Vector.

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

LogFile* Pool::fLog
protected

Pointer to the Log.

Définition à la ligne 111 du fichier Pool.hxx.

CLASS* Pool::fParc
protected

Pointer to the Parc.

Définition à la ligne 108 du fichier Pool.hxx.

bool Pool::fPutToWaste
protected

True if IV goes to waste after cooling false instead.

Définition à la ligne 110 du fichier Pool.hxx.

Storage* Pool::fStorage
protected

Pointer to the Stock.

Définition à la ligne 109 du fichier Pool.hxx.

bool Pool::IsStarted
protected

True if Running, False Otherwise.

Définition à la ligne 103 du fichier Pool.hxx.


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