Files
FluidSimCpp/include/FluidSim/Component.hpp
2026-10-22 23:52:20 +02:00

28 lines
713 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 air_fraction{1.0f};
float* owner_air_mass{};
float* owner_exhaust_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