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

#include "FabricationPlant.hxx"

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

Fonctions membres publiques

 FabricationPlant ()
 < Normal constructor Plus de détails...
 
 FabricationPlant (LogFile *log)
 
 FabricationPlant (LogFile *log, Storage *storage, Storage *reusable, double fabricationtime=365.25 *24 *3600 *2)
 Normal Destructor. Plus de détails...
 
 ~FabricationPlant ()
 
void SetUpdateReferenceDBatEachStep (bool val)
 
void SetId (int id)
 Set The FB 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 SetDecayDataBase (DataBank< ZAI > *ddb)
 Set the pointer to the Decay DataBase. Plus de détails...
 
void SetChronologicalTimePriority (bool bval)
 Set the chronological priority (true for chronological, false unstead) Plus de détails...
 
void SetSubstitutionFuel (EvolutionData fuel)
 
void AddReactor (int reactorid, double creationtime)
 Add a new reactor. Plus de détails...
 
LogFileGetLog ()
 Return the Pointer to the Log. Plus de détails...
 
CLASSGetParc ()
 Return the Pointer to the Parc. Plus de détails...
 
int GetId ()
 
StorageGetStorage ()
 Return the Pointer to the Storage. Plus de détails...
 
cSecond GetInternalTime () const
 Return Creation Time. Plus de détails...
 
cSecond GetFabricationTime () const
 Return the Fabrication Time. Plus de détails...
 
map< int, IsotopicVectorGetReactorFuturIncome () const
 Return the List of the Futur Fuel IV. Plus de détails...
 
DataBank< ZAI > * GeDecayDataBase () const
 Return the pointer to the DecayDB. Plus de détails...
 
IsotopicVector GetFullFabrication ()
 
EvolutionData GetReactorEvolutionDB (int ReactorId)
 Return the EvolutionData of Reactor ReactorId. Plus de détails...
 
void AddValorisableIV (ZAI zai, double factor)
 Add Valorisable Element. Plus de détails...
 
void Evolution (cSecond t)
 Perform the Evolution. Plus de détails...
 
void BuildFuelForReactor (int ReactorId)
 Build a Fuel for the reactor ReactorId. Plus de détails...
 
void RecycleStock (double fraction)
 Take a franction of the current stock. Plus de détails...
 
IsotopicVector GetStockToRecycle ()
 Get the next stock to recycle. Plus de détails...
 
void DumpStock ()
 Update the storage. Plus de détails...
 
EvolutionData BuildEvolutiveDB (int ReactorId, IsotopicVector isotopicvector)
 Build the Evolution Database for the Reactir ReactorId Fuel. Plus de détails...
 
void TakeReactorFuel (int Id)
 Remove the Fuel of reactor ReactorId. 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 FabricationPlantEvolution (cSecond t)
 Deal the FabricationPlant Evolution. Plus de détails...
 
pair< IsotopicVector,
IsotopicVector
Separation (IsotopicVector isotopicvector)
 
                   Make the Separation 

< return IV[0] -> To Stock / IV[1] -> To Waste Plus de détails...

 
 ClassDef (FabricationPlant, 1)
 

Attributs protégés

int fId
 Identity of the FabricationPlant inside the Parc. Plus de détails...
 
cSecond fInternalTime
 Internal Clock. Plus de détails...
 
bool fUpdateReferenceDBatEachStep
 
CLASSfParc
 Pointer to the Parc. Plus de détails...
 
LogFilefLog
 Pointer to the Log. Plus de détails...
 
map< ZAI,double > fValorisableIV
 The Valorisable Table. Plus de détails...
 
map< int, cSecondfReactorNextStep
 Next Time Step to Build a New Fuel. Plus de détails...
 
map< int, EvolutionDatafReactorFuturDB
 List of the Futur EvolutionData use in the reactor. Plus de détails...
 
map< int, IsotopicVectorfReactorFuturIV
 List of the Futur Fuel Isotopic Vector used in the reactor. Plus de détails...
 
DataBank< ZAI > * fDecayDataBase
 Pointer to the Decay DataBase. Plus de détails...
 
StoragefStorage
 Pointer to the Storage to recycle. Plus de détails...
 
StoragefReUsable
 Pointer to the Storage using for recycling unused Product. Plus de détails...
 
