MURE
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros
MURE.hxx
Go to the documentation of this file.
1 #ifndef _MURE_HXX_
2 #define _MURE_HXX_
3 
9 #include <fstream>
10 #include <iostream>
11 #include <sstream>
12 #include <vector>
13 #include <string>
14 #include <libmctal/TMctal.hxx>
15 #include <libmctal/TMTally.hxx>
16 #include "MureHeaders.hxx"
17 
18 using namespace std;
19 
20 class Cell;
21 class Shape;
22 class Sphere;
23 class Tally;
24 class EvolutiveSystem;
25 
28 #define LOG_LEVEL_DEBUG 0
29 #define LOG_LEVEL_WARNING 2
31 #define LOG_LEVEL_IMPORTANT_WARNING 3
33 #define LOG_LEVEL_ALERT 4
35 #define LOG_LEVEL_ERROR 5
37 
43 #define __METHOD_NAME__ __macro_method_name__(__PRETTY_FUNCTION__)
44 const int NODEBUG=0;
45 const int DODEBUG=0;
49 #define LOG_DEBUG(msg) {if ((!NODEBUG)&&((DODEBUG)||(!gMURE->GetSilentDebug()))&&(gMURE->GetMessageLevel()<=LOG_LEVEL_DEBUG)) cout<<__METHOD_NAME__<<" : "<<msg<<endl;}
50 #define LOG_INFO(msg) { cout<<msg<<endl;}
52 #define LOG_WARN(msg) {if ((!gMURE->GetSilentDebug())&&(gMURE->GetMessageLevel()<=LOG_LEVEL_WARNING)) {ostringstream s;s<<msg;cout<<left<<setw(75)<<setfill('*')<<("**** WARNING in "+__METHOD_NAME__+" ")<<endl;cout<<wordwrap(s.str(),75)<<endl;}}
54 #define LOG_IMP_WARN(msg) {if (gMURE->GetMessageLevel()<=LOG_LEVEL_IMPORTANT_WARNING) {ostringstream s;s<<msg;cout<<left<<setw(75)<<setfill('*')<<("**** WARNING in "+__METHOD_NAME__+" ")<<endl;cout<<wordwrap(s.str(),75)<<endl;cout<<left<<setw(75)<<setfill('*')<<"*"<<endl;}}
56 #define LOG_ALERT(msg) {if (gMURE->GetMessageLevel()<=LOG_LEVEL_ALERT) {ostringstream s;s<<msg;cout<<left<<setw(75)<<setfill('!')<<("!!!! ALERT in "+__METHOD_NAME__+" ")<<endl;cout<<wordwrap(s.str(),75)<<endl;cout<<setw(75)<<setfill('=')<<"!"<<endl;}}
58 #define LOG_ERROR(msg) {if (gMURE->GetMessageLevel()<=LOG_LEVEL_ERROR) {ostringstream s;s<<msg;cout<<left<<setw(75)<<setfill('=')<<("==== ERROR in "+__METHOD_NAME__+" ")<<endl;cout<<wordwrap(s.str(),75)<<endl;cout<<setw(75)<<setfill('=')<<"= Exiting MURE ="<<endl;}exit(0);}
60 
62 
81 class MURE
82 {
83  public:
88  MURE(string name = "xsdir");
89  MURE(const MURE &m);
90  ~MURE();
91 
92 
97 
114  void Evolution(
115  vector<double>T,
116  int Start=0,
117  bool BrutalStop=false
118  );
119 
121 
139  void SetPredictorCorrector(bool middle_step=false);
140  bool IsPredictorCorrector(){return fPredictorCorrector;}
141  bool IsPredictorStep(){return fPredictorStep;}
142  double GetPCEvaluationTime(){return fPCEvaluationTime;}
143 
145 
152  void FindPredictorCorrectorStep();
154 
178  void UseMultiGroupTallies(bool StdTallyFor238U=false){fMultigroupTallies=true;fU8StdTally=StdTallyFor238U;}
179  void SetMultiGroupDecadeMultiplcator(int N=1){fMultiGroupDecadeMultiplcator=N;}
180  bool IsMultiGroupTalliesUsed(){return fMultigroupTallies;}
181  bool IsTHMultiGroupTalliesUsed(){return fTHMultigroupTallies;}
182 
184 
193  void AddCellToGroup(Cell* TheCell, int GroupNumber=0);
194  vector<Cell *> & GetCellGroup(int GroupNumber){return fGroupCellVector[GroupNumber];}
195  int NumberOfCellGroup(){return fGroupCellVector.size();}
196 
198 
203  void SetPower(double Power){fPower = Power;}
204  double GetPower(){return fPower;}
205 
206  double GetInitialHNMass() {if (!fInitHNMassInTon) {CalculateInitialHNMass();} return fInitHNMassInTon;}
207 
208  void SetEvolutionControl(EvolutionControl *EC){fEvolutionControl=EC;}
209  EvolutionControl *GetEvolutionControl(){return fEvolutionControl;}
210 
211  void SetMaterialControl(){fMaterialControl = true;}
212  bool GetMaterialControl(){return fMaterialControl;}
213  ControlMaterial* GetControlMaterial();
214  void AddControlRodCell(Cell* TheCell){fControlRodCell.push_back(TheCell);}
215  vector<Cell*> &GetControlRodCell(){return fControlRodCell;}
216  ValErr_t GetAbs(){return fGlobalAbsorptions;}
217  ValErr_t GetN2N(){return fGlobalN2N;}
218  ValErr_t GetN3N(){return fGlobalN3N;}
219  ValErr_t GetFiss(){return fGlobalFissions;}
220  ValErr_t GetNuFiss(){return fGlobalNuFissions;}
221  ValErr_t GetNeutronLosses(){return fGlobalNeutronLosses;}
222  void SetGlobalRates();
223 
224 
225 
227 
231  void SetBrutalStopKValue(double brutalstopvalue){fBrutalStopKValue = brutalstopvalue; fBrutalStop = true;}
232 
234 
238  void SetControlRate(Reaction r,ValErr_t rate){fControlRate[r] = rate;}
239 
241 
245  void SetControlRate(int ReactionCode,ValErr_t rate){fControlRate[Reaction(ReactionCode)] = rate;}
246  ValErr_t GetControlRate(Reaction r){return fControlRate[r];}
247  ValErr_t GetControlRate(int ReactionCode){return fControlRate[Reaction(ReactionCode)];}
248 
250 
256  void SetOutermostShape(Shape_ptr s){fOutermostShape=s;}
257  Shape_ptr GetOutermostShape(){return fOutermostShape;}
258 
259  void CalculateInitialHNMass();
260  double GetBurnUp();
261 
263 
268  void SetSource(MCNPSource *source){fSource=source;}
269  MCNPSource* GetSource(){return fSource;}
270 
272 
277  void UsePreviousRunSource(string FirstSource = "");
278  bool GetUsePrevSource(){return fUsePrevSource;}
279  void SetUsePrevSource(bool flag=true){fUsePrevSource =flag;}
280  string GetSourceFileName(){return fSourceFile;}
281  void SetSourceFileName(string name){fSourceFile=name;}
282  void SetOriginalSourceFileName(string name){fOriginalSourceFile=name;}
283 
284 
289  void SetModeN(){fMode="N";}
290  void SetModeNP(){fMode="N P";}
291  void SetModeNE(){fMode="N E";}
292  void SetModeNPE(){fMode="N P E";}
293  void SetModePE(){fMode="P E";}
294  void SetModeP(){fMode="P";}
295  void SetMode(string MyMode="N"){fMode=MyMode;}
296  string GetMode(){return fMode;}
297 
298 
303 
310  void SetSpectrumType(string type="thermal");
312 
315  double GetSpectrumType(){return fMeanEnergySpectrum;}
317 
322  void SetTemperatureMap(double *T=0,int NT=0);
323  TemperatureMap *GetTemperatureMap(){return fTemperatureMap;}
324  BasePriority *GetBasePriority(){return fBasePriority;}
325  void SetBasePriority(BasePriority *UserBasePriority);
326 
328 
338  void SetReactionListInitMethod(TSpecificFunctor<ReactionList>* method){fReactionListInitMethod=method;}
339  TFunctor* GetReactionListInitMethod(){return fReactionListInitMethod;}
340 
342 
347 
353  void SetDATADIR(string name="");
354  string GetDATADIR(){return fDataDirectoryName;}
355 
357 
362  void SetEnsdfDATADIR(string name="");
363  string GetEnsdfDATADIR(){return fEnsdfDataDirectoryName;}
365 
370  void SetNucleiChartFileName(string name="chart.JEF3T");
371  string GetNucleiChartFileName(){return fNucleiChartFileName;}
372 
374 
380  void SetReactionDataFileName(string name="AvailableReactionChart.dat");
381  string GetReactionDataFileName(){return fReactionDataFile;}
382 
384 
389  void SetMassDataFileName(string name="Mass.dat");
390  string GetMassDataFileName(){return fMassDataFileName;}
391 
393 
398  void SetNaturalIsotopeMassFileName(string name="NaturalIsotopeMass.dat");
399  string GetNaturalIsotopeMassFileName(){return fNaturalIsotopeMassFileName;}
400 
402 
408  void SetFPASCIIFileName(string name="FPavailable.dat");
409  char *GetFPASCIIFileName(){return (char*)(fFPASCIIFileName.c_str());}
410 
412 
418  void SetFPBinaryFileName(string name="FPyield.bin");
419  char *GetFPBinaryFileName(){return (char*)(fFPBinaryFileName.c_str());}
420  void SetBaseSummaryFileName(string name="BaseSummary.dat");
421  string GetBaseSummaryFileName(){return fBaseSummaryFileName;}
422 
423  void ReadEvolvingCellCompositions(string filename);
424  void WriteEvolvingCellCompositions(string filename);
425 
426  void ReadBinaryEvolutionData(string filename);
427  void WriteBinaryEvolutionData(string filename);
428 
429  void ReadEvolutionData(string filename);
430  void WriteEvolutionData(string filename);
431 
432  void WriteKeffData();
433  void WriteNFissionsData();
434  void ReadSpecialIsomerFile();
435  void SetSpecialIsomerFileName(string name="");
436 
437 
442 
450  void SetMCNPRunDirectory(string name="MUREOutput", string option="");
451  string GetMCNPRunDirectory(){return fMCNPRunDirectory; }
452  void BuildMCNPFile(string FileString="");
453  void SetMCNPExec(string Exec="mcnp4c"){fMCNPExec=Exec;}
454  string GetMCNPExec() {return fMCNPExec;}
455  string GetMCNPInputFileName(){return fMCNPInputBaseFileName;}
456  string GetRealMCNPInputFileName(){return fMCNPInputFileName;}
457  string GetMFileName(){return fMFileName;}
458  void SetMCNPInputFileName(string Name){fMCNPInputBaseFileName=Name;}
459  void SetRealMCNPInputFileName(string Name){fMCNPInputFileName=Name;}
460  void RunMCNP();
461  void RunMultiMCNP(int n);
462  void SetRunMultiMCNP(int n){fRunMultiMCNP=n;}
463  void FindMCNPRunDirectory(string OriginalMCNPRunDir);
464  void ConstructFileName(string FileName);
465  string ConstructFileName(string FileName,int EvoNum,int ThermoNum=-1);
466 
468 
472  void SetUseNewDBCN(long int dbcn=-1);
473 
475 
476 
481  void SetRemove_r_files(bool flag=true){fRemove_r_files =flag;}
482  bool GetRemove_r_files(){return fRemove_r_files;}
483  void SetWriteBinaryData(bool flag=true){fWriteBinaryData=flag;}
484  void SetWriteASCIIData(bool flag=true){fWriteASCIIData=flag;}
485  bool IsWriteBinaryData(){return fWriteBinaryData;}
486  bool IsWriteASCIIData(){return fWriteASCIIData;}
487  int GetMessageLevel(){return fMessageLevel;}
488 
490 
506  void SetMessageLevel(int level){fMessageLevel=level;}
507  bool GetSilentDebug(){return fSilentDebug;}
508 
510 
515  void SetSilentDebug(bool flag=true){fSilentDebug=flag;}
516 
518 
523 
525 
534  void SetPVM(int n_processor,bool mcnp4b=false);
536 
543  void SetMPI(int n_processor,string MPIExec="mpiexec");
544  void SetOMP(int n_thread){fOMP=n_thread;}
545  int GetOMP(){return fOMP;}
546 
547  int GetNProcessors(){return fNprocessors;}
548  bool IsMCNP4B(){return fMCNP4B;}
549 
551 
556 
561  void AddSpecialSurface(string);
562 
564 
568  void AddSpecial(string);
569 
570 
571  void SetComment(string Comment="This comment is never read..."){fComment=Comment;}
572  string GetComment(){return fComment;}
573  void SetPRDMP(string prdmp="2J -1 1"){fPRDMP=prdmp;}
574 
575  void WriteMCNPFileNoTallies(string FileName="inp", bool tmpvol=false);
576 
578 
586  void WriteLine(string line,ostream &Out=cout,int IsComment=0,int IsTruncated=0, char separator='&');
587 
592 
601  void SetAllFissionEnergies(double Energy=2.0e08);
602  double GetFissionEnergies() {return fSetAllFissionEnergies;}
603 
605 
614  void SetFissionReleasedFile(string name){fFissionReleasedFN=name;}
615  string GetFissionReleasedFile(){return fFissionReleasedFN;}
616 
618 
621  void FitTallyNormalizationFactor();
622  bool IsFitTallyNormalizationFactor(){return fFittedTNF;}
623  void SetFitTallyNormalizationFactor(){fFittedTNF=true;}
624 
626 
629  int GetMCNPFissionsPerSecondSize(){return fMCNPFissionsPerSecond.size();}
631 
634  double GetMCNPFissionsPerSecond(int i){return fMCNPFissionsPerSecond[i];}
636 
640  void SetMCNPFissionsPerSourceNeutron(int i,double val){fMCNPFissionsPerSecond[i]=val;}
642 
646  void AddToMCNPFissionsPerSourceNeutron(int i,double val){fMCNPFissionsPerSecond[i]+=val;}
648 
651  double NormalizeMCNPFissionsPerSecond();
652  void UpdateTallyNormalizationFactor();
653  double GetTallyNormalizationFactor();
654  void SetTallyNormalizationFactor(double val){fTallyNormalizationFactor=val;}
655 
661  void SetCorrectNormalizationFactor(bool flag=true) {fCorrectNormalizationFactor=flag;}
662  bool GetCorrectNormalizationFactor() {return fCorrectNormalizationFactor;}
663 
664 
669 
671 
680  void SetNrk(int Nrk=10) {fNrk = Nrk;}
682 
696  void SetDTRK(double dt=-1) {fDTRK = dt;}
698 
711  void SetMaxDtRK(double dtmax=-1) {fDTMaxRK = dtmax;}
712 
713  int GetNrk(){return fNrk;}
714 
733  void SetXe135Equilibrium(double t=3*9.14*3600);
734  bool IsXe135Equilibrium(){return fXe135Equilibrium;}
735  double GetXe135EquilibriumTime(){return fXe135EquilibriumTime;}
736 
737 
742  int FindLastMCNPRunNumber();
743  void SetCurrentMCNPTime(double time){fCurrentMCNPTime=time;}
744  double GetCurrentMCNPTime(){return fCurrentMCNPTime;}
745  void SetNextMCNPTime(double time){fNextMCNPTime=time;}
746  double GetNextMCNPTime(){return fNextMCNPTime;}
747  void SetCurrentTime(double time){fCurrentTime=time;}
748  double GetCurrentTime(){return fCurrentTime;}
749  double GetCurrentRKStep(){return fCurrentRKStep;}
750  int GetCurrentRKNumber(){return fCurrentRKNumber;}
751  int GetMCNPRunNumber(){return fMCNPRunNumber;}
752  int GetMCNPThermoRunNumber(){return fMCNPThermoRunNumber;}
753  void SetMCNPThermoRunNumber(int value=0){fMCNPThermoRunNumber=value;}
754  void IncreaseMCNPThermoRunNumber() {fMCNPThermoRunNumber++;}
755  double GetTimeUnitConverter(){return fTimeUnitConverter;}
756  string GetTimeUnit(){return fTimeUnit;}
757  void SetTimeUnit(double t);
758 
760 
765 
767 
773  void SetPartialMCNPRun(bool flag=true){fPartialMCNPRun=flag;}
774  bool IsPartialMCNPRun(){return fPartialMCNPRun;}
775  bool IsPartialParticleMCNPRun(){return fPartialParticleMCNPRun;}
776 
777  void SetPartialMCNPRunDirectory(string name="PartialRun"){fPartialMCNPRunDir=name;}
778  void SetSourcePartialFactor(int N=2){fSourcePartialFactor=N;}
779  int GetSourcePartialFactor(){return fSourcePartialFactor;}
780 
782 
787 
789 
797  void KeepOnlyFissionProductSelection(string name="");
798  string GetKeepOnlyFissionProductSelectionFN(){return fKeepOnlyFissionProductSelectionFN;}
799  bool IsOnlyFissionProductSelection(){return fKeepOnlyFissionProductSelection;}
800  void SetReactionThreshold(double sigma=1e-2){fReactionThreshold=sigma+1e-9;}
801  double GetReactionThreshold(){return fReactionThreshold;}
802 
804 
808  void SetMCNPNucleusThreshold(double epsilon=1e-6){fMCNPNucleusThreshold=epsilon;}
809  double GetMCNPNucleusThreshold(){return fMCNPNucleusThreshold;}
810 
812 
826  void SetListOfWantedNucleiFN(string name){fListOfWantedNucleiFN=name;}
827  string GetListOfWantedNucleiFN(){return fListOfWantedNucleiFN;}
828 
830 
835  void SetShortestHalfLife(double time=3600){fShortestHalfTimeThres=time;}
836  double GetShortestHalfLife(){return fShortestHalfTimeThres;}
837 
839 
845  void SetReactionDepth(int depth=10000){fReactionDepth=depth;}
846  int GetReactionDepth(){return fReactionDepth;}
847 
849 
854 
858  void RebuildPerturbativeMaterials();
860 
864  void RebuildTallies();
865  vector<ReactorMesh*> GetReactorMeshVector() {return fReactorMesh;}
866  void SetNewReactorMeshObject(ReactorMesh* RM) {fReactorMesh.push_back(RM);}
867  void BuildCOBRAFiles();
868 
869  void SetCOBRACalculationRequired(int NumberOfIteration) {fNumberOfIterationNTH=NumberOfIteration;fCOBRACalculationRequired=true;fThermoHydraulicsRequired=true;} //@- say that COBRA Calculation is required during Fuel Depletion with NumberOfIterations N/TH a each fuel depletion step
870  void SetThermoHydraulicsRequired(bool flag=true) {fThermoHydraulicsRequired=flag;} //@- say that thermo is needed
871  bool IsThermoHydraulicsRequired(){return fThermoHydraulicsRequired;} //@- returns true if thermo is needed
872  void SetUserDefaultHydraulicModel() {fUserDefaultHydraulicModel=true;} //@- use the default MURE team hydraulics models instead of COBRA ones
874 
879  void StartGUI();
880 
881  void PlotGeometry(bool Continue=0);
882 
883  void SetEvolutionRequired(bool flag=true) {fEvolutionRequired=flag;}
884  bool IsEvolutionRequired(){return fEvolutionRequired;}
885 
886  void WriteGlobalNucleiTree(string fname="UnionOfAllTrees.dat");
887  void IntegrateMassInEvolvingCells();
888  double GetTotalAtoms();
889 
890  double GetKeff(){return fKeff;}
891  double GetKeff_Err(){return fKeff_Err;}
892  void SetKeff(double k){fKeff=k;}
893  void UpdateKeff();
894 
895  void AddToGlobalNucleiVector(Nucleus_ptr &nuc);
896  void AddToNucleiErrorMap(Nucleus* nuc, string ErrType) {fNucleiErrorMap[nuc]+= " "+ErrType;}
897  void SumUpNucleiError(ostream &Out=cerr) ;
898  vector <Nucleus_ptr> GetGlobalNucleiVector() {return fGlobalNucleiVector;}
899  map<Nucleus*, string> &GetNucleiErrorMap() {return fNucleiErrorMap;}
900 
901  void SetAutoXSDIR(bool cond=true){fIsAutoXSDIR=cond;}
902  void BuildXSDIR();
903  void RemoveXSDIR() {stringstream m; m<<"rm "<<GetMCNPRunDirectory()<<"/xsdir";system(m.str().c_str());}
904  string GetXSDIRName() {return fXSDIRName;}
905 
906  void SetESpectrum(){fSetESpectrum=true;}
907  void UseEnergyBinsFile(string Filename);
908 
909  bool IsCooling(int MCNPRunNumber);
910  void SetCooling(vector<bool> C);
911  void SetMCNPUserDefinedGeometry(){fMUREInputGeometry=false;}
912  bool IsMCNPUserDefinedGeometry(){return !fMUREInputGeometry;}
913  void SetUserGeometryInputFile(string name);
914  void FindTallyInMCNPUserFile();
915 
916  void SaveBackupMureFile(string TheFileName);
917 
919 
922  void VerifyPower();
923 
924  void BuildPerturbativeMaterials();
925  string GetTotalRunTime();
926  double GetRunTime() {return (time(0)-fStartTime);}
927 
928  void Dump();
929  void Annihilate();
930 
931  bool BaseSummaryReadIn() {return fBaseSummaryReadIn;}
932  void ReadInBaseSummary();
933  string GetBaseSummaryLine(int i);
934  void AddLineToBaseSummary(string line);
935  int GetFirstContinuousZIndexInBaseSummary(int z){return fFirstContinuousZIndexInBaseSummary[z];}
936  int GetFirstThermalZIndexInBaseSummary(int z){return fFirstThermalZIndexInBaseSummary[z];}
937 
942 
950  void FitSigmaPhi(bool flag=true){fFitSigmaPhi=flag;}
951  bool IsFitSigmaPhi(){return fFitSigmaPhi;}
952  int GetFitRangeNumber(){return fFitRange;}
953  void SetFitRangeNumber(int n=4){fFitRange=n;}
954 
955 
964  void SmoothSigmaPhi(bool flag=true){fSmoothSigmaPhi=flag;}
965  bool IsSmoothSigmaPhi(){return fSmoothSigmaPhi;}
966  bool IsFitSigmaPhiPC(){return fFitSigmaPhiPC ;}
967  void SetFitSigmaPhiPC(bool flag=true){fFitSigmaPhiPC=flag;}
968 
970 
974  void BuildTallies();
976 
981  void BuildTalliesMultiGroup();
983 
990  void BuildTHTalliesMultiGroup();
992 
996  void UpdateSigmaPhi();
998 
1003  void UpdateSigmaPhiMultiGroup();
1005  /*
1006  Only for "pertubative material" automatically built, the flux is normalized using the TallyNormalizationFactor.
1007  */
1008  void UpdateSigma();
1010 
1013  void UpdateTHSigmaPhiMultiGroup();
1014  void AddTally(Tally *T);
1015 
1016  void AddMeshTally(MeshTally *MT);
1017 
1018  void TransMogrify();
1019  void PredictorTransMogrify();
1020 
1022 
1027 
1028  void SetMaterialNum(unsigned num){fLastMaterialNum=num;}
1029  unsigned GetMaterialNum(){return fLastMaterialNum;}
1030 
1031  unsigned NextCellNum();
1032  unsigned NextSurfaceNum();
1033  unsigned NextMaterialNum();
1034  unsigned NextUniverseNum();
1035  unsigned NextTallyNum(int type);
1036  unsigned NextTransformNum();
1037  void SetLastTallyNum(int Num);
1038 
1039  void AddCell(Cell *theCell){fCellVector.push_back(theCell);}
1040  void AddMaterial(Material *theMaterial);
1041  void DontAddMaterial(){fAddMaterial=false;}
1042  bool AllowToAddMaterial(){return fAddMaterial;}
1043  void AddSurface(Surface *theSurface);
1044  void AddEvolutiveSystem(EvolutiveSystem *theEvolutiveSystem);
1045  void AddOutCoreEvolutiveSystem(EvolutiveSystem *theEvolutiveSystem);
1046 
1047  vector<Cell*> GetTrueCellVector(){return fTrueCellVector;}
1048 
1049  void RemoveSurface(vector <Surface *>::iterator it);
1050  vector<Surface *> &GetSurfaceVector(){return fSurfaceVector;}
1051  void AddUnknownVolume(Cell *theCell);
1052  void AddUnknownSurface(Shape *theShape);
1053  vector<Cell *> &GetCellVector() {return fCellVector;}
1054  void RemoveMaterial(Material *TheMaterial);
1055  Cell* FindCell(Cell *TheCell);
1056  Cell* FindCell(int CellNo);
1057  Material* FindMaterial(Material *TheMaterial);
1058  Material* FindMaterial(int MaterialNumber);
1059  Material* FindPerturbativeMaterial(Nucleus_ptr TheNucleus);
1060  Material* FindPerturbativeMaterial(Material *TheCellMat);
1061  vector<Tally*> & GetTallyVector(){return fTallyVector;}
1062  vector<Material*> GetPerturbativeMaterial() {return fPerturbativeMaterial;}
1063  void AddZAIThatFissions(ZAI *zai);
1064  vector<EvolutiveSystem *> GetEvolutiveSystemVector(){return fEvolutiveSystemVector;}
1065  vector<EvolutiveSystem *> GetOutCoreEvolutiveSystemVector(){return fOutCoreEvolutiveSystemVector;}
1066  vector<Material *> &GetMaterialVector(){return fMaterialVector;}
1067  vector<ZAI *> &GetZAIThatFission(){return fZAIThatFission;}
1068  vector<SpecialIsomer> &GetSpecialIsomerVector(){return fSpecialIsomerVector;}
1070 
1075 
1077 
1080  bool GetMCNPVolume();
1081 
1082  void FindMissingVolume();
1083 
1084  void SetVolumeNPS(int nps=400000){fVolumeNPS=nps;}
1085  void SetVolumeWarning(double variance=0.005){fVolumeWarning=variance;}
1086  void SetSourceSphereRadius(double R){fSourceSphereR=R;}
1087  void SetSourceSphereCenter(double *O){fSourceSphereO=O;}
1088  void AddToNuSigmaFisPhiTotal(double Value) {fNuSigmaFisPhiTotal+=Value;}
1089  bool IsNucleusUsedForBeta(int Z, int A);
1090  void SumAllCellToBetaCalculation();
1091  void CalculateBetaI();
1092  void SetBetaCalculation() {fBetaCalculationRequired=true;}
1093  void ResetAllBetaValues();
1094  void FinishOnMCNPRun(bool flag=true){fFinishOnMCNPRun=flag;}
1095  double FindFissileEnrichment(double DesiredKeff, double EnrichmentFirstGuess, Material* Fertile, Material* Fissile, Material* Target);
1097 
1098  private:
1099 
1100  void UpdateMaterial();
1101  void Delete();
1102  void Copy(const MURE &m);
1103  void WriteCell(ostream &Out);
1104  void WriteSurface(ostream &Out,bool tmpvol=false);
1105  void WriteMaterial(ostream &Out);
1106  void WriteMCNPFile(string FileName="inp",bool tmpvol=false);
1107  void CopyMCNPFile(string FileName);
1108  void FindExtrapolateSigmaPhi();
1109 
1110  void InitTNFFit();
1111  void CheckExtensions();
1112  void CheckCompositions();
1113 
1116  unsigned fLastCellNum;
1117  unsigned fLastSurfaceNum;
1118  unsigned fLastMaterialNum;
1119  unsigned fLastUniverseNum;
1120  int fLastTallyNum[8];
1122  string fComment;
1123  string fMCNPExec;
1127  double* fSourceSphereO;
1129  vector<Cell *> fCellVector;
1130  vector<vector<Cell *> > fGroupCellVector;
1131  vector<Material *> fMaterialVector;
1132  vector<Cell *> fTrueCellVector;
1133  vector<Surface *> fSurfaceVector;
1134  vector<Tally*> fTallyVector;
1135  vector<MeshTally*> fMeshTallyVector;
1136  vector<string> fSpecialSurfaceCard;
1137  vector<string> fSpecialCard;
1138  vector<EvolutiveSystem *> fEvolutiveSystemVector;
1139  vector<EvolutiveSystem *> fOutCoreEvolutiveSystemVector;
1140 
1141  vector<Cell *> fCellofUnknownVol;
1142  vector<Shape *> fSurfofUnknownArea;
1148  string fMFileName;
1159  string fMode;
1160  string fPRDMP;
1161  vector<Nucleus_ptr> fGlobalNucleiVector;
1162  vector<Material*> fPerturbativeMaterial;
1163 
1164  vector<ZAI *> fZAIThatFission;
1165  vector<double> fMCNPFissionsPerSecond;
1166 
1168  map<Nucleus*,string> fNucleiErrorMap;
1175  bool fFromCopy;
1179 
1180  double fPower;
1182 
1184  string fXSDIRName ;
1187  double fNextMCNPTime;
1188  double fCurrentTime;
1189  double fKeff;
1190  double fKeff_Err;
1191  int fNrk;
1192  double fDTRK;
1193  double fDTMaxRK;
1194  string fSourceFile;
1197 
1205  double fDeltaK;
1206  double fConstantK;
1208  vector<Cell*> fControlRodCell;
1212 
1215 
1216  map<Reaction,ValErr_t,EqualReaction> fControlRate ;
1218  ValErr_t fGlobalFissions;
1220  ValErr_t fGlobalN2N;
1221  ValErr_t fGlobalN3N;
1223 
1226  vector<double>fEnergyBins;
1227 
1229  vector<bool> fIsCooling;
1231  bool fMCNP4B;
1233  string fMPIExec;
1234  bool fPVM;
1235  bool fMPI;
1236  int fOMP;
1238 
1244 
1246 
1249 
1252 
1253  vector<double> fFitTNF;
1254  vector<double> fMCNPTimeForFit;
1255  double fFitTNFSlope;
1256  double fInterseptTNF;
1257  bool fFittedTNF;
1259 
1264 
1270  string fTimeUnit;
1273  vector<ReactorMesh*> fReactorMesh;
1278 
1284  vector<string> fBaseSummary;
1294  vector<SpecialIsomer> fSpecialIsomerVector;
1298 
1299 
1300 };
1301 
1302 #endif
void SetMCNPUserDefinedGeometry()
Tell that it is a user defined MCNP geometry.
Definition: MURE.hxx:911
bool fWriteASCIIData
True if DATA_ files are wanted (ASCII MURE data)
Definition: MURE.hxx:1267
void SetMessageLevel(int level)
Set the minimal level of printed messages.
Definition: MURE.hxx:506
vector< Nucleus_ptr > GetGlobalNucleiVector()
Returns the global nuclei vector.
Definition: MURE.hxx:898
int GetMessageLevel()
returns the minimal level of printed messages
Definition: MURE.hxx:487
string GetMFileName()
Returns filename of MCNP &quot;m&quot; file.
Definition: MURE.hxx:457
void SetFissionReleasedFile(string name)
Set the fission energy released from a file.
Definition: MURE.hxx:614
unsigned fLastTransformNum
last Transformation used
Definition: MURE.hxx:1121
MURE class allow to make connections between classes.
Definition: MURE.hxx:81
double fTallyNormalizationFactor
factor to normalized mcnp tallies.
Definition: MURE.hxx:1181
double fSetAllFissionEnergies
If &gt; zero, then we will override correct fission energies with this value.
Definition: MURE.hxx:1240
TFunctor * fReactionListInitMethod
ReactionList Ini tMethod (e.g. InitJon())
Definition: MURE.hxx:1178
A Cell is a MCNP cell.
Definition: Cell.hxx:48
void SetFitTallyNormalizationFactor()
Set if the TNF has to be fitted.
Definition: MURE.hxx:623
vector< EvolutiveSystem * > fOutCoreEvolutiveSystemVector
the vector containing all theout core evolutive systems considered.
Definition: MURE.hxx:1139
int fVolumeNPS
source neutron number for stochastic volume calculation
Definition: MURE.hxx:1124
A real Nucleus with a Temperature.
Definition: Nucleus.hxx:47
map< Reaction, ValErr_t, EqualReaction > fControlRate
Global reaction rates when evolution is controled by ControlMaterial.
Definition: MURE.hxx:1216
bool fMultigroupTallies
True in multigroup calculation.
Definition: MURE.hxx:1274
EvolutionControl * fEvolutionControl
Control the Evolution.
Definition: MURE.hxx:1213
vector< Material * > fPerturbativeMaterial
Vector of Perturbative materials for evolution.
Definition: MURE.hxx:1162
string GetRealMCNPInputFileName()
returns mcnp input file name(eg. inpXXX).
Definition: MURE.hxx:456
void AddControlRodCell(Cell *TheCell)
say that the cell is used as a control rod
Definition: MURE.hxx:214
ValErr_t GetAbs()
returns the value of global total absorptions (code -2) in the whole geometry.
Definition: MURE.hxx:216
double GetKeff()
returns the value of the total combinated estimation of the Keff of the current run ...
Definition: MURE.hxx:890
void SetBetaCalculation()
use if delayed neutron fraction calculation wanted - Flag needed before running MCNP ...
Definition: MURE.hxx:1092
bool fSetESpectrum
flag for tallying Energy Bins in all &quot;True&quot; Cells (Cells which do contain a non void material) ...
Definition: MURE.hxx:1209
double fCurrentMCNPTime
Current MCNP time in case of Evolution.
Definition: MURE.hxx:1186
int GetFirstThermalZIndexInBaseSummary(int z)
Use to find faster z entries for thermal data in Base Summary.
Definition: MURE.hxx:936
ValErr_t fGlobalNeutronLosses
Total neutron loss in the whole geometry.
Definition: MURE.hxx:1222
vector< EvolutiveSystem * > fEvolutiveSystemVector
the vector containing all the evolutive systems considered.
Definition: MURE.hxx:1138
bool fSilentDebug
generally suppress the debug messages
Definition: MURE.hxx:1115
string fNucleiChartFileName
File where to find radioactive decays.
Definition: MURE.hxx:1149
double fInitHNMassInTon
Initial mass of Heavy Nucleus in ton.
Definition: MURE.hxx:1283
string fMCNPExec
name of MCNP exec
Definition: MURE.hxx:1123
void SetMaterialControl()
Set the MaterialControl mode.
Definition: MURE.hxx:211
void SetModeP()
Set the Photon mode (Add By Leniau B.)
Definition: MURE.hxx:294
bool fFromRebuildTallies
flag to know if the RebuildTallies method has been used (for RebuildPerturbativeMaterials) ...
Definition: MURE.hxx:1176
string GetTimeUnit()
use only for pretty print
Definition: MURE.hxx:756
bool IsTHMultiGroupTalliesUsed()
return true for Thermal hydraulics Multi group flux MCNP run
Definition: MURE.hxx:181
ValErr_t fGlobalN3N
Total n3n rate in the whole geometry.
Definition: MURE.hxx:1221
void SetNrk(int Nrk=10)
Set the number of Runge-Kutta step.
Definition: MURE.hxx:680
string fSourceFile
Name of the next source if using file source.
Definition: MURE.hxx:1194
double fPower
Power of the critical reactor IN WATTS ! (EFR = 3.6e+9 W)
Definition: MURE.hxx:1180
Surface class is design to define MCNP surface format.
Definition: Surface.hxx:26
bool fPartialParticleMCNPRun
True for partial particle number in a partial run mode, false for total particle. ...
Definition: MURE.hxx:1261
void SetPartialMCNPRunDirectory(string name="PartialRun")
Set The Partial Run directory name.
Definition: MURE.hxx:777
string fXSDIRName
the xsdir name
Definition: MURE.hxx:1184
EvolutionControl * GetEvolutionControl()
returns the EvolutionControl object
Definition: MURE.hxx:209
string fMCNPInputFileName
The final file name for MCNP (such as inpXXX for step XXX of an Evolution)
Definition: MURE.hxx:1147
string GetListOfWantedNucleiFN()
returns the List of Wanted Nuclei file name
Definition: MURE.hxx:827
int fMCNPRunNumber
Current MCNP Run Number.
Definition: MURE.hxx:1200
ValErr_t fGlobalFissions
Total fission rate in the whole geometry (-6).
Definition: MURE.hxx:1218
double GetKeff_Err()
returns the error associated to the value of the total combinated estimation of the Keff of the curre...
Definition: MURE.hxx:891
vector< Cell * > & GetCellVector()
Returns the Cell Vector.
Definition: MURE.hxx:1053
void SetTallyNormalizationFactor(double val)
Definition: MURE.hxx:654
double GetPower()
returns the reactor power (in watts)
Definition: MURE.hxx:204
void SetMultiGroupDecadeMultiplcator(int N=1)
set the number of Multi group flux per decade
Definition: MURE.hxx:179
int GetOMP()
return thread number for parallel mcnp run
Definition: MURE.hxx:545
bool fPredictorCorrector
True if Predictor-Corrector evolution scheme is used.
Definition: MURE.hxx:1279
string GetSourceFileName()
return the name of the input source file for kcode run
Definition: MURE.hxx:280
bool fPredictorStep
True if the step is the Predictor step before a corrector one.
Definition: MURE.hxx:1281
double fKeff_Err
Current Error on current Keff of the problem.
Definition: MURE.hxx:1190
int NumberOfCellGroup()
return the number of cell group
Definition: MURE.hxx:195
string fFissionReleasedFN
The name of fission energy released file.
Definition: MURE.hxx:1245
void SetModeN()
Set the Neutron mode (default)
Definition: MURE.hxx:289
bool fMaterialControl
whether Keff control by a ControlMaterial is be used during evolution.
Definition: MURE.hxx:1207
bool BaseSummaryReadIn()
Is the base summary read in?
Definition: MURE.hxx:931
bool fMPI
True for a MCNP MPI parallel run.
Definition: MURE.hxx:1235
string fEnergyBinsFileName
name of the user provided data file with desired energy binning.
Definition: MURE.hxx:1211
void SetControlRate(int ReactionCode, ValErr_t rate)
Set global reaction rates when evolution is controled by ControlMaterial.
Definition: MURE.hxx:245
double fVolumeWarning
warning message threshold in stochastic volume precision
Definition: MURE.hxx:1125
string GetBaseSummaryFileName()
return the BaseSummary.dat file name
Definition: MURE.hxx:421
vector< Surface * > & GetSurfaceVector()
return the Surface Vector.
Definition: MURE.hxx:1050
Template class to assign a method of class T as argument.
Definition: TFunctor.hxx:34
string GetMode()
returns MCNP mode (particle transported)
Definition: MURE.hxx:296
bool fFittedTNF
True when TNF extrapolation is used.
Definition: MURE.hxx:1257
double GetRunTime()
returns the difference between the start system clock time and now
Definition: MURE.hxx:926
int GetReactionDepth()
return the maximum number of consecutive reactions
Definition: MURE.hxx:846
int GetMCNPThermoRunNumber()
returns current MCNP run number for thermo
Definition: MURE.hxx:752
bool IsFitTallyNormalizationFactor()
return whether the TNF has to be fitted.
Definition: MURE.hxx:622
double GetShortestHalfLife()
return the shortest half time to consider for evolution.
Definition: MURE.hxx:836
Shape_ptr fOutermostShape
The outer Shape to evaluate neutron leakage.
Definition: MURE.hxx:1228
int fCurrentRKNumber
Current Runge Kutta Number.
Definition: MURE.hxx:1202
void SetComment(string Comment="This comment is never read...")
First line of MCNP file.
Definition: MURE.hxx:571
bool fBrutalStop
brutally stop the evolution if Keff falls below BrutalStopValue
Definition: MURE.hxx:1241
void SetCurrentTime(double time)
set Current time in case of Evolution
Definition: MURE.hxx:747
void SetModeNE()
Set the Neutron Electron mode.
Definition: MURE.hxx:291
const int NODEBUG
Definition: MURE.hxx:44
double GetPCEvaluationTime()
return corrector evaluation time
Definition: MURE.hxx:142
void AddToNuSigmaFisPhiTotal(double Value)
Adds values of Nu tot sigma phi of a cell to the total value.
Definition: MURE.hxx:1088
void SetSource(MCNPSource *source)
Set the (true) MCNP neutron source (kcode, ...)
Definition: MURE.hxx:268
vector< MeshTally * > fMeshTallyVector
the vector of all Mesh Tally to write
Definition: MURE.hxx:1135
void SetSourceSphereCenter(double *O)
set the center of the source Sphere (stochastic volume calculation)
Definition: MURE.hxx:1087
string GetMassDataFileName()
returns the name of the isotopes masses file
Definition: MURE.hxx:390
unsigned GetMaterialNum()
set Material number
Definition: MURE.hxx:1029
double GetCurrentRKStep()
returns current Runge Kutta step
Definition: MURE.hxx:749
EvolutiveSystem class carries out evolution.
Definition: EvolutiveSystem.hxx:37
void SetModePE()
Set the Photon Electron mode.
Definition: MURE.hxx:293
void SetBrutalStopKValue(double brutalstopvalue)
Set the Brutal Stop Value.
Definition: MURE.hxx:231
string fTimeUnit
use only for pretty print
Definition: MURE.hxx:1270
bool IsFitSigmaPhiPC()
True if the in PCE, fit of sigma*phi is done for the corrector step.
Definition: MURE.hxx:966
bool fWriteBinaryData
True if BDATA_ files are wanted (binary MURE data)
Definition: MURE.hxx:1266
bool fXe135Equilibrium
whether or not to use Xe-135 equilibrium treatment
Definition: MURE.hxx:1296
double GetNextMCNPTime()
returns Next MCNP time in case of Evolution
Definition: MURE.hxx:746
double fXe135EquilibriumTime
the time from which Xe-135 equilibrium is &quot;imposed&quot;
Definition: MURE.hxx:1297
bool fIsAutoXSDIR
Whether the XSDIr must be automtically built or not.
Definition: MURE.hxx:1185
int fNrk
Number of internal Runge-Kutta integration steps between two consecutive MCNP runs.
Definition: MURE.hxx:1191
bool fIsCoolingUsed
true when cooling is set
Definition: MURE.hxx:1230
void SetEvolutionControl(EvolutionControl *EC)
set the EvolutionControl object
Definition: MURE.hxx:208
vector< double > fMCNPFissionsPerSecond
Vector of total number of fissions per seconds for each zai.
Definition: MURE.hxx:1165
vector< ReactorMesh * > GetReactorMeshVector()
Returns the reactor mesh vector.
Definition: MURE.hxx:865
bool fEvolutionRequired
If we are running MCNP many times - Evolution.
Definition: MURE.hxx:1169
double GetMCNPFissionsPerSecond(int i)
returns the ith total number of fissions/s.
Definition: MURE.hxx:634
bool fU8StdTally
True if std tallies are used for U-238 in a multi-group evolution.
Definition: MURE.hxx:1277
string fMPIExec
MPI Exec name to launch mcnp (mpiexec, mpirun, ...)
Definition: MURE.hxx:1233
void DontAddMaterial()
The Material vector is not fill: the puspose is to avoid an error when using open mp for GammaSpectru...
Definition: MURE.hxx:1041
vector< Cell * > fCellofUnknownVol
Vector of Cell of Unknown volume used in tallies.
Definition: MURE.hxx:1141
double GetCurrentMCNPTime()
returns Current MCNP time in case of Evolution
Definition: MURE.hxx:744
bool fKeepOnlyFissionProductSelection
true if all fission products are not used for evolution
Definition: MURE.hxx:1250
bool fTHMultigroupTallies
True in Thermal hydraulics multigroup calculation.
Definition: MURE.hxx:1275
void SetNewReactorMeshObject(ReactorMesh *RM)
Add a new ReactorMesh Object into the vector.
Definition: MURE.hxx:866
void SetSourcePartialFactor(int N=2)
set the fSourcePartialFactor for Partial Run mode
Definition: MURE.hxx:778
void SmoothSigmaPhi(bool flag=true)
Set/Unset a Smooth extrapolation of sigma*phi.
Definition: MURE.hxx:964
void SetMCNPThermoRunNumber(int value=0)
returns current MCNP run number for thermo
Definition: MURE.hxx:753
vector< SpecialIsomer > & GetSpecialIsomerVector()
Definition: MURE.hxx:1068
bool IsOnlyFissionProductSelection()
return true if all fission products are not used for evolution
Definition: MURE.hxx:799
bool GetUsePrevSource()
return true if an old &quot;s&quot; file is used as MCNP source
Definition: MURE.hxx:278
unsigned fLastCellNum
last Cell number used
Definition: MURE.hxx:1116
void AddToNucleiErrorMap(Nucleus *nuc, string ErrType)
add a ZAI to NucleiErrorMap with its problem type
Definition: MURE.hxx:896
double fSourceSphereR
Sphere source radius used in stochastic volume calculation.
Definition: MURE.hxx:1126
bool IsPartialMCNPRun()
return whereas Partial Run mode is used
Definition: MURE.hxx:774
string fMCNPInputBaseFileName
The Base Name of the input file name generated for MCNP (such as &quot;inp&quot;)
Definition: MURE.hxx:1146
vector< Cell * > & GetCellGroup(int GroupNumber)
return the cell vector of the group GroupNumber
Definition: MURE.hxx:194
bool fTallyRebuild
Allows or not rebuild of tallies (necessary in thermal evolution)
Definition: MURE.hxx:1258
void SetModeNPE()
Set the Neutron Photon Electron mode.
Definition: MURE.hxx:292
bool AllowToAddMaterial()
Definition: MURE.hxx:1042
double fInterseptTNF
current intersept value for linear Tally Normalization Factor extrapolation
Definition: MURE.hxx:1256
bool fThermoHydraulicsRequired
If we are running MCNP many times with ThermoHydraulics.
Definition: MURE.hxx:1170
void SetFitRangeNumber(int n=4)
set the number of points used for fitting XS
Definition: MURE.hxx:953
string GetMCNPRunDirectory()
Returns mcnp run directory name.
Definition: MURE.hxx:451
void SetUsePrevSource(bool flag=true)
say whether or not to use an old &quot;s&quot; file
Definition: MURE.hxx:279
string fNaturalIsotopeMassFileName
File where to find the nuclear mass data for natural isotopes.
Definition: MURE.hxx:1152
double fDTRK
wanted DT for RK intergartion.
Definition: MURE.hxx:1192
string GetMCNPExec()
Get the name of the MCNP exec.
Definition: MURE.hxx:454
bool fMaterialUpdated
flag indicating that Materials have been updated
Definition: MURE.hxx:1177
void SetMCNPNucleusThreshold(double epsilon=1e-6)
Set threshold to decide to write a nucleus in MCNP.
Definition: MURE.hxx:808
vector< Material * > & GetMaterialVector()
returns the Material Vector.
Definition: MURE.hxx:1066
void SetOMP(int n_thread)
set the number of threads for parallel mcnp run
Definition: MURE.hxx:544
ValErr_t GetFiss()
returns the fission rate
Definition: MURE.hxx:219
BasePriority * fBasePriority
The Base Priority wish.
Definition: MURE.hxx:1174
vector< Material * > GetPerturbativeMaterial()
returns perturbative material vector
Definition: MURE.hxx:1062
bool fUserDefaultHydraulicModel
Use specific hydraulics model for CHF.
Definition: MURE.hxx:1173
bool IsWriteASCIIData()
Return whether the ascii evolution output (DATA) should be printed.
Definition: MURE.hxx:486
long int fRandomSeedGenerator
first arg of DBCN card
Definition: MURE.hxx:1291
bool fFinishOnMCNPRun
The envolution ends on a MCNP run.
Definition: MURE.hxx:1292
void SetMode(string MyMode="N")
Set a general MCNP run mode.
Definition: MURE.hxx:295
bool fAddMaterial
false if you don&#39;t want to add material in fMaterialVector
Definition: MURE.hxx:1293
int fRunMultiMCNP
Number of rub in a Multi MCNP mode.
Definition: MURE.hxx:1271
int fNprocessors
Number of processor in PVM/MPICH MCNP run.
Definition: MURE.hxx:1232
TemperatureMap * GetTemperatureMap()
returns the Temperature Map
Definition: MURE.hxx:323
int fReactionDepth
The maximum number of consecutive reactions.
Definition: MURE.hxx:1157
ValErr_t GetControlRate(int ReactionCode)
return the global reaction rates when evolution is controled by ControlMaterial
Definition: MURE.hxx:247
int fOMP
number of Threads in OMP parallel compilation of mcnp.
Definition: MURE.hxx:1236
bool fMUREInputGeometry
True if the geometry is a MURE geometry and false for a user defined MCNP geometry.
Definition: MURE.hxx:1247
string fUserGeometryInputFile
The input file for the user given MCNP geometry.
Definition: MURE.hxx:1248
Define a MCNP Tally.
Definition: Tally.hxx:324
int GetFirstContinuousZIndexInBaseSummary(int z)
Use to find faster z entries for continuous energy in Base Summary.
Definition: MURE.hxx:935
void SetReactionListInitMethod(TSpecificFunctor< ReactionList > *method)
Set the ReactionList Init Method.
Definition: MURE.hxx:338
A ControlMaterial.
Definition: ControlMaterial.hxx:30
int fMureDataWritingVersion
The MURE version for data writing in evolving file.
Definition: MURE.hxx:1243
int GetMCNPRunNumber()
returns current MCNP run number
Definition: MURE.hxx:751
string GetDATADIR()
returns the Data directory where data files are stored
Definition: MURE.hxx:354
bool fBetaCalculationRequired
True if delayed neutron fraction calculation wanted.
Definition: MURE.hxx:1288
Shape_ptr GetOutermostShape()
returns the most outer shape_ptr
Definition: MURE.hxx:257
int GetNrk()
Definition: MURE.hxx:713
vector< EvolutiveSystem * > GetOutCoreEvolutiveSystemVector()
returns the vector containing all the OutCore evolutive systems considered.
Definition: MURE.hxx:1065
void SetCurrentMCNPTime(double time)
set Current MCNP time in case of Evolution
Definition: MURE.hxx:743
bool fUseEnergyBinsFile
flag for using a user provided data file with desired energy binning.
Definition: MURE.hxx:1210
double fPCEvaluationTime
Time at wich the Predictor-Corrector is done : either ~dT/2 or dT.
Definition: MURE.hxx:1280
bool fFitSigmaPhiPC
True if the in PCE, fit of sigma*phi is done for the corrector step.
Definition: MURE.hxx:1282
void SetRealMCNPInputFileName(string Name)
Set Real MCNP Input File Name (e.g. inpXXX).
Definition: MURE.hxx:459
double fNuSigmaFisPhiTotal
Nu*sigma*phi total.
Definition: MURE.hxx:1289
Define a MeshTally class (abstract).
Definition: MeshTally.hxx:23
vector< vector< Cell * > > fGroupCellVector
the vector of Group Cell
Definition: MURE.hxx:1130
bool fFromCopy
flag to know if the Copy method has been used (for destructor)
Definition: MURE.hxx:1175
double fCurrentRKStep
Current Runge Kutta step.
Definition: MURE.hxx:1203
void SetOutermostShape(Shape_ptr s)
Set the most outer shape.
Definition: MURE.hxx:256
int fSourcePartialFactor
factor for multiplying source in the total run/partial run
Definition: MURE.hxx:1263
bool fPVM
True for a MCNP PVM parallel run.
Definition: MURE.hxx:1234
bool fSmoothSigmaPhi
Whether or not to smooth SigmaPhi between 2 MCNP steps.
Definition: MURE.hxx:1199
string GetNaturalIsotopeMassFileName()
returns the name of the natural isotopes masses file
Definition: MURE.hxx:399
vector< double > fNSigmaFisPhiTotalOfNucleus
For a nucleus : sum of reaction rates.
Definition: MURE.hxx:1290
bool fFitSigmaPhi
Whether or not fit SigmaPhi between 2 MCNP steps.
Definition: MURE.hxx:1198
string fSpecialIsomerFileName
file that explain the particular treatment of special isomers
Definition: MURE.hxx:1295
bool GetMaterialControl()
Say if MaterialControl mode is used.
Definition: MURE.hxx:212
int fFitRange
The number of point taken for the fit.
Definition: MURE.hxx:1204
const int DODEBUG
Definition: MURE.hxx:45
TFunctor * GetReactionListInitMethod()
return the fReactionListInitMethod
Definition: MURE.hxx:339
vector< Material * > fMaterialVector
the vector of all Material to write
Definition: MURE.hxx:1131
vector< string > fBaseSummary
Table to put the Base summary file in memory for quick access.
Definition: MURE.hxx:1284
string fDataDirectoryName
data directory name for all data files
Definition: MURE.hxx:1143
vector< string > fSpecialSurfaceCard
the vector of all Special Surface card
Definition: MURE.hxx:1136
Define a Reaction list for Tally multiplicator inputs.
Definition: Tally.hxx:233
double fReactionThreshold
the reaction ratio threshold for ReactionList
Definition: MURE.hxx:1183
File including all headers.
bool IsPredictorCorrector()
return true when PC method is used
Definition: MURE.hxx:140
The good way of handling temperature from data base.
Definition: TemperatureMap.hxx:28
bool fBaseSummaryReadIn
Flag to say if Base summary has been read in or not.
Definition: MURE.hxx:1285
vector< Cell * > fCellVector
the vector of all Cell to write
Definition: MURE.hxx:1129
vector< double > fEnergyBins
Bin array for the energies.
Definition: MURE.hxx:1226
string fMFileName
The name of the m file containing tallies.
Definition: MURE.hxx:1148
int fMessageLevel
message level treshold
Definition: MURE.hxx:1114
double fDeltaK
The precision with which the user wishes to remain around the value of Keff = 1. FMS testing...
Definition: MURE.hxx:1205
bool IsMCNPUserDefinedGeometry()
return true for a user defined MCNP geometry
Definition: MURE.hxx:912
ValErr_t fGlobalNuFissions
Total nu fission rate in the whole geometry (-6:-7).
Definition: MURE.hxx:1219
double GetSpectrumType()
returns the mean energy of the spectrum.
Definition: MURE.hxx:315
ValErr_t GetN3N()
returns the (n,3n) rate
Definition: MURE.hxx:218
vector< ZAI * > fZAIThatFission
Vector of all the zai which fission.
Definition: MURE.hxx:1164
int fMultiGroupDecadeMultiplcator
number of group/decades in multi-group run is multiply by this factor
Definition: MURE.hxx:1276
MCNPSource * fReactivityCoeffsSource
Source Used for reactivity coeffs calculations.
Definition: MURE.hxx:1237
Define priorites of nuclear databases to choose nuclei from BaseSummary.dat file. ...
Definition: BasePriority.hxx:25
string GetFissionReleasedFile()
Get fission energy released file used.
Definition: MURE.hxx:615
bool IsSmoothSigmaPhi()
Definition: MURE.hxx:965
map< Nucleus *, string > fNucleiErrorMap
Map to store problems about nuclei (Errors in Nucleus::FindCode, more precisely)
Definition: MURE.hxx:1168
vector< Cell * > fControlRodCell
The cell that is a control rod.
Definition: MURE.hxx:1208
double GetReactionThreshold()
Get the reaction ratio threshold for ReactionList.
Definition: MURE.hxx:801
char * GetFPBinaryFileName()
returns Binary file name for FP
Definition: MURE.hxx:419
string fKeepOnlyFissionProductSelectionFN
The file name that contains the FP to keep.
Definition: MURE.hxx:1251
int GetNProcessors()
return processors number for pvm/mpich run
Definition: MURE.hxx:547
MCNPSource * fSource
Define a MCNP neutron source.
Definition: MURE.hxx:1128
void SetWriteBinaryData(bool flag=true)
Set if the binary evolution output (BDATA) should be printed.
Definition: MURE.hxx:483
void SetEvolutionRequired(bool flag=true)
say that evolution is needed or not
Definition: MURE.hxx:883
void FinishOnMCNPRun(bool flag=true)
Finish evolution by a MCNP run.
Definition: MURE.hxx:1094
int GetCurrentRKNumber()
returns current Runge Kutta number
Definition: MURE.hxx:750
string fComment
first line comment in MCNP file
Definition: MURE.hxx:1122
string GetMCNPInputFileName()
returns mcnp input Base file name (e.g. &quot;inp&quot; for an evo step inpXXX).
Definition: MURE.hxx:455
double fMCNPNucleusThreshold
the threshold to decide to write a nucleus
Definition: MURE.hxx:1214
char * GetFPASCIIFileName()
returns ASCII file name for FP
Definition: MURE.hxx:409
string fPRDMP
PRDMP argument (default=2J -1 1)
Definition: MURE.hxx:1160
double GetCurrentTime()
returns Current time in case of Evolution
Definition: MURE.hxx:748
bool IsXe135Equilibrium()
return true when this treatment is used
Definition: MURE.hxx:734
string fMCNPRunDirectory
name of the directory in which the MCNP output files are written
Definition: MURE.hxx:1145
string fEnsdfDataDirectoryName
data directory name for ENSDF data (added B.LENIAU)
Definition: MURE.hxx:1144
vector< Tally * > & GetTallyVector()
Definition: MURE.hxx:1061
string fMode
the mode MCNP card (N, N P, N E,P E,P, or N P E)
Definition: MURE.hxx:1159
string GetNucleiChartFileName()
Set Name of the decay mode file.
Definition: MURE.hxx:371
int GetSourcePartialFactor()
return the fSourcePartialFactor for Partial Run mode
Definition: MURE.hxx:779
void UseMultiGroupTallies(bool StdTallyFor238U=false)
Use Multi group tallies in the evolution.
Definition: MURE.hxx:178
A Material constituing a Cell.
Definition: Material.hxx:53
bool fPartialMCNPRun
True when doing partial run for error evalution.
Definition: MURE.hxx:1260
MCNPSource * GetSource()
Get the (true) MCNP neutron source (kcode, ...)
Definition: MURE.hxx:269
bool IsThermoHydraulicsRequired()
Definition: MURE.hxx:871
bool fMCNP4B
True if MCNP 4B is used.
Definition: MURE.hxx:1231
bool IsWriteBinaryData()
Return whether the binary evolution output (BDATA) should be printed.
Definition: MURE.hxx:485
void SetSilentDebug(bool flag=true)
Set the Silent Debug mode on.
Definition: MURE.hxx:515
Define a MCNP Source.
Definition: MCNPSource.hxx:28
void SetWriteASCIIData(bool flag=true)
Set if the ascii evolution output (DATA) should be printed.
Definition: MURE.hxx:484
vector< string > fSpecialCard
the vector of all Special card to write
Definition: MURE.hxx:1137
double fKeff
Current Keff of the problem.
Definition: MURE.hxx:1189
string fBaseSummaryFileName
Name of the Base Summary file to find info on availlable data bases.
Definition: MURE.hxx:1155
bool IsEvolutionRequired()
returns true if evolution is needed
Definition: MURE.hxx:884
A ZAI defined a (Z,A,Isomere) for a Nucleus.
Definition: ZAI.hxx:62
int fMCNPThermoRunNumber
Current ThermoHydraulics MCNP Run Number.
Definition: MURE.hxx:1201
bool IsMultiGroupTalliesUsed()
return true for Multi group flux MCNP run
Definition: MURE.hxx:180
bool IsPartialParticleMCNPRun()
return whereas in a Partial Run mode, it is the Partial or the full run
Definition: MURE.hxx:775
string fMassDataFileName
File where to find the nuclear mass data.
Definition: MURE.hxx:1151
ValErr_t fGlobalN2N
Total n2n rate in the whole geometry.
Definition: MURE.hxx:1220
double GetTimeUnitConverter()
use only for pretty print
Definition: MURE.hxx:755
int fESpectrumTallyNumber
Number of the Tally for Energy flux spectrum.
Definition: MURE.hxx:1225
double fShortestHalfTimeThres
The shortest half time considered for a nucleus.
Definition: MURE.hxx:1156
double * fSourceSphereO
Sphere source center used in stochastic volume calculation.
Definition: MURE.hxx:1127
void SetCOBRACalculationRequired(int NumberOfIteration)
Definition: MURE.hxx:869
void AddToMCNPFissionsPerSourceNeutron(int i, double val)
Add val to total number of fissions/s for ZAI i.
Definition: MURE.hxx:646
BasePriority * GetBasePriority()
returns the BasePriority
Definition: MURE.hxx:324
double fFitTNFSlope
current slope value for linear Tally Normalization Factor extrapolation
Definition: MURE.hxx:1255
void SetRemove_r_files(bool flag=true)
remove MCNP &quot;r&quot; file during the evolution
Definition: MURE.hxx:481
vector< ReactorMesh * > fReactorMesh
Vector containing ReactorMesh Objects if exist.
Definition: MURE.hxx:1273
void SetOriginalSourceFileName(string name)
set the name of the original input source file for kcode run
Definition: MURE.hxx:282
bool GetCorrectNormalizationFactor()
return Tibor&#39;s flag
Definition: MURE.hxx:662
void SetDTRK(double dt=-1)
Set the approximate Runge-Kutta step.
Definition: MURE.hxx:696
bool GetSilentDebug()
return true for if SilentDebug is on
Definition: MURE.hxx:507
double fTimeUnitConverter
use only for pretty print
Definition: MURE.hxx:1269
double fMeanEnergySpectrum
The mean energy spectrum to consider (for FP yield)
Definition: MURE.hxx:1158
void SetVolumeWarning(double variance=0.005)
set the warning message threshold in stochastic volume precision
Definition: MURE.hxx:1085
TemperatureMap * fTemperatureMap
The temperature Map.
Definition: MURE.hxx:1167
void IncreaseMCNPThermoRunNumber()
This is used in ThermoCoupling.cxx.
Definition: MURE.hxx:754
map< Nucleus *, string > & GetNucleiErrorMap()
Returns the Error storing map.
Definition: MURE.hxx:899
double fCurrentTime
Current time in case of Evolution.
Definition: MURE.hxx:1188
vector< Cell * > GetTrueCellVector()
fms
Definition: MURE.hxx:1047
ValErr_t fGlobalAbsorptions
Global total absorption rate of the whole geometry (code -2).
Definition: MURE.hxx:1217
void SetMCNPFissionsPerSourceNeutron(int i, double val)
set the total number of fissions/s for ZAI i.
Definition: MURE.hxx:640
string GetComment()
First line of MCNP file.
Definition: MURE.hxx:572
void SetKeff(double k)
Set the Keff to k.
Definition: MURE.hxx:892
double GetMCNPNucleusThreshold()
returns the threshold to decide to write a nucleus
Definition: MURE.hxx:809
void SetMaterialNum(unsigned num)
set Material number
Definition: MURE.hxx:1028
void SetPartialMCNPRun(bool flag=true)
Set the Partial Run mode.
Definition: MURE.hxx:773
void SetUserDefaultHydraulicModel()
Definition: MURE.hxx:872
int fNumberOfIterationNTH
Number of Neutronics/thermalhydraulics iterations required at each fuel depletion step...
Definition: MURE.hxx:1172
vector< Cell * > fTrueCellVector
Vector of all true Cells (which are non void) which shall be written to MCNP (which fNumber is not ne...
Definition: MURE.hxx:1132
unsigned fLastSurfaceNum
last Surface number used
Definition: MURE.hxx:1117
void SetReactionDepth(int depth=10000)
Set the maximum number of consecutive reactions to consider for evolution.
Definition: MURE.hxx:845
bool fRemove_r_files
flag to remove mcnp r files from mcnp running
Definition: MURE.hxx:1239
unsigned fLastUniverseNum
last Universe number used
Definition: MURE.hxx:1119
int fStartTime
The computer clock time at the start of the run.
Definition: MURE.hxx:1272
void SetRunMultiMCNP(int n)
set the number of run in multi MCNP
Definition: MURE.hxx:462
vector< SpecialIsomer > fSpecialIsomerVector
vector of special Isomer treatment (like capture on Am241)
Definition: MURE.hxx:1294
vector< int > fFirstContinuousZIndexInBaseSummary
Store line number where to go to find Z entries for continuous energy in Base Summary.
Definition: MURE.hxx:1286
Define a Sphere Shape.
Definition: Sphere.hxx:21
vector< Cell * > & GetControlRodCell()
return the vector of control rod cells
Definition: MURE.hxx:215
vector< double > fMCNPTimeForFit
used for Tally Normalization Factor extrapolation (vector of time)
Definition: MURE.hxx:1254
ValErr_t GetNeutronLosses()
returns the neutron losses (escape)
Definition: MURE.hxx:221
string fListOfWantedNucleiFN
File name of the list of wanted nuclei (and ONLY these)
Definition: MURE.hxx:1265
void SetReactionThreshold(double sigma=1e-2)
Set the reaction ratio threshold for ReactionList.
Definition: MURE.hxx:800
unsigned fLastMaterialNum
last Material number used
Definition: MURE.hxx:1118
double GetInitialHNMass()
returns the mass of heavy nuclei in tons
Definition: MURE.hxx:206
void FitSigmaPhi(bool flag=true)
Set/Unset a fit extrapolation of sigma*phi.
Definition: MURE.hxx:950
string fFPBinaryFileName
Name Binary file for Fission Products.
Definition: MURE.hxx:1154
double fConstantK
The central value of Keff around which the user wishes to keep reactivity constant. FMS.
Definition: MURE.hxx:1206
void SetAutoXSDIR(bool cond=true)
Tells MURE to build its own XSDIR file.
Definition: MURE.hxx:901
bool fCOBRACalculationRequired
If we are running iteration between MCNP and COBRA.
Definition: MURE.hxx:1171
vector< Nucleus_ptr > fGlobalNucleiVector
Union of all the nuclei used in all the evolving materials.
Definition: MURE.hxx:1161
bool GetRemove_r_files()
returns flag to remove MCNP &quot;r&quot; file during the evolution
Definition: MURE.hxx:482
void SetShortestHalfLife(double time=3600)
Set the shortest half time to consider for evolution.
Definition: MURE.hxx:835
void SetControlRate(Reaction r, ValErr_t rate)
Set global reaction rates when evolution is controled by ControlMaterial.
Definition: MURE.hxx:238
void SetPRDMP(string prdmp="2J -1 1")
Set the PRDMP MCNP card.
Definition: MURE.hxx:573
bool fCorrectNormalizationFactor
Flag to say if Tibor&#39;s correction to tallies will be used or not.
Definition: MURE.hxx:1268
ValErr_t GetN2N()
returns the (n,2n) rate
Definition: MURE.hxx:217
double fNextMCNPTime
Next MCNP time in case of Evolution.
Definition: MURE.hxx:1187
string fReactionDataFile
File where to find if reaction are available or not.
Definition: MURE.hxx:1150
string fPartialMCNPRunDir
Directory name for Partial Run.
Definition: MURE.hxx:1262
void SetPower(double Power)
set the reactor power (in watts)
Definition: MURE.hxx:203
void SetMCNPInputFileName(string Name)
Set MCNP Input Base File Name (e.g. &quot;inp&quot; for an evo step inpXXX).
Definition: MURE.hxx:458
int fGlobalLossesTallyNumber
Number of the Tally counting neutron loss in the whole geometry.
Definition: MURE.hxx:1224
int GetFitRangeNumber()
returns the number of points used for fitting XS
Definition: MURE.hxx:952
void SetESpectrum()
set flag to tally for energy flux spectrum in all cells to true.
Definition: MURE.hxx:906
vector< EvolutiveSystem * > GetEvolutiveSystemVector()
returns the vector containing all the evolutive systems considered.
Definition: MURE.hxx:1064
vector< double > fFitTNF
used for Tally Normalization Factor extrapolation (vector of TNF)
Definition: MURE.hxx:1253
string GetKeepOnlyFissionProductSelectionFN()
return the file name that contains the FP to keep
Definition: MURE.hxx:798
void AddCell(Cell *theCell)
Add a Cell to the Cell Vector. Only those cells shall be written if their fNumber attribute is positi...
Definition: MURE.hxx:1039
vector< ZAI * > & GetZAIThatFission()
Returns the vector of Zai that can undergo fission (fZAIThatFission vector).
Definition: MURE.hxx:1067
vector< Shape * > fSurfofUnknownArea
Vector of Shape_ptr of Unknown area used in tallies.
Definition: MURE.hxx:1142
Abstract class to define Functor (function of function).
Definition: TFunctor.hxx:18
void RemoveXSDIR()
remove xsdir
Definition: MURE.hxx:903
void SetListOfWantedNucleiFN(string name)
Set the List of Wanted Nuclei file name.
Definition: MURE.hxx:826
bool IsFitSigmaPhi()
returns whether or not fit SigmaPhi between 2 MCNP steps.
Definition: MURE.hxx:951
bool IsMCNP4B()
return true if MCNP version is 4b (change the way of calling TASK)
Definition: MURE.hxx:548
void SetThermoHydraulicsRequired(bool flag=true)
Definition: MURE.hxx:870
ValErr_t GetControlRate(Reaction r)
return the global reaction rates when evolution is controled by ControlMaterial
Definition: MURE.hxx:246
vector< Surface * > fSurfaceVector
the vector of all Surface to write
Definition: MURE.hxx:1133
double GetXe135EquilibriumTime()
return the time from which equilibrium is &quot;imposed&quot;
Definition: MURE.hxx:735
void SetMaxDtRK(double dtmax=-1)
Set the approximate Maximum Runge-Kutta step.
Definition: MURE.hxx:711
double fDTMaxRK
the maximum DT for RK intergartion.
Definition: MURE.hxx:1193
vector< int > fFirstThermalZIndexInBaseSummary
Store line number where to go to find Z entries for thermal data in Base Summary. ...
Definition: MURE.hxx:1287
string GetEnsdfDATADIR()
Definition: MURE.hxx:363
void SetSourceFileName(string name)
set the name of the input source file for kcode run
Definition: MURE.hxx:281
vector< Tally * > fTallyVector
the vector of all Tally to write
Definition: MURE.hxx:1134
void SetFitSigmaPhiPC(bool flag=true)
set to flag if the in PCE, fFitSigmaPhiPC
Definition: MURE.hxx:967
bool IsPredictorStep()
return true for the predictor step
Definition: MURE.hxx:141
void SetMCNPExec(string Exec="mcnp4c")
Set the name of MCNP exec.
Definition: MURE.hxx:453
double fBrutalStopKValue
The brutal stop value.
Definition: MURE.hxx:1242
vector< bool > fIsCooling
array (same dim as MCNP time) say that it is cooling period (no flux)
Definition: MURE.hxx:1229
string fOriginalSourceFile
Name of the Original source file.
Definition: MURE.hxx:1195
ValErr_t GetNuFiss()
returns the fission*Nu
Definition: MURE.hxx:220
double GetFissionEnergies()
Get fission energy released used for all nuclei.
Definition: MURE.hxx:602
string GetReactionDataFileName()
Name of the Available reaction file for the chart.
Definition: MURE.hxx:381
void SetCorrectNormalizationFactor(bool flag=true)
Tibor&#39;s flag for correcting all tallies.
Definition: MURE.hxx:661
void SetNextMCNPTime(double time)
set Next MCNP time in case of Evolution
Definition: MURE.hxx:745
Manages filled assembly geometry - can be used for a coupled analysis with thermal hydraulics (cf...
Definition: ReactorMesh.hxx:28
int GetMCNPFissionsPerSecondSize()
returns the size of fissions/s zai vector.
Definition: MURE.hxx:629
string fFPASCIIFileName
Name ASCII file for Fission Products.
Definition: MURE.hxx:1153
void SetModeNP()
Set the Neutron Photon mode.
Definition: MURE.hxx:290
bool fUsePrevSource
Whether MURE must use the preivous run source or not.
Definition: MURE.hxx:1196
void SetSourceSphereRadius(double R)
set the radius of the source Sphere (stochastic volume calculation)
Definition: MURE.hxx:1086
Base class to define shapes.
Definition: Shape.hxx:54
EvolutionControl allows interactions with the evolution.
Definition: EvolutionControl.hxx:35
string GetXSDIRName()
return the XSDIR name
Definition: MURE.hxx:904
void SetVolumeNPS(int nps=400000)
Set source neutron number for stochastic volume calculation.
Definition: MURE.hxx:1084

MURE Project, documentation generated by Doxygen 1.8.5 - Mon Nov 17 2014