Skip to content

New version: NeumannKelvin v0.8.0#146664

Merged
JuliaTagBot merged 1 commit intomasterfrom
registrator-neumannkelvin-7f078b06-v0.8.0-91e4c3dccf
Jan 21, 2026
Merged

New version: NeumannKelvin v0.8.0#146664
JuliaTagBot merged 1 commit intomasterfrom
registrator-neumannkelvin-7f078b06-v0.8.0-91e4c3dccf

Conversation

@JuliaRegistrator
Copy link
Contributor

@JuliaRegistrator JuliaRegistrator commented Jan 21, 2026

v0.7.0

# Breaking changes
New workflow! First you create a specific PanelSystem (Body, FS, or NK) based on panels and other arguments. Then you run a solver (direct or gmres) and then measure it (Φ, ∇Φ, u, cₚ, steadyforce, addedmass). All of the information is kept within the struct (like Froude length, mirrors, etc) so you are sure to be solving and then measuring the same system. 

# New features
- Free surface source panels system. Applies the linear FSBC on source panels instead of the Neumann-Kelvin condition on body panels. The convective derivative is applied using an upwinded finite-difference stencil, so the freesurface panels must be organized in a structured grid.
- PanelTree struct. Organizes a table of panels into a tree using ImplicitBVH.jl and specializes Φ to use an accelerated O(log(N)) summation over that tree, using aggregated monopole versions of the panels if far enough away. This can't be applied to the Neumann-Kelvin potential, but it's great for very large sets of source panels. 
- GMRES solver. Approximate iterative matrix-free solution of the panel system. This is extremely memory efficient and very fast when coupled with a PanelTree. Includes a simple downwind residual flooding preconditioner for FSPanelSystems. Still takes O(100) iterations for those systems. 
- GeometryBasics extension for STLs. Mesh objects can be panelized to create a table of panels. The exact planar ∫G function is applied to these panels. 

# Other improvements
- Zero allocation green's function and Φ, ∇Φ methods!
- Much better viz functionality for both backends. New default plots for the PanelSystem types.

JuliaRegistrator referenced this pull request in weymouth/NeumannKelvin.jl Jan 21, 2026
Giant update integrating all the changes from PR #18. Free surface source panels, tree summation, gmres solver, new multi-threading library, plotting functions, zero allocation potential evaluations and structs to keep everything organized and easy to use.
@github-actions
Copy link
Contributor

github-actions bot commented Jan 21, 2026

Hello, I am an automated registration bot. I help manage the registration process by checking your registration against a set of AutoMerge guidelines. If all these guidelines are met, this pull request will be merged automatically, completing your registration. It is strongly recommended to follow the guidelines, since otherwise the pull request needs to be manually reviewed and merged by a human.

1. AutoMerge Guidelines are all met! ✅

Your new version registration met all of the guidelines for auto-merging and is scheduled to be merged in the next round (~20 minutes).

2. To pause or stop registration

If you want to prevent this pull request from being auto-merged, simply leave a comment. If you want to post a comment without blocking auto-merging, you must include the text [noblock] in your comment.

Tip: You can edit blocking comments to add [noblock] in order to unblock auto-merging.

@JuliaTagBot JuliaTagBot added the AutoMerge: last run blocked by comment PR blocked by one or more comments lacking the string [noblock]. label Jan 21, 2026
@JuliaRegistrator JuliaRegistrator force-pushed the registrator-neumannkelvin-7f078b06-v0.8.0-91e4c3dccf branch from 4acf952 to 1a3c1d5 Compare January 21, 2026 17:35
@JuliaTagBot JuliaTagBot removed the AutoMerge: last run blocked by comment PR blocked by one or more comments lacking the string [noblock]. label Jan 21, 2026
UUID: 7f078b06-e5c4-4cf8-bb56-b92882a0ad03
Repo: https://github.com/weymouth/NeumannKelvin.jl.git
Tree: 1711031221bbe726ff4ef94e2ccd1894a14de6be

Registrator tree SHA: 50f504d641745716a5b3eabaf681d3a4937d2ae3
@JuliaRegistrator JuliaRegistrator force-pushed the registrator-neumannkelvin-7f078b06-v0.8.0-91e4c3dccf branch from 1a3c1d5 to a42be9e Compare January 21, 2026 22:16
@JuliaTagBot JuliaTagBot merged commit b8a8b36 into master Jan 21, 2026
12 of 13 checks passed
@JuliaTagBot JuliaTagBot deleted the registrator-neumannkelvin-7f078b06-v0.8.0-91e4c3dccf branch January 21, 2026 22:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants