Skip to content

Add dimensionally consistent 2D Akinci kernels - #1259

Draft
svchb wants to merge 9 commits into
trixi-framework:mainfrom
svchb:surface-tension/akinci-2d-kernels
Draft

Add dimensionally consistent 2D Akinci kernels#1259
svchb wants to merge 9 commits into
trixi-framework:mainfrom
svchb:surface-tension/akinci-2d-kernels

Conversation

@svchb

@svchb svchb commented Aug 6, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • add dimension-specific cohesion and adhesion normalizations for the Akinci model
  • preserve the published three-dimensional kernels exactly while using full-space integral matching in two dimensions
  • dispatch fluid, wall, and rigid-body interactions by spatial dimension and reject unsupported dimensions explicitly
  • document the normalization derivation and coefficient migration for existing 2D configurations

Stack

Depends on #1280. Fork branches cannot be selected as bases for pull requests into the upstream repository, so this PR targets main and temporarily shows the preceding commits.

Review-only diff: svchb/TrixiParticles.jlOpen@surface-normals/multicolor-thresholds...surface-tension/akinci-2d-kernels

Migration

To preserve an existing 2D pair contribution at compact-support radius h_c, multiply the previous surface-tension coefficient by 627 / (790 * h_c) and the previous adhesion coefficient by 42 / (65 * h_c). The resulting pair kernels are resolution-independent at a fixed smoothing-length-to-spacing ratio.

Verification

  • surface-tension tests on this layer: 110/110 before the stack split
  • complete unit test target passed with eight Julia threads before the stack split
  • targeted 2D Akinci examples: 6/6, including zero RHS allocations
  • JuliaFormatter checks pass on the rewritten branch

Stack Order

Focused merge order:

  1. Harden surface tension model configuration #1258 - surface-tension configuration hardening
  2. Clarify and visualize SPH surface normals #1279 - surface-normal scoping, explanation, and visualization
  3. Implement multicolor surface normals and threshold handling #1280 - multicolor gradients and threshold handling
  4. Add dimensionally consistent 2D Akinci kernels #1259 - dimensionally consistent 2D Akinci kernels
  5. Fix Akinci free-surface correction with continuity density #1261 - WCSPH and EDAC free-surface correction support
  6. Use conservative Akinci pair forces across resolutions #1266 - conservative adaptive-resolution Akinci pair forces
  7. Add Akinci surface tension support to IISPH #1267 - Akinci surface tension and correction support in IISPH

Supporting views:

All focused PRs target upstream main because GitHub cannot use contributor-fork branches as upstream PR bases. Each PR links a fork comparison that isolates its own review layer.

@svchb
svchb marked this pull request as draft August 6, 2026 10:42
@codecov

codecov Bot commented Aug 6, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 92.16867% with 13 lines in your changes missing coverage. Please review.
✅ Project coverage is 90.45%. Comparing base (a720b1d) to head (07ddec5).
⚠️ Report is 1 commits behind head on main.

Files with missing lines Patch % Lines
src/preprocessing/particle_packing/system.jl 50.00% 3 Missing ⚠️
src/schemes/fluid/surface_normal_sph.jl 92.30% 3 Missing ⚠️
src/schemes/fluid/surface_tension.jl 92.85% 3 Missing ⚠️
src/general/semidiscretization.jl 81.81% 2 Missing ⚠️
src/schemes/fluid/fluid.jl 75.00% 2 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1259      +/-   ##
==========================================
+ Coverage   90.39%   90.45%   +0.06%     
==========================================
  Files         138      139       +1     
  Lines       11322    11446     +124     
==========================================
+ Hits        10234    10354     +120     
- Misses       1088     1092       +4     
Flag Coverage Δ
total 90.46% <92.16%> (+0.06%) ⬆️
unit 77.74% <89.15%> (+0.26%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@svchb
svchb force-pushed the surface-tension/akinci-2d-kernels branch from 5aa1b2c to 04bba70 Compare August 14, 2026 12:45
@svchb
svchb force-pushed the surface-tension/akinci-2d-kernels branch from 04bba70 to 113745d Compare August 14, 2026 12:53
@svchb
svchb force-pushed the surface-tension/akinci-2d-kernels branch from 113745d to be34e96 Compare August 14, 2026 16:04
@svchb
svchb force-pushed the surface-tension/akinci-2d-kernels branch from be34e96 to 07ddec5 Compare August 14, 2026 16:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant