Skip to content

Add physical 3D Akinci cohesion model - #1260

Closed
svchb wants to merge 130 commits into
trixi-framework:mainfrom
svchb:surface-tension/akinci-physical-3d
Closed

Add physical 3D Akinci cohesion model#1260
svchb wants to merge 130 commits into
trixi-framework:mainfrom
svchb:surface-tension/akinci-physical-3d

Conversation

@svchb

@svchb svchb commented Aug 6, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • add the exported opt-in SurfaceTensionAkinciCohesionPhysical model for physical surface tension values in N/m
  • convert the requested surface tension to the internal 3D Akinci coefficient using the planar surface-energy moment
  • retain central pair forces without surface-normal storage and preserve pairwise linear and angular momentum
  • use a dimensionless same-kernel wall ratio for wall and rigid-body coupling
  • extend Test timestep selection and add capillary interface condition #1024 with physical-Akinci single-system and fluid-interface capillary restrictions
  • add metadata output, validation, and user documentation

Stack

Depends on #1252 and #1024. It also retains the Akinci dependency chain #1259 -> #1258. PR #1024 is not currently contained in #1252, so both heads are explicit ancestors of this branch. The physical model is isolated in commit 3f84349fb; merge commits 7a364dbc2 and 024248c22 integrate #1252 and #1024, and bdb842f87 tests the physical interface timestep.

The logical dependency order is #1252, #1024, #1258, #1259, then this PR. The branch targets main, so inherited changes remain visible until the dependency PRs merge.

Normalization

For physical surface tension sigma, reference density rho_0, and compact-support radius h_c, the internal cohesion coefficient is gamma = sigma / ((21 / 7040) * rho_0^2 * h_c^2). The wall adhesion_coefficient is a dimensionless multiplier of the same kernel; (1 + cosd(theta)) / 2 maps a target contact angle to this ratio.

Verification

  • surface-tension tests: 146/146
  • dedicated timestep tests: 9/9
  • complete unit test target passed with eight Julia threads
  • restacked physical 3D smoke test passed, including zero RHS allocations
  • independent quadrature recovered the requested surface tension from the kernel moment
  • JuliaFormatter 2.1.1 passed

The complete examples target was not rerun for this stack layer; the affected 3D fluid and wall paths passed through the targeted example.

svchb added 23 commits July 30, 2026 13:55
# Conflicts:
#	docs/src/development.md
#	docs/src/systems/boundary.md
# Conflicts:
#	docs/src/systems/fluid.md
#	src/general/semidiscretization.jl
# Conflicts:
#	src/callbacks/stepsize.jl
#	src/schemes/fluid/surface_tension.jl
@codecov

codecov Bot commented Aug 6, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 92.60642% with 99 lines in your changes missing coverage. Please review.
✅ Project coverage is 79.46%. Comparing base (48920d8) to head (bdb842f).
⚠️ Report is 13 commits behind head on main.

Files with missing lines Patch % Lines
src/general/gpu.jl 0.00% 8 Missing ⚠️
src/general/semidiscretization.jl 94.53% 7 Missing ⚠️
...chemes/fluid/implicit_incompressible_sph/system.jl 60.00% 6 Missing ⚠️
test/count_allocations.jl 0.00% 6 Missing ⚠️
test/general/semidiscretization.jl 91.42% 6 Missing ⚠️
src/general/neighborhood_search.jl 90.00% 5 Missing ⚠️
src/schemes/fluid/surface_tension.jl 93.97% 5 Missing ⚠️
src/setups/rectangular_tank.jl 98.34% 5 Missing ⚠️
test/general/custom_quantities.jl 83.33% 5 Missing ⚠️
src/schemes/fluid/shifting_techniques.jl 33.33% 4 Missing ⚠️
... and 23 more

❗ There is a different number of reports uploaded between BASE (48920d8) and HEAD (bdb842f). Click for more details.

HEAD has 1 upload less than BASE
Flag BASE (48920d8) HEAD (bdb842f)
total 1 0
Additional details and impacted files
@@             Coverage Diff             @@
##             main    #1260       +/-   ##
===========================================
- Coverage   90.13%   79.46%   -10.67%     
===========================================
  Files         138      141        +3     
  Lines       10797    11758      +961     
===========================================
- Hits         9732     9344      -388     
- Misses       1065     2414     +1349     
Flag Coverage Δ
total ?
unit 79.46% <92.60%> (+3.10%) ⬆️

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 commented Aug 8, 2026

Copy link
Copy Markdown
Collaborator Author

Closing this draft because the rebuilt Akinci stack intentionally excludes SurfaceTensionAkinciCohesionPhysical and its physical-coefficient and capillary-timestep dependencies. No commits from this branch are carried into the replacement stack. The active path is #1258 -> #1259 -> #1261 -> #1266 -> #1267, with aggregate #1262 and validation #1263.

@svchb svchb closed this Aug 8, 2026
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