vector< pair< int, double > > fFractionToTake
 The Temporary Storage IsotopicVector. Plus de détails...
 
double fFabricationTime
 Fabrication Duration Time. Plus de détails...
 
bool fChronologicalTimePriority
 Set the Chronological Priotity (for the Stock Management) or the anti-chronological one. Plus de détails...
 
bool fSubstitutionFuel
 
EvolutionData fSubstitutionEvolutionData
 

Description détaillée

Définition à la ligne 39 du fichier FabricationPlant.hxx.

Documentation des constructeurs et destructeur

FabricationPlant::FabricationPlant ( )

< Normal constructor

Définition à la ligne 41 du fichier FabricationPlant.cxx.

42 {
43 
44 
45 
46 }
FabricationPlant::FabricationPlant ( LogFile log)

Définition à la ligne 48 du fichier FabricationPlant.cxx.

49 {
50 
51  fLog = log;
53  fFabricationTime = -1;
55  fSubstitutionFuel = false;
56 
57  // Warning
58 
59  cout << "!!INFO!! !!!FabricationPlant!!! A FabricationPlant has been define :" << endl;
60  cout << "\t Chronological Stock Priority set! "<< endl << endl;
61  cout << "!!WARNING!! !!!FabricationPlant!!! You need to set the different stock manually as well as the Fabrication Time Manualy !! " << endl;
62 
63  fLog->fLog << "!!INFO!! !!!FabricationPlant!!! A FabricationPlant has been define :" << endl;
64  fLog->fLog << "\t Chronological Stock Priority set! "<< endl << endl;
65  fLog->fLog << "!!WARNING!! !!!FabricationPlant!!! You need to set the different stock manually as well as the Fabrication Time Manualy !! " << endl;
66 
67 
68 }
FabricationPlant::FabricationPlant ( LogFile log,
Storage storage,
Storage reusable,
double  fabricationtime = 365.25*24*3600*2 
)

Normal Destructor.

Définition à la ligne 70 du fichier FabricationPlant.cxx.

71 {
72 
73  fLog = log;
74 
77  fSubstitutionFuel = false;
78 
79  fFabricationTime = (cSecond)fabircationtime;
80  fStorage = storage;
81  fReUsable = reusable;
82 
83 
84  cout << "!!INFO!! !!!FabricationPlant!!! A FabricationPlant has been define :" << endl;
85  cout << "\t Chronological Stock Priority has been set! "<< endl;
86  cout << "\t Fabrication time set to \t " << (double)(fFabricationTime/3600/24/365.25) << " year" << endl << endl;
87 
88  fLog->fLog << "!!INFO!! !!!FabricationPlant!!! A FabricationPlant has been define :" << endl;
89  fLog->fLog << "\t Chronological Stock Priority has been set! "<< endl;
90  fLog->fLog << "\t Fabrication time set to \t " << (double)(fFabricationTime/3600/24/365.25) << " year" << endl << endl;
91 
92 
93 }
FabricationPlant::~FabricationPlant ( )

Définition à la ligne 98 du fichier FabricationPlant.cxx.

99 {
100 
101 
102 }

Documentation des fonctions membres

void FabricationPlant::AddReactor ( int  reactorid,
double  creationtime 
)
inline

Add a new reactor.

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

void FabricationPlant::AddValorisableIV ( ZAI  zai,
double  factor 
)

Add Valorisable Element.

Définition à la ligne 106 du fichier FabricationPlant.cxx.

107 {
108 
109  pair<map<ZAI, double>::iterator, bool> IResult;
110  if(factor > 1) factor = 1;
111 
112  if(factor > 0)
113  {
114  IResult = fValorisableIV.insert( pair<ZAI ,double>(zai, factor));
115  if(IResult.second == false)
116  IResult.first->second = factor;
117  }
118 
119 }
EvolutionData FabricationPlant::BuildEvolutiveDB ( int  ReactorId,
IsotopicVector  isotopicvector 
)

Build the Evolution Database for the Reactir ReactorId Fuel.

Définition à la ligne 404 du fichier FabricationPlant.cxx.

