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

#include "Reactor.hxx"

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

Fonctions membres publiques

 Reactor ()
 < Normal Constructor. Plus de détails...
 
 Reactor (LogFile *log)
 Advbanced Constructor. Plus de détails...
 
 Reactor (LogFile *log, DataBank< IsotopicVector > *fueltypeDB, FabricationPlant *fabricationplant, Pool *Pool, double creationtime, double lifetime)
 
 Reactor (LogFile *log, DataBank< IsotopicVector > *fueltypeDB, FabricationPlant *fabricationplant, Pool *Pool, double creationtime, double lifetime, double cycletime, double HMMass, double BurnUp)
 
 Reactor (LogFile *log, DataBank< IsotopicVector > *fueltypeDB, FabricationPlant *fabricationplant, Pool *Pool, double creationtime, double lifetime, double Power, double HMMass, double BurnUp, double ChargeFactor)
 
 Reactor (LogFile *log, EvolutionData evolutivedb, Pool *Pool, double creationtime, double lifetime, double power, double HMMass, double BurnUp, double ChargeFactor)
 Normal Destructor. Plus de détails...
 
 ~Reactor ()
 
int GetId () const
 Return the Reactor Parc'Is. Plus de détails...
 
IsotopicVector GetIVReactor () const
 Return the IV contain in the Reactor. Plus de détails...
 
IsotopicVector GetIVBeginCycle () const
 Return the Starting Cycle IV (Note : IVBegin != IVIn, only if using charging plan) Plus de détails...
 
IsotopicVector GetIVOutCycle () const
 Return the Out Cycle IV. Plus de détails...
 
IsotopicVector GetIVInCycle () const
 Return the In Cycle IV (Note : IVIn != IVBegin, only if using charging plan) Plus de détails...
 
double GetPower () const
 Return the cycle time of the Reactor. Plus de détails...
 
cSecond GetCycleTime () const
 Return the cycle time of the Reactor. Plus de détails...
 
cSecond GetCreationTime () const
 Return the creation time of the Reactor. Plus de détails...
 
cSecond GetLifeTime () const
 Return the life time of the Reactor. Plus de détails...
 
EvolutionData GetEvolutionDB () const
 Return the Evolution database of the Fuel. Plus de détails...
 
PoolGetAssociedPool () const
 Return the pointer to Associeted TF. Plus de détails...
 
LogFileGetLog () const
 Return the Pointer to Log. Plus de détails...
 
bool IsFuelFixed ()
 True if using fixed Fuel, False otherwise. Plus de détails...
 
FabricationPlantGetFabricationPlant () const
 Return the Pointer to the FabricationPlant. Plus de détails...
 
DataBank< IsotopicVector > * GetFuelType () const
 Return the Fuel Type DB of the reactor. Plus de détails...
 
double GetHeavyMetalMass () const
 Return the HeavyMetal Mass in the Core at the begining of the cycle. Plus de détails...
 
double GetBurnUp () const
 Return the Burn Up of the Fuel at the end of the cycle. Plus de détails...
 
void SetId (int id)
 Set The Reactor Parc'Id. Plus de détails...
 
void SetParc (CLASS *parc)
 Set the Pointer to the Parc. Plus de détails...
 
void SetStorage (Storage *storage)
 Set the Pointer to the Storage. Plus de détails...
 
void SetLog (LogFile *LOG)
 Set the Pointer to the Log. Plus de détails...
 
void SetLifeTime (double lifetime)
 Set the life time of the Reactor. Plus de détails...
 
void SetIVReactor (IsotopicVector isotopicvector)
 Set the IV inside the Reactor Core. Plus de détails...
 
void SetIVBeginCycle (IsotopicVector isotopicvector)
 Set the IV at the Beginging of the Reactor Cycle. Plus de détails...
 
void SetIVOutCycle (IsotopicVector isotopicvector)
 Set the IV Going Out at the End of the Cycle. Plus de détails...
 
void SetIVInCycle (IsotopicVector isotopicvector)
 Set the IV Coming In at the Beginning of the Cycle. Plus de détails...
 
void SetCycleTime (double cycletime)
 Set the Power time (Cycle of the loading Plan) Plus de détails...
 
void SetPower (double Power)
 Set the Power. Plus de détails...
 
void SetHMMass (double Mass)
 Set the HeavyMetal Mass in the Core at the begining of the cycle. Plus de détails...
 
void SetBurnUp (double BU)
 Set the the Burn Up of the Fuel at the end of the cycle. Plus de détails...
 
