Changelog#
[v0.3.0] - 2026-03-14#
Added#
add explicit
requested={...}output selection totrace_rays()andsolve(), replacing the coarse amplitude switch (#3)
Changed#
only build and return ray paths, ray parameters, and path-dependent scalar outputs when explicitly requested (#3)
Fixed#
fix degenerate direct-ray amplitude outputs for zero-offset vertical rays and exact same-point rays (#2)
make amplitude result packing robust to mixed
Noneand finite values (#2)add regression tests for degenerate direct-ray amplitude cases (#2)
[v0.2.1] - 2026-03-07#
Added#
normalize_rt_coefficient()function inamplitude.pyimplementing Červený (2001) Eq. 5.3.10 energy-flux normalization of R/T coefficients (#1)transcoef_method="normalized"option intrace_raysandsolvefor energy-flux-normalized transmission coefficient products (#1)new tests:
test_transmission_normalized,test_normalized_vertical_ray(#1)methodology docs: section on energy-flux-normalized coefficients (#1)
Changed#
transcoef_methodvalues renamed:"angle"→"standard","angle_normalized"→"normalized"(#1)default
transcoef_methodis now"standard"(was"angle") (#1)updated documentation to reflect new method names and default (#1)
updated example 5 to use new method names and default (#1)
updated example 4 to compare standard vs normalized transmission coefficients (#1)
updated example 3 to show comparison of standard vs normalized transmission and reflection coefficients (#1)
Removed#
"normal"(impedance-only) transmission coefficient method — only"standard"and"normalized"are supported (#1)normal-incidence section removed from methodology docs (#1)
[v0.2.0] - 2026-03-04#
Added#
ModelArraysdataclass for pre-extracted NumPy arrays, avoiding repeated DataFrame column extraction during parallel tracingfast path in
_trace_onefor direct waves (no reflections/refractions)memory-aware
rays_per_chunkauto-sizing and progress reporting with ETA intrace_rays
Changed#
build_layer_stacknow accepts bothpd.DataFrameandModelArrays(unified from the formerbuild_layer_stack/build_layer_stack_fastpair)batched parallel dispatch: rays are grouped into ~n_workers batches with lightweight NumPy-only serialisation instead of per-ray DataFrame pickling
updated documentation index page
Removed#
dead first-pass loop in
_trace_onethat built unused variables
Fixed#
handle degenerate case in
_trace_onefunction to return minimal resultfix NaN results for same-depth source–receiver rays (e.g. stations and grid points both at z = 0): zero-thickness layer stack is now handled as a horizontal straight-line ray with correct travel time, geometrical spreading, attenuation t*, and transmission product instead of returning NaN
[v0.1.0] - 2026-03-03#
Added#
Files for initial release
This changelog
GitHub Actions CI for pytest, docs build, and release automation