Port FluidSim core and scenarios to C++20
This commit is contained in:
28
include/FluidSim/HelmholtzScenario.hpp
Normal file
28
include/FluidSim/HelmholtzScenario.hpp
Normal 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
|
||||
Reference in New Issue
Block a user