fast-nuclear-sim/src/reactor/fuel/sample.hpp

51 lines
817 B
C++

#pragma once
#include "waste.hpp"
#include <ostream>
namespace sim::reactor::fuel
{
class sample
{
sim::reactor::fuel::waste waste;
double fuel = 0;
double i_135 = 0;
double xe_135 = 0;
double te_135 = 0;
double mass = 0;
double energy = 0;
double fast_neutrons = 0;
double slow_neutrons = 0;
void display(std::ostream& o) const;
public:
sample(double fuel, double mass);
void update(double secs);
double extract_energy();
double extract_fast_neutrons();
void add_slow_neutrons(double a);
constexpr double get_fuel() const { return fuel; }
constexpr double get_mass() const { return mass; }
constexpr double get_energy() const { return energy; }
double get_volume() const;
friend std::ostream& operator<<(std::ostream& o, const sample& s)
{
s.display(o);
return o;
}
};
}