From f56f34dff0618cf80c834c9fae53ee36ebd5af1f Mon Sep 17 00:00:00 2001 From: Jay Robson Date: Tue, 20 Feb 2024 12:52:54 +1100 Subject: [PATCH] slightly less of a buggy mess --- assets/model/resistor_bank_switch.fbx | Bin 0 -> 32572 bytes assets/model/resistor_bank_switch_click.stl | 3 +++ assets/scene-baked.glb | 4 ++-- assets/unbaked/scene.blend | 4 ++-- assets/unbaked/scene/labels.xcf | Bin 651741 -> 643413 bytes assets/unbaked/scene/labels_1.png | 4 ++-- src/coolant/evaporator.cpp | 19 ++++++++++++++++--- src/coolant/valve.cpp | 15 +++++++++++---- src/graphics/monitor/vessel.cpp | 5 +++-- src/reactor/fuel/fuel_rod.cpp | 13 +++++++------ src/reactor/fuel/sample.cpp | 6 ++++-- src/reactor/rod.cpp | 8 ++++---- src/system.cpp | 11 ++++++----- src/util/streams.hpp | 3 ++- 14 files changed, 62 insertions(+), 33 deletions(-) create mode 100644 assets/model/resistor_bank_switch.fbx create mode 100644 assets/model/resistor_bank_switch_click.stl diff --git a/assets/model/resistor_bank_switch.fbx b/assets/model/resistor_bank_switch.fbx new file mode 100644 index 0000000000000000000000000000000000000000..542d94a26130084d0f54e0040c29d794c2c337d8 GIT binary patch literal 32572 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 literal 0 HcmV?d00001 diff --git a/assets/model/resistor_bank_switch_click.stl b/assets/model/resistor_bank_switch_click.stl new file mode 100644 index 0000000..5b949c1 --- /dev/null +++ b/assets/model/resistor_bank_switch_click.stl @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:048908155186c98ffb96d173aff309155a38c392775b37f7517283afa650f8e1 +size 584 diff --git a/assets/scene-baked.glb b/assets/scene-baked.glb index a532c3d..a024ae5 100644 --- a/assets/scene-baked.glb +++ b/assets/scene-baked.glb @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:48f678610eab0b98ecc0fffeaea709cd89e27fabf37ed6f238e2ae2f84310c5a -size 53796580 +oid sha256:b94d3ddd33cd3c2d90c49ace14b13ccf5ab23381191128f0041c1a362b6080a4 +size 54335664 diff --git a/assets/unbaked/scene.blend b/assets/unbaked/scene.blend index f7bab57..85ebd4e 100644 --- a/assets/unbaked/scene.blend +++ b/assets/unbaked/scene.blend @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7fe8cb06eeaf56c4fa736eb074b366baaac8086e109bc1eccbc6938b686cdb5f -size 12366148 +oid sha256:3972f0ee75b7e5f852528459dc73b69d55f6edd778ce9c0a26a6f8c09241055f +size 12573092 diff --git a/assets/unbaked/scene/labels.xcf b/assets/unbaked/scene/labels.xcf index 90ccda65d44292500dbabf027624a6eba89eb789..ac932a621e1b14835bef39834595d22a16ac4a60 100644 GIT binary patch delta 93027 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%0DXfhyKiX-{p);EXD&I&dh00Zu91! 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≪pvi#jumK6$%!Oz(Fp?yq(i@)# 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 0) + { + level -= fluid.g_to_l(m_steam); + steam_output += m_steam / dt; + heat = 40; + } } Evaporator::operator Json::Value() const diff --git a/src/coolant/valve.cpp b/src/coolant/valve.cpp index c7b294d..782d61b 100644 --- a/src/coolant/valve.cpp +++ b/src/coolant/valve.cpp @@ -62,6 +62,7 @@ void Valve::update(double dt) if(src->get_gas_volume() == 0 || dst->get_gas_volume() == 0 || (src->get_gas() == 0 && dst->get_gas() == 0)) { + cleanup: flow = 0; return; } @@ -79,8 +80,11 @@ void Valve::update(double dt) if(remove < 0) { - ratio_a = src->get_air() / src->get_gas(); - ratio_s = src->get_steam() / src->get_gas(); + double g = src->get_gas(); + if(g <= 0) goto cleanup; + + ratio_a = src->get_air() / g; + ratio_s = src->get_steam() / g; mol = FluidHolder::calc_pressure_mol(src->get_heat_k(), src->get_gas_volume(), pressure1 - remove); @@ -90,8 +94,11 @@ void Valve::update(double dt) else { - ratio_a = dst->get_air() / dst->get_gas(); - ratio_s = dst->get_steam() / dst->get_gas(); + double g = dst->get_gas(); + if(g <= 0) goto cleanup; + + ratio_a = dst->get_air() / g; + ratio_s = dst->get_steam() / g; mol = FluidHolder::calc_pressure_mol(dst->get_heat_k(), dst->get_gas_volume(), pressure2 - remove); diff --git a/src/graphics/monitor/vessel.cpp b/src/graphics/monitor/vessel.cpp index cb14e0c..a61abe8 100644 --- a/src/graphics/monitor/vessel.cpp +++ b/src/graphics/monitor/vessel.cpp @@ -43,7 +43,7 @@ void Vessel::init() ss << "Void Ratio\n\n"; ss << "Reactor Core\n\n"; ss << "Neutron Flux\n\n"; -// ss << "Increase Rate\n\n"; + ss << "Energy Output\n\n"; ss << "Temperature\nMin\nMax\n\n"; ss << "Control Rods\nMin\nMax\nSpeed\n"; @@ -99,7 +99,8 @@ void Vessel::update(double dt) show_units( ss, sys.vessel->get_pressure() ) << "Pa\n"; ss << show( sys.vessel->get_level() / 1000 ) << " / " << show( sys.vessel->get_volume() / 1000 ) << " kL\n"; ss << show( sys.vessel->get_void_ratio() * 100 ) << " %\n\n\n\n"; - show_units( ss, sys.reactor->get_flux() ) << "n/cm2/s\n\n\n"; + show_units( ss, sys.reactor->get_flux() ) << "n/cm2/s\n"; + show_units( ss, sys.reactor->get_energy_output() ) << "W\n\n\n"; // ss << show( sys.reactor->flux_rate * 100 ) << " %/s\n\n\n"; ss << show( temp_min ) << " C\n"; ss << show( temp_max ) << " C\n\n\n"; diff --git a/src/reactor/fuel/fuel_rod.cpp b/src/reactor/fuel/fuel_rod.cpp index f8edaf4..864606f 100644 --- a/src/reactor/fuel/fuel_rod.cpp +++ b/src/reactor/fuel/fuel_rod.cpp @@ -8,7 +8,6 @@ using namespace Sim::Reactor::Fuel; constexpr double fuel_density = 19100000; // g/m^3 constexpr double fuel_molar_mass = 238.029; // g/mol constexpr double fuel_molar_density = fuel_density / fuel_molar_mass; // mol/m^3 -constexpr double energy_density = 165e11; // J/mol FuelRod::FuelRod(double fuel) : s(fuel) { @@ -29,7 +28,7 @@ Json::Value FuelRod::serialize() const void FuelRod::display(std::ostream& o) const { - double mol = fuel_molar_density * get_volume(); + double mol = fuel_molar_density * get_volume() * 0.001; o << "Fuel: " << (s.get_fuel() * mol) << " / " << (s.get_mass() * mol) << " mol\n"; o << "Efficiency: " << (s.get_efficiency() * 100) << " %\n"; @@ -40,16 +39,18 @@ void FuelRod::display(std::ostream& o) const double FuelRod::get_energy_output() const { - double mol = fuel_molar_density * get_volume(); + double mol = fuel_molar_density * get_volume() * 0.001; - return s.get_energy() * mol * energy_density; + // mol * J/mol/s + + return s.get_energy() * mol; } void FuelRod::update(double secs) { update_rod(secs); - double mol = fuel_molar_density * get_volume(); + double mol = fuel_molar_density * get_volume() * 0.001; s.clear_energy(); s.clear_fast_neutrons(); @@ -57,7 +58,7 @@ void FuelRod::update(double secs) s.add_slow_neutrons(vals[val_t::N_SLOW] / mol); s.update(secs); - vals[val_t::HEAT] += s.get_energy() * mol * energy_density * secs; + vals[val_t::HEAT] += s.get_energy() * mol * secs; vals[val_t::N_FAST] += s.get_fast_neutrons() * mol; vals[val_t::N_SLOW] = s.get_slow_neutrons() * mol; } diff --git a/src/reactor/fuel/sample.cpp b/src/reactor/fuel/sample.cpp index 4c7621e..e9c4456 100644 --- a/src/reactor/fuel/sample.cpp +++ b/src/reactor/fuel/sample.cpp @@ -7,6 +7,8 @@ using namespace Sim::Reactor::Fuel; constexpr double NEUTRON_BG = 1e-30; +constexpr double ENERGY_DENSITY_FUEL = 165e11; // J/mol +constexpr double ENERGY_DENSITY_WASTE = 192970744461.53494; // J/mol Sample::Sample(double fuel) { @@ -57,7 +59,7 @@ void Sample::update(double secs) // decay waste and extract products waste.update(secs); fast_neutrons += waste.extract_neutrons(); - energy += waste.extract_energy() * (1.0 / 30.0) / secs; + energy += waste.extract_energy() / secs * ENERGY_DENSITY_WASTE; // decay Xe-135 xe_135 *= half_life::get(secs, half_life::Xe_135); @@ -94,7 +96,7 @@ void Sample::update(double secs) efficiency = neutrons_fuel / neutrons_total; // simulate fuel use - energy += neutrons_fuel / secs * 0.8; + energy += neutrons_fuel / secs * ENERGY_DENSITY_FUEL; waste.add_fissile(neutrons_fuel * 6); } diff --git a/src/reactor/rod.cpp b/src/reactor/rod.cpp index 813c2b6..df655f5 100644 --- a/src/reactor/rod.cpp +++ b/src/reactor/rod.cpp @@ -110,10 +110,10 @@ double Rod::get_side_area() const void Rod::update_rod(double secs) { - // decay the free neutrons - double m = std::pow(0.5, secs / 879.4); - vals[val_t::N_FAST] *= m; - vals[val_t::N_SLOW] *= m; +// // decay the free neutrons +// double m = std::pow(0.5, secs / 879.4); +// vals[val_t::N_FAST] *= m; +// vals[val_t::N_SLOW] *= m; // clear data for(int i = 0; i < Rod::VAL_N; i++) diff --git a/src/system.cpp b/src/system.cpp index 6b42396..c5488e0 100644 --- a/src/system.cpp +++ b/src/system.cpp @@ -81,18 +81,19 @@ void System::update(double dt) dt *= speed; clock += dt; + reactor->update(dt); + vessel->update(dt); turbine_inlet_valve->update(dt); turbine_bypass_valve->update(dt); + condenser->update(dt); + turbine->update(dt); + primary_pump->update(dt); secondary_pump->update(dt); freight_pump->update(dt); - reactor->update(dt); - vessel->update(dt); - turbine->update(dt); - condenser->update(dt); - evaporator->update(dt); condenser_secondary->update(dt); + evaporator->update(dt); } System::operator Json::Value() const diff --git a/src/util/streams.hpp b/src/util/streams.hpp index 487d428..559cd48 100644 --- a/src/util/streams.hpp +++ b/src/util/streams.hpp @@ -10,7 +10,8 @@ namespace Sim::Util::Streams constexpr double show(double v, double m) { - return (v == 0 ? 0 : std::round(v * m) / m); + v = std::round(v * m) / m; + return v == 0 ? 0 : v; } constexpr double show(double v)