Port FluidSim core and scenarios to C++20

This commit is contained in:
maxwes08
2026-10-22 23:52:20 +02:00
commit a859740a95
47 changed files with 3851 additions and 0 deletions

View File

@@ -0,0 +1,28 @@
#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