C++ implementation of Adaptive Rectangular Decomposition (ARD) with frequency dependent atmospheric absorption in 2.5D (3D with constant height).
Theory:
Gerardo Cicalese, Gabriele Ciaramella, Ilario Mazzieri; Addressing atmospheric absorption in adaptive rectangular decomposition. J. Acoust. Soc. Am. 1 October 2024; 156 (4): 2328–2339. https://doi.org/10.1121/10.0030468
Extended from ARD-simulator by @jinnsjj.
assets/*.txt
records the structure of room on x-y plane. Note that this simulator only supports 2.5D room geometries: z should always be 0 and depth of all partition should be equal.
Input example:
partition:
0 0 0 3 3 3 <- partition 0: x, y, z, width, height, depth
3 0 0 3 3 3 <- partition 1: x, y, z, width, height, depth
source:
1 1 1 <- source 0: x, y, z
recorder:
1 1 1 <- recorder 0: x, y, z
All the values above are in real world scale (meter).
Don't forget to add an extra blank line at the end of file.
- Frequency dependent atmospheric absorption
- Partial absorbing boundaries through PML partitions
- Test cases included
Use Visual Studio to build. The solution itself is self-contained, so simply building and running in Visual Studio should work. Win32 mode may cause performance issue, please run under x64 mode.
Scene 1:
partition:
0 0 0 5 5 5
Scene 2:
partition:
0 0 0 2 2 2
1 2 0 1 1 2
2 1 0 1 3 2
3 2 0 1 2 2
Scene 2:
partition:
0 0 0 3 3 2
0 3 0 2 1 2
3 0 0 1 2 2
4 0 0 1 1 2
0 4 0 1 1 2