Skip to content

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

Open

Description

@1-Bort-1

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.

Activity

  1. 1-Bort-1 commented on Sep 30, 2026

    @1-Bort-1
    MemberAuthor

    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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions