diff --git a/src/reactor/fuel/sample.cpp b/src/reactor/fuel/sample.cpp index 96a2619..bdc9402 100644 --- a/src/reactor/fuel/sample.cpp +++ b/src/reactor/fuel/sample.cpp @@ -66,7 +66,7 @@ void sample::update(double secs) // sim::reactor::fuelulate fuel use fuel -= neutrons_fuel; energy += neutrons_fuel; - waste.add_fissile(neutrons_fuel * 5); + waste.add_fissile(neutrons_fuel * 6); // do the poison te_135 += neutrons_fuel * (1.0 / 8.0); diff --git a/src/reactor/fuel/sample.hpp b/src/reactor/fuel/sample.hpp index 4278319..6efc848 100644 --- a/src/reactor/fuel/sample.hpp +++ b/src/reactor/fuel/sample.hpp @@ -10,7 +10,7 @@ namespace sim::reactor::fuel class sample { - constexpr static const double Xe_135_M = 1e3; + constexpr static const double Xe_135_M = 1e4; sim::reactor::fuel::waste waste; diff --git a/src/reactor/rod.cpp b/src/reactor/rod.cpp index 6d2dfd4..7842167 100644 --- a/src/reactor/rod.cpp +++ b/src/reactor/rod.cpp @@ -17,7 +17,16 @@ void rod::add(val_t type, double v) double rod::extract(val_t type, double s, double k, double o) { - double v = (1 - std::pow(0.5, s * -std::log2(1 - k * get_k(type)))) * 0.5 * (get(type) - o); + k *= get_k(type); + + double m = 1; + + if(k < 1) + { + m = 1 - std::pow(0.5, s * -std::log2(1 - k * get_k(type))); + } + + double v = m * 0.5 * (get(type) - o); vals_in[type] -= v; return v; }