void SetEvolutionDB (EvolutionData evolutionDB)
 Set the Pointer to the DB Evolution of the Reactor. Plus de détails...
 
void Evolution (cSecond t)
 Performe the Evolution until the Time t. Plus de détails...
 
void Dump ()
 Write Modification (IV In/Out, filling the TF...) Plus de détails...
 
void SetNewFuel (EvolutionData ivdb)
 Change the Evolutive DB of the Reactor. Plus de détails...
 

Fonctions membres protégées

 ClassDef (Reactor, 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...
 
cSecond fInCycleTime
 Time spend since the beginning of the last Cycle. Plus de détails...
 
bool fIsStarted
 True if Running, False Otherwise. Plus de détails...
 
bool fShutDown
 True if ShutDown. Plus de détails...
 
bool fEndOfCycle
 True if Reaching the End of a Reactor Cycle. Plus de détails...
 
bool fFixedFuel
 
bool fIsStorage
 
LogFilefLog
 Pointer to the Log. Plus de détails...
 
CLASSfParc
 Pointer to the main Parc. Plus de détails...
 
PoolfAssociedPool
 Pointer to the TF which collect the spend fuel. Plus de détails...
 
StoragefStorage
 
                      Pointer to the Stock

< Plus de détails...

 
EvolutionData fEvolutionDB
 Pointer to the Evolution DataBase. Plus de détails...
 
DataBank< IsotopicVector > * fFuelTypeDB
 
cSecond fCreationTime
 Pointer to a Fuel Type Database. Plus de détails...
 
cSecond fLifeTime
 LifeTime Of the Reactor (Operating's Duration) Plus de détails...
 
cSecond fCycleTime
 Cycle Time. Plus de détails...
 
double fPower
 Power (in Watt) Plus de détails...
 
IsotopicVector fIVReactor
 Fuel evoluated IV in the reactor. Plus de détails...
 
IsotopicVector fIVBeginCycle
 Fuel IV at the Beginning of a Cycle. Plus de détails...
 
IsotopicVector fIVInCycle
 IVBegin add at the Beginning of the Cycle. Plus de détails...
 
IsotopicVector fIVOutCycle
 IV wich get out at the End of a Cycle. Plus de détails...
 
FabricationPlantfFabricationPlant
 Poitner to the FabricationPlant. Plus de détails...
 
double fHeavyMetalMass
 In tons. Plus de détails...
 
double fBurnUp
 In GWd/tHM. Plus de détails...
 

Description détaillée

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

Documentation des constructeurs et destructeur

Reactor::Reactor ( )

< Normal Constructor.

Reactor::Reactor ( LogFile log)

Advbanced Constructor.

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

33 {
34 
35  fLog = log;
36 
37 }
Reactor::Reactor ( LogFile log,
DataBank< IsotopicVector > *  fueltypeDB,
FabricationPlant fabricationplant,
Pool Pool,
double  creationtime,
double  lifetime 
)

Définition à la ligne 39 du fichier Reactor.cxx.

43 {
44 
45  fLog = log;
46 
47  fIsStarted = false;
48  fShutDown = false;
49  fEndOfCycle = false;
50 
51  fFabricationPlant = fabricationplant;
52  fFixedFuel = false;
53  fBurnUp = -1.;
54  fHeavyMetalMass = -1.;
55 
56  fAssociedPool = Pool;
57 
58  fFuelTypeDB = fueltypeDB;
59 
60  fInternalTime = 0;
61  fInCycleTime = 0;
62  fPower = -1.;
63  fCycleTime = -1.; //BU in GWd/t
64 
65  fCreationTime = (cSecond)creationtime;
66  fLifeTime = (cSecond)lifetime;
67 
68  cout << "!!INFO!! !!!Reactor!!! A Reactor has been define :" << endl;
69  cout << "\t Fuel Composition is not fixed ! "<< endl;
70  cout << "\t Fuel Type set to : \t "<< fFuelTypeDB->GetFuelType() << endl;
71  cout << "\t Creation time set at \t " << (double)(fCreationTime/3600/24/365.25) << " year" << endl;
72  cout << "\t Life time (Operating's Duration) set at \t " << (double)(fLifeTime/3600/24/365.25) << " year" << endl << endl;
73  cout << "!!WARNING!! !!!Reactor!!! You need to set Burn-up/Power/CycleTime (2 of 3) & Heavy Metal Mass Manualy !! " << endl;
74 
75 
76  fLog->fLog << "!!INFO!! !!!Reactor!!! A Reactor has been define :" << endl;
77  fLog->fLog << "\t Fuel Composition is not fixed ! "<< endl;
78  fLog->fLog << "\t Fuel Type set to : \t "<< fFuelTypeDB->GetFuelType() << endl;
79  fLog->fLog << "\t Creation time set at \t " << (double)(fCreationTime/3600/24/365.25) << " year" << endl;
80  fLog->fLog << "\t Life time (Operating's Duration) set at \t " << (double)(fLifeTime/3600/24/365.25) << " year" << endl << endl;
81  fLog->fLog << "!!WARNING!! !!!Reactor!!! You need to set Burn-up/Power/CycleTime (2 of 3) & Heavy Metal Mass Manualy !! " << endl;
82 
83 
84 }
Reactor::Reactor ( LogFile log,
DataBank< IsotopicVector > *  fueltypeDB,
FabricationPlant fabricationplant,
Pool Pool,
double  creationtime,
double  lifetime,
double  cycletime,
double  HMMass,
double  BurnUp 
)

Définition à la ligne 140 du fichier Reactor.cxx.

145 {
146 
147  fLog = log;
148 
149  fIsStarted = false;
150  fShutDown = false;
151  fEndOfCycle = false;
152 
153  fFabricationPlant = fabricationplant;
154  fFixedFuel = false;
155  fBurnUp = BurnUp;
156  fHeavyMetalMass = HMMass;
157 
158  fAssociedPool = Pool;
159 
160  fFuelTypeDB = fueltypeDB;
161 
162  fInternalTime = 0;
163  fInCycleTime = 0;
164  fCycleTime = (cSecond)cycletime;
165  fCreationTime = (cSecond)creationtime;
166  fLifeTime = (cSecond)lifetime;
167  fPower = BurnUp*3600.*24. / (fCycleTime) * HMMass *1e9; //BU in GWd/t
168 
169 
170  cout << "!!INFO!! !!!Reactor!!! A Reactor has been define :" << endl;
171  cout << "\t Fuel Composition is not fixed ! "<< endl;
172  cout << "\t Fuel Type set to : \t "<< fFuelTypeDB->GetFuelType() << endl;
173  cout << "\t Creation time set at \t " << (double)(fCreationTime/3600/24/365.25) << " year" << endl;
174  cout << "\t Life time (Operating's Duration) set at \t " << (double)(fCreationTime/3600/24/365.25) << " year" << endl;
175  cout << "\t The Cycle Time set at\t " << (double)(fCycleTime/3600/24/365.25) << " year" << endl;
176  cout << "\t Burn-Up at end of Cycle set at \t " << (double)(fBurnUp) << " GWj/t" << endl;
177  cout << "\t The corresponding Effective Thermal Power is \t " << (double)(fPower *1e-6) << " MW" << endl;
178  cout << "\t The Heavy Metal Mass in the Core set at " << (double)(fHeavyMetalMass) << " tons" << endl << endl;
179 
180  fLog->fLog << "!!INFO!! !!!Reactor!!! A Reactor has been define :" << endl;
181  fLog->fLog << "\t Fuel Composition is not fixed ! "<< endl;
182  fLog->fLog << "\t Fuel Type set to : \t "<< fFuelTypeDB->GetFuelType() << endl;
183  fLog->fLog << "\t Creation time set at \t " << (double)(fCreationTime/3600/24/365.25) << " year" << endl;
184  fLog->fLog << "\t Life time (Operating's Duration) set at \t " << (double)(fCreationTime/3600/24/365.25) << " year" << endl;
185  fLog->fLog << "\t The Cycle Time set at\t " << (double)(fCycleTime/3600/24/365.25) << " year" << endl;
186  fLog->fLog << "\t Burn-Up at end of Cycle set at \t " << (double)(fBurnUp) << " GWj/t" << endl;
187  fLog->fLog << "\t The corresponding Effective Thermal Power is \t " << (double)(fPower *1e-6) << " MW" << endl;
188  fLog->fLog << "\t The Heavy Metal Mass in the Core set at " << (double)(fHeavyMetalMass) << " tons" << endl << endl;
189 
190 
191 }
Reactor::Reactor ( LogFile log,
DataBank< IsotopicVector > *  fueltypeDB,
FabricationPlant fabricationplant,
Pool Pool,
double  creationtime,
double  lifetime,
double  Power,
double  HMMass,
double  BurnUp,
double  ChargeFactor 
)

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

89 {
90 
91  fLog = log;
92 
93  fIsStarted = false;
94  fShutDown = false;
95  fEndOfCycle = false;
96 
97  fFabricationPlant = fabricationplant;
98  fFixedFuel = false;
99 
100  fAssociedPool = Pool;
101 
102  fFuelTypeDB = fueltypeDB;
103 
104  fInternalTime = 0;
105  fInCycleTime = 0;
106 
107  fBurnUp = BurnUp;
108  fHeavyMetalMass = HMMass;
109  fPower = Power*ChargeFactor;
110  fCycleTime = (cSecond) (fBurnUp*1e9 / (fPower) * fHeavyMetalMass *3600*24); //BU in GWd/t
111 
112  fCreationTime = (cSecond)creationtime;
113  fLifeTime = (cSecond)lifetime;
114 
115 
116 
117  cout << "!!INFO!! !!!Reactor!!! A Reactor has been define :" << endl;
118  cout << "\t Fuel Composition is not fixed ! "<< endl;
119  cout << "\t Fuel Type set to : \t "<< fFuelTypeDB->GetFuelType() << endl;
120  cout << "\t Creation time set at \t " << (double)(fCreationTime/3600/24/365.25) << " year" << endl;
121  cout << "\t Life time (Operating's Duration) set at \t " << (double)(fLifeTime/3600/24/365.25) << " year" << endl;
122  cout << "\t The Effective Thermal Power is \t " << (double)(fPower *1e-6) << " MW (with Full Power " << Power << " and " << ChargeFactor << " Charge Factor)"<< endl;
123  cout << "\t Burn-Up at end of Cycle set at \t " << (double)(fBurnUp) << " GWj/t" << endl;
124  cout << "\t The corresponding Cycle Time is\t " << (double)(fCycleTime/3600/24/365.25) << " year" << endl;
125  cout << "\t The Heavy Metal Mass in the Core set at " << (double)(fHeavyMetalMass) << " tons" << endl << endl;
126 
127  fLog->fLog << "!!INFO!! !!!Reactor!!! A Reactor has been define :" << endl;
128  fLog->fLog << "\t Fuel Composition is not fixed ! "<< endl;
129  fLog->fLog << "\t Fuel Type set to : \t "<< fFuelTypeDB->GetFuelType() << endl;
130  fLog->fLog << "\t Creation time set at \t " << (double)(fCreationTime/3600/24/365.25) << " year" << endl;
131  fLog->fLog << "\t Life time (Operating's Duration) set at \t " << (double)(fLifeTime/3600/24/365.25) << " year" << endl;
132  fLog->fLog << "\t The Effective Thermal Power is \t " << (double)(fPower *1e-6) << " MW (with Full Power " << Power << " and " << ChargeFactor << " Charge Factor)"<< endl;
133  fLog->fLog << "\t Burn-Up at end of Cycle set at \t " << (double)(fBurnUp) << " GWj/t" << endl;
134  fLog->fLog << "\t The corresponding Cycle Time is\t " << (double)(fCycleTime/3600/24/365.25) << " year" << endl;
135  fLog->fLog << "\t The Heavy Metal Mass in the Core set at " << (double)(fHeavyMetalMass) << " tons" << endl << endl;
136 
137 
138 }
Reactor::Reactor ( LogFile log,
EvolutionData  evolutivedb,
Pool Pool,
double  creationtime,
double  lifetime,
double  power,
double  HMMass,
double  BurnUp,
double  ChargeFactor 
)

Normal Destructor.

Définition à la ligne 194 du fichier Reactor.cxx.

199 {
200 
201  fLog = log;
202 
203  fIsStarted = false;
204  fShutDown = false;
205  fEndOfCycle = false;
206 
207 
208 
209 
210 
211 
212 
213  fFixedFuel = true;
214  fIsStorage = false;
215 
216  fAssociedPool = Pool;
217 
218  fInternalTime = 0;
219  fInCycleTime = 0;
220  fCreationTime = (cSecond)creationtime;
221  fLifeTime = (cSecond)lifetime;
222 
223  fPower = power * ChargeFactor;
224 
225  fHeavyMetalMass = HMMass;
226 
227  map<ZAI, double> ZAImass;
228  ZAImass.insert( pair< ZAI,double >( ZAI(92,238,0), 238050788.247e-6 ) );
229  ZAImass.insert( pair< ZAI,double >( ZAI(92,235,0), 235043929.918e-6 ) );
230  ZAImass.insert( pair< ZAI,double >( ZAI(94,238,0), 238049559.894e-6 ) );
231  ZAImass.insert( pair< ZAI,double >( ZAI(94,239,0), 239052163.381e-6 ) );
232  ZAImass.insert( pair< ZAI,double >( ZAI(94,240,0), 240053813.545e-6 ) );
233  ZAImass.insert( pair< ZAI,double >( ZAI(94,241,0), 241056851.456e-6 ) );
234  ZAImass.insert( pair< ZAI,double >( ZAI(94,242,0), 242058742.611e-6 ) );
235  ZAImass.insert( pair< ZAI,double >( ZAI(95,241,0), 241056829.144e-6 ) );
236 
237  double Na = 6.02214129e23; //N Avogadro
238  map<ZAI ,double>::iterator it;
239  map<ZAI ,double> isotopicquantity = evolutivedb.GetIsotopicVectorAt(0.).GetActinidesComposition().GetIsotopicQuantity();
240  double M0 = 0;
241  for( it = isotopicquantity.begin(); it != isotopicquantity.end(); it++ )
242  M0 += (*it).second*ZAImass.find( (*it).first )->second/Na*1e-6;
243 
244  fEvolutionDB = evolutivedb * (fHeavyMetalMass/M0);
245 
246  fBurnUp = BurnUp;
247  fCycleTime = (cSecond) (fBurnUp*1e9 / (fPower) * fHeavyMetalMass *3600*24);
248 
252 
253  cout << "!!INFO!! !!!Reactor!!! A Reactor has been define :" << endl;
254  cout << "\t Fuel Composition is fixed ! "<< endl;
255  cout << "\t Creation time set at \t " << (double)(fCreationTime/3600/24/365.25) << " year" << endl;
256  cout << "\t Life time (Operating's Duration) set at \t " << (double)(fLifeTime/3600/24/365.25) << " year" << endl;
257  cout << "\t The Cycle Time set at\t " << (double)(fCycleTime/3600/24/365.25) << " year" << endl;
258  cout << "\t The Effective Thermal Power is \t " << (double)(fPower *1e-6) << " MW (with Full Power " << power << " and " << ChargeFactor << " Charge Factor)"<< endl;
259  cout << "\t The Heavy Metal Mass in the Core set at " << (double)(fHeavyMetalMass) << " tons" << endl << endl;
260 
261  fLog->fLog << "!!INFO!! !!!Reactor!!! A Reactor has been define :" << endl;
262  fLog->fLog << "\t Fuel Composition is fixed ! "<< endl;
263  fLog->fLog << "\t Creation time set at \t " << (double)(fCreationTime/3600/24/365.25) << " year" << endl;
264  fLog->fLog << "\t Life time (Operating's Duration) set at \t " << (double)(fLifeTime/3600/24/365.25) << " year" << endl;
265  fLog->fLog << "\t The Cycle Time set at\t " << (double)(fCycleTime/3600/24/365.25) << " year" << endl;
266  fLog->fLog << "\t The Effective Thermal Power is \t " << (double)(fPower *1e-6) << " MW (with Full Power " << power << " and " << ChargeFactor << " Charge Factor)"<< endl;
267  fLog->fLog << "\t The Heavy Metal Mass in the Core set at " << (double)(fHeavyMetalMass) << " tons" << endl << endl;
268 
269 
270 }
Reactor::~Reactor ( )

Définition à la ligne 274 du fichier Reactor.cxx.

275 {
276 
277 
278 }

Documentation des fonctions membres

Reactor::ClassDef ( Reactor  ,
 
)
protected
void Reactor::Dump ( )

Write Modification (IV In/Out, filling the TF...)

Définition à la ligne 401 du fichier Reactor.cxx.

402 {
403 
404 
405  if(fInternalTime < fCreationTime) return;
406  if(fShutDown == true && fIsStarted == false) return; // Reactor stopped...
407 
408  if(fFixedFuel == true)
409  {
410 
411  if(fEndOfCycle == true && fShutDown == false )
412  {
413  fEndOfCycle = false;
414 
415  if(fIsStarted == true ) // A Cycle has already been done
417  else fIsStarted = true; // Just start the first cycle
418 
419  if(fParc->GetStockManagement() == false && fIsStorage == true)
420  {
421  IsotopicVector BuildIVtmp ;
422  IsotopicVector GodPart;
423 
424  //Get The Storage Compostion
425  BuildIVtmp.Add(fStorage->GetFullStock().GetIsotopicQuantity());
426  //Get the rest after IVIn creation
427  BuildIVtmp -= fIVInCycle;
428  //Get the God part form this rest
429  GodPart.Add(BuildIVtmp.GetIsotopicQuantityNeeded()) ;
430  //Take what you can from Storage...
431  fStorage->TakeFromStock( fIVInCycle - GodPart);
432  //And Get the rest from God
433  fParc->AddGod(GodPart);
434 
435  }
436  else fParc->AddGod(fIVInCycle);
437 
439  fInCycleTime = 0;
440  }
441  else if (fEndOfCycle == true && fShutDown == true) //shutdown at end of Cycle
442  {
443 
445  fIVReactor.Clear();
446  fInCycleTime = 0;
447  fIsStarted = false; // shut down the Reactor
448  }
449  else if (fEndOfCycle == false && fShutDown == true) //shutdown during Cycle
450  {
452  fIVReactor.Clear();
453  fInCycleTime = 0;
454  fIsStarted = false; // shut down the Reactor
455  }
456  }
457  else
458  {
459  if(fParc->GetStockManagement() == false)
460  {
461  cout << "!!Warning!! !!!Reactor!!! Can't have unfixedFuel without stock management'" << endl;
462  fLog->fLog << "!!Warning!! !!!Reactor!!! Can't have unfixedFuel without stock management" << endl;
463  exit(1);
464  }
465 
466 
467  if(fEndOfCycle == true && fShutDown == false )
468  {
469  fEndOfCycle = false;
470 
471  if(fIsStarted == true ) // A Cycle has already been done
472  {
474  }
475  else fIsStarted = true; // Just start the first cycle
476 
479 
480 
482  fInCycleTime = 0;
483 
484  }
485  else if (fEndOfCycle == true && fShutDown == true) //shutdown at end of Cycle
486  {
488  fIVReactor.Clear();
489  fInCycleTime = 0;
490  fIsStarted = false; // shut down the Reactor
491  }
492  else if (fEndOfCycle == false && fShutDown == true) //shutdown during Cycle
493  {
495  fIVReactor.Clear();
496  fInCycleTime = 0;
497  fIsStarted = false; // shut down the Reactor
498  }
499 
500 
501 
502  }
503 
504 
505 }
void Reactor::Evolution ( cSecond  t)

Performe the Evolution until the Time t.

Définition à la ligne 330 du fichier Reactor.cxx.

331 {
332 
333 
334  if( fShutDown == true || t < fCreationTime ) return; // Reactor stop or not started...
335 
336  if(Norme(fIVReactor)!=0){
337 #pragma omp critical(ParcPowerUpdate)
338  {fParc->AddToPower(fPower);}
339  }
340  else if(fIsStarted==true){
341  fLog->fLog << "!!Warning!! !!!Reactor!!!"
342  << " Reactor should be working but there is no Heavy Nucleus Inside. It's not working so have a zero power..."
343  << " Time : "<< t/365.25/3600/24 << " years" << endl;
344  }
345 
346 
347  if( t == fInternalTime && t!=0 ) return;
348 
349 
350 
351  if(fInternalTime == 0 && fIsStarted == false) // Start of the Reactor
352  {
353  fEndOfCycle = true;
355  fInternalTime = t;
356 
357  }
358 
359  // Check if the Reactor if started ...
360  if(fIsStarted == false) return; // If the reactor just start don't need to make Fuel evolution
361 
362 
363  cSecond EvolutionTime = t - fInternalTime; // Calculation of the evolution time (relativ)
364 
365  if( EvolutionTime + fInCycleTime == fCycleTime ) //End of Cycle
366  {
367  fEndOfCycle = true;
368  fInternalTime += EvolutionTime; // Update Internal Time
369  fInCycleTime += EvolutionTime; // Update InCycleTime
370 
371  if(t >= fCreationTime + fLifeTime) // if the Next Cycle don't 'Exist...
372  fShutDown = true;
373 
374  }
375  else if(EvolutionTime + fInCycleTime < fCycleTime ) // During Cycle
376  {
377 
378  fInternalTime += EvolutionTime; // Update Internal Time
379  fInCycleTime += EvolutionTime; // Update InCycleTime
380 
382  if(t>=fCreationTime + fLifeTime) fShutDown = true;
383  }
384  else
385  {
386  // This is so bad!! You will probably unsynchronize all the reactor....
387  cout << "!!Warning!! !!!Reactor!!!"
388  << " Evolution is too long! This is a Bad way to deal the evolution of the reactor..."
389  << t/365.25/3600/24 << " :" << endl;
390 
391  fLog->fLog << "!!Warning!! !!!Reactor!!!"
392  << " Evolution is too long! This is a Bad way to deal the evolution of the reactor..."
393  << t/365.25/3600/24 << " :" << endl;
394  exit(1);
395  }
396 
397 
398 }
Pool* Reactor::GetAssociedPool ( ) const
inline

Return the pointer to Associeted TF.

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

double Reactor::GetBurnUp ( ) const
inline

Return the Burn Up of the Fuel at the end of the cycle.

Définition à la ligne 82 du fichier Reactor.hxx.

cSecond Reactor::GetCreationTime ( ) const
inline

Return the creation time of the Reactor.

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

cSecond Reactor::GetCycleTime ( ) const
inline

Return the cycle time of the Reactor.

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

EvolutionData Reactor::GetEvolutionDB ( ) const
inline

Return the Evolution database of the Fuel.

Définition à la ligne 74 du fichier Reactor.hxx.

FabricationPlant* Reactor::GetFabricationPlant ( ) const
inline

Return the Pointer to the FabricationPlant.

Définition à la ligne 79 du fichier Reactor.hxx.

DataBank<IsotopicVector>* Reactor::GetFuelType ( ) const
inline

Return the Fuel Type DB of the reactor.

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

double Reactor::GetHeavyMetalMass ( ) const
inline

Return the HeavyMetal Mass in the Core at the begining of the cycle.

Définition à la ligne 81 du fichier Reactor.hxx.

int Reactor::GetId ( ) const
inline

Return the Reactor Parc'Is.

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

IsotopicVector Reactor::GetIVBeginCycle ( ) const
inline

Return the Starting Cycle IV (Note : IVBegin != IVIn, only if using charging plan)

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

IsotopicVector Reactor::GetIVInCycle ( ) const
inline

Return the In Cycle IV (Note : IVIn != IVBegin, only if using charging plan)

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

IsotopicVector Reactor::GetIVOutCycle ( ) const
inline

Return the Out Cycle IV.

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

IsotopicVector Reactor::GetIVReactor ( ) const
inline

Return the IV contain in the Reactor.

Définition à la ligne 65 du fichier Reactor.hxx.

cSecond Reactor::GetLifeTime ( ) const
inline

Return the life time of the Reactor.

Définition à la ligne 72 du fichier Reactor.hxx.

LogFile* Reactor::GetLog ( ) const
inline

Return the Pointer to Log.

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

double Reactor::GetPower ( ) const
inline

Return the cycle time of the Reactor.

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

bool Reactor::IsFuelFixed ( )
inline

True if using fixed Fuel, False otherwise.

Définition à la ligne 78 du fichier Reactor.hxx.

void Reactor::SetBurnUp ( double  BU)
inline

Set the the Burn Up of the Fuel at the end of the cycle.

Définition à la ligne 99 du fichier Reactor.hxx.

void Reactor::SetCycleTime ( double  cycletime)

Set the Power time (Cycle of the loading Plan)

Définition à la ligne 281 du fichier Reactor.cxx.

282 {
283  if(fFixedFuel==true)
284  {
285  fCycleTime = (cSecond)cycletime;
287  }
288  else
289  {
290  fCycleTime = (cSecond)cycletime;
291  fPower = fBurnUp*3600*24 / (fCycleTime) * fHeavyMetalMass *1e9; //BU in GWd/t
292  }
293 }
void Reactor::SetEvolutionDB ( EvolutionData  evolutionDB)

Set the Pointer to the DB Evolution of the Reactor.

Définition à la ligne 311 du fichier Reactor.cxx.

312 {
313 
314  fEvolutionDB = evolutionDB;
317 
318 
319 }
void Reactor::SetHMMass ( double  Mass)
inline

Set the HeavyMetal Mass in the Core at the begining of the cycle.

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

void Reactor::SetId ( int  id)
inline

Set The Reactor Parc'Id.

Définition à la ligne 86 du fichier Reactor.hxx.

void Reactor::SetIVBeginCycle ( IsotopicVector  isotopicvector)
inline

Set the IV at the Beginging of the Reactor Cycle.

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

void Reactor::SetIVInCycle ( IsotopicVector  isotopicvector)
inline

Set the IV Coming In at the Beginning of the Cycle.

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

void Reactor::SetIVOutCycle ( IsotopicVector  isotopicvector)
inline

Set the IV Going Out at the End of the Cycle.

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

void Reactor::SetIVReactor ( IsotopicVector  isotopicvector)
inline

Set the IV inside the Reactor Core.

Définition à la ligne 92 du fichier Reactor.hxx.

void Reactor::SetLifeTime ( double  lifetime)
inline

Set the life time of the Reactor.

Définition à la ligne 90 du fichier Reactor.hxx.

void Reactor::SetLog ( LogFile LOG)
inline

Set the Pointer to the Log.

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

void Reactor::SetNewFuel ( EvolutionData  ivdb)

Change the Evolutive DB of the Reactor.

Définition à la ligne 322 du fichier Reactor.cxx.

323 {
324 
325  SetEvolutionDB(ivdb);
326 
327 }
void Reactor::SetParc ( CLASS parc)
inline

Set the Pointer to the Parc.

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

void Reactor::SetPower ( double  Power)

Set the Power.

Définition à la ligne 295 du fichier Reactor.cxx.

296 {
297  if(fFixedFuel==true)
298  {
299  fPower = Power;
301  }
302  else
303  {
304  fPower = Power;
305  fCycleTime = (cSecond)(fBurnUp*1e9 / (fPower) * fHeavyMetalMass *3600*24); //BU in GWd/t
306  }
307 
308 }
void Reactor::SetStorage ( Storage storage)
inline

Set the Pointer to the Storage.

Définition à la ligne 88 du fichier Reactor.hxx.

Documentation des données membres

Pool* Reactor::fAssociedPool
protected

Pointer to the TF which collect the spend fuel.

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

double Reactor::fBurnUp
protected

In GWd/tHM.

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

cSecond Reactor::fCreationTime
protected

Pointer to a Fuel Type Database.

CLASS Universal Time of Creation

Définition à la ligne 130 du fichier Reactor.hxx.

cSecond Reactor::fCycleTime
protected

Cycle Time.

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

bool Reactor::fEndOfCycle
protected

True if Reaching the End of a Reactor Cycle.

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

EvolutionData Reactor::fEvolutionDB
protected

Pointer to the Evolution DataBase.

Définition à la ligne 127 du fichier Reactor.hxx.

FabricationPlant* Reactor::fFabricationPlant
protected

Poitner to the FabricationPlant.

Définition à la ligne 144 du fichier Reactor.hxx.

bool Reactor::fFixedFuel
protected

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

DataBank<IsotopicVector>* Reactor::fFuelTypeDB
protected

Définition à la ligne 128 du fichier Reactor.hxx.

double Reactor::fHeavyMetalMass
protected

In tons.

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

int Reactor::fId
protected

Identity of the Reactor inside the Parc.

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

cSecond Reactor::fInCycleTime
protected

Time spend since the beginning of the last Cycle.

Définition à la ligne 113 du fichier Reactor.hxx.

cSecond Reactor::fInternalTime
protected

Internal Clock.

Définition à la ligne 112 du fichier Reactor.hxx.

bool Reactor::fIsStarted
protected

True if Running, False Otherwise.

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

bool Reactor::fIsStorage
protected

Définition à la ligne 119 du fichier Reactor.hxx.

IsotopicVector Reactor::fIVBeginCycle
protected

Fuel IV at the Beginning of a Cycle.

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

IsotopicVector Reactor::fIVInCycle
protected

IVBegin add at the Beginning of the Cycle.

Définition à la ligne 137 du fichier Reactor.hxx.

IsotopicVector Reactor::fIVOutCycle
protected

IV wich get out at the End of a Cycle.

Définition à la ligne 138 du fichier Reactor.hxx.

IsotopicVector Reactor::fIVReactor
protected

Fuel evoluated IV in the reactor.

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

cSecond Reactor::fLifeTime
protected

LifeTime Of the Reactor (Operating's Duration)

Définition à la ligne 131 du fichier Reactor.hxx.

LogFile* Reactor::fLog
protected

Pointer to the Log.

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

CLASS* Reactor::fParc
protected

Pointer to the main Parc.

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

double Reactor::fPower
protected

Power (in Watt)

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

bool Reactor::fShutDown
protected

True if ShutDown.

Définition à la ligne 115 du fichier Reactor.hxx.

Storage* Reactor::fStorage
protected

                      Pointer to the Stock

<

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


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