2024-02-06 17:57:59 +11:00
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include "fluid_holder.hpp"
|
2024-02-07 16:04:22 +11:00
|
|
|
#include "evaporator.hpp"
|
2024-02-06 17:57:59 +11:00
|
|
|
#include "condenser.hpp"
|
|
|
|
|
2024-02-16 18:09:00 +11:00
|
|
|
namespace Sim::Coolant
|
2024-02-06 17:57:59 +11:00
|
|
|
{
|
|
|
|
|
2024-02-16 16:51:25 +11:00
|
|
|
class CondenserSecondary : public FluidHolder
|
2024-02-06 17:57:59 +11:00
|
|
|
{
|
2024-02-16 16:51:25 +11:00
|
|
|
Condenser* const primary;
|
|
|
|
Evaporator* const source;
|
2024-02-06 17:57:59 +11:00
|
|
|
|
|
|
|
public:
|
|
|
|
|
2024-02-20 18:02:34 +11:00
|
|
|
CondenserSecondary(Condenser* primary, Evaporator* source);
|
2024-02-06 17:57:59 +11:00
|
|
|
|
2024-02-07 16:04:22 +11:00
|
|
|
virtual double add_heat(double m, double t) { return source->add_heat(m, t); }
|
|
|
|
virtual double extract_fluid(double amount) { return source->extract_fluid(amount); }
|
2024-02-14 18:00:39 +11:00
|
|
|
virtual void add_gas(double steam, double gas, double t) { return source->add_gas(steam, gas, t); }
|
2024-02-07 16:04:22 +11:00
|
|
|
|
|
|
|
virtual double add_fluid(double amount, double heat);
|
2024-02-13 15:28:39 +11:00
|
|
|
|
2024-02-07 16:04:22 +11:00
|
|
|
virtual double get_volume() const { return source->get_volume(); }
|
|
|
|
virtual double get_level() const { return source->get_level(); }
|
|
|
|
virtual double get_heat() const { return source->get_heat(); } // celsius
|
|
|
|
virtual double get_steam() const { return source->get_steam(); } // grams
|
2024-02-13 17:05:57 +11:00
|
|
|
virtual double get_air() const { return source->get_air(); } // grams
|
|
|
|
virtual double get_gas() const { return source->get_gas(); } // grams
|
|
|
|
virtual double get_gas_volume() const { return source->get_gas_volume(); } // litres
|
2024-02-07 16:04:22 +11:00
|
|
|
virtual double get_mass() const { return source->get_mass(); } // grams
|
|
|
|
virtual double get_thermal_mass() const { return source->get_thermal_mass(); } // grams
|
|
|
|
virtual double get_pressure() const { return source->get_pressure(); } // pascals
|
2024-02-13 17:05:57 +11:00
|
|
|
virtual double get_gas_density() const { return source->get_gas_density(); } // g/L
|
2024-02-13 15:28:39 +11:00
|
|
|
|
|
|
|
void update(double dt);
|
2024-02-06 17:57:59 +11:00
|
|
|
};
|
|
|
|
|
|
|
|
};
|
|
|
|
|