MURE
Loading...
Searching...
No Matches
FPDistribution.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 _FPDistribution_
20#define _FPDistribution_
21
22#include<fstream>
23#include<string>
24#include<vector>
25#include<map>
26
27#include "ZAI.hxx"
28#include "FissionProduct.hxx"
29
30class FissionProduct;
31class ZAI;
32
38using namespace std;
39
41
50{
51 public:
53
57 FPRecord(unsigned Rec, short NE);
59
63 ~FPRecord();
64 void Add(double E, unsigned Rec);
65
66 int GetNE()
67 {
68 return fNE;
69 }
70 double GetE(int i)
71 {
72 return fE[i];
73 }
74 unsigned GetERecord(int i)
75 {
76 return fEStartRec[i];
77 }
78 unsigned GetStartRecord()
79 {
80 return fStartRecord;
81 }
82
83 private:
84 unsigned fStartRecord;
85 short int fNE;
86 vector<double> fE;
87 vector<unsigned> fEStartRec;
88};
89
91
105{
106 public:
108
113 FPDistribution(int Z, int A, int I = 0);
116
122 void Add(int Z, int A, int I, double Yield);
123 void Add(FissionProduct FP);
124 vector<double> GetEnergyGroups();
125 double Yield(int i)
126 {
127 return fYield[i];
128 }
129 ZAI *GetZAI(int i)
130 {
131 return fZAI[i];
132 }
133 int GetNFP()
134 {
135 return fNFP;
136 }
138 {
139 return fZAI.size();
140 }
141 void ReadYield(double E);
142 void ReadYield(int Ebin);
143 void FindClosestZA();
144 bool FindZA(int Z, int A, int I, int SF);
146 {
147 fSF = SF;
148 }
149 void SetASCIIFileName(string name = "FPavailable.dat")
150 {
151 fASCIIFileName = name;
152 }
153 void SetBinaryFileName(string name = "FPyield.bin")
154 {
155 fBinaryFileName = name;
156 }
157 void BuildMap();
158
159 private:
160 void ReadYieldFromRecord(unsigned rec);
161 int FindZAIinVector(int aZ, int aA, int aI);
162 void DeleteYields();
163 int fZ;
164 int fA;
165 int fI;
166 vector<ZAI *> fZAI;
167 vector<double> fYield;
168 vector<double> fE;
169 int fSF;
170 int fNFP;
173 map<int, map<int, map<int, map<int, FPRecord *> > > > fAvaillableFP;
175
176};
177#endif
Header file for FissionProduct class.
Header file for ZAI and ZAIReaction classes.
A distributio of Fission Products.
Definition FPDistribution.hxx:105
int GetNZAI()
Definition FPDistribution.hxx:137
string fASCIIFileName
ASCII file where access data to binary file are stored.
Definition FPDistribution.hxx:171
void BuildMap()
Fill a map of availlable fissionable species.
Definition FPDistribution.cxx:166
int fI
isomeric state of the fissile
Definition FPDistribution.hxx:165
void SetBinaryFileName(string name="FPyield.bin")
Definition FPDistribution.hxx:153
void SetASCIIFileName(string name="FPavailable.dat")
Definition FPDistribution.hxx:149
string fBinaryFileName
binary file where data (FP and yields) are stored
Definition FPDistribution.hxx:172
~FPDistribution()
Add a new FP to the FPs list with given yield.
Definition FPDistribution.cxx:70
int fA
Nucleon number of the fissile.
Definition FPDistribution.hxx:164
int fNFP
Number of FP (fZAI.size())
Definition FPDistribution.hxx:170
void DeleteYields()
Definition FPDistribution.cxx:97
int fSF
1 for Spontaneous Fission, 0 else
Definition FPDistribution.hxx:169
vector< double > fE
vector of energy groups
Definition FPDistribution.hxx:168
void Add(int Z, int A, int I, double Yield)
Definition FPDistribution.cxx:124
double Yield(int i)
Definition FPDistribution.hxx:125
int FindZAIinVector(int aZ, int aA, int aI)
Definition FPDistribution.cxx:109
map< int, map< int, map< int, map< int, FPRecord * > > > > fAvaillableFP
map of availlable fissionable species
Definition FPDistribution.hxx:173
void FindClosestZA()
Find the closest fissile available.
Definition FPDistribution.cxx:216
int GetNFP()
Definition FPDistribution.hxx:133
vector< double > GetEnergyGroups()
Definition FPDistribution.cxx:379
vector< double > fYield
vector of yield for each FP
Definition FPDistribution.hxx:167
bool FindZA(int Z, int A, int I, int SF)
returns true if the fissionable species Z,A is availlable
Definition FPDistribution.cxx:201
ZAI * GetZAI(int i)
Definition FPDistribution.hxx:129
void SetSpontaneousFission(int SF)
Definition FPDistribution.hxx:145
bool fIsMapBuild
Definition FPDistribution.hxx:174
int fZ
Proton number of the fissile.
Definition FPDistribution.hxx:163
void ReadYield(double E)
read the FP Yield for the (closest of) E fission energy
Definition FPDistribution.cxx:353
vector< ZAI * > fZAI
vector of FP
Definition FPDistribution.hxx:166
void ReadYieldFromRecord(unsigned rec)
Definition FPDistribution.cxx:313
A record in the data file where Fission Product are defined.
Definition FPDistribution.hxx:50
int GetNE()
Definition FPDistribution.hxx:66
short int fNE
Number of available Energy for FP yields for the fissile.
Definition FPDistribution.hxx:85
vector< double > fE
Energy array for FP yields for the fissile.
Definition FPDistribution.hxx:86
vector< unsigned > fEStartRec
starting record in binary file of FP yields
Definition FPDistribution.hxx:87
~FPRecord()
Add an energy dependent FP yield.
Definition FPDistribution.cxx:40
unsigned GetStartRecord()
Definition FPDistribution.hxx:78
void Add(double E, unsigned Rec)
Definition FPDistribution.cxx:47
unsigned GetERecord(int i)
Definition FPDistribution.hxx:74
double GetE(int i)
Definition FPDistribution.hxx:70
unsigned fStartRecord
starting record in binary file of FP yields
Definition FPDistribution.hxx:84
A Fission Product ZAI with its yield.
Definition FissionProduct.hxx:40
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