43 lines
917 B
C++
43 lines
917 B
C++
|
|
#pragma once
|
|
|
|
#include <ostream>
|
|
|
|
#include "../../coolant/fluid_holder.hpp"
|
|
|
|
namespace sim::reactor::coolant
|
|
{
|
|
|
|
class vessel : public sim::coolant::fluid_holder
|
|
{
|
|
public:
|
|
|
|
const double height; // meters
|
|
const double diameter; // meters
|
|
double steam_suspended = 0; // grams
|
|
|
|
vessel(sim::coolant::fluid_t fluid, double height, double diameter, double mass, double level);
|
|
|
|
double get_steam_suspended() const; // grams
|
|
double get_void_ratio() const;
|
|
double get_bubble_hl() const;
|
|
|
|
void update(double secs);
|
|
|
|
friend std::ostream& operator<<(std::ostream& o, const vessel& v)
|
|
{
|
|
o << "Volume: " << v.get_volume() << " L\n";
|
|
o << "Level: " << v.get_level() << " L\n";
|
|
o << "Steam: " << v.get_steam() << " g\n";
|
|
o << "Heat: " << v.get_heat() << " C\n";
|
|
o << "Pressure: " << (v.get_pressure() * 0.001) << " kPa\n";
|
|
o << "Void Ratio: " << (v.get_void_ratio() * 100) << " %\n";
|
|
|
|
return o;
|
|
}
|
|
|
|
};
|
|
|
|
};
|
|
|