Group,
After inspecting the codes uploaded to this discussion, neither seem to implement the algorithms correctly. An important thing to consider here is the "branching." In the Smith code for example there is an inverse cosine function. There are an infinite number of answers here because
cos(a + 2*pi*m) = cos(a) m=...,-2,-1,0,1,2,...
The uploaded code assumes m=0, which is not a correct assumption.
In the "Robust" code, the branching problem is handled through continuity of the material functions. This feature is not present in the uploaded code and again the m=0 assumption was made. The algorithm also defines a procedure for determining the correct thickness of the slab that does not seem to be part of the uploaded code.
These codes are a great start, but they are incomplete and will likely only give correct results for thin slabs and at frequencies away from resonance.
Unfortunately, I have not written these algorithms myself, but I may have a need for them in a few months. If I do, and I get them working correctly
, I will certainly share with the group. I actually hope somebody will make the modifications and share their code before then.
Thanks!!
-Tip