405 {
406 
407  DataBank<IsotopicVector>* evolutiondb = fParc->GetReactor()[ReactorId]->GetFuelType();
408 
409  isotopicvector = GetDecay(isotopicvector, fFabricationTime);
410 
411  EvolutionData EvolBuild;
412  /*
413  if( fUpdateReferenceDBatEachStep == true )
414  {
415  EvolutionData EvolBuild = evolutiondb->GenerateDB(isotopicvector,
416  fParc->GetReactor()[ReactorId]->GetCycleTime(),
417  fParc->GetReactor()[ReactorId]->GetPower());
418  }
419  else
420  {
421  map<double, EvolutionData> distances = evolutiondb->GetDistancesTo(isotopicvector);
422  EvolBuild = distances.begin()->second.GenerateDBFor(isotopicvector);
423 
424  }
425  */
426  EvolBuild = evolutiondb->GenerateEvolutionData(isotopicvector,
427  fParc->GetReactor()[ReactorId]->GetCycleTime(),
428  fParc->GetReactor()[ReactorId]->GetPower());
429 
430  return EvolBuild;
431 
432 }
void FabricationPlant::BuildFuelForReactor ( int  ReactorId)

Build a Fuel for the reactor ReactorId.

Définition à la ligne 170 du fichier FabricationPlant.cxx.

