Files
FluidSimCpp/include/FluidSim/Component.hpp

32 lines
854 B
C++

#pragma once
#include <vector>
namespace fluidsim::port {
struct Port {
float mass_flow{}; // kg/s, positive into the owning component
float enthalpy{}; // J/kg
float pressure{101325.0f};
float density{1.1768f};
float temperature{300.0f};
float gamma_value{1.4f}, gas_constant_value{287.0f};
float air_fraction{1.0f};
float fuel_fraction{};
float* owner_energy{};
float* owner_air_mass{};
float* owner_exhaust_mass{};
float* owner_fuel_mass{};
};
// Small equivalent of the C# IComponent lifecycle. Components update their
// conserved state after the coupled 1-D pipe solve has accumulated port flow.
class Component {
public:
virtual ~Component() = default;
virtual std::vector<Port*> ports() = 0;
virtual void update_state(float dt) = 0;
};
} // namespace fluidsim::port