MURE
Loading...
Searching...
No Matches
FuelReprocessing.hxx
Go to the documentation of this file.
1/*
2 This file is part of MURE,
3 Copyright (C) 2007-2021 MURE developers.
4
5 MURE is free software: you can redistribute it and/or modify
6 it under the terms of the GNU Lesser General Public License as published by
7 the Free Software Foundation, either version 3 of the License, or
8 (at your option) any later version.
9
10 MURE is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU Lesser General Public License for more details.
14
15 You should have received a copy of the GNU Lesser General Public License
16 along with MURE. If not, see <http://www.gnu.org/licenses/>.
17*/
18
19#ifndef _FUELREPROCESSING_HXX_
20#define _FUELREPROCESSING_HXX_
21
27#include <fstream>
28#include <iostream>
29#include <sstream>
30#include <vector>
31#include <string>
32#include <algorithm>
33
34#include "ZAI.hxx"
35
36class ZAI;
37
38using namespace std;
39
40class Cell;
41class Material;
42class Storage;
43class TemporalStorage;
44
46
119{
120 public:
125
127 {
128 return new FuelReprocessing(*this);
129 }
130
131 virtual ~FuelReprocessing() = default;
132
138
153 void AddReprocessing(Material *InMat, Cell *ToCell, Material *EquiliBriumMat = nullptr, double EquilibriumTime = - 1);
155
164 void EmptyCell(Cell *DepletedCell, double CoolingTime, bool NewInterimStorage = true);
166
186 void AddReprocessing(Cell *FromCell, Cell *ToCell, int level = 0);
188
193
195
199 virtual void CoreRefuel();
201 virtual void ContinuousCoreRefuel();
203 virtual void StepCoreRefuel();
205 virtual void DepletedFuelExtractor();
207 virtual void AddFreshFuel();
209
222 virtual void ReprocessInterimStorage();
224
264 void SetFissileFertile(int N, int *Zarray);
265
267
285 void SetExtractionFractionFromReprocessingPlant(int N, int *Zarray, double *Efficiency);
286
288
307 void SetExtractionFractionFromFuel(int N, int *Zarray, double *Efficiency);
308
310 {
312 }
314 {
315 return fReprocessedStorage.size();
316 }
317
319
333 void SetFreshCellinReprocessedStorageLink(vector < int > Link)
334 {
335 fFC_in_RS = Link;
336 }
337
339
349 void SetReprocessedStorage2FreshCellLink(vector < int > Link)
350 {
351 fRS_2_FC = Link;
352 }
354
360
371 void SetRefuellingTime(vector < double > Time)
372 {
373 fRefuellingTime = Time;
374 }
375
377 {
378 return fRefuellingIndex;
379 }
380 double GetCurentRefuellingTime();
381
383
390 void SetFuelFabricationTime(double Time = 2 * 365.25 * 24 * 3600)
391 {
393 }
394
396 {
397 return fFuelFabricationTime;
398 }
400
404 void SetContinuousReprocessing(bool flag = true)
405 {
407 }
408
410 {
412 }
413
414 void SetContinuousReprocessingTimeVector(vector < vector < double > > ContinuousTime);
415 vector < vector < double > > &GetContinuousReprocessingTimeVector()
416 {
418 }
420
426
432 void SetStorageEvolution(bool flag = true)
433 {
434 fEvolvingStorage = flag;
435 }
437 {
438 return fEvolvingStorage;
439 }
440
442
449 void SetBuildMCFileBeforeReprocessing(bool build = true)
450 {
452 }
454 {
456 }
457
459
463 void SetMCInputFileNameBeforeReprocessing(string name = "post")
464 {
466 }
467
469 {
471 }
472
474
477 virtual void BuildStorages();
478
480
492 void SetFuelForm(int Z, int A, double MolarProp);
493
494 virtual void PrintStorageMass();
495 string PrintMass(double m);
496 virtual void InitIndexes();
497 virtual void PrintIndexes();
498
500
501 protected:
502 vector < double > fRefuellingTime;
504 vector < Material * > fFreshFuel;
505 vector < Cell * > fFreshCell;
506 vector < vector < Cell * > > fChainCell;
507 vector < Cell * > fDepletedCell;
508
509 vector < Material *> fEquilibriumFreshFuel;
510 vector < double > fEquilibriumTime;
511
512 vector < TemporalStorage * > fInterimStorage;
513 vector < TemporalStorage * > fReprocessedStorage;
518
519 vector < int > fDP_2_IS;
520 vector < int > fFC_in_RS;
521 vector < int > fRS_2_FC;
522
523 vector < vector < double > > fContinuousReprocessingTimeVector ;
525
528
529 vector < int > fZFissileFertile;
530
531 vector < int > fZtoExtractFromFuel;
533
534 vector < int > fZtoExtractFromRP;
536
538
539
542
546
547 vector < double > fInitExtractedAtoms;
548
549};
550
551#endif
Header file for ZAI and ZAIReaction classes.
A Cell is composed from a Shape and a Material.
Definition Cell.hxx:84
FuelReprocessing allows Fuel reprocessing during Evolution.
Definition FuelReprocessing.hxx:119
void SetFissileFertile(int N, int *Zarray)
Set the Fissile/Fertile elements.
Definition FuelReprocessing.cxx:950
bool fUseReprocessedStorage
True to build Reprocessed Storages.
Definition FuelReprocessing.hxx:516
void SetContinuousReprocessingTimeVector(vector< vector< double > > ContinuousTime)
set the continuous reprocessing time vector
Definition FuelReprocessing.cxx:943
virtual void PrintIndexes()
Print storage indexes (debug method)
Definition FuelReprocessing.cxx:1187
int fRefuellingIndex
The current reprocessing index in the fReprocessingTime vector.
Definition FuelReprocessing.hxx:503
double GetCurentRefuellingTime()
Current refuelling time if it is discret.
Definition FuelReprocessing.cxx:934
FuelReprocessing()
Default Constructor.
Definition FuelReprocessing.cxx:43
bool fContinuousReprocessing
true for continuous reprocessing
Definition FuelReprocessing.hxx:524
vector< int > fZFissileFertile
vector of Z of fissile or fertile nuclei
Definition FuelReprocessing.hxx:529
vector< double > fRefuellingTime
vector of refuelling time
Definition FuelReprocessing.hxx:502
void SetStorageEvolution(bool flag=true)
Force the storage evolution.
Definition FuelReprocessing.hxx:432
vector< int > fZtoExtractFromRP
vector of Z of nuclei to extract from depleted fuel to reprocess
Definition FuelReprocessing.hxx:534
bool fBuildMCFileBeforeReprocessing
must be true if you want to generate the MC file describing your system just before the reprocessing
Definition FuelReprocessing.hxx:526
void SetFuelFabricationTime(double Time=2 *365.25 *24 *3600)
Set the fuel fabrication time.
Definition FuelReprocessing.hxx:390
vector< TemporalStorage * > fInterimStorage
Interim Storage vector.
Definition FuelReprocessing.hxx:512
void SetReprocessedStorage2FreshCellLink(vector< int > Link)
Set the links between Reprocessed Storages and Fresh Cells.
Definition FuelReprocessing.hxx:349
Storage * fWasteStorage
Waste Storage.
Definition FuelReprocessing.hxx:515
void SetMCInputFileNameBeforeReprocessing(string name="post")
Set the name of post evolution MC file.
Definition FuelReprocessing.hxx:463
void SetFreshCellinReprocessedStorageLink(vector< int > Link)
Set the links between Fresh Cells and Reprocessed Storages.
Definition FuelReprocessing.hxx:333
string GetMCInputFileNameBeforeReprocessing()
Definition FuelReprocessing.hxx:468
double fFuelFormMolProp
Molar proportion of the FuelFormZAI (2 for O2, 1 for C, ...)
Definition FuelReprocessing.hxx:541
virtual void BuildStorages()
Build Interim &Waste Storage.
Definition FuelReprocessing.cxx:167
virtual void StepCoreRefuel()
Put new fuel in the core at time step of fReprocessingTime.
Definition FuelReprocessing.cxx:343
void SetRefuellingTime(vector< double > Time)
Refuelling Time.
Definition FuelReprocessing.hxx:371
bool IsStorageEvolution()
Definition FuelReprocessing.hxx:436
vector< Cell * > fFreshCell
The cell vector that receive fresh fuel.
Definition FuelReprocessing.hxx:505
vector< vector< double > > fContinuousReprocessingTimeVector
vector of Z and EvolutiveSystem dependant reprocessing time in case of continuous reprocessing
Definition FuelReprocessing.hxx:523
vector< double > fInitExtractedAtoms
The initial number of atoms of the first extracted assemblies.
Definition FuelReprocessing.hxx:547
vector< int > fDP_2_IS
vector linking Depleted Cell to Interim Storage
Definition FuelReprocessing.hxx:519
string fMCInputFileNameBeforeReprocessing
the MC file generated just before the reprocessing will have this name, followed by the last MC run n...
Definition FuelReprocessing.hxx:527
vector< vector< Cell * > > fChainCell
The cell vector that exchange fuel.
Definition FuelReprocessing.hxx:506
vector< Material * > fFreshFuel
the fresh fuel to add
Definition FuelReprocessing.hxx:504
vector< int > fRS_2_FC
vector linking Reprocessed Storage to Fresh Cells
Definition FuelReprocessing.hxx:521
virtual FuelReprocessing * Clone()
Definition FuelReprocessing.hxx:126
void AddReprocessing(Material *InMat, Cell *ToCell, Material *EquiliBriumMat=nullptr, double EquilibriumTime=- 1)
Add Fresh Fuel to a Cell.
Definition FuelReprocessing.cxx:270
virtual void DepletedFuelExtractor()
Extract depleted fuel and store it in Interim Storage.
Definition FuelReprocessing.cxx:408
TemporalStorage * fCoreMARS
Minor Act. Reprocessed Storage from the core.
Definition FuelReprocessing.hxx:514
vector< TemporalStorage * > fReprocessedStorage
Reprocessed Storage vector.
Definition FuelReprocessing.hxx:513
string PrintMass(double m)
return a string of mass value+unit
Definition FuelReprocessing.cxx:1098
double GetFuelFabricationTime()
Definition FuelReprocessing.hxx:395
virtual void ReprocessInterimStorage()
Reprocess Interim Storage.
Definition FuelReprocessing.cxx:508
vector< vector< double > > & GetContinuousReprocessingTimeVector()
Definition FuelReprocessing.hxx:415
void EmptyCell(Cell *DepletedCell, double CoolingTime, bool NewInterimStorage=true)
Extract Depleted Fuel from a Cell.
Definition FuelReprocessing.cxx:279
void SetBuildMCFileBeforeReprocessing(bool build=true)
Builds MC file just before each refuelling.
Definition FuelReprocessing.hxx:449
double fLastMassPutinWaste
Last mass put in Waste Storage (used only for print)
Definition FuelReprocessing.hxx:545
void SetContinuousReprocessing(bool flag=true)
Reprocessing is continuous.
Definition FuelReprocessing.hxx:404
vector< int > fZtoExtractFromFuel
vector of Z of nuclei to extract when fuel is reprocessed
Definition FuelReprocessing.hxx:531
vector< int > fFC_in_RS
vector linking Reprocessed Storage to Fresh Cells
Definition FuelReprocessing.hxx:520
bool IsContinuousReprocessing()
Definition FuelReprocessing.hxx:409
double fLastMassExtractedfromCore
Last mass extracted from core (used only for print)
Definition FuelReprocessing.hxx:543
int GetReprocessingIndex()
Definition FuelReprocessing.hxx:376
virtual void PrintStorageMass()
print storage masses
Definition FuelReprocessing.cxx:989
ZAI * fFuelFormZAI
The ZAI of the "form" of the fuel (O for oxide, C for Carbide, ...)
Definition FuelReprocessing.hxx:540
virtual void CoreRefuel()
Put new fuel in the core.
Definition FuelReprocessing.cxx:326
int GetNumberOfReprocessedStorage()
Definition FuelReprocessing.hxx:313
vector< double > fZEfficiencyExtractionFromRP
vector of extraction efficiency: 1=100%=this Z is completly extract, 0=0%
Definition FuelReprocessing.hxx:535
double fLastMassExtractedfromRP
Last mass extracted from Reprocessed Storage (used only for print)
Definition FuelReprocessing.hxx:544
virtual void AddFreshFuel()
Add fresh fuel in "Fresh" cells.
Definition FuelReprocessing.cxx:721
vector< Cell * > fDepletedCell
The cell vector that will be discharged.
Definition FuelReprocessing.hxx:507
bool fEvolvingStorage
true if the outcore storage (interim &waste) are evolving
Definition FuelReprocessing.hxx:517
void UseReprocessedStorage()
Definition FuelReprocessing.hxx:309
void SetExtractionFractionFromReprocessingPlant(int N, int *Zarray, double *Efficiency)
Set the Depleted Fuel extraction fraction.
Definition FuelReprocessing.cxx:960
vector< double > fEquilibriumTime
Time from which fEquilibriumFreshFueln is used instead of fFreshFuel.
Definition FuelReprocessing.hxx:510
vector< double > fZEfficiencyExtractionFromFuel
vector of extraction efficiency: 1=100%=this Z is completly extract, 0=0%
Definition FuelReprocessing.hxx:532
void SetExtractionFractionFromFuel(int N, int *Zarray, double *Efficiency)
Set the Fuel extraction fraction.
Definition FuelReprocessing.cxx:971
virtual void ContinuousCoreRefuel()
Put new fuel in the core continuoulsy. NOT DONE.
Definition FuelReprocessing.cxx:402
virtual void InitIndexes()
Init storage indexes when starting an evolution from T>0.
Definition FuelReprocessing.cxx:1118
virtual ~FuelReprocessing()=default
Destructor.
vector< Material * > fEquilibriumFreshFuel
Fresh fuel material used when T>fEquilibriumTime.
Definition FuelReprocessing.hxx:509
bool GetBuildMCFileBeforeReprocessing()
Definition FuelReprocessing.hxx:453
double fFuelFabricationTime
time to wait before doing something with reprocessed storage
Definition FuelReprocessing.hxx:537
void SetFuelForm(int Z, int A, double MolarProp)
Set the chemical form of the fuel.
Definition FuelReprocessing.cxx:982
A Material constituing a Cell.
Definition Material.hxx:83
Storage are outcore containers.
Definition Storage.hxx:52
TemporalStorage are outcore containers function of a Retreatment time.
Definition Storage.hxx:127
A ZAI defined a (Z, A, Isomere) for a Nucleus.
Definition ZAI.hxx:118
the namespace of the Standard C++

MURE Project, documentation generated by Doxygen 1.9.7 - Fri Jan 19 2024