171 {
172 
173 
174  DataBank<IsotopicVector>* FuelType = fParc->GetReactor()[ReactorId]->GetFuelType();
175 
176 
177  if(FuelType->GetFuelType() != "MOX")
178  {
179  cout << "!!Bad Trouble!! !!!FabricationPlant!!! Try to do MOX with a not MOXed DB "<< endl;
180  fLog->fLog << "!!Bad Trouble!! !!!FabricationPlant!!! Try to do MOX with a not MOXed DB" << endl;
181  exit (1);
182  }
183  map<ZAI, double> ZAImass;
184  ZAImass.insert( pair< ZAI,double >( ZAI(92,238,0), 238050788.247e-6 ) );
185  ZAImass.insert( pair< ZAI,double >( ZAI(92,235,0), 235043929.918e-6 ) );
186  ZAImass.insert( pair< ZAI,double >( ZAI(94,238,0), 238049559.894e-6 ) );
187  ZAImass.insert( pair< ZAI,double >( ZAI(94,239,0), 239052163.381e-6 ) );
188  ZAImass.insert( pair< ZAI,double >( ZAI(94,240,0), 240053813.545e-6 ) );
189  ZAImass.insert( pair< ZAI,double >( ZAI(94,241,0), 241056851.456e-6 ) );
190  ZAImass.insert( pair< ZAI,double >( ZAI(94,242,0), 242058742.611e-6 ) );
191  ZAImass.insert( pair< ZAI,double >( ZAI(95,241,0), 241056829.144e-6 ) );
192 
193 
194  double Na = 6.02214129e23; //N Avogadro
195 
196  double HMmass = fParc->GetReactor()[ReactorId]->GetHeavyMetalMass();
197  double BU = fParc->GetReactor()[ReactorId]->GetBurnUp();
198  IsotopicVector FullUsedStock;
199  IsotopicVector stock;
200 
201  bool FuelBuild = false;
202  while(!FuelBuild)
203  {
204  double nPu_0 = 0;
205  double MPu_0 = 0;
206  {
207  map<ZAI ,double>::iterator it;
208 
209  map<ZAI ,double> isotopicquantity = GetDecay( FullUsedStock , fFabricationTime).GetSpeciesComposition(94).GetIsotopicQuantity();
210  for( it = isotopicquantity.begin(); it != isotopicquantity.end(); it++ )
211  nPu_0 += (*it).second;
212 
213  isotopicquantity = FullUsedStock.GetSpeciesComposition(94).GetIsotopicQuantity();
214  for( it = isotopicquantity.begin(); it != isotopicquantity.end(); it++ )
215  MPu_0 += (*it).second*ZAImass.find( (*it).first )->second/Na*1e-6;
216  }
217 
218  stock = GetStockToRecycle();
219 
220  if( stock.GetZAIIsotopicQuantity(ZAI(-1,-1,-1)) == 1 ) // Not enought stock to build the needed fuel
221  {
222  if (!fSubstitutionFuel)
223  {
224  {
225  EvolutionData evolutiondb;
226  pair<map<int, EvolutionData>::iterator, bool> IResult;
227  IResult = fReactorFuturDB.insert( pair<int, EvolutionData>(ReactorId,evolutiondb) );
228  if(IResult.second == false)
229  IResult.first->second = evolutiondb;
230  }
231  {
232  IsotopicVector EmptyIV;
233  pair<map<int, IsotopicVector>::iterator, bool> IResult;
234  IResult = fReactorFuturIV.insert( pair<int, IsotopicVector>(ReactorId,EmptyIV) );
235  if(IResult.second == false)
236  IResult.first->second = EmptyIV;
237  }
238  }
239  else
240  {
241  {
242  EvolutionData evolutiondb = fSubstitutionEvolutionData* HMmass;
243  pair<map<int, EvolutionData>::iterator, bool> IResult;
244  IResult = fReactorFuturDB.insert( pair<int, EvolutionData>(ReactorId,evolutiondb) );
245  if(IResult.second == false)
246  IResult.first->second = evolutiondb;
247  }
248  {
250  pair<map<int, IsotopicVector>::iterator, bool> IResult;
251  IResult = fReactorFuturIV.insert( pair<int, IsotopicVector>(ReactorId, IV) );
252  if(IResult.second == false)
253  IResult.first->second = IV;
254  }
255 
256  }
257  FuelBuild = true;
258  fFractionToTake.clear();
259  }
260  else
261  {
262  double nPu_1 = 0;
263  double MPu_1 = 0;
264  double Sum_AlphaI_nPuI = 0;
265  double Sum_AlphaI_nPuI0 = 0;
266  {
267  map<ZAI ,double>::iterator it;
268  map<ZAI ,double> isotopicquantity = GetDecay( stock , fFabricationTime).GetSpeciesComposition(94).GetIsotopicQuantity();
269 
270  for( it = isotopicquantity.begin(); it != isotopicquantity.end(); it++ )
271  {
272  if ((*it).first.A() >= 238 && (*it).first.A() <= 242)
273  {
274  nPu_1 += (*it).second;
275  Sum_AlphaI_nPuI += FuelType->GetFuelParameter()[(*it).first.A() -237]*(*it).second;
276  }
277  }
278 
279  isotopicquantity = stock.GetSpeciesComposition(94).GetIsotopicQuantity();
280  for( it = isotopicquantity.begin(); it != isotopicquantity.end(); it++ )
281  if ((*it).first.A() >= 238 && (*it).first.A() <= 242)
282  {
283  MPu_1 += (*it).second * (ZAImass.find( (*it).first )->second)/Na*1e-6;
284  }
285 
286  isotopicquantity = GetDecay( FullUsedStock , fFabricationTime).GetSpeciesComposition(94).GetIsotopicQuantity();
287  for( it = isotopicquantity.begin(); it != isotopicquantity.end(); it++ )
288  if ((*it).first.A() >= 238 && (*it).first.A() <= 242)
289  {
290  Sum_AlphaI_nPuI0 += FuelType->GetFuelParameter()[(*it).first.A() -237]*(*it).second;
291  }
292  }
293 
294  double StockFactionToUse = 0;
295 
296  double NT = HMmass*1e6 * Na / (ZAImass.find( ZAI(92,238,0) )->second*0.997 + ZAImass.find( ZAI(92,235,0) )->second*0.003 );
297 
298  double N1 = (BU - FuelType->GetFuelParameter()[6]) * NT;
299  double N2 = -Sum_AlphaI_nPuI0;
300  double N3 = -FuelType->GetFuelParameter()[0] * Na / (ZAImass.find( ZAI(92,238,0) )->second*0.997 + ZAImass.find( ZAI(92,235,0) )->second*0.003 ) * (HMmass*1e6 - MPu_0*1e6);
301 
302  double D1 = Sum_AlphaI_nPuI;
303  double D2 = -FuelType->GetFuelParameter()[0] * MPu_1*1e6 * Na / (ZAImass.find( ZAI(92,238,0) )->second*0.997 + ZAImass.find( ZAI(92,235,0) )->second*0.003 ) ;
304 
305  StockFactionToUse = (N1 + N2 + N3) / (D1 + D2);
306 
307  if(StockFactionToUse < 0)
308  {
309  cout << "!!Bad Trouble!! !!!FabricationPlant!!! Oups Bug in calculating stock fraction to use "<< endl;
310  fLog->fLog << "!!Bad Trouble!! !!!FabricationPlant!!! Oups Bug in calculating stock fraction to use" << endl;
311  exit (1);
312  }
313 
314  if( StockFactionToUse > 1 )
315  {
316 
317  FullUsedStock += stock;
318  RecycleStock(1);
319  FuelBuild = false;
320  }
321  else
322  {
323  RecycleStock(StockFactionToUse);
324 
325  IsotopicVector IVBeginCycle;
326  FuelBuild = true;
327 
328  ZAI U8 = ZAI(92,238,0);
329  ZAI U5 = ZAI(92,235,0);
330  double U8_Quantity = (HMmass - (MPu_0+StockFactionToUse*MPu_1 ))/(ZAImass.find( ZAI(92,238,0) )->second*0.997 + ZAImass.find( ZAI(92,235,0) )->second*0.003 )*Na/1e-6;
331 
332  fParc->AddGodIncome( U8, U8_Quantity*0.997 );
333  fParc->AddGodIncome( U5, U8_Quantity*0.003 );
334 
335  for(int i = (int)fFractionToTake.size()-1; i >= 0; i--)
336  {
337  IVBeginCycle += fStorage->GetStock()[fFractionToTake[i].first].GetSpeciesComposition(94)*( fFractionToTake[i].second );
339  - fStorage->GetStock()[fFractionToTake[i].first].GetSpeciesComposition(94)*(fFractionToTake[i].second));
340 
342 
343  }
344  fFractionToTake.clear();
345 
346  IVBeginCycle += U8_Quantity*U8*0.997 + U8_Quantity*U5*0.003;
347  EvolutionData evolutiondb = BuildEvolutiveDB(ReactorId, IVBeginCycle);
348 
349  {
350  pair<map<int, EvolutionData>::iterator, bool> IResult;
351  IResult = fReactorFuturDB.insert( pair<int, EvolutionData>(ReactorId,evolutiondb) );
352  if(IResult.second == false)
353  IResult.first->second = evolutiondb;
354  }
355  {
356  pair<map<int, IsotopicVector>::iterator, bool> IResult;
357  IResult = fReactorFuturIV.insert( pair<int, IsotopicVector>(ReactorId,IVBeginCycle) );
358  if(IResult.second == false)
359  IResult.first->second = IVBeginCycle;
360  }
361  }
362  }
363  }
364 
365 
366 }
FabricationPlant::ClassDef ( FabricationPlant  ,
 
)
protected
void FabricationPlant::DumpStock ( )

