Skip to content

Extension of interface-only normal velocity along level-set normals #70

@Fastaxx

Description

@Fastaxx

Description

Hi @maltezfaria 👋

This PR adds support for extending an interface-defined scalar normal speed along level-set normals.

I’m currently working on Stefan-type problems, where the normal velocity ( v_n ) is obtained from an interfacial flux balance and is therefore defined only on Γ. To evolve the level set consistently, a normal extension of ( v_n ) into a narrow band is required (as described for instance in Peng et al., 1999).

What’s added

  • extend_along_normals!
    A utility that extends a scalar field away from the interface by solving in pseudo-time:
    $∂_\tau F + \text{sign}(ϕ) n \cdot ∇F = 0, \quad n = ∇ϕ / |∇ϕ|$
    using discretization from Pen et al. 1999

  • Optional update hook in NormalMotionTerm
    NormalMotionTerm can now take an update callback (similar to AdvectionTerm) so the speed field can be extended at each RK stage.
    Existing usage remains unchanged.

Happy to adapt the API if you prefer a different integration style.

A working prototype is available in my fork:
https://github.com/Fastaxx/LevelSetMethods.jl/tree/feature/extend-velocity-along-normals

Validation and testing

No response

Motivation

No response

Target audience

No response

Can you help?

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions