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

29 lines
766 B
C++

#pragma once
#include "FluidSim\AudioProcessing.hpp"
#include "FluidSim\Fluid.hpp"
#include "FluidSim\Solver.hpp"
#include <vector>
namespace fluidsim::port {
class HelmholtzScenario {
public:
explicit HelmholtzScenario(int sample_rate = 44100);
float process();
float cavity_pressure() const { return cavity_.pressure(); }
float open_end_flow() const { return boundaries_.open_end_mass_flow(0); }
const Pipe1D& neck() const { return pipes_.front(); }
private:
Volume0D cavity_{1e-3f, 1.1f * 101325.0f, 300.0f};
Port* cavity_port_{};
std::vector<Pipe1D> pipes_;
float dt_{}, neck_area_{}, cavity_orifice_area_{};
BoundarySystem boundaries_;
Solver solver_;
SoundProcessor sound_;
};
} // namespace fluidsim::port