Update the storage.

Définition à la ligne 505 du fichier FabricationPlant.cxx.

506 {
507 
508 
509 
510 
511 }
void FabricationPlant::Evolution ( cSecond  t)

Perform the Evolution.

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

127 {
128 
129  // Check if the FabricationPlant has been created ...
130  if(t == fInternalTime && t != 0) return;
131  // Make the evolution for the FabricationPlant ...
133  // ... And Finaly update the AbsoluteInternalTime
134  fInternalTime = t;
135 
136 }
void FabricationPlant::FabricationPlantEvolution ( cSecond  t)
protected

Deal the FabricationPlant Evolution.

Définition à la ligne 139 du fichier FabricationPlant.cxx.

140 {
141 
142 
143 
144  map<int ,cSecond >::iterator it;
145  for( it = fReactorNextStep.begin(); it!= fReactorNextStep.end(); it++ )
146  {
147  if( t + fFabricationTime >= fParc->GetReactor()[ (*it).first ]->GetCreationTime()
148  && t + fFabricationTime < fParc->GetReactor()[ (*it).first ]->GetCreationTime() + fParc->GetReactor()[ (*it).first ]->GetLifeTime())
149  {
150  if( (*it).second == t )
151  {
152  BuildFuelForReactor( (*it).first );
153  (*it).second += fParc->GetReactor()[ (*it).first ]->GetCycleTime();
154  }
155  else if ( (*it).second - fParc->GetReactor()[ (*it).first ]->GetCycleTime() + fFabricationTime > t )
156  {
157  map<int ,IsotopicVector >::iterator it2 = fReactorFuturIV.find( (*it).first );
158  if (it2 != fReactorFuturIV.end())
159  (*it2).second = GetDecay((*it2).second, t - fInternalTime );
160  }
161  }
162  }
163 
164 
165 
166 }
DataBank<ZAI>* FabricationPlant::GeDecayDataBase ( ) const
inline

