36 lines
696 B
C++
36 lines
696 B
C++
|
|
#pragma once
|
|
|
|
#include "../coolant/pipe.hpp"
|
|
|
|
namespace sim::reactor::control
|
|
{
|
|
|
|
class control_rod : public sim::reactor::coolant::pipe
|
|
{
|
|
const double limit;
|
|
const double max;
|
|
|
|
double inserted = 1;
|
|
double absorbed = 0;
|
|
|
|
virtual void display(std::ostream& o) const;
|
|
|
|
virtual const char* get_name() const { return "Control Rod"; }
|
|
virtual rod* clone() const { return new control_rod(*this); };
|
|
|
|
public:
|
|
|
|
control_rod(coolant::vessel& v, double limit, double max);
|
|
|
|
virtual void update(double secs);
|
|
void set_reactivity(double a);
|
|
|
|
virtual bool should_display() const { return true; }
|
|
virtual bool should_select() const { return true; }
|
|
virtual void update_selected(double a);
|
|
};
|
|
|
|
}
|
|
|