From 30bda212d6104d859c0bf5c1930599484ffe3ec1 Mon Sep 17 00:00:00 2001 From: Mandar Chitre Date: Sun, 5 Jan 2025 17:38:47 +0800 Subject: [PATCH] fix(pm): bug fix in PekerisRayTracer reflection computation --- src/pm_pekeris.jl | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/pm_pekeris.jl b/src/pm_pekeris.jl index 86473af..24b0e10 100644 --- a/src/pm_pekeris.jl +++ b/src/pm_pekeris.jl @@ -34,6 +34,7 @@ struct PekerisRayTracer{T1,T2,T3,T4,T5,T6,T7,T8} <: AbstractPropagationModel ps = (h, c, ρ, T, S, env.seabed, env.surface, env.noise) new{typeof.(ps)...}(ps..., nbounces) end + end function Base.show(io::IO, model::PekerisRayTracer) @@ -127,8 +128,8 @@ function _arrival(j, model, R, R², d1, d2, f, p1=missing, p2=missing) θ = atan(R, dz) t = D / model.c A = Complex(1.0, 0.0) / D * absorption(f, D, model.S) - s > 0 && (A *= _ipow(reflection_coef(model.surface, f, θ, model.c, model.ρ), s)) - b > 0 && (A *= _ipow(reflection_coef(model.seabed, f, θ, model.c, model.ρ), b)) + s > 0 && (A *= _ipow(reflection_coef(model.surface, f, θ, model.ρ, model.c), s)) + b > 0 && (A *= _ipow(reflection_coef(model.seabed, f, θ, model.ρ, model.c), b)) λ = π/2 - θ if p1 !== missing path = Array{typeof(p1)}(undef, 2 + s + b)