Return the pointer to the DecayDB.

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

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

Get IsotopicVector Decay at the t time.

Définition à la ligne 380 du fichier FabricationPlant.cxx.

381 {
382 
383  IsotopicVector IV;
384 
385  map<ZAI ,double> isotopicquantity = isotopicvector.GetIsotopicQuantity();
386 
387  map<ZAI ,double >::iterator it;
388  for( it = isotopicquantity.begin(); it != isotopicquantity.end(); it++ )
389  {
390  if((*it).second > 0)
391  {
392  IsotopicVector ivtmp = fDecayDataBase->Evolution(it->first, t) * (*it).second ;
393  IV += ivtmp;
394  }
395  }
396 
397  return IV;
398 }
cSecond FabricationPlant::GetFabricationTime ( ) const
inline

Return the Fabrication Time.

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

IsotopicVector FabricationPlant::GetFullFabrication ( )

Définition à la ligne 455 du fichier FabricationPlant.cxx.

456 {
457 
458  IsotopicVector tmp = 0*ZAI(0,0,0);
459 
460  map<int, IsotopicVector > reactorNextStep = fReactorFuturIV;
461  map<int, IsotopicVector >::iterator it;
462  for ( it = reactorNextStep.begin(); it != reactorNextStep.end(); it++)
463  tmp += (*it).second;
464 
465  return tmp;
466 
467 }
int FabricationPlant::GetId ( )
inline

Définition à la ligne 73 du fichier FabricationPlant.hxx.

73 { return fId;}
cSecond FabricationPlant::GetInternalTime ( ) const
inline

Return Creation Time.

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

LogFile* FabricationPlant::GetLog ( )
inline

Return the Pointer to the Log.

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

CLASS* FabricationPlant::GetParc ( )
inline

Return the Pointer to the Parc.

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

EvolutionData FabricationPlant::GetReactorEvolutionDB ( int  ReactorId)

Return the EvolutionData of Reactor ReactorId.

Définition à la ligne 447 du fichier FabricationPlant.cxx.

448 {
449 
450  map< int,EvolutionData >::iterator it = fReactorFuturDB.find(ReactorId);
451  return (*it).second;
452 
453 }
map<int, IsotopicVector > FabricationPlant::GetReactorFuturIncome ( ) const
inline

Return the List of the Futur Fuel IV.

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

IsotopicVector FabricationPlant::GetStockToRecycle ( )

Get the next stock to recycle.

Définition à la ligne 473 du fichier FabricationPlant.cxx.

474 {
475 
476  IsotopicVector NextStock;
477  int IdToTake = -1;
478 
479  if(fChronologicalTimePriority == true)
480  IdToTake = (int)( fFractionToTake.size() );
481  else
482  IdToTake = (int)( fStorage->GetStock().size() -1 - fFractionToTake.size() );
483  if(0 <= IdToTake && IdToTake <= (int)fStorage->GetStock().size()-1)
484  {
485  NextStock = fStorage->GetStock()[IdToTake];
486  fFractionToTake.push_back( pair<int,double>(IdToTake,0.) );
487  }
488  else NextStock += ZAI(-1,-1,-1) *1;
489 
490  return NextStock;
491 
492 }
Storage* FabricationPlant::GetStorage ( )
inline

Return the Pointer to the Storage.

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

void FabricationPlant::RecycleStock ( double  fraction)

Take a franction of the current stock.

Définition à la ligne 495 du fichier FabricationPlant.cxx.

496 {
497 
498  fFractionToTake.back().second = fraction;
499 
500 }
pair< IsotopicVector, IsotopicVector > FabricationPlant::Separation ( IsotopicVector  isotopicvector)
protected

                   Make the Separation 

< return IV[0] -> To Stock / IV[1] -> To Waste

Définition à la ligne 514 du fichier FabricationPlant.cxx.

