-
Notifications
You must be signed in to change notification settings - Fork 57
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
SPL calculation with surface receiver #372
Comments
In SPPS properties you can change the surface receiver mode from "Intensity" to "SPL". In "SPL" mode there should be no dependency on the angle of incidence for the surface receiver. The problem with vertical plane is that for the ray to be recorded on the surface it must cross the surface. If the ray is ideally parallel to the surface receiver it will not be recorded. It can be easily mitigated by making the receiver surface and the sound source not exactly within same plane. Edit: |
|
Could you please share the model you use for testing as it is really nice. I will look into it, but I can't promise a quick and easy fix :) |
The results shown above are from a simple sound propagation calculation:
You can download the file here: Another point: The colours (SPL results) at the crossing between a vertical and horizontal surface receiver must be the same. |
I do understand the problem. I will look into it tomorrow. I am almost certain that there is no explicit angle dependency in the surface receiver source code in SPL mode (there is in Intensity mode). However as the rays are close to parallel to the surface the probability of crossing the surface decreases (as with the sun rays close to the poles) and it is not compensated. As l am thinking about it now it may be a flaw of the surface receiver implementation but it will require more thinking and some testing. |
In "I-Simpa/src/spps/input_output/reportmanager.cpp" in row 544 and 561 I found: float i0_div_p0sqr=pow(10.f,-12.f)/pow((float)(20pow(10.f,(int)-6)),(int)2)(coreConfig.FastGetConfigValue(Core_Configuration::FPROP_RHO))(*coreConfig.FastGetConfigValue(Core_Configuration::FPROP_CELERITE)); Could that be the reason? |
As for vertical receiver where no rays are detected - I would say that it is impossible to be easily fixed without some hacky solutions that may backfire at some point. To be detected the ray must cross the receiver surface (which being a surface is indefinitely thin). When the source is in plane with the receiver the rays will never cross the plane as they move parallel to it. |
Thanks for superfast trouble shooting! The result looks as it should be. The sound incidence at an angle of 90° to a surface receiver corresponds to a theoretical special case, i don't consider it to be all that important. It was part of the test model I came up with in order to understand how the program works. Is it already known when a revision of the program is to be expected? |
I have not done any tests on other acoustic parameters, but I suspect the agreement between point and surface receivers should be improved. You are correct, that the number of detected particles decreases as the theta increases and it is a drawback of a planar receiver. Currently it is possible to make a point receiver grid, but there is no build in tool for merging the results into a map. It would probably require more effort to implement such functionality into I-SIMPA. In fact it may be easier to do in postprocessing when required. Regarding the revision - I have created a pull request, but I don't know when it may be merged. @nicolas-f, @Picaut, Could you please take a look at this issue and the pull request? |
Hello, Yes we will look into your PR, thanks for your support @wbinek For SPPS and Plan Receiver (not the surface one) it should be implemented as a grid of point receivers. |
Fixes wrong energy recording for surface receivers. The angle dependency for intensity mode is implicit in the ray tracing simulation, therefore it should not be added explicitly by multiplication. On the other hand in SPL mode it should be compensated. For more details see the discussion in issue #372
In the document "Modelling of physical phenomena in SPPS", "Calculation of the sound pressure level on a surface receiver" is written: "Note that the calculation of a sound pressure level for a surface is quite ambiguous. It should not be comparable to grid of punctual receivers on a plane."
I have made some comparative calculations and found that the expected results are far apart; in particular, the results between the sound pressure level of a punctual receiver and a surface receiver.
In the pictured modell, i designed a source on the left side and:
The calculation was done with the setting "direct field only" and SPPS.
-> The surface receiver (vertical) shows no relevant results.
-> The results from the nine punctual receivers are nearly identical with the nine surface receiver (vertical) with 0° to source.
-> The results from the nine punctual receivers differ from the results of the Surface receiver (horizontal) at the points 10-90 m.
-> The difference in SPL between the first an last punctual receiver is around 20 dB; the horizontal sourface receivers shows a difference in SPL of 30 dB.
From my point of view, this creates the following problems:
-> The calculation of SPL on a sourface receiver depends on the angle of incident; that should not be.
-> All acoustic parameters who are based on SPL calculation (without an angle of incident) are wrong, because the results will get a weighting of angle of incident.
---> The calculation and presentation of results as a sourface receiver is useless.
Why is there no calculation with a grid of punctual receiver and a presentation of the results as a sourface?
Many thanks in advance.
The text was updated successfully, but these errors were encountered: