You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
velocity_3D_trailing_vortex_semiinfinite! returns NaN on its own axis at its start point, and its core is not linear in the distance #399
Found while fixing the bound-segment kernel in the #318 pull request, which moves velocity_3D_vortex_segment! onto a closed-form core that is linear in the distance to the axis and differentiable through it.
velocity_3D_trailing_vortex_semiinfinite! (src/filament.jl) still has the old shape, with two differences from the bound kernel:
Its Lamb–Oseen core epsilon grows from zero at x1. At XVP == x1 (or on the axis within rounding of it) both the outside test and the < 1e-12 * epsilon guard are false, the core branch normalises a zero radial vector, and the result is NaN.
Inside the core it returns the core-boundary velocity unscaled, so the velocity is not linear in the distance to the axis: it jumps in direction across the axis, and ForwardDiff sees zero there.
No evaluation point the solver builds today sits on a semi-infinite trailing axis (aero centres and control points are mid-panel, and trailing filaments start at panel edges), so nothing measurable moves. The question is whether the inside-core model should be the linear (Rankine-like) one the bound and finite trailing kernels use, which would change results for any point inside a wake core.
What I would do: scale the core branch by distance / epsilon as the bound kernel does, give it the same closed form, and guard the zero-core case the same way. That is a model change, so it is yours to decide.
Give velocity_3D_trailing_vortex_semiinfinite! the core #400 gives the bound kernel: closed form, linear in the distance to the axis, zero on the axis without a core (ends the NaN at x1). Stacked on #400. Leaving the finite trailing kernel and the core-size model alone.
Activity
1-Bort-1 commentedon Sep 30, 2026
Give velocity_3D_trailing_vortex_semiinfinite! the core #400 gives the bound kernel: closed form, linear in the distance to the axis, zero on the axis without a core (ends the NaN at x1). Stacked on #400. Leaving the finite trailing kernel and the core-size model alone.