515 {
516 
517  //[0] = re-use ; [1] = waste
518  pair<IsotopicVector, IsotopicVector> IVTmp;
519 
520  map<ZAI ,double> isotopicquantity = isotopicvector.GetIsotopicQuantity();
521  map<ZAI ,double >::iterator it;
522  for(it = isotopicquantity.begin(); it != isotopicquantity.end(); it++)
523  {
524  map<ZAI ,double>::iterator it2;
525  it2 = fValorisableIV.find((*it).first);
526  if ( it2 != fValorisableIV.end() )
527  {
528  IVTmp.first.Add( (*it).first, (*it).second * (*it2).second ); //re-use
529  IVTmp.second.Add( (*it).first, (*it).second * (1-(*it2).second) ); //waste
530  }
531  else IVTmp.second.Add( (*it).first, (*it).second ); //waste
532  }
533 
534  return IVTmp;
535 }
void FabricationPlant::SetChronologicalTimePriority ( bool  bval)
inline

Set the chronological priority (true for chronological, false unstead)

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

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

Set the pointer to the Decay DataBase.

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

void FabricationPlant::SetId ( int  id)
inline

Set The FB Parc'Id.

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

void FabricationPlant::SetLog ( LogFile Log)
inline

Set the Pointer to the Log.

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

void FabricationPlant::SetParc ( CLASS parc)
inline

Set the Pointer to the Parc.

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

void FabricationPlant::SetStorage ( Storage storage)
inline

Set the Pointer to the Storage.

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

void FabricationPlant::SetSubstitutionFuel ( EvolutionData  fuel)

Définition à la ligne 368 du fichier FabricationPlant.cxx.

369 {
370 
371  fSubstitutionFuel = true;
372  fSubstitutionEvolutionData = fuel / fuel.GetHMMass();
373 
374 }
void FabricationPlant::SetUpdateReferenceDBatEachStep ( bool  val)
inline

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

void FabricationPlant::TakeReactorFuel ( int  Id)

Remove the Fuel of reactor ReactorId.

Définition à la ligne 435 du fichier FabricationPlant.cxx.

436 {
437 
438 
439  IsotopicVector IV;
440  map<int ,IsotopicVector >::iterator it2 = fReactorFuturIV.find( Id );
441  if (it2 != fReactorFuturIV.end())
442  (*it2).second = IV;
443 
444 }

Documentation des données membres

bool FabricationPlant::fChronologicalTimePriority
protected

Set the Chronological Priotity (for the Stock Management) or the anti-chronological one.

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

DataBank<ZAI>* FabricationPlant::fDecayDataBase
protected

Pointer to the Decay DataBase.

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

double FabricationPlant::fFabricationTime
protected

Fabrication Duration Time.

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

vector< pair<int, double> > FabricationPlant::fFractionToTake
protected

The Temporary Storage IsotopicVector.

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

int FabricationPlant::fId
protected

Identity of the FabricationPlant inside the Parc.

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

cSecond FabricationPlant::fInternalTime
protected

Internal Clock.

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

LogFile* FabricationPlant::fLog
protected

Pointer to the Log.

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

CLASS* FabricationPlant::fParc
protected

Pointer to the Parc.

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

map< int,EvolutionData > FabricationPlant::fReactorFuturDB
protected

List of the Futur EvolutionData use in the reactor.

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

map< int,IsotopicVector > FabricationPlant::fReactorFuturIV
protected

List of the Futur Fuel Isotopic Vector used in the reactor.

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

map<int, cSecond > FabricationPlant::fReactorNextStep
protected

Next Time Step to Build a New Fuel.

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

Storage* FabricationPlant::fReUsable
protected

Pointer to the Storage using for recycling unused Product.

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

Storage* FabricationPlant::fStorage
protected

Pointer to the Storage to recycle.

Définition à la ligne 129 du fichier FabricationPlant.hxx.

EvolutionData FabricationPlant::fSubstitutionEvolutionData
protected

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

bool FabricationPlant::fSubstitutionFuel
protected

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

bool FabricationPlant::fUpdateReferenceDBatEachStep
protected

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

map<ZAI ,double> FabricationPlant::fValorisableIV
protected

The Valorisable Table.

Définition à la ligne 120 du fichier FabricationPlant.hxx.


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