Commit 3e259c4c authored by LEFEBVREJP email's avatar LEFEBVREJP email
Browse files

Merge branch 'f71stream' into 'master'

f71stream

See merge request !27
parents f05ea3e9 73f84803
Pipeline #12746 passed with stages
in 8 minutes and 50 seconds
......@@ -7,7 +7,9 @@ SET(SOURCE
cfgfile.cc
eafstream.cc
endian.cc
decaydb.cc
gfsfile.cc
f71stream.cc
hcdump.cc
hysplitcdump.cc
)
......@@ -19,7 +21,10 @@ SET(HEADERS
cfgfile.hh
eafstream.hh
endian.hh
decaydb.hh
gfsfile.hh
f71stream.hh
f71stream.i.hh
hcdump.hh
hysplitcdump.hh
hysplitcdump.i.hh
......
def convert_to_sec(halflife, unit):
toSec=[1.0,60.0,3600.0,86400.0,31.5576e6, 0.0, 31.5576e9, 31.5576e12, 31.5576e15]
return halflife*toSec[unit-1]
def process_entry(dataline ):
array = dataline.split()
zaid = int(array[0])
z = zaid / 10000
a = (zaid - 10000 * z) / 10
m = zaid - 10000 * z - 10 * a
unit = int(array[1])
halflife = float(array[2])
# declare fractions to be an array of size 8
fractions=[0] * 8
fractions[1] = float(array[3])
fractions[2] = float(array[6])
fractions[3] = float(array[7])
fractions[4] = float(array[8])
fractions[5] = float(array[9])
fractions[6] = float(array[10])
fractions[7] = float(array[11])
energy = float(array[13])
abundance = float(array[14])
wmpc = float(array[15])
ampc = float(array[16])
photonfraction = float(array[17])
fractions[0] = float(array[18])
halflife = convert_to_sec(halflife, unit)
string = "{\n "+str(z)+","+str(a)+","+str(m)+",\n "+str(halflife)+"f,"+str(energy)+"f,\n "+str(abundance)+"f,"+str(wmpc)+"f,"+str(ampc)+"f,"+str(photonfraction)+"f,\n {{"+str(fractions[0])+"f";
for f in range(1,8):
string = string+","+str(fractions[f])+"f"
string = string +"}}}";
return {"zaid": zaid, "z":z, "a":a,"m":m, "halflife":halflife, "fractions":fractions, "energy":energy,"abundance":abundance, "wmpc": wmpc, "ampc": ampc, "photonfraction" : photonfraction, "string": string}
#decay_file = open("/opt/vendors/scale/6.2/data/origen_data/origen.rev03.decay.data", "r")
decay_file = open("/Users/jap/projects/scale/6.2.1/data/origen_data/origen.rev03.decay.data", "r")
hh_file = open("decaydb.hh", "w")
cc_file = open("decaydb.cc", "w")
#
# Write include guard
hh_file.write("#ifndef RADIX_RADIXIO_DECAYDB_HH_\n")
hh_file.write("#define RADIX_RADIXIO_DECAYDB_HH_\n")
hh_file.write("#include <memory>\n")
hh_file.write("#include <unordered_map>\n")
hh_file.write("#include <array>\n")
hh_file.write("#include <string>\n")
hh_file.write("\nnamespace radix\n{\n\n")
hh_file.write("struct DecayDBEntry\n{\n")
hh_file.write("/**\n")
hh_file.write(" * symbol\n")
hh_file.write(" **/\n")
hh_file.write("int z;\n")
hh_file.write("/**\n")
hh_file.write(" * atomic number\n")
hh_file.write(" **/\n")
hh_file.write("int a;\n")
hh_file.write("/**\n")
hh_file.write(" * metastable state\n")
hh_file.write(" **/\n")
hh_file.write("int m;\n")
hh_file.write("/**\n")
hh_file.write(" * The variable HALFL, physical half-life in seconds\n")
hh_file.write(" **/\n")
hh_file.write("float halflife;\n")
hh_file.write("/**\n")
hh_file.write(" * The variable Q(I) is the total amount of recoverable energy (MeV) per\ndisintegration released by radioactive decay. It does not include the energy\nof neutrinos emitted during beta decay transitions.\n")
hh_file.write(" **/\n")
hh_file.write("float energy;\n")
hh_file.write("/**\n")
hh_file.write(" * The variable ABUND(I) is the atom percent abundance of naturally occurring\nisotopes. It is read by ORIGEN-S for light-element nuclides but is ignored\nfor the actinide and fission-product nuclides.\n")
hh_file.write(" **/\n")
hh_file.write("float abundance;\n")
hh_file.write("/**\n")
hh_file.write(" * The variable FG(I) is the fraction of recoverable energy per disintegration\nthat comes from gamma and X rays. In the ORIGEN-S libraries this\nfraction includes the energy from all decay gamma and X rays and from all gamma rays\nassociated with spontaneous fission. Using an approximation for the combined\nspectra 11 of prompt and equilibrium fission-product gamma rays from\nspontaneous fission, a value of 12.56 MeV per spontaneous fission transition\nwas calculated for use in determining FG for any nuclide having a\nspontaneous fission fraction exceeding 10 . Note that the definition of FG\nis not the same as that for the original ORIGEN -7 libraries. In those\nlibraries, FG included only those photons with energies greater than 200\nkeV. In addition, 1 it included the bremsstrahlung radiation from beta\nparticles slowing down in a UO fuel matrix. 2 Bremsstrahlung radiation is\nnot included in the values of FG in the ORIGEN-S libraries, since the\nbremsstrahlung spectrum depends on the medium that contains the decaying\nnuclide. Neither is the energy from gamma rays accompanying (*,n) reactions\nincluded, since it too depends on the medium. \n")
hh_file.write(" **/\n")
hh_file.write("float photon_fraction;\n")
hh_file.write("/**\n")
hh_file.write(" * The variables WMPC(I) and AMPC(I) are the radioactivity concentration\nguides for continuous ingestion (from water) and inhalation (from air) in\nunrestricted areas, in units of curies per cubic meter (Ci m ). -3 The RCG\nvalues, as defined in the pre-1991 version of Part 10, Title 20, of the Code\nof Federal Regulations16 (10CFR20), specify the maximum permissible\nconcentrations of an isotope in soluble and insoluble forms, for both\ningestion and inhalation, and for occupational and unrestricted exposure.\nWhen the activity (in curies) of a given isotope is divided by WMPC (or\nAMPC) for that isotope, the result is the volume of water (or air) required\nto dilute that quantity of the isotope to its maximum permissible\nconcentration. The dilution volume is a measure of the radioactive toxicity\nof the nuclide for cases of direct ingestion or inhalation. The values of\nWMPC and AMPC are defined to be the smaller (i.e., more toxic) of the values\nfor soluble and insoluble forms of the isotope.\n")
hh_file.write(" **/\n")
hh_file.write("float wmpc;\n")
hh_file.write("/**\n")
hh_file.write(" * The variables WMPC(I) and AMPC(I) are the radioactivity concentration\nguides for continuous ingestion (from water) and inhalation (from air) in\nunrestricted areas, in units of curies per cubic meter (Ci m ). -3 The RCG\nvalues, as defined in the pre-1991 version of Part 10, Title 20, of the Code\nof Federal Regulations16 (10CFR20), specify the maximum permissible\nconcentrations of an isotope in soluble and insoluble forms, for both\ningestion and inhalation, and for occupational and unrestricted exposure.\nWhen the activity (in curies) of a given isotope is divided by WMPC (or\nAMPC) for that isotope, the result is the volume of water (or air) required\nto dilute that quantity of the isotope to its maximum permissible\nconcentration. The dilution volume is a measure of the radioactive toxicity\nof the nuclide for cases of direct ingestion or inhalation. The values of\nWMPC and AMPC are defined to be the smaller (i.e., more toxic) of the values\nfor soluble and insoluble forms of the isotope.\n")
hh_file.write(" **/\n")
hh_file.write("float ampc;\n")
hh_file.write("/**\n")
hh_file.write(" *<ol><li> FB: Fraction of decay transitions that take place by beta\n"
"(negatron) emission and lead to a product nuclide in the "
"ground state</li>\n"
"<li>FB1: Fraction of decay transitions that take place by beta "
"emission and\nlead to a product nuclide in an excited "
"(metastable) nuclear state</li>\n"
"<li>FP: Fraction of decay transitions that take place by positron "
"emission or\norbital electron capture and lead to a product "
"nuclide in the ground state</li>\n"
"<li>FP1: Fraction of decay transitions that take place by positron "
"emission or\norbital electron capture and lead to a product "
"nuclide in an excited nuclear\nstate</li>\n"
"<li>FA: Fraction of decay transitions that take place by "
"alpha particle\nemission</li>\n"
"<li>FT: Fraction of decay transitions that take place by "
"isomeric transition</li>\n"
"<li>FSF: Fraction of decay transitions that take place by "
"spontaneous fission</li>\n"
"<li>FN: Fraction of decay transitions that take place by the "
"emission of both a\nbeta particle and a neutron</li>\n</ol>\n");
hh_file.write(" **/\n")
hh_file.write("std::array<float,8> fractions;\n")
hh_file.write("int zaid() { return z * 10000 + a * 10 + m;}\n")
hh_file.write("\n}; // struct \n")
hh_file.write("class DecayDb\n{\n")
hh_file.write(" std::unordered_map<int,DecayDBEntry> mActivation;\n")
hh_file.write(" std::unordered_map<int,DecayDBEntry> mActinide;\n")
hh_file.write(" std::unordered_map<int,DecayDBEntry> mFissionProduct;\n")
hh_file.write(" std::string mActivationTitle;\n")
hh_file.write(" std::string mActinideTitle;\n")
hh_file.write(" std::string mFissionProductTitle;\n")
hh_file.write("public:\n")
hh_file.write(" DecayDb();\n")
hh_file.write(" float calculate_activity(int zaid, float lp_abundance,\n")
hh_file.write(" float ap_abundance, float fp_abundance) const;\n")
hh_file.write(" std::string activation_title() const;")
hh_file.write(" std::string actinide_title() const;")
hh_file.write(" std::string fission_product_title() const;")
hh_file.write(" void set_activation_title(const std::string& title);");
hh_file.write(" void set_actinide_title(const std::string& title);");
hh_file.write(" void set_fission_product_title(const std::string& title);");
#
# start the implementation file
cc_file.write("#include \"radixio/decaydb.hh\"\n")
cc_file.write("#include <cmath>\n")
cc_file.write("\nnamespace radix\n{\n\n")
cc_file.write("DecayDb::DecayDb()\n{\n")
#
# Read the activation products
line = decay_file.readline();
print line
keep_going = True
while(keep_going):
line = decay_file.readline()
keep_going = False if (line[:4] == " -1") else True
if keep_going == False:
break
line = " ".join(line[4:].split())
line += " " + decay_file.readline()[4:].strip()
line += " " + decay_file.readline()[4:].strip()
entry=process_entry(line)
zaid = entry["zaid"]
cc_file.write(" mActivation["+str(zaid)+"]="+entry["string"]+";\n")
#print line
#
# Read the actinide products
line = decay_file.readline();
print line
keep_going = True
while(keep_going):
line = decay_file.readline()
keep_going = False if (line[:4] == " -1") else True
if keep_going == False:
break
line = " ".join(line[4:].split())
line += " " + decay_file.readline()[4:].strip()
line += " " + decay_file.readline()[4:].strip()
entry=process_entry(line)
zaid = entry["zaid"]
cc_file.write(" mActinide["+str(zaid)+"]="+entry["string"]+";\n")
#print line
# Read the fission products
line = decay_file.readline();
print line
keep_going = True
while(keep_going):
line = decay_file.readline()
keep_going = False if (line[:4] == " -1") else True
if keep_going == False:
break
line = " ".join(line[4:].split())
line += " " + decay_file.readline()[4:].strip()
line += " " + decay_file.readline()[4:].strip()
entry=process_entry(line)
zaid = entry["zaid"]
cc_file.write(" mFissionProduct["+str(zaid)+"]="+entry["string"]+";\n")
#print line
hh_file.write("\n}; // class")
hh_file.write("\n} // namespace radix\n")
# close DecayDb constructor
cc_file.write("}\n")
cc_file.write("float DecayDb::calculate_activity(int zaid, float lp_abundance, float ap_abundance, float fp_abundance) const\n{\n")
cc_file.write(" static float lntwo = std::log(2.0f); // for activities\n")
cc_file.write(" static float avogadro = 6.0221367e23f; // per mole\n")
cc_file.write(" static float curie = 37.0e9f; // (dis/sec)/Ci\n\n")
cc_file.write(" const auto& lp_it = mActivation.find(zaid);\n")
cc_file.write(" const auto& ac_it = mActinide.find(zaid);\n")
cc_file.write(" const auto& fp_it = mFissionProduct.find(zaid);\n\n")
cc_file.write(" float activity = 0.0f;\n")
cc_file.write(" if(std::fabs(lp_abundance) > 1e-23 && lp_it != mActivation.end() && lp_it->second.halflife > 0.f) activity += lp_abundance / lp_it->second.halflife; \n")
cc_file.write(" if(std::fabs(ap_abundance) > 1e-23 && ac_it != mActinide.end() && ac_it->second.halflife > 0.f) activity += ap_abundance / ac_it->second.halflife; \n")
cc_file.write(" if(std::fabs(fp_abundance) > 1e-23 && fp_it != mFissionProduct.end() && fp_it->second.halflife > 0.f) activity += fp_abundance / fp_it->second.halflife; \n")
cc_file.write(" activity = activity * avogadro * lntwo / curie;\n")
cc_file.write(" return activity;\n")
cc_file.write("}\n")
cc_file.write("std::string DecayDb::activation_title() const\n{\n")
cc_file.write(" return mActivationTitle;\n}\n")
cc_file.write("std::string DecayDb::actinide_title() const\n{\n")
cc_file.write(" return mActinideTitle;\n}\n")
cc_file.write("std::string DecayDb::fission_product_title() const\n{\n")
cc_file.write(" return mFissionProductTitle;\n}\n")
cc_file.write("void DecayDb::set_activation_title(const std::string& title)\n{\n")
cc_file.write(" mActivationTitle = title;\n}\n")
cc_file.write("void DecayDb::set_actinide_title(const std::string& title)\n{\n")
cc_file.write(" mActinideTitle = title;\n}\n")
cc_file.write("void DecayDb::set_fission_product_title(const std::string& title)\n{\n")
cc_file.write(" mFissionProductTitle= title;\n}\n")
cc_file.write("\n} // namespace radix\n")
hh_file.write("#endif /** RADIX_RADIXIO_DECAYDB_HH_ */\n")
hh_file.close()
cc_file.close()
#
# Format resulting files
import os
#os.system("/opt/vendors/llvm/5.0.1/bin/clang-format decaydb.hh -i -style=file")
#os.system("/opt/vendors/llvm/5.0.1/bin/clang-format decaydb.cc -i -style=file")
os.system("/usr/local/Cellar/clang-format/2017-11-14/bin/clang-format decaydb.hh -i -style=file")
os.system("/usr/local/Cellar/clang-format/2017-11-14/bin/clang-format decaydb.cc -i -style=file")
This diff is collapsed.
#ifndef RADIX_RADIXIO_DECAYDB_HH_
#define RADIX_RADIXIO_DECAYDB_HH_
#include <array>
#include <memory>
#include <string>
#include <unordered_map>
#include "radixdl/visibility.hh"
namespace radix
{
struct DecayDBEntry
{
/**
* symbol
**/
int z;
/**
* atomic number
**/
int a;
/**
* metastable state
**/
int m;
/**
* The variable HALFL, physical half-life in seconds
**/
float halflife;
/**
* The variable Q(I) is the total amount of recoverable energy (MeV) per
disintegration released by radioactive decay. It does not include the energy
of neutrinos emitted during beta decay transitions.
**/
float energy;
/**
* The variable ABUND(I) is the atom percent abundance of naturally occurring
isotopes. It is read by ORIGEN-S for light-element nuclides but is ignored
for the actinide and fission-product nuclides.
**/
float abundance;
/**
* The variable FG(I) is the fraction of recoverable energy per disintegration
that comes from gamma and X rays. In the ORIGEN-S libraries this
fraction includes the energy from all decay gamma and X rays and from all
gamma rays associated with spontaneous fission. Using an approximation for the
combined spectra 11 of prompt and equilibrium fission-product gamma rays from
spontaneous fission, a value of 12.56 MeV per spontaneous fission transition
was calculated for use in determining FG for any nuclide having a
spontaneous fission fraction exceeding 10 . Note that the definition of FG
is not the same as that for the original ORIGEN -7 libraries. In those
libraries, FG included only those photons with energies greater than 200
keV. In addition, 1 it included the bremsstrahlung radiation from beta
particles slowing down in a UO fuel matrix. 2 Bremsstrahlung radiation is
not included in the values of FG in the ORIGEN-S libraries, since the
bremsstrahlung spectrum depends on the medium that contains the decaying
nuclide. Neither is the energy from gamma rays accompanying (*,n) reactions
included, since it too depends on the medium.
**/
float photon_fraction;
/**
* The variables WMPC(I) and AMPC(I) are the radioactivity concentration
guides for continuous ingestion (from water) and inhalation (from air) in
unrestricted areas, in units of curies per cubic meter (Ci m ). -3 The RCG
values, as defined in the pre-1991 version of Part 10, Title 20, of the Code
of Federal Regulations16 (10CFR20), specify the maximum permissible
concentrations of an isotope in soluble and insoluble forms, for both
ingestion and inhalation, and for occupational and unrestricted exposure.
When the activity (in curies) of a given isotope is divided by WMPC (or
AMPC) for that isotope, the result is the volume of water (or air) required
to dilute that quantity of the isotope to its maximum permissible
concentration. The dilution volume is a measure of the radioactive toxicity
of the nuclide for cases of direct ingestion or inhalation. The values of
WMPC and AMPC are defined to be the smaller (i.e., more toxic) of the values
for soluble and insoluble forms of the isotope.
**/
float wmpc;
/**
* The variables WMPC(I) and AMPC(I) are the radioactivity concentration
guides for continuous ingestion (from water) and inhalation (from air) in
unrestricted areas, in units of curies per cubic meter (Ci m ). -3 The RCG
values, as defined in the pre-1991 version of Part 10, Title 20, of the Code
of Federal Regulations16 (10CFR20), specify the maximum permissible
concentrations of an isotope in soluble and insoluble forms, for both
ingestion and inhalation, and for occupational and unrestricted exposure.
When the activity (in curies) of a given isotope is divided by WMPC (or
AMPC) for that isotope, the result is the volume of water (or air) required
to dilute that quantity of the isotope to its maximum permissible
concentration. The dilution volume is a measure of the radioactive toxicity
of the nuclide for cases of direct ingestion or inhalation. The values of
WMPC and AMPC are defined to be the smaller (i.e., more toxic) of the values
for soluble and insoluble forms of the isotope.
**/
float ampc;
/**
*<ol><li> FB: Fraction of decay transitions that take place by beta
(negatron) emission and lead to a product nuclide in the ground state</li>
<li>FB1: Fraction of decay transitions that take place by beta emission and
lead to a product nuclide in an excited (metastable) nuclear state</li>
<li>FP: Fraction of decay transitions that take place by positron emission or
orbital electron capture and lead to a product nuclide in the ground
state</li> <li>FP1: Fraction of decay transitions that take place by positron
emission or orbital electron capture and lead to a product nuclide in an
excited nuclear state</li> <li>FA: Fraction of decay transitions that take
place by alpha particle emission</li> <li>FT: Fraction of decay transitions
that take place by isomeric transition</li> <li>FSF: Fraction of decay
transitions that take place by spontaneous fission</li> <li>FN: Fraction of
decay transitions that take place by the emission of both a beta particle and
a neutron</li>
</ol>
**/
std::array<float, 8> fractions;
int zaid() { return z * 10000 + a * 10 + m; }
}; // struct
class RADIX_PUBLIC DecayDb
{
std::unordered_map<int, DecayDBEntry> mActivation;
std::unordered_map<int, DecayDBEntry> mActinide;
std::unordered_map<int, DecayDBEntry> mFissionProduct;
std::string mActivationTitle;
std::string mActinideTitle;
std::string mFissionProductTitle;
public:
DecayDb();
float calculate_activity(int zaid, float lp_abundance, float ap_abundance,
float fp_abundance) const;
std::string activation_title() const;
std::string actinide_title() const;
std::string fission_product_title() const;
void set_activation_title(const std::string& title);
void set_actinide_title(const std::string& title);
void set_fission_product_title(const std::string& title);
}; // class
} // namespace radix
#endif /** RADIX_RADIXIO_DECAYDB_HH_ */
#include "radixio/f71stream.hh"
#include "radixbug/bug.hh"
#include "radixmath/util.hh"
namespace radix
{
F71Stream::F71Stream(const std::string& file)
: mFile(file)
, mStream(file.c_str(), std::ios::binary | std::ios::in)
{
mStream.setReverseBytes(false);
}
class F71Case::PImpl
{
public:
std::vector<int> light_element_nuclides;
std::vector<int> actinide_nuclides;
std::vector<int> fission_product_nuclides;
std::vector<float> light_element_nuclide_abundances;
std::vector<float> actinide_nuclide_abundances;
std::vector<float> fission_product_nuclide_abundances;
std::string title;
std::string basis;
std::vector<float> light_element_gamma_energy_bounds;
std::vector<float> actinide_gamma_energy_bounds;
std::vector<float> fission_product_gamma_energy_bounds;
std::vector<float> light_element_spectrum;
std::vector<float> actinide_spectrum;
std::vector<float> fission_product_spectrum;
std::vector<float> gamma_energy_bounds;
std::vector<float> photon_per_second_spectrum;
std::vector<float> mev_per_second_spectrum;
std::string photon_spectrum_title;
std::vector<float> spontaneous_fission_neutron_source;
std::vector<float> actinide_alpha_n_source;
std::vector<float> total_neutron_spectrum;
std::vector<float> alpha_n_spectrum;
std::vector<float> spontaneous_fission_spectrum;
std::vector<float> neutron_energy_bounds;
double time;
float power;
float flux;
};
F71Case::F71Case()
: p(new PImpl(), [](PImpl* impl) { delete impl; })
{
}
F71Case::F71Case(const F71Case& orig)
: p(new PImpl(), [](PImpl* impl) { delete impl; })
{
p->light_element_nuclides = orig.p->light_element_nuclides;
p->actinide_nuclides = orig.p->actinide_nuclides;
p->fission_product_nuclides = orig.p->fission_product_nuclides;
p->light_element_nuclide_abundances =
orig.p->light_element_nuclide_abundances;
p->actinide_nuclide_abundances = orig.p->actinide_nuclide_abundances;
p->fission_product_nuclide_abundances =
orig.p->fission_product_nuclide_abundances;
p->title = orig.p->title;
p->basis = orig.p->basis;
p->light_element_gamma_energy_bounds =
orig.p->light_element_gamma_energy_bounds;
p->actinide_gamma_energy_bounds = orig.p->actinide_gamma_energy_bounds;
p->fission_product_gamma_energy_bounds =
orig.p->fission_product_gamma_energy_bounds;
p->light_element_spectrum = orig.p->light_element_spectrum;
p->actinide_spectrum = orig.p->actinide_spectrum;
p->fission_product_spectrum = orig.p->fission_product_spectrum;
p->gamma_energy_bounds = orig.p->gamma_energy_bounds;
p->photon_per_second_spectrum = orig.p->photon_per_second_spectrum;
p->mev_per_second_spectrum = orig.p->mev_per_second_spectrum;
p->photon_spectrum_title = orig.p->photon_spectrum_title;
p->spontaneous_fission_neutron_source =
orig.p->spontaneous_fission_neutron_source;
p->actinide_alpha_n_source = orig.p->actinide_alpha_n_source;
p->total_neutron_spectrum = orig.p->total_neutron_spectrum;
p->alpha_n_spectrum = orig.p->alpha_n_spectrum;
p->spontaneous_fission_spectrum = orig.p->spontaneous_fission_spectrum;
p->neutron_energy_bounds = orig.p->neutron_energy_bounds;
p->time = orig.p->time;
p->power = orig.p->power;
p->flux = orig.p->flux;
}
const std::vector<int>& F71Case::lightElementNuclides() const
{
return p->light_element_nuclides;
}
void F71Case::setLightElementNuclides(const std::vector<int>& zaids)
{
p->light_element_nuclides = zaids;
}
const std::vector<int>& F71Case::actinideNuclides() const
{
return p->actinide_nuclides;
}
void F71Case::setActinideNuclides(const std::vector<int>& zaids)
{
p->actinide_nuclides = zaids;
}
const std::vector<int>& F71Case::fissionProductNuclides() const
{
return p->fission_product_nuclides;
}
void F71Case::setFissionProductNuclides(const std::vector<int>& zaids)
{
p->fission_product_nuclides = zaids;
}
const std::vector<float>& F71Case::lightElementNuclideAbundances() const
{
return p->light_element_nuclide_abundances;
}
void F71Case::setLightElementNuclideAbundances(const std::vector<float>& abs)
{
p->light_element_nuclide_abundances = abs;
}
const std::vector<float>& F71Case::actinideNuclideAbundances() const
{
return p->actinide_nuclide_abundances;
}
void F71Case::setActinideNuclideAbundances(const std::vector<float>& abs)
{
p->actinide_nuclide_abundances = abs;
}
const std::vector<float>& F71Case::fissionProductNuclideAbundances() const
{
return p->fission_product_nuclide_abundances;
}
void F71Case::setFissionProductNuclideAbundances(const std::vector<float>& abs)
{
p->fission_product_nuclide_abundances = abs;
}
std::string F71Case::title() const { return p->title; }
void F71Case::setTitle(const std::string& title) { p->title = title; }
std::string F71Case::basis() const { return p->basis; }
void F71Case::setBasis(const std::string& basis) { p->basis = basis; }
const std::vector<float>& F71Case::lightElementGammaEnergyBounds() const
{
return p->light_element_gamma_energy_bounds;
}
void F71Case::setLightElementGammaEnergyBounds(const std::vector<float>& bounds)
{
p->light_element_gamma_energy_bounds = bounds;
}
const std::vector<float>& F71Case::actinideGammaEnergyBounds() const
{
return p->actinide_gamma_energy_bounds;
}
void F71Case::setActinideGammaEnergyBounds(const std::vector<float>& bounds)
{
p->actinide_gamma_energy_bounds = bounds;
}
const std::vector<float>& F71Case::fissionProductGammaEnergyBounds() const
{
return p->fission_product_gamma_energy_bounds;
}
void F71Case::setFissionProductGammaEnergyBounds(
const std::vector<float>& bounds)
{
p->fission_product_gamma_energy_bounds = bounds;
}
const std::vector<float>& F71Case::lightElementSpectrum() const
{
return p->light_element_spectrum;
}
void F71Case::setLightElementSpectrum(const std::vector<float>& spectrum)
{
p->light_element_spectrum = spectrum;
}
const std::vector<float>& F71Case::actinitdeSpectrum() const
{
return p->actinide_